@vocalstack/player 0.1.0-alpha.40 → 0.1.0-alpha.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/embeds.d.ts +7 -0
- package/dist/index.js +806 -785
- package/dist/index.js.map +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) =>
|
|
4
|
-
import { jsx as i, jsxs as g, Fragment as
|
|
5
|
-
import { useState as L, useRef as k, useEffect as D, useLayoutEffect as
|
|
6
|
-
import { createPortal as
|
|
7
|
-
import { VocalStackError as
|
|
8
|
-
const Ii = "https://vocalstack.com", Za = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Ga = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", qa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", Ka = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
|
-
function
|
|
1
|
+
var Ra = Object.defineProperty;
|
|
2
|
+
var Pa = (t, e, n) => e in t ? Ra(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
|
+
var ge = (t, e, n) => Pa(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
|
+
import { jsx as i, jsxs as g, Fragment as Ce } from "react/jsx-runtime";
|
|
5
|
+
import { useState as L, useRef as k, useEffect as D, useLayoutEffect as qt, createContext as wi, useMemo as ze, useContext as $a, useCallback as Ke, Fragment as Qa, forwardRef as Ba, useImperativeHandle as Va } from "react";
|
|
6
|
+
import { createPortal as Ha } from "react-dom";
|
|
7
|
+
import { VocalStackError as vi, VocalStack as Li } from "@vocalstack/js-sdk";
|
|
8
|
+
const ki = "https://vocalstack.com", Wa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Fa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Za = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", Ga = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
|
+
function qa({ size: t = 16, sw: e = 1.5, children: n, style: r, ...s }) {
|
|
10
10
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "none", stroke: "currentColor", strokeWidth: e, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { flex: "none", ...r }, ...s, children: n });
|
|
11
11
|
}
|
|
12
12
|
const X = {
|
|
@@ -53,15 +53,15 @@ const X = {
|
|
|
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(qa, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ i("path", { d: n }, n)) });
|
|
57
57
|
}
|
|
58
|
-
function
|
|
58
|
+
function Ka({ size: t = 15 }) {
|
|
59
59
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ i("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2.5" }) });
|
|
60
60
|
}
|
|
61
|
-
function
|
|
61
|
+
function cn({ size: t = 13 }) {
|
|
62
62
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", style: { marginLeft: 2 }, "aria-hidden": "true", children: /* @__PURE__ */ i("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" }) });
|
|
63
63
|
}
|
|
64
|
-
function
|
|
64
|
+
function ht({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,127,.35)", sw: r }) {
|
|
65
65
|
return /* @__PURE__ */ i(
|
|
66
66
|
"span",
|
|
67
67
|
{
|
|
@@ -80,20 +80,20 @@ function lt({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,
|
|
|
80
80
|
}
|
|
81
81
|
);
|
|
82
82
|
}
|
|
83
|
-
function
|
|
83
|
+
function Ja({ size: t = 12 }) {
|
|
84
84
|
return /* @__PURE__ */ g("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 $n({ dark: t, height: e = 20, link: n = !0 }) {
|
|
90
|
-
const r = /* @__PURE__ */ i("img", { src: t ?
|
|
91
|
-
return n ? /* @__PURE__ */ i("a", { href:
|
|
90
|
+
const r = /* @__PURE__ */ i("img", { src: t ? Wa : Fa, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
|
|
91
|
+
return n ? /* @__PURE__ */ i("a", { href: ki, style: { display: "block" }, children: r }) : r;
|
|
92
92
|
}
|
|
93
93
|
function Ar({ dark: t, size: e = 30 }) {
|
|
94
|
-
return /* @__PURE__ */ i("img", { src: t ?
|
|
94
|
+
return /* @__PURE__ */ i("img", { src: t ? Za : Ga, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function Ks({ children: t, panel: e, inset: n, className: r = "", style: s }) {
|
|
97
97
|
return /* @__PURE__ */ i("div", { className: `vs-card${e ? " panel" : ""}${n ? " vs-card--inset" : ""} ${r}`, style: s, children: t });
|
|
98
98
|
}
|
|
99
99
|
function Tt({ checked: t, onChange: e, label: n, disabled: r }) {
|
|
@@ -101,7 +101,7 @@ function Tt({ checked: t, onChange: e, label: n, disabled: r }) {
|
|
|
101
101
|
}
|
|
102
102
|
function wr({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill: a }) {
|
|
103
103
|
const o = k(null), [l, c] = L(null), u = Math.max(0, n.findIndex((d) => d.value === t));
|
|
104
|
-
return
|
|
104
|
+
return qt(() => {
|
|
105
105
|
const d = o.current;
|
|
106
106
|
if (!d) return;
|
|
107
107
|
const M = d.querySelectorAll(".vs-switch__opt")[u];
|
|
@@ -122,7 +122,7 @@ function wr({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill
|
|
|
122
122
|
] }, d.value))
|
|
123
123
|
] });
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function Xa({ children: t, onClick: e, label: n, size: r, variant: s, bordered: a = !0, active: o, title: l }) {
|
|
126
126
|
return /* @__PURE__ */ i("button", { type: "button", className: `vs-icon-btn${r === "sm" ? " vs-icon-btn--sm" : ""}${s === "primary" ? " vs-icon-btn--primary" : ""}${o ? " vs-icon-btn--primary" : ""}${a ? "" : " vs-icon-btn--borderless"}`, onClick: e, "aria-label": n, title: l ?? n, children: t });
|
|
127
127
|
}
|
|
128
128
|
function Yn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bordered: o = !0, size: l, style: c, flagOnly: u }) {
|
|
@@ -135,7 +135,7 @@ function Yn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bord
|
|
|
135
135
|
/* @__PURE__ */ i(oe, { d: X.chevronDown, size: 13, className: "vs-lang-chip__chevron", style: { color: s === "primary" ? "currentColor" : "var(--vs-text-muted)" } })
|
|
136
136
|
] });
|
|
137
137
|
}
|
|
138
|
-
function
|
|
138
|
+
function eo({ value: t, label: e = "Copy", onCopied: n }) {
|
|
139
139
|
const [r, s] = L(!1), a = async () => {
|
|
140
140
|
try {
|
|
141
141
|
await navigator.clipboard.writeText(t), s(!0), n == null || n(), setTimeout(() => s(!1), 1400);
|
|
@@ -160,8 +160,8 @@ function no({ value: t, label: e = "Copy", onCopied: n }) {
|
|
|
160
160
|
}
|
|
161
161
|
);
|
|
162
162
|
}
|
|
163
|
-
function
|
|
164
|
-
|
|
163
|
+
function to(t, e) {
|
|
164
|
+
qt(() => {
|
|
165
165
|
const n = t.current, r = window.visualViewport;
|
|
166
166
|
if (!e || !n || !r) return;
|
|
167
167
|
let s = 0;
|
|
@@ -182,11 +182,11 @@ function vr({ children: t, ms: e = 220 }) {
|
|
|
182
182
|
var r;
|
|
183
183
|
return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, "(hover: hover) and (pointer: fine)").matches);
|
|
184
184
|
});
|
|
185
|
-
return n ? /* @__PURE__ */ i(
|
|
185
|
+
return n ? /* @__PURE__ */ i(no, { ms: e, children: t }) : /* @__PURE__ */ i("div", { children: t });
|
|
186
186
|
}
|
|
187
|
-
function
|
|
187
|
+
function no({ children: t, ms: e }) {
|
|
188
188
|
const n = k(null), r = k(null), [s, a] = L(null);
|
|
189
|
-
return
|
|
189
|
+
return qt(() => {
|
|
190
190
|
const o = r.current, l = n.current;
|
|
191
191
|
if (!o || !l) return;
|
|
192
192
|
let c;
|
|
@@ -209,9 +209,9 @@ function so({ children: t, ms: e }) {
|
|
|
209
209
|
};
|
|
210
210
|
}, [e]), /* @__PURE__ */ i("div", { ref: n, style: { height: s ?? void 0, overflow: "clip", transition: s == null ? void 0 : `height ${e}ms cubic-bezier(.32,.72,0,1)` }, children: /* @__PURE__ */ i("div", { ref: r, children: t }) });
|
|
211
211
|
}
|
|
212
|
-
function
|
|
212
|
+
function Kt({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: a = "Done", children: o, drawer: l = !1, header: c, kind: u, sticky: d = !1 }) {
|
|
213
213
|
const M = k(null);
|
|
214
|
-
return
|
|
214
|
+
return to(M, t), D(() => {
|
|
215
215
|
if (!t) return;
|
|
216
216
|
const h = (f) => {
|
|
217
217
|
f.key === "Escape" && e();
|
|
@@ -228,7 +228,7 @@ function Jt({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: a
|
|
|
228
228
|
/* @__PURE__ */ i("div", { className: "vs-sheet__body", children: o })
|
|
229
229
|
] }) }) : null;
|
|
230
230
|
}
|
|
231
|
-
|
|
231
|
+
wi(0);
|
|
232
232
|
function Lr({ children: t, style: e, className: n }) {
|
|
233
233
|
return /* @__PURE__ */ i("div", { className: n ? `eyebrow ${n}` : "eyebrow", style: e, children: t });
|
|
234
234
|
}
|
|
@@ -236,7 +236,7 @@ let xn = null;
|
|
|
236
236
|
function Qu(t) {
|
|
237
237
|
xn = t;
|
|
238
238
|
}
|
|
239
|
-
function
|
|
239
|
+
function ji(t) {
|
|
240
240
|
xn == null || xn(t);
|
|
241
241
|
}
|
|
242
242
|
function Qn() {
|
|
@@ -246,11 +246,11 @@ function Qn() {
|
|
|
246
246
|
return "ogg";
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
-
function
|
|
249
|
+
function ro(t = {}) {
|
|
250
250
|
const e = new URLSearchParams();
|
|
251
251
|
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();
|
|
252
252
|
}
|
|
253
|
-
async function
|
|
253
|
+
async function so(t) {
|
|
254
254
|
try {
|
|
255
255
|
const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
|
|
256
256
|
if (e.type === "opaqueredirect" || e.ok || e.status >= 300 && e.status < 400) return null;
|
|
@@ -265,7 +265,7 @@ async function ao(t) {
|
|
|
265
265
|
return null;
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
async function
|
|
268
|
+
async function io(t) {
|
|
269
269
|
try {
|
|
270
270
|
const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
|
|
271
271
|
return e.type === "opaqueredirect" || e.status >= 300 && e.status < 400;
|
|
@@ -273,11 +273,11 @@ async function oo(t) {
|
|
|
273
273
|
return !1;
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
|
-
function
|
|
276
|
+
function ao(t, e, n = {}) {
|
|
277
277
|
const r = new URLSearchParams({ kind: "delivery", format: Qn() });
|
|
278
278
|
return n.media ? r.set("media", n.media) : 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}`;
|
|
279
279
|
}
|
|
280
|
-
function
|
|
280
|
+
function Js(t, e, n = {}, r = "background") {
|
|
281
281
|
const s = new URLSearchParams({ kind: r, format: Qn() });
|
|
282
282
|
return n.media ? s.set("media", n.media) : 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}`;
|
|
283
283
|
}
|
|
@@ -285,30 +285,30 @@ function bn(t, e, n, r = {}) {
|
|
|
285
285
|
const s = new URLSearchParams({ kind: n });
|
|
286
286
|
return n === "delivery" && s.set("format", "mp3"), r.media ? s.set("media", r.media) : r.accessToken && s.set("access_token", r.accessToken), r.listenerToken && s.set("listenerToken", r.listenerToken), r.shareCode && s.set("shareCode", r.shareCode), `${t}/v1/recordings/${e}/audio?${s}`;
|
|
287
287
|
}
|
|
288
|
-
function
|
|
289
|
-
return
|
|
288
|
+
function oo(t, e, n, r, s = {}) {
|
|
289
|
+
return lo(t, e, n, r, "mp3", s);
|
|
290
290
|
}
|
|
291
|
-
function
|
|
291
|
+
function lo(t, e, n, r, s, a) {
|
|
292
292
|
const o = new URLSearchParams({ kind: "voice", lang: n, format: s });
|
|
293
293
|
return r && o.set("voice", r), a.media ? o.set("media", a.media) : 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}`;
|
|
294
294
|
}
|
|
295
|
-
function
|
|
295
|
+
function co(t, e = !0) {
|
|
296
296
|
const n = (t == null ? void 0 : t.code) ?? 0, r = 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";
|
|
297
|
-
return e &&
|
|
297
|
+
return e && zi(t), `The audio could not be played: ${r}.`;
|
|
298
298
|
}
|
|
299
|
-
function
|
|
299
|
+
function zi(t) {
|
|
300
300
|
const e = (t == null ? void 0 : t.code) ?? 0;
|
|
301
|
-
e !== 1 &&
|
|
301
|
+
e !== 1 && ji(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
|
|
302
302
|
}
|
|
303
|
-
const
|
|
304
|
-
function
|
|
303
|
+
const uo = 3e3;
|
|
304
|
+
function ho(t, e, n) {
|
|
305
305
|
if (t !== 503) return null;
|
|
306
306
|
const r = e == null || e.trim() === "" ? NaN : Number(e);
|
|
307
307
|
if (Number.isFinite(r)) return Math.min(15e3, Math.max(1e3, r * 1e3));
|
|
308
308
|
const s = n;
|
|
309
|
-
return s && (s.retryable === !0 || s.code === "engine_unavailable") ?
|
|
309
|
+
return s && (s.retryable === !0 || s.code === "engine_unavailable") ? uo : null;
|
|
310
310
|
}
|
|
311
|
-
class
|
|
311
|
+
class Mo {
|
|
312
312
|
constructor(e = {}) {
|
|
313
313
|
ge(this, "entries", /* @__PURE__ */ new Map());
|
|
314
314
|
ge(this, "wanted", []);
|
|
@@ -401,13 +401,13 @@ class fo {
|
|
|
401
401
|
}).catch(() => r(n.signal.aborted ? null : { state: "failed", at: this.now() }));
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
|
-
const
|
|
405
|
-
function
|
|
406
|
-
if (!
|
|
404
|
+
const Ii = { video: !1 };
|
|
405
|
+
function Oi(t) {
|
|
406
|
+
if (!Ii.video) return new Audio(t);
|
|
407
407
|
const e = document.createElement("video");
|
|
408
408
|
return e.playsInline = !0, t && (e.src = t), e;
|
|
409
409
|
}
|
|
410
|
-
class
|
|
410
|
+
class bi extends Error {
|
|
411
411
|
constructor() {
|
|
412
412
|
super("The voice did not start in time."), this.name = "VoiceNotStarted";
|
|
413
413
|
}
|
|
@@ -453,7 +453,7 @@ const nt = class nt {
|
|
|
453
453
|
ge(this, "loading", null);
|
|
454
454
|
ge(this, "readAhead", 0);
|
|
455
455
|
ge(this, "readAheadS", 0);
|
|
456
|
-
ge(this, "prefetch", new
|
|
456
|
+
ge(this, "prefetch", new Mo());
|
|
457
457
|
ge(this, "warmed", /* @__PURE__ */ new Set());
|
|
458
458
|
ge(this, "startingSince", /* @__PURE__ */ new Map());
|
|
459
459
|
ge(this, "retries", /* @__PURE__ */ new Map());
|
|
@@ -789,7 +789,7 @@ const nt = class nt {
|
|
|
789
789
|
const l = await fetch(n, { method: "GET" });
|
|
790
790
|
s = l.ok, r = l.status === 202 || l.status === 503 || l.status === 429;
|
|
791
791
|
const c = l.status === 503 ? await l.json().catch(() => null) : null;
|
|
792
|
-
a =
|
|
792
|
+
a = ho(l.status, l.headers.get("Retry-After"), c);
|
|
793
793
|
} catch {
|
|
794
794
|
r = !0;
|
|
795
795
|
}
|
|
@@ -810,7 +810,7 @@ const nt = class nt {
|
|
|
810
810
|
}, a);
|
|
811
811
|
return;
|
|
812
812
|
}
|
|
813
|
-
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new
|
|
813
|
+
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new bi()), this.onSentence(e);
|
|
814
814
|
return;
|
|
815
815
|
}
|
|
816
816
|
const o = (this.retries.get(e) ?? 0) + 1;
|
|
@@ -838,7 +838,7 @@ const nt = class nt {
|
|
|
838
838
|
}
|
|
839
839
|
element() {
|
|
840
840
|
if (this.el) return this.el;
|
|
841
|
-
const e =
|
|
841
|
+
const e = Oi();
|
|
842
842
|
e.preload = "auto";
|
|
843
843
|
const n = e;
|
|
844
844
|
return n.dataset && (n.dataset.vsVoice = "1"), e.playsInline = !0, e.onplaying = () => {
|
|
@@ -892,14 +892,14 @@ const nt = class nt {
|
|
|
892
892
|
};
|
|
893
893
|
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);
|
|
894
894
|
let kr = nt;
|
|
895
|
-
function
|
|
895
|
+
function Ci(t, e) {
|
|
896
896
|
return e == null ? t.find((n) => !n.voiceKey) ?? null : t.find((n) => n.voiceKey === e) ?? t.find((n) => !n.voiceKey && n.voice === e) ?? null;
|
|
897
897
|
}
|
|
898
|
-
function
|
|
898
|
+
function go(t, e, n, r = {}, s) {
|
|
899
899
|
if (!t) return [];
|
|
900
900
|
const a = s != null && s.length ? s : t.clips;
|
|
901
901
|
if (!(a != null && a.length)) return [];
|
|
902
|
-
const o =
|
|
902
|
+
const o = ro(r), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
|
|
903
903
|
return a.flatMap((u) => {
|
|
904
904
|
var h, f;
|
|
905
905
|
const d = (h = t.clipRev) == null ? void 0 : h[String(u)], M = Math.max(1, ((f = t.clipParts) == null ? void 0 : f[String(u)]) ?? 1);
|
|
@@ -918,16 +918,16 @@ function po(t, e, n, r = {}, s) {
|
|
|
918
918
|
});
|
|
919
919
|
});
|
|
920
920
|
}
|
|
921
|
-
function
|
|
921
|
+
function xi(t, e) {
|
|
922
922
|
const n = e.words;
|
|
923
923
|
if (n && n.length === t.length && t.length > 0) {
|
|
924
924
|
let r = 0;
|
|
925
925
|
for (let s = 0; s < n.length && e.t >= n[s][0]; s++) r = s;
|
|
926
926
|
return r;
|
|
927
927
|
}
|
|
928
|
-
return e.dur > 0 ?
|
|
928
|
+
return e.dur > 0 ? fo(t, e.t, e.dur) : null;
|
|
929
929
|
}
|
|
930
|
-
function
|
|
930
|
+
function fo(t, e, n) {
|
|
931
931
|
if (t.length <= 1 || !(n > 0)) return 0;
|
|
932
932
|
const r = t.map((l) => l.t.length + 1.6), s = r.reduce((l, c) => l + c, 0);
|
|
933
933
|
let a = 0;
|
|
@@ -945,7 +945,7 @@ function Ir(t, e) {
|
|
|
945
945
|
return e;
|
|
946
946
|
}
|
|
947
947
|
}
|
|
948
|
-
function
|
|
948
|
+
function Si(t, e) {
|
|
949
949
|
try {
|
|
950
950
|
e == null ? localStorage.removeItem(t) : localStorage.setItem(t, JSON.stringify(e));
|
|
951
951
|
} catch {
|
|
@@ -960,32 +960,32 @@ function Er(t, e) {
|
|
|
960
960
|
zr.delete(s), window.removeEventListener("storage", s);
|
|
961
961
|
};
|
|
962
962
|
}, [t]), [n, (s) => {
|
|
963
|
-
r(s),
|
|
963
|
+
r(s), Si(t, s);
|
|
964
964
|
}];
|
|
965
965
|
}
|
|
966
|
-
function
|
|
966
|
+
function Xs(t) {
|
|
967
967
|
const e = Ir(jr, []);
|
|
968
|
-
|
|
968
|
+
Si(jr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
|
|
969
969
|
}
|
|
970
|
-
function
|
|
970
|
+
function Di() {
|
|
971
971
|
const [t, e] = Er(jr, []), n = Array.isArray(t) ? t : [];
|
|
972
972
|
return [n, (r) => {
|
|
973
973
|
r && e([r, ...n.filter((s) => s !== r)].slice(0, 3));
|
|
974
974
|
}];
|
|
975
975
|
}
|
|
976
|
-
function
|
|
976
|
+
function Ai(t, e) {
|
|
977
977
|
if (!t) return [];
|
|
978
978
|
const n = new Set(t[e]);
|
|
979
979
|
return t.languages.filter((r) => n.has(r.code)).map((r) => ({ code: r.code, label: r.name, native: r.native, flag: r.flag ?? "🌐", voice: !!r.voice }));
|
|
980
980
|
}
|
|
981
|
-
function
|
|
981
|
+
function po(t) {
|
|
982
982
|
const [e, n] = Er(`vs.pins.${t}`, null);
|
|
983
983
|
return [Array.isArray(e) ? e : [], n];
|
|
984
984
|
}
|
|
985
|
-
const
|
|
986
|
-
function
|
|
985
|
+
const mo = 352;
|
|
986
|
+
function No(t) {
|
|
987
987
|
const [e, n] = Er(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
|
|
988
|
-
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 :
|
|
988
|
+
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : mo, n];
|
|
989
989
|
}
|
|
990
990
|
function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPlaceholder: a = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: u, keepOpen: d, busy: M }) {
|
|
991
991
|
const [h, f] = L(""), [m, y] = L(!1), [j, N] = L(null);
|
|
@@ -998,10 +998,10 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
998
998
|
const K = l.indexOf(b.code), v = l.indexOf(te.code);
|
|
999
999
|
return K !== -1 || v !== -1 ? (K === -1 ? 999 : K) - (v === -1 ? 999 : v) : b.label.localeCompare(te.label);
|
|
1000
1000
|
});
|
|
1001
|
-
}, [s, h, l]),
|
|
1001
|
+
}, [s, h, l]), O = ze(
|
|
1002
1002
|
() => h ? [] : c.map((A) => p.find((T) => T.code === A)).filter((A) => !!A).sort((A, T) => A.label.localeCompare(T.label)),
|
|
1003
1003
|
[c, p, h]
|
|
1004
|
-
), C = ze(() =>
|
|
1004
|
+
), C = ze(() => O.length ? p.filter((A) => !O.some((T) => T.code === A.code)) : p, [p, O]), S = m || h ? C.length : 12, B = C, Y = C.length - Math.min(S, C.length), ee = (A, T = !1, _ = !1) => {
|
|
1005
1005
|
const b = !!u && !A.voice;
|
|
1006
1006
|
return /* @__PURE__ */ g(
|
|
1007
1007
|
"button",
|
|
@@ -1023,17 +1023,17 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1023
1023
|
/* @__PURE__ */ i("div", { className: "vs-picker__native", children: A.native })
|
|
1024
1024
|
] }),
|
|
1025
1025
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot", children: T && /* @__PURE__ */ i("span", { className: "vs-picker__forget", role: "button", tabIndex: 0, title: `Remove ${A.label} from recent`, "aria-label": `Remove ${A.label} from recent`, onClick: (te) => {
|
|
1026
|
-
te.stopPropagation(),
|
|
1026
|
+
te.stopPropagation(), Xs(A.code);
|
|
1027
1027
|
}, onKeyDown: (te) => {
|
|
1028
|
-
(te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(),
|
|
1028
|
+
(te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(), Xs(A.code));
|
|
1029
1029
|
}, children: /* @__PURE__ */ i(oe, { d: X.close, size: 16 }) }) }),
|
|
1030
1030
|
/* @__PURE__ */ i("span", { className: `vs-picker__slot${b ? " vs-picker__slot--wide" : ""}`, title: A.voice ? "Voice available" : b ? "No voice speaks this language yet" : void 0, children: b ? j === A.code && /* @__PURE__ */ i("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : A.voice && /* @__PURE__ */ i(oe, { d: X.headphones, size: 16 }) }),
|
|
1031
|
-
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === A.code && (M === A.code ? /* @__PURE__ */ i(
|
|
1031
|
+
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === A.code && (M === A.code ? /* @__PURE__ */ i(ht, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(oe, { d: X.check, size: 16, sw: 2.2 })) })
|
|
1032
1032
|
]
|
|
1033
1033
|
},
|
|
1034
1034
|
A.code
|
|
1035
1035
|
);
|
|
1036
|
-
},
|
|
1036
|
+
}, I = /* @__PURE__ */ g("div", { className: "vs-picker__search", children: [
|
|
1037
1037
|
/* @__PURE__ */ i(oe, { d: X.search, size: 16, sw: 1.7, style: { color: "var(--vs-text-muted)" } }),
|
|
1038
1038
|
/* @__PURE__ */ i("input", { value: h, onChange: (A) => f(A.target.value), placeholder: a, "aria-label": a })
|
|
1039
1039
|
] }), F = /* @__PURE__ */ g("div", { className: "vs-picker__list", children: [
|
|
@@ -1049,9 +1049,9 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1049
1049
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot" }),
|
|
1050
1050
|
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === null && /* @__PURE__ */ i(oe, { d: X.check, size: 16, sw: 2.2 }) })
|
|
1051
1051
|
] }),
|
|
1052
|
-
|
|
1052
|
+
O.length > 0 && /* @__PURE__ */ g(Ce, { children: [
|
|
1053
1053
|
/* @__PURE__ */ i("div", { className: "vs-picker__head", children: "RECENT" }),
|
|
1054
|
-
|
|
1054
|
+
O.map((A) => ee(A, !0)),
|
|
1055
1055
|
/* @__PURE__ */ i("div", { className: "vs-picker__rule" })
|
|
1056
1056
|
] }),
|
|
1057
1057
|
B.map((A, T) => ee(A, !1, T >= S)),
|
|
@@ -1066,13 +1066,13 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1066
1066
|
"”"
|
|
1067
1067
|
] })
|
|
1068
1068
|
] });
|
|
1069
|
-
return { search:
|
|
1069
|
+
return { search: I, list: F };
|
|
1070
1070
|
}
|
|
1071
|
-
function
|
|
1071
|
+
function yo({ open: t, onClose: e, title: n, note: r, sticky: s, ...a }) {
|
|
1072
1072
|
const { search: o, list: l } = _r({ ...a, open: t, onClose: e });
|
|
1073
|
-
return /* @__PURE__ */ i(
|
|
1073
|
+
return /* @__PURE__ */ i(Kt, { open: t, onClose: e, title: n, note: r, drawer: !1, sticky: s, kind: "picker", header: o, children: l });
|
|
1074
1074
|
}
|
|
1075
|
-
function
|
|
1075
|
+
function ei({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOver: o = 0.4 }) {
|
|
1076
1076
|
const l = k(null), [c, u] = L(!1), [d, M] = L(!1), h = k(n);
|
|
1077
1077
|
return h.current = n, D(() => {
|
|
1078
1078
|
u(!1), M(!1);
|
|
@@ -1100,7 +1100,7 @@ function ri({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOve
|
|
|
1100
1100
|
return () => {
|
|
1101
1101
|
clearInterval(m), f.playbackRate = 1;
|
|
1102
1102
|
};
|
|
1103
|
-
}, [c, r, o]), d ? null : /* @__PURE__ */ g("div", { className: "txyt vsp-follow", children: [
|
|
1103
|
+
}, [c, r, o]), d ? null : /* @__PURE__ */ g("div", { className: "txyt vsp-follow", style: c ? { background: "#000" } : void 0, children: [
|
|
1104
1104
|
/* @__PURE__ */ i(
|
|
1105
1105
|
"video",
|
|
1106
1106
|
{
|
|
@@ -1120,10 +1120,10 @@ function ri({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOve
|
|
|
1120
1120
|
}
|
|
1121
1121
|
),
|
|
1122
1122
|
c && /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: a, style: { cursor: a ? "pointer" : "default" } }),
|
|
1123
|
-
c && /* @__PURE__ */ i("div", { className: `txyt__paused${r ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(
|
|
1123
|
+
c && /* @__PURE__ */ i("div", { className: `txyt__paused${r ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(cn, { size: 44 }) }) })
|
|
1124
1124
|
] });
|
|
1125
1125
|
}
|
|
1126
|
-
const
|
|
1126
|
+
const Ei = [
|
|
1127
1127
|
{ id: "youtube", name: "YouTube", color: "#ff3b30", hosts: /(^|\.)(youtube\.com|youtu\.be|youtube-nocookie\.com)$/, glyph: "M21.6 7.2a2.7 2.7 0 0 0-1.9-1.9C18 4.8 12 4.8 12 4.8s-6 0-7.7.5a2.7 2.7 0 0 0-1.9 1.9C2 8.9 2 12 2 12s0 3.1.4 4.8a2.7 2.7 0 0 0 1.9 1.9c1.7.5 7.7.5 7.7.5s6 0 7.7-.5a2.7 2.7 0 0 0 1.9-1.9c.4-1.7.4-4.8.4-4.8s0-3.1-.4-4.8ZM10 15.1V8.9l5.3 3.1L10 15.1Z" },
|
|
1128
1128
|
{ id: "loom", name: "Loom", color: "#8f7bff", hosts: /(^|\.)loom\.com$/, glyph: "M21 11h-5.2l4.5-2.6-1-1.7-4.5 2.6 2.6-4.5-1.7-1-2.6 4.5V3h-2v5.3L8.5 3.8l-1.7 1 2.6 4.5-4.5-2.6-1 1.7L8.2 11H3v2h5.2l-4.5 2.6 1 1.7 4.5-2.6-2.6 4.5 1.7 1 2.6-4.5V21h2v-5.2l2.6 4.5 1.7-1-2.6-4.5 4.5 2.6 1-1.7-4.5-2.6H21v-2Zm-9 3.4a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8Z" },
|
|
1129
1129
|
{ id: "vimeo", name: "Vimeo", color: "#1ab7ea", hosts: /(^|\.)vimeo\.com$/, glyph: "M22 7.4c-.1 2-1.5 4.7-4.2 8.1-2.8 3.6-5.1 5.4-7 5.4-1.2 0-2.2-1.1-3-3.3L6.2 11.6C5.6 9.4 5 8.3 4.3 8.3c-.1 0-.6.3-1.4.9L2 8l2.7-2.4C5.9 4.6 6.8 4 7.4 4c1.4-.1 2.3.9 2.6 2.9.4 2.2.6 3.6.8 4.1.4 1.8.9 2.7 1.4 2.7.4 0 1-.6 1.8-1.9.8-1.2 1.2-2.2 1.3-2.8.1-1.1-.3-1.6-1.3-1.6-.5 0-.9.1-1.4.3.9-3 2.7-4.5 5.3-4.4 1.9.1 2.8 1.3 2.7 3.7Z" },
|
|
@@ -1137,11 +1137,11 @@ const Ui = [
|
|
|
1137
1137
|
{ id: "kick", name: "Kick", color: "#53fc18", hosts: /(^|\.)kick\.com$/, glyph: "M4 3h5.5v5H11V6h2V3h5.5v6.5h-2V11h-2v2h2v1.5h2V21H13v-3h-2v-2H9.5v5H4V3Z" },
|
|
1138
1138
|
{ id: "mixcloud", name: "Mixcloud", color: "#7f8cff", hosts: /(^|\.)mixcloud\.com$/, audioOnly: !0, glyph: "M17.5 9.5a5.5 5.5 0 0 0-10.6 1.2A3.8 3.8 0 0 0 7.3 18h10.2a4.25 4.25 0 0 0 0-8.5Z" },
|
|
1139
1139
|
{ id: "bandcamp", name: "Bandcamp", color: "#1da0c3", hosts: /(^|\.)bandcamp\.com$/, audioOnly: !0, glyph: "M2 18 8.5 6H22l-6.5 12H2Z" }
|
|
1140
|
-
],
|
|
1140
|
+
], To = new Map(Ei.map((t) => [t.id, t]));
|
|
1141
1141
|
function Bu(t) {
|
|
1142
|
-
return t ?
|
|
1142
|
+
return t ? To.get(t) ?? null : null;
|
|
1143
1143
|
}
|
|
1144
|
-
function
|
|
1144
|
+
function wo(t) {
|
|
1145
1145
|
const e = t == null ? void 0 : t.trim();
|
|
1146
1146
|
if (!e) return null;
|
|
1147
1147
|
try {
|
|
@@ -1150,9 +1150,9 @@ function Lo(t) {
|
|
|
1150
1150
|
return null;
|
|
1151
1151
|
}
|
|
1152
1152
|
}
|
|
1153
|
-
function
|
|
1154
|
-
const e =
|
|
1155
|
-
return e ?
|
|
1153
|
+
function vo(t) {
|
|
1154
|
+
const e = wo(t);
|
|
1155
|
+
return e ? Ei.find((n) => n.hosts.test(e)) ?? null : null;
|
|
1156
1156
|
}
|
|
1157
1157
|
function Bn(t) {
|
|
1158
1158
|
try {
|
|
@@ -1162,12 +1162,12 @@ function Bn(t) {
|
|
|
1162
1162
|
}
|
|
1163
1163
|
}
|
|
1164
1164
|
const Sn = (t) => Math.max(0, Math.floor(t));
|
|
1165
|
-
function
|
|
1165
|
+
function _i(t) {
|
|
1166
1166
|
var n;
|
|
1167
1167
|
const e = /\/(?:share|embed)\/(?:[^/?#]*-)?([0-9a-f]{32})(?:[/?#]|$)/i.exec(((n = Bn(t)) == null ? void 0 : n.pathname) ?? "");
|
|
1168
1168
|
return e ? e[1].toLowerCase() : null;
|
|
1169
1169
|
}
|
|
1170
|
-
function
|
|
1170
|
+
function Lo(t) {
|
|
1171
1171
|
const e = Bn(t);
|
|
1172
1172
|
if (!e) return null;
|
|
1173
1173
|
const n = e.pathname.split("/").filter(Boolean), r = n.map((a, o) => /^\d+$/.test(a) ? o : -1).filter((a) => a >= 0).pop();
|
|
@@ -1175,14 +1175,14 @@ function jo(t) {
|
|
|
1175
1175
|
const s = n[r + 1];
|
|
1176
1176
|
return { id: n[r], h: e.searchParams.get("h") ?? (s && /^[0-9a-f]{6,}$/i.test(s) ? s : null) };
|
|
1177
1177
|
}
|
|
1178
|
-
function
|
|
1178
|
+
function ko(t) {
|
|
1179
1179
|
const e = Bn(t);
|
|
1180
1180
|
if (!e) return null;
|
|
1181
1181
|
if (/(^|\.)dai\.ly$/i.test(e.hostname)) return e.pathname.split("/").filter(Boolean)[0] ?? null;
|
|
1182
1182
|
const n = /\/video\/([a-z0-9]+)/i.exec(e.pathname);
|
|
1183
1183
|
return n ? n[1] : null;
|
|
1184
1184
|
}
|
|
1185
|
-
function
|
|
1185
|
+
function jo(t) {
|
|
1186
1186
|
const e = Bn(t);
|
|
1187
1187
|
if (!e) return null;
|
|
1188
1188
|
const n = e.pathname.split("/").filter(Boolean);
|
|
@@ -1192,39 +1192,39 @@ function Io(t) {
|
|
|
1192
1192
|
const s = n.indexOf("clip");
|
|
1193
1193
|
return s >= 0 && n[s + 1] ? { clip: n[s + 1] } : n[0] ? { channel: n[0] } : null;
|
|
1194
1194
|
}
|
|
1195
|
-
const
|
|
1195
|
+
const zo = (t) => {
|
|
1196
1196
|
const e = Sn(t);
|
|
1197
1197
|
return `${Math.floor(e / 3600)}h${Math.floor(e % 3600 / 60)}m${e % 60}s`;
|
|
1198
1198
|
};
|
|
1199
|
-
function
|
|
1200
|
-
const n =
|
|
1199
|
+
function Yi(t, e) {
|
|
1200
|
+
const n = vo(t);
|
|
1201
1201
|
if (!n) return null;
|
|
1202
1202
|
const r = e.play ? 1 : 0;
|
|
1203
1203
|
switch (n.id) {
|
|
1204
1204
|
case "loom": {
|
|
1205
|
-
const s =
|
|
1205
|
+
const s = _i(t);
|
|
1206
1206
|
if (!s) return null;
|
|
1207
1207
|
const a = new URLSearchParams({ hide_owner: "true", hide_share: "true", hide_title: "true", hideEmbedTopBar: "true", hide_speed: "true", muted: "true", autoplay: e.play ? "true" : "false", t: String(Sn(e.t)) });
|
|
1208
1208
|
return `https://www.loom.com/embed/${s}?${a}`;
|
|
1209
1209
|
}
|
|
1210
1210
|
case "vimeo": {
|
|
1211
|
-
const s =
|
|
1211
|
+
const s = Lo(t);
|
|
1212
1212
|
if (!s) return null;
|
|
1213
1213
|
const a = new URLSearchParams({ autoplay: String(r), muted: "1", controls: "0", title: "0", byline: "0", portrait: "0", dnt: "1" });
|
|
1214
1214
|
return s.h && a.set("h", s.h), `https://player.vimeo.com/video/${s.id}?${a}#t=${Sn(e.t)}s`;
|
|
1215
1215
|
}
|
|
1216
1216
|
case "dailymotion": {
|
|
1217
|
-
const s =
|
|
1217
|
+
const s = ko(t);
|
|
1218
1218
|
if (!s) return null;
|
|
1219
1219
|
const a = new URLSearchParams({ autoplay: String(r), mute: "1", controls: "0", "queue-enable": "0", "sharing-enable": "0", "ui-start-screen-info": "0", start: String(Sn(e.t)) });
|
|
1220
1220
|
return `https://www.dailymotion.com/embed/video/${s}?${a}`;
|
|
1221
1221
|
}
|
|
1222
1222
|
case "twitch": {
|
|
1223
|
-
const s =
|
|
1223
|
+
const s = jo(t);
|
|
1224
1224
|
if (!s || !e.host) return null;
|
|
1225
1225
|
if (s.clip) return `https://clips.twitch.tv/embed?${new URLSearchParams({ clip: s.clip, parent: e.host, autoplay: String(!!e.play), muted: "true" })}`;
|
|
1226
1226
|
const a = new URLSearchParams({ parent: e.host, autoplay: String(!!e.play), muted: "true" });
|
|
1227
|
-
return s.video ? (a.set("video", `v${s.video}`), a.set("time",
|
|
1227
|
+
return s.video ? (a.set("video", `v${s.video}`), a.set("time", zo(e.t))) : s.channel && a.set("channel", s.channel), `https://player.twitch.tv/?${a}`;
|
|
1228
1228
|
}
|
|
1229
1229
|
case "facebook":
|
|
1230
1230
|
return `https://www.facebook.com/plugins/video.php?${new URLSearchParams({ href: t, autoplay: String(!!e.play), mute: "1", show_text: "false" })}`;
|
|
@@ -1232,13 +1232,34 @@ function Pi(t, e) {
|
|
|
1232
1232
|
return null;
|
|
1233
1233
|
}
|
|
1234
1234
|
}
|
|
1235
|
+
function Io(t) {
|
|
1236
|
+
return !!t && Yi(t, { t: 0, play: !1, host: "localhost" }) != null;
|
|
1237
|
+
}
|
|
1238
|
+
function Oo(t, e) {
|
|
1239
|
+
const n = e == null ? void 0 : e.trim();
|
|
1240
|
+
if (!t || !n) return null;
|
|
1241
|
+
switch (t) {
|
|
1242
|
+
case "loom":
|
|
1243
|
+
return /^[0-9a-f]{32}$/i.test(n) ? `https://www.loom.com/share/${n}` : null;
|
|
1244
|
+
case "vimeo":
|
|
1245
|
+
return /^\d+(\/[0-9a-z]+)?$/i.test(n) ? `https://vimeo.com/${n}` : null;
|
|
1246
|
+
case "dailymotion":
|
|
1247
|
+
return /^[a-z0-9]+$/i.test(n) ? `https://www.dailymotion.com/video/${n}` : null;
|
|
1248
|
+
case "youtube":
|
|
1249
|
+
return /^[\w-]{6,}$/.test(n) ? `https://www.youtube.com/watch?v=${n}` : null;
|
|
1250
|
+
case "twitch":
|
|
1251
|
+
return /^v\d+$/.test(n) ? `https://www.twitch.tv/videos/${n.slice(1)}` : n.startsWith("clip:") ? `https://clips.twitch.tv/${encodeURIComponent(n.slice(5))}` : n.startsWith("channel:") ? `https://www.twitch.tv/${encodeURIComponent(n.slice(8))}` : null;
|
|
1252
|
+
default:
|
|
1253
|
+
return null;
|
|
1254
|
+
}
|
|
1255
|
+
}
|
|
1235
1256
|
function bo(t) {
|
|
1236
|
-
return
|
|
1257
|
+
return !t || t.kind !== "url" ? null : Oo(t.site, t.embedId) ?? t.url ?? null;
|
|
1237
1258
|
}
|
|
1238
1259
|
function Co({ url: t, t: e, playing: n, seekN: r, title: s }) {
|
|
1239
1260
|
const a = k(e);
|
|
1240
1261
|
a.current = e;
|
|
1241
|
-
const [o, l] = L(!1), c = typeof window < "u" ? window.location.hostname : "localhost", u = ze(() =>
|
|
1262
|
+
const [o, l] = L(!1), c = typeof window < "u" ? window.location.hostname : "localhost", u = ze(() => Yi(t, { t: a.current, play: n, host: c }), [t, n, r, c]);
|
|
1242
1263
|
return u ? /* @__PURE__ */ i(
|
|
1243
1264
|
"iframe",
|
|
1244
1265
|
{
|
|
@@ -1297,34 +1318,34 @@ function Do(t) {
|
|
|
1297
1318
|
};
|
|
1298
1319
|
};
|
|
1299
1320
|
}
|
|
1300
|
-
const
|
|
1321
|
+
const rn = /* @__PURE__ */ new Map();
|
|
1301
1322
|
function Ao(t) {
|
|
1302
|
-
const [e, n] = L(() => t ?
|
|
1323
|
+
const [e, n] = L(() => t ? rn.get(t) ?? null : null);
|
|
1303
1324
|
return D(() => {
|
|
1304
1325
|
if (!t) {
|
|
1305
1326
|
n(null);
|
|
1306
1327
|
return;
|
|
1307
1328
|
}
|
|
1308
|
-
if (
|
|
1309
|
-
n(
|
|
1329
|
+
if (rn.has(t)) {
|
|
1330
|
+
n(rn.get(t) ?? null);
|
|
1310
1331
|
return;
|
|
1311
1332
|
}
|
|
1312
1333
|
let r = !0;
|
|
1313
1334
|
return fetch(`https://www.youtube.com/oembed?format=json&url=${encodeURIComponent(`https://www.youtube.com/watch?v=${t}`)}`).then((s) => s.ok ? s.json() : null).then((s) => {
|
|
1314
1335
|
const a = s && typeof s.title == "string" && s.title.trim() ? s.title.trim() : null;
|
|
1315
|
-
|
|
1336
|
+
rn.set(t, a), r && n(a);
|
|
1316
1337
|
}).catch(() => {
|
|
1317
|
-
|
|
1338
|
+
rn.set(t, null);
|
|
1318
1339
|
}), () => {
|
|
1319
1340
|
r = !1;
|
|
1320
1341
|
};
|
|
1321
1342
|
}, [t]), e;
|
|
1322
1343
|
}
|
|
1323
|
-
const Eo = /^[0-9a-f]{16,}$/i,
|
|
1344
|
+
const Eo = /^[0-9a-f]{16,}$/i, ti = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1324
1345
|
function _o(t) {
|
|
1325
1346
|
const e = (r) => {
|
|
1326
1347
|
const s = r == null ? void 0 : r.trim();
|
|
1327
|
-
return s && s !== t.id && !
|
|
1348
|
+
return s && s !== t.id && !ti.test(s) && !Eo.test(s) ? s : null;
|
|
1328
1349
|
}, n = (() => {
|
|
1329
1350
|
if (!t.url) return null;
|
|
1330
1351
|
try {
|
|
@@ -1333,10 +1354,10 @@ function _o(t) {
|
|
|
1333
1354
|
return null;
|
|
1334
1355
|
}
|
|
1335
1356
|
})();
|
|
1336
|
-
return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (
|
|
1357
|
+
return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (ti.test(t.id) ? "VocalStack" : t.id);
|
|
1337
1358
|
}
|
|
1338
1359
|
const Yo = 0.3;
|
|
1339
|
-
function
|
|
1360
|
+
function ni(t, e) {
|
|
1340
1361
|
t.muted = e.muted, Math.abs(t.currentTime - e.t) > Yo && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
|
|
1341
1362
|
}) : t.paused || t.pause();
|
|
1342
1363
|
}
|
|
@@ -1401,7 +1422,7 @@ async function Go(t) {
|
|
|
1401
1422
|
function Mr(t) {
|
|
1402
1423
|
t && (t.pause(), t.removeAttribute("src"), t.load());
|
|
1403
1424
|
}
|
|
1404
|
-
function
|
|
1425
|
+
function Ui(t, e) {
|
|
1405
1426
|
const [n, r] = L("off"), [s, a] = L([]), [o, l] = L(!1), c = k(null), u = k([null, null]), d = k([NaN, NaN]), M = k(0);
|
|
1406
1427
|
return D(() => {
|
|
1407
1428
|
if (a([]), l(!1), !t) {
|
|
@@ -1440,7 +1461,7 @@ function $i(t, e) {
|
|
|
1440
1461
|
for (const N of u.current) N && !N.paused && N.pause();
|
|
1441
1462
|
};
|
|
1442
1463
|
if (n === "ready" && c.current) {
|
|
1443
|
-
h(),
|
|
1464
|
+
h(), ni(c.current, e), l(!0);
|
|
1444
1465
|
return;
|
|
1445
1466
|
}
|
|
1446
1467
|
const f = n === "making" ? Fo(s, e.t) : -1;
|
|
@@ -1450,16 +1471,16 @@ function $i(t, e) {
|
|
|
1450
1471
|
}
|
|
1451
1472
|
const m = Zo(s, f, d.current, M.current);
|
|
1452
1473
|
for (const [N, p] of m.load) {
|
|
1453
|
-
let
|
|
1454
|
-
|
|
1474
|
+
let O = u.current[N];
|
|
1475
|
+
O || (O = new Audio(), O.preload = "auto", u.current[N] = O), O.pause(), O.src = s[p].url, d.current[N] = s[p].startS;
|
|
1455
1476
|
}
|
|
1456
1477
|
M.current = m.play;
|
|
1457
1478
|
const y = u.current[m.play], j = u.current[1 - m.play];
|
|
1458
|
-
j && !j.paused && j.pause(),
|
|
1479
|
+
j && !j.paused && j.pause(), ni(y, { ...e, t: e.t - s[f].startS }), l(!e.playing || y.readyState >= 3);
|
|
1459
1480
|
}, [n, s, e.t, e.playing, e.muted]), { state: n, on: o, untilS: n === "ready" ? 1 / 0 : s.length ? s[s.length - 1].endS : 0 };
|
|
1460
1481
|
}
|
|
1461
1482
|
function qo(t, e) {
|
|
1462
|
-
return
|
|
1483
|
+
return Ui(t, e).state;
|
|
1463
1484
|
}
|
|
1464
1485
|
const Ko = 0.5, Jo = 3;
|
|
1465
1486
|
function Yr(t, e) {
|
|
@@ -1558,7 +1579,7 @@ function nl(t) {
|
|
|
1558
1579
|
});
|
|
1559
1580
|
}, [t.on, t.t, t.playing, t.muted, t.lines, e]), s;
|
|
1560
1581
|
}
|
|
1561
|
-
const
|
|
1582
|
+
const ri = ["play", "pause", "stop", "nexttrack", "previoustrack"];
|
|
1562
1583
|
function rl(t, e) {
|
|
1563
1584
|
var n, r;
|
|
1564
1585
|
if (t === "play") {
|
|
@@ -1576,7 +1597,7 @@ function rl(t, e) {
|
|
|
1576
1597
|
(r = e.prev) == null || r.call(e);
|
|
1577
1598
|
}
|
|
1578
1599
|
function sl(t, e) {
|
|
1579
|
-
for (const n of
|
|
1600
|
+
for (const n of ri)
|
|
1580
1601
|
try {
|
|
1581
1602
|
t.setActionHandler(n, () => {
|
|
1582
1603
|
const r = e();
|
|
@@ -1585,7 +1606,7 @@ function sl(t, e) {
|
|
|
1585
1606
|
} catch {
|
|
1586
1607
|
}
|
|
1587
1608
|
return () => {
|
|
1588
|
-
for (const n of
|
|
1609
|
+
for (const n of ri)
|
|
1589
1610
|
try {
|
|
1590
1611
|
t.setActionHandler(n, null);
|
|
1591
1612
|
} catch {
|
|
@@ -1614,11 +1635,11 @@ function il(t, e) {
|
|
|
1614
1635
|
}
|
|
1615
1636
|
}, [r, e]);
|
|
1616
1637
|
}
|
|
1617
|
-
function
|
|
1638
|
+
function kt(t) {
|
|
1618
1639
|
const e = Math.max(0, Math.floor(t)), n = Math.floor(e / 3600), r = Math.floor(e % 3600 / 60), s = e % 60, a = String(r).padStart(2, "0"), o = String(s).padStart(2, "0");
|
|
1619
1640
|
return n > 0 ? `${n}:${a}:${o}` : `${a}:${o}`;
|
|
1620
1641
|
}
|
|
1621
|
-
function
|
|
1642
|
+
function Gt() {
|
|
1622
1643
|
return {
|
|
1623
1644
|
segments: /* @__PURE__ */ new Map(),
|
|
1624
1645
|
sentences: /* @__PURE__ */ new Map(),
|
|
@@ -1639,11 +1660,11 @@ function al(t, e) {
|
|
|
1639
1660
|
const n = t.spans[t.spans.length - 1];
|
|
1640
1661
|
return n ? (n.wallEnd ?? n.wallStart) + Math.max(0, e - (n.mediaEnd ?? n.mediaStart)) : e;
|
|
1641
1662
|
}
|
|
1642
|
-
function
|
|
1663
|
+
function on(t, e) {
|
|
1643
1664
|
return (e ?? []).map((n, r) => ({ text: String(n.text ?? ""), prob: n.prob ?? null, start: n.start ?? 0, end: n.end ?? 0, alts: n.alts, ...n.script === !0 ? { script: !0 } : {}, ...n.script === !0 && typeof n.recognized == "string" ? { recognized: n.recognized } : {}, seq: t, idx: r }));
|
|
1644
1665
|
}
|
|
1645
1666
|
function gr(t, e) {
|
|
1646
|
-
const n = e ??
|
|
1667
|
+
const n = e ?? Gt();
|
|
1647
1668
|
delete n.numbers, n.state = t.state, t.speakerLabels && (n.labels = t.speakerLabels), n.lastSeq = Math.max(n.lastSeq, t.lastSeq), n.spans = t.spans.map((r) => ({ wallStart: r.wallStart, wallEnd: r.wallEnd ?? null, mediaStart: r.mediaStart, mediaEnd: r.mediaEnd ?? null }));
|
|
1648
1669
|
for (const r of t.segments) {
|
|
1649
1670
|
const s = r.scriptPos;
|
|
@@ -1655,7 +1676,7 @@ function gr(t, e) {
|
|
|
1655
1676
|
start: r.start,
|
|
1656
1677
|
end: r.end,
|
|
1657
1678
|
text: r.text,
|
|
1658
|
-
words:
|
|
1679
|
+
words: on(r.seq, r.words),
|
|
1659
1680
|
catchup: !!r.catchup,
|
|
1660
1681
|
corrected: !!r.corrected,
|
|
1661
1682
|
settled: !!r.settled,
|
|
@@ -1704,7 +1725,7 @@ function gr(t, e) {
|
|
|
1704
1725
|
])
|
|
1705
1726
|
), n;
|
|
1706
1727
|
}
|
|
1707
|
-
function
|
|
1728
|
+
function si(t, e) {
|
|
1708
1729
|
const n = e ?? {};
|
|
1709
1730
|
return !t || !Object.keys(t).length ? n : Object.keys(n).length ? { ...t, ...n } : t;
|
|
1710
1731
|
}
|
|
@@ -1736,7 +1757,7 @@ function ll(t, e) {
|
|
|
1736
1757
|
start: r.start,
|
|
1737
1758
|
end: r.end,
|
|
1738
1759
|
text: r.text,
|
|
1739
|
-
words: r.words ?
|
|
1760
|
+
words: r.words ? on(r.seq, r.words) : (s == null ? void 0 : s.words) ?? [],
|
|
1740
1761
|
catchup: !!r.catchup,
|
|
1741
1762
|
corrected: (s == null ? void 0 : s.corrected) ?? !1,
|
|
1742
1763
|
settled: (s == null ? void 0 : s.settled) ?? !1,
|
|
@@ -1745,7 +1766,7 @@ function ll(t, e) {
|
|
|
1745
1766
|
confidence: r.confidence ?? (s == null ? void 0 : s.confidence),
|
|
1746
1767
|
latencyS: r.latencyS,
|
|
1747
1768
|
language: r.language,
|
|
1748
|
-
translations:
|
|
1769
|
+
translations: si(s == null ? void 0 : s.translations, r.translations),
|
|
1749
1770
|
scriptPos: r.scriptPos ?? (s == null ? void 0 : s.scriptPos),
|
|
1750
1771
|
scriptFrom: r.scriptPos != null ? r.scriptFrom ?? void 0 : s == null ? void 0 : s.scriptFrom
|
|
1751
1772
|
}), r.speakerName && (t.speakers[r.speaker] = r.speakerName);
|
|
@@ -1767,7 +1788,7 @@ function ll(t, e) {
|
|
|
1767
1788
|
case "transcript.amended": {
|
|
1768
1789
|
const r = t.segments.get(e.seq);
|
|
1769
1790
|
if (r && r.corrected && ol(r.words, e)) {
|
|
1770
|
-
r.text = e.text, r.words =
|
|
1791
|
+
r.text = e.text, r.words = on(e.seq, e.tail.words);
|
|
1771
1792
|
break;
|
|
1772
1793
|
}
|
|
1773
1794
|
if (r && !r.corrected) {
|
|
@@ -1775,7 +1796,7 @@ function ll(t, e) {
|
|
|
1775
1796
|
const s = String(e.text).split(/\s+/).filter(Boolean);
|
|
1776
1797
|
if (e.tail && e.tail.replaced <= r.words.length) {
|
|
1777
1798
|
const a = r.words.slice(0, r.words.length - e.tail.replaced);
|
|
1778
|
-
r.words =
|
|
1799
|
+
r.words = on(e.seq, [...a, ...e.tail.words]);
|
|
1779
1800
|
} else s.length === r.words.length && (r.words = r.words.map((a, o) => ({ ...a, text: s[o] })));
|
|
1780
1801
|
if ((n = e.scriptWords) != null && n.length) {
|
|
1781
1802
|
const a = (c) => c.toLowerCase().replace(/[^\p{L}\p{N}]/gu, ""), o = (e.fixes ?? []).filter((c) => String(c.kind ?? "").endsWith("script") && String(c.orig ?? "").trim()), l = (c) => {
|
|
@@ -1823,7 +1844,7 @@ function ll(t, e) {
|
|
|
1823
1844
|
suppressed: !!r.suppressed,
|
|
1824
1845
|
unclear: !!r.unclear,
|
|
1825
1846
|
language: r.language,
|
|
1826
|
-
translations: a ? s.translations :
|
|
1847
|
+
translations: a ? s.translations : si(s == null ? void 0 : s.translations, r.translations),
|
|
1827
1848
|
provisional: !!r.provisional,
|
|
1828
1849
|
translationLatencyS: r.translationLatencyS
|
|
1829
1850
|
}), r.speakerName && (t.speakers[r.speaker] = r.speakerName), r.settled) for (const o of r.seqs) {
|
|
@@ -1837,7 +1858,7 @@ function ll(t, e) {
|
|
|
1837
1858
|
if (r) {
|
|
1838
1859
|
r.text = e.text, r.corrected = !e.reverted || r.corrected;
|
|
1839
1860
|
const s = String(e.text).split(/\s+/).filter(Boolean);
|
|
1840
|
-
Array.isArray(e.words) ? r.words =
|
|
1861
|
+
Array.isArray(e.words) ? r.words = on(e.seq, e.words) : s.length === r.words.length && (r.words = r.words.map((a, o) => ({ ...a, text: s[o], prob: o === e.wordIdx ? 1 : a.prob }))), r.translations = {};
|
|
1841
1862
|
}
|
|
1842
1863
|
if (typeof e.sentenceId == "number") {
|
|
1843
1864
|
const s = t.sentences.get(e.sentenceId);
|
|
@@ -1930,19 +1951,19 @@ function Rn(t, e) {
|
|
|
1930
1951
|
return n.get(e) ?? n.size + 1 + e;
|
|
1931
1952
|
}
|
|
1932
1953
|
const ml = /^\s*speaker\s+\d+\s*$/i;
|
|
1933
|
-
function
|
|
1954
|
+
function ii(t) {
|
|
1934
1955
|
return t && t.trim() && !ml.test(t) ? t : void 0;
|
|
1935
1956
|
}
|
|
1936
|
-
function
|
|
1957
|
+
function Ri(t, e) {
|
|
1937
1958
|
var n;
|
|
1938
|
-
return
|
|
1959
|
+
return ii(t.speakers[e]) ?? ii((n = t.speakerIds[e]) == null ? void 0 : n.name);
|
|
1939
1960
|
}
|
|
1940
1961
|
function Ur(t, e) {
|
|
1941
|
-
return e < 0 ? "" :
|
|
1962
|
+
return e < 0 ? "" : Ri(t, e) ?? `Speaker ${Rn(t, e)}`;
|
|
1942
1963
|
}
|
|
1943
|
-
function
|
|
1964
|
+
function Pi(t, e) {
|
|
1944
1965
|
if (e < 0) return "?";
|
|
1945
|
-
const n =
|
|
1966
|
+
const n = Ri(t, e);
|
|
1946
1967
|
return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((s) => s[0]).join("") || `S${Rn(t, e)}`).toUpperCase() : `S${Rn(t, e)}`;
|
|
1947
1968
|
}
|
|
1948
1969
|
function Nl(t) {
|
|
@@ -1990,30 +2011,30 @@ const Tl = /* @__PURE__ */ new Set([
|
|
|
1990
2011
|
"invalid_request",
|
|
1991
2012
|
"aborted",
|
|
1992
2013
|
"unauthorized"
|
|
1993
|
-
]),
|
|
2014
|
+
]), $i = {
|
|
1994
2015
|
internal: "Something went wrong on our side. Please try again.",
|
|
1995
2016
|
unavailable: "VocalStack is briefly unavailable. Please try again in a moment.",
|
|
1996
2017
|
engine_unavailable: "No transcription engine is available right now. Please try again in a moment.",
|
|
1997
2018
|
engine_lost: "The transcription engine stopped. Please try again.",
|
|
1998
2019
|
capacity_exceeded: "Every transcription engine is busy right now. Please try again in a moment.",
|
|
1999
2020
|
timeout: "That took too long. Please try again."
|
|
2000
|
-
}, Or =
|
|
2021
|
+
}, Or = $i.internal, fr = "Can't reach VocalStack. Check your connection.", ai = {
|
|
2001
2022
|
NotAllowedError: "The browser blocked this. Allow it for this site, then try again.",
|
|
2002
2023
|
NotSupportedError: "The audio couldn't be loaded. Try again in a moment.",
|
|
2003
2024
|
AbortError: "It was cancelled."
|
|
2004
2025
|
};
|
|
2005
|
-
function
|
|
2026
|
+
function jt(t) {
|
|
2006
2027
|
const e = t, n = typeof (e == null ? void 0 : e.code) == "string" ? e.code : void 0, r = typeof (e == null ? void 0 : e.status) == "number" ? e.status : void 0, s = e == null ? void 0 : e.details;
|
|
2007
2028
|
if (n || r && r >= 400) {
|
|
2008
2029
|
const o = typeof (e == null ? void 0 : e.requestId) == "string" && e.requestId ? { requestId: e.requestId } : {};
|
|
2009
|
-
return n && Tl.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: r, details: s, ...o } : n === "unavailable" && r === void 0 ? { message: fr, code: n, details: s, ...o } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : fr, code: n, status: r, details: s, ...o } : { message: n &&
|
|
2030
|
+
return n && Tl.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: r, details: s, ...o } : n === "unavailable" && r === void 0 ? { message: fr, code: n, details: s, ...o } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : fr, code: n, status: r, details: s, ...o } : { message: n && $i[n] || Or, code: n, status: r, details: s, ...o };
|
|
2010
2031
|
}
|
|
2011
2032
|
const a = (e == null ? void 0 : e.name) ?? "";
|
|
2012
|
-
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 &&
|
|
2033
|
+
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && ji(t instanceof Error ? t : new Error(String(t))), { message: fr }) : ai[a] ? { message: ai[a] } : t instanceof Error && a === "Error" && !(t instanceof vi) ? { message: t.message } : { message: Or };
|
|
2013
2034
|
}
|
|
2014
|
-
const
|
|
2035
|
+
const Qi = "https://api.vocalstack.com", Pr = wi(null);
|
|
2015
2036
|
function Bt() {
|
|
2016
|
-
const t =
|
|
2037
|
+
const t = $a(Pr);
|
|
2017
2038
|
if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
|
|
2018
2039
|
return t;
|
|
2019
2040
|
}
|
|
@@ -2021,15 +2042,15 @@ function wl(t) {
|
|
|
2021
2042
|
return t.value ? /* @__PURE__ */ i(Pr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(vl, { ...t });
|
|
2022
2043
|
}
|
|
2023
2044
|
function vl({ children: t, ...e }) {
|
|
2024
|
-
const n =
|
|
2045
|
+
const n = Bi(e);
|
|
2025
2046
|
return /* @__PURE__ */ i(Pr.Provider, { value: n, children: t });
|
|
2026
2047
|
}
|
|
2027
2048
|
const Ll = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
2028
2049
|
function kl(t) {
|
|
2029
2050
|
return Ll.test(t);
|
|
2030
2051
|
}
|
|
2031
|
-
function
|
|
2032
|
-
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || kl(t.id)), s = (t.baseUrl ??
|
|
2052
|
+
function Bi(t) {
|
|
2053
|
+
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || kl(t.id)), s = (t.baseUrl ?? Qi).replace(/\/$/, ""), a = k(t.token);
|
|
2033
2054
|
a.current = t.token;
|
|
2034
2055
|
const o = !!t.token, l = ze(() => async () => {
|
|
2035
2056
|
const h = a.current;
|
|
@@ -2047,7 +2068,7 @@ function Wi(t) {
|
|
|
2047
2068
|
h = !1;
|
|
2048
2069
|
};
|
|
2049
2070
|
}, [r, l]);
|
|
2050
|
-
const d = t.client ?? null, M = ze(() => d ?? new
|
|
2071
|
+
const d = t.client ?? null, M = ze(() => d ?? new Li({ baseUrl: s, token: o && !e ? l : void 0 }), [d, s, o, l, e]);
|
|
2051
2072
|
return ze(() => {
|
|
2052
2073
|
if (e) return { client: M, origin: s, owner: !1, shareCode: null, listen: e, bearer: l, cred: { listenerToken: e.token }, readAs: { listenerToken: e.token } };
|
|
2053
2074
|
if (n) return { client: M, origin: s, owner: !1, shareCode: null, listen: null, bearer: l, cred: { listenerToken: n }, readAs: { listenerToken: n } };
|
|
@@ -2091,7 +2112,7 @@ function Il(t, e) {
|
|
|
2091
2112
|
d && (r(M), a(!1), l(null));
|
|
2092
2113
|
}).catch((M) => {
|
|
2093
2114
|
if (!d) return;
|
|
2094
|
-
const h =
|
|
2115
|
+
const h = jt(M);
|
|
2095
2116
|
h.code === "not_found" || h.status === 404 ? a(!0) : l(h);
|
|
2096
2117
|
}), () => {
|
|
2097
2118
|
d = !1;
|
|
@@ -2119,7 +2140,7 @@ function Ol(t, e) {
|
|
|
2119
2140
|
};
|
|
2120
2141
|
}, [t, e]), n;
|
|
2121
2142
|
}
|
|
2122
|
-
async function
|
|
2143
|
+
async function oi(t, e, n = {}) {
|
|
2123
2144
|
const r = new URLSearchParams();
|
|
2124
2145
|
for (const [o, l] of Object.entries(n.query ?? {})) l != null && r.set(o, l);
|
|
2125
2146
|
t.shareCode && r.set("shareCode", t.shareCode), t.listen && r.set("listenerToken", t.listen.token);
|
|
@@ -2132,7 +2153,7 @@ async function ui(t, e, n = {}) {
|
|
|
2132
2153
|
return fetch(`${t.origin}${e}${a ? `${e.includes("?") ? "&" : "?"}${a}` : ""}`, { method: n.method ?? "GET", headers: s, body: n.body === void 0 ? void 0 : JSON.stringify(n.body) });
|
|
2133
2154
|
}
|
|
2134
2155
|
const pr = /* @__PURE__ */ new Map();
|
|
2135
|
-
function
|
|
2156
|
+
function Vi() {
|
|
2136
2157
|
const t = Bt(), [e, n] = L(pr.get(t.origin) ?? null);
|
|
2137
2158
|
return D(() => {
|
|
2138
2159
|
pr.has(t.origin) || t.client.languages.list().then((r) => {
|
|
@@ -2141,11 +2162,11 @@ function Fi() {
|
|
|
2141
2162
|
});
|
|
2142
2163
|
}, [t]), e;
|
|
2143
2164
|
}
|
|
2144
|
-
function
|
|
2165
|
+
function Hi(t, e) {
|
|
2145
2166
|
const [n, r] = L(null), [s, a] = L(null), [o, l] = L(0);
|
|
2146
2167
|
return D(() => {
|
|
2147
2168
|
let c = !0;
|
|
2148
|
-
return t().then((u) => c && r(u)).catch((u) => c && a(
|
|
2169
|
+
return t().then((u) => c && r(u)).catch((u) => c && a(jt(u))), () => {
|
|
2149
2170
|
c = !1;
|
|
2150
2171
|
};
|
|
2151
2172
|
}, [...e, o]), { data: n, error: s, reload: () => l((c) => c + 1) };
|
|
@@ -2154,14 +2175,14 @@ const bl = (t) => new Promise((e) => setTimeout(e, t)), Cl = 2500, xl = 72;
|
|
|
2154
2175
|
function Sl(t, e) {
|
|
2155
2176
|
const n = Bt(), r = k(n);
|
|
2156
2177
|
r.current = n;
|
|
2157
|
-
const [s, a] = L(
|
|
2178
|
+
const [s, a] = L(Gt), o = k(Gt()), l = k(null), c = k(e.lang ?? null), [u, d] = L(!1), [M, h] = L(null), [f, m] = L(!1), y = Ke(() => {
|
|
2158
2179
|
const A = o.current;
|
|
2159
2180
|
a({ ...A });
|
|
2160
2181
|
}, []), j = k(e);
|
|
2161
2182
|
j.current = e, D(() => {
|
|
2162
2183
|
if (!t) return;
|
|
2163
2184
|
let A = !0, T = 0;
|
|
2164
|
-
o.current =
|
|
2185
|
+
o.current = Gt(), a(Gt()), m(!1);
|
|
2165
2186
|
const _ = n.client;
|
|
2166
2187
|
let b = o.current.state;
|
|
2167
2188
|
const te = () => {
|
|
@@ -2183,7 +2204,7 @@ function Sl(t, e) {
|
|
|
2183
2204
|
for await (const le of Z) {
|
|
2184
2205
|
if (!A) break;
|
|
2185
2206
|
if (le.type === "snapshot")
|
|
2186
|
-
o.current = gr(le.snapshot, le.reason === "gap" ? o.current :
|
|
2207
|
+
o.current = gr(le.snapshot, le.reason === "gap" ? o.current : Gt()), y(), te();
|
|
2187
2208
|
else if (le.type === "frame") {
|
|
2188
2209
|
ll(o.current, le.frame);
|
|
2189
2210
|
const Te = le.frame;
|
|
@@ -2192,7 +2213,7 @@ function Sl(t, e) {
|
|
|
2192
2213
|
}
|
|
2193
2214
|
} catch (pe) {
|
|
2194
2215
|
if (!A) return;
|
|
2195
|
-
const le =
|
|
2216
|
+
const le = jt(pe);
|
|
2196
2217
|
if (le.code === "not_found" || le.status === 404) {
|
|
2197
2218
|
m(!0), h(le);
|
|
2198
2219
|
return;
|
|
@@ -2200,7 +2221,7 @@ function Sl(t, e) {
|
|
|
2200
2221
|
try {
|
|
2201
2222
|
await _.recordings.get(t, n.readAs);
|
|
2202
2223
|
} catch (Te) {
|
|
2203
|
-
const je =
|
|
2224
|
+
const je = jt(Te);
|
|
2204
2225
|
if (je.code === "not_found" || je.status === 404) {
|
|
2205
2226
|
m(!0), h(je);
|
|
2206
2227
|
return;
|
|
@@ -2227,7 +2248,7 @@ function Sl(t, e) {
|
|
|
2227
2248
|
A = !1, (K = l.current) == null || K.close(), l.current = null, d(!1);
|
|
2228
2249
|
};
|
|
2229
2250
|
}, [t, n, e.voice]);
|
|
2230
|
-
const [N, p] = L(!1), [
|
|
2251
|
+
const [N, p] = L(!1), [O, C] = L(null), S = k(0), [B, Y] = L(null), ee = Ke((A) => {
|
|
2231
2252
|
var te;
|
|
2232
2253
|
if (c.current = A, (te = l.current) == null || te.setLanguage(A), !t) return;
|
|
2233
2254
|
const T = r.current.client, _ = ++S.current;
|
|
@@ -2243,7 +2264,7 @@ function Sl(t, e) {
|
|
|
2243
2264
|
}).finally(() => {
|
|
2244
2265
|
_ === S.current && p(!1);
|
|
2245
2266
|
});
|
|
2246
|
-
}, [y, t]),
|
|
2267
|
+
}, [y, t]), I = Ke((A, T) => {
|
|
2247
2268
|
const _ = o.current;
|
|
2248
2269
|
let b = !1;
|
|
2249
2270
|
for (const [te, K] of Object.entries(T)) {
|
|
@@ -2251,10 +2272,10 @@ function Sl(t, e) {
|
|
|
2251
2272
|
v && (v.translations = { ...v.translations, [A]: K }, b = !0);
|
|
2252
2273
|
}
|
|
2253
2274
|
b && y();
|
|
2254
|
-
}, [y]), F =
|
|
2255
|
-
return { model: s, connected: u, error: M, notFound: f, clearError: F, setLanguage: ee, mergeTranslations:
|
|
2275
|
+
}, [y]), F = Ke(() => h(null), []);
|
|
2276
|
+
return { model: s, connected: u, error: M, notFound: f, clearError: F, setLanguage: ee, mergeTranslations: I, translating: N, translateFailed: O, shownLang: B };
|
|
2256
2277
|
}
|
|
2257
|
-
const
|
|
2278
|
+
const li = {
|
|
2258
2279
|
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" },
|
|
2259
2280
|
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" },
|
|
2260
2281
|
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é" },
|
|
@@ -2262,13 +2283,13 @@ const di = {
|
|
|
2262
2283
|
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" },
|
|
2263
2284
|
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" }
|
|
2264
2285
|
};
|
|
2265
|
-
function
|
|
2266
|
-
return t &&
|
|
2286
|
+
function Wi(t) {
|
|
2287
|
+
return t && li[t] || li.English;
|
|
2267
2288
|
}
|
|
2268
|
-
async function
|
|
2289
|
+
async function Fi(t) {
|
|
2269
2290
|
var s, a, o, l, c;
|
|
2270
2291
|
const e = await t.json().catch(() => null), n = ((s = e == null ? void 0 : e.error) == null ? void 0 : s.code) ?? (e == null ? void 0 : e.code), r = ((a = e == null ? void 0 : e.error) == null ? void 0 : a.message) ?? (e == null ? void 0 : e.message);
|
|
2271
|
-
return new
|
|
2292
|
+
return new vi(typeof n == "string" ? n : "internal", typeof r == "string" ? r : Or, { 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) });
|
|
2272
2293
|
}
|
|
2273
2294
|
function mr(t) {
|
|
2274
2295
|
switch (t) {
|
|
@@ -2314,18 +2335,18 @@ function $r(t) {
|
|
|
2314
2335
|
}
|
|
2315
2336
|
async function _l(t) {
|
|
2316
2337
|
const e = await fetch(t, { redirect: "manual" });
|
|
2317
|
-
if (e.type !== "opaqueredirect" && !e.ok) throw await
|
|
2338
|
+
if (e.type !== "opaqueredirect" && !e.ok) throw await Fi(e);
|
|
2318
2339
|
$r(t);
|
|
2319
2340
|
}
|
|
2320
2341
|
async function Yl(t, e, n, r = {}) {
|
|
2321
2342
|
var h, f;
|
|
2322
2343
|
const s = await t.client.recordings.export(e, n, { lang: r.lang ?? void 0, ...t.readAs });
|
|
2323
|
-
if (!s.ok) throw await
|
|
2344
|
+
if (!s.ok) throw await Fi(s);
|
|
2324
2345
|
const a = await s.blob(), o = s.headers.get("content-disposition") ?? "", l = (h = /filename\*=UTF-8''([^;]+)/i.exec(o)) == null ? void 0 : h[1], c = (f = /filename="([^"]+)"/i.exec(o)) == null ? void 0 : f[1], u = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, d = URL.createObjectURL(a), M = document.createElement("a");
|
|
2325
2346
|
M.href = d, M.download = u, M.style.display = "none", document.body.appendChild(M), M.click(), M.remove(), window.setTimeout(() => URL.revokeObjectURL(d), 6e4);
|
|
2326
2347
|
}
|
|
2327
2348
|
async function Ul(t, e) {
|
|
2328
|
-
const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((M) => M.lang === r), l = (d) =>
|
|
2349
|
+
const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((M) => M.lang === r), l = (d) => Ci(d, s);
|
|
2329
2350
|
let c = l(await o());
|
|
2330
2351
|
(!c || c.state === "clips" || c.state === "failed") && await e.request();
|
|
2331
2352
|
const u = Date.now() + (e.timeoutMs ?? 10 * 6e4);
|
|
@@ -2334,13 +2355,13 @@ async function Ul(t, e) {
|
|
|
2334
2355
|
if (Date.now() > u) throw new Error("The spoken track is taking too long; try again in a moment.");
|
|
2335
2356
|
await new Promise((d) => setTimeout(d, 4e3)), c = l(await o());
|
|
2336
2357
|
}
|
|
2337
|
-
$r(
|
|
2358
|
+
$r(oo(t.origin, n, r, c.voiceKey, a));
|
|
2338
2359
|
}
|
|
2339
|
-
const
|
|
2360
|
+
const Zi = (t) => {
|
|
2340
2361
|
var e;
|
|
2341
2362
|
return ((e = t == null ? void 0 : t.match(/(?:youtu\.be\/|[?&]v=|\/shorts\/|\/embed\/|\/live\/)([\w-]{11})/)) == null ? void 0 : e[1]) ?? null;
|
|
2342
|
-
}, Rl = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`,
|
|
2343
|
-
function
|
|
2363
|
+
}, Rl = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, ci = 0.3, Pl = 1.5;
|
|
2364
|
+
function Gi(t, e, n) {
|
|
2344
2365
|
var s;
|
|
2345
2366
|
const r = (s = t.words[t.words.length - 1]) == null ? void 0 : s.end;
|
|
2346
2367
|
return r != null && r > t.start ? r : t.end != null && t.end > t.start ? t.end : (e == null ? void 0 : e.start) ?? n;
|
|
@@ -2349,7 +2370,7 @@ function $l(t, e, n) {
|
|
|
2349
2370
|
var c, u;
|
|
2350
2371
|
const r = t[e];
|
|
2351
2372
|
if (!r) return !1;
|
|
2352
|
-
const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) -
|
|
2373
|
+
const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - ci, a = t[e + 1], o = Gi(r, a, r.start + 4) + Pl, l = a ? Math.min(o, (((u = a.words[0]) == null ? void 0 : u.start) ?? a.start) - ci) : o;
|
|
2353
2374
|
return n >= s && n < Math.max(l, s + 0.5);
|
|
2354
2375
|
}
|
|
2355
2376
|
function Ql(t, e, n) {
|
|
@@ -2378,24 +2399,24 @@ function Bl(t, e, n = 0) {
|
|
|
2378
2399
|
const o = () => {
|
|
2379
2400
|
let Y = s.parentElement;
|
|
2380
2401
|
for (let ee = 0; ee < 4 && Y; ee++) {
|
|
2381
|
-
const
|
|
2382
|
-
if (
|
|
2402
|
+
const I = Y.querySelector("[data-transport]");
|
|
2403
|
+
if (I) return I;
|
|
2383
2404
|
Y = Y.parentElement;
|
|
2384
2405
|
}
|
|
2385
2406
|
return null;
|
|
2386
2407
|
}, l = () => {
|
|
2387
|
-
const Y = o(), ee = Y ? Y.offsetHeight : 0,
|
|
2388
|
-
return { vis:
|
|
2408
|
+
const Y = o(), ee = Y ? Y.offsetHeight : 0, I = s.clientHeight - ee - 36, F = s.scrollHeight - s.clientHeight, A = I > 0 ? Math.max(30, Math.round(I * (s.clientHeight - ee) / s.scrollHeight)) : 0;
|
|
2409
|
+
return { vis: I, max: F, size: A };
|
|
2389
2410
|
};
|
|
2390
2411
|
let c = -1, u = null, d = !1, M = 0, h = 0;
|
|
2391
2412
|
const f = () => {
|
|
2392
2413
|
const Y = o();
|
|
2393
2414
|
if (!Y) return;
|
|
2394
|
-
const ee = parseFloat(s.dataset.glassExtra || "0") || 0,
|
|
2395
|
-
if (
|
|
2396
|
-
c =
|
|
2415
|
+
const ee = parseFloat(s.dataset.glassExtra || "0") || 0, I = Y.offsetHeight + 14 + ee;
|
|
2416
|
+
if (I === c) return;
|
|
2417
|
+
c = I;
|
|
2397
2418
|
const F = s.scrollHeight - s.scrollTop - s.clientHeight < 40;
|
|
2398
|
-
s.style.paddingBottom =
|
|
2419
|
+
s.style.paddingBottom = I + "px", F && (s.scrollTop = s.scrollHeight);
|
|
2399
2420
|
}, m = () => {
|
|
2400
2421
|
a.style.opacity = "1", clearTimeout(u), u = setTimeout(() => {
|
|
2401
2422
|
d || (a.style.opacity = "0");
|
|
@@ -2406,15 +2427,15 @@ function Bl(t, e, n = 0) {
|
|
|
2406
2427
|
f();
|
|
2407
2428
|
const ee = o();
|
|
2408
2429
|
ee && ee !== j && y && (j = ee, y.observe(ee));
|
|
2409
|
-
const
|
|
2410
|
-
if (
|
|
2430
|
+
const I = l();
|
|
2431
|
+
if (I.vis < 60 || I.max < 6) {
|
|
2411
2432
|
a.style.opacity = "0", a.style.pointerEvents = "none";
|
|
2412
2433
|
return;
|
|
2413
2434
|
}
|
|
2414
|
-
a.style.pointerEvents = "auto", a.style.height =
|
|
2435
|
+
a.style.pointerEvents = "auto", a.style.height = I.size + "px", a.style.transform = "translateY(" + Math.round(s.scrollTop / I.max * (I.vis - I.size)) + "px)", Y && m();
|
|
2415
2436
|
}, p = parseFloat(getComputedStyle(s).paddingRight) || 0;
|
|
2416
2437
|
a.style.right = (p >= 12 ? -(p - 6) : 2) + "px";
|
|
2417
|
-
const
|
|
2438
|
+
const O = () => N(!0), C = (Y) => {
|
|
2418
2439
|
const ee = l();
|
|
2419
2440
|
ee.vis - ee.size <= 0 || (Y.preventDefault(), Y.stopPropagation(), a.setPointerCapture(Y.pointerId), d = !0, M = Y.clientY, h = s.scrollTop, a.style.cursor = "grabbing", m());
|
|
2420
2441
|
}, S = (Y) => {
|
|
@@ -2424,9 +2445,9 @@ function Bl(t, e, n = 0) {
|
|
|
2424
2445
|
}, B = () => {
|
|
2425
2446
|
d && (d = !1, a.style.cursor = "grab", m());
|
|
2426
2447
|
};
|
|
2427
|
-
return s.addEventListener("scroll",
|
|
2448
|
+
return s.addEventListener("scroll", O, { passive: !0 }), a.addEventListener("pointerdown", C), a.addEventListener("pointermove", S), a.addEventListener("pointerup", B), a.addEventListener("pointercancel", B), typeof ResizeObserver < "u" && (y = new ResizeObserver(() => N()), y.observe(s)), r.current = () => N(), N(), () => {
|
|
2428
2449
|
r.current = () => {
|
|
2429
|
-
}, s.removeEventListener("scroll",
|
|
2450
|
+
}, s.removeEventListener("scroll", O), a.removeEventListener("pointerdown", C), a.removeEventListener("pointermove", S), a.removeEventListener("pointerup", B), a.removeEventListener("pointercancel", B), y == null || y.disconnect(), clearTimeout(u);
|
|
2430
2451
|
};
|
|
2431
2452
|
}, []);
|
|
2432
2453
|
}
|
|
@@ -2457,7 +2478,7 @@ Request id: ${t.requestId}` : t.message;
|
|
|
2457
2478
|
/* @__PURE__ */ i(oe, { d: X.warn, size: 16, style: { color: "var(--conf-low)", flex: "none" } }),
|
|
2458
2479
|
/* @__PURE__ */ g("span", { style: { flex: 1 }, children: [
|
|
2459
2480
|
t.message,
|
|
2460
|
-
u && /* @__PURE__ */ g(
|
|
2481
|
+
u && /* @__PURE__ */ g(Ce, { children: [
|
|
2461
2482
|
" ",
|
|
2462
2483
|
/* @__PURE__ */ i("a", { href: "https://app.vocalstack.com/billing", target: "_blank", rel: "noopener", className: "dev-link", style: { fontSize: "inherit", fontWeight: 600, whiteSpace: "nowrap" }, children: "Add credit" })
|
|
2463
2484
|
] })
|
|
@@ -2466,14 +2487,14 @@ Request id: ${t.requestId}` : t.message;
|
|
|
2466
2487
|
/* @__PURE__ */ i("button", { type: "button", onClick: e, "aria-label": "Dismiss", children: /* @__PURE__ */ i(oe, { d: X.close, size: 14 }) })
|
|
2467
2488
|
] });
|
|
2468
2489
|
}
|
|
2469
|
-
function
|
|
2490
|
+
function qi({ color: t }) {
|
|
2470
2491
|
return /* @__PURE__ */ i("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ i(oe, { d: X.voiceClone, size: 13, sw: 1.7, stroke: t }) });
|
|
2471
2492
|
}
|
|
2472
2493
|
function Vu({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, next: l }) {
|
|
2473
2494
|
return /* @__PURE__ */ g("div", { className: "vs-tt", children: [
|
|
2474
2495
|
/* @__PURE__ */ g("div", { className: "vs-tt__r1", children: [
|
|
2475
2496
|
/* @__PURE__ */ i("div", { className: "vs-tt__chip", children: t }),
|
|
2476
|
-
e ? /* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: e }) : /* @__PURE__ */ g(
|
|
2497
|
+
e ? /* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: e }) : /* @__PURE__ */ g(Ce, { children: [
|
|
2477
2498
|
/* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: n }),
|
|
2478
2499
|
/* @__PURE__ */ i("div", { className: "vs-tt__spk", children: r }),
|
|
2479
2500
|
/* @__PURE__ */ i("div", { className: "vs-tt__voice", children: s })
|
|
@@ -2487,9 +2508,9 @@ function Vu({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, n
|
|
|
2487
2508
|
] });
|
|
2488
2509
|
}
|
|
2489
2510
|
function Wl({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
|
|
2490
|
-
const M = k(null), h = k(!1), [f, m] = L(null), y = Math.max(1, e), j = f ?? u, N = j != null ? Math.min(100, Math.max(0, j * 100)) : t / Math.max(1, y - 1) * 100, p = u != null && d > 0 && f == null ? `width ${d}ms linear, left ${d}ms linear` : "none",
|
|
2491
|
-
var
|
|
2492
|
-
const B = (
|
|
2511
|
+
const M = k(null), h = k(!1), [f, m] = L(null), y = Math.max(1, e), j = f ?? u, N = j != null ? Math.min(100, Math.max(0, j * 100)) : t / Math.max(1, y - 1) * 100, p = u != null && d > 0 && f == null ? `width ${d}ms linear, left ${d}ms linear` : "none", O = (S) => {
|
|
2512
|
+
var I;
|
|
2513
|
+
const B = (I = M.current) == null ? void 0 : I.getBoundingClientRect();
|
|
2493
2514
|
if (!B) return;
|
|
2494
2515
|
const Y = Math.min(1, Math.max(0, (S.clientX - B.left) / Math.max(1, B.width)));
|
|
2495
2516
|
if (o) {
|
|
@@ -2509,10 +2530,10 @@ function Wl({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek:
|
|
|
2509
2530
|
className: "rscrub__track",
|
|
2510
2531
|
onPointerDown: (S) => {
|
|
2511
2532
|
var B;
|
|
2512
|
-
h.current = !0, (B = M.current) == null || B.setPointerCapture(S.pointerId), l == null || l(),
|
|
2533
|
+
h.current = !0, (B = M.current) == null || B.setPointerCapture(S.pointerId), l == null || l(), O(S), S.preventDefault();
|
|
2513
2534
|
},
|
|
2514
2535
|
onPointerMove: (S) => {
|
|
2515
|
-
h.current &&
|
|
2536
|
+
h.current && O(S);
|
|
2516
2537
|
},
|
|
2517
2538
|
onPointerUp: C,
|
|
2518
2539
|
onPointerCancel: C,
|
|
@@ -2546,7 +2567,7 @@ function Zl({ f: t, desk: e, onOpen: n }) {
|
|
|
2546
2567
|
s,
|
|
2547
2568
|
a > 0 && /* @__PURE__ */ i("span", { className: "badge__n", children: a })
|
|
2548
2569
|
] }, s);
|
|
2549
|
-
return /* @__PURE__ */ g(
|
|
2570
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
2550
2571
|
t.script > 0 && r(e ? "SCRIPT FIX" : "SCRIPT", t.script, !0),
|
|
2551
2572
|
t.manual && r(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
|
|
2552
2573
|
] });
|
|
@@ -2565,7 +2586,7 @@ function ql(t, e, n, r) {
|
|
|
2565
2586
|
D(() => {
|
|
2566
2587
|
u.current = /* @__PURE__ */ new Set();
|
|
2567
2588
|
}, [t, e]);
|
|
2568
|
-
const h =
|
|
2589
|
+
const h = Ke((f) => o(f), []);
|
|
2569
2590
|
return D(() => {
|
|
2570
2591
|
if (!t || !e || !a.length || d.current) return;
|
|
2571
2592
|
const f = a.filter((m) => {
|
|
@@ -2590,17 +2611,17 @@ function ql(t, e, n, r) {
|
|
|
2590
2611
|
function Kl(t) {
|
|
2591
2612
|
return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
|
|
2592
2613
|
}
|
|
2593
|
-
function
|
|
2614
|
+
function sn(t, e) {
|
|
2594
2615
|
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 };
|
|
2595
2616
|
}
|
|
2596
2617
|
function Jl(t, e) {
|
|
2597
|
-
const n = t.slice().sort((s, a) =>
|
|
2618
|
+
const n = t.slice().sort((s, a) => sn(s, e).rank - sn(a, e).rank || s.name.localeCompare(a.name, void 0, { numeric: !0 })), r = {};
|
|
2598
2619
|
for (const s of n) {
|
|
2599
|
-
const a =
|
|
2620
|
+
const a = sn(s, e).head;
|
|
2600
2621
|
r[a] = (r[a] ?? 0) + 1;
|
|
2601
2622
|
}
|
|
2602
2623
|
return n.map((s, a) => {
|
|
2603
|
-
const o =
|
|
2624
|
+
const o = sn(s, e).head, l = a === 0 || sn(n[a - 1], e).head !== o;
|
|
2604
2625
|
return { v: s, headOn: l, head: o, headCount: r[o], rule: l ? "0" : "1px solid var(--hair)" };
|
|
2605
2626
|
});
|
|
2606
2627
|
}
|
|
@@ -2615,7 +2636,7 @@ function Xl(t, e, n) {
|
|
|
2615
2636
|
return {
|
|
2616
2637
|
key: o,
|
|
2617
2638
|
name: Ur(e, o),
|
|
2618
|
-
initial:
|
|
2639
|
+
initial: Pi(e, o),
|
|
2619
2640
|
lane: l.lane,
|
|
2620
2641
|
sex: e.speakerSex[o] ?? null,
|
|
2621
2642
|
voiceId: ((c = e.speakerIds[o]) == null ? void 0 : c.voiceId) ?? null,
|
|
@@ -2626,11 +2647,11 @@ function Xl(t, e, n) {
|
|
|
2626
2647
|
});
|
|
2627
2648
|
return s && a.push({ key: -1, name: n, initial: "?", lane: null, sex: null }), a;
|
|
2628
2649
|
}
|
|
2629
|
-
function
|
|
2650
|
+
function ui(t) {
|
|
2630
2651
|
const e = [...t.entries()].filter(([, n]) => n.trim()).sort((n, r) => n[0] - r[0]).map(([n, r]) => `${n}=${r.trim()}`).join(";");
|
|
2631
2652
|
return e ? `cast:${e}` : "";
|
|
2632
2653
|
}
|
|
2633
|
-
function
|
|
2654
|
+
function di(t) {
|
|
2634
2655
|
if (!t || !t.startsWith("cast:")) return null;
|
|
2635
2656
|
const e = /* @__PURE__ */ new Map();
|
|
2636
2657
|
for (const n of t.slice(5).split(";")) {
|
|
@@ -2641,7 +2662,7 @@ function gi(t) {
|
|
|
2641
2662
|
}
|
|
2642
2663
|
return e.size ? e : null;
|
|
2643
2664
|
}
|
|
2644
|
-
function
|
|
2665
|
+
function hi(t, e, n = !0) {
|
|
2645
2666
|
const r = e.filter((o) => !o.cloned), s = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
|
|
2646
2667
|
for (const o of t) {
|
|
2647
2668
|
const c = (o.voiceId ? e.find((h) => h.cloned && !h.auto && h.consent !== "pending" && h.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((h) => h.cloned && h.consent !== "pending" && h.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((h) => h.cloned && h.auto && h.consent !== "pending" && h.speaker === o.key) : void 0) : void 0);
|
|
@@ -2676,10 +2697,10 @@ function ec({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
|
|
|
2676
2697
|
}
|
|
2677
2698
|
),
|
|
2678
2699
|
/* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color: M ? "var(--ink-96)" : "var(--ink-62)", whiteSpace: "nowrap" }, children: d.name }),
|
|
2679
|
-
d.hasVoice && !h && /* @__PURE__ */ i(
|
|
2700
|
+
d.hasVoice && !h && /* @__PURE__ */ i(qi, { color: d.fg ?? (M ? "var(--ink-62)" : "var(--ink-45)") }),
|
|
2680
2701
|
h && /* @__PURE__ */ i("span", { title: h, "aria-label": h, 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: "!" }),
|
|
2681
2702
|
y && /* @__PURE__ */ i("span", { title: "Not enough audio to clone", "aria-label": "Not enough audio to clone", style: { flex: "none", display: "flex", marginRight: -2, color: M ? "var(--ink-45)" : "var(--ink-35)" }, children: /* @__PURE__ */ i(oe, { d: X.micOff, size: 13, sw: 1.7 }) }),
|
|
2682
|
-
(m || f) && /* @__PURE__ */ i("span", { title: f ? "Cloning this voice…" : "No voice clone yet", "aria-label": f ? "Cloning this voice" : "No voice clone yet", style: { flex: "none", width: 10, height: 10, marginRight: -2, display: "flex", alignItems: "center", justifyContent: "center" }, children: f ? /* @__PURE__ */ i(
|
|
2703
|
+
(m || f) && /* @__PURE__ */ i("span", { title: f ? "Cloning this voice…" : "No voice clone yet", "aria-label": f ? "Cloning this voice" : "No voice clone yet", style: { flex: "none", width: 10, height: 10, marginRight: -2, display: "flex", alignItems: "center", justifyContent: "center" }, children: f ? /* @__PURE__ */ i(ht, { 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)" } }) })
|
|
2683
2704
|
]
|
|
2684
2705
|
},
|
|
2685
2706
|
d.key
|
|
@@ -2691,7 +2712,7 @@ function tc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2691
2712
|
D(() => {
|
|
2692
2713
|
N({});
|
|
2693
2714
|
}, [d, M]);
|
|
2694
|
-
const p = (S) => S === m.vcMale.toUpperCase() || S === m.vcFemale.toUpperCase(),
|
|
2715
|
+
const p = (S) => S === m.vcMale.toUpperCase() || S === m.vcFemale.toUpperCase(), O = (S) => {
|
|
2695
2716
|
if (S === m.vcSheet) return !0;
|
|
2696
2717
|
const B = j[S];
|
|
2697
2718
|
return B != null ? !B : !M || !p(S) ? !0 : S === (M === "female" ? m.vcFemale : m.vcMale).toUpperCase();
|
|
@@ -2700,10 +2721,10 @@ function tc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2700
2721
|
h && /* @__PURE__ */ g("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
|
|
2701
2722
|
/* @__PURE__ */ i(oe, { d: X.warnTri, size: 15, sw: 1.7, style: { flex: "none", marginTop: 1, color: "var(--conf-low)" } }),
|
|
2702
2723
|
/* @__PURE__ */ i("span", { style: { flex: 1, minWidth: 0, fontSize: 12.5, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-80)", textWrap: "pretty" }, children: h }),
|
|
2703
|
-
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(
|
|
2724
|
+
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(eo, { value: h, label: "Copy this error" }) })
|
|
2704
2725
|
] }),
|
|
2705
2726
|
t,
|
|
2706
|
-
f && /* @__PURE__ */ g(
|
|
2727
|
+
f && /* @__PURE__ */ g(Ce, { children: [
|
|
2707
2728
|
/* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, padding: "14px 2px 6px", userSelect: "none" }, children: /* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: m.vcSheet }) }),
|
|
2708
2729
|
/* @__PURE__ */ g("div", { role: f.action ? "button" : "status", tabIndex: f.action ? 0 : void 0, title: f.tip, onClick: f.action, onKeyDown: f.action ? (S) => {
|
|
2709
2730
|
(S.key === "Enter" || S.key === " ") && (S.preventDefault(), f.action());
|
|
@@ -2715,16 +2736,16 @@ function tc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2715
2736
|
] })
|
|
2716
2737
|
] })
|
|
2717
2738
|
] }),
|
|
2718
|
-
y.map(({ v: S, headOn: B, head: Y, headCount: ee, rule:
|
|
2719
|
-
const A = Kl(S), T = a === S.id, _ =
|
|
2720
|
-
return /* @__PURE__ */ g(
|
|
2739
|
+
y.map(({ v: S, headOn: B, head: Y, headCount: ee, rule: I }, F) => {
|
|
2740
|
+
const A = Kl(S), T = a === S.id, _ = O(Y), b = (u == null ? void 0 : u(S)) ?? null;
|
|
2741
|
+
return /* @__PURE__ */ g(Qa, { children: [
|
|
2721
2742
|
B && Y === m.vcSheet && /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: F === 0 && !f ? "0" : "1px solid var(--hair)", userSelect: "none" }, children: /* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: Y }) }),
|
|
2722
2743
|
B && Y !== m.vcSheet && /* @__PURE__ */ g(
|
|
2723
2744
|
"button",
|
|
2724
2745
|
{
|
|
2725
2746
|
type: "button",
|
|
2726
2747
|
onClick: (te) => {
|
|
2727
|
-
te.stopPropagation(), N((K) => ({ ...K, [Y]:
|
|
2748
|
+
te.stopPropagation(), N((K) => ({ ...K, [Y]: O(Y) }));
|
|
2728
2749
|
},
|
|
2729
2750
|
title: `${_ ? "Hide " : "Show "}${Y.toLowerCase()} voices`,
|
|
2730
2751
|
"aria-expanded": _,
|
|
@@ -2744,11 +2765,11 @@ function tc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2744
2765
|
"aria-hidden": !_,
|
|
2745
2766
|
tabIndex: _ ? void 0 : -1,
|
|
2746
2767
|
onClick: () => o(S),
|
|
2747
|
-
style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: _ ?
|
|
2768
|
+
style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: _ ? I : "0", display: "flex", alignItems: "center", gap: 11, padding: _ ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: r === S.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: _ ? 1 : 0, maxHeight: _ ? 120 : 0, overflow: "hidden", transition: "max-height 280ms cubic-bezier(.32,.72,0,1),padding 280ms cubic-bezier(.32,.72,0,1),opacity 200ms ease" },
|
|
2748
2769
|
children: [
|
|
2749
2770
|
/* @__PURE__ */ i("span", { title: T ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: T ? "transparent" : S.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: T ? /* @__PURE__ */ i("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : s === S.id ? /* @__PURE__ */ g("span", { className: "vcplay", children: [
|
|
2750
2771
|
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(nc, { height: 13, width: 2.5 }) }),
|
|
2751
|
-
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(
|
|
2772
|
+
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(Ka, { size: 11 }) })
|
|
2752
2773
|
] }) : /* @__PURE__ */ i(oe, { d: S.cloned ? X.voiceClone : S.gender === "female" ? X.venus : S.gender === "male" ? X.mars : X.mic, size: 15, sw: 1.6, style: { color: S.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
|
|
2753
2774
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2754
2775
|
/* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: S.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: S.name }) }),
|
|
@@ -2793,7 +2814,7 @@ function Cr(t, e) {
|
|
|
2793
2814
|
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : rc, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
|
|
2794
2815
|
}
|
|
2795
2816
|
function sc(t, e, n = 0, r) {
|
|
2796
|
-
const s = (r == null ? void 0 : r.id) ?? null, a = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Bt(), { data: c } =
|
|
2817
|
+
const s = (r == null ? void 0 : r.id) ?? null, a = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Bt(), { data: c } = Hi(async () => {
|
|
2797
2818
|
if (!t || !e) return null;
|
|
2798
2819
|
try {
|
|
2799
2820
|
return await l.client.voices.available(t, { recording: s ?? void 0, shareCode: s ? o ?? void 0 : void 0, asOwner: l.owner });
|
|
@@ -2807,21 +2828,21 @@ function ic(t) {
|
|
|
2807
2828
|
return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
|
|
2808
2829
|
}
|
|
2809
2830
|
function ac({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: a }) {
|
|
2810
|
-
const o = Bt(), { data: l, reload: c } =
|
|
2831
|
+
const o = Bt(), { data: l, reload: c } = Hi(async () => {
|
|
2811
2832
|
if (!t || !e) return null;
|
|
2812
2833
|
const K = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
|
|
2813
2834
|
return { recordingId: t, lang: e, rows: K.filter((v) => v.lang === e) };
|
|
2814
2835
|
}, [t, e, o, n]), u = ze(
|
|
2815
2836
|
() => l && l.lang === e && l.recordingId === t ? l.rows : [],
|
|
2816
2837
|
[l, e, t]
|
|
2817
|
-
), d = ze(() =>
|
|
2838
|
+
), d = ze(() => Ci(u, s), [u, s]), M = d ? d.voiceKey || null : s, [h, f] = L(null), [m, y] = L(null), j = k(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${M ?? ""}`, p = Ke(async (K, v) => {
|
|
2818
2839
|
if (!t || !e || !n) return;
|
|
2819
|
-
const ie = v != null && v.size ? null :
|
|
2840
|
+
const ie = v != null && v.size ? null : di(K), ne = v != null && v.size ? v : ie, Z = ne && ne.size ? Object.fromEntries([...ne].map(([Te, je]) => [String(Te), je])) : null, J = `${t}|${e}|${Z ? JSON.stringify(Z) : K ?? ""}`;
|
|
2820
2841
|
if (j.current.has(J)) return;
|
|
2821
2842
|
j.current.add(J), f(J), y(null);
|
|
2822
2843
|
const pe = { langs: [e] };
|
|
2823
2844
|
Z ? pe.voiceBySpeaker = Z : K && (pe.voice = K);
|
|
2824
|
-
const le = await
|
|
2845
|
+
const le = await oi(o, `/v1/recordings/${t}/voice`, { method: "POST", body: pe }).catch(() => null);
|
|
2825
2846
|
if (f((Te) => Te === J ? null : Te), !(le != null && le.ok)) {
|
|
2826
2847
|
j.current.delete(J);
|
|
2827
2848
|
const Te = le ? await le.json().catch(() => null) : null;
|
|
@@ -2829,18 +2850,18 @@ function ac({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2829
2850
|
return;
|
|
2830
2851
|
}
|
|
2831
2852
|
c();
|
|
2832
|
-
}, [t, e, n, o, c]),
|
|
2853
|
+
}, [t, e, n, o, c]), O = Ke(() => {
|
|
2833
2854
|
const K = `${t ?? ""}|${e ?? ""}|`;
|
|
2834
2855
|
for (const v of [...j.current]) v.startsWith(K) && j.current.delete(v);
|
|
2835
2856
|
y(null);
|
|
2836
|
-
}, [t, e]), C = !!d && (d.state === "queued" || d.state === "running") || h === N, S = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : m, B = (a == null ? void 0 : a.join(",")) ?? "", [Y, ee] = L(null),
|
|
2857
|
+
}, [t, e]), C = !!d && (d.state === "queued" || d.state === "running") || h === N, S = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : m, B = (a == null ? void 0 : a.join(",")) ?? "", [Y, ee] = L(null), I = ze(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), F = ze(() => n && B ? B.split(",").map(Number).filter((K) => !I.has(K)) : [], [n, B, I]), A = k(null);
|
|
2837
2858
|
D(() => {
|
|
2838
2859
|
if (!n || !t || !e || !F.length) return;
|
|
2839
2860
|
const K = Y ?? F[0], v = F.find((pe) => pe >= K) ?? F[0], ie = `${t}|${e}|${M ?? ""}`, ne = A.current;
|
|
2840
2861
|
if (ne && ne.key === ie && Math.abs(ne.near - v) < 12 && Date.now() - ne.at < 6e4) return;
|
|
2841
2862
|
A.current = { key: ie, near: v, at: Date.now() };
|
|
2842
|
-
const Z =
|
|
2843
|
-
Z && Z.size ? J.voiceBySpeaker = Object.fromEntries([...Z].map(([pe, le]) => [String(pe), le])) : M && (J.voice = M),
|
|
2863
|
+
const Z = di(M), J = { langs: [e], near: v };
|
|
2864
|
+
Z && Z.size ? J.voiceBySpeaker = Object.fromEntries([...Z].map(([pe, le]) => [String(pe), le])) : M && (J.voice = M), oi(o, `/v1/recordings/${t}/voice`, { method: "POST", body: J }).then((pe) => {
|
|
2844
2865
|
pe.ok || (A.current = null);
|
|
2845
2866
|
}).catch(() => {
|
|
2846
2867
|
A.current = null;
|
|
@@ -2850,20 +2871,20 @@ function ac({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2850
2871
|
D(() => {
|
|
2851
2872
|
if (!T) return;
|
|
2852
2873
|
const K = setInterval(() => {
|
|
2853
|
-
const v =
|
|
2874
|
+
const v = I.size;
|
|
2854
2875
|
v !== _.current.n && (_.current = { n: v, at: Date.now() }), !(Date.now() - _.current.at > 10 * 6e4) && c();
|
|
2855
2876
|
}, 3e3);
|
|
2856
2877
|
return () => clearInterval(K);
|
|
2857
|
-
}, [T, c,
|
|
2878
|
+
}, [T, c, I]);
|
|
2858
2879
|
const b = ze(() => {
|
|
2859
2880
|
if (!t) return [];
|
|
2860
|
-
const K = B ? B.split(",").map(Number).filter((ie) => !n ||
|
|
2861
|
-
return
|
|
2862
|
-
}, [d, t, o, r, B, e, s, n,
|
|
2863
|
-
return { listed: l, rows: u, track: d, renderVoiceId: M, rendering: C, failed: S, clips: b, requestRender: p, forget:
|
|
2881
|
+
const K = B ? B.split(",").map(Number).filter((ie) => !n || I.has(ie)) : void 0, v = d ?? (K != null && K.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
|
|
2882
|
+
return go(v, t, o.origin, r, K);
|
|
2883
|
+
}, [d, t, o, r, B, e, s, n, I]), te = ze(() => new Set(F), [F]);
|
|
2884
|
+
return { listed: l, rows: u, track: d, renderVoiceId: M, rendering: C, failed: S, clips: b, requestRender: p, forget: O, reload: c, setNear: ee, missing: F.length, coming: te };
|
|
2864
2885
|
}
|
|
2865
2886
|
const oc = { share: X.share, delay: X.tabGauge, video: X.video, source: X.tabSources, script: X.tabScript, fix: X.tabFix, ending: X.tabEnding, summary: X.tabSummary, export: X.tabExport, settings: X.tabSettings, sources: X.tabSources, recs: X.mic };
|
|
2866
|
-
function
|
|
2887
|
+
function Ki({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s }) {
|
|
2867
2888
|
const o = s && t.length <= 3, l = t.some((j) => j.key === e), [c, u] = L(null), d = k(null), [M, h] = L(0);
|
|
2868
2889
|
D(() => {
|
|
2869
2890
|
d.current && h(d.current.offsetWidth);
|
|
@@ -2875,13 +2896,13 @@ function ea({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
2875
2896
|
return;
|
|
2876
2897
|
}
|
|
2877
2898
|
if ((c == null ? void 0 : c.k) === N.key) return;
|
|
2878
|
-
const
|
|
2879
|
-
u({ k: N.key, label: N.label, x:
|
|
2899
|
+
const O = j.currentTarget.getBoundingClientRect(), C = j.currentTarget.parentElement.getBoundingClientRect();
|
|
2900
|
+
u({ k: N.key, label: N.label, x: O.left + O.width / 2, y: C.top });
|
|
2880
2901
|
}, m = () => u(null);
|
|
2881
2902
|
let y = null;
|
|
2882
2903
|
if (c) {
|
|
2883
2904
|
const j = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, N = M || 80, p = Math.max(j.l + 8, Math.min(j.r - N - 8, c.x - N / 2));
|
|
2884
|
-
y =
|
|
2905
|
+
y = Ha(
|
|
2885
2906
|
/* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */ g("div", { ref: d, "data-theme": "dark", className: "vs-tip__bubble vs-tip__bubble--top tabtip", style: { position: "fixed", left: p, top: c.y - 8, bottom: "auto", width: "auto", whiteSpace: "nowrap", transform: "translateY(-100%)", zIndex: 2147483e3, pointerEvents: "none" }, children: [
|
|
2886
2907
|
/* @__PURE__ */ i("span", { className: "vs-tip__row", children: /* @__PURE__ */ i("span", { className: "vs-tip__copy", children: c.label }) }),
|
|
2887
2908
|
/* @__PURE__ */ i("span", { className: "vs-tip__arrow", style: { left: Math.round(Math.max(8, Math.min(N - 19, c.x - p - 5.5))) } })
|
|
@@ -2891,13 +2912,13 @@ function ea({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
2891
2912
|
}
|
|
2892
2913
|
return /* @__PURE__ */ g("div", { role: "tablist", className: `tabbar tabbar--icons${s ? "" : " tabbar--desk"}`, "data-desk-tabs": a ? "" : void 0, "data-tab-n": a ? t.length : void 0, style: { marginBottom: r ? 12 : 0 }, onMouseLeave: m, children: [
|
|
2893
2914
|
t.map((j) => {
|
|
2894
|
-
const N = e === j.key, p = o || N,
|
|
2915
|
+
const N = e === j.key, p = o || N, O = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", C = j.icon ?? oc[j.key], S = () => {
|
|
2895
2916
|
m(), n(s && N ? "none" : j.key);
|
|
2896
2917
|
};
|
|
2897
|
-
return s ? /* @__PURE__ */ g("button", { type: "button", role: "tab", "aria-selected": N, title: j.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex:
|
|
2918
|
+
return s ? /* @__PURE__ */ g("button", { type: "button", role: "tab", "aria-selected": N, title: j.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex: O }, onClick: S, children: [
|
|
2898
2919
|
C && /* @__PURE__ */ i(oe, { d: C, size: 15, sw: j.sw ?? 2, style: { flex: "none" } }),
|
|
2899
2920
|
p && /* @__PURE__ */ i("span", { className: "tabbar__label", children: j.label })
|
|
2900
|
-
] }, j.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex:
|
|
2921
|
+
] }, j.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: O }, onMouseEnter: (B) => f(B, j), onMouseMove: (B) => f(B, j), onClick: S, children: /* @__PURE__ */ g("button", { type: "button", role: "tab", "aria-selected": N, "aria-label": j.label, className: `tabbar__tab${N ? " is-on" : ""}${(c == null ? void 0 : c.k) === j.key ? " is-tip" : ""}`, children: [
|
|
2901
2922
|
C && /* @__PURE__ */ i(oe, { d: C, size: 15, sw: j.sw ?? 2, className: "tabbar__icon", style: { flex: "none", transform: N && !o ? "scale(1.12)" : "none" } }),
|
|
2902
2923
|
/* @__PURE__ */ i("span", { className: "tabbar__grow", "data-tab-lw": "", style: { gridTemplateColumns: p ? "1fr" : "0fr", marginLeft: p && C ? 6 : 0 }, children: /* @__PURE__ */ i("span", { className: "tabbar__label", "data-tab-l": "", style: { opacity: p ? 1 : 0, transform: p ? "none" : "translateX(-6px)" }, children: j.label }) })
|
|
2903
2924
|
] }) }, j.key);
|
|
@@ -2927,10 +2948,10 @@ function uc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
|
2927
2948
|
}).finally(() => {
|
|
2928
2949
|
u.current && l(null);
|
|
2929
2950
|
}));
|
|
2930
|
-
}, f = (m, y, j, N) => /* @__PURE__ */ g(
|
|
2951
|
+
}, f = (m, y, j, N) => /* @__PURE__ */ g(Ce, { children: [
|
|
2931
2952
|
/* @__PURE__ */ i(Lr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: N }),
|
|
2932
2953
|
/* @__PURE__ */ g("button", { type: "button", className: "dlrow", disabled: o != null, "aria-busy": o === m || void 0, onClick: () => h(m, y), style: o && o !== m ? { opacity: 0.45 } : void 0, children: [
|
|
2933
|
-
o === m ? /* @__PURE__ */ i(
|
|
2954
|
+
o === m ? /* @__PURE__ */ i(ht, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: j, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
2934
2955
|
/* @__PURE__ */ g("span", { style: { flex: 1, minWidth: 0, display: "flex", flexDirection: "column", gap: 1, textAlign: "left" }, children: [
|
|
2935
2956
|
/* @__PURE__ */ i("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: y.name }),
|
|
2936
2957
|
/* @__PURE__ */ i("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: y.meta })
|
|
@@ -2941,10 +2962,10 @@ function uc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
|
2941
2962
|
return /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
|
|
2942
2963
|
t && f("audio", t, cc, "DOWNLOAD AUDIO"),
|
|
2943
2964
|
e && f("video", e, X.video, "DOWNLOAD VIDEO"),
|
|
2944
|
-
n !== !1 && /* @__PURE__ */ g(
|
|
2965
|
+
n !== !1 && /* @__PURE__ */ g(Ce, { children: [
|
|
2945
2966
|
/* @__PURE__ */ i(Lr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
|
|
2946
2967
|
/* @__PURE__ */ i("div", { className: "fmtgrid", children: br.map((m) => /* @__PURE__ */ g("button", { type: "button", className: "fmtgrid__cell", title: o === m.key ? `Building the ${m.name}…` : m.note, disabled: o != null, "aria-busy": o === m.key || void 0, onClick: () => M(m.key), style: o && o !== m.key ? { opacity: 0.45 } : void 0, children: [
|
|
2947
|
-
o === m.key ? /* @__PURE__ */ i(
|
|
2968
|
+
o === m.key ? /* @__PURE__ */ i(ht, { size: 16, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: s === m.key ? X.check : m.icon, size: 16, sw: 1.6, style: { color: s === m.key ? "var(--brand)" : "var(--ink-62)" } }),
|
|
2948
2969
|
/* @__PURE__ */ i("span", { children: m.name })
|
|
2949
2970
|
] }, m.key)) })
|
|
2950
2971
|
] })
|
|
@@ -3007,11 +3028,11 @@ ${a}`).catch(() => {
|
|
|
3007
3028
|
e ? "Copied" : "Copy"
|
|
3008
3029
|
] })
|
|
3009
3030
|
] }),
|
|
3010
|
-
t.state === "ready" ? /* @__PURE__ */ g(
|
|
3031
|
+
t.state === "ready" ? /* @__PURE__ */ g(Ce, { children: [
|
|
3011
3032
|
/* @__PURE__ */ i("div", { style: { fontSize: 15, fontWeight: 600, lineHeight: 1.3, letterSpacing: "-.15px", color: "var(--ink-96)", textWrap: "pretty" }, children: s }),
|
|
3012
3033
|
/* @__PURE__ */ i("div", { style: { fontSize: 13, fontWeight: 300, lineHeight: 1.55, color: "var(--ink-80)", textWrap: "pretty", whiteSpace: "pre-line" }, children: a })
|
|
3013
3034
|
] }) : t.state === "unavailable" ? l("No summary for this recording.") : t.state === "not_requested" ? t.request ? l("This recording was made without a summary.", { label: "Summarize", onClick: t.request }) : l("Recordings under a minute and files of a batch are not summarised.") : /* @__PURE__ */ g("div", { style: { display: "flex", alignItems: "center", gap: 10, fontSize: 13, fontWeight: 300, color: "var(--ink-45)" }, children: [
|
|
3014
|
-
/* @__PURE__ */ i(
|
|
3035
|
+
/* @__PURE__ */ i(ht, { size: 14, color: "var(--brand)", track: "var(--fill-12)" }),
|
|
3015
3036
|
t.slow ? "Still writing the summary…" : "Writing the summary…"
|
|
3016
3037
|
] })
|
|
3017
3038
|
] });
|
|
@@ -3047,46 +3068,46 @@ function fc(t = !0, e) {
|
|
|
3047
3068
|
}
|
|
3048
3069
|
const pc = "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";
|
|
3049
3070
|
function mc(t, e) {
|
|
3050
|
-
const [n, r] =
|
|
3071
|
+
const [n, r] = po(t), s = e.tabs.map((p) => p.key), a = e.tabbed !== !1, o = e.pinnable ?? s;
|
|
3051
3072
|
let l = n;
|
|
3052
3073
|
[...e.autoPin ?? []].reverse().forEach((p) => {
|
|
3053
3074
|
s.includes(p) && !l.includes(p) && !l.includes(`!${p}`) && (l = [p, ...l]);
|
|
3054
3075
|
});
|
|
3055
3076
|
const c = l;
|
|
3056
3077
|
(e.forcePin ?? []).forEach((p) => {
|
|
3057
|
-
l = l.filter((
|
|
3078
|
+
l = l.filter((O) => O !== `!${p}`), s.includes(p) && !l.includes(p) && (l = [p, ...l]);
|
|
3058
3079
|
});
|
|
3059
3080
|
const u = (p) => (e.forcePin ?? []).includes(p) && !c.includes(p), d = a ? l.filter((p) => s.includes(p) && o.includes(p)) : [], M = s.filter((p) => !d.includes(p)), h = e.cur && e.cur !== "none" && M.includes(e.cur) ? e.cur : e.pref && M.includes(e.pref) ? e.pref : M[0] ?? null, f = (p) => {
|
|
3060
|
-
const
|
|
3061
|
-
return
|
|
3062
|
-
}, m = (p,
|
|
3081
|
+
const O = M.filter((C) => C !== p);
|
|
3082
|
+
return O[M.indexOf(p)] ?? O[O.length - 1] ?? null;
|
|
3083
|
+
}, m = (p, O) => {
|
|
3063
3084
|
if (!o.includes(p)) return;
|
|
3064
3085
|
const C = d.filter((S) => S !== p);
|
|
3065
|
-
if (C.splice(
|
|
3086
|
+
if (C.splice(O ?? C.length, 0, p), h === p) {
|
|
3066
3087
|
const S = f(p);
|
|
3067
3088
|
S && e.onPick(S);
|
|
3068
3089
|
}
|
|
3069
3090
|
r([...C.filter((S) => !u(S) || S === p), ...c.filter((S) => !C.includes(S) && S !== `!${p}`)]);
|
|
3070
3091
|
}, y = (p) => {
|
|
3071
|
-
r([...c.filter((
|
|
3092
|
+
r([...c.filter((O) => O !== p && O !== `!${p}`), ...(e.autoPin ?? []).includes(p) ? [`!${p}`] : []]), e.onPick(p);
|
|
3072
3093
|
}, j = (p) => {
|
|
3073
|
-
var
|
|
3074
|
-
return ((
|
|
3094
|
+
var O;
|
|
3095
|
+
return ((O = e.tabs.find((C) => C.key === p)) == null ? void 0 : O.label) ?? p;
|
|
3075
3096
|
}, N = (p) => {
|
|
3076
|
-
const
|
|
3097
|
+
const O = d.includes(p), C = s.includes(p);
|
|
3077
3098
|
return {
|
|
3078
|
-
show: C && (!a ||
|
|
3079
|
-
pinned:
|
|
3080
|
-
order:
|
|
3081
|
-
pill: a && C && o.includes(p) && M.length > 0 && (
|
|
3082
|
-
title:
|
|
3083
|
-
toggle: () =>
|
|
3099
|
+
show: C && (!a || O || h === p),
|
|
3100
|
+
pinned: O,
|
|
3101
|
+
order: O ? d.indexOf(p) + 1 : 1e3,
|
|
3102
|
+
pill: a && C && o.includes(p) && M.length > 0 && (O || M.length > 1),
|
|
3103
|
+
title: O ? `Unpin — return ${j(p)} to the tabs` : `Pin ${j(p)} open above the tabs`,
|
|
3104
|
+
toggle: () => O ? y(p) : m(p)
|
|
3084
3105
|
};
|
|
3085
3106
|
};
|
|
3086
3107
|
return { id: t, tabbed: a && M.length > 1, cur: h, seq: d, pinnable: o, tabKeys: M, stripTabs: e.tabs.filter((p) => M.includes(p.key)), panel: N, pin: m, unpin: y };
|
|
3087
3108
|
}
|
|
3088
3109
|
function Nc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
3089
|
-
return yc(t), /* @__PURE__ */ g(
|
|
3110
|
+
return yc(t), /* @__PURE__ */ g(Ce, { children: [
|
|
3090
3111
|
e.map((o) => {
|
|
3091
3112
|
const l = t.panel(o);
|
|
3092
3113
|
if (!l.show) return null;
|
|
@@ -3096,7 +3117,7 @@ function Nc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
|
3096
3117
|
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: X.pin, size: 12, sw: 2 }) })
|
|
3097
3118
|
] }, o) : null;
|
|
3098
3119
|
}),
|
|
3099
|
-
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(
|
|
3120
|
+
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(Ki, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
|
|
3100
3121
|
o !== "none" && (s ?? (() => {
|
|
3101
3122
|
}))(o);
|
|
3102
3123
|
}, fold: !1 }) })
|
|
@@ -3112,58 +3133,58 @@ function yc(t) {
|
|
|
3112
3133
|
r !== N && (r && r.removeAttribute("data-grip-hot"), r = N, N && N.setAttribute("data-grip-hot", ""));
|
|
3113
3134
|
}, o = (N) => N.col.querySelector("[data-desk-tabs]"), l = (N) => {
|
|
3114
3135
|
var ee;
|
|
3115
|
-
const p = N.el.getBoundingClientRect(),
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
}),
|
|
3136
|
+
const p = N.el.getBoundingClientRect(), O = N.el.cloneNode(!0);
|
|
3137
|
+
O.querySelectorAll("*").forEach((I) => {
|
|
3138
|
+
I.style.animation = "none", I.style.transition = "none";
|
|
3139
|
+
}), O.querySelectorAll("iframe,video").forEach((I) => {
|
|
3119
3140
|
const F = document.createElement("div");
|
|
3120
|
-
F.style.cssText = "width:100%;height:100%;background:#000",
|
|
3121
|
-
}),
|
|
3141
|
+
F.style.cssText = "width:100%;height:100%;background:#000", I.replaceWith(F);
|
|
3142
|
+
}), O.removeAttribute("data-panel-key"), O.querySelectorAll("[data-panel-key],[data-pin-pill]").forEach((I) => I.hasAttribute("data-pin-pill") ? I.remove() : I.removeAttribute("data-panel-key")), Object.assign(O.style, { position: "fixed", left: `${p.left}px`, top: `${p.top}px`, width: `${p.width}px`, height: `${p.height}px`, margin: "0", zIndex: "1000", pointerEvents: "none", opacity: ".95", borderRadius: "14px", boxShadow: "0 14px 36px rgba(0,0,0,.3)", animation: "none", transition: "none", cursor: "move", willChange: "transform", contain: "layout paint", overflow: "hidden" });
|
|
3122
3143
|
const C = getComputedStyle(N.el);
|
|
3123
|
-
for (let
|
|
3124
|
-
const F = C[
|
|
3125
|
-
F.startsWith("--") &&
|
|
3144
|
+
for (let I = 0; I < C.length; I++) {
|
|
3145
|
+
const F = C[I];
|
|
3146
|
+
F.startsWith("--") && O.style.setProperty(F, C.getPropertyValue(F));
|
|
3126
3147
|
}
|
|
3127
|
-
|
|
3148
|
+
O.style.fontFamily = C.fontFamily, O.style.color = C.color;
|
|
3128
3149
|
let S = N.el.parentElement, B = "";
|
|
3129
3150
|
for (; S && !B; ) {
|
|
3130
|
-
const
|
|
3131
|
-
|
|
3151
|
+
const I = getComputedStyle(S).backgroundColor;
|
|
3152
|
+
I && !/rgba?\(0, 0, 0, 0\)|transparent/.test(I) && !/\/ 0\.|, 0\.\d+\)$/.test(I) && (B = I), S = S.parentElement;
|
|
3132
3153
|
}
|
|
3133
|
-
|
|
3134
|
-
N.snap[
|
|
3154
|
+
O.style.background = B || getComputedStyle(document.body).backgroundColor, document.body.appendChild(O), N.orig = [...N.col.querySelectorAll("[data-panel-key]")].map((I) => [I, I.style.order]), N.snap = {}, N.orig.forEach(([I]) => {
|
|
3155
|
+
N.snap[I.getAttribute("data-panel-key")] = I.getBoundingClientRect();
|
|
3135
3156
|
}), N.tabsSnap = ((ee = o(N)) == null ? void 0 : ee.getBoundingClientRect()) ?? null;
|
|
3136
3157
|
const Y = N.col.querySelector("[data-panel-grid]");
|
|
3137
|
-
N.grid = !!Y && getComputedStyle(Y).display === "grid", N.el.classList.add("is-dragging"), document.documentElement.style.cursor = "move", document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", Object.assign(N, { on: !0, clone:
|
|
3158
|
+
N.grid = !!Y && getComputedStyle(Y).display === "grid", N.el.classList.add("is-dragging"), document.documentElement.style.cursor = "move", document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", Object.assign(N, { on: !0, clone: O }), a(null);
|
|
3138
3159
|
}, c = () => {
|
|
3139
3160
|
const N = s;
|
|
3140
3161
|
if (!N || !N.on || N.px == null || N.py == null) return;
|
|
3141
3162
|
N.raf = 0, N.clone.style.transform = `translate3d(${N.px - N.x0}px,${N.py - N.y0}px,0)`;
|
|
3142
|
-
const p = e.current,
|
|
3143
|
-
let
|
|
3163
|
+
const p = e.current, O = N.key, C = o(N), S = p.seq.includes(O), B = S || p.tabKeys.length > 1, Y = C && N.tabsSnap, ee = !Y || N.py < Y.top + Y.height / 2 ? B ? "pin" : null : "tabs";
|
|
3164
|
+
let I = null;
|
|
3144
3165
|
if (ee === "pin") {
|
|
3145
|
-
const A = p.seq.filter((_) => _ !==
|
|
3146
|
-
S && p.seq.indexOf(
|
|
3147
|
-
} else ee === "tabs" && S && (
|
|
3148
|
-
const F =
|
|
3166
|
+
const A = p.seq.filter((_) => _ !== O).map((_) => N.snap[_]).filter(Boolean), T = N.grid ? A.filter((_) => _.bottom < N.py || _.top <= N.py && _.left + _.width / 2 < N.px).length : A.filter((_) => _.top + _.height / 2 < N.py).length;
|
|
3167
|
+
S && p.seq.indexOf(O) === T || (I = { zone: ee, idx: T });
|
|
3168
|
+
} else ee === "tabs" && S && (I = { zone: ee });
|
|
3169
|
+
const F = I ? I.zone + (I.idx ?? "") : "";
|
|
3149
3170
|
if (F !== N.sig) {
|
|
3150
|
-
if (N.sig = F, N.target =
|
|
3171
|
+
if (N.sig = F, N.target = I, N.orig.forEach(([A, T]) => {
|
|
3151
3172
|
A.style.order = T;
|
|
3152
|
-
}), (
|
|
3153
|
-
const A = p.seq.filter((T) => T !==
|
|
3154
|
-
A.splice(
|
|
3173
|
+
}), (I == null ? void 0 : I.zone) === "pin") {
|
|
3174
|
+
const A = p.seq.filter((T) => T !== O);
|
|
3175
|
+
A.splice(I.idx, 0, O), A.forEach((T, _) => {
|
|
3155
3176
|
const b = N.col.querySelector(`[data-panel-key="${T}"]`);
|
|
3156
3177
|
b && (b.style.order = String(_ + 1));
|
|
3157
3178
|
});
|
|
3158
|
-
} else (
|
|
3159
|
-
C && ((
|
|
3179
|
+
} else (I == null ? void 0 : I.zone) === "tabs" && (N.el.style.order = "998");
|
|
3180
|
+
C && ((I == null ? void 0 : I.zone) === "tabs" ? C.setAttribute("data-drop-hot", "") : C.removeAttribute("data-drop-hot"));
|
|
3160
3181
|
}
|
|
3161
3182
|
}, u = (N) => {
|
|
3162
|
-
var
|
|
3183
|
+
var O;
|
|
3163
3184
|
const p = s;
|
|
3164
3185
|
if (s = null, !(!p || !p.on) && (p.raf && cancelAnimationFrame(p.raf), p.clone.remove(), p.orig.forEach(([C, S]) => {
|
|
3165
3186
|
C.style.order = S;
|
|
3166
|
-
}), p.el.classList.remove("is-dragging"), document.documentElement.style.cursor = "", document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", (
|
|
3187
|
+
}), p.el.classList.remove("is-dragging"), document.documentElement.style.cursor = "", document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", (O = o(p)) == null || O.removeAttribute("data-drop-hot"), N && p.target)) {
|
|
3167
3188
|
const C = e.current;
|
|
3168
3189
|
p.target.zone === "tabs" ? C.seq.includes(p.key) && C.unpin(p.key) : C.pin(p.key, p.target.idx);
|
|
3169
3190
|
}
|
|
@@ -3185,10 +3206,10 @@ function yc(t) {
|
|
|
3185
3206
|
r && ((Y = r.closest("[data-tab-col]")) == null ? void 0 : Y.getAttribute("data-tab-col")) === n && a(null);
|
|
3186
3207
|
return;
|
|
3187
3208
|
}
|
|
3188
|
-
const
|
|
3189
|
-
if (!
|
|
3190
|
-
const S = C.getBoundingClientRect(), B = parseFloat(getComputedStyle(
|
|
3191
|
-
a(N.clientY >= S.top && N.clientY <= S.top + B ?
|
|
3209
|
+
const O = p.closest("[data-panel-key]"), C = O == null ? void 0 : O.firstElementChild;
|
|
3210
|
+
if (!O || !C || !e.current.tabbed || !e.current.pinnable.includes(O.getAttribute("data-panel-key")) || p.closest("[role=button],[role=tab],button,a,input,textarea,select,iframe,[data-pin-pill],[contenteditable=true]")) return a(null);
|
|
3211
|
+
const S = C.getBoundingClientRect(), B = parseFloat(getComputedStyle(O).getPropertyValue("--grip-h")) || 30;
|
|
3212
|
+
a(N.clientY >= S.top && N.clientY <= S.top + B ? O : null);
|
|
3192
3213
|
}, h = (N) => {
|
|
3193
3214
|
if (!r || N.button !== 0) return;
|
|
3194
3215
|
const p = d(r);
|
|
@@ -3204,7 +3225,7 @@ function yc(t) {
|
|
|
3204
3225
|
}, [n]);
|
|
3205
3226
|
}
|
|
3206
3227
|
function Tc({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
|
|
3207
|
-
const [o, l] =
|
|
3228
|
+
const [o, l] = No(t), c = k(null), u = k(null);
|
|
3208
3229
|
wc(u), D(() => {
|
|
3209
3230
|
document.documentElement.style.setProperty("--colw", `${o}px`);
|
|
3210
3231
|
}, [o]);
|
|
@@ -3212,19 +3233,19 @@ function Tc({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
|
|
|
3212
3233
|
const f = c.current, m = f == null ? void 0 : f.parentElement;
|
|
3213
3234
|
if (h.button !== 0 || !f || !m) return;
|
|
3214
3235
|
h.preventDefault();
|
|
3215
|
-
const y = h.currentTarget, j = getComputedStyle(m), N = m.clientWidth - parseFloat(j.paddingLeft) - parseFloat(j.paddingRight) - (parseFloat(j.columnGap) || 0), p = 320,
|
|
3236
|
+
const y = h.currentTarget, j = getComputedStyle(m), N = m.clientWidth - parseFloat(j.paddingLeft) - parseFloat(j.paddingRight) - (parseFloat(j.columnGap) || 0), p = 320, O = 320, C = Math.max(p, N - O), S = h.clientX, B = f.getBoundingClientRect().width;
|
|
3216
3237
|
let Y = B;
|
|
3217
3238
|
y.classList.add("is-on");
|
|
3218
3239
|
const ee = { cur: document.body.style.cursor, sel: document.body.style.userSelect };
|
|
3219
3240
|
document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
|
|
3220
|
-
const
|
|
3241
|
+
const I = (A) => {
|
|
3221
3242
|
Y = Math.round(Math.min(C, Math.max(p, B + (S - A.clientX)))), f.style.flexBasis = `${Y}px`, document.documentElement.style.setProperty("--colw", `${Y}px`);
|
|
3222
3243
|
}, F = () => {
|
|
3223
|
-
window.removeEventListener("pointermove",
|
|
3244
|
+
window.removeEventListener("pointermove", I), window.removeEventListener("pointerup", F), window.removeEventListener("pointercancel", F), document.body.style.cursor = ee.cur, document.body.style.userSelect = ee.sel, y.classList.remove("is-on"), l(Y);
|
|
3224
3245
|
};
|
|
3225
|
-
window.addEventListener("pointermove",
|
|
3246
|
+
window.addEventListener("pointermove", I), window.addEventListener("pointerup", F), window.addEventListener("pointercancel", F);
|
|
3226
3247
|
}, M = r ? { display: "none" } : void 0;
|
|
3227
|
-
return /* @__PURE__ */ g(
|
|
3248
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
3228
3249
|
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "colgrip", style: { marginRight: -n, ...M }, children: /* @__PURE__ */ i("div", { className: "colgrip__bar", style: { left: -(n / 2 + 6) }, title: "Drag to resize · double-click to reset", onPointerDown: d, onDoubleClick: () => l(null) }) }),
|
|
3229
3250
|
/* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...M }, children: s ? a : /* @__PURE__ */ i("div", { ref: u, "data-panel-grid": "", className: "panelgrid", children: a }) })
|
|
3230
3251
|
] });
|
|
@@ -3262,36 +3283,36 @@ function vc(t) {
|
|
|
3262
3283
|
}
|
|
3263
3284
|
const Lc = 1500, kc = 3e5;
|
|
3264
3285
|
function jc(t) {
|
|
3265
|
-
const e = Bt(), [n, r] = L(null), [s, a] = L(null), [o, l] = L(null), [c, u] = L(null), d = k(null), M = k(null), h = k(null), f = k(0), m =
|
|
3286
|
+
const e = Bt(), [n, r] = L(null), [s, a] = L(null), [o, l] = L(null), [c, u] = L(null), d = k(null), M = k(null), h = k(null), f = k(0), m = Ke(() => {
|
|
3266
3287
|
h.current && (clearTimeout(h.current), h.current = null), d.current && (d.current.pause(), d.current.removeAttribute("src"), d.current.load(), d.current = null), M.current && (URL.revokeObjectURL(M.current), M.current = null);
|
|
3267
|
-
}, []), y =
|
|
3288
|
+
}, []), y = Ke(() => {
|
|
3268
3289
|
f.current += 1, m(), a(null), l(null);
|
|
3269
|
-
}, [m]), j =
|
|
3290
|
+
}, [m]), j = Ke(() => {
|
|
3270
3291
|
y(), r(null);
|
|
3271
3292
|
}, [y]);
|
|
3272
3293
|
D(() => () => {
|
|
3273
3294
|
f.current += 1, m();
|
|
3274
3295
|
}, [m]);
|
|
3275
|
-
const N =
|
|
3296
|
+
const N = Ke((p) => {
|
|
3276
3297
|
f.current += 1;
|
|
3277
|
-
const
|
|
3298
|
+
const O = f.current;
|
|
3278
3299
|
if (m(), r(p.id), a(null), l(null), u(null), !t) return;
|
|
3279
3300
|
let C = p.previewUrl ? `${e.origin}${p.previewUrl}` : `${e.origin}/v1/voices/preview?voice=${encodeURIComponent(p.id)}&lang=${encodeURIComponent(t)}`;
|
|
3280
3301
|
Qn() === "caf" && (C += `${C.includes("?") ? "&" : "?"}format=caf`);
|
|
3281
3302
|
const S = Date.now();
|
|
3282
3303
|
e.shareCode && C.includes("recording=") && (C += `&shareCode=${encodeURIComponent(e.shareCode)}`);
|
|
3283
3304
|
const B = async () => {
|
|
3284
|
-
if (f.current !==
|
|
3305
|
+
if (f.current !== O) return;
|
|
3285
3306
|
let Y;
|
|
3286
3307
|
try {
|
|
3287
3308
|
const A = e.owner ? await e.bearer() : void 0;
|
|
3288
3309
|
Y = await fetch(C, { headers: A ? { Authorization: `Bearer ${A}` } : {} });
|
|
3289
3310
|
} catch (A) {
|
|
3290
|
-
if (f.current !==
|
|
3291
|
-
l(null), u(
|
|
3311
|
+
if (f.current !== O) return;
|
|
3312
|
+
l(null), u(jt(A));
|
|
3292
3313
|
return;
|
|
3293
3314
|
}
|
|
3294
|
-
if (f.current !==
|
|
3315
|
+
if (f.current !== O) return;
|
|
3295
3316
|
if (Y.status === 202 || Y.status === 503) {
|
|
3296
3317
|
if (Date.now() - S > kc) {
|
|
3297
3318
|
l(null), u({ message: "This voice is still being fetched. Try it again in a moment." });
|
|
@@ -3309,28 +3330,28 @@ function jc(t) {
|
|
|
3309
3330
|
return;
|
|
3310
3331
|
}
|
|
3311
3332
|
const ee = await Y.blob();
|
|
3312
|
-
if (f.current !==
|
|
3333
|
+
if (f.current !== O) return;
|
|
3313
3334
|
l(null), M.current = URL.createObjectURL(ee);
|
|
3314
|
-
const
|
|
3315
|
-
|
|
3335
|
+
const I = new Audio(M.current);
|
|
3336
|
+
I.playsInline = !0;
|
|
3316
3337
|
const F = () => {
|
|
3317
|
-
f.current ===
|
|
3338
|
+
f.current === O && (m(), a(null));
|
|
3318
3339
|
};
|
|
3319
|
-
|
|
3320
|
-
f.current ===
|
|
3340
|
+
I.onended = F, I.onerror = F, d.current = I, I.play().then(() => {
|
|
3341
|
+
f.current === O && a(p.id);
|
|
3321
3342
|
}).catch(F);
|
|
3322
3343
|
};
|
|
3323
3344
|
B();
|
|
3324
3345
|
}, [t, m, e]);
|
|
3325
3346
|
return { armId: n, sampleId: s, dlId: o, error: c, clearError: () => u(null), arm: N, stop: y, reset: j };
|
|
3326
3347
|
}
|
|
3327
|
-
const xr = 0.05,
|
|
3348
|
+
const xr = 0.05, Ji = (t, e) => {
|
|
3328
3349
|
let n = 0;
|
|
3329
3350
|
for (let r = 0; r < t.length; r++) t[r].start <= e + 1e-6 && (n = r);
|
|
3330
3351
|
return n;
|
|
3331
3352
|
};
|
|
3332
3353
|
function zc(t, e, n, r) {
|
|
3333
|
-
const s = Math.max(0, e), a = r > 0 && s >= r - xr, o = t.length && t[0].start <= s + 1e-6 ?
|
|
3354
|
+
const s = Math.max(0, e), a = r > 0 && s >= r - xr, o = t.length && t[0].start <= s + 1e-6 ? Ji(t, s) : -1;
|
|
3334
3355
|
return o < 0 ? { t: s, playing: n && !a, sentenceId: null, offset: 0, ended: a } : { t: s, playing: n && !a, sentenceId: t[o].sentenceId ?? null, offset: Math.max(0, s - t[o].start), ended: a };
|
|
3335
3356
|
}
|
|
3336
3357
|
function Dn(t, e, n) {
|
|
@@ -3345,18 +3366,18 @@ function Dn(t, e, n) {
|
|
|
3345
3366
|
}
|
|
3346
3367
|
a = Math.max(0, Math.min(r, a));
|
|
3347
3368
|
const o = r > 0 && a >= r - xr && s < 0;
|
|
3348
|
-
return { t: a, playing: t.playing && !o, index: s >= 0 ? s :
|
|
3369
|
+
return { t: a, playing: t.playing && !o, index: s >= 0 ? s : Ji(e, a) };
|
|
3349
3370
|
}
|
|
3350
3371
|
function Ic(t) {
|
|
3351
3372
|
return t.on ? t.want || t.relang ? "asked" : t.playing && (t.preparing || t.starting != null) ? "line" : null : null;
|
|
3352
3373
|
}
|
|
3353
|
-
const
|
|
3374
|
+
const Mi = "Preparing the voice…";
|
|
3354
3375
|
function Oc(t) {
|
|
3355
3376
|
if (!t.lang) return null;
|
|
3356
3377
|
const e = t.langName;
|
|
3357
3378
|
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;
|
|
3358
3379
|
}
|
|
3359
|
-
function
|
|
3380
|
+
function Xi(t, e) {
|
|
3360
3381
|
const [n, r] = L(null), [s, a] = L(!1);
|
|
3361
3382
|
return D(() => {
|
|
3362
3383
|
if (!t) {
|
|
@@ -3416,22 +3437,22 @@ function Cc({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
3416
3437
|
}
|
|
3417
3438
|
);
|
|
3418
3439
|
}
|
|
3419
|
-
function
|
|
3440
|
+
function ea(t, e, n) {
|
|
3420
3441
|
var c;
|
|
3421
3442
|
const r = t[e], s = n && r.translations[n] && r.language !== n ? r.translations[n] : null;
|
|
3422
3443
|
if (!s && r.words.length) return r.words;
|
|
3423
|
-
const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l =
|
|
3444
|
+
const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = Gi(r, t[e + 1], r.start + Math.max(2, a.length * 0.4));
|
|
3424
3445
|
return Ql(a, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
|
|
3425
3446
|
}
|
|
3426
|
-
function
|
|
3447
|
+
function gi(t, e, n) {
|
|
3427
3448
|
if (!t.engaged || e !== t.idx || !n.length) return null;
|
|
3428
|
-
if (!t.wordSync) return t.clipPos ?
|
|
3449
|
+
if (!t.wordSync) return t.clipPos ? xi(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
|
|
3429
3450
|
const r = t.t;
|
|
3430
3451
|
let s = -1;
|
|
3431
3452
|
for (let a = 0; a < n.length && n[a].start <= r; a++) s = a;
|
|
3432
3453
|
return s;
|
|
3433
3454
|
}
|
|
3434
|
-
function
|
|
3455
|
+
function Zt(t, e) {
|
|
3435
3456
|
var l;
|
|
3436
3457
|
const n = t.clipPos;
|
|
3437
3458
|
if (t.wordSync || t.timed || !n || !(n.dur > 0)) return t.t;
|
|
@@ -3453,15 +3474,15 @@ function xc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3453
3474
|
const W = setTimeout(() => y(!0), 300);
|
|
3454
3475
|
return () => clearTimeout(W);
|
|
3455
3476
|
}, [h]);
|
|
3456
|
-
const j = r && !m, N = k(!1), [p,
|
|
3477
|
+
const j = r && !m, N = k(!1), [p, O] = L(!1), C = (W, ye = []) => {
|
|
3457
3478
|
var G, ke;
|
|
3458
3479
|
if (!(N.current && (W === "pauseVideo" || W === "seekTo" || W === "setPlaybackRate")))
|
|
3459
3480
|
try {
|
|
3460
3481
|
(ke = (G = f.current) == null ? void 0 : G.contentWindow) == null || ke.postMessage(JSON.stringify({ event: "command", func: W, args: ye }), "*");
|
|
3461
3482
|
} catch {
|
|
3462
3483
|
}
|
|
3463
|
-
}, S = k(null), B = k(!1), Y = k(!1), ee = k(!1),
|
|
3464
|
-
|
|
3484
|
+
}, S = k(null), B = k(!1), Y = k(!1), ee = k(!1), I = k(a);
|
|
3485
|
+
I.current = a;
|
|
3465
3486
|
const F = k(d);
|
|
3466
3487
|
F.current = d;
|
|
3467
3488
|
const A = k(o);
|
|
@@ -3470,10 +3491,10 @@ function xc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3470
3491
|
var ye, G;
|
|
3471
3492
|
const W = Y.current || ee.current;
|
|
3472
3493
|
if (W !== N.current)
|
|
3473
|
-
if (N.current = W,
|
|
3494
|
+
if (N.current = W, O(W), (ye = A.current) == null || ye.call(A, W), W) {
|
|
3474
3495
|
if (C("playVideo"), F.current) return;
|
|
3475
|
-
we.current &&
|
|
3476
|
-
} else T.current && !F.current && (T.current = !1, we.current || (G =
|
|
3496
|
+
we.current && I.current && (T.current = !0, I.current());
|
|
3497
|
+
} else T.current && !F.current && (T.current = !1, we.current || (G = I.current) == null || G.call(I));
|
|
3477
3498
|
}, b = k(n);
|
|
3478
3499
|
b.current = n;
|
|
3479
3500
|
const te = k(M);
|
|
@@ -3563,7 +3584,7 @@ function xc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3563
3584
|
}, [Z]), /* @__PURE__ */ g("div", { className: `txyt${p ? " txyt--ad" : ""}`, children: [
|
|
3564
3585
|
/* @__PURE__ */ i("iframe", { ref: f, onLoad: je, referrerPolicy: "strict-origin-when-cross-origin", src: `https://www.youtube-nocookie.com/embed/${t}?enablejsapi=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, title: e, allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" }),
|
|
3565
3586
|
!p && /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: a, style: { cursor: a ? "pointer" : "default" } }),
|
|
3566
|
-
/* @__PURE__ */ i("div", { className: `txyt__paused${ie && !p && !H ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(
|
|
3587
|
+
/* @__PURE__ */ i("div", { className: `txyt__paused${ie && !p && !H ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(cn, { size: 44 }) }) }),
|
|
3567
3588
|
p && /* @__PURE__ */ i("div", { className: "txyt__ad", "aria-live": "polite", children: "Ad on YouTube · the transcript carries on after it" }),
|
|
3568
3589
|
H && /* @__PURE__ */ g("div", { className: "txyt__gone", children: [
|
|
3569
3590
|
/* @__PURE__ */ i("span", { children: "YouTube no longer has this part of the broadcast" }),
|
|
@@ -3571,7 +3592,7 @@ function xc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3571
3592
|
] })
|
|
3572
3593
|
] });
|
|
3573
3594
|
}
|
|
3574
|
-
const Sc = /* @__PURE__ */ g(
|
|
3595
|
+
const Sc = /* @__PURE__ */ g(Ce, { children: [
|
|
3575
3596
|
/* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
3576
3597
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
3577
3598
|
] }), Dc = /* @__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" });
|
|
@@ -3580,7 +3601,7 @@ function Ac({ player: t, size: e }) {
|
|
|
3580
3601
|
return /* @__PURE__ */ i("button", { type: "button", className: `mutebtn${e < 36 ? " mutebtn--sm" : e > 36 ? " mutebtn--lg" : ""}`, "aria-label": n, title: n, "aria-pressed": t.muted, onClick: t.toggleMute, children: /* @__PURE__ */ i(oe, { d: t.muted ? X.volumeOff : X.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
|
|
3581
3602
|
}
|
|
3582
3603
|
function Ec() {
|
|
3583
|
-
const [t, e] = L(""), n = k(null), r =
|
|
3604
|
+
const [t, e] = L(""), n = k(null), r = Ke((s) => {
|
|
3584
3605
|
clearTimeout(n.current), e(s), n.current = setTimeout(() => e(""), 3e3);
|
|
3585
3606
|
}, []);
|
|
3586
3607
|
return D(() => () => clearTimeout(n.current), []), [t, r];
|
|
@@ -3589,7 +3610,7 @@ const _c = 0.2, Yc = 140, Uc = 320;
|
|
|
3589
3610
|
function Rc(t, e) {
|
|
3590
3611
|
const n = k(t);
|
|
3591
3612
|
n.current = t;
|
|
3592
|
-
const r = k(0), s = k(1), a =
|
|
3613
|
+
const r = k(0), s = k(1), a = Ke((o, l) => {
|
|
3593
3614
|
cancelAnimationFrame(r.current);
|
|
3594
3615
|
const c = s.current, u = performance.now(), d = () => {
|
|
3595
3616
|
const M = l > 0 ? Math.min(1, (performance.now() - u) / l) : 1;
|
|
@@ -3614,18 +3635,18 @@ function Pc(t, e, n, r) {
|
|
|
3614
3635
|
N.current = n;
|
|
3615
3636
|
const p = k(r);
|
|
3616
3637
|
p.current = r;
|
|
3617
|
-
const [
|
|
3638
|
+
const [O, C] = L(!1), S = k(!1), B = (Q) => {
|
|
3618
3639
|
S.current = Q, C(Q);
|
|
3619
3640
|
}, Y = (Q, H) => {
|
|
3620
3641
|
var E;
|
|
3621
3642
|
return (E = s.current) == null ? void 0 : E.call(s, Q, H);
|
|
3622
|
-
}, ee = l === 1 || l === 3,
|
|
3643
|
+
}, ee = l === 1 || l === 3, I = k(null), F = k(null), A = ze(() => ({
|
|
3623
3644
|
muted: !0,
|
|
3624
3645
|
bind: (Q) => {
|
|
3625
3646
|
s.current = Q, Q || (a.current = !1);
|
|
3626
3647
|
},
|
|
3627
3648
|
onInfo: (Q) => {
|
|
3628
|
-
if (Q.ready && !a.current && (a.current = !0, o.current && (o.current = !1, Y("playVideo"))), typeof Q.state == "number" && (
|
|
3649
|
+
if (Q.ready && !a.current && (a.current = !0, o.current && (o.current = !1, Y("playVideo"))), typeof Q.state == "number" && (I.current = Q.state, c(Q.state)), typeof Q.muted == "boolean" && (F.current = Q.muted), typeof Q.t == "number") {
|
|
3629
3650
|
const H = Q.t - N.current;
|
|
3630
3651
|
j.current = { t: H, at: performance.now() }, H < y.current && y.current - H < 0.35 || m(Math.max(0, H));
|
|
3631
3652
|
}
|
|
@@ -3644,8 +3665,8 @@ function Pc(t, e, n, r) {
|
|
|
3644
3665
|
};
|
|
3645
3666
|
return Q = requestAnimationFrame(H), () => cancelAnimationFrame(Q);
|
|
3646
3667
|
}, [l]), D(() => {
|
|
3647
|
-
!
|
|
3648
|
-
}, [
|
|
3668
|
+
!O || r == null || r < f + 1.5 || (B(!1), Y("playVideo"));
|
|
3669
|
+
}, [O, r, f]), D(() => {
|
|
3649
3670
|
r == null && S.current && (B(!1), Y("playVideo"));
|
|
3650
3671
|
}, [r]);
|
|
3651
3672
|
const T = t.length ? ((De = t[t.length - 1].words[t[t.length - 1].words.length - 1]) == null ? void 0 : De.end) ?? t[t.length - 1].start + 4 : 0, _ = e || T || 1, b = ze(() => {
|
|
@@ -3658,7 +3679,7 @@ function Pc(t, e, n, r) {
|
|
|
3658
3679
|
Y("seekTo", [H + N.current, !0]), j.current = { t: H, at: performance.now() }, m(H), K((E) => E + 1);
|
|
3659
3680
|
}, ie = k(!1), ne = k(void 0), Z = (Q) => {
|
|
3660
3681
|
window.clearTimeout(ne.current), ne.current = window.setTimeout(() => {
|
|
3661
|
-
!ie.current || Q <= 0 ||
|
|
3682
|
+
!ie.current || Q <= 0 || I.current === 1 || I.current === 3 || (Y("playVideo"), Z(Q - 1));
|
|
3662
3683
|
}, 1200);
|
|
3663
3684
|
};
|
|
3664
3685
|
D(() => () => window.clearTimeout(ne.current), []);
|
|
@@ -3703,9 +3724,9 @@ function Pc(t, e, n, r) {
|
|
|
3703
3724
|
};
|
|
3704
3725
|
if (!await H(() => a.current, 1e4)) return null;
|
|
3705
3726
|
ve(!0);
|
|
3706
|
-
for (let E = 0; E < 5 &&
|
|
3707
|
-
Y("playVideo"), await H(() =>
|
|
3708
|
-
return
|
|
3727
|
+
for (let E = 0; E < 5 && I.current !== 1; E++)
|
|
3728
|
+
Y("playVideo"), await H(() => I.current === 1, 1500);
|
|
3729
|
+
return I.current !== 1 ? null : h.current ? (ve(!0), !1) : (ve(!1), await Q(1200), I.current === 1 && F.current === !1 ? !0 : (ve(!0), Y("playVideo"), !1));
|
|
3709
3730
|
},
|
|
3710
3731
|
playing: ee,
|
|
3711
3732
|
ended: l === 0,
|
|
@@ -3718,8 +3739,8 @@ function Pc(t, e, n, r) {
|
|
|
3718
3739
|
seekRow: Te,
|
|
3719
3740
|
toggleMute: () => {
|
|
3720
3741
|
const Q = !M.current;
|
|
3721
|
-
ve(Q), !Q && !h.current &&
|
|
3722
|
-
|
|
3742
|
+
ve(Q), !Q && !h.current && I.current === 1 && setTimeout(() => {
|
|
3743
|
+
I.current === 2 && !M.current && (ve(!0), Y("playVideo"));
|
|
3723
3744
|
}, 900);
|
|
3724
3745
|
},
|
|
3725
3746
|
seekFrac: (Q) => v(Math.max(0, Math.min(1, Q)) * _),
|
|
@@ -3743,7 +3764,7 @@ function Pc(t, e, n, r) {
|
|
|
3743
3764
|
clearError: () => {
|
|
3744
3765
|
},
|
|
3745
3766
|
has: !0,
|
|
3746
|
-
edgeWait:
|
|
3767
|
+
edgeWait: O,
|
|
3747
3768
|
wordSync: !0,
|
|
3748
3769
|
pause: pe,
|
|
3749
3770
|
setVolume: (Q) => Y("setVolume", [Math.round(Q * 100)])
|
|
@@ -3753,8 +3774,8 @@ function $c(t, e, n, r, s = 0, a = null) {
|
|
|
3753
3774
|
var E;
|
|
3754
3775
|
const o = k(null), [l, c] = L(!1), [u, d] = L(0), [M, h] = L(!1), f = k(M);
|
|
3755
3776
|
f.current = M;
|
|
3756
|
-
const m = k(!1), [y, j] = L(null), [N, p] = L(!1),
|
|
3757
|
-
|
|
3777
|
+
const m = k(!1), [y, j] = L(null), [N, p] = L(!1), O = k(s);
|
|
3778
|
+
O.current = s;
|
|
3758
3779
|
const C = k(null), [S, B] = L(0);
|
|
3759
3780
|
D(() => {
|
|
3760
3781
|
p(!1);
|
|
@@ -3763,16 +3784,16 @@ function $c(t, e, n, r, s = 0, a = null) {
|
|
|
3763
3784
|
c(!1), o.current = null;
|
|
3764
3785
|
return;
|
|
3765
3786
|
}
|
|
3766
|
-
const V =
|
|
3787
|
+
const V = Oi(t), ce = O.current;
|
|
3767
3788
|
return V.preload = "metadata", V.muted = f.current || m.current, V.onplay = () => c(!0), V.onpause = () => c(!1), V.onended = () => c(!1), V.onloadedmetadata = () => {
|
|
3768
3789
|
p(!0), V.currentTime = ((x == null ? void 0 : x.t) ?? 0) + ce, x != null && x.playing && V.play().catch((W) => {
|
|
3769
|
-
x.asked && (W == null ? void 0 : W.name) === "NotAllowedError" || j(
|
|
3790
|
+
x.asked && (W == null ? void 0 : W.name) === "NotAllowedError" || j(jt(W));
|
|
3770
3791
|
});
|
|
3771
3792
|
}, V.onerror = () => {
|
|
3772
3793
|
c(!1);
|
|
3773
|
-
const W = V.error, ye =
|
|
3774
|
-
|
|
3775
|
-
vc(G == null ? void 0 : G.message) ||
|
|
3794
|
+
const W = V.error, ye = co(W, !1);
|
|
3795
|
+
so(t).then((G) => {
|
|
3796
|
+
vc(G == null ? void 0 : G.message) || zi(W), o.current === V && (j({ message: (G == null ? void 0 : G.message) ?? ye }), G != null && G.permanent || (o.current = null));
|
|
3776
3797
|
});
|
|
3777
3798
|
}, o.current = V, () => {
|
|
3778
3799
|
C.current = { t: Math.max(0, V.currentTime - ce), playing: !V.paused && !V.ended }, V.pause(), V.onplay = V.onpause = V.onended = V.onloadedmetadata = V.onerror = null, o.current = null;
|
|
@@ -3780,8 +3801,8 @@ function $c(t, e, n, r, s = 0, a = null) {
|
|
|
3780
3801
|
}, [t, S]), D(() => () => {
|
|
3781
3802
|
C.current = null;
|
|
3782
3803
|
}, []);
|
|
3783
|
-
const Y = n.length ? ((E = n[n.length - 1].words[n[n.length - 1].words.length - 1]) == null ? void 0 : E.end) ?? n[n.length - 1].start + 4 : 0, ee = s > 0 || r != null && N && o.current != null && Number.isFinite(o.current.duration) && o.current.duration > r + 1,
|
|
3784
|
-
F.current =
|
|
3804
|
+
const Y = n.length ? ((E = n[n.length - 1].words[n[n.length - 1].words.length - 1]) == null ? void 0 : E.end) ?? n[n.length - 1].start + 4 : 0, ee = s > 0 || r != null && N && o.current != null && Number.isFinite(o.current.duration) && o.current.duration > r + 1, I = !ee && N && o.current && Number.isFinite(o.current.duration) && o.current.duration || r || Y || 1, F = k(I);
|
|
3805
|
+
F.current = I;
|
|
3785
3806
|
const A = k(ee);
|
|
3786
3807
|
A.current = ee;
|
|
3787
3808
|
const T = k(a);
|
|
@@ -3803,7 +3824,7 @@ function $c(t, e, n, r, s = 0, a = null) {
|
|
|
3803
3824
|
const V = () => {
|
|
3804
3825
|
const ce = o.current;
|
|
3805
3826
|
if (ce) {
|
|
3806
|
-
const W = ce.currentTime -
|
|
3827
|
+
const W = ce.currentTime - O.current;
|
|
3807
3828
|
if (A.current && W >= F.current) {
|
|
3808
3829
|
ce.pause(), d(F.current);
|
|
3809
3830
|
return;
|
|
@@ -3825,9 +3846,9 @@ function $c(t, e, n, r, s = 0, a = null) {
|
|
|
3825
3846
|
return x;
|
|
3826
3847
|
}, [n, u]), [ie, ne] = L(0), Z = (x) => {
|
|
3827
3848
|
const V = T.current != null ? Math.min(x, Math.max(0, T.current - 0.5)) : x, ce = o.current;
|
|
3828
|
-
d(V), ce && (ce.currentTime = V +
|
|
3849
|
+
d(V), ce && (ce.currentTime = V + O.current), ne((W) => W + 1);
|
|
3829
3850
|
}, J = (x) => {
|
|
3830
|
-
(x == null ? void 0 : x.name) !== "AbortError" && j(
|
|
3851
|
+
(x == null ? void 0 : x.name) !== "AbortError" && j(jt(x));
|
|
3831
3852
|
}, pe = () => {
|
|
3832
3853
|
var V;
|
|
3833
3854
|
const x = o.current;
|
|
@@ -3847,12 +3868,12 @@ function $c(t, e, n, r, s = 0, a = null) {
|
|
|
3847
3868
|
K(!1);
|
|
3848
3869
|
return;
|
|
3849
3870
|
}
|
|
3850
|
-
x.currentTime <
|
|
3871
|
+
x.currentTime < O.current && (x.currentTime = O.current), u >= I - 0.25 && Z(0), x.play().catch(J);
|
|
3851
3872
|
}, le = (x) => {
|
|
3852
3873
|
const V = n[Math.max(0, Math.min(n.length - 1, x))];
|
|
3853
3874
|
V && Z(V.start);
|
|
3854
|
-
}, Te = (x) => Z(Math.max(0, Math.min(1, x)) *
|
|
3855
|
-
const V = Dn(x, n,
|
|
3875
|
+
}, Te = (x) => Z(Math.max(0, Math.min(1, x)) * I), je = (x) => {
|
|
3876
|
+
const V = Dn(x, n, I);
|
|
3856
3877
|
Z(V.t);
|
|
3857
3878
|
const ce = o.current;
|
|
3858
3879
|
if (ce) {
|
|
@@ -3877,7 +3898,7 @@ function $c(t, e, n, r, s = 0, a = null) {
|
|
|
3877
3898
|
autoplay: async () => {
|
|
3878
3899
|
const x = o.current;
|
|
3879
3900
|
if (!x) return null;
|
|
3880
|
-
x.currentTime <
|
|
3901
|
+
x.currentTime < O.current && (x.currentTime = O.current);
|
|
3881
3902
|
const V = (ce) => {
|
|
3882
3903
|
f.current = ce, x.muted = ce || m.current, h(ce);
|
|
3883
3904
|
};
|
|
@@ -3896,7 +3917,7 @@ function $c(t, e, n, r, s = 0, a = null) {
|
|
|
3896
3917
|
playing: l,
|
|
3897
3918
|
t: u,
|
|
3898
3919
|
idx: v,
|
|
3899
|
-
dur:
|
|
3920
|
+
dur: I,
|
|
3900
3921
|
muted: M,
|
|
3901
3922
|
toggleMute: () => {
|
|
3902
3923
|
const x = !f.current;
|
|
@@ -3911,12 +3932,12 @@ function $c(t, e, n, r, s = 0, a = null) {
|
|
|
3911
3932
|
seekN: ie,
|
|
3912
3933
|
stop: () => {
|
|
3913
3934
|
const x = o.current;
|
|
3914
|
-
x && (x.pause(), x.currentTime =
|
|
3935
|
+
x && (x.pause(), x.currentTime = O.current), d(0);
|
|
3915
3936
|
},
|
|
3916
3937
|
videoAt: (x) => {
|
|
3917
3938
|
const V = o.current;
|
|
3918
3939
|
if (!V || V.paused || V.ended || we.current || Date.now() - Ee.current < 3e3) return;
|
|
3919
|
-
const ce = x +
|
|
3940
|
+
const ce = x + O.current;
|
|
3920
3941
|
Math.abs(V.currentTime - ce) <= 0.2 || (Ee.current = Date.now(), V.currentTime = ce);
|
|
3921
3942
|
},
|
|
3922
3943
|
engaged: l || u > 0,
|
|
@@ -3946,8 +3967,8 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
3946
3967
|
c.current = l ?? c.current;
|
|
3947
3968
|
const u = k(null), [d, M] = L(!1), [h, f] = L(0), [m, y] = L(0), [j, N] = L(!1), p = k(j);
|
|
3948
3969
|
p.current = j;
|
|
3949
|
-
const [
|
|
3950
|
-
A.current =
|
|
3970
|
+
const [O, C] = L(null), [S, B] = L(null), [Y, ee] = L(null), [I, F] = L(null), A = k(I);
|
|
3971
|
+
A.current = I;
|
|
3951
3972
|
const [T, _] = L(null), [b, te] = L(null), [K, v] = L(null), [ie, ne] = L(!1), Z = k(e);
|
|
3952
3973
|
Z.current = e;
|
|
3953
3974
|
const J = k(o), pe = k([]);
|
|
@@ -3956,13 +3977,13 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
3956
3977
|
Te.current = s;
|
|
3957
3978
|
const je = k(a);
|
|
3958
3979
|
je.current = a;
|
|
3959
|
-
const Se =
|
|
3980
|
+
const Se = Ke((U) => {
|
|
3960
3981
|
U.finite = !0, U.coming = (R) => c.current.has(R), U.readAhead = 6, U.readAheadS = 45, U.onWaiting = (R) => B(R), U.onStarting = (R) => ee(R), U.onSentence = (R) => {
|
|
3961
3982
|
if (M(U.playing), R == null) return;
|
|
3962
3983
|
const q = Z.current.findIndex((se) => se.sentenceId === R);
|
|
3963
3984
|
q >= 0 && f(q);
|
|
3964
3985
|
}, U.onError = (R) => {
|
|
3965
|
-
M(U.playing), C(R instanceof
|
|
3986
|
+
M(U.playing), C(R instanceof bi ? { 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." });
|
|
3966
3987
|
}, U.gapBefore = (R, q) => {
|
|
3967
3988
|
if (!J.current) return 0;
|
|
3968
3989
|
const se = Z.current, de = se.find((be) => be.sentenceId === R), Oe = se.find((be) => be.sentenceId === q);
|
|
@@ -3973,7 +3994,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
3973
3994
|
return Le && Date.now() - Le.at < 2e3 ? Math.max(0, Oe.start - (Le.t + (Date.now() - Le.at) / 1e3 * U.rate)) : !de || Oe.start <= de.start ? 0 : Math.max(0, Oe.start - Qt(de, de.start, de.start + 4));
|
|
3974
3995
|
}, U.flow = J.current, U.silentSpan = (R) => {
|
|
3975
3996
|
var $e;
|
|
3976
|
-
const q = Z.current, se = q.findIndex((
|
|
3997
|
+
const q = Z.current, se = q.findIndex((ut) => ut.sentenceId === R), de = q[se];
|
|
3977
3998
|
if (!de) return null;
|
|
3978
3999
|
const Oe = (($e = q[se + 1]) == null ? void 0 : $e.start) ?? Qt(de, de.start, de.start + 4), Ne = Math.max(0, Oe - de.start), Le = le.current, be = Le && Date.now() - Le.at < 2e3 ? Le.t + (Date.now() - Le.at) / 1e3 * (U.rate || 1) : de.start, He = Math.max(0, Math.min(Ne, be - de.start));
|
|
3979
4000
|
return { fromS: He, ms: (Ne - He) * 1e3 / (U.rate || 1) };
|
|
@@ -4053,7 +4074,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4053
4074
|
var de;
|
|
4054
4075
|
const R = e[U], q = (R == null ? void 0 : R.start) ?? 0, se = ((de = e[U + 1]) == null ? void 0 : de.start) ?? Qt(R, q, Ie);
|
|
4055
4076
|
return { from: q, span: Math.max(0, se - q) };
|
|
4056
|
-
}, Me = $(G), ue = Math.max(0, Math.min(Me.span, Qt(e[G], Me.from, Me.from + 4) - Me.from)), ae =
|
|
4077
|
+
}, Me = $(G), ue = Math.max(0, Math.min(Me.span, Qt(e[G], Me.from, Me.from + 4) - Me.from)), ae = I ? I.t : o ? b != null && ie ? Me.from + Math.min(Me.span, b) : b != null ? K != null ? Math.min(Me.from, K + b) : Me.from + Math.min(Me.span, ue + b) : T && T.dur > 0 ? Me.from + Math.min(ue, T.t / T.dur * ue) : Me.from : T && T.dur > 0 ? Me.from + Math.min(Me.span, T.t / T.dur * Me.span) : Me.from;
|
|
4057
4078
|
D(() => {
|
|
4058
4079
|
we.current = Ee.current ?? zc(e, ae, d, Ie);
|
|
4059
4080
|
});
|
|
@@ -4065,7 +4086,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4065
4086
|
muted: j,
|
|
4066
4087
|
wordSync: !1,
|
|
4067
4088
|
timed: o,
|
|
4068
|
-
clipPos:
|
|
4089
|
+
clipPos: I ? null : T,
|
|
4069
4090
|
videoAt: (U) => {
|
|
4070
4091
|
le.current = { t: U, at: Date.now() };
|
|
4071
4092
|
},
|
|
@@ -4074,7 +4095,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4074
4095
|
preparing: S != null || Re,
|
|
4075
4096
|
silent: d && ie,
|
|
4076
4097
|
starting: Y,
|
|
4077
|
-
error:
|
|
4098
|
+
error: O,
|
|
4078
4099
|
seekN: m,
|
|
4079
4100
|
toggleMute: () => {
|
|
4080
4101
|
var R;
|
|
@@ -4112,7 +4133,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4112
4133
|
H(U), t.some((R) => R.sentenceId >= (U.sentenceId ?? 0)) && (H(null), Q.current(U));
|
|
4113
4134
|
},
|
|
4114
4135
|
seekFrac: (U) => {
|
|
4115
|
-
var
|
|
4136
|
+
var ut, st, pt;
|
|
4116
4137
|
E();
|
|
4117
4138
|
const R = Math.max(0, Math.min(1, U)) * Ie;
|
|
4118
4139
|
let q = 0;
|
|
@@ -4120,9 +4141,9 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4120
4141
|
const se = e[q], de = o && se && R < se.start - 0.05;
|
|
4121
4142
|
if (o && se && (de || e[q + 1] && R >= Qt(se, se.start, se.start + 4))) {
|
|
4122
4143
|
const Ge = de ? q : q + 1, rt = e[Ge];
|
|
4123
|
-
(
|
|
4124
|
-
const
|
|
4125
|
-
A.current =
|
|
4144
|
+
(ut = u.current) == null || ut.startWithin(-1, 0);
|
|
4145
|
+
const Mt = { t: R, sid: rt.sentenceId ?? null };
|
|
4146
|
+
A.current = Mt, F(Mt), _e(Ge);
|
|
4126
4147
|
return;
|
|
4127
4148
|
}
|
|
4128
4149
|
const Oe = (se == null ? void 0 : se.sentenceId) ?? null, { from: Ne, span: Le } = $(q);
|
|
@@ -4130,11 +4151,11 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4130
4151
|
const He = Oe != null ? (st = je.current) == null ? void 0 : st[String(Oe)] : void 0, $e = He != null && He.length ? He[He.length - 1][1] : 0;
|
|
4131
4152
|
if (se && He && He.length === se.words.length && $e > 0) {
|
|
4132
4153
|
let Ge = 0;
|
|
4133
|
-
for (let
|
|
4134
|
-
const rt = se.words[Ge],
|
|
4135
|
-
be = Math.min(1, (He[Ge][0] +
|
|
4154
|
+
for (let it = 0; it < se.words.length; it++) se.words[it].start <= R && (Ge = it);
|
|
4155
|
+
const rt = se.words[Ge], Mt = rt.end > rt.start ? Math.max(0, Math.min(1, (R - rt.start) / (rt.end - rt.start))) : 0;
|
|
4156
|
+
be = Math.min(1, (He[Ge][0] + Mt * (He[Ge][1] - He[Ge][0])) / $e);
|
|
4136
4157
|
}
|
|
4137
|
-
Oe != null && ((
|
|
4158
|
+
Oe != null && ((pt = u.current) == null || pt.startWithin(Oe, be)), F(be > 0.01 ? { t: R, sid: Oe } : null), _e(q);
|
|
4138
4159
|
},
|
|
4139
4160
|
seekWord: a ? (U) => {
|
|
4140
4161
|
var de, Oe, Ne, Le;
|
|
@@ -4193,36 +4214,36 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4193
4214
|
const Bc = () => {
|
|
4194
4215
|
}, Vc = "The language this recording is read aloud in.", Hc = { title: "READ IN", note: "The transcript and its voice switch to this language." };
|
|
4195
4216
|
function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: M, hearOriginal: h = !1, timed: f = !1, stockVoices: m = !1, stickyPicker: y = !1, pickerBusy: j = null, voiceSheet: N, forcedVoice: p = null }) {
|
|
4196
|
-
var
|
|
4197
|
-
const { onAddVoice:
|
|
4217
|
+
var gn, Ut, fn, nn;
|
|
4218
|
+
const { onAddVoice: O, onPickVoice: C, onSelectSpeaker: S, noCloneFor: B, castNoClone: Y, castShort: ee, castBuilding: I, castWarn: F, badge: A, titleNode: T } = N ?? {}, _ = !!N, b = !!(N != null && N.pendingClones), [te, K] = Di(), [v, ie] = L(null), [ne, Z] = L(!1), [J, pe] = L(!1), [le, Te] = L(!1), [je, Se] = L(!1), ve = u ?? l, we = u === null, Ee = u != null || v != null, De = ((P) => !!P && !!(o != null && o.voice.includes(P)))(we ? l : ve) ? we ? l : ve : "en", Q = jc(De), H = (N == null ? void 0 : N.cloneOn) ?? !0, [E, x] = L(0), V = k(H);
|
|
4198
4219
|
D(() => {
|
|
4199
4220
|
V.current !== H && (V.current = H, x((P) => P + 1));
|
|
4200
4221
|
}, [H]);
|
|
4201
|
-
const ce = sc(De, Ee || s || J, ic(e) * 1e3 + E, { id: t ?? null, shareCode: a.shareCode ?? null }), W = ze(() => ((ce == null ? void 0 : ce.voices) ?? []).filter((P) => _ || !P.cloned || P.speaker != null), [ce, _]), ye = W.length > 1, G = Cr(o, ve), ke =
|
|
4202
|
-
const P =
|
|
4203
|
-
for (const [
|
|
4222
|
+
const ce = sc(De, Ee || s || J, ic(e) * 1e3 + E, { id: t ?? null, shareCode: a.shareCode ?? null }), W = ze(() => ((ce == null ? void 0 : ce.voices) ?? []).filter((P) => _ || !P.cloned || P.speaker != null), [ce, _]), ye = W.length > 1, G = Cr(o, ve), ke = Wi(), Ie = ze(() => Ai(o, "translation"), [o]), [Fe, Ae] = L(null), [he] = L(() => /* @__PURE__ */ new Set()), [_e, Be] = L({}), $ = ze(() => Xl(n, e, ke.vcUnknownSpk), [n, e, ke]), Me = ye && $.filter((P) => P.key >= 0).length > 1, ue = Fe != null && $.some((P) => P.key === Fe) ? Fe : ((gn = $[0]) == null ? void 0 : gn.key) ?? null, ae = ze(() => {
|
|
4223
|
+
const P = hi($, W, H);
|
|
4224
|
+
for (const [xe, Qe] of Object.entries(_e[De ?? ""] ?? {})) P.set(Number(xe), Qe);
|
|
4204
4225
|
return P;
|
|
4205
|
-
}, [$, W, _e, De, H]), fe = Me && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => m && !fe ?
|
|
4226
|
+
}, [$, W, _e, De, H]), fe = Me && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => m && !fe ? hi($, W, !1) : null, [m, fe, $, W]), U = ze(() => fe ? ui(ae) || null : Ye && ui(Ye) || null, [fe, ae, Ye]), R = fe ? ae : Ye, q = W.some((P) => P.cloned && P.consent !== "pending"), se = !!ve && !!(o != null && o.voice.includes(ve)), de = se && !h, Oe = ze(
|
|
4206
4227
|
() => n.filter((P) => !P.suppressed && !P.unclear).map((P) => P.sentenceId).filter((P) => P != null),
|
|
4207
4228
|
[n]
|
|
4208
4229
|
), Ne = ac({ recordingId: t, lang: ve, ended: s, cred: a, pickedVoice: p || (U ?? v), sentenceIds: s && de ? Oe : void 0 }), Le = W.find((P) => P.id === v) ?? W.find((P) => {
|
|
4209
|
-
var
|
|
4210
|
-
return P.id === ((
|
|
4230
|
+
var xe;
|
|
4231
|
+
return P.id === ((xe = Ne.track) == null ? void 0 : xe.voice);
|
|
4211
4232
|
}) ?? W.find((P) => P.default) ?? W[0] ?? null, be = (Le == null ? void 0 : Le.id) ?? null;
|
|
4212
4233
|
D(() => {
|
|
4213
4234
|
if (!Ne.rendering) return;
|
|
4214
4235
|
const P = setInterval(Ne.reload, 4e3);
|
|
4215
4236
|
return () => clearInterval(P);
|
|
4216
4237
|
}, [Ne.rendering, Ne.reload]);
|
|
4217
|
-
const He = `${t ?? ""}|${ve ?? ""}|${p || (U ?? v ?? ((
|
|
4238
|
+
const He = `${t ?? ""}|${ve ?? ""}|${p || (U ?? v ?? ((Ut = Ne.track) == null ? void 0 : Ut.voiceKey) ?? "default")}`, $e = Qc(Ne.clips, n, r, He, he, (fn = Ne.track) == null ? void 0 : fn.wordTimes, f, Ne.coming);
|
|
4218
4239
|
D(() => {
|
|
4219
|
-
var
|
|
4220
|
-
const P = (
|
|
4240
|
+
var xe;
|
|
4241
|
+
const P = (xe = n[$e.idx]) == null ? void 0 : xe.sentenceId;
|
|
4221
4242
|
P != null && Ne.setNear(P);
|
|
4222
4243
|
}, [$e.idx]), D(() => {
|
|
4223
4244
|
!je || !$e.has || (Se(!1), $e.playing || $e.toggle());
|
|
4224
4245
|
}, [je, $e.has]);
|
|
4225
|
-
const
|
|
4246
|
+
const ut = Ne.rendering, st = ut ? null : Ne.failed ?? null, pt = !1, Ge = Ee && de, rt = Ee && !we && de && !(Ne.listed && Ne.listed.lang === ve && Ne.listed.recordingId === t), Mt = {
|
|
4226
4247
|
...$e,
|
|
4227
4248
|
has: $e.has || Ge && s,
|
|
4228
4249
|
toggle: () => {
|
|
@@ -4235,57 +4256,57 @@ function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4235
4256
|
pause: () => {
|
|
4236
4257
|
Se(!1), $e.pause();
|
|
4237
4258
|
}
|
|
4238
|
-
},
|
|
4259
|
+
}, it = () => Z(!0), Ve = () => {
|
|
4239
4260
|
Z(!1), pe(le), Te(!1);
|
|
4240
|
-
},
|
|
4261
|
+
}, un = (P) => {
|
|
4241
4262
|
if (d(P), K(P), !((M || y) && !le)) {
|
|
4242
4263
|
if (P != null) {
|
|
4243
|
-
|
|
4264
|
+
Ve();
|
|
4244
4265
|
return;
|
|
4245
4266
|
}
|
|
4246
4267
|
Q.reset(), Z(!1), pe(!1), Te(!1);
|
|
4247
4268
|
}
|
|
4248
|
-
},
|
|
4269
|
+
}, St = () => {
|
|
4249
4270
|
Q.reset(), pe(!0);
|
|
4250
|
-
},
|
|
4271
|
+
}, Je = () => {
|
|
4251
4272
|
Q.reset(), pe(!1);
|
|
4252
|
-
},
|
|
4253
|
-
if (
|
|
4273
|
+
}, lt = ne && !le, at = J || ne && le, Jt = () => {
|
|
4274
|
+
if (lt) {
|
|
4254
4275
|
Z(!1);
|
|
4255
4276
|
return;
|
|
4256
4277
|
}
|
|
4257
4278
|
Q.reset(), pe(!1), Te(!1), Z(!0);
|
|
4258
|
-
},
|
|
4259
|
-
if (Q.reset(),
|
|
4279
|
+
}, re = () => {
|
|
4280
|
+
if (Q.reset(), at) {
|
|
4260
4281
|
pe(!1), Z(!1), Te(!1);
|
|
4261
4282
|
return;
|
|
4262
4283
|
}
|
|
4263
4284
|
Z(!1), Te(!1), pe(!0);
|
|
4264
|
-
},
|
|
4285
|
+
}, dn = (P) => {
|
|
4265
4286
|
if (Q.reset(), pe(Me), (ve !== De || we) && d(De), Ne.forget(), Se(!0), Me && ue != null && De) {
|
|
4266
|
-
const
|
|
4267
|
-
|
|
4287
|
+
const xe = new Map(ae);
|
|
4288
|
+
xe.set(ue, P), Be((Qe) => ({ ...Qe, [De]: Object.fromEntries(xe) })), ie(null);
|
|
4268
4289
|
return;
|
|
4269
4290
|
}
|
|
4270
4291
|
ie(P);
|
|
4271
|
-
},
|
|
4272
|
-
const P = W.filter((
|
|
4273
|
-
if (!Me) return [...P, ...s &&
|
|
4274
|
-
const
|
|
4275
|
-
for (const
|
|
4276
|
-
if (
|
|
4277
|
-
const
|
|
4278
|
-
!
|
|
4292
|
+
}, z = we ? { ...Cr(o, null), flag: /* @__PURE__ */ i(oe, { d: X.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : G, Vn = c ? M ? /* @__PURE__ */ i("span", { className: "barchip", style: lt ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Yn, { flag: z.flag, code: z.code, bordered: !1, onClick: Jt, flagOnly: !0, label: z.label }) }) : /* @__PURE__ */ i(Yn, { flag: z.flag, code: z.code, bordered: !1, onClick: it, flagOnly: !0, label: z.label }) : null, Dt = X.voiceClone, At = Ee && (!!Ne.track || ut), Et = st ? "var(--conf-low)" : At || M && at ? "var(--brand)" : "var(--ink-55)", Vt = Ic({ on: Ee, want: je, relang: rt, playing: $e.playing, preparing: !!$e.preparing, starting: $e.starting }), [hn] = Xi(Vt === "line", 400), qe = Vt === "asked" || Vt === "line" && hn, ot = ut || qe, Xt = Vt === "asked" ? Mi : $e.preparing ? `Speaking this line in ${(Le == null ? void 0 : Le.name) ?? "this voice"}…` : ut ? `Preparing this recording in ${(Le == null ? void 0 : Le.name) ?? "this voice"} — it will play as soon as it is ready` : st ? `This voice could not be prepared: ${st}` : se ? ye ? "Choose a voice" : Le ? Le.name : ke.vcNoVoice + G.label : `${ke.vcNoVoice}${G.label}`, mt = /* @__PURE__ */ i(yo, { open: ne, onClose: Ve, keepOpen: (!!M || y) && !le, value: we ? null : ve, onSelect: un, languages: Ie, title: (M == null ? void 0 : M.title) ?? "SPOKEN LANGUAGE", note: (M == null ? void 0 : M.note) ?? Vc, searchPlaceholder: ke.search, none: "Original", pinned: (we ? l : ve) ? [we ? l : ve] : [], recent: te, requireVoice: le, sticky: y, busy: j }), gt = ze(() => W.filter((P) => P.cloned && !P.auto), [W]), Ht = (P) => P.voiceId ? gt.find((xe) => xe.id === `clone:${P.voiceId}`) ?? null : null, dt = ze(() => $.filter((P) => P.key >= 0), [$]), en = ze(() => {
|
|
4293
|
+
const P = W.filter((Qe) => !Qe.cloned);
|
|
4294
|
+
if (!Me) return [...P, ...s && dt.length === 1 ? gt.filter((Qe) => Qe.id === `clone:${dt[0].voiceId}`) : []];
|
|
4295
|
+
const xe = [];
|
|
4296
|
+
for (const Qe of dt) {
|
|
4297
|
+
if (Ht(Qe)) continue;
|
|
4298
|
+
const bt = W.find((Rt) => Rt.cloned && Rt.auto && Rt.speaker === Qe.key);
|
|
4299
|
+
!bt || bt.ready === !1 || bt.consent === "pending" && !b || xe.push({ id: bt.id, name: Qe.name, cloned: !0, default: !1, live: !0, auto: !0, gender: Qe.sex ?? bt.gender ?? null, speaker: Qe.key, consent: bt.consent ?? null });
|
|
4279
4300
|
}
|
|
4280
|
-
return [...P, ...
|
|
4281
|
-
}, [W,
|
|
4282
|
-
var
|
|
4283
|
-
return P ? ((
|
|
4284
|
-
},
|
|
4285
|
-
/* @__PURE__ */ i(oe, { d:
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
] }),
|
|
4301
|
+
return [...P, ...gt, ...xe];
|
|
4302
|
+
}, [W, gt, Me, dt, b, s]), ct = Me ? dt.find((P) => P.key === ue) ?? null : null, tn = (P) => {
|
|
4303
|
+
var xe;
|
|
4304
|
+
return P ? ((xe = W.find((Qe) => Qe.id === P)) == null ? void 0 : xe.gender) ?? null : null;
|
|
4305
|
+
}, zt = ct ? ct.sex ?? tn(ae.get(ct.key)) : null, Ze = ze(() => ct ? en.filter((P) => P.cloned ? P.live ? P.speaker === ct.key : P.id === `clone:${ct.voiceId}` : !0) : en, [en, ct, zt, dt]), _t = (P) => W.find((xe) => xe.cloned && xe.auto && xe.speaker === P) ?? null, wt = { people: dt, gvList: W, autoOf: _t, savedFor: Ht }, Yt = (A == null ? void 0 : A(wt)) ?? 0, et = F ? dt.map((P) => F(P, wt)).filter((P) => !!P) : [], Mn = /* @__PURE__ */ g("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": M ? at : void 0, "aria-busy": ot || void 0, title: ot || st ? Xt : void 0, style: { cursor: "pointer", background: At || ot || M && at ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: M && at ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: M ? re : St, children: [
|
|
4306
|
+
/* @__PURE__ */ i(oe, { d: Dt, size: 17, sw: 1.6, style: { color: Et } }),
|
|
4307
|
+
ot && /* @__PURE__ */ i("span", { "aria-hidden": "true", style: { position: "absolute", inset: 0, boxSizing: "border-box", borderRadius: "50%", border: "2px solid var(--fill-12)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite", pointerEvents: "none" } }),
|
|
4308
|
+
et.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: et.join(" · "), children: "!" }) : !!Yt && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${Yt} speaker${Yt === 1 ? "" : "s"} can get a cloned voice`, children: Yt })
|
|
4309
|
+
] }), It = /* @__PURE__ */ i(Kt, { open: J, onClose: Je, title: ke.vcSheet, titleNode: T, doneLabel: ke.done, children: /* @__PURE__ */ i(
|
|
4289
4310
|
tc,
|
|
4290
4311
|
{
|
|
4291
4312
|
t: ke,
|
|
@@ -4298,24 +4319,24 @@ function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4298
4319
|
onSelect: (P) => {
|
|
4299
4320
|
Q.reset(), Ae(P), S == null || S(P);
|
|
4300
4321
|
},
|
|
4301
|
-
noClone: (P) => !!(Y != null && Y(P,
|
|
4302
|
-
short: (P) => !!(ee != null && ee(P,
|
|
4303
|
-
warn: (P) => (F == null ? void 0 : F(P,
|
|
4304
|
-
building: (P) => !
|
|
4305
|
-
sexOf: (P) => P.sex ??
|
|
4322
|
+
noClone: (P) => !!(Y != null && Y(P, wt)),
|
|
4323
|
+
short: (P) => !!(ee != null && ee(P, wt)),
|
|
4324
|
+
warn: (P) => (F == null ? void 0 : F(P, wt)) ?? null,
|
|
4325
|
+
building: (P) => !Ht(P) && (W.some((xe) => xe.cloned && xe.speaker === P.key && xe.ready === !1) || !!(I != null && I(P, wt))),
|
|
4326
|
+
sexOf: (P) => P.sex ?? tn(ae.get(P.key))
|
|
4306
4327
|
}
|
|
4307
4328
|
),
|
|
4308
|
-
voices:
|
|
4329
|
+
voices: Ze,
|
|
4309
4330
|
onAdd: (P) => {
|
|
4310
|
-
Q.reset(),
|
|
4331
|
+
Q.reset(), O == null || O(P);
|
|
4311
4332
|
},
|
|
4312
|
-
noClone:
|
|
4333
|
+
noClone: ct && !Ze.some((P) => P.cloned) ? (B == null ? void 0 : B(ct, _t(ct.key), wt)) ?? null : null,
|
|
4313
4334
|
usedBy: Me && ue != null ? (P) => {
|
|
4314
|
-
const
|
|
4315
|
-
return
|
|
4335
|
+
const xe = $.filter((Qe) => Qe.key !== ue && ae.get(Qe.key) === P.id);
|
|
4336
|
+
return xe.length ? xe.map((Qe) => Qe.name).join(", ") : null;
|
|
4316
4337
|
} : void 0,
|
|
4317
4338
|
foldKey: ue,
|
|
4318
|
-
foldFor:
|
|
4339
|
+
foldFor: zt,
|
|
4319
4340
|
currentId: Me && ue != null ? ae.get(ue) ?? null : be,
|
|
4320
4341
|
armedId: Q.armId,
|
|
4321
4342
|
sampleId: Q.sampleId,
|
|
@@ -4331,50 +4352,50 @@ function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4331
4352
|
}
|
|
4332
4353
|
Q.arm(P);
|
|
4333
4354
|
},
|
|
4334
|
-
onUse:
|
|
4355
|
+
onUse: dn
|
|
4335
4356
|
}
|
|
4336
|
-
) }), Hn = M ? null : /* @__PURE__ */ g(
|
|
4337
|
-
|
|
4338
|
-
|
|
4339
|
-
] }),
|
|
4357
|
+
) }), Hn = M ? null : /* @__PURE__ */ g(Ce, { children: [
|
|
4358
|
+
mt,
|
|
4359
|
+
It
|
|
4360
|
+
] }), Wn = M && (ne || J) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? mt : It }) : null, Ot = Ge ? st ? `This voice could not be prepared: ${st}` : qe && (je || $e.playing) ? Mi : null : null, Fn = pt;
|
|
4340
4361
|
return {
|
|
4341
|
-
barChip: { flag:
|
|
4362
|
+
barChip: { flag: z.flag, code: z.code, label: z.label, onClick: M || y ? Jt : it, active: !!((M || y) && lt), can: c },
|
|
4342
4363
|
sheetsOpen: ne || J,
|
|
4343
4364
|
on: Ge,
|
|
4344
|
-
player:
|
|
4345
|
-
chip:
|
|
4346
|
-
voiceBtn:
|
|
4347
|
-
voiceWaiting:
|
|
4365
|
+
player: Mt,
|
|
4366
|
+
chip: Vn,
|
|
4367
|
+
voiceBtn: Mn,
|
|
4368
|
+
voiceWaiting: ot,
|
|
4348
4369
|
sheets: Hn,
|
|
4349
|
-
sidePanel:
|
|
4350
|
-
voicesMine:
|
|
4351
|
-
toggleVoices:
|
|
4370
|
+
sidePanel: Wn,
|
|
4371
|
+
voicesMine: at,
|
|
4372
|
+
toggleVoices: re,
|
|
4352
4373
|
cloningOn: H,
|
|
4353
|
-
playTitle:
|
|
4354
|
-
noVoice:
|
|
4374
|
+
playTitle: Ot,
|
|
4375
|
+
noVoice: pt,
|
|
4355
4376
|
noVoiceNote: Fn,
|
|
4356
4377
|
relang: rt,
|
|
4357
4378
|
sampling: Q.sampleId != null,
|
|
4358
4379
|
error: Q.error,
|
|
4359
4380
|
clearError: () => Q.clearError(),
|
|
4360
|
-
openVoices:
|
|
4361
|
-
openPicker:
|
|
4381
|
+
openVoices: St,
|
|
4382
|
+
openPicker: it,
|
|
4362
4383
|
original: we,
|
|
4363
4384
|
reloadVoices: () => x((P) => P + 1),
|
|
4364
4385
|
voicesVer: E,
|
|
4365
|
-
people:
|
|
4386
|
+
people: dt,
|
|
4366
4387
|
gvList: W,
|
|
4367
|
-
autoOf:
|
|
4368
|
-
savedFor:
|
|
4369
|
-
closeVoices:
|
|
4388
|
+
autoOf: _t,
|
|
4389
|
+
savedFor: Ht,
|
|
4390
|
+
closeVoices: Je,
|
|
4370
4391
|
setSheet: pe,
|
|
4371
|
-
selectedSpeaker:
|
|
4392
|
+
selectedSpeaker: ct,
|
|
4372
4393
|
armVoice: Q.arm,
|
|
4373
4394
|
resetPreview: Q.reset,
|
|
4374
4395
|
armedId: Q.armId,
|
|
4375
4396
|
resetCast: () => Be((P) => ({ ...P, [De ?? ""]: {} })),
|
|
4376
4397
|
readLang: typeof u == "string" && u !== l ? u : null,
|
|
4377
|
-
readVoiceKey: p || (U ?? v ?? ((
|
|
4398
|
+
readVoiceKey: p || (U ?? v ?? ((nn = Ne.track) == null ? void 0 : nn.voiceKey) ?? ""),
|
|
4378
4399
|
pickedVoiceKey: U ?? v ?? null,
|
|
4379
4400
|
readVoiceName: (Le == null ? void 0 : Le.name) ?? null,
|
|
4380
4401
|
canSpeak: se,
|
|
@@ -4383,17 +4404,17 @@ function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4383
4404
|
clips: Ne.clips,
|
|
4384
4405
|
setNear: Ne.setNear,
|
|
4385
4406
|
closePicker: () => {
|
|
4386
|
-
|
|
4407
|
+
lt && Ve();
|
|
4387
4408
|
},
|
|
4388
|
-
langList: { value: we ? null : ve, onSelect:
|
|
4409
|
+
langList: { value: we ? null : ve, onSelect: un, languages: Ie, searchPlaceholder: ke.search, none: "Original", pinned: (we ? l : ve) ? [we ? l : ve] : [], recent: te }
|
|
4389
4410
|
};
|
|
4390
4411
|
}
|
|
4391
|
-
function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: M = !0, tail: h, tailFg: f, running: m, desk: y, feedRef: j, listener: N, showLabels: p, find:
|
|
4392
|
-
const { playing:
|
|
4412
|
+
function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: M = !0, tail: h, tailFg: f, running: m, desk: y, feedRef: j, listener: N, showLabels: p, find: O, findOpen: C, lang: S, warm: B, onVisible: Y, wordHl: ee = !0 }) {
|
|
4413
|
+
const { playing: I, engaged: F, t: A, idx: T, seekN: _, wordSync: b, clipPos: te } = n;
|
|
4393
4414
|
fc(!0, j);
|
|
4394
4415
|
const K = k(null);
|
|
4395
4416
|
Bl(j, K);
|
|
4396
|
-
const [v, ie] = L(null), ne = (
|
|
4417
|
+
const [v, ie] = L(null), ne = (O ?? "").trim().toLowerCase(), [Z, J] = L(0), pe = k(0), le = k(null), Te = k(T), je = (H) => {
|
|
4397
4418
|
var E;
|
|
4398
4419
|
return ((E = j.current) == null ? void 0 : E.querySelector(`[data-tx-row="${H}"]`)) ?? null;
|
|
4399
4420
|
}, Se = k("");
|
|
@@ -4447,7 +4468,7 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4447
4468
|
}, []);
|
|
4448
4469
|
const Re = k(0);
|
|
4449
4470
|
D(() => {
|
|
4450
|
-
if (!
|
|
4471
|
+
if (!I) {
|
|
4451
4472
|
Te.current = T, Re.current = 0, J(0);
|
|
4452
4473
|
return;
|
|
4453
4474
|
}
|
|
@@ -4460,7 +4481,7 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4460
4481
|
H();
|
|
4461
4482
|
const E = setInterval(H, 200);
|
|
4462
4483
|
return () => clearInterval(E);
|
|
4463
|
-
}, [T,
|
|
4484
|
+
}, [T, I]), D(() => {
|
|
4464
4485
|
_ && Ee(T);
|
|
4465
4486
|
}, [_]);
|
|
4466
4487
|
const De = () => {
|
|
@@ -4471,19 +4492,19 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4471
4492
|
] }) });
|
|
4472
4493
|
return /* @__PURE__ */ g("div", { ref: j, "data-tx-feed": "1", className: `txfeed${y ? " txfeed--desk" : ""}${C && !m ? " is-find" : ""}`, children: [
|
|
4473
4494
|
/* @__PURE__ */ i(Vl, { thumbRef: K }),
|
|
4474
|
-
|
|
4495
|
+
I && Z === -1 && Q("up"),
|
|
4475
4496
|
e.map((H, E) => {
|
|
4476
4497
|
var Me;
|
|
4477
|
-
const x =
|
|
4478
|
-
|
|
4479
|
-
} :
|
|
4498
|
+
const x = I && E === T, V = F && E === T, ce = !!u && u === H.id, W = ne && !H.text.toLowerCase().includes(ne) && !(S && ((Me = H.translations[S]) != null && Me.toLowerCase().includes(ne))) ? 0.22 : !F || E <= T || ce ? 1 : 0.38, ye = N ? () => n.playRow(E) : c && l ? () => {
|
|
4499
|
+
I && !x && n.seekRow(E), l(H);
|
|
4500
|
+
} : I && x ? void 0 : () => n.playRow(E), G = N ? null : Fl(H, s, r), ke = !!G && (G.script > 0 || G.manual), Ie = y && !!a && v === H.id && !!G && !ke, Fe = Ur(t, H.speaker), Ae = Rr(t, H.speaker), he = Ae.lane, _e = S && H.translations[S] && H.language !== S ? H.translations[S] : null, Be = ea(e, E, S), $ = V && !b && te ? xi(Be.map((ue) => ({ t: ue.text, sp: " " })), te) : null;
|
|
4480
4501
|
return /* @__PURE__ */ g("div", { "data-tx-row": E, "data-sentence": H.sentenceId, className: `txline${B ? " txline--warm" : ""}${ce ? " txline--fixing" : ""}`, "aria-current": ce || void 0, style: { opacity: W }, onClick: ye, onMouseEnter: y && a ? () => ie(H.id) : void 0, onMouseLeave: y && a ? () => ie(null) : void 0, children: [
|
|
4481
4502
|
/* @__PURE__ */ g("div", { className: "txline__meta", children: [
|
|
4482
|
-
/* @__PURE__ */ i("span", { className: "txline__at", children:
|
|
4483
|
-
p && H.speaker >= 0 && /* @__PURE__ */ g(
|
|
4484
|
-
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${he}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children:
|
|
4503
|
+
/* @__PURE__ */ i("span", { className: "txline__at", children: kt(H.start) }),
|
|
4504
|
+
p && H.speaker >= 0 && /* @__PURE__ */ g(Ce, { children: [
|
|
4505
|
+
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${he}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: Pi(t, H.speaker) }),
|
|
4485
4506
|
/* @__PURE__ */ i("span", { className: `txline__who lane-${he}`, style: Ae.fg ? { color: Ae.fg } : void 0, children: Fe }),
|
|
4486
|
-
Ae.hasVoice && /* @__PURE__ */ i(
|
|
4507
|
+
Ae.hasVoice && /* @__PURE__ */ i(qi, { color: Ae.fg ?? `var(--lane-${he})` })
|
|
4487
4508
|
] }),
|
|
4488
4509
|
x && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(oe, { d: X.headphones, size: y ? 15 : 14, sw: 1.6, stroke: p && H.speaker >= 0 ? Ae.fg ?? `var(--lane-${he})` : "var(--ink-45)" }) }),
|
|
4489
4510
|
G && M && /* @__PURE__ */ i(Zl, { f: G, desk: y, onOpen: a ? () => a(H, !0) : void 0 }),
|
|
@@ -4496,20 +4517,20 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4496
4517
|
"span",
|
|
4497
4518
|
{
|
|
4498
4519
|
className: "txw",
|
|
4499
|
-
title: o && !_e ? c ? "Correct this word" : x &&
|
|
4520
|
+
title: o && !_e ? c ? "Correct this word" : x && I && n.seekWord ? "Play from this word" : "Play from this line" : x ? "" : "Play from this line",
|
|
4500
4521
|
onClick: o && !_e ? (Le) => {
|
|
4501
4522
|
var be;
|
|
4502
4523
|
if (Le.stopPropagation(), c) {
|
|
4503
4524
|
o(H, ue);
|
|
4504
4525
|
return;
|
|
4505
4526
|
}
|
|
4506
|
-
if (
|
|
4527
|
+
if (I && x) {
|
|
4507
4528
|
(be = n.seekWord) == null || be.call(n, ue);
|
|
4508
4529
|
return;
|
|
4509
4530
|
}
|
|
4510
4531
|
n.playRow(E);
|
|
4511
4532
|
} : void 0,
|
|
4512
|
-
style: { color: Ne, opacity: q ? 0.45 : 1, fontWeight: 300, cursor: o && !_e ? c || !x || !
|
|
4533
|
+
style: { color: Ne, opacity: q ? 0.45 : 1, fontWeight: 300, cursor: o && !_e ? c || !x || !I || n.seekWord ? "pointer" : "default" : x ? "default" : "pointer", textShadow: R ? "0 0 2px currentColor, 0 0 4px currentColor" : "none", textDecorationLine: de || se ? "underline" : "none", textDecorationStyle: se ? "solid" : "dotted", textDecorationColor: se ? "var(--brand)" : Oe ?? "currentColor", textDecorationThickness: de || se ? "1.5px" : void 0, textUnderlineOffset: de || se ? "3px" : void 0 },
|
|
4513
4534
|
children: ue.text
|
|
4514
4535
|
}
|
|
4515
4536
|
),
|
|
@@ -4523,7 +4544,7 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4523
4544
|
/* @__PURE__ */ i("span", {}),
|
|
4524
4545
|
/* @__PURE__ */ i("span", {})
|
|
4525
4546
|
] }) }) : /* @__PURE__ */ i("div", { className: "txtail", style: { color: f }, children: h }),
|
|
4526
|
-
|
|
4547
|
+
I && Z === 1 && Q("down")
|
|
4527
4548
|
] });
|
|
4528
4549
|
}
|
|
4529
4550
|
function Zc({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, flash: l }) {
|
|
@@ -4569,8 +4590,8 @@ function Gc(t, e, n, r, s) {
|
|
|
4569
4590
|
};
|
|
4570
4591
|
}, []), l;
|
|
4571
4592
|
}
|
|
4572
|
-
const
|
|
4573
|
-
function
|
|
4593
|
+
const ln = { 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] };
|
|
4594
|
+
function ta(t) {
|
|
4574
4595
|
let e = (16 * t + 128) * t + 64;
|
|
4575
4596
|
if (t >= 2) {
|
|
4576
4597
|
const n = Math.floor(t / 7) + 2;
|
|
@@ -4578,7 +4599,7 @@ function sa(t) {
|
|
|
4578
4599
|
}
|
|
4579
4600
|
return e;
|
|
4580
4601
|
}
|
|
4581
|
-
const
|
|
4602
|
+
const fi = (t) => Math.floor(ta(t) / 8) - ln.perBlock[t] * ln.blocks[t];
|
|
4582
4603
|
function Sr(t, e) {
|
|
4583
4604
|
let n = 0;
|
|
4584
4605
|
for (let r = 7; r >= 0; r--)
|
|
@@ -4614,10 +4635,10 @@ function Jc(t) {
|
|
|
4614
4635
|
function Xc(t) {
|
|
4615
4636
|
const e = Array.from(new TextEncoder().encode(t));
|
|
4616
4637
|
let n = 1;
|
|
4617
|
-
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <=
|
|
4638
|
+
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= fi(n) * 8); n++)
|
|
4618
4639
|
;
|
|
4619
4640
|
if (n > 40) throw new Error("Text too long for a QR code");
|
|
4620
|
-
const r = n * 4 + 17, s =
|
|
4641
|
+
const r = n * 4 + 17, s = fi(n) * 8, a = [], o = (T, _) => {
|
|
4621
4642
|
for (let b = _ - 1; b >= 0; b--) a.push(T >>> b & 1);
|
|
4622
4643
|
};
|
|
4623
4644
|
o(4, 4), o(e.length, n <= 9 ? 8 : 16);
|
|
@@ -4626,7 +4647,7 @@ function Xc(t) {
|
|
|
4626
4647
|
for (let T = 236; a.length < s; T ^= 253) o(T, 8);
|
|
4627
4648
|
const l = [];
|
|
4628
4649
|
for (let T = 0; T < a.length; T += 8) l.push(a.slice(T, T + 8).reduce((_, b) => _ << 1 | b, 0));
|
|
4629
|
-
const c =
|
|
4650
|
+
const c = ln.blocks[n], u = ln.perBlock[n], d = Math.floor(ta(n) / 8), M = c - d % c, h = Math.floor(d / c), f = [], m = qc(u);
|
|
4630
4651
|
for (let T = 0, _ = 0; T < c; T++) {
|
|
4631
4652
|
const b = l.slice(_, _ + h - u + (T < M ? 0 : 1));
|
|
4632
4653
|
_ += b.length;
|
|
@@ -4642,19 +4663,19 @@ function Xc(t) {
|
|
|
4642
4663
|
};
|
|
4643
4664
|
for (let T = 0; T < r; T++)
|
|
4644
4665
|
p(6, T, T % 2 === 0), p(T, 6, T % 2 === 0);
|
|
4645
|
-
const
|
|
4666
|
+
const O = (T, _) => {
|
|
4646
4667
|
for (let b = -4; b <= 4; b++) for (let te = -4; te <= 4; te++) {
|
|
4647
4668
|
const K = Math.max(Math.abs(te), Math.abs(b)), v = T + te, ie = _ + b;
|
|
4648
4669
|
v >= 0 && v < r && ie >= 0 && ie < r && p(v, ie, K !== 2 && K !== 4);
|
|
4649
4670
|
}
|
|
4650
4671
|
};
|
|
4651
|
-
|
|
4672
|
+
O(3, 3), O(r - 4, 3), O(3, r - 4);
|
|
4652
4673
|
const C = Jc(n);
|
|
4653
4674
|
for (let T = 0; T < C.length; T++) for (let _ = 0; _ < C.length; _++)
|
|
4654
4675
|
if (!(T === 0 && _ === 0 || T === 0 && _ === C.length - 1 || T === C.length - 1 && _ === 0))
|
|
4655
4676
|
for (let b = -2; b <= 2; b++) for (let te = -2; te <= 2; te++) p(C[T] + te, C[_] + b, Math.max(Math.abs(te), Math.abs(b)) !== 1);
|
|
4656
4677
|
const S = (T) => {
|
|
4657
|
-
const _ =
|
|
4678
|
+
const _ = ln.formatBits << 3 | T;
|
|
4658
4679
|
let b = _;
|
|
4659
4680
|
for (let v = 0; v < 10; v++) b = b << 1 ^ (b >>> 9) * 1335;
|
|
4660
4681
|
const te = (_ << 10 | b) ^ 21522, K = (v) => (te >>> v & 1) !== 0;
|
|
@@ -4703,7 +4724,7 @@ function Xc(t) {
|
|
|
4703
4724
|
}
|
|
4704
4725
|
}, ee = (T) => {
|
|
4705
4726
|
for (let _ = 0; _ < r; _++) for (let b = 0; b < r; b++) !N[_][b] && Y(T, b, _) && (j[_][b] = !j[_][b]);
|
|
4706
|
-
},
|
|
4727
|
+
}, I = () => {
|
|
4707
4728
|
let T = 0;
|
|
4708
4729
|
const _ = (ne) => {
|
|
4709
4730
|
const Z = ne[1], J = Z > 0 && ne[2] === Z && ne[3] === Z * 3 && ne[4] === Z && ne[5] === Z;
|
|
@@ -4731,7 +4752,7 @@ function Xc(t) {
|
|
|
4731
4752
|
let F = 0, A = 1 / 0;
|
|
4732
4753
|
for (let T = 0; T < 8; T++) {
|
|
4733
4754
|
ee(T), S(T);
|
|
4734
|
-
const _ =
|
|
4755
|
+
const _ = I();
|
|
4735
4756
|
_ < A && (A = _, F = T), ee(T);
|
|
4736
4757
|
}
|
|
4737
4758
|
return ee(F), S(F), j;
|
|
@@ -4743,16 +4764,16 @@ function eu(t) {
|
|
|
4743
4764
|
const a = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${-r} ${-r} ${n + r * 2} ${n + r * 2}" shape-rendering="crispEdges"><rect x="${-r}" y="${-r}" width="${n + r * 2}" height="${n + r * 2}" fill="#fff"/><path fill="#111" d="${s}"/></svg>`;
|
|
4744
4765
|
return `data:image/svg+xml,${encodeURIComponent(a)}`;
|
|
4745
4766
|
}
|
|
4746
|
-
const
|
|
4767
|
+
const na = "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", tu = "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";
|
|
4747
4768
|
function yr() {
|
|
4748
4769
|
const t = document;
|
|
4749
4770
|
return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
|
|
4750
4771
|
}
|
|
4751
4772
|
let Br = null;
|
|
4752
|
-
function
|
|
4773
|
+
function pi(t) {
|
|
4753
4774
|
Br = t;
|
|
4754
4775
|
}
|
|
4755
|
-
function
|
|
4776
|
+
function mi() {
|
|
4756
4777
|
const t = document;
|
|
4757
4778
|
return !!(t.fullscreenEnabled || t.webkitFullscreenEnabled);
|
|
4758
4779
|
}
|
|
@@ -4762,7 +4783,7 @@ function nu() {
|
|
|
4762
4783
|
const t = Br ?? document.documentElement;
|
|
4763
4784
|
return !t.requestFullscreen && !t.webkitRequestFullscreen;
|
|
4764
4785
|
}
|
|
4765
|
-
function
|
|
4786
|
+
function an(t) {
|
|
4766
4787
|
var e;
|
|
4767
4788
|
typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches) || An(t);
|
|
4768
4789
|
}
|
|
@@ -4799,7 +4820,7 @@ function En({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
4799
4820
|
const u = a(c);
|
|
4800
4821
|
s(null), t.onSeek(u);
|
|
4801
4822
|
}, l = r != null ? r * 100 : t.pct;
|
|
4802
|
-
return /* @__PURE__ */ g(
|
|
4823
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
4803
4824
|
/* @__PURE__ */ i("span", { className: `gfull__t${e ? " gfull__t--at" : ""}`, children: r != null ? t.labelAt(r) : t.atLabel }),
|
|
4804
4825
|
/* @__PURE__ */ i(
|
|
4805
4826
|
"div",
|
|
@@ -4883,7 +4904,7 @@ function _n({ t, mini: e }) {
|
|
|
4883
4904
|
disabled: !t.playable,
|
|
4884
4905
|
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" },
|
|
4885
4906
|
onClick: t.onPlay,
|
|
4886
|
-
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(
|
|
4907
|
+
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(Ja, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(cn, { size: e ? 15 : 19 })
|
|
4887
4908
|
}
|
|
4888
4909
|
),
|
|
4889
4910
|
/* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Next line", title: "Next line", style: { opacity: t.nextOn ? 1 : 0.3 }, onClick: t.onNext, children: /* @__PURE__ */ i(oe, { d: X.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
|
|
@@ -4891,7 +4912,7 @@ function _n({ t, mini: e }) {
|
|
|
4891
4912
|
}
|
|
4892
4913
|
function Dr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
4893
4914
|
return /* @__PURE__ */ g("div", { className: `gfull__brand${s ? " gfull__brand--mark" : ""}`, children: [
|
|
4894
|
-
/* @__PURE__ */ i("a", { href:
|
|
4915
|
+
/* @__PURE__ */ i("a", { href: ki, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ i(Ar, { dark: !0, size: 22 }) : /* @__PURE__ */ i($n, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
|
|
4895
4916
|
t && /* @__PURE__ */ g("span", { className: "gfull__live", children: [
|
|
4896
4917
|
/* @__PURE__ */ i("i", {}),
|
|
4897
4918
|
"LIVE"
|
|
@@ -4899,7 +4920,7 @@ function Dr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
|
4899
4920
|
r != null && /* @__PURE__ */ i("span", { className: "gfull__txpct", title: "Still being transcribed: it plays as far as it is written", children: `TRANSCRIBING ${r}%` })
|
|
4900
4921
|
] });
|
|
4901
4922
|
}
|
|
4902
|
-
function
|
|
4923
|
+
function ra({ v: t, size: e }) {
|
|
4903
4924
|
return /* @__PURE__ */ g("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", "aria-busy": t.busy || void 0, title: t.busy ? "Preparing the voice…" : t.title, disabled: !t.on, style: { position: "relative", opacity: t.on || t.busy ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: [
|
|
4904
4925
|
/* @__PURE__ */ i(oe, { d: X.headphones, size: e, sw: 1.6 }),
|
|
4905
4926
|
t.busy && /* @__PURE__ */ i("span", { "aria-hidden": "true", style: { position: "absolute", inset: 0, boxSizing: "border-box", borderRadius: "50%", border: "2px solid var(--fill-12)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite", pointerEvents: "none" } })
|
|
@@ -4915,18 +4936,18 @@ function su({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, c
|
|
|
4915
4936
|
/* @__PURE__ */ i(_n, { t: e, mini: !0 }),
|
|
4916
4937
|
/* @__PURE__ */ i("span", { style: { flex: 1 } }),
|
|
4917
4938
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: n }),
|
|
4918
|
-
/* @__PURE__ */ i(
|
|
4939
|
+
/* @__PURE__ */ i(ra, { v: r, size: 14 }),
|
|
4919
4940
|
s && /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Share", title: "Share", onClick: (l) => {
|
|
4920
4941
|
l.stopPropagation(), s();
|
|
4921
4942
|
}, children: /* @__PURE__ */ i(oe, { d: X.share, size: 13, sw: 1.8 }) }),
|
|
4922
|
-
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d:
|
|
4943
|
+
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d: na, size: 14, sw: 1.8 }) })
|
|
4923
4944
|
] })
|
|
4924
4945
|
] }),
|
|
4925
4946
|
o
|
|
4926
4947
|
] });
|
|
4927
4948
|
}
|
|
4928
4949
|
const iu = { color: "rgba(255,255,255,.4)" };
|
|
4929
|
-
function
|
|
4950
|
+
function sa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title: s, desk: a, pos: o, sub: l, wait: c, pct: u, mute: d, cc: M, ad: h, chip: f, transport: m, picker: y, sheet: j, voices: N, voicesBtn: p, sheetOpen: O, onShare: C, onSettings: S, paused: B, copied: Y, onTouch: ee, onClose: I }) {
|
|
4930
4951
|
const [F, A] = L(() => !!yr());
|
|
4931
4952
|
D(() => {
|
|
4932
4953
|
const $ = () => A(!!yr());
|
|
@@ -4934,8 +4955,8 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
4934
4955
|
document.removeEventListener("fullscreenchange", $), document.removeEventListener("webkitfullscreenchange", $);
|
|
4935
4956
|
};
|
|
4936
4957
|
}, []);
|
|
4937
|
-
const T = k(
|
|
4938
|
-
T.current =
|
|
4958
|
+
const T = k(I);
|
|
4959
|
+
T.current = I;
|
|
4939
4960
|
const _ = k(m.playable ? m.onPlay : void 0);
|
|
4940
4961
|
_.current = m.playable ? m.onPlay : void 0;
|
|
4941
4962
|
const [b, te] = L(!1), [K, v] = L(0), ie = k(!1);
|
|
@@ -4971,11 +4992,11 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
4971
4992
|
window.removeEventListener("scroll", ae), ue.remove(), document.documentElement.style.overscrollBehavior = Me[0][1], window.scrollTo(0, 0);
|
|
4972
4993
|
};
|
|
4973
4994
|
}, [ne, n]);
|
|
4974
|
-
const pe = k(
|
|
4975
|
-
pe.current =
|
|
4995
|
+
const pe = k(O);
|
|
4996
|
+
pe.current = O, D(() => {
|
|
4976
4997
|
const $ = (ae) => ae instanceof HTMLElement && (ae.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ae.tagName)), Me = (ae) => {
|
|
4977
4998
|
var fe;
|
|
4978
|
-
ae.key === "Escape" && !pe.current && T.current && (ae.stopPropagation(), T.current()), ae.key === " " && !pe.current && !$(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (fe = _.current) == null || fe.call(_)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !pe.current && !$(ae.target) &&
|
|
4999
|
+
ae.key === "Escape" && !pe.current && T.current && (ae.stopPropagation(), T.current()), ae.key === " " && !pe.current && !$(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (fe = _.current) == null || fe.call(_)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !pe.current && !$(ae.target) && mi() && (ae.preventDefault(), ae.repeat || An(!yr()));
|
|
4979
5000
|
}, ue = (ae) => {
|
|
4980
5001
|
ae.key === " " && !pe.current && !$(ae.target) && ae.preventDefault();
|
|
4981
5002
|
};
|
|
@@ -4984,7 +5005,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
4984
5005
|
};
|
|
4985
5006
|
}, []);
|
|
4986
5007
|
const le = ru("(orientation: landscape) and (max-height: 540px)"), Te = k(null), [je, Se] = L(null);
|
|
4987
|
-
|
|
5008
|
+
qt(() => {
|
|
4988
5009
|
const $ = Te.current;
|
|
4989
5010
|
if (!$ || (Se($.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
|
|
4990
5011
|
const Me = new ResizeObserver(([ue]) => Se(ue.contentRect.width));
|
|
@@ -4992,10 +5013,10 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
4992
5013
|
}, []);
|
|
4993
5014
|
const ve = t && !F, we = !ve && a && !le && (je == null || je >= 880), Ee = !we;
|
|
4994
5015
|
D(() => {
|
|
4995
|
-
if (te(!1), !m.playing ||
|
|
5016
|
+
if (te(!1), !m.playing || O) return;
|
|
4996
5017
|
const $ = setTimeout(() => te(!0), 3e3);
|
|
4997
5018
|
return () => clearTimeout($);
|
|
4998
|
-
}, [m.playing,
|
|
5019
|
+
}, [m.playing, O, K]);
|
|
4999
5020
|
const Re = k(b);
|
|
5000
5021
|
Re.current = b;
|
|
5001
5022
|
const De = k(0), Q = ($) => {
|
|
@@ -5003,7 +5024,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5003
5024
|
const Me = Date.now();
|
|
5004
5025
|
!Re.current && Me - De.current < 1e3 || (De.current = Me, v((ue) => ue + 1));
|
|
5005
5026
|
}, H = !we && le, E = k(null), x = l ? l.words.map(($) => $.dim ? 0 : 1).join("") + l.words.length + ":" + (l.cursor ?? "") : "";
|
|
5006
|
-
|
|
5027
|
+
qt(() => {
|
|
5007
5028
|
const $ = E.current;
|
|
5008
5029
|
if (!$) return;
|
|
5009
5030
|
const Me = !!(l != null && l.words.some((de) => de.dim)) || (l == null ? void 0 : l.cursor) != null, ue = $.querySelectorAll((l == null ? void 0 : l.cursor) != null && !l.words.some((de) => de.dim) ? "[data-at]" : "[data-said]"), ae = parseFloat(getComputedStyle($).lineHeight) || 24, fe = Math.round($.scrollHeight / ae) - Math.round($.clientHeight / ae), Ye = Math.max(0, fe) * ae;
|
|
@@ -5029,7 +5050,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5029
5050
|
/* @__PURE__ */ g("label", { className: "gfull__shareat", children: [
|
|
5030
5051
|
/* @__PURE__ */ i("input", { type: "checkbox", checked: V, onChange: ($) => ce($.target.checked), disabled: B.share.at < 1 }),
|
|
5031
5052
|
"Start at ",
|
|
5032
|
-
|
|
5053
|
+
kt(Math.floor(B.share.at))
|
|
5033
5054
|
] }),
|
|
5034
5055
|
/* @__PURE__ */ i("div", { className: "gfull__shareurl", children: /* @__PURE__ */ i("span", { children: ke.replace(/^https?:\/\//, "") }) }),
|
|
5035
5056
|
/* @__PURE__ */ g("div", { className: "gfull__shareacts", children: [
|
|
@@ -5044,10 +5065,10 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5044
5065
|
] })
|
|
5045
5066
|
] })
|
|
5046
5067
|
] }), he = ($, Me, ue, ae, fe, Ye = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: $, "aria-label": $, onClick: ae, children: /* @__PURE__ */ i(oe, { d: Me, size: (we ? 20 : Ee ? 15 : 18) + Ye, sw: ue, style: fe }) }), _e = /* @__PURE__ */ g("div", { className: "gfull__acts", children: [
|
|
5047
|
-
p && /* @__PURE__ */ i(
|
|
5068
|
+
p && /* @__PURE__ */ i(ra, { v: p, size: we ? 20 : Ee ? 15 : 18 }),
|
|
5048
5069
|
C && he("Share", X.share, 1.6, C),
|
|
5049
|
-
|
|
5050
|
-
|
|
5070
|
+
mi() && !e && he(F ? "Exit full screen" : "Full screen", F ? tu : na, 1.7, () => An(!F)),
|
|
5071
|
+
I && he("Close player", X.close, 1.7, I)
|
|
5051
5072
|
] }), Be = (d || M || S) && /* @__PURE__ */ g("div", { className: "gfull__top", children: [
|
|
5052
5073
|
d && he(d.muted ? "Unmute" : "Mute", d.muted ? X.volumeOff : X.volume, 1.6, d.onToggle),
|
|
5053
5074
|
M && he(M.on ? "Hide subtitles" : "Show subtitles", M.on ? X.cc : X.ccOff, 1.7, M.onToggle, void 0, 4),
|
|
@@ -5094,7 +5115,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5094
5115
|
c
|
|
5095
5116
|
] }) }) : /* @__PURE__ */ i("div", { className: "gfull__sub", children: c }) : l && /* @__PURE__ */ i("div", { className: "gfull__sub", children: /* @__PURE__ */ g("div", { ref: E, children: [
|
|
5096
5117
|
/* @__PURE__ */ i("div", { className: "gfull__subback", "aria-hidden": "true", children: /* @__PURE__ */ g("span", { children: [
|
|
5097
|
-
l.who && /* @__PURE__ */ g(
|
|
5118
|
+
l.who && /* @__PURE__ */ g(Ce, { children: [
|
|
5098
5119
|
/* @__PURE__ */ g("b", { children: [
|
|
5099
5120
|
l.who,
|
|
5100
5121
|
":"
|
|
@@ -5104,7 +5125,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5104
5125
|
l.words.map(($) => $.t + $.sp).join("")
|
|
5105
5126
|
] }) }),
|
|
5106
5127
|
/* @__PURE__ */ g("span", { children: [
|
|
5107
|
-
l.who && /* @__PURE__ */ g(
|
|
5128
|
+
l.who && /* @__PURE__ */ g(Ce, { children: [
|
|
5108
5129
|
/* @__PURE__ */ g("b", { style: { color: l.color }, children: [
|
|
5109
5130
|
l.who,
|
|
5110
5131
|
":"
|
|
@@ -5117,7 +5138,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5117
5138
|
] }, Me))
|
|
5118
5139
|
] })
|
|
5119
5140
|
] }) }),
|
|
5120
|
-
/* @__PURE__ */ i("div", { className: `gfull__prog${we ? "" : " gfull__prog--two"}`, children: we ? /* @__PURE__ */ g(
|
|
5141
|
+
/* @__PURE__ */ i("div", { className: `gfull__prog${we ? "" : " gfull__prog--two"}`, children: we ? /* @__PURE__ */ g(Ce, { children: [
|
|
5121
5142
|
/* @__PURE__ */ i(Dr, { live: o.live, desk: !0, pct: u }),
|
|
5122
5143
|
/* @__PURE__ */ i(_n, { t: m }),
|
|
5123
5144
|
/* @__PURE__ */ i(En, { pos: o, interactive: !0 }),
|
|
@@ -5128,7 +5149,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5128
5149
|
/* @__PURE__ */ i(En, { pos: o, interactive: !0 }),
|
|
5129
5150
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: f }),
|
|
5130
5151
|
_e
|
|
5131
|
-
] }) : /* @__PURE__ */ g(
|
|
5152
|
+
] }) : /* @__PURE__ */ g(Ce, { children: [
|
|
5132
5153
|
/* @__PURE__ */ g("div", { className: "gfull__row", children: [
|
|
5133
5154
|
/* @__PURE__ */ i(Dr, { live: o.live, pct: u, mark: !0 }),
|
|
5134
5155
|
/* @__PURE__ */ i(En, { pos: o, interactive: !0 })
|
|
@@ -5159,7 +5180,7 @@ function au({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o
|
|
|
5159
5180
|
] }),
|
|
5160
5181
|
o && /* @__PURE__ */ i("div", { className: "ghead__sub", children: o })
|
|
5161
5182
|
] }) }),
|
|
5162
|
-
/* @__PURE__ */ i(
|
|
5183
|
+
/* @__PURE__ */ i(Xa, { size: "sm", bordered: !1, variant: c ? "primary" : void 0, onClick: l, label: "Options", children: /* @__PURE__ */ g("svg", { viewBox: "0 0 24 24", width: "19", height: "19", fill: "currentColor", "aria-hidden": "true", children: [
|
|
5163
5184
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "5.5", r: "1.85" }),
|
|
5164
5185
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "12", r: "1.85" }),
|
|
5165
5186
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "18.5", r: "1.85" })
|
|
@@ -5171,7 +5192,7 @@ function uu() {
|
|
|
5171
5192
|
const t = new Uint8Array(24);
|
|
5172
5193
|
return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
5173
5194
|
}
|
|
5174
|
-
function
|
|
5195
|
+
function ia(t, e, n) {
|
|
5175
5196
|
const r = new URL(t ?? Vr), s = uu(), a = new URL(cu, r);
|
|
5176
5197
|
e.url && a.searchParams.set("url", e.url), e.transcription && a.searchParams.set("transcription", e.transcription), e.ask && a.searchParams.set("ask", "1"), e.connect && a.searchParams.set("connect", "1"), a.searchParams.set("origin", window.location.origin), a.searchParams.set("nonce", s);
|
|
5177
5198
|
const o = 480, l = 640, c = Math.max(0, (window.screenX ?? 0) + ((window.outerWidth ?? o) - o) / 2), u = Math.max(0, (window.screenY ?? 0) + ((window.outerHeight ?? l) - l) / 2), d = window.open(a.toString(), "vocalstack-connect", `popup=yes,width=${o},height=${l},left=${Math.round(c)},top=${Math.round(u)}`);
|
|
@@ -5213,20 +5234,20 @@ function la(t, e, n) {
|
|
|
5213
5234
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
5214
5235
|
}
|
|
5215
5236
|
async function du(t, e, n) {
|
|
5216
|
-
const r = await
|
|
5237
|
+
const r = await ia(t, { url: e }, n);
|
|
5217
5238
|
return r === "connected" ? null : r;
|
|
5218
5239
|
}
|
|
5219
|
-
const
|
|
5240
|
+
const aa = "vsp.connected";
|
|
5220
5241
|
function hu(t) {
|
|
5221
5242
|
try {
|
|
5222
|
-
return localStorage.getItem(
|
|
5243
|
+
return localStorage.getItem(aa) === new URL(t ?? Vr).origin;
|
|
5223
5244
|
} catch {
|
|
5224
5245
|
return !1;
|
|
5225
5246
|
}
|
|
5226
5247
|
}
|
|
5227
5248
|
function Mu(t) {
|
|
5228
5249
|
try {
|
|
5229
|
-
localStorage.setItem(
|
|
5250
|
+
localStorage.setItem(aa, new URL(t ?? Vr).origin);
|
|
5230
5251
|
} catch {
|
|
5231
5252
|
}
|
|
5232
5253
|
}
|
|
@@ -5272,7 +5293,7 @@ function pu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5272
5293
|
/* @__PURE__ */ i("input", { className: "vsp-end__input", type: "url", inputMode: "url", autoComplete: "off", spellCheck: !1, placeholder: "https://youtube.com/watch?v=…", value: s, onChange: (y) => {
|
|
5273
5294
|
a(y.target.value), u(null);
|
|
5274
5295
|
}, "aria-label": "Video link" }),
|
|
5275
|
-
/* @__PURE__ */ i("button", { type: "submit", className: "vsp-end__go", disabled: !f || o, children: o ? /* @__PURE__ */ i(
|
|
5296
|
+
/* @__PURE__ */ i("button", { type: "submit", className: "vsp-end__go", disabled: !f || o, children: o ? /* @__PURE__ */ i(ht, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : "Transcribe" })
|
|
5276
5297
|
] }),
|
|
5277
5298
|
o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children: gu[d ?? "checking"] }),
|
|
5278
5299
|
c && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: c }),
|
|
@@ -5285,7 +5306,7 @@ function pu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5285
5306
|
] })
|
|
5286
5307
|
] }) });
|
|
5287
5308
|
}
|
|
5288
|
-
function
|
|
5309
|
+
function oa(t) {
|
|
5289
5310
|
const [e, n] = L(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
|
|
5290
5311
|
return D(() => {
|
|
5291
5312
|
if (t != null) return;
|
|
@@ -5295,7 +5316,7 @@ function ua(t) {
|
|
|
5295
5316
|
}
|
|
5296
5317
|
const mu = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
|
|
5297
5318
|
function Nu(t, e) {
|
|
5298
|
-
const n =
|
|
5319
|
+
const n = Vi(), [r, s] = Di(), [a, o] = L(null), [l, c] = L("main"), u = Cr(n, t.lang), d = ze(() => Ai(n, "translation"), [n]), M = (Y) => {
|
|
5299
5320
|
e({ lang: Y }), s(Y);
|
|
5300
5321
|
}, h = _r({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: M, languages: d, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: r, keepOpen: !0 }), f = () => {
|
|
5301
5322
|
o(null), c("main");
|
|
@@ -5307,23 +5328,23 @@ function Nu(t, e) {
|
|
|
5307
5328
|
/* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 18, sw: 1.8 }),
|
|
5308
5329
|
"Back"
|
|
5309
5330
|
] })
|
|
5310
|
-
] }), p = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 },
|
|
5331
|
+
] }), p = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, O = (Y, ee, I) => /* @__PURE__ */ g("div", { className: "srow", children: [
|
|
5311
5332
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5312
5333
|
/* @__PURE__ */ i("div", { className: "srow__t", children: Y }),
|
|
5313
5334
|
/* @__PURE__ */ i("div", { className: "srow__s", children: ee })
|
|
5314
5335
|
] }),
|
|
5315
|
-
|
|
5336
|
+
I
|
|
5316
5337
|
] }), C = /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
5317
5338
|
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: h.search }),
|
|
5318
5339
|
h.list
|
|
5319
5340
|
] }), S = l === "lang" ? C : l === "subs" ? /* @__PURE__ */ g("div", { style: p, children: [
|
|
5320
|
-
|
|
5321
|
-
|
|
5322
|
-
|
|
5341
|
+
O("Show subtitles", "Captions over the video", /* @__PURE__ */ i(Tt, { checked: t.subtitles, onChange: (Y) => e({ subtitles: Y }), label: "Show subtitles" })),
|
|
5342
|
+
O("Show speaker labels", "Who is speaking, before each line", /* @__PURE__ */ i(Tt, { checked: t.speakerLabels, onChange: (Y) => e({ speakerLabels: Y }), label: "Show speaker labels" })),
|
|
5343
|
+
O("Highlight words", "Follow each word as it is spoken", /* @__PURE__ */ i(Tt, { checked: t.wordHighlight, onChange: (Y) => e({ wordHighlight: Y }), label: "Highlight words" }))
|
|
5323
5344
|
] }) : l === "audio" ? /* @__PURE__ */ g("div", { style: p, children: [
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
5345
|
+
O("Translate audio", t.lang ? "Hear the translation read aloud instead of the original speech" : "Pick a language to hear the translation read aloud", /* @__PURE__ */ i(Tt, { checked: t.translateAudio && !!t.lang, onChange: (Y) => e({ translateAudio: Y }), label: "Translate audio", disabled: !t.lang })),
|
|
5346
|
+
O("Voices", t.voices === "cloned" ? "Each speaker in their own cloned voice, where they agreed to it" : "Synthetic voices matched to each speaker", /* @__PURE__ */ i(wr, { value: t.voices, onChange: (Y) => e({ voices: Y }), size: "sm", options: [{ value: "synthetic", label: "Synthetic" }, { value: "cloned", label: "Cloned" }] })),
|
|
5347
|
+
O(Un, "Takes out everything that isn't speech: music, ambience and noise.", /* @__PURE__ */ i(Tt, { checked: t.removeBackground, onChange: (Y) => e({ removeBackground: Y }), label: Un }))
|
|
5327
5348
|
] }) : /* @__PURE__ */ g("div", { style: p, children: [
|
|
5328
5349
|
/* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", onClick: () => c("lang"), children: [
|
|
5329
5350
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5349,9 +5370,9 @@ function Nu(t, e) {
|
|
|
5349
5370
|
] }),
|
|
5350
5371
|
j
|
|
5351
5372
|
] })
|
|
5352
|
-
] }), B = /* @__PURE__ */ g(
|
|
5353
|
-
/* @__PURE__ */ i(
|
|
5354
|
-
/* @__PURE__ */ i(
|
|
5373
|
+
] }), B = /* @__PURE__ */ g(Ce, { children: [
|
|
5374
|
+
/* @__PURE__ */ i(Kt, { open: a === "lang", onClose: f, title: "LANGUAGE", kind: "picker", header: h.search, sticky: !0, children: /* @__PURE__ */ i(vr, { children: h.list }) }),
|
|
5375
|
+
/* @__PURE__ */ i(Kt, { open: a === "settings", onClose: f, title: { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO" }[l], titleNode: l === "main" ? void 0 : N, kind: l === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(vr, { children: S }) })
|
|
5355
5376
|
] });
|
|
5356
5377
|
return {
|
|
5357
5378
|
chip: y,
|
|
@@ -5362,21 +5383,21 @@ function Nu(t, e) {
|
|
|
5362
5383
|
}
|
|
5363
5384
|
};
|
|
5364
5385
|
}
|
|
5365
|
-
const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "currentColor", fillRule: e }), $t = (t) => /* @__PURE__ */ g(
|
|
5386
|
+
const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "currentColor", fillRule: e }), $t = (t) => /* @__PURE__ */ g(Ce, { children: [
|
|
5366
5387
|
/* @__PURE__ */ i("path", { d: "M6.5 2.75h7.25l4.75 4.75v12.25a1.5 1.5 0 0 1-1.5 1.5H6.5a1.5 1.5 0 0 1-1.5-1.5V4.25a1.5 1.5 0 0 1 1.5-1.5Z", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
|
|
5367
5388
|
/* @__PURE__ */ i("path", { d: "M13.75 2.75V7.5h4.75", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
|
|
5368
5389
|
/* @__PURE__ */ i("text", { x: "11.75", y: "17.4", textAnchor: "middle", fontSize: t.length > 3 ? 4.4 : 5.2, fontWeight: "800", fill: "currentColor", fontFamily: "inherit", letterSpacing: ".2", children: t })
|
|
5369
|
-
] }),
|
|
5390
|
+
] }), Ni = [
|
|
5370
5391
|
{ name: "YouTube", tint: "#ff3b30", glyph: yt("M21.6 7.2a2.7 2.7 0 0 0-1.9-1.9C18 4.8 12 4.8 12 4.8s-6 0-7.7.5a2.7 2.7 0 0 0-1.9 1.9C2 8.9 2 12 2 12s0 3.1.4 4.8a2.7 2.7 0 0 0 1.9 1.9c1.7.5 7.7.5 7.7.5s6 0 7.7-.5a2.7 2.7 0 0 0 1.9-1.9c.4-1.7.4-4.8.4-4.8s0-3.1-.4-4.8ZM10 15.1V8.9l5.3 3.1L10 15.1Z", "evenodd") },
|
|
5371
5392
|
{ name: "MP3", tint: "#f78472", glyph: $t("MP3") },
|
|
5372
5393
|
{ name: "Vimeo", tint: "#1ab7ea", glyph: yt("M22 7.4c-.1 2-1.5 4.7-4.2 8.1-2.8 3.6-5.1 5.4-7 5.4-1.2 0-2.2-1.1-3-3.3L6.2 11.6C5.6 9.4 5 8.3 4.3 8.3c-.1 0-.6.3-1.4.9L2 8l2.7-2.4C5.9 4.6 6.8 4 7.4 4c1.4-.1 2.3.9 2.6 2.9.4 2.2.6 3.6.8 4.1.4 1.8.9 2.7 1.4 2.7.4 0 1-.6 1.8-1.9.8-1.2 1.2-2.2 1.3-2.8.1-1.1-.3-1.6-1.3-1.6-.5 0-.9.1-1.4.3.9-3 2.7-4.5 5.3-4.4 1.9.1 2.8 1.3 2.7 3.7Z") },
|
|
5373
|
-
{ name: "Video", tint: "#55abe5", glyph: /* @__PURE__ */ g(
|
|
5394
|
+
{ name: "Video", tint: "#55abe5", glyph: /* @__PURE__ */ g(Ce, { children: [
|
|
5374
5395
|
/* @__PURE__ */ i("rect", { x: "3", y: "5.5", width: "13", height: "13", rx: "2.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
5375
5396
|
yt("M16 10.2 21 7v10l-5-3.2v-3.6Z")
|
|
5376
5397
|
] }) },
|
|
5377
5398
|
{ name: "Twitch", tint: "#a970ff", glyph: yt("M5 2.5 3 6.5v13h4.5V22H10l2.5-2.5h3.8L21 14.8V2.5H5Zm14 11.4-2.9 2.9h-4.3L9.4 19.2v-2.4H6V4.5h13v9.4ZM15.2 7.4h1.9v5.2h-1.9V7.4Zm-5 0h1.9v5.2h-1.9V7.4Z", "evenodd") },
|
|
5378
5399
|
{ name: "WAV", tint: "#7ee0b4", glyph: $t("WAV") },
|
|
5379
|
-
{ name: "SoundCloud", tint: "#ff7a1a", glyph: /* @__PURE__ */ g(
|
|
5400
|
+
{ name: "SoundCloud", tint: "#ff7a1a", glyph: /* @__PURE__ */ g(Ce, { children: [
|
|
5380
5401
|
yt("M11 8.6a5 5 0 0 1 7.8 3.1 3 3 0 0 1-.3 6H11V8.6Z"),
|
|
5381
5402
|
/* @__PURE__ */ i("rect", { x: "8.6", y: "9.4", width: "1.3", height: "8.3", rx: ".65", fill: "currentColor" }),
|
|
5382
5403
|
/* @__PURE__ */ i("rect", { x: "6.2", y: "10.6", width: "1.3", height: "7.1", rx: ".65", fill: "currentColor" }),
|
|
@@ -5414,8 +5435,8 @@ const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "curren
|
|
|
5414
5435
|
] }) }
|
|
5415
5436
|
], yu = 14, Tu = 4;
|
|
5416
5437
|
function wu(t) {
|
|
5417
|
-
const e =
|
|
5418
|
-
for (let r = 0; r < 11; r++) n.push(
|
|
5438
|
+
const e = Ni.length, n = [];
|
|
5439
|
+
for (let r = 0; r < 11; r++) n.push(Ni[(r + t * 7) % e]);
|
|
5419
5440
|
return n;
|
|
5420
5441
|
}
|
|
5421
5442
|
function vu({ t }) {
|
|
@@ -5439,14 +5460,14 @@ function Lu() {
|
|
|
5439
5460
|
return /* @__PURE__ */ i("div", { className: `vsp-prov__row${o % 2 ? " vsp-prov__row--rev" : ""}`, style: { animationDuration: `${80 + o * 11}s`, animationDelay: `-${o * 17}s` }, children: Array.from({ length: Tu }, (c, u) => l.map((d, M) => /* @__PURE__ */ i(vu, { t: d }, `${u}-${M}`))) }, o);
|
|
5440
5461
|
}) }) });
|
|
5441
5462
|
}
|
|
5442
|
-
const
|
|
5463
|
+
const la = {
|
|
5443
5464
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
5444
5465
|
consent: "Confirm in the VocalStack window…",
|
|
5445
5466
|
looking: "Looking for your transcription of this video…",
|
|
5446
5467
|
confirm: "Confirm in the VocalStack window…",
|
|
5447
5468
|
checking: "Checking the link…",
|
|
5448
5469
|
starting: "Starting the transcription…"
|
|
5449
|
-
},
|
|
5470
|
+
}, yi = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
5450
5471
|
function Tr(t) {
|
|
5451
5472
|
try {
|
|
5452
5473
|
return new URL(t).hostname.replace(/^www\./, "");
|
|
@@ -5455,12 +5476,12 @@ function Tr(t) {
|
|
|
5455
5476
|
}
|
|
5456
5477
|
}
|
|
5457
5478
|
function ku(t, e) {
|
|
5458
|
-
const [n, r] = L(!1), [s, a] = L(null), [o, l] = L(null), [c, u] = L(() => hu(t)), d =
|
|
5479
|
+
const [n, r] = L(!1), [s, a] = L(null), [o, l] = L(null), [c, u] = L(() => hu(t)), d = Ke((f) => {
|
|
5459
5480
|
if (n) return;
|
|
5460
5481
|
r(!0), l(null);
|
|
5461
5482
|
let m;
|
|
5462
5483
|
try {
|
|
5463
|
-
m =
|
|
5484
|
+
m = ia(t, f, a);
|
|
5464
5485
|
} catch (y) {
|
|
5465
5486
|
m = Promise.reject(y);
|
|
5466
5487
|
}
|
|
@@ -5469,15 +5490,15 @@ function ku(t, e) {
|
|
|
5469
5490
|
}).catch((y) => l(y instanceof Error ? y.message : "Something went wrong. Please try again.")).finally(() => {
|
|
5470
5491
|
r(!1), a(null);
|
|
5471
5492
|
});
|
|
5472
|
-
}, [t, n, e]), M =
|
|
5493
|
+
}, [t, n, e]), M = Ke(() => d({ connect: !0 }), [d]), h = Ke((f, m) => d({ url: f, ask: m }), [d]);
|
|
5473
5494
|
return { busy: n, status: s, err: o, connected: c, connect: M, start: h };
|
|
5474
5495
|
}
|
|
5475
5496
|
function ju(t) {
|
|
5476
5497
|
return /\.(mp4|webm|mov|m4v|ogv|mkv)(\?|#|$)/i.test(t);
|
|
5477
5498
|
}
|
|
5478
5499
|
function zu({ poster: t, src: e }) {
|
|
5479
|
-
const n = e ?
|
|
5480
|
-
return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && ju(e) ? /* @__PURE__ */ i("video", { className: "vsp-idle__pic vsp-idle__frame", src: `${e}#t=1`, muted: !0, playsInline: !0, preload: "metadata", "aria-hidden": "true" }) : /* @__PURE__ */ g(
|
|
5500
|
+
const n = e ? Zi(e) : null, r = t ?? (n ? `https://i.ytimg.com/vi/${n}/hqdefault.jpg` : null);
|
|
5501
|
+
return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && ju(e) ? /* @__PURE__ */ i("video", { className: "vsp-idle__pic vsp-idle__frame", src: `${e}#t=1`, muted: !0, playsInline: !0, preload: "metadata", "aria-hidden": "true" }) : /* @__PURE__ */ g(Ce, { children: [
|
|
5481
5502
|
/* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
|
|
5482
5503
|
/* @__PURE__ */ i(Lu, {})
|
|
5483
5504
|
] });
|
|
@@ -5485,8 +5506,8 @@ function zu({ poster: t, src: e }) {
|
|
|
5485
5506
|
const Iu = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
|
|
5486
5507
|
} };
|
|
5487
5508
|
function Pn({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children: o }) {
|
|
5488
|
-
const l = Nu(t.prefs, t.set), c =
|
|
5489
|
-
|
|
5509
|
+
const l = Nu(t.prefs, t.set), c = oa(), u = k(null), [d, M] = L(!1);
|
|
5510
|
+
qt(() => {
|
|
5490
5511
|
var j;
|
|
5491
5512
|
const f = (j = u.current) == null ? void 0 : j.parentElement;
|
|
5492
5513
|
if (!f) return;
|
|
@@ -5499,38 +5520,38 @@ function Pn({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children:
|
|
|
5499
5520
|
}, onNext: () => {
|
|
5500
5521
|
}, playing: !1, playable: !0, playTitle: "Connect to play", onPlay: a };
|
|
5501
5522
|
return /* @__PURE__ */ g("div", { ref: u, className: `vsp-idleroot${d ? " vsp-idleroot--small" : ""}`, children: [
|
|
5502
|
-
/* @__PURE__ */ i(
|
|
5523
|
+
/* @__PURE__ */ i(sa, { page: s, picture: /* @__PURE__ */ i(zu, { poster: e, src: n }), title: r, desk: c, pos: Iu, 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: h, picker: l.sheets, sheet: null, voices: null, voicesBtn: null, sheetOpen: l.sheetOpen, onSettings: l.openSettings, onShare: () => Qr(t.shareUrl ?? window.location.href, r), copied: null, onTouch: () => {
|
|
5503
5524
|
} }),
|
|
5504
5525
|
!l.sheetOpen && /* @__PURE__ */ i("div", { className: "vsp-idle", "data-theme": "dark", children: /* @__PURE__ */ i("div", { className: "vsp-idle__box", children: o }) })
|
|
5505
5526
|
] });
|
|
5506
5527
|
}
|
|
5507
|
-
function
|
|
5508
|
-
return /* @__PURE__ */ g(
|
|
5528
|
+
function ca({ connect: t, onClick: e, label: n }) {
|
|
5529
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
5509
5530
|
/* @__PURE__ */ g("button", { type: "button", className: "vsp-idle__connect", onClick: e, disabled: t.busy, children: [
|
|
5510
|
-
t.busy ? /* @__PURE__ */ i(
|
|
5531
|
+
t.busy ? /* @__PURE__ */ i(ht, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(oe, { d: X.link, size: 18, sw: 1.8 }),
|
|
5511
5532
|
/* @__PURE__ */ i("span", { children: t.busy ? "Waiting for VocalStack…" : n })
|
|
5512
5533
|
] }),
|
|
5513
|
-
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5534
|
+
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: la[t.status ?? "checking"] }),
|
|
5514
5535
|
t.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: t.err })
|
|
5515
5536
|
] });
|
|
5516
5537
|
}
|
|
5517
5538
|
function Ou({ idle: t, src: e, ask: n, connect: r, page: s, poster: a = null, onClear: o }) {
|
|
5518
5539
|
const l = () => r.start(e, n);
|
|
5519
5540
|
return /* @__PURE__ */ g(Pn, { idle: t, poster: a, src: e, title: Tr(e), page: s, onAct: l, children: [
|
|
5520
|
-
/* @__PURE__ */ i(
|
|
5541
|
+
/* @__PURE__ */ i(ca, { connect: r, onClick: l, label: r.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
|
|
5521
5542
|
!r.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: r.connected ? `Plays ${Tr(e)} with subtitles and spoken translations.` : `Connect to play ${Tr(e)} with subtitles and spoken translations.` }),
|
|
5522
5543
|
o && !r.busy && /* @__PURE__ */ i("button", { type: "button", className: "vsp-idle__other", onClick: o, children: "Choose another video" })
|
|
5523
5544
|
] });
|
|
5524
5545
|
}
|
|
5525
5546
|
function bu({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
5526
|
-
const [a, o] = L(""), l = k(null), c = k(null), u = a.trim(), d =
|
|
5547
|
+
const [a, o] = L(""), l = k(null), c = k(null), u = a.trim(), d = yi.test(u), M = () => {
|
|
5527
5548
|
if (!d || e.busy) return;
|
|
5528
5549
|
const m = /^https?:\/\//i.test(u) ? u : `https://${u}`;
|
|
5529
5550
|
s(m), e.start(m, !1);
|
|
5530
5551
|
};
|
|
5531
5552
|
if (!e.connected)
|
|
5532
5553
|
return /* @__PURE__ */ g(Pn, { idle: t, poster: r, src: null, title: "VocalStack", page: n, onAct: e.connect, children: [
|
|
5533
|
-
/* @__PURE__ */ i(
|
|
5554
|
+
/* @__PURE__ */ i(ca, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
|
|
5534
5555
|
!e.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "Connect your VocalStack account to watch any video with subtitles and spoken translations." })
|
|
5535
5556
|
] });
|
|
5536
5557
|
const h = () => {
|
|
@@ -5538,7 +5559,7 @@ function bu({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
|
5538
5559
|
d ? M() : (m = l.current) == null || m.focus();
|
|
5539
5560
|
}, f = (m) => {
|
|
5540
5561
|
const y = m.trim();
|
|
5541
|
-
if (!
|
|
5562
|
+
if (!yi.test(y) || e.busy || y === c.current) return;
|
|
5542
5563
|
c.current = y;
|
|
5543
5564
|
const j = /^https?:\/\//i.test(y) ? y : `https://${y}`;
|
|
5544
5565
|
s(j), e.start(j, !1);
|
|
@@ -5552,9 +5573,9 @@ function bu({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
|
5552
5573
|
const y = m.clipboardData.getData("text");
|
|
5553
5574
|
y && (o(y.trim()), f(y), m.preventDefault());
|
|
5554
5575
|
}, "aria-label": "Video link", autoFocus: !0 }),
|
|
5555
|
-
e.busy && /* @__PURE__ */ i(
|
|
5576
|
+
e.busy && /* @__PURE__ */ i(ht, { size: 15, color: "#eef0f8", track: "rgba(255,255,255,.2)" })
|
|
5556
5577
|
] }) }),
|
|
5557
|
-
e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5578
|
+
e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: la[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." }),
|
|
5558
5579
|
e.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: e.err })
|
|
5559
5580
|
] });
|
|
5560
5581
|
}
|
|
@@ -5583,7 +5604,7 @@ function xu(t, e, n) {
|
|
|
5583
5604
|
}
|
|
5584
5605
|
let a = !0;
|
|
5585
5606
|
s(void 0);
|
|
5586
|
-
const o = new
|
|
5607
|
+
const o = new Li({ baseUrl: (n ?? Qi).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
|
|
5587
5608
|
if (!l) {
|
|
5588
5609
|
s(null);
|
|
5589
5610
|
return;
|
|
@@ -5597,13 +5618,13 @@ function xu(t, e, n) {
|
|
|
5597
5618
|
};
|
|
5598
5619
|
}, [t, e, n]), r;
|
|
5599
5620
|
}
|
|
5600
|
-
const Su = 100,
|
|
5621
|
+
const Su = 100, Ti = (t) => t == null ? null : t ? "on" : "off";
|
|
5601
5622
|
function Du(t) {
|
|
5602
5623
|
const e = t.syncUrl && typeof window < "u" ? new URLSearchParams(window.location.search) : null, n = { ...t.initial ?? {}, ...t.settings ?? {} }, r = (a) => a === "on" || a === "off" ? a : null, s = Number(e == null ? void 0 : e.get("t"));
|
|
5603
5624
|
return {
|
|
5604
5625
|
lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
|
|
5605
|
-
labels: r(e == null ? void 0 : e.get("labels")) ??
|
|
5606
|
-
words: r(e == null ? void 0 : e.get("words")) ??
|
|
5626
|
+
labels: r(e == null ? void 0 : e.get("labels")) ?? Ti(n.speakerLabels),
|
|
5627
|
+
words: r(e == null ? void 0 : e.get("words")) ?? Ti(n.wordHighlight),
|
|
5607
5628
|
cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
|
|
5608
5629
|
translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
|
|
5609
5630
|
clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
|
|
@@ -5611,10 +5632,10 @@ function Du(t) {
|
|
|
5611
5632
|
startAt: Number.isFinite(s) && s > 0 ? s : t.startAt ?? null
|
|
5612
5633
|
};
|
|
5613
5634
|
}
|
|
5614
|
-
const Wu =
|
|
5635
|
+
const Wu = Ba(function(e, n) {
|
|
5615
5636
|
var K;
|
|
5616
5637
|
const r = k(null);
|
|
5617
|
-
|
|
5638
|
+
Va(n, () => ({
|
|
5618
5639
|
seek: (v) => {
|
|
5619
5640
|
var ie;
|
|
5620
5641
|
return (ie = r.current) == null ? void 0 : ie.seek(v);
|
|
@@ -5650,7 +5671,7 @@ const Wu = Ha(function(e, n) {
|
|
|
5650
5671
|
D(() => {
|
|
5651
5672
|
c(null);
|
|
5652
5673
|
}, [e.id, e.src]);
|
|
5653
|
-
const j = e.src ?? l, N = !s.id && !!j && (l != null || o !== void 0), p = !s.id && !e.src && !l,
|
|
5674
|
+
const j = e.src ?? l, N = !s.id && !!j && (l != null || o !== void 0), p = !s.id && !e.src && !l, O = Bi({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: C, gone: S, error: B, reload: Y } = Il(O, s.id), ee = Ol(O, (C == null ? void 0 : C.recording.id) ?? null), I = ze(() => jl(O, ee), [O, ee]);
|
|
5654
5675
|
D(() => {
|
|
5655
5676
|
var v;
|
|
5656
5677
|
C && ((v = e.onSource) == null || v.call(e, C));
|
|
@@ -5658,16 +5679,16 @@ const Wu = Ha(function(e, n) {
|
|
|
5658
5679
|
var v;
|
|
5659
5680
|
B && ((v = e.onError) == null || v.call(e, B));
|
|
5660
5681
|
}, [B]);
|
|
5661
|
-
const F =
|
|
5662
|
-
return D(() => (
|
|
5682
|
+
const F = oa(e.desk), A = (e.layout ?? "embed") === "embed", T = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), _ = Ke((v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }), []), b = ku(T, _), te = k(null);
|
|
5683
|
+
return D(() => (pi(A ? te.current : null), () => pi(null)), [A]), /* @__PURE__ */ i(wl, { value: I, children: /* @__PURE__ */ i("div", { ref: te, className: `vsp${A ? " vsp--embed" : ""}${e.className ? ` ${e.className}` : ""}`, "data-theme": (e.mode ?? "video") === "video" || e.dark ? "dark" : "light", "data-mode": (e.mode ?? "video") === "video" ? "video" : "transcript", children: p ? /* @__PURE__ */ i(bu, { idle: f, connect: b, page: !A, poster: e.poster ?? null, onPick: c }) : N ? /* @__PURE__ */ i(Ou, { idle: f, src: j, ask: !l, connect: b, page: !A, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ? B && !C ? /* @__PURE__ */ i(Cu, { idle: f, message: B.message, onRetry: Y, page: !A }) : /* @__PURE__ */ i(Au, { ...e, initial: { ...e.initial ?? {}, ...y }, startMuted: m === !0, handle: r, id: s.id, api: I, shared: C, gone: S, loadError: B, reread: Y, desk: F, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }) }, s.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
|
|
5663
5684
|
});
|
|
5664
5685
|
function Au(t) {
|
|
5665
|
-
var vs, Ls, ks, js, zs, Is, Os, bs, Cs, xs, Ss, Ds, As, Es, _s, Ys, Us, Rs, Ps, $s, Qs, Bs, Vs, Hs, Ws, Fs, Zs, Gs, qs
|
|
5686
|
+
var vs, Ls, ks, js, zs, Is, Os, bs, Cs, xs, Ss, Ds, As, Es, _s, Ys, Us, Rs, Ps, $s, Qs, Bs, Vs, Hs, Ws, Fs, Zs, Gs, qs;
|
|
5666
5687
|
const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() => Du(t), []), u = (t.mode ?? "video") === "video", [d, M] = L(t.loadError);
|
|
5667
5688
|
D(() => {
|
|
5668
5689
|
t.loadError && M(t.loadError);
|
|
5669
5690
|
}, [t.loadError]);
|
|
5670
|
-
const [h, f] = L("none"), [m, y] = L(!1), [j, N] = L(""), [p,
|
|
5691
|
+
const [h, f] = L("none"), [m, y] = L(!1), [j, N] = L(""), [p, O] = Ec(), [C, S] = L(null), [B, Y] = L(u ? "listen" : "read"), [ee, I] = L(!1), F = k(null), A = k(/* @__PURE__ */ new Map()), [T, _] = L("main"), b = (w) => {
|
|
5671
5692
|
const me = document.querySelector(".vs-sheet--settings"), Pe = me == null ? void 0 : me.parentElement;
|
|
5672
5693
|
me && Pe && T === "main" && w !== "main" && Pe.style.setProperty("--vs-sheet-top", `${Math.round(me.getBoundingClientRect().top - Pe.getBoundingClientRect().top)}px`), _(w);
|
|
5673
5694
|
};
|
|
@@ -5707,192 +5728,192 @@ function Au(t) {
|
|
|
5707
5728
|
D(() => {
|
|
5708
5729
|
!Be || !Me || Date.now() - ue.current < 1e4 || (ue.current = Date.now(), t.reread());
|
|
5709
5730
|
}, [Be, Me, C == null ? void 0 : C.state, C == null ? void 0 : C.processedS, o]);
|
|
5710
|
-
const ae = mr(($ == null ? void 0 : $.state) ?? ((Ls = n == null ? void 0 : n.job) == null ? void 0 : Ls.state) ?? (e.listen ? (v == null ? void 0 : v.state) === "finalized" ? "done" : v != null && v.state ? "transcribing" : void 0 : void 0)), fe = !!ie && (ae === "transcribing" || ae === "queued"), Ye = u && !r && (!n || (fe || ae === "cropping") && he.length === 0), U = fe ? ($ == null ? void 0 : $.pct) ?? 0 : 100, R = El(n == null ? void 0 : n.job, $) ?? (v == null ? void 0 : v.mediaDurationS) ?? null, q = ((ks = ce.segments.values().next().value) == null ? void 0 : ks.language) ?? (v == null ? void 0 : v.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", de = ((Is = (zs = (js = n == null ? void 0 : n.job) == null ? void 0 : js.source) == null ? void 0 : zs.name) == null ? void 0 : Is.trim()) || null, Oe = n ? ((Os = n.name) == null ? void 0 : Os.trim()) || de : null, Ne = !!((bs = n == null ? void 0 : n.job) != null && bs.hasAudio), Le = (Cs = n == null ? void 0 : n.job) == null ? void 0 : Cs.source, be = !Ne && !!Le && (Le.kind !== "url" || Le.bytes != null) && (ae === "transcribing" || ae === "queued" || ae === "done"), He = ie && (n != null && n.allowDownload) && Ne ?
|
|
5731
|
+
const ae = mr(($ == null ? void 0 : $.state) ?? ((Ls = n == null ? void 0 : n.job) == null ? void 0 : Ls.state) ?? (e.listen ? (v == null ? void 0 : v.state) === "finalized" ? "done" : v != null && v.state ? "transcribing" : void 0 : void 0)), fe = !!ie && (ae === "transcribing" || ae === "queued"), Ye = u && !r && (!n || (fe || ae === "cropping") && he.length === 0), U = fe ? ($ == null ? void 0 : $.pct) ?? 0 : 100, R = El(n == null ? void 0 : n.job, $) ?? (v == null ? void 0 : v.mediaDurationS) ?? null, q = ((ks = ce.segments.values().next().value) == null ? void 0 : ks.language) ?? (v == null ? void 0 : v.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", de = ((Is = (zs = (js = n == null ? void 0 : n.job) == null ? void 0 : js.source) == null ? void 0 : zs.name) == null ? void 0 : Is.trim()) || null, Oe = n ? ((Os = n.name) == null ? void 0 : Os.trim()) || de : null, Ne = !!((bs = n == null ? void 0 : n.job) != null && bs.hasAudio), Le = (Cs = n == null ? void 0 : n.job) == null ? void 0 : Cs.source, be = !Ne && !!Le && (Le.kind !== "url" || Le.bytes != null) && (ae === "transcribing" || ae === "queued" || ae === "done"), He = ie && (n != null && n.allowDownload) && Ne ? ao(e.origin, ie, e.cred) : null, $e = !!Le && (Le.kind !== "url" || Le.bytes != null), ut = Eu(He && $e ? He : null), st = He && (!$e || ut === "yes") ? He : He && ut === "unknown" ? null : ie && (n != null && n.allowDownload) && (be || Ne && $e) ? bn(e.origin, ie, "source", e.cred) : null, pt = he[he.length - 1], Ge = pt ? ((xs = pt.words[pt.words.length - 1]) == null ? void 0 : xs.end) ?? pt.start : 0, rt = u && fe ? Math.max(Ge, ($ == null ? void 0 : $.processedS) ?? 0) : null, Mt = $c(st, (Ne || be) && !!(n != null && n.allowDownload), he, R, be ? ((Ds = (Ss = n == null ? void 0 : n.job) == null ? void 0 : Ss.crop) == null ? void 0 : Ds.startS) ?? 0 : 0, rt), it = bo((As = n == null ? void 0 : n.job) == null ? void 0 : As.source), Ve = it ? Zi(it) : null, un = Ao(Ve), St = Pc(he, R, ((_s = (Es = n == null ? void 0 : n.job) == null ? void 0 : Es.crop) == null ? void 0 : _s.startS) ?? 0, rt), Je = !!Ve, lt = Je ? St.player : Mt, at = Vi(), Jt = k(null), re = Wc({ forcedVoice: t.voice ?? null, recordingId: ie, model: ce, rows: he, lenS: R, ended: !!ie && !fe, cred: e.cred, langs: at, srcLang: q, canTranslate: !!(n != null && n.allowTranslate), pickedLang: ne, setPickedLang: Z, side: s && !te ? Hc : void 0, hearOriginal: V, timed: !!Ve, stockVoices: u && !Re, stickyPicker: u, pickerBusy: Jt.current }), dn = k(null);
|
|
5711
5732
|
D(() => {
|
|
5712
|
-
!ie ||
|
|
5733
|
+
!ie || dn.current === J || (dn.current = J, G(J));
|
|
5713
5734
|
}, [J, ie]);
|
|
5714
|
-
const
|
|
5735
|
+
const z = Je ? St.player : re.on ? re.player : lt;
|
|
5715
5736
|
D(() => {
|
|
5716
|
-
if (
|
|
5737
|
+
if (Je) {
|
|
5717
5738
|
re.player.pause();
|
|
5718
5739
|
return;
|
|
5719
5740
|
}
|
|
5720
|
-
(re.on ?
|
|
5721
|
-
}, [re.on,
|
|
5722
|
-
const
|
|
5741
|
+
(re.on ? lt : re.player).pause();
|
|
5742
|
+
}, [re.on, Je]);
|
|
5743
|
+
const Vn = ze(() => he.filter((w) => w.sentenceId != null).map((w, me, Pe) => {
|
|
5723
5744
|
var We;
|
|
5724
5745
|
return { sid: w.sentenceId, start: w.start, end: ((We = Pe[me + 1]) == null ? void 0 : We.start) ?? Qt(w, w.start, w.start + 4) };
|
|
5725
|
-
}), [he]),
|
|
5726
|
-
|
|
5727
|
-
|
|
5728
|
-
}, [
|
|
5729
|
-
const
|
|
5746
|
+
}), [he]), Dt = nl({ on: Je && re.on, lines: Vn, clips: re.clips, t: z.t, playing: z.playing, muted: z.muted }), At = !!J && (Ie || re.relang || re.on && Dt.missing != null);
|
|
5747
|
+
Jt.current = At ? J : null, D(() => {
|
|
5748
|
+
Je && re.on && Dt.sid != null && re.setNear(Dt.sid);
|
|
5749
|
+
}, [Dt.sid, Je, re.on]), Rc([lt, re.player], re.sampling);
|
|
5750
|
+
const Et = k(null);
|
|
5730
5751
|
D(() => {
|
|
5731
|
-
fe && !
|
|
5752
|
+
fe && !z.playing && Et.current && (Et.current.scrollTop = Et.current.scrollHeight);
|
|
5732
5753
|
}, [fe, he.length]);
|
|
5733
|
-
const
|
|
5754
|
+
const Vt = Gc(Et, he, m, j, y), hn = /* @__PURE__ */ i(Zc, { open: m, q: j, onQ: N, onClose: () => y(!1), hits: Vt, desk: s, inline: s }), qe = _o({ name: n == null ? void 0 : n.name, sourceName: (Us = (Ys = n == null ? void 0 : n.job) == null ? void 0 : Ys.source) == null ? void 0 : Us.name, ytTitle: un, url: ((Ps = (Rs = n == null ? void 0 : n.job) == null ? void 0 : Rs.source) == null ? void 0 : Ps.kind) === "url" ? n.job.source.url : t.src ?? null, id: o }), ot = !!(n != null && n.allowDownload), Xt = !!(n != null && n.allowExport), mt = re.readLang, gt = mt ? (($s = at == null ? void 0 : at.languages.find((w) => w.code === mt)) == null ? void 0 : $s.name) ?? mt.toUpperCase() : null, Ht = async () => {
|
|
5734
5755
|
if (ie)
|
|
5735
5756
|
try {
|
|
5736
|
-
if (
|
|
5737
|
-
|
|
5757
|
+
if (mt && re.canSpeak) {
|
|
5758
|
+
O(`Preparing ${qe} in ${gt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await Ul(e, { recordingId: ie, lang: mt, voiceKey: re.readVoiceKey, cred: e.cred, request: re.requestTrack }), O(`Downloading ${qe} in ${gt}.`);
|
|
5738
5759
|
return;
|
|
5739
5760
|
}
|
|
5740
5761
|
if (Ne) {
|
|
5741
|
-
|
|
5762
|
+
O(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await _l(bn(e.origin, ie, "delivery", e.cred)), O(`Downloading ${qe}.`);
|
|
5742
5763
|
return;
|
|
5743
5764
|
}
|
|
5744
|
-
$r(bn(e.origin, ie, "source", e.cred)),
|
|
5765
|
+
$r(bn(e.origin, ie, "source", e.cred)), O(`Downloading ${qe} — the full audio, since the transcript is still being written.`);
|
|
5745
5766
|
} catch (w) {
|
|
5746
|
-
throw M(
|
|
5767
|
+
throw M(jt(w)), w;
|
|
5747
5768
|
}
|
|
5748
|
-
},
|
|
5769
|
+
}, dt = (w) => {
|
|
5749
5770
|
if (!ie) return;
|
|
5750
|
-
const me = br.find((We) => We.key === w).name, Pe =
|
|
5751
|
-
return Yl(e, ie, w, { lang:
|
|
5752
|
-
throw M(
|
|
5771
|
+
const me = br.find((We) => We.key === w).name, Pe = gt ? ` in ${gt}` : "";
|
|
5772
|
+
return Yl(e, ie, w, { lang: mt }).then(() => O(fe ? `${me} exported${Pe} for the first ${he.length} segments — the rest is still transcribing.` : `${me} exported${Pe}.`)).catch((We) => {
|
|
5773
|
+
throw M(jt(We)), We;
|
|
5753
5774
|
});
|
|
5754
|
-
},
|
|
5755
|
-
Ze.current =
|
|
5756
|
-
const
|
|
5775
|
+
}, en = fe ? "MORE TO COME…" : "END OF TRANSCRIPT", ct = fe ? "var(--brand)" : "var(--ink-28)", tn = Al($, he.length), zt = z.has && (!re.relang || !!Ve), Ze = k(z);
|
|
5776
|
+
Ze.current = z;
|
|
5777
|
+
const _t = `${J ?? ""}|${re.on ? "voice" : "source"}`, wt = k({ key: _t, idx: 0, t: 0, playing: !1, until: 0 });
|
|
5757
5778
|
D(() => {
|
|
5758
|
-
const w =
|
|
5759
|
-
if (w.key !==
|
|
5779
|
+
const w = wt.current;
|
|
5780
|
+
if (w.key !== _t && (w.key = _t, w.until = Date.now() + 15e3), !Je) {
|
|
5760
5781
|
if (!w.until) {
|
|
5761
|
-
w.idx =
|
|
5782
|
+
w.idx = z.idx, w.t = z.t, w.playing = z.playing;
|
|
5762
5783
|
return;
|
|
5763
5784
|
}
|
|
5764
5785
|
if (Date.now() > w.until) {
|
|
5765
5786
|
w.until = 0;
|
|
5766
5787
|
return;
|
|
5767
5788
|
}
|
|
5768
|
-
!
|
|
5789
|
+
!z.has || re.relang || (w.until = 0, Math.abs(z.t - w.t) > 0.5 && (z.seekFrac && z.dur > 0 ? z.seekFrac(w.t / z.dur) : z.seekRow(w.idx)), w.playing && !z.playing && B === "listen" && (et.current = !0, z.toggle()));
|
|
5769
5790
|
}
|
|
5770
5791
|
});
|
|
5771
|
-
const
|
|
5772
|
-
u && (
|
|
5773
|
-
const [
|
|
5792
|
+
const Yt = k(!1), et = k(!1);
|
|
5793
|
+
u && (Ii.video = !0);
|
|
5794
|
+
const [Mn, It] = L(!1), [Hn, Wn] = L(!1);
|
|
5774
5795
|
D(() => {
|
|
5775
|
-
if (!u ||
|
|
5776
|
-
|
|
5796
|
+
if (!u || Yt.current || !zt || !te || Ye || t.autoplay === !1) return;
|
|
5797
|
+
Yt.current = !0;
|
|
5777
5798
|
const w = (We) => {
|
|
5778
|
-
Ze.current.playing ||
|
|
5799
|
+
Ze.current.playing || et.current || (Ze.current.toggle(), We > 0 && setTimeout(() => w(We - 1), 1500));
|
|
5779
5800
|
}, me = () => {
|
|
5780
|
-
Ze.current.muted || Ze.current.toggleMute(),
|
|
5801
|
+
Ze.current.muted || Ze.current.toggleMute(), It(!0), w(3);
|
|
5781
5802
|
}, Pe = Ze.current;
|
|
5782
5803
|
if (!Pe.autoplay || t.startMuted) {
|
|
5783
5804
|
me();
|
|
5784
5805
|
return;
|
|
5785
5806
|
}
|
|
5786
5807
|
Pe.autoplay().then((We) => {
|
|
5787
|
-
We === !1 ?
|
|
5808
|
+
We === !1 ? It(!0) : We == null && !et.current && me();
|
|
5788
5809
|
});
|
|
5789
|
-
}, [u,
|
|
5790
|
-
const
|
|
5791
|
-
|
|
5792
|
-
|
|
5810
|
+
}, [u, zt, te, Ye]);
|
|
5811
|
+
const Ot = k(!1), Fn = () => {
|
|
5812
|
+
Mn && (It(!1), Ot.current = !0, setTimeout(() => {
|
|
5813
|
+
Ot.current = !1;
|
|
5793
5814
|
}, 500), Ze.current.muted && Ze.current.toggleMute());
|
|
5794
|
-
},
|
|
5795
|
-
if (
|
|
5796
|
-
|
|
5815
|
+
}, gn = () => {
|
|
5816
|
+
if (Ot.current) {
|
|
5817
|
+
Ot.current = !1;
|
|
5797
5818
|
return;
|
|
5798
5819
|
}
|
|
5799
|
-
|
|
5800
|
-
},
|
|
5801
|
-
if (
|
|
5802
|
-
|
|
5820
|
+
It(!1), Ze.current.toggleMute();
|
|
5821
|
+
}, Ut = () => {
|
|
5822
|
+
if (Ot.current) {
|
|
5823
|
+
Ot.current = !1;
|
|
5803
5824
|
return;
|
|
5804
5825
|
}
|
|
5805
|
-
|
|
5806
|
-
}, fn = (w) => /* @__PURE__ */ i(Ac, { player:
|
|
5826
|
+
et.current = !0, Ze.current.toggle();
|
|
5827
|
+
}, fn = (w) => /* @__PURE__ */ i(Ac, { player: z, size: w }), nn = !!ie && !fe, [P, xe] = L(!1);
|
|
5807
5828
|
D(() => {
|
|
5808
5829
|
if (!Ie) {
|
|
5809
|
-
|
|
5830
|
+
xe(!1);
|
|
5810
5831
|
return;
|
|
5811
5832
|
}
|
|
5812
|
-
const w = setTimeout(() =>
|
|
5833
|
+
const w = setTimeout(() => xe(!0), 180);
|
|
5813
5834
|
return () => clearTimeout(w);
|
|
5814
5835
|
}, [Ie]);
|
|
5815
|
-
const
|
|
5816
|
-
|
|
5836
|
+
const Qe = P ? Ae : J, bt = ql(ie, J, he, ke), Rt = dc(hc(v), ie, re.readLang), ua = ot || Xt, da = (((Bs = (Qs = n == null ? void 0 : n.job) == null ? void 0 : Qs.crop) == null ? void 0 : Bs.startS) ?? 0) + Zt(z, he), vt = B === "listen", Pt = vt && (!!Ve || u), ha = (w) => {
|
|
5837
|
+
lt.pause(), re.player.pause(), Y(w), w === "read" && te && (an(!1), K(!1));
|
|
5817
5838
|
};
|
|
5818
5839
|
D(() => {
|
|
5819
|
-
|
|
5820
|
-
}, [
|
|
5821
|
-
const Ue = re.barChip,
|
|
5822
|
-
w === "summary" &&
|
|
5823
|
-
w === "export" && /* @__PURE__ */ i(uc, { audio:
|
|
5824
|
-
] }),
|
|
5840
|
+
vt || (lt.playing && lt.pause(), re.player.playing && re.player.pause());
|
|
5841
|
+
}, [vt, lt.playing, re.player.playing]);
|
|
5842
|
+
const Ue = re.barChip, Wt = Wi(Ue.label), Hr = /* @__PURE__ */ i(wr, { value: B, onChange: ha, bordered: !1, options: lu(Wt, !!Ve) }), Ft = [...nn ? [{ key: "summary", label: "Summary" }] : [], ...ua ? [{ key: "export", label: "Export" }] : []], Wr = (w) => /* @__PURE__ */ g(Ce, { children: [
|
|
5843
|
+
w === "summary" && nn && /* @__PURE__ */ i(Mc, { s: Rt }),
|
|
5844
|
+
w === "export" && /* @__PURE__ */ i(uc, { audio: ot ? { name: qe, meta: mt && re.canSpeak || Ne ? `MP3${R ? ` · ${kt(R)}` : ""}` : "ORIGINAL AUDIO", onClick: Ht } : null, formats: Xt, onExport: dt })
|
|
5845
|
+
] }), Ma = (w) => /* @__PURE__ */ i(Wl, { index: z.idx, total: Math.max(1, he.length), frac: z.dur > 0 ? Math.min(1, z.t / z.dur) : 0, glideMs: z.wordSync ? 0 : 220, atLabel: kt(z.t), durLabel: kt(z.dur), stepLabel: w ? `${z.idx + 1} / ${he.length}` : "", onSeek: re.relang ? Bc : z.seekRow, onSeekFrac: re.relang ? void 0 : z.seekFrac, onScrubStart: z.hold, onScrubEnd: z.release }), Fr = {
|
|
5825
5846
|
live: !1,
|
|
5826
5847
|
atEdge: !1,
|
|
5827
5848
|
edgeFrac: null,
|
|
5828
|
-
readyFrac: rt != null &&
|
|
5829
|
-
pct:
|
|
5830
|
-
atLabel:
|
|
5831
|
-
labelAt: (w) =>
|
|
5832
|
-
endLabel:
|
|
5849
|
+
readyFrac: rt != null && z.dur > 0 ? Math.min(1, rt / z.dur) : null,
|
|
5850
|
+
pct: z.dur > 0 ? Math.min(100, Math.round(z.t / z.dur * 1e3) / 10) : 0,
|
|
5851
|
+
atLabel: kt(z.t),
|
|
5852
|
+
labelAt: (w) => kt(w * z.dur),
|
|
5853
|
+
endLabel: kt(z.dur),
|
|
5833
5854
|
onSeek: (w) => {
|
|
5834
5855
|
var me;
|
|
5835
|
-
re.relang || (me =
|
|
5856
|
+
re.relang || (me = z.seekFrac) == null || me.call(z, w);
|
|
5836
5857
|
}
|
|
5837
|
-
}, [
|
|
5858
|
+
}, [ga, fa] = Xi(re.on && !!z.preparing && z.playing, 1500), Zn = re.on && ((Vs = z.error) == null ? void 0 : Vs.code) === "voice_not_started", Gn = re.canSpeak && !re.error && !Zn, pn = J ? ((Hs = at == null ? void 0 : at.languages.find((w) => w.code === J)) == null ? void 0 : Hs.name) ?? Ue.label : "", tt = te ? Oc({ lang: J, langName: pn, translating: Ie && !!J, translateFailed: Fe, voiceFailed: Zn, relang: re.relang, starting: re.on ? z.starting : null, slowLine: ga, lineSince: fa }) : null, qn = !!Ve && !!tt && (tt.kind === "translating" || tt.kind === "voice" && re.relang), Zr = !qn || !tt ? null : tt.kind === "translating" ? `Translating into ${pn || "the new language"}…` : `Preparing the ${pn || "translated"} voice…`, Ct = !qn && ((tt == null ? void 0 : tt.kind) === "voice" || (tt == null ? void 0 : tt.kind) === "starting"), Gr = _r({ ...re.langList, keepOpen: !0, open: T === "lang", onClose: () => b("main") }), qr = $o(Q, re.on), pa = u && qr.bed && ot && ie && (!fe || st) ? Js(e.origin, ie, e.cred) : null, Kr = qo(pa, { t: Zt(z, he), playing: z.playing && !Ct && !(z.timed && z.preparing), muted: z.muted }), ma = u && qr.speech && ot && ie && (!fe || st) ? Js(e.origin, ie, e.cred, "speech") : null, Kn = Ui(ma, { t: Zt(z, he), playing: !re.on && z.playing, muted: z.muted }), Jn = !re.on && Kn.on;
|
|
5838
5859
|
D(() => {
|
|
5839
5860
|
var w;
|
|
5840
|
-
|
|
5841
|
-
}, [
|
|
5842
|
-
const Xn =
|
|
5861
|
+
St.setVideoSound(!(Je && (re.on || Jn))), (w = Mt.silence) == null || w.call(Mt, !Je && Jn);
|
|
5862
|
+
}, [Je, re.on, Jn, st]);
|
|
5863
|
+
const Xn = ot ? re.on ? Kr : Kn.state : "unavailable", er = we && Gn && !!J, Na = er ? [`Translated${re.hasClone ? Re ? ", cloned voices" : ", synthetic voices" : ""}`, !Q && ot && Kr !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : Q && Xn !== "unavailable" ? "Original speech, background removed" : "Original sound", ya = () => {
|
|
5843
5864
|
if ((tt == null ? void 0 : tt.kind) === "translateFailed") {
|
|
5844
5865
|
G(J);
|
|
5845
5866
|
return;
|
|
5846
5867
|
}
|
|
5847
|
-
|
|
5848
|
-
},
|
|
5849
|
-
const w =
|
|
5850
|
-
|
|
5851
|
-
}, Jr = { prevOn:
|
|
5852
|
-
|
|
5853
|
-
}, busy: re.relang && !
|
|
5854
|
-
il(
|
|
5855
|
-
|
|
5856
|
-
}, next:
|
|
5857
|
-
const tr = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, nr = (w, me) => !Ue.can || !x.language ? null : u ? /* @__PURE__ */ g("button", { type: "button", className: "gfull__btn", title:
|
|
5858
|
-
|
|
5868
|
+
et.current = !0, z.toggle();
|
|
5869
|
+
}, Ta = () => {
|
|
5870
|
+
const w = z.idx;
|
|
5871
|
+
z.pause(), Z(null), et.current = !0, lt.playRow(w);
|
|
5872
|
+
}, Jr = { prevOn: z.idx > 0, nextOn: z.idx < he.length - 1, onPrev: z.prev, onNext: z.next, playing: z.playing, playable: zt, playTitle: re.playTitle ?? (z.playing ? "Pause" : "Play"), onPlay: () => {
|
|
5873
|
+
et.current = !0, z.toggle();
|
|
5874
|
+
}, busy: re.relang && !Ve || Ct };
|
|
5875
|
+
il(zt && vt ? { playing: z.playing, toggle: () => {
|
|
5876
|
+
et.current = !0, z.toggle();
|
|
5877
|
+
}, next: z.next, prev: z.prev } : null, Oe);
|
|
5878
|
+
const tr = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, nr = (w, me) => !Ue.can || !x.language ? null : u ? /* @__PURE__ */ g("button", { type: "button", className: "gfull__btn", title: At ? `${Ue.label ?? Ue.code}: still being prepared` : Ue.label ?? Ue.code, "aria-label": `Language: ${Ue.label ?? Ue.code}`, "aria-busy": At || void 0, onClick: () => {
|
|
5879
|
+
I(!1), Ue.onClick();
|
|
5859
5880
|
}, style: { position: "relative" }, children: [
|
|
5860
5881
|
/* @__PURE__ */ i("span", { style: { fontSize: me === "sm" ? 17 : 21, lineHeight: 1 }, children: Ue.flag }),
|
|
5861
|
-
|
|
5882
|
+
At && /* @__PURE__ */ i("span", { style: { position: "absolute", right: 2, bottom: 2, display: "flex", borderRadius: 999, background: "rgba(5,6,21,.7)", padding: 1 }, children: /* @__PURE__ */ i(ht, { size: 11, color: "#eef0f8", track: "rgba(255,255,255,.25)" }) })
|
|
5862
5883
|
] }) : /* @__PURE__ */ i(Yn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, size: me, onClick: Ue.onClick, style: w }), Xr = { on: !1, title: "Voices", onClick: () => {
|
|
5863
|
-
}, busy: re.voiceWaiting ||
|
|
5884
|
+
}, busy: re.voiceWaiting || Ct }, [wa, va] = L(!1);
|
|
5864
5885
|
D(() => {
|
|
5865
|
-
|
|
5866
|
-
}, [
|
|
5867
|
-
const
|
|
5868
|
-
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick:
|
|
5869
|
-
/* @__PURE__ */ i("div", { className: `txyt__paused${
|
|
5870
|
-
] }) : null, ts =
|
|
5871
|
-
/* @__PURE__ */ i(xc, { ytId:
|
|
5886
|
+
z.t > 0.3 && va(!0);
|
|
5887
|
+
}, [z.t]);
|
|
5888
|
+
const La = !Ve && u && ie && (n != null && n.allowDownload) && !fe ? /* @__PURE__ */ i(ei, { src: bn(e.origin, ie, "video", e.cred), t: Zt(z, he), playing: z.playing && !Ct, seekN: z.seekN, onToggle: z.has ? Ut : void 0 }, ie) : null, mn = !Ve && u && it && Io(it) ? it : null, Nn = mn ? _i(mn) : null, es = ze(() => Nn ? Do(Nn) : void 0, [Nn]), ka = es ? /* @__PURE__ */ i(ei, { setup: es, seekOver: 1, t: Zt(z, he) + (((Fs = (Ws = n == null ? void 0 : n.job) == null ? void 0 : Ws.crop) == null ? void 0 : Fs.startS) ?? 0), playing: z.playing && !Ct, seekN: z.seekN, onToggle: z.has ? Ut : void 0 }, Nn) : mn ? /* @__PURE__ */ i(Co, { url: mn, t: Zt(z, he) + (((Gs = (Zs = n == null ? void 0 : n.job) == null ? void 0 : Zs.crop) == null ? void 0 : Gs.startS) ?? 0), playing: z.playing && !Ct, seekN: z.seekN, title: qe }) : null, ja = z.has ? /* @__PURE__ */ g("div", { className: "txyt vsp-follow", children: [
|
|
5889
|
+
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: Ut, style: { cursor: "pointer" } }),
|
|
5890
|
+
/* @__PURE__ */ i("div", { className: `txyt__paused${z.playing ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(cn, { size: 44 }) }) })
|
|
5891
|
+
] }) : null, ts = Ve ? /* @__PURE__ */ g(Ce, { children: [
|
|
5892
|
+
/* @__PURE__ */ i(xc, { ytId: Ve, title: qe, t: da, playing: z.playing && !Ct, waiting: re.on && !!z.timed && !!z.preparing, seekN: z.seekN, onTime: (w) => {
|
|
5872
5893
|
var me, Pe, We;
|
|
5873
|
-
return (We =
|
|
5874
|
-
}, onToggle:
|
|
5875
|
-
/* @__PURE__ */ g("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity:
|
|
5876
|
-
/* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${
|
|
5877
|
-
/* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(
|
|
5894
|
+
return (We = z.videoAt) == null ? void 0 : We.call(z, w - (((Pe = (me = n == null ? void 0 : n.job) == null ? void 0 : me.crop) == null ? void 0 : Pe.startS) ?? 0));
|
|
5895
|
+
}, onToggle: z.has ? Ut : void 0, onAd: Wn, lead: Je ? St.lead : void 0 }),
|
|
5896
|
+
/* @__PURE__ */ g("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: wa ? 0 : 1 }, children: [
|
|
5897
|
+
/* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Ve}/hqdefault.jpg)` } }),
|
|
5898
|
+
/* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(cn, { size: 44 }) })
|
|
5878
5899
|
] })
|
|
5879
|
-
] }) : u ? /* @__PURE__ */ g(
|
|
5900
|
+
] }) : u ? /* @__PURE__ */ g(Ce, { children: [
|
|
5880
5901
|
/* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
|
|
5881
|
-
|
|
5882
|
-
|
|
5883
|
-
|
|
5884
|
-
] }) : null, ns = Pt &&
|
|
5885
|
-
|
|
5886
|
-
}, copied: null }) }) : null,
|
|
5902
|
+
ja,
|
|
5903
|
+
ka,
|
|
5904
|
+
La
|
|
5905
|
+
] }) : null, ns = Pt && Ve && !te ? /* @__PURE__ */ i(gc, { ytId: Ve, title: qe, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: ts, children: /* @__PURE__ */ i(su, { pos: Fr, transport: Jr, chip: nr({ ...tr, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Xr, onFull: () => {
|
|
5906
|
+
an(!0), K(!0);
|
|
5907
|
+
}, copied: null }) }) : null, Xe = z.wordSync ? $l(he, z.idx, z.t) ? he[z.idx] : void 0 : he[z.idx];
|
|
5887
5908
|
for (const w of he) for (const [me, Pe] of Object.entries(w.translations)) Pe && A.current.set(`${w.sentenceId ?? w.start}|${me}`, Pe);
|
|
5888
|
-
const rs = (w, me) => w.translations[me] || A.current.get(`${w.sentenceId ?? w.start}|${me}`) || null, rr = (w, me) => !w || !me || w.language === me || !!rs(w, me),
|
|
5889
|
-
|
|
5890
|
-
const ss =
|
|
5909
|
+
const rs = (w, me) => w.translations[me] || A.current.get(`${w.sentenceId ?? w.start}|${me}`) || null, rr = (w, me) => !w || !me || w.language === me || !!rs(w, me), Lt = rr(Xe, J) ? J : rr(Xe, F.current) ? F.current : J;
|
|
5910
|
+
Xe && rr(Xe, Lt) && (F.current = Lt);
|
|
5911
|
+
const ss = Xe && Lt && Xe.language !== Lt ? rs(Xe, Lt) : null, za = Xe && ss && Lt && !Xe.translations[Lt] ? Object.assign([...he], { [z.idx]: { ...Xe, translations: { ...Xe.translations, [Lt]: ss } } }) : he, yn = Xe ? ea(za, z.idx, Lt) : [], Tn = Te ? Te === "on" : !u || re.on || !Qe || Qe === q, is = Tn ? gi(z, z.idx, yn) : null, as = yn.map((w, me) => ({ t: w.text, sp: me < yn.length - 1 ? " " : "", dim: is != null && me > is })), wn = pe ? pe === "on" : u ? !1 : yl(ce, he, v == null ? void 0 : v.settings), os = { lang: J, subtitles: Se, speakerLabels: wn, wordHighlight: Tn, translateAudio: we, voices: Re ? "cloned" : "synthetic", removeBackground: Q }, Ia = JSON.stringify(os), vn = k(t.onSettingsChange);
|
|
5891
5912
|
vn.current = t.onSettingsChange, D(() => {
|
|
5892
5913
|
var w;
|
|
5893
5914
|
(w = vn.current) == null || w.call(vn, os);
|
|
5894
|
-
}, [
|
|
5895
|
-
const Ln =
|
|
5915
|
+
}, [Ia]);
|
|
5916
|
+
const Ln = Xe && Xe.speaker >= 0 && wn ? Rr(ce, Xe.speaker) : null, [Oa, ls] = L(!1), [sr, cs] = L(null), [ba, us] = L(null), ir = k(void 0);
|
|
5896
5917
|
D(() => () => window.clearTimeout(ir.current), []);
|
|
5897
5918
|
const ar = k(void 0);
|
|
5898
5919
|
D(() => () => window.clearTimeout(ar.current), []);
|
|
@@ -5901,37 +5922,37 @@ function Au(t) {
|
|
|
5901
5922
|
const me = new URL(window.location.href);
|
|
5902
5923
|
return w != null && w > 0 ? me.searchParams.set("t", String(w)) : me.searchParams.delete("t"), me.href;
|
|
5903
5924
|
}, kn = k(l.startAt), or = (w) => {
|
|
5904
|
-
if (
|
|
5905
|
-
|
|
5925
|
+
if (z.seekFrac && z.dur > 0) {
|
|
5926
|
+
z.seekFrac(Math.min(1, w / z.dur));
|
|
5906
5927
|
return;
|
|
5907
5928
|
}
|
|
5908
5929
|
let me = 0;
|
|
5909
5930
|
for (let Pe = 0; Pe < he.length; Pe++) he[Pe].start <= w && (me = Pe);
|
|
5910
|
-
|
|
5931
|
+
z.seekRow(me);
|
|
5911
5932
|
}, hs = k(!1);
|
|
5912
5933
|
D(() => {
|
|
5913
5934
|
const w = kn.current;
|
|
5914
|
-
w == null || hs.current || !
|
|
5915
|
-
}, [
|
|
5935
|
+
w == null || hs.current || !z.has || he.length === 0 || (hs.current = !0, or(w));
|
|
5936
|
+
}, [z.has, he.length]), D(() => {
|
|
5916
5937
|
const w = kn.current;
|
|
5917
|
-
w == null || !
|
|
5918
|
-
}, [
|
|
5919
|
-
const
|
|
5920
|
-
|
|
5938
|
+
w == null || !z.playing || (kn.current = null, Math.abs(z.t - w) > 2 && or(w));
|
|
5939
|
+
}, [z.playing]);
|
|
5940
|
+
const Ca = (w) => {
|
|
5941
|
+
et.current = !0, kn.current = null, or(Math.max(0, w));
|
|
5921
5942
|
};
|
|
5922
5943
|
t.handle.current = {
|
|
5923
|
-
seek: (w) =>
|
|
5944
|
+
seek: (w) => Ca(w),
|
|
5924
5945
|
play: () => {
|
|
5925
|
-
|
|
5946
|
+
et.current = !0, vt && !Ze.current.playing && Ze.current.toggle();
|
|
5926
5947
|
},
|
|
5927
5948
|
pause: () => {
|
|
5928
|
-
|
|
5949
|
+
et.current = !0, Ze.current.pause();
|
|
5929
5950
|
},
|
|
5930
5951
|
toggle: () => {
|
|
5931
|
-
|
|
5952
|
+
et.current = !0, (vt || Ze.current.playing) && Ze.current.toggle();
|
|
5932
5953
|
},
|
|
5933
5954
|
toggleMute: () => {
|
|
5934
|
-
|
|
5955
|
+
It(!1), Ze.current.toggleMute();
|
|
5935
5956
|
}
|
|
5936
5957
|
}, D(() => () => {
|
|
5937
5958
|
t.handle.current = null;
|
|
@@ -5944,37 +5965,37 @@ function Au(t) {
|
|
|
5944
5965
|
const me = () => {
|
|
5945
5966
|
const We = Ms.current;
|
|
5946
5967
|
if (!We) return;
|
|
5947
|
-
const Nt = Ze.current,
|
|
5948
|
-
On !== w && (w = On, We(
|
|
5968
|
+
const Nt = Ze.current, ft = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang: gs.current, muted: Nt.muted }, On = `${ft.t.toFixed(2)}|${ft.dur}|${ft.playing}|${ft.idx}|${ft.seekN}|${ft.lang}|${ft.muted}`;
|
|
5969
|
+
On !== w && (w = On, We(ft));
|
|
5949
5970
|
};
|
|
5950
5971
|
me();
|
|
5951
5972
|
const Pe = window.setInterval(me, Su);
|
|
5952
5973
|
return () => window.clearInterval(Pe);
|
|
5953
5974
|
}, []);
|
|
5954
|
-
const
|
|
5975
|
+
const xa = () => t.onShare ? t.onShare() : Qr(ds(null), qe, () => {
|
|
5955
5976
|
window.clearTimeout(ar.current), ls(!0), ar.current = window.setTimeout(() => ls(!1), 2200);
|
|
5956
5977
|
}), fs = (w, me, Pe) => {
|
|
5957
|
-
const We = br.find((On) => On.key === w), Nt = sr === w,
|
|
5978
|
+
const We = br.find((On) => On.key === w), Nt = sr === w, ft = ba === w;
|
|
5958
5979
|
return /* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", "aria-busy": Nt || void 0, style: sr && !Nt ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
|
|
5959
|
-
sr || (cs(w), Promise.resolve().then(() =>
|
|
5980
|
+
sr || (cs(w), Promise.resolve().then(() => dt(w)).then(() => {
|
|
5960
5981
|
us(w), window.clearTimeout(ir.current), ir.current = window.setTimeout(() => us(null), 1600);
|
|
5961
5982
|
}).catch(() => {
|
|
5962
5983
|
}).finally(() => cs(null)));
|
|
5963
5984
|
}, children: [
|
|
5964
|
-
Nt ? /* @__PURE__ */ i(
|
|
5985
|
+
Nt ? /* @__PURE__ */ i(ht, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: We.icon, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
5965
5986
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5966
5987
|
/* @__PURE__ */ i("div", { className: "srow__t", children: me }),
|
|
5967
5988
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Pe })
|
|
5968
5989
|
] }),
|
|
5969
|
-
/* @__PURE__ */ i(oe, { d:
|
|
5990
|
+
/* @__PURE__ */ i(oe, { d: ft ? X.check : X.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: ft ? "var(--brand)" : "var(--ink-62)" } })
|
|
5970
5991
|
] });
|
|
5971
|
-
},
|
|
5992
|
+
}, Sa = /* @__PURE__ */ g("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
5972
5993
|
" ",
|
|
5973
5994
|
/* @__PURE__ */ g("button", { type: "button", onClick: () => b("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: [
|
|
5974
5995
|
/* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 18, sw: 1.8 }),
|
|
5975
5996
|
"Back"
|
|
5976
5997
|
] })
|
|
5977
|
-
] }), jn = /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }),
|
|
5998
|
+
] }), jn = /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), Da = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[T], zn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, lr = u ? /* @__PURE__ */ i(Kt, { open: ee, onClose: () => I(!1), title: Da, titleNode: T === "main" ? void 0 : Sa, doneLabel: Wt.done, kind: T === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(vr, { children: T === "lang" ? /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
5978
5999
|
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: Gr.search }),
|
|
5979
6000
|
Gr.list
|
|
5980
6001
|
] }) : T === "subs" ? /* @__PURE__ */ g("div", { style: zn, children: [
|
|
@@ -6019,7 +6040,7 @@ function Au(t) {
|
|
|
6019
6040
|
/* @__PURE__ */ i("div", { className: "srow__t", children: Un }),
|
|
6020
6041
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Po(Q, Xn, "video", re.on ? 0 : Kn.untilS) })
|
|
6021
6042
|
] }),
|
|
6022
|
-
/* @__PURE__ */ i(Tt, { checked: Q &&
|
|
6043
|
+
/* @__PURE__ */ i(Tt, { checked: Q && ot, onChange: H, label: Un, disabled: !ot || Xn === "unavailable" && !Q })
|
|
6023
6044
|
] })
|
|
6024
6045
|
] }) : T === "export" ? /* @__PURE__ */ g("div", { style: zn, children: [
|
|
6025
6046
|
fs("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
|
|
@@ -6043,28 +6064,28 @@ function Au(t) {
|
|
|
6043
6064
|
x.audio && /* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", onClick: () => b("audio"), children: [
|
|
6044
6065
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6045
6066
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
|
|
6046
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
6067
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: Na })
|
|
6047
6068
|
] }),
|
|
6048
6069
|
jn
|
|
6049
6070
|
] }, "audio"),
|
|
6050
|
-
x.export &&
|
|
6071
|
+
x.export && Xt && !!ie && /* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", onClick: () => b("export"), children: [
|
|
6051
6072
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6052
6073
|
/* @__PURE__ */ g("div", { className: "srow__t", children: [
|
|
6053
6074
|
"Export",
|
|
6054
|
-
|
|
6075
|
+
gt ? ` in ${gt}` : ""
|
|
6055
6076
|
] }),
|
|
6056
6077
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Subtitles (SRT / VTT) or a PDF of the transcript" })
|
|
6057
6078
|
] }),
|
|
6058
6079
|
jn
|
|
6059
6080
|
] }, "export")
|
|
6060
|
-
].filter(Boolean).flatMap((w, me) => me ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${me}`), w] : [w]) }) }) }) : /* @__PURE__ */ i(
|
|
6061
|
-
Ue.can && /* @__PURE__ */ g(
|
|
6081
|
+
].filter(Boolean).flatMap((w, me) => me ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${me}`), w] : [w]) }) }) }) : /* @__PURE__ */ i(Kt, { open: ee, onClose: () => I(!1), title: Wt.settings, doneLabel: Wt.done, drawer: s, children: /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
6082
|
+
Ue.can && /* @__PURE__ */ g(Ce, { children: [
|
|
6062
6083
|
/* @__PURE__ */ g("div", { className: "srow srow--tap", onClick: () => {
|
|
6063
|
-
|
|
6084
|
+
I(!1), Ue.onClick();
|
|
6064
6085
|
}, children: [
|
|
6065
6086
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6066
|
-
/* @__PURE__ */ i("div", { className: "srow__t", children:
|
|
6067
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
6087
|
+
/* @__PURE__ */ i("div", { className: "srow__t", children: Wt.langLabel }),
|
|
6088
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: Wt.langCount })
|
|
6068
6089
|
] }),
|
|
6069
6090
|
/* @__PURE__ */ i("span", { style: { fontSize: 18, lineHeight: 1 }, children: Ue.flag }),
|
|
6070
6091
|
re.original ? null : /* @__PURE__ */ i("span", { style: { fontSize: 14, fontWeight: 600, color: "var(--ink-96)" }, children: Ue.label }),
|
|
@@ -6073,21 +6094,21 @@ function Au(t) {
|
|
|
6073
6094
|
/* @__PURE__ */ i("div", { className: "sdiv" })
|
|
6074
6095
|
] }),
|
|
6075
6096
|
t.settingsExtra
|
|
6076
|
-
] }) }),
|
|
6077
|
-
|
|
6097
|
+
] }) }), xt = te && Pt && (!!Ve || u) && /* @__PURE__ */ i(
|
|
6098
|
+
sa,
|
|
6078
6099
|
{
|
|
6079
6100
|
page: (t.layout ?? "embed") === "page",
|
|
6080
6101
|
picture: ts,
|
|
6081
6102
|
title: qe,
|
|
6082
6103
|
desk: s,
|
|
6083
6104
|
pos: Fr,
|
|
6084
|
-
mute: { muted:
|
|
6105
|
+
mute: { muted: z.muted, onToggle: gn },
|
|
6085
6106
|
cc: x.subtitles ? { on: Se, onToggle: () => ve((w) => !w) } : void 0,
|
|
6086
6107
|
noFull: !x.fullscreen,
|
|
6087
|
-
ad:
|
|
6088
|
-
wait: tt && !qn ? /* @__PURE__ */ i(Cc, { state: tt, line:
|
|
6108
|
+
ad: Hn,
|
|
6109
|
+
wait: tt && !qn ? /* @__PURE__ */ i(Cc, { state: tt, line: Ct ? as.map((w) => w.t + w.sp).join("") : null, onRetry: ya, onOriginal: Ta }) : z.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
|
|
6089
6110
|
pct: fe ? Math.round(U) : null,
|
|
6090
|
-
sub: Se &&
|
|
6111
|
+
sub: Se && Xe ? { who: Ln ? Ur(ce, Xe.speaker) : null, color: Ln ? Ln.fg ?? `var(--lane-${Ln.lane})` : "#fff", words: as, cursor: gi(z, z.idx, yn) } : null,
|
|
6091
6112
|
chip: nr(s ? tr : { ...tr, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
|
|
6092
6113
|
transport: Jr,
|
|
6093
6114
|
picker: re.sheets,
|
|
@@ -6095,66 +6116,66 @@ function Au(t) {
|
|
|
6095
6116
|
voices: null,
|
|
6096
6117
|
voicesBtn: u ? null : Xr,
|
|
6097
6118
|
sheetOpen: re.sheetsOpen || ee,
|
|
6098
|
-
onShare: u && x.share ?
|
|
6119
|
+
onShare: u && x.share ? xa : void 0,
|
|
6099
6120
|
onSettings: u && x.settings ? () => {
|
|
6100
|
-
re.closePicker(),
|
|
6121
|
+
re.closePicker(), I((w) => !w);
|
|
6101
6122
|
} : void 0,
|
|
6102
6123
|
compact: !!t.compact,
|
|
6103
|
-
paused: { title: qe, summary:
|
|
6104
|
-
copied:
|
|
6124
|
+
paused: { title: qe, summary: Rt.state === "ready" ? Rt.summary ?? null : null, share: x.share && (t.shareUrl || !t.onShare) ? { url: ds, at: z.t } : null },
|
|
6125
|
+
copied: Oa ? /* @__PURE__ */ g("div", { className: "gfull__toast", "aria-live": "polite", children: [
|
|
6105
6126
|
/* @__PURE__ */ i(oe, { d: X.check, size: 13, sw: 2 }),
|
|
6106
6127
|
"Link copied"
|
|
6107
|
-
] }) :
|
|
6128
|
+
] }) : Mn ? /* @__PURE__ */ g("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
|
|
6108
6129
|
/* @__PURE__ */ i(oe, { d: X.volumeOff, size: 14, sw: 1.8 }),
|
|
6109
6130
|
"Tap for sound"
|
|
6110
6131
|
] }) : Zr ? /* @__PURE__ */ g("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
6111
|
-
/* @__PURE__ */ i(
|
|
6132
|
+
/* @__PURE__ */ i(ht, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
6112
6133
|
Zr
|
|
6113
|
-
] }) : re.on && (
|
|
6114
|
-
/* @__PURE__ */ i(
|
|
6134
|
+
] }) : re.on && (Je ? Dt.missing != null : z.silent) ? /* @__PURE__ */ g("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
6135
|
+
/* @__PURE__ */ i(ht, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
6115
6136
|
`${pn || "Translated"} voice is still being prepared · playing with subtitles`
|
|
6116
6137
|
] }) : null,
|
|
6117
6138
|
onTouch: () => {
|
|
6118
|
-
|
|
6139
|
+
an(!0), Fn();
|
|
6119
6140
|
},
|
|
6120
6141
|
onClose: u ? void 0 : () => {
|
|
6121
|
-
|
|
6142
|
+
an(!1), K(!1);
|
|
6122
6143
|
}
|
|
6123
6144
|
}
|
|
6124
6145
|
);
|
|
6125
6146
|
D(() => {
|
|
6126
|
-
!u && te && !Pt && (
|
|
6147
|
+
!u && te && !Pt && (an(!1), K(!1));
|
|
6127
6148
|
}, [u, te, Pt]);
|
|
6128
6149
|
const ps = fe && /* @__PURE__ */ g("div", { className: `pubprog${s ? " pubprog--desk" : ""}${m ? " pubprog--find" : ""}`, children: [
|
|
6129
6150
|
/* @__PURE__ */ g("div", { className: "pubprog__row", children: [
|
|
6130
6151
|
/* @__PURE__ */ i("span", { className: "l", children: `TRANSCRIBING ${U}%` }),
|
|
6131
6152
|
!s && /* @__PURE__ */ i("div", { style: { flex: 1 } }),
|
|
6132
6153
|
s && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { flex: 1 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) }),
|
|
6133
|
-
/* @__PURE__ */ i("span", { className: "s", children:
|
|
6154
|
+
/* @__PURE__ */ i("span", { className: "s", children: tn })
|
|
6134
6155
|
] }),
|
|
6135
6156
|
!s && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) })
|
|
6136
|
-
] }), cr = r && /* @__PURE__ */ i("div", { className: "hint", style: { padding: "30px 20px", textAlign: "center", fontSize: 13 }, children: "This link is no longer shared. Ask the person who sent it for a new one." }), ms = /* @__PURE__ */ i(Fc, { model: ce, rows: he, player:
|
|
6137
|
-
M(null), ye(),
|
|
6138
|
-
} }), Ns = [R ?
|
|
6157
|
+
] }), cr = r && /* @__PURE__ */ i("div", { className: "hint", style: { padding: "30px 20px", textAlign: "center", fontSize: 13 }, children: "This link is no longer shared. Ask the person who sent it for a new one." }), ms = /* @__PURE__ */ i(Fc, { model: ce, rows: he, player: vt ? z : { ...z, playRow: z.seekRow }, tail: en, tailFg: ct, running: fe, desk: s, feedRef: Et, listener: !0, showLabels: wn, find: j, findOpen: !s && m, lang: Qe, warm: P, onVisible: bt, wordHl: Tn }), ur = /* @__PURE__ */ i(Hl, { error: d ?? W ?? (Zn && te ? null : z.error) ?? re.error, onClose: () => {
|
|
6158
|
+
M(null), ye(), z.clearError(), re.clearError();
|
|
6159
|
+
} }), Ns = [R ? kt(R) : null, q ? q.toUpperCase() : null, se || "Read-only copy"].filter(Boolean).join(" · "), ys = (w) => /* @__PURE__ */ i("div", { className: "ctrans", children: re.noVoice ? re.noVoiceNote : /* @__PURE__ */ g(Ce, { children: [
|
|
6139
6160
|
/* @__PURE__ */ g("div", { className: "ctrans__row", children: [
|
|
6140
6161
|
/* @__PURE__ */ i("span", { className: "ctrans__sp", "aria-hidden": "true" }),
|
|
6141
6162
|
/* @__PURE__ */ g("div", { className: "ctrans__mid", children: [
|
|
6142
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity:
|
|
6143
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" :
|
|
6144
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity:
|
|
6163
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: z.idx <= 0 ? 0.3 : 1 }, onClick: z.prev, children: /* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 16, sw: 1.8 }) }),
|
|
6164
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : z.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (z.playing ? "Pause" : "Play"), disabled: !zt, onClick: z.toggle, children: re.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: z.playing ? void 0 : { marginLeft: 2 }, children: z.playing ? Sc : Dc }) }),
|
|
6165
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: z.idx >= he.length - 1 ? 0.3 : 1 }, onClick: z.next, children: /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 16, sw: 1.8 }) })
|
|
6145
6166
|
] }),
|
|
6146
6167
|
/* @__PURE__ */ i("span", { className: "ctrans__mute", children: fn(36) })
|
|
6147
6168
|
] }),
|
|
6148
|
-
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children:
|
|
6149
|
-
] }) }),
|
|
6150
|
-
|
|
6151
|
-
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ g(
|
|
6169
|
+
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children: Ma(w) })
|
|
6170
|
+
] }) }), Aa = mc("ga", { tabs: Ft, cur: h, pref: (qs = Ft[0]) == null ? void 0 : qs.key, onPick: f }), Ts = Math.max(0, Math.min(100, Math.round(U))), Ea = Ye && /* @__PURE__ */ g("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
|
|
6171
|
+
Ve && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Ve}/hqdefault.jpg)` } }),
|
|
6172
|
+
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ g(Ce, { children: [
|
|
6152
6173
|
qe && /* @__PURE__ */ i("div", { className: "gfull__holdt", children: qe }),
|
|
6153
6174
|
/* @__PURE__ */ i("div", { className: "gfull__holdpct", children: ae === "transcribing" ? `${Ts}%` : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin" }) }),
|
|
6154
6175
|
/* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${ae === "transcribing" ? Ts : 0}%` } }) }),
|
|
6155
6176
|
/* @__PURE__ */ g("div", { className: "gfull__holds", children: [
|
|
6156
6177
|
ae === "transcribing" ? "Transcribing" : ae === "cropping" ? "Preparing the video" : "Waiting to start",
|
|
6157
|
-
ae === "transcribing" && ($ != null && $.segmentsDone) ? ` · ${
|
|
6178
|
+
ae === "transcribing" && ($ != null && $.segmentsDone) ? ` · ${tn.toLowerCase()}` : ""
|
|
6158
6179
|
] }),
|
|
6159
6180
|
/* @__PURE__ */ i("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
|
|
6160
6181
|
] }) : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
|
|
@@ -6163,21 +6184,21 @@ function Au(t) {
|
|
|
6163
6184
|
var w;
|
|
6164
6185
|
(w = In.current) == null || w.call(In, ws);
|
|
6165
6186
|
}, [ws]);
|
|
6166
|
-
const [
|
|
6187
|
+
const [_a, dr] = L(!1), hr = !!xt && !Ye && (Je ? !!z.ended : !z.playing && z.dur > 0 && z.t >= z.dur - 0.5);
|
|
6167
6188
|
D(() => {
|
|
6168
6189
|
hr || dr(!1);
|
|
6169
6190
|
}, [hr]);
|
|
6170
|
-
const
|
|
6171
|
-
dr(!0),
|
|
6191
|
+
const Ya = t.endCard !== !1 && hr && !_a && /* @__PURE__ */ i(pu, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => dr(!0), onReplay: () => {
|
|
6192
|
+
dr(!0), et.current = !0, z.seekFrac ? z.seekFrac(0) : z.seekRow(0), z.playing || z.toggle();
|
|
6172
6193
|
} });
|
|
6173
|
-
if (u) return /* @__PURE__ */ g(
|
|
6174
|
-
r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: cr }) :
|
|
6175
|
-
|
|
6194
|
+
if (u) return /* @__PURE__ */ g(Ce, { children: [
|
|
6195
|
+
r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: cr }) : Ea || xt || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
|
|
6196
|
+
Ya,
|
|
6176
6197
|
ur
|
|
6177
6198
|
] });
|
|
6178
6199
|
if (s) {
|
|
6179
|
-
const w =
|
|
6180
|
-
return /* @__PURE__ */ g(
|
|
6200
|
+
const w = vt && !Pt && !r && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: ys(!0) }), me = !r && (Ft.length > 0 || Pt || !!re.sidePanel || !!w);
|
|
6201
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
6181
6202
|
/* @__PURE__ */ i("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ g("div", { className: "gcolhead", children: [
|
|
6182
6203
|
/* @__PURE__ */ i("div", { className: "gcolhead__main", children: /* @__PURE__ */ g("div", { className: "gcolhead__col", children: [
|
|
6183
6204
|
/* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i($n, { dark: a, height: 20.38 }) }),
|
|
@@ -6191,7 +6212,7 @@ function Au(t) {
|
|
|
6191
6212
|
/* @__PURE__ */ g("div", { className: "listenerlive listenerlive--cols listenerlive--pub", children: [
|
|
6192
6213
|
/* @__PURE__ */ g("div", { className: "listenerlive__main", children: [
|
|
6193
6214
|
cr,
|
|
6194
|
-
!r &&
|
|
6215
|
+
!r && hn,
|
|
6195
6216
|
ps,
|
|
6196
6217
|
p && /* @__PURE__ */ i("div", { className: "pubflash", children: p }),
|
|
6197
6218
|
!r && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: ms }),
|
|
@@ -6203,41 +6224,41 @@ function Au(t) {
|
|
|
6203
6224
|
me && /* @__PURE__ */ g(Tc, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
|
|
6204
6225
|
!re.sidePanel && w,
|
|
6205
6226
|
!re.sidePanel && ns,
|
|
6206
|
-
!re.sidePanel &&
|
|
6227
|
+
!re.sidePanel && Ft.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(Nc, { col: Aa, order: ["summary", "export"], onPick: f, grip: { summary: 40, export: 28 }, render: (Pe) => /* @__PURE__ */ i(Ks, { panel: !0, children: Wr(Pe) }) }) }),
|
|
6207
6228
|
re.sidePanel
|
|
6208
6229
|
] })
|
|
6209
6230
|
] }),
|
|
6210
|
-
!
|
|
6211
|
-
!(u &&
|
|
6212
|
-
|
|
6231
|
+
!xt && re.sheets,
|
|
6232
|
+
!(u && xt) && lr,
|
|
6233
|
+
xt,
|
|
6213
6234
|
ur
|
|
6214
6235
|
] });
|
|
6215
6236
|
}
|
|
6216
|
-
const
|
|
6217
|
-
/* @__PURE__ */ i(
|
|
6237
|
+
const Ua = Ft.length > 0 && !m && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ g(Ks, { panel: !0, children: [
|
|
6238
|
+
/* @__PURE__ */ i(Ki, { tabs: Ft, current: h, onPick: f, gap: h !== "none" }),
|
|
6218
6239
|
h !== "none" && Wr(h)
|
|
6219
6240
|
] }) });
|
|
6220
|
-
return /* @__PURE__ */ g(
|
|
6221
|
-
/* @__PURE__ */ i(au, { dark: a, title: n ? qe : "", subline: n ? Ns : "", onOptions: () =>
|
|
6241
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
6242
|
+
/* @__PURE__ */ i(au, { dark: a, title: n ? qe : "", subline: n ? Ns : "", onOptions: () => I(!0), optionsActive: ee }),
|
|
6222
6243
|
cr,
|
|
6223
6244
|
ps,
|
|
6224
|
-
!r &&
|
|
6245
|
+
!r && Ua,
|
|
6225
6246
|
!r && ns,
|
|
6226
6247
|
!r && /* @__PURE__ */ g("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
|
|
6227
|
-
|
|
6248
|
+
hn,
|
|
6228
6249
|
ms,
|
|
6229
6250
|
p && /* @__PURE__ */ i("div", { className: "txflash", children: p })
|
|
6230
6251
|
] }),
|
|
6231
6252
|
!r && /* @__PURE__ */ g("div", { className: "gbottom", "data-transport": "1", children: [
|
|
6232
|
-
|
|
6253
|
+
vt && !Pt && /* @__PURE__ */ i("div", { className: "pubctl", children: ys(!1) }),
|
|
6233
6254
|
/* @__PURE__ */ g("div", { className: "gbottom__bar", children: [
|
|
6234
6255
|
Ue.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children: nr({ width: 87 }, void 0) }),
|
|
6235
6256
|
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children: Hr })
|
|
6236
6257
|
] })
|
|
6237
6258
|
] }),
|
|
6238
|
-
!
|
|
6239
|
-
!(u &&
|
|
6240
|
-
|
|
6259
|
+
!xt && re.sheets,
|
|
6260
|
+
!(u && xt) && lr,
|
|
6261
|
+
xt,
|
|
6241
6262
|
ur
|
|
6242
6263
|
] });
|
|
6243
6264
|
}
|
|
@@ -6247,7 +6268,7 @@ function Eu(t) {
|
|
|
6247
6268
|
if (!t || (e == null ? void 0 : e.url) === t && e.ok) return;
|
|
6248
6269
|
let r = !0, s;
|
|
6249
6270
|
const a = () => {
|
|
6250
|
-
|
|
6271
|
+
io(t).then((o) => {
|
|
6251
6272
|
r && (n({ url: t, ok: o }), o || (s = setTimeout(a, 3e3)));
|
|
6252
6273
|
});
|
|
6253
6274
|
};
|
|
@@ -6261,7 +6282,7 @@ function Fu({ site: t, size: e = 16, tinted: n = !1, style: r, className: s }) {
|
|
|
6261
6282
|
}
|
|
6262
6283
|
export {
|
|
6263
6284
|
uc as ExportPanel,
|
|
6264
|
-
|
|
6285
|
+
sa as FullVideo,
|
|
6265
6286
|
su as MiniPlayer,
|
|
6266
6287
|
Ac as MuteButton,
|
|
6267
6288
|
Bc as NO_SEEK,
|
|
@@ -6273,7 +6294,7 @@ export {
|
|
|
6273
6294
|
Un as REMOVE_BG_LABEL,
|
|
6274
6295
|
Uo as REMOVE_BG_NOTE,
|
|
6275
6296
|
Wl as ReplayScrub,
|
|
6276
|
-
|
|
6297
|
+
Ei as SITES,
|
|
6277
6298
|
Fu as SiteIcon,
|
|
6278
6299
|
ec as SpeakerCast,
|
|
6279
6300
|
Mc as SummaryPanel,
|
|
@@ -6284,28 +6305,28 @@ export {
|
|
|
6284
6305
|
tc as VoiceSheetBody,
|
|
6285
6306
|
xc as YtFollow,
|
|
6286
6307
|
Po as bedNote,
|
|
6287
|
-
|
|
6288
|
-
|
|
6308
|
+
an as browserFull,
|
|
6309
|
+
wo as hostOfUrl,
|
|
6289
6310
|
Qt as lineEnd,
|
|
6290
|
-
|
|
6291
|
-
|
|
6311
|
+
ea as lineWords,
|
|
6312
|
+
Zt as pictureT,
|
|
6292
6313
|
Dn as placePosition,
|
|
6293
6314
|
An as realFull,
|
|
6294
6315
|
Qu as setErrorReporter,
|
|
6295
|
-
|
|
6316
|
+
pi as setFullTarget,
|
|
6296
6317
|
Bu as siteById,
|
|
6297
|
-
|
|
6318
|
+
vo as siteOf,
|
|
6298
6319
|
zc as snapPosition,
|
|
6299
|
-
|
|
6320
|
+
gi as spokenWordOf,
|
|
6300
6321
|
$o as trackPlan,
|
|
6301
|
-
|
|
6322
|
+
Bi as useApi,
|
|
6302
6323
|
ac as useArchiveVoice,
|
|
6303
6324
|
qo as useBackgroundBed,
|
|
6304
6325
|
Rc as useDuck,
|
|
6305
6326
|
Gc as useFindPull,
|
|
6306
6327
|
Ec as useFlash,
|
|
6307
6328
|
Bt as usePlayerApi,
|
|
6308
|
-
|
|
6329
|
+
Ui as useSeparatedTrack,
|
|
6309
6330
|
dc as useSummaryIn,
|
|
6310
6331
|
Sl as useTranscript,
|
|
6311
6332
|
$c as useTxPlayer,
|