markdown-flow-ui 0.1.128 → 0.1.129
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/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.cjs9.js +1 -1
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/_virtual/index.es9.js +2 -2
- package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js.map +1 -1
- package/dist/components/Slide/Player.cjs.js +1 -1
- package/dist/components/Slide/Player.cjs.js.map +1 -1
- package/dist/components/Slide/Player.d.ts +17 -1
- package/dist/components/Slide/Player.es.js +614 -543
- package/dist/components/Slide/Player.es.js.map +1 -1
- package/dist/components/Slide/Slide.cjs.js +1 -1
- package/dist/components/Slide/Slide.cjs.js.map +1 -1
- package/dist/components/Slide/Slide.es.js +673 -595
- package/dist/components/Slide/Slide.es.js.map +1 -1
- package/dist/components/Slide/constants.cjs.js +1 -1
- package/dist/components/Slide/constants.cjs.js.map +1 -1
- package/dist/components/Slide/constants.d.ts +2 -2
- package/dist/components/Slide/constants.es.js +2 -2
- package/dist/components/Slide/constants.es.js.map +1 -1
- package/dist/components/Slide/useSlide.cjs.js +1 -1
- package/dist/components/Slide/useSlide.cjs.js.map +1 -1
- package/dist/components/Slide/useSlide.d.ts +2 -0
- package/dist/components/Slide/useSlide.es.js +124 -105
- package/dist/components/Slide/useSlide.es.js.map +1 -1
- package/dist/components/Slide/utils/audioSegments.cjs.js +2 -0
- package/dist/components/Slide/utils/audioSegments.cjs.js.map +1 -0
- package/dist/components/Slide/utils/audioSegments.d.ts +2 -0
- package/dist/components/Slide/utils/audioSegments.es.js +21 -0
- package/dist/components/Slide/utils/audioSegments.es.js.map +1 -0
- package/dist/components/Slide/utils/audioSegments.test.d.ts +1 -0
- package/dist/components/Slide/utils/playbackSequence.cjs.js +1 -1
- package/dist/components/Slide/utils/playbackSequence.cjs.js.map +1 -1
- package/dist/components/Slide/utils/playbackSequence.d.ts +10 -0
- package/dist/components/Slide/utils/playbackSequence.es.js +15 -6
- package/dist/components/Slide/utils/playbackSequence.es.js.map +1 -1
- package/dist/components/Slide/utils/subtitleCue.cjs.js +2 -2
- package/dist/components/Slide/utils/subtitleCue.cjs.js.map +1 -1
- package/dist/components/Slide/utils/subtitleCue.d.ts +21 -0
- package/dist/components/Slide/utils/subtitleCue.es.js +146 -49
- package/dist/components/Slide/utils/subtitleCue.es.js.map +1 -1
- package/dist/components/Slide/utils/subtitleJumpNavigation.cjs.js +2 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.cjs.js.map +1 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.d.ts +10 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.es.js +22 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.es.js.map +1 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.test.d.ts +1 -0
- package/dist/node_modules/@braintree/sanitize-url/dist/index.cjs.js +1 -1
- package/dist/node_modules/@braintree/sanitize-url/dist/index.es.js +1 -1
- package/dist/node_modules/classnames/index.cjs.js +1 -1
- package/dist/node_modules/classnames/index.es.js +1 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/fast-forward.cjs.js +7 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/fast-forward.cjs.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/fast-forward.es.js +16 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/fast-forward.es.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rewind.cjs.js +7 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rewind.cjs.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rewind.es.js +16 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rewind.es.js.map +1 -0
- package/package.json +1 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs.js +0 -7
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.es.js +0 -16
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.es.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-cw.cjs.js +0 -7
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-cw.cjs.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-cw.es.js +0 -16
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-cw.es.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={};exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={exports:{}};exports.__module=e;
|
|
2
2
|
//# sourceMappingURL=index.cjs8.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={};exports.__exports=e;
|
|
2
2
|
//# sourceMappingURL=index.cjs9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorToolbar.cjs.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <Image strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","Image","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditorToolbar.cjs.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image as ImageIcon,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <ImageIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","ImageIcon","SquarePlay","EditorToolbar$1","memo"],"mappings":"s4BAuDMA,EAAY,GAEZC,EAA8C,CAAC,CACnD,SAAAC,EAAW,GACX,OAAAC,EACA,SAAAC,EACA,4BAAAC,EACA,uBAAAC,EACA,sBAAAC,EACA,sBAAAC,EAEA,eAAAC,EACA,qBAAAC,EACA,oBAAAC,EACA,mBAAAC,EACA,qBAAAC,EAAuB,GACvB,UAAAC,CACF,IAAM,CACJ,MAAMC,EAAoBC,EAAAA,YAAY,IAAM,CACtCd,IAGJK,IAAA,EACAF,IAAA,EACF,EAAG,CAACH,EAAUG,EAA6BE,CAAqB,CAAC,EAE3DU,EAAqBD,EAAAA,YACxBE,GAA+C,CAC1ChB,GAGJI,IAAyBY,EAAM,aAAa,CAC9C,EACA,CAAChB,EAAUI,CAAsB,CAAA,EAG7Ba,EAAsBH,EAAAA,YAAY,IAAM,CACxCd,GAGJM,IAAA,CACF,EAAG,CAACN,EAAUM,CAAqB,CAAC,EAS9BY,EAAqBJ,EAAAA,YAAY,IAAM,CACvCd,GAGJO,IAAA,CACF,EAAG,CAACP,EAAUO,CAAc,CAAC,EAEvBY,EAA2BL,EAAAA,YAAY,IAAM,CAC7Cd,GAGJQ,IAAA,CACF,EAAG,CAACR,EAAUQ,CAAoB,CAAC,EAE7BY,EAA0BN,EAAAA,YAAY,IAAM,CAC5Cd,GAGJS,IAAA,CACF,EAAG,CAACT,EAAUS,CAAmB,CAAC,EAE5BY,EAAyBP,EAAAA,YAAY,IAAM,CAC3Cd,GAGJU,IAAA,CACF,EAAG,CAACV,EAAUU,CAAkB,CAAC,EAEjC,OACEY,EAAAA,kBAAAA,IAACC,EAAAA,iBAAgB,cAAe,IAC9B,kCAAC,MAAA,CAAI,UAAU,+BAA+B,gBAAevB,EAC3D,SAAA,CAAAwB,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,oCACb,SAAA,CAAAA,yBAACC,EAAAA,QAAA,CACC,SAAA,CAAAH,EAAAA,kBAAAA,IAACI,EAAAA,eAAA,CAAe,QAAO,GACrB,SAAAJ,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,SAAAtB,EACA,QAASa,EAET,SAAAS,EAAAA,kBAAAA,IAACK,UAAA,CAAO,YAAa,KAAM,KAAM7B,CAAA,CAAW,CAAA,CAAA,EAEhD,0BACC8B,EAAAA,eAAA,CAAe,KAAK,MAClB,SAAA3B,EAAO,aAAe,EAAA,CACzB,CAAA,EACF,2BACCwB,EAAAA,QAAA,CACC,SAAA,CAAAH,EAAAA,kBAAAA,IAACI,EAAAA,eAAA,CAAe,QAAO,GACrB,SAAAJ,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,SAAAtB,EACA,QAASe,EACT,cACE,CAACf,GAAYW,EAAuB,OAAS,OAE/C,aAAYV,EAAO,OACnB,MAAOA,EAAO,OAEd,SAAAqB,EAAAA,kBAAAA,IAACO,UAAA,CAAiB,YAAa,KAAM,KAAM/B,CAAA,CAAW,CAAA,CAAA,EAE1D,0BACC8B,EAAAA,eAAA,CAAe,KAAK,MAAO,SAAA3B,EAAO,QAAU,EAAA,CAAG,CAAA,EAClD,2BACCwB,EAAAA,QAAA,CACC,SAAA,CAAAH,EAAAA,kBAAAA,IAACI,EAAAA,eAAA,CAAe,QAAO,GACrB,SAAAJ,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,SAAAtB,EACA,QAASmB,EACT,aAAYlB,EAAO,mBACnB,MAAOA,EAAO,mBAEd,SAAAqB,EAAAA,kBAAAA,IAACQ,UAAA,CAAY,YAAa,KAAM,KAAMhC,CAAA,CAAW,CAAA,CAAA,EAErD,0BACC8B,EAAAA,eAAA,CAAe,KAAK,MAClB,SAAA3B,EAAO,oBAAsB,EAAA,CAChC,CAAA,EACF,2BACCwB,EAAAA,QAAA,CACC,SAAA,CAAAH,EAAAA,kBAAAA,IAACI,EAAAA,eAAA,CAAe,QAAO,GACrB,SAAAJ,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,SAAAtB,EACA,QAASoB,EACT,aAAYnB,EAAO,kBACnB,MAAOA,EAAO,kBAEd,SAAAqB,EAAAA,kBAAAA,IAACS,UAAA,CAAY,YAAa,KAAM,KAAMjC,CAAA,CAAW,CAAA,CAAA,EAErD,0BACC8B,EAAAA,eAAA,CAAe,KAAK,MAClB,SAAA3B,EAAO,mBAAqB,EAAA,CAC/B,CAAA,EACF,2BACCwB,EAAAA,QAAA,CACC,SAAA,CAAAH,EAAAA,kBAAAA,IAACI,EAAAA,eAAA,CAAe,QAAO,GACrB,SAAAJ,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,SAAAtB,EACA,QAASqB,EACT,aAAYpB,EAAO,YACnB,MAAOA,EAAO,YAEd,SAAAqB,EAAAA,kBAAAA,IAACU,UAAA,CAAgB,YAAa,KAAM,KAAMlC,CAAA,CAAW,CAAA,CAAA,EAEzD,0BACC8B,EAAAA,eAAA,CAAe,KAAK,MAClB,SAAA3B,EAAO,aAAe,EAAA,CACzB,CAAA,EACF,2BACCwB,EAAAA,QAAA,CACC,SAAA,CAAAH,EAAAA,kBAAAA,IAACI,EAAAA,eAAA,CAAe,QAAO,GACrB,SAAAJ,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,SAAAtB,EACA,QAASkB,EACT,aAAYjB,EAAO,aACnB,MAAOA,EAAO,aAEd,SAAAqB,EAAAA,kBAAAA,IAACW,UAAA,CAAW,YAAa,KAAM,KAAMnC,CAAA,CAAW,CAAA,CAAA,EAEpD,0BACC8B,EAAAA,eAAA,CAAe,KAAK,MAClB,SAAA3B,EAAO,cAAgB,EAAA,CAC1B,CAAA,EACF,2BACCwB,EAAAA,QAAA,CACC,SAAA,CAAAH,EAAAA,kBAAAA,IAACI,EAAAA,eAAA,CAAe,QAAO,GACrB,SAAAJ,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,SAAAtB,EACA,QAASiB,EACT,aAAYhB,EAAO,cACnB,MAAOA,EAAO,cAEd,SAAAqB,EAAAA,kBAAAA,IAACY,UAAA,CAAS,YAAa,KAAM,KAAMpC,CAAA,CAAW,CAAA,CAAA,EAElD,0BACC8B,EAAAA,eAAA,CAAe,KAAK,MAClB,SAAA3B,EAAO,eAAiB,EAAA,CAC3B,CAAA,EACF,2BACCwB,EAAAA,QAAA,CACC,SAAA,CAAAH,EAAAA,kBAAAA,IAACI,EAAAA,eAAA,CAAe,QAAO,GACrB,SAAAJ,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,SAAAtB,EACA,QAAS,IAAME,EAASiC,EAAAA,eAAe,KAAK,EAC5C,aAAYlC,EAAO,MACnB,MAAOA,EAAO,MAEd,SAAAqB,EAAAA,kBAAAA,IAACc,UAAA,CAAU,YAAa,KAAM,KAAMtC,CAAA,CAAW,CAAA,CAAA,EAEnD,0BACC8B,EAAAA,eAAA,CAAe,KAAK,MAAO,SAAA3B,EAAO,OAAS,EAAA,CAAG,CAAA,EACjD,2BACCwB,EAAAA,QAAA,CACC,SAAA,CAAAH,EAAAA,kBAAAA,IAACI,EAAAA,eAAA,CAAe,QAAO,GACrB,SAAAJ,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,SAAAtB,EACA,QAAS,IAAME,EAASiC,EAAAA,eAAe,KAAK,EAC5C,aAAYlC,EAAO,MACnB,MAAOA,EAAO,MAEd,SAAAqB,EAAAA,kBAAAA,IAACe,UAAA,CAAW,YAAa,KAAM,KAAMvC,CAAA,CAAW,CAAA,CAAA,EAEpD,0BACC8B,EAAAA,eAAA,CAAe,KAAK,MAAO,SAAA3B,EAAO,OAAS,EAAA,CAAG,CAAA,CAAA,CACjD,CAAA,EACF,EACCW,EACCU,EAAAA,kBAAAA,IAAC,MAAA,CAAI,UAAU,6CACZ,WACH,EACE,IAAA,CAAA,CAiBN,CAAA,CACF,CAEJ,EAEAgB,EAAeC,EAAAA,KAAKxC,CAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorToolbar.es.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <Image strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","Image","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditorToolbar.es.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image as ImageIcon,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <ImageIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","ImageIcon","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("../../_virtual/jsx-runtime.cjs.js"),t=require("react"),bt=require("../../lib/utils.cjs.js"),Ot=require("./MobilePlayerSettingsSheet.cjs.js"),Vt=require("./constants.cjs.js"),Jt=require("./utils/mobileScreenMode.cjs.js"),Ht=require("./utils/audioCompletion.cjs.js"),$t=require("./utils/playerKeyboardShortcutContext.cjs.js"),se=require("./utils/playerKeyboardShortcuts.cjs.js"),Zt=require("./utils/playbackSource.cjs.js"),zt=require("./utils/playbackPreference.cjs.js"),It=require("./utils/playerCustomActions.cjs.js"),xt=require("./utils/playerNavigationContext.cjs.js"),Me=require("./utils/segmentSeek.cjs.js"),Yt=require("./utils/subtitleCue.cjs.js");;/* empty css */const Dt=require("../../node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.cjs.js"),Xt=require("../../node_modules/lucide-react/dist/esm/icons/volume-2.cjs.js"),Gt=require("../../node_modules/lucide-react/dist/esm/icons/captions.cjs.js"),Qt=require("../../node_modules/lucide-react/dist/esm/icons/captions-off.cjs.js"),er=require("../../node_modules/lucide-react/dist/esm/icons/skip-back.cjs.js"),tr=require("../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs.js"),rr=require("../../node_modules/lucide-react/dist/esm/icons/rotate-cw.cjs.js"),nr=require("../../node_modules/lucide-react/dist/esm/icons/skip-forward.cjs.js"),ur=require("../../node_modules/lucide-react/dist/esm/icons/scan-line.cjs.js"),sr=require("../../node_modules/lucide-react/dist/esm/icons/maximize.cjs.js"),ar=require("../../node_modules/lucide-react/dist/esm/icons/file-pen-line.cjs.js"),yt=new Map,ht=M=>{if(typeof window>"u"||!M||yt.has(M))return;const v=window.document.createElement("audio");v.preload="auto",v.setAttribute("playsinline","true"),v.src=M,v.load(),yt.set(M,v)},lr=()=>n.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"34",height:"34",viewBox:"0 0 34 34",fill:"none",children:[n.jsxRuntimeExports.jsx("path",{d:"M16.6667 33.3333C25.8714 33.3333 33.3333 25.8714 33.3333 16.6667C33.3333 7.46192 25.8714 0 16.6667 0C7.46192 0 0 7.46192 0 16.6667C0 25.8714 7.46192 33.3333 16.6667 33.3333Z",fill:"#0A0A0A"}),n.jsxRuntimeExports.jsx("path",{d:"M12 10H16V24H12V10ZM18 10H22V24H18V10Z",fill:"white"})]}),cr=()=>n.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"34",height:"34",viewBox:"0 0 34 34",fill:"none",children:[n.jsxRuntimeExports.jsx("path",{d:"M16.6667 33.3333C25.8714 33.3333 33.3333 25.8714 33.3333 16.6667C33.3333 7.46192 25.8714 0 16.6667 0C7.46192 0 0 7.46192 0 16.6667C0 25.8714 7.46192 33.3333 16.6667 33.3333Z",fill:"#0A0A0A"}),n.jsxRuntimeExports.jsx("path",{d:"M13.3333 10L23.3333 16.6667L13.3333 23.3333V10Z",fill:"white"})]}),O={fullscreen:"F",next:"→",nextSubtitle:"Shift+→",notes:"N",playback:"Space",previous:"←",previousSubtitle:"Shift+←",subtitle:"C"},ir=250,or=(M,v)=>M?`${M} (${v})`:v,fr=({audioList:M=[],className:v,currentAudioIndex:k=-1,defaultPlaying:_=!0,isPlaybackPaused:E=!1,isAutoAdvanceEnabled:V=!0,useAutoAdvanceToggle:q=!1,onLoadingChange:we,onPlaybackPreferenceChange:Le,onPlaybackStarted:ve,onPlaybackTimeChange:ae,onSubtitleToggle:X,onPrev:le,onNext:ce,onFullscreen:G,isFullscreen:Te=!1,mobileViewMode:kt=Jt.DEFAULT_MOBILE_VIEW_MODE,settingsPortalContainer:Rt,onMobileViewModeChange:Ae,onEnded:Ne,onAutoAdvanceToggle:qe,onInteractionToggle:ie,hasInteraction:he=!1,isInteractionOpen:Q=!1,isSubtitleEnabled:Se=!0,prevDisabled:ke=!1,nextDisabled:Re=!1,showControls:ge=!0,enableKeyboardShortcuts:gt=!0,customActions:Ke,customActionContext:Ue,texts:Pe,onFocusCapture:We,onPointerDown:Fe,..._t})=>{const Et=t.useId(),Be=t.useContext($t.PlayerKeyboardShortcutContext),h=t.useRef(null),Oe=t.useRef(Q),T=t.useRef(null),Ve=t.useRef(null),A=t.useRef(0),o=t.useRef(null),oe=t.useRef(void 0),w=t.useRef([]),ee=t.useRef(q?V:_),te=t.useRef(!1),Je=t.useRef(!1),b=t.useRef(!1),N=t.useRef(null),J=t.useRef(null),C=t.useRef(!1),a=t.useRef(!1),x=t.useRef(null),L=t.useRef(!1),H=t.useRef(null),fe=t.useRef(0),He=t.useRef(()=>{}),de=t.useRef(null),K=t.useRef("unknown"),[me,f]=t.useState(_),[$e,z]=t.useState(!1),[I,Ct]=t.useState({next:!1,previous:!1}),$=Be?.ownerId??Et,U=gt&&(Be?.enabled??!0),i=k>=0?M[k]:void 0,y=i?.audioUrl,R=t.useMemo(()=>[...i?.audioSegments??[]].sort((e,r)=>e.segment_index-r.segment_index),[i?.audioSegments]),Ze=t.useMemo(()=>i?.element?.subtitle_cues??[],[i?.element?.subtitle_cues]),ze=t.useMemo(()=>It.toPlayerCustomActionList(Ke,Ue),[Ue,Ke]),Ie=ze.length+7,jt=t.useMemo(()=>({"--slide-player-mobile-control-count":String(Ie)}),[Ie]),l=t.useMemo(()=>({...Vt.DEFAULT_SLIDE_PLAYER_TEXTS,...Pe}),[Pe]),_e=t.useMemo(()=>i?i.audioKey??`${String(i.sequenceNumber??"none")}:${String(i.audioUrl??"")}`:"none",[i]),Mt=q?V:me,Ye=q?V?l.pauseAutoplayLabel:l.playAutoplayLabel:me?l.pauseLabel:l.playLabel,De=Te?l.exitFullscreenLabel:l.enterFullscreenLabel,W=t.useCallback((e,r,s)=>({ariaKeyShortcuts:U?s:void 0,title:U?or(e,r):e}),[U]),Xe=W(l.subtitleToggleAriaLabel,O.subtitle,"c"),Ge=W(l.previousLabel,O.previous,"ArrowLeft"),Qe=W(l.previousSubtitleLabel,O.previousSubtitle,"Shift+ArrowLeft"),et=W(Ye,O.playback,"Space"),tt=W(l.nextLabel,O.next,"ArrowRight"),rt=W(l.nextSubtitleLabel,O.nextSubtitle,"Shift+ArrowRight"),nt=W(De,O.fullscreen,"f"),ut=W(l.notesLabel,O.notes,"n"),pe=t.useCallback(()=>{U&&se.activatePlayerKeyboardShortcutOwner($)},[$,U]),wt=t.useCallback(e=>{pe(),Fe?.(e)},[pe,Fe]),Lt=t.useCallback(e=>{pe(),We?.(e)},[pe,We]);t.useEffect(()=>{oe.current=i},[i]),t.useEffect(()=>{ee.current=q?V:_},[_,V,q]),t.useEffect(()=>{ge||z(!1)},[ge]),t.useEffect(()=>{!Oe.current&&Q&&z(!1),Oe.current=Q},[Q]),t.useEffect(()=>{w.current=R},[R]),t.useEffect(()=>{const e=i?.audioUrl,r=k>=0?M[k+1]?.audioUrl:void 0;ht(e),ht(r)},[M,i?.audioUrl,k]);const u=t.useCallback((e,r=null)=>{Je.current===e&&(!e||r===null)||(Je.current=e,we?.({loading:e,reason:e?r:null}))},[we]),P=t.useCallback(e=>{ee.current=e,Le?.(e)},[Le]),re=t.useCallback(()=>q?{shouldContinuePlayback:ee.current}:{shouldContinuePlayback:zt.shouldKeepPlayingAfterNavigation({defaultPlaying:ee.current,isPausedByUser:b.current})},[q]),st=t.useCallback(e=>e instanceof DOMException?e.name==="NotAllowedError"||e.name==="SecurityError":!1,[]),F=t.useCallback(()=>_&&!E&&!b.current&&K.current!=="blocked",[_,E]),at=t.useCallback(e=>e?e.startsWith("data:")?e:`data:audio/mpeg;base64,${e}`:"",[]),lt=t.useCallback(()=>{const e=o.current;return e==null||e<=0?0:w.current.slice(0,e).reduce((r,s)=>r+Math.max(Number(s.duration_ms??0),0),0)/1e3},[]),Z=t.useCallback(e=>e<=0?0:w.current.slice(0,e).reduce((r,s)=>r+Math.max(Number(s.duration_ms??0),0),0),[]),ct=t.useCallback(e=>!i||E?!1:y?!0:Me.isPlaybackTimeCoveredBySegments(R,e),[i,R,y,E]),ne=t.useCallback((e,r)=>{const s=Yt.getSubtitleCueJumpTime({currentTimeMs:r,direction:e,subtitleCues:Ze});return s===null||!ct(s)?null:s},[ct,Ze]),Ee=t.useCallback((e,r=!1)=>{const s=Math.max(Number(e),0);if(!r&&de.current!==null&&Math.abs(s-de.current)<ir)return;de.current=s;const c={previous:ne("previous",s)!==null,next:ne("next",s)!==null};Ct(m=>m.previous===c.previous&&m.next===c.next?m:c)},[ne]);t.useEffect(()=>{He.current=Ee,Ee(fe.current,!0)},[Ee]);const be=t.useCallback(()=>{const e=h.current;return e?N.current==="segment"?Z(A.current)+Math.max(e.currentTime,0)*1e3:x.current!==null&&e.readyState===0?x.current*1e3:Math.max(e.currentTime,0)*1e3:o.current!=null?Z(o.current):0},[Z]),S=t.useCallback(e=>{const r=Math.max(e,0);fe.current!==r&&(fe.current=r,ae?.(r),He.current(r))},[ae]),d=t.useCallback(()=>{S(be())},[be,S]),p=t.useCallback(()=>{typeof window>"u"||H.current===null||(window.cancelAnimationFrame(H.current),H.current=null)},[]),it=t.useCallback(()=>{if(typeof window>"u"||H.current!==null)return;const e=()=>{d();const r=h.current;if(!r||r.paused||r.ended){H.current=null;return}H.current=window.requestAnimationFrame(e)};H.current=window.requestAnimationFrame(e)},[d]),Y=t.useCallback(()=>{const e=h.current;e&&(p(),a.current=!1,b.current=!1,te.current=!1,N.current=null,x.current=null,C.current=!1,L.current=!1,J.current=null,e.pause(),e.removeAttribute("src"),e.load(),T.current=null,A.current=0,o.current=null,S(0),f(!1),u(!1))},[S,p,u]),g=t.useCallback(e=>{const r=h.current;if(!r)return!1;const s=r.play();return s&&typeof s.then=="function"&&s.then(()=>{K.current==="unknown"&&(K.current="auto"),a.current=!1,L.current=!1}).catch(c=>{K.current==="unknown"&&st(c)&&(K.current="blocked",a.current=!1,u(!1)),L.current=!1,f(!1)}),!0},[st,u]),j=t.useCallback((e,r,s={})=>{const c=h.current,m=w.current[e];if(!c||!m)return!1;const B=at(m.audio_data),ye=Math.max(Number(s.seekTimeSeconds??0),0);A.current=e,o.current=null,C.current=!1,L.current=!0,J.current="segment",S(Z(e)+ye*1e3);const pt=s.shouldResume??F();a.current=pt,u(!1);const Bt=T.current!==B;return N.current="segment",Bt&&(c.pause(),c.removeAttribute("src"),c.load(),T.current=B,c.src=B,c.load()),x.current=ye,c.readyState>0&&(c.currentTime=ye,x.current=null),pt?g(`start-segment:${r}`):(a.current=!1,L.current=!1,c.pause(),f(!1),!0)},[F,at,Z,S,g,u]),ot=t.useCallback(e=>{const r=h.current;if(!r||!i||E)return!1;const s=Math.max(Number(e),0),c=!r.paused&&!r.ended||a.current||L.current||o.current!==null&&ee.current&&!b.current,m=Me.isPlaybackTimeCoveredBySegments(w.current,s)?Me.resolveSegmentSeekTarget(w.current,s):null;if(de.current=null,p(),a.current=c,u(!1),c&&(K.current="manual",b.current=!1,P(!0)),m&&(N.current==="segment"||!y))return j(m.segmentIndex,"subtitle-seek-segment",{seekTimeSeconds:m.segmentTimeSeconds,shouldResume:c});if(y){const B=s/1e3;return T.current!==y&&(r.pause(),r.removeAttribute("src"),r.load(),T.current=y,N.current="url",J.current="url",r.src=y,r.load()),x.current=B,S(s),r.readyState>0&&(r.currentTime=B,x.current=null),c?g("subtitle-seek-url"):(a.current=!1,r.pause(),f(!1),!0)}return!1},[i,y,E,S,j,p,g,u,P]),ue=t.useCallback(e=>{const r=ne(e,be());return r===null?!1:ot(r)},[be,ne,ot]),D=t.useCallback(e=>{p(),a.current=!1,C.current=!1,L.current=!1,d(),f(!1),u(!1),k>=0&&Ne?.(k)},[k,Ne,p,d,u]),xe=t.useCallback(e=>{const r=h.current;return!r||N.current!=="url"||!Ht.hasReachedAudioEnd({currentTimeSeconds:Math.max(r.currentTime,0),durationSeconds:r.duration})?!1:(a.current=!1,r.pause(),D(e),!0)},[D]),ft=t.useCallback(()=>{const e=A.current+1,r=w.current,s=r[e],c=oe.current,m=r.some(B=>B.is_final);if(s){j(e,"ended");return}if(c?.isAudioStreaming||!m){A.current=e,o.current=e,C.current=!0,a.current=_,S(Z(e)),f(!1),u(!0,"waitingForMoreAudio");return}D("segments-completed")},[_,D,Z,S,j,u]);t.useEffect(()=>{if(Ve.current===_e)return;Ve.current=_e,A.current=0,o.current=null,C.current=!1,b.current=!1,te.current=!1,a.current=!1,L.current=!1,N.current=null,J.current=null,T.current=null,p(),S(0),u(!1);const e=h.current;e&&(e.pause(),e.removeAttribute("src"),e.load(),f(!1))},[k,_e,R.length,y,S,p,u]),t.useEffect(()=>{const e=h.current;if(e){if(E){te.current=!!(oe.current&&!b.current&&(!e.paused||a.current||o.current!==null)),a.current=!1,u(!1),e.pause(),f(!1);return}if(!(!te.current||!oe.current||b.current)){if(te.current=!1,o.current!==null){if(o.current<w.current.length){j(o.current,"external-resume");return}a.current=!0,u(!0,"waitingForMoreAudio");return}if(!T.current&&w.current.length>0){j(Math.min(A.current,w.current.length-1),"external-resume-init");return}e.paused&&(a.current=!0,g("external-resume"))}}},[E,j,g,u]),t.useEffect(()=>{const e=h.current;if(!e)return;if(!i){Y();return}if(E){a.current=!1,u(!1),e.pause(),f(!1);return}const r=Zt.resolveAudioPlaybackSourceType({activeSourceType:N.current,hasAudioUrl:!!y,segmentCount:R.length,preferredSourceType:J.current,waitingSegmentIndex:o.current});if(r&&J.current!==r&&(J.current=r),r==="url"&&y){const s=T.current!==y,c=F();if(s){const m=o.current!==null?lt():0;e.pause(),e.removeAttribute("src"),e.load(),T.current=y,N.current="url",e.src=y,e.load(),x.current=m,S(m*1e3),e.readyState>0&&(e.currentTime=m,x.current=null)}if(a.current=c,C.current=!1,L.current=!1,u(!1),!c){a.current=!1,e.pause(),f(!1);return}g(s?"sync-url-init":"sync-url");return}if(r==="segment"&&o.current!==null){if(o.current<R.length){if(b.current){f(!1),u(!1);return}j(o.current,"wait-resume");return}C.current=!0,a.current=F(),f(!1),u(F());return}if(r==="segment"&&!R.length){if(i.isAudioStreaming){o.current=A.current,C.current=!0,a.current=F(),f(!1),u(F());return}Y();return}if(r==="segment"&&!T.current){j(Math.min(A.current,R.length-1),"effect-init");return}if(r!=="segment"){Y();return}if(!_||b.current){a.current=!1,e.pause(),f(!1);return}e.paused&&(a.current=!0,g("sync-paused-retry"))},[i,k,R,y,_,E,F,S,Y,j,g,lt,u]),t.useEffect(()=>Y,[Y]),t.useEffect(()=>p,[p]);const vt=t.useCallback(()=>{d(),it(),f(!0),u(!1),ve?.()},[ve,it,d,u]),Tt=t.useCallback(()=>{C.current||L.current||(p(),d(),f(!1))},[k,p,d]),At=t.useCallback(()=>{const e=h.current;e&&x.current!==null&&(e.currentTime=x.current,x.current=null),d(),!xe("canplay-seek-finished")&&(!a.current||!_||g("canplay"))},[k,_,xe,d,g]),Nt=t.useCallback(()=>{const e=h.current;e&&x.current!==null&&(e.currentTime=x.current,x.current=null),d(),xe("metadata-seek-finished")},[k,xe,d]),qt=t.useCallback(()=>{d()},[d]),Kt=t.useCallback(()=>{C.current||u(!0,"loadingAudio")},[u]),Ut=t.useCallback(()=>{if(C.current){u(!0,"waitingForMoreAudio");return}u(!0,"loadingAudio")},[u]),dt=t.useCallback(()=>{d()},[d]),Pt=t.useCallback(()=>{const e=N.current==="url"||w.current.length===0;if(p(),L.current=!1,e){D("url-ended");return}ft()},[D,ft,p]),Wt=t.useCallback(()=>{p(),d(),f(!1),u(!1)},[p,d,u]),Ft=t.useCallback(e=>{Ae?.(e),z(!1)},[Ae]),Ce=t.useCallback(()=>{if(q){const r=!V;return P(r),qe?.(r),!0}const e=h.current;return E||!e||!i?!1:o.current!==null?me?(P(!1),a.current=!1,b.current=!0,o.current=null,C.current=!1,f(!1),u(!1),e.pause(),!0):(P(!0),K.current="manual",b.current=!1,a.current=!0,u(!0,"waitingForMoreAudio"),!0):!e.src&&R.length>0?(P(!0),K.current="manual",b.current=!1,j(Math.min(A.current,R.length-1),"toggle"),!0):e.paused?(P(!0),K.current="manual",b.current=!1,a.current=!0,g("toggle-resume"),!0):(P(!1),a.current=!1,b.current=!0,e.pause(),!0)},[i,R.length,V,E,me,qe,j,g,u,P,q]);t.useEffect(()=>{if(U)return se.registerPlayerKeyboardShortcutOwner($)},[$,U]);const je=t.useMemo(()=>({fullscreen:()=>G?(G(),!0):!1,interaction:()=>ie?(he&&ie(),!0):!1,next:()=>ce?(Re||ce(xt.suppressPlayerControlsWakeAfterNavigation(re())),!0):!1,nextSubtitle:()=>I.next?ue("next"):!0,previous:()=>le?(ke||le(xt.suppressPlayerControlsWakeAfterNavigation(re())),!0):!1,previousSubtitle:()=>I.previous?ue("previous"):!0,subtitle:()=>X?(X(),!0):!1,togglePlayback:()=>(Ce(),!0)}),[re,he,ue,Re,G,ie,ce,le,X,ke,I.next,I.previous,Ce]),mt=t.useRef(je);return t.useEffect(()=>{mt.current=je},[je]),t.useEffect(()=>{if(!U||typeof document>"u")return;const e=r=>{if(!se.isActivePlayerKeyboardShortcutOwner($))return;const s=se.getPlayerKeyboardShortcutAction(r);if(!s||se.shouldIgnorePlayerKeyboardShortcutEvent(r,s))return;let c=!1;const m=mt.current[s];c=m(),c&&r.preventDefault()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[$,U]),t.useEffect(()=>{ae?.(fe.current)},[ae]),n.jsxRuntimeExports.jsxs("div",{..._t,"data-slide-player-shortcut-owner":$,className:bt.cn("slide-player",v),onFocusCapture:Lt,onPointerDown:wt,children:[n.jsxRuntimeExports.jsx("audio",{ref:h,preload:"auto",playsInline:!0,onLoadStart:Kt,onLoadedMetadata:Nt,onCanPlay:At,onPlay:vt,onPause:Tt,onWaiting:Ut,onSeeking:dt,onSeeked:dt,onTimeUpdate:qt,onEnded:Pt,onError:Wt}),ge?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(Ot.default,{container:Rt,labels:{closeSettings:l.closeSettingsLabel,fullscreen:l.fullscreenLabel,nonFullscreen:l.nonFullscreenLabel,screen:l.screenLabel,screenMode:l.screenModeLabel,subtitle:l.subtitleLabel,subtitleToggle:l.subtitleToggleAriaLabel,title:l.settingsTitle},isSubtitleEnabled:Se,onClose:()=>z(!1),onOpenChange:z,onSubtitleToggle:X??(()=>{}),onViewModeChange:Ft,open:$e,viewMode:kt}),n.jsxRuntimeExports.jsxs("div",{className:"slide-player__controls",style:jt,children:[n.jsxRuntimeExports.jsxs("div",{className:"slide-player__group",children:[n.jsxRuntimeExports.jsx("button",{"aria-expanded":$e,"aria-haspopup":"dialog","aria-label":l.moreOptionsAriaLabel,className:"slide-player__action slide-player__action--mobile-more",onClick:()=>{z(e=>!e)},type:"button",children:n.jsxRuntimeExports.jsx(Dt.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":l.volumeAriaLabel,className:"hidden",type:"button",children:n.jsxRuntimeExports.jsx(Xt.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":l.subtitleToggleAriaLabel,"aria-keyshortcuts":Xe.ariaKeyShortcuts,"aria-pressed":Se,className:"slide-player__action slide-player__action--subtitle",onClick:X,title:Xe.title,type:"button",children:Se?n.jsxRuntimeExports.jsx(Gt.default,{className:"slide-player__icon",strokeWidth:2.25}):n.jsxRuntimeExports.jsx(Qt.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":Qe.ariaKeyShortcuts,"aria-label":l.previousSubtitleLabel,className:"slide-player__action slide-player__action--prev-subtitle",disabled:!I.previous,onClick:()=>{ue("previous")},title:Qe.title,type:"button",children:n.jsxRuntimeExports.jsx(er.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":Ge.ariaKeyShortcuts,"aria-label":l.previousLabel,className:"slide-player__action slide-player__action--prev",disabled:ke,onClick:()=>{le?.(re())},title:Ge.title,type:"button",children:n.jsxRuntimeExports.jsx(tr.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":Ye,"aria-keyshortcuts":et.ariaKeyShortcuts,className:"slide-player__toggle slide-player__toggle--playback",onClick:()=>{Ce()},title:et.title,type:"button",children:Mt?n.jsxRuntimeExports.jsx(lr,{}):n.jsxRuntimeExports.jsx(cr,{})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":tt.ariaKeyShortcuts,"aria-label":l.nextLabel,className:"slide-player__action slide-player__action--next",disabled:Re,onClick:()=>{ce?.(re())},title:tt.title,type:"button",children:n.jsxRuntimeExports.jsx(rr.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":rt.ariaKeyShortcuts,"aria-label":l.nextSubtitleLabel,className:"slide-player__action slide-player__action--next-subtitle",disabled:!I.next,onClick:()=>{ue("next")},title:rt.title,type:"button",children:n.jsxRuntimeExports.jsx(nr.default,{className:"slide-player__icon",strokeWidth:2.25})}),G?n.jsxRuntimeExports.jsx("button",{"aria-label":De,"aria-keyshortcuts":nt.ariaKeyShortcuts,className:"slide-player__action slide-player__action--fullscreen",onClick:G,title:nt.title,type:"button",children:Te?n.jsxRuntimeExports.jsx(ur.default,{className:"slide-player__icon",strokeWidth:2.25}):n.jsxRuntimeExports.jsx(sr.default,{className:"slide-player__icon",strokeWidth:2.25})}):null]}),n.jsxRuntimeExports.jsx("div",{className:"slide-player__separator"}),n.jsxRuntimeExports.jsxs("div",{className:"slide-player__group",children:[ze.map((e,r)=>n.jsxRuntimeExports.jsx(t.Fragment,{children:e},`custom-action-${r}`)),n.jsxRuntimeExports.jsx("button",{"aria-label":l.notesLabel,"aria-keyshortcuts":ut.ariaKeyShortcuts,className:bt.cn("slide-player__action slide-player__action--notes",Q&&"slide-player__action--active"),disabled:!he,onClick:ie,title:ut.title,type:"button",children:n.jsxRuntimeExports.jsx(ar.default,{className:"slide-player__icon",strokeWidth:2.25})})]})]})]}):null]})},St=t.memo(fr);St.displayName="Player";exports.default=St;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("../../_virtual/jsx-runtime.cjs.js"),t=require("react"),Et=require("../../lib/utils.cjs.js"),Qt=require("./MobilePlayerSettingsSheet.cjs.js"),It=require("./constants.cjs.js"),er=require("./utils/mobileScreenMode.cjs.js"),tr=require("./utils/audioCompletion.cjs.js"),rr=require("./utils/playerKeyboardShortcutContext.cjs.js"),ae=require("./utils/playerKeyboardShortcuts.cjs.js"),nr=require("./utils/playbackSource.cjs.js"),ur=require("./utils/playbackPreference.cjs.js"),sr=require("./utils/playerCustomActions.cjs.js"),qe=require("./utils/playerNavigationContext.cjs.js"),Ke=require("./utils/segmentSeek.cjs.js"),_t=require("./utils/audioSegments.cjs.js"),jt=require("./utils/subtitleCue.cjs.js");;/* empty css */const lr=require("../../node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.cjs.js"),ar=require("../../node_modules/lucide-react/dist/esm/icons/volume-2.cjs.js"),cr=require("../../node_modules/lucide-react/dist/esm/icons/skip-back.cjs.js"),ir=require("../../node_modules/lucide-react/dist/esm/icons/skip-forward.cjs.js"),or=require("../../node_modules/lucide-react/dist/esm/icons/rewind.cjs.js"),fr=require("../../node_modules/lucide-react/dist/esm/icons/fast-forward.cjs.js"),dr=require("../../node_modules/lucide-react/dist/esm/icons/captions.cjs.js"),mr=require("../../node_modules/lucide-react/dist/esm/icons/captions-off.cjs.js"),pr=require("../../node_modules/lucide-react/dist/esm/icons/scan-line.cjs.js"),br=require("../../node_modules/lucide-react/dist/esm/icons/maximize.cjs.js"),hr=require("../../node_modules/lucide-react/dist/esm/icons/file-pen-line.cjs.js"),Mt=new Map,wt=o=>{if(typeof window>"u"||!o||Mt.has(o))return;const f=window.document.createElement("audio");f.preload="auto",f.setAttribute("playsinline","true"),f.src=o,f.load(),Mt.set(o,f)},yr=(o,f)=>f!==null&&f.audioList===o&&f.subtitleCueLists.length===o.length&&o.every((a,x)=>{const S=a.element?.subtitle_cues;return f.subtitleCueLists[x]===S&&f.subtitleCueLengths[x]===(S?.length??0)}),xr=o=>{const f=o.map(a=>a.element?.subtitle_cues);return{audioList:o,subtitleCueLists:f,subtitleCueLengths:f.map(a=>a?.length??0),tracks:f.map(a=>({subtitleCues:a??[]}))}},Sr=()=>n.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"34",height:"34",viewBox:"0 0 34 34",fill:"none",children:[n.jsxRuntimeExports.jsx("path",{d:"M16.6667 33.3333C25.8714 33.3333 33.3333 25.8714 33.3333 16.6667C33.3333 7.46192 25.8714 0 16.6667 0C7.46192 0 0 7.46192 0 16.6667C0 25.8714 7.46192 33.3333 16.6667 33.3333Z",fill:"#0A0A0A"}),n.jsxRuntimeExports.jsx("path",{d:"M12 10H16V24H12V10ZM18 10H22V24H18V10Z",fill:"white"})]}),kr=()=>n.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"34",height:"34",viewBox:"0 0 34 34",fill:"none",children:[n.jsxRuntimeExports.jsx("path",{d:"M16.6667 33.3333C25.8714 33.3333 33.3333 25.8714 33.3333 16.6667C33.3333 7.46192 25.8714 0 16.6667 0C7.46192 0 0 7.46192 0 16.6667C0 25.8714 7.46192 33.3333 16.6667 33.3333Z",fill:"#0A0A0A"}),n.jsxRuntimeExports.jsx("path",{d:"M13.3333 10L23.3333 16.6667L13.3333 23.3333V10Z",fill:"white"})]}),V={fullscreen:"F",next:"→",nextSubtitle:"Shift+→",notes:"N",playback:"Space",previous:"←",previousSubtitle:"Shift+←",subtitle:"C"},gr=250,Rr=(o,f)=>o?`${o} (${f})`:f,Cr=({audioList:o=[],className:f,currentAudioIndex:a=-1,defaultPlaying:x=!0,isPlaybackPaused:S=!1,isAutoAdvanceEnabled:H=!0,useAutoAdvanceToggle:q=!1,onLoadingChange:Ue,onPlaybackPreferenceChange:Pe,onPlaybackStarted:We,onPlaybackTimeChange:ce,onSubtitleToggle:I,onPrev:ie,onNext:oe,onSubtitleJump:fe,canJumpToSubtitleTarget:Ee,onFullscreen:ee,isFullscreen:Fe=!1,mobileViewMode:Tt=er.DEFAULT_MOBILE_VIEW_MODE,settingsPortalContainer:Lt,onMobileViewModeChange:Be,onEnded:Oe,onAutoAdvanceToggle:Ve,onInteractionToggle:de,hasInteraction:_e=!1,isInteractionOpen:te=!1,isSubtitleEnabled:je=!0,prevDisabled:Me=!1,nextDisabled:we=!1,showControls:ve=!0,enableKeyboardShortcuts:At=!0,subtitleSeekRequest:W=null,customActions:He,customActionContext:$e,texts:Je,onFocusCapture:Ze,onPointerDown:ze,...Nt})=>{const qt=t.useId(),Ye=t.useContext(rr.PlayerKeyboardShortcutContext),R=t.useRef(null),De=t.useRef(te),L=t.useRef(null),Xe=t.useRef(null),A=t.useRef(0),d=t.useRef(null),me=t.useRef(void 0),w=t.useRef([]),re=t.useRef(q?H:x),ne=t.useRef(!1),Ge=t.useRef(!1),k=t.useRef(!1),N=t.useRef(null),$=t.useRef(null),j=t.useRef(!1),c=t.useRef(!1),g=t.useRef(null),v=t.useRef(!1),J=t.useRef(null),pe=t.useRef(0),Qe=t.useRef(()=>{}),be=t.useRef(null),ue=t.useRef(null),Ie=t.useRef(null),et=t.useRef(null),K=t.useRef("unknown"),[he,p]=t.useState(x),[tt,D]=t.useState(!1),[X,Kt]=t.useState({next:!1,previous:!1}),Z=Ye?.ownerId??qt,U=At&&(Ye?.enabled??!0),m=a>=0?o[a]:void 0,E=m?.audioUrl,rt=m?.audioSegments,Ut=rt?.length??0,T=t.useMemo(()=>_t.getSortedAudioSegments(m),[m,Ut,rt]);let ye=et.current;yr(o,ye)||(ye=xr(o),et.current=ye);const nt=ye.tracks,ut=t.useMemo(()=>sr.toPlayerCustomActionList(He,$e),[$e,He]),st=ut.length+7,Pt=t.useMemo(()=>({"--slide-player-mobile-control-count":String(st)}),[st]),i=t.useMemo(()=>({...It.DEFAULT_SLIDE_PLAYER_TEXTS,...Je}),[Je]),Te=t.useMemo(()=>m?m.audioKey??`${String(m.sequenceNumber??"none")}:${String(m.audioUrl??"")}`:"none",[m]),Wt=q?H:he,lt=q?H?i.pauseAutoplayLabel:i.playAutoplayLabel:he?i.pauseLabel:i.playLabel,at=Fe?i.exitFullscreenLabel:i.enterFullscreenLabel,F=t.useCallback((e,r,s)=>({ariaKeyShortcuts:U?s:void 0,title:U?Rr(e,r):e}),[U]),ct=F(i.subtitleToggleAriaLabel,V.subtitle,"c"),it=F(i.previousLabel,V.previous,"ArrowLeft"),ot=F(i.previousSubtitleLabel,V.previousSubtitle,"Shift+ArrowLeft"),ft=F(lt,V.playback,"Space"),dt=F(i.nextLabel,V.next,"ArrowRight"),mt=F(i.nextSubtitleLabel,V.nextSubtitle,"Shift+ArrowRight"),pt=F(at,V.fullscreen,"f"),bt=F(i.notesLabel,V.notes,"n"),xe=t.useCallback(()=>{U&&ae.activatePlayerKeyboardShortcutOwner(Z)},[Z,U]),Ft=t.useCallback(e=>{xe(),ze?.(e)},[xe,ze]),Bt=t.useCallback(e=>{xe(),Ze?.(e)},[xe,Ze]);t.useEffect(()=>{me.current=m},[m]),t.useEffect(()=>{re.current=q?H:x},[x,H,q]),t.useEffect(()=>{ve||D(!1)},[ve]),t.useEffect(()=>{!De.current&&te&&D(!1),De.current=te},[te]),t.useEffect(()=>{w.current=T},[T]),t.useEffect(()=>{const e=m?.audioUrl,r=a>=0?o[a+1]?.audioUrl:void 0;wt(e),wt(r)},[o,m?.audioUrl,a]);const l=t.useCallback((e,r=null)=>{Ge.current===e&&(!e||r===null)||(Ge.current=e,Ue?.({loading:e,reason:e?r:null}))},[Ue]),P=t.useCallback(e=>{re.current=e,Pe?.(e)},[Pe]),z=t.useCallback(()=>q?{shouldContinuePlayback:re.current}:{shouldContinuePlayback:ur.shouldKeepPlayingAfterNavigation({defaultPlaying:re.current,isPausedByUser:k.current})},[q]),ht=t.useCallback(e=>e instanceof DOMException?e.name==="NotAllowedError"||e.name==="SecurityError":!1,[]),B=t.useCallback(()=>x&&!S&&!k.current&&K.current!=="blocked",[x,S]),yt=t.useCallback(e=>e?e.startsWith("data:")?e:`data:audio/mpeg;base64,${e}`:"",[]),xt=t.useCallback(()=>{const e=d.current;return e==null||e<=0?0:w.current.slice(0,e).reduce((r,s)=>r+Math.max(Number(s.duration_ms??0),0),0)/1e3},[]),Y=t.useCallback(e=>e<=0?0:w.current.slice(0,e).reduce((r,s)=>r+Math.max(Number(s.duration_ms??0),0),0),[]),Se=t.useCallback((e,r)=>!e||S?!1:e.audioUrl?!0:Ke.isPlaybackTimeCoveredBySegments(_t.getSortedAudioSegments(e),r),[S]),se=t.useCallback((e,r,s={})=>{const u=jt.getSubtitleCueJumpTarget({currentAudioIndex:a,currentTimeMs:r,direction:e,excludeTarget:s.excludeTarget,tracks:nt});return!u||!Se(o[u.audioIndex],u.timeMs)||u.audioIndex!==a&&(!fe||Ee&&!Ee(u))?null:u},[o,Ee,Se,a,fe,nt]),Le=t.useCallback((e,r=!1)=>{const s=Math.max(Number(e),0);if(!r&&be.current!==null&&Math.abs(s-be.current)<gr)return;be.current=s;const u={previous:se("previous",s)!==null,next:se("next",s)!==null};Kt(h=>h.previous===u.previous&&h.next===u.next?h:u)},[se]);t.useEffect(()=>{Qe.current=Le,Le(pe.current,!0)},[Le]);const ke=t.useCallback(()=>{const e=R.current;return e?N.current==="segment"?Y(A.current)+Math.max(e.currentTime,0)*1e3:g.current!==null&&e.readyState===0?g.current*1e3:Math.max(e.currentTime,0)*1e3:d.current!=null?Y(d.current):0},[Y]),C=t.useCallback(e=>{const r=Math.max(e,0);pe.current!==r&&(pe.current=r,jt.shouldClearSubtitleCueJumpTarget({currentAudioIndex:a,currentTimeMs:r,target:ue.current})&&(ue.current=null),ce?.(r),Qe.current(r))},[a,ce]),b=t.useCallback(()=>{C(ke())},[ke,C]),y=t.useCallback(()=>{typeof window>"u"||J.current===null||(window.cancelAnimationFrame(J.current),J.current=null)},[]),St=t.useCallback(()=>{if(typeof window>"u"||J.current!==null)return;const e=()=>{b();const r=R.current;if(!r||r.paused||r.ended){J.current=null;return}J.current=window.requestAnimationFrame(e)};J.current=window.requestAnimationFrame(e)},[b]),G=t.useCallback(()=>{const e=R.current;e&&(y(),c.current=!1,k.current=!1,ne.current=!1,N.current=null,g.current=null,j.current=!1,v.current=!1,$.current=null,e.pause(),e.removeAttribute("src"),e.load(),L.current=null,A.current=0,d.current=null,C(0),p(!1),l(!1))},[C,y,l]),_=t.useCallback(e=>{const r=R.current;if(!r)return!1;const s=r.play();return s&&typeof s.then=="function"&&s.then(()=>{K.current==="unknown"&&(K.current="auto"),c.current=!1,v.current=!1}).catch(u=>{K.current==="unknown"&&ht(u)&&(K.current="blocked",c.current=!1,l(!1)),v.current=!1,p(!1)}),!0},[ht,l]),M=t.useCallback((e,r,s={})=>{const u=R.current,h=w.current[e];if(!u||!h)return!1;const O=yt(h.audio_data),Ce=Math.max(Number(s.seekTimeSeconds??0),0);A.current=e,d.current=null,j.current=!1,v.current=!0,$.current="segment",C(Y(e)+Ce*1e3);const Ct=s.shouldResume??B();c.current=Ct,l(!1);const Gt=L.current!==O;return N.current="segment",Gt&&(u.pause(),u.removeAttribute("src"),u.load(),L.current=O,u.src=O,u.load()),g.current=Ce,u.readyState>0&&(u.currentTime=Ce,g.current=null),Ct?_(`start-segment:${r}`):(c.current=!1,v.current=!1,u.pause(),p(!1),!0)},[B,yt,Y,C,_,l]),ge=t.useCallback(e=>{const r=R.current;if(!r||!m||S)return!1;const s=Math.max(Number(e),0),u=!r.paused&&!r.ended||c.current||v.current||d.current!==null&&re.current&&!k.current,h=Ke.isPlaybackTimeCoveredBySegments(w.current,s)?Ke.resolveSegmentSeekTarget(w.current,s):null;if(be.current=null,y(),c.current=u,l(!1),u&&(K.current="manual",k.current=!1,P(!0)),h&&(N.current==="segment"||!E))return M(h.segmentIndex,"subtitle-seek-segment",{seekTimeSeconds:h.segmentTimeSeconds,shouldResume:u});if(E){const O=s/1e3;return L.current!==E&&(r.pause(),r.removeAttribute("src"),r.load(),L.current=E,N.current="url",$.current="url",r.src=E,r.load()),g.current=O,C(s),r.readyState>0&&(r.currentTime=O,g.current=null),u?_("subtitle-seek-url"):(c.current=!1,r.pause(),p(!1),!0)}return!1},[m,E,S,C,M,y,_,l,P]),le=t.useCallback(e=>{const r=se(e,ke(),{excludeTarget:e==="previous"?ue.current:null});if(r===null)return!1;if(r.audioIndex===a){const u=ge(r.timeMs);return u&&(ue.current=r),u}const s=!!fe?.(r,qe.suppressPlayerControlsWakeAfterNavigation(z()));return s&&(ue.current=r),s},[a,ke,z,se,fe,ge]),Q=t.useCallback(e=>{y(),c.current=!1,j.current=!1,v.current=!1,b(),p(!1),l(!1),a>=0&&Oe?.(a)},[a,Oe,y,b,l]),Re=t.useCallback(e=>{const r=R.current;return!r||N.current!=="url"||!tr.hasReachedAudioEnd({currentTimeSeconds:Math.max(r.currentTime,0),durationSeconds:r.duration})?!1:(c.current=!1,r.pause(),Q(e),!0)},[Q]),kt=t.useCallback(()=>{const e=A.current+1,r=w.current,s=r[e],u=me.current,h=r.some(O=>O.is_final);if(s){M(e,"ended");return}if(u?.isAudioStreaming||!h){A.current=e,d.current=e,j.current=!0,c.current=x,C(Y(e)),p(!1),l(!0,"waitingForMoreAudio");return}Q("segments-completed")},[x,Q,Y,C,M,l]);t.useEffect(()=>{if(Xe.current===Te)return;Xe.current=Te,A.current=0,d.current=null,j.current=!1,k.current=!1,ne.current=!1,c.current=!1,v.current=!1,N.current=null,$.current=null,L.current=null,y(),C(0),l(!1);const e=R.current;e&&(e.pause(),e.removeAttribute("src"),e.load(),p(!1))},[a,Te,T.length,E,C,y,l]),t.useEffect(()=>{const e=R.current;if(e){if(S){ne.current=!!(me.current&&!k.current&&(!e.paused||c.current||d.current!==null)),c.current=!1,l(!1),e.pause(),p(!1);return}if(!(!ne.current||!me.current||k.current)){if(ne.current=!1,d.current!==null){if(d.current<w.current.length){M(d.current,"external-resume");return}c.current=!0,l(!0,"waitingForMoreAudio");return}if(!L.current&&w.current.length>0){M(Math.min(A.current,w.current.length-1),"external-resume-init");return}e.paused&&(c.current=!0,_("external-resume"))}}},[S,M,_,l]),t.useEffect(()=>{const e=R.current;if(!e)return;if(!m){G();return}if(S){c.current=!1,l(!1),e.pause(),p(!1);return}const r=nr.resolveAudioPlaybackSourceType({activeSourceType:N.current,hasAudioUrl:!!E,segmentCount:T.length,preferredSourceType:$.current,waitingSegmentIndex:d.current});if(r&&$.current!==r&&($.current=r),r==="url"&&E){const s=L.current!==E,u=B();if(s){const h=d.current!==null?xt():0;e.pause(),e.removeAttribute("src"),e.load(),L.current=E,N.current="url",e.src=E,e.load(),g.current=h,C(h*1e3),e.readyState>0&&(e.currentTime=h,g.current=null)}if(c.current=u,j.current=!1,v.current=!1,l(!1),!u){c.current=!1,e.pause(),p(!1);return}_(s?"sync-url-init":"sync-url");return}if(r==="segment"&&d.current!==null){if(d.current<T.length){if(k.current){p(!1),l(!1);return}M(d.current,"wait-resume");return}j.current=!0,c.current=B(),p(!1),l(B());return}if(r==="segment"&&!T.length){if(m.isAudioStreaming){d.current=A.current,j.current=!0,c.current=B(),p(!1),l(B());return}G();return}if(r==="segment"&&!L.current){M(Math.min(A.current,T.length-1),"effect-init");return}if(r!=="segment"){G();return}if(!x||k.current){c.current=!1,e.pause(),p(!1);return}e.paused&&(c.current=!0,_("sync-paused-retry"))},[m,a,T,E,x,S,B,C,G,M,_,xt,l]),t.useEffect(()=>{if(!W||W.id===Ie.current||W.audioIndex!==a)return;const e=o[W.audioIndex];Se(e,W.timeMs)&&(Ie.current=W.id,ge(W.timeMs))},[o,Se,a,ge,W]),t.useEffect(()=>G,[G]),t.useEffect(()=>y,[y]);const Ot=t.useCallback(()=>{b(),St(),p(!0),l(!1),We?.()},[We,St,b,l]),Vt=t.useCallback(()=>{j.current||v.current||(y(),b(),p(!1))},[a,y,b]),Ht=t.useCallback(()=>{const e=R.current;e&&g.current!==null&&(e.currentTime=g.current,g.current=null),b(),!Re("canplay-seek-finished")&&(!c.current||!x||_("canplay"))},[a,x,Re,b,_]),$t=t.useCallback(()=>{const e=R.current;e&&g.current!==null&&(e.currentTime=g.current,g.current=null),b(),Re("metadata-seek-finished")},[a,Re,b]),Jt=t.useCallback(()=>{b()},[b]),Zt=t.useCallback(()=>{j.current||l(!0,"loadingAudio")},[l]),zt=t.useCallback(()=>{if(j.current){l(!0,"waitingForMoreAudio");return}l(!0,"loadingAudio")},[l]),gt=t.useCallback(()=>{b()},[b]),Yt=t.useCallback(()=>{const e=N.current==="url"||w.current.length===0;if(y(),v.current=!1,e){Q("url-ended");return}kt()},[Q,kt,y]),Dt=t.useCallback(()=>{y(),b(),p(!1),l(!1)},[y,b,l]),Xt=t.useCallback(e=>{Be?.(e),D(!1)},[Be]),Ae=t.useCallback(()=>{if(q){const r=!H;return P(r),Ve?.(r),!0}const e=R.current;return S||!e||!m?!1:d.current!==null?he?(P(!1),c.current=!1,k.current=!0,d.current=null,j.current=!1,p(!1),l(!1),e.pause(),!0):(P(!0),K.current="manual",k.current=!1,c.current=!0,l(!0,"waitingForMoreAudio"),!0):!e.src&&T.length>0?(P(!0),K.current="manual",k.current=!1,M(Math.min(A.current,T.length-1),"toggle"),!0):e.paused?(P(!0),K.current="manual",k.current=!1,c.current=!0,_("toggle-resume"),!0):(P(!1),c.current=!1,k.current=!0,e.pause(),!0)},[m,T.length,H,S,he,Ve,M,_,l,P,q]);t.useEffect(()=>{if(U)return ae.registerPlayerKeyboardShortcutOwner(Z)},[Z,U]);const Ne=t.useMemo(()=>({fullscreen:()=>ee?(ee(),!0):!1,interaction:()=>de?(_e&&de(),!0):!1,next:()=>oe?(we||oe(qe.suppressPlayerControlsWakeAfterNavigation(z())),!0):!1,nextSubtitle:()=>X.next?le("next"):!0,previous:()=>ie?(Me||ie(qe.suppressPlayerControlsWakeAfterNavigation(z())),!0):!1,previousSubtitle:()=>X.previous?le("previous"):!0,subtitle:()=>I?(I(),!0):!1,togglePlayback:()=>(Ae(),!0)}),[z,_e,le,we,ee,de,oe,ie,I,Me,X.next,X.previous,Ae]),Rt=t.useRef(Ne);return t.useEffect(()=>{Rt.current=Ne},[Ne]),t.useEffect(()=>{if(!U||typeof document>"u")return;const e=r=>{if(!ae.isActivePlayerKeyboardShortcutOwner(Z))return;const s=ae.getPlayerKeyboardShortcutAction(r);if(!s||ae.shouldIgnorePlayerKeyboardShortcutEvent(r,s))return;let u=!1;const h=Rt.current[s];u=h(),u&&r.preventDefault()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[Z,U]),t.useEffect(()=>{ce?.(pe.current)},[ce]),n.jsxRuntimeExports.jsxs("div",{...Nt,"data-slide-player-shortcut-owner":Z,className:Et.cn("slide-player",f),onFocusCapture:Bt,onPointerDown:Ft,children:[n.jsxRuntimeExports.jsx("audio",{ref:R,preload:"auto",playsInline:!0,onLoadStart:Zt,onLoadedMetadata:$t,onCanPlay:Ht,onPlay:Ot,onPause:Vt,onWaiting:zt,onSeeking:gt,onSeeked:gt,onTimeUpdate:Jt,onEnded:Yt,onError:Dt}),ve?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(Qt.default,{container:Lt,labels:{closeSettings:i.closeSettingsLabel,fullscreen:i.fullscreenLabel,nonFullscreen:i.nonFullscreenLabel,screen:i.screenLabel,screenMode:i.screenModeLabel,subtitle:i.subtitleLabel,subtitleToggle:i.subtitleToggleAriaLabel,title:i.settingsTitle},isSubtitleEnabled:je,onClose:()=>D(!1),onOpenChange:D,onSubtitleToggle:I??(()=>{}),onViewModeChange:Xt,open:tt,viewMode:Tt}),n.jsxRuntimeExports.jsxs("div",{className:"slide-player__controls",style:Pt,children:[n.jsxRuntimeExports.jsxs("div",{className:"slide-player__group",children:[n.jsxRuntimeExports.jsx("button",{"aria-expanded":tt,"aria-haspopup":"dialog","aria-label":i.moreOptionsAriaLabel,className:"slide-player__action slide-player__action--mobile-more",onClick:()=>{D(e=>!e)},type:"button",children:n.jsxRuntimeExports.jsx(lr.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":i.volumeAriaLabel,className:"hidden",type:"button",children:n.jsxRuntimeExports.jsx(ar.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":lt,"aria-keyshortcuts":ft.ariaKeyShortcuts,className:"slide-player__toggle slide-player__toggle--playback",onClick:()=>{Ae()},title:ft.title,type:"button",children:Wt?n.jsxRuntimeExports.jsx(Sr,{}):n.jsxRuntimeExports.jsx(kr,{})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":it.ariaKeyShortcuts,"aria-label":i.previousLabel,className:"slide-player__action slide-player__action--prev",disabled:Me,onClick:()=>{ie?.(z())},title:it.title,type:"button",children:n.jsxRuntimeExports.jsx(cr.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":dt.ariaKeyShortcuts,"aria-label":i.nextLabel,className:"slide-player__action slide-player__action--next",disabled:we,onClick:()=>{oe?.(z())},title:dt.title,type:"button",children:n.jsxRuntimeExports.jsx(ir.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":ot.ariaKeyShortcuts,"aria-label":i.previousSubtitleLabel,className:"slide-player__action slide-player__action--prev-subtitle",disabled:!X.previous,onClick:()=>{le("previous")},title:ot.title,type:"button",children:n.jsxRuntimeExports.jsx(or.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":mt.ariaKeyShortcuts,"aria-label":i.nextSubtitleLabel,className:"slide-player__action slide-player__action--next-subtitle",disabled:!X.next,onClick:()=>{le("next")},title:mt.title,type:"button",children:n.jsxRuntimeExports.jsx(fr.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":i.subtitleToggleAriaLabel,"aria-keyshortcuts":ct.ariaKeyShortcuts,"aria-pressed":je,className:"slide-player__action slide-player__action--subtitle",onClick:I,title:ct.title,type:"button",children:je?n.jsxRuntimeExports.jsx(dr.default,{className:"slide-player__icon",strokeWidth:2.25}):n.jsxRuntimeExports.jsx(mr.default,{className:"slide-player__icon",strokeWidth:2.25})}),ee?n.jsxRuntimeExports.jsx("button",{"aria-label":at,"aria-keyshortcuts":pt.ariaKeyShortcuts,className:"slide-player__action slide-player__action--fullscreen",onClick:ee,title:pt.title,type:"button",children:Fe?n.jsxRuntimeExports.jsx(pr.default,{className:"slide-player__icon",strokeWidth:2.25}):n.jsxRuntimeExports.jsx(br.default,{className:"slide-player__icon",strokeWidth:2.25})}):null]}),n.jsxRuntimeExports.jsx("div",{className:"slide-player__separator"}),n.jsxRuntimeExports.jsxs("div",{className:"slide-player__group",children:[ut.map((e,r)=>n.jsxRuntimeExports.jsx(t.Fragment,{children:e},`custom-action-${r}`)),n.jsxRuntimeExports.jsx("button",{"aria-label":i.notesLabel,"aria-keyshortcuts":bt.ariaKeyShortcuts,className:Et.cn("slide-player__action slide-player__action--notes",te&&"slide-player__action--active"),disabled:!_e,onClick:de,title:bt.title,type:"button",children:n.jsxRuntimeExports.jsx(hr.default,{className:"slide-player__icon",strokeWidth:2.25})})]})]})]}):null]})},vt=t.memo(Cr);vt.displayName="Player";exports.default=vt;
|
|
2
2
|
//# sourceMappingURL=Player.cjs.js.map
|