mulmocast-viewer 0.2.2 → 0.2.3
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/README.md +2 -2
- package/dist/index.d.ts +4 -8
- package/dist/mulmocast-viewer.css +1 -1
- package/dist/mulmocast-viewer.es.js +112 -112
- package/dist/mulmocast-viewer.umd.js +1 -1
- package/package.json +1 -4
package/README.md
CHANGED
|
@@ -235,7 +235,7 @@ const buildBeatUrl = (index: number) => {
|
|
|
235
235
|
|
|
236
236
|
**Key Points:**
|
|
237
237
|
- `beats`: Array of `{ beat: BundleItem, originalIndex: number }` - preserves original indices for linking
|
|
238
|
-
- `basePath`: Base path for
|
|
238
|
+
- `basePath`: Base path for media files. Images are resolved from `beat.imageSource` if available (e.g., `/my-content/horse.png`), otherwise falls back to sequential numbering (`/my-content/1.jpg`, `/my-content/2.jpg`, etc.)
|
|
239
239
|
- `textLang`: Language for text display
|
|
240
240
|
- `linkUrlBuilder`: Optional function `(index: number) => string` - returns URL for each beat
|
|
241
241
|
- `linkComponent`: Optional component for links - use `RouterLink` for Vue Router, or `'a'` (default) for regular links
|
|
@@ -364,7 +364,7 @@ The default slot exposes the following properties and components:
|
|
|
364
364
|
| Prop | Type | Required | Default | Description |
|
|
365
365
|
|------|------|----------|---------|-------------|
|
|
366
366
|
| `beats` | `Array<{ beat: BundleItem, originalIndex: number }>` | Yes | - | Array of beats with original indices |
|
|
367
|
-
| `basePath` | `string` | No | `''` | Base path for
|
|
367
|
+
| `basePath` | `string` | No | `''` | Base path for media files. Uses `beat.imageSource` if available, otherwise `{index+1}.jpg` |
|
|
368
368
|
| `textLang` | `string` | No | `'en'` | Text language |
|
|
369
369
|
| `linkUrlBuilder` | `(index: number) => string` | No | - | Function to generate link URLs |
|
|
370
370
|
| `linkComponent` | `string \| Component` | No | `'a'` | Link component (e.g., RouterLink or 'a') |
|
package/dist/index.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ declare const __VLS_component: DefineComponent<MulmoViewerProps, {
|
|
|
25
25
|
onAllCompleted?: (() => any) | undefined;
|
|
26
26
|
}>, {
|
|
27
27
|
playbackSpeed: number;
|
|
28
|
-
dataSet:
|
|
28
|
+
dataSet: MulmoViewerData;
|
|
29
29
|
initPage: number;
|
|
30
30
|
audioLang: string;
|
|
31
31
|
textLang: string;
|
|
@@ -285,7 +285,7 @@ export declare const BeatGridView: DefineComponent<BeatGridViewProps, {}, {}, {}
|
|
|
285
285
|
|
|
286
286
|
declare interface BeatGridViewProps {
|
|
287
287
|
beats: Array<{
|
|
288
|
-
beat:
|
|
288
|
+
beat: MulmoViewerBeat;
|
|
289
289
|
originalIndex: number;
|
|
290
290
|
}>;
|
|
291
291
|
basePath?: string;
|
|
@@ -307,7 +307,7 @@ export declare const BeatListView: DefineComponent<BeatListViewProps, {}, {}, {}
|
|
|
307
307
|
|
|
308
308
|
declare interface BeatListViewProps {
|
|
309
309
|
beats: Array<{
|
|
310
|
-
beat:
|
|
310
|
+
beat: MulmoViewerBeat;
|
|
311
311
|
originalIndex: number;
|
|
312
312
|
}>;
|
|
313
313
|
basePath?: string;
|
|
@@ -316,8 +316,6 @@ declare interface BeatListViewProps {
|
|
|
316
316
|
linkComponent?: string | object;
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
-
export declare type BundleItem = MulmoViewerBeat;
|
|
320
|
-
|
|
321
319
|
declare interface MulmoPlayerProps {
|
|
322
320
|
index: number;
|
|
323
321
|
videoWithAudioSource?: string;
|
|
@@ -349,7 +347,7 @@ declare interface MulmoViewerHeaderProps {
|
|
|
349
347
|
}
|
|
350
348
|
|
|
351
349
|
declare interface MulmoViewerProps {
|
|
352
|
-
dataSet?:
|
|
350
|
+
dataSet?: MulmoViewerData;
|
|
353
351
|
basePath: string;
|
|
354
352
|
initPage?: number;
|
|
355
353
|
audioLang?: string;
|
|
@@ -367,6 +365,4 @@ declare interface SelectLanguageProps {
|
|
|
367
365
|
modelValue: string;
|
|
368
366
|
}
|
|
369
367
|
|
|
370
|
-
export declare type ViewerData = MulmoViewerData;
|
|
371
|
-
|
|
372
368
|
export { }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@media(hover:none){.play-overlay[data-v-843621f0]{opacity:.6}.play-overlay[data-v-843621f0]:active{opacity:1}}.mulmo-text-box[data-v-fdffe885]{background:var(--mulmo-text-bg, #ffffff);color:inherit}.mulmo-text-primary[data-v-fdffe885]{color:var(--mulmo-text-primary, inherit)}.mulmo-text-secondary[data-v-fdffe885]{color:inherit;opacity:var(--mulmo-text-secondary-opacity, .7)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-2{top:calc(var(--spacing)*2)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.z-50{z-index:50}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.float-left{float:left}.clear-both{clear:both}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-4{height:calc(var(--spacing)*4)}.h-6\!{height:calc(var(--spacing)*6)!important}.h-8{height:calc(var(--spacing)*8)}.h-16{height:calc(var(--spacing)*16)}.h-auto{height:auto}.h-full{height:100%}.max-h-\[80vh\]{max-height:80vh}.max-h-full{max-height:100%}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-16{width:calc(var(--spacing)*16)}.w-30{width:calc(var(--spacing)*30)}.w-64{width:calc(var(--spacing)*64)}.w-auto{width:auto}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[auto\,1fr\,auto\]{grid-template-columns:auto,1fr,auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-y-4{row-gap:calc(var(--spacing)*4)}.self-center{align-self:center}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-red-600{background-color:var(--color-red-600)}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-10{padding:calc(var(--spacing)*10)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-0{opacity:0}.opacity-0\!{opacity:0!important}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.\[--mulmo-text-bg\:\#1f2937\]{--mulmo-text-bg:#1f2937}.\[--mulmo-text-primary\:\#fff\]{--mulmo-text-primary:#fff}@media(hover:hover){.group-hover\:text-indigo-600:is(:where(.group):hover *){color:var(--color-indigo-600)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-indigo-400:hover{border-color:var(--color-indigo-400)}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-black\/70:hover{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/70:hover{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.hover\:bg-black\/80:hover{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/80:hover{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-indigo-200:focus{--tw-ring-color:var(--color-indigo-200)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media not all and (min-width:40rem){.max-sm\:col-span-2{grid-column:span 2/span 2}.max-sm\:col-start-1{grid-column-start:1}.max-sm\:col-start-2{grid-column-start:2}.max-sm\:row-start-2{grid-row-start:2}.max-sm\:row-start-3{grid-row-start:3}.max-sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:inline-block{display:inline-block}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:py-4{padding-block:calc(var(--spacing)*4)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}.mulmocast-video::-webkit-media-controls-enclosure{background-color:#00000080!important;border-radius:0!important}.mulmocast-video::-webkit-media-controls-current-time-display{-webkit-text-fill-color:#fff!important}.mulmocast-video::-webkit-media-controls-time-remaining-display{-webkit-text-fill-color:#fff!important}.mulmocast-video::-webkit-media-controls-play-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-mute-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-overlay-play-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-fullscreen-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls{opacity:0;transition:opacity .3s}.mulmocast-video:hover::-webkit-media-controls{opacity:1}.mulmocast-audio::-webkit-media-controls-enclosure{background-color:#00000080!important;border-radius:0!important}.mulmocast-audio::-webkit-media-controls-current-time-display{-webkit-text-fill-color:#fff!important}.mulmocast-audio::-webkit-media-controls-time-remaining-display{-webkit-text-fill-color:#fff!important}.mulmocast-audio::-webkit-media-controls-play-button{filter:brightness(1.1)}.mulmocast-audio::-webkit-media-controls-mute-button{filter:brightness(1.1)}.mulmocast-audio::-webkit-media-controls{opacity:0;transition:opacity .3s}.mulmocast-audio:hover::-webkit-media-controls{opacity:1}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
|
|
1
|
+
@media(hover:none){.play-overlay[data-v-843621f0]{opacity:.6}.play-overlay[data-v-843621f0]:active{opacity:1}}.mulmo-text-box[data-v-46289647]{background:var(--mulmo-text-bg, #ffffff);color:inherit}.mulmo-text-primary[data-v-46289647]{color:var(--mulmo-text-primary, inherit)}.mulmo-text-secondary[data-v-46289647]{color:inherit;opacity:var(--mulmo-text-secondary-opacity, .7)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-2{top:calc(var(--spacing)*2)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.z-50{z-index:50}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.float-left{float:left}.clear-both{clear:both}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-4{height:calc(var(--spacing)*4)}.h-6\!{height:calc(var(--spacing)*6)!important}.h-8{height:calc(var(--spacing)*8)}.h-16{height:calc(var(--spacing)*16)}.h-auto{height:auto}.h-full{height:100%}.max-h-\[80vh\]{max-height:80vh}.max-h-full{max-height:100%}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-16{width:calc(var(--spacing)*16)}.w-30{width:calc(var(--spacing)*30)}.w-64{width:calc(var(--spacing)*64)}.w-auto{width:auto}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[auto\,1fr\,auto\]{grid-template-columns:auto,1fr,auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-y-4{row-gap:calc(var(--spacing)*4)}.self-center{align-self:center}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-red-600{background-color:var(--color-red-600)}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-10{padding:calc(var(--spacing)*10)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-0{opacity:0}.opacity-0\!{opacity:0!important}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.\[--mulmo-text-bg\:\#1f2937\]{--mulmo-text-bg:#1f2937}.\[--mulmo-text-primary\:\#fff\]{--mulmo-text-primary:#fff}@media(hover:hover){.group-hover\:text-indigo-600:is(:where(.group):hover *){color:var(--color-indigo-600)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-indigo-400:hover{border-color:var(--color-indigo-400)}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-black\/70:hover{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/70:hover{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.hover\:bg-black\/80:hover{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/80:hover{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-indigo-200:focus{--tw-ring-color:var(--color-indigo-200)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media not all and (min-width:40rem){.max-sm\:col-span-2{grid-column:span 2/span 2}.max-sm\:col-start-1{grid-column-start:1}.max-sm\:col-start-2{grid-column-start:2}.max-sm\:row-start-2{grid-row-start:2}.max-sm\:row-start-3{grid-row-start:3}.max-sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:inline-block{display:inline-block}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:py-4{padding-block:calc(var(--spacing)*4)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}.mulmocast-video::-webkit-media-controls-enclosure{background-color:#00000080!important;border-radius:0!important}.mulmocast-video::-webkit-media-controls-current-time-display{-webkit-text-fill-color:#fff!important}.mulmocast-video::-webkit-media-controls-time-remaining-display{-webkit-text-fill-color:#fff!important}.mulmocast-video::-webkit-media-controls-play-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-mute-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-overlay-play-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-fullscreen-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls{opacity:0;transition:opacity .3s}.mulmocast-video:hover::-webkit-media-controls{opacity:1}.mulmocast-audio::-webkit-media-controls-enclosure{background-color:#00000080!important;border-radius:0!important}.mulmocast-audio::-webkit-media-controls-current-time-display{-webkit-text-fill-color:#fff!important}.mulmocast-audio::-webkit-media-controls-time-remaining-display{-webkit-text-fill-color:#fff!important}.mulmocast-audio::-webkit-media-controls-play-button{filter:brightness(1.1)}.mulmocast-audio::-webkit-media-controls-mute-button{filter:brightness(1.1)}.mulmocast-audio::-webkit-media-controls{opacity:0;transition:opacity .3s}.mulmocast-audio:hover::-webkit-media-controls{opacity:1}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { defineComponent as R, ref as $, watch as _, onMounted as ae, computed as B, onUnmounted as ve, openBlock as i, createElementBlock as r, createElementVNode as e, normalizeClass as ne, createCommentVNode as k, toDisplayString as L, Fragment as D, renderList as Z, renderSlot as q, normalizeProps as oe, guardReactiveProps as me, createVNode as z, mergeProps as le, unref as fe, withDirectives as ge, createBlock as I, vShow as pe, withModifiers as he, resolveDynamicComponent as se, withCtx as ie } from "vue";
|
|
2
2
|
const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) => {
|
|
3
3
|
const o = (l) => l instanceof Error ? l : new Error("Aborted");
|
|
4
|
-
return new Promise((l,
|
|
4
|
+
return new Promise((l, h) => {
|
|
5
5
|
if (d.aborted) {
|
|
6
|
-
|
|
6
|
+
h(o(d.reason));
|
|
7
7
|
return;
|
|
8
8
|
}
|
|
9
|
-
const
|
|
10
|
-
clearTimeout(t),
|
|
9
|
+
const p = () => {
|
|
10
|
+
clearTimeout(t), h(o(d.reason));
|
|
11
11
|
}, t = setTimeout(() => {
|
|
12
|
-
d.removeEventListener("abort",
|
|
12
|
+
d.removeEventListener("abort", p), l();
|
|
13
13
|
}, a);
|
|
14
|
-
d.addEventListener("abort",
|
|
14
|
+
d.addEventListener("abort", p, { once: !0 });
|
|
15
15
|
});
|
|
16
16
|
}, xe = { class: "items-center justify-center w-full" }, be = {
|
|
17
17
|
key: 0,
|
|
@@ -89,9 +89,9 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
89
89
|
},
|
|
90
90
|
emits: ["play", "pause", "ended"],
|
|
91
91
|
setup(a, { expose: d, emit: o }) {
|
|
92
|
-
const l = a,
|
|
93
|
-
t.value && u.value && !isNaN(t.value.duration) && !isNaN(u.value.duration) && (
|
|
94
|
-
},
|
|
92
|
+
const l = a, h = o, p = $(), t = $(), u = $(), n = $(), v = $(!1), g = () => {
|
|
93
|
+
t.value && u.value && !isNaN(t.value.duration) && !isNaN(u.value.duration) && (v.value = u.value.duration > t.value.duration + 1);
|
|
94
|
+
}, m = () => {
|
|
95
95
|
if (t.value) {
|
|
96
96
|
if (l.soundEffectSource) {
|
|
97
97
|
t.value.volume = 1;
|
|
@@ -101,31 +101,31 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
101
101
|
}
|
|
102
102
|
}, x = () => {
|
|
103
103
|
const y = l.playbackSpeed ?? 1;
|
|
104
|
-
|
|
104
|
+
p.value && (p.value.playbackRate = y), t.value && (t.value.playbackRate = y), u.value && (u.value.playbackRate = y), n.value && (n.value.playbackRate = y);
|
|
105
105
|
};
|
|
106
106
|
_([() => l.currentLang, () => l.defaultLang, () => l.videoSource, () => l.audioSource], () => {
|
|
107
|
-
|
|
107
|
+
m();
|
|
108
108
|
}), _(
|
|
109
109
|
() => l.playbackSpeed,
|
|
110
110
|
() => {
|
|
111
111
|
x();
|
|
112
112
|
}
|
|
113
113
|
), _(t, (y) => {
|
|
114
|
-
y && (
|
|
115
|
-
}), _([
|
|
114
|
+
y && (m(), x());
|
|
115
|
+
}), _([p, u, n], () => {
|
|
116
116
|
x();
|
|
117
117
|
}), ae(() => {
|
|
118
|
-
|
|
118
|
+
m(), x();
|
|
119
119
|
});
|
|
120
|
-
const C = $(!1), b = $(!1), P = B(() =>
|
|
120
|
+
const C = $(!1), b = $(!1), P = B(() => f.value || b.value);
|
|
121
121
|
let w = null;
|
|
122
122
|
const V = () => {
|
|
123
123
|
w && (w.abort(), w = null);
|
|
124
124
|
}, W = () => {
|
|
125
|
-
|
|
126
|
-
})),
|
|
125
|
+
f.value = !0, u.value && t.value && !u.value.ended && (u.value.currentTime = t.value.currentTime, u.value.play().catch(() => {
|
|
126
|
+
})), h("play");
|
|
127
127
|
}, J = (y) => {
|
|
128
|
-
b.value || t.value?.ended && u.value && !u.value.ended || (document.hidden || (
|
|
128
|
+
b.value || t.value?.ended && u.value && !u.value.ended || (document.hidden || (f.value = !1), !t.value?.ended && u?.value && u.value?.pause(), j(y));
|
|
129
129
|
}, H = () => {
|
|
130
130
|
if (C.value) return;
|
|
131
131
|
(!u.value || u.value.ended) && U();
|
|
@@ -137,35 +137,35 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
137
137
|
const y = Math.min(u.value.currentTime, t.value.duration);
|
|
138
138
|
Math.abs(t.value.currentTime - y) > 0.5 && (t.value.currentTime = y);
|
|
139
139
|
}, K = () => {
|
|
140
|
-
|
|
141
|
-
}),
|
|
140
|
+
f.value = !0, t.value && !t.value.ended && t.value.play().catch(() => {
|
|
141
|
+
}), h("play");
|
|
142
142
|
}, E = () => {
|
|
143
|
-
b.value || u.value?.ended || (document.hidden || (
|
|
143
|
+
b.value || u.value?.ended || (document.hidden || (f.value = !1), t.value && !t.value.ended && t.value.pause(), h("pause"));
|
|
144
144
|
}, G = () => {
|
|
145
|
-
|
|
145
|
+
f.value = !0, h("play");
|
|
146
146
|
}, j = (y) => {
|
|
147
147
|
if (b.value) return;
|
|
148
|
-
document.hidden || (
|
|
148
|
+
document.hidden || (f.value = !1);
|
|
149
149
|
const c = y.target;
|
|
150
|
-
c.duration !== c.currentTime &&
|
|
150
|
+
c.duration !== c.currentTime && h("pause");
|
|
151
151
|
}, U = () => {
|
|
152
|
-
C.value || (C.value = !0,
|
|
152
|
+
C.value || (C.value = !0, f.value = !1, h("ended"));
|
|
153
153
|
}, s = () => {
|
|
154
|
-
|
|
155
|
-
},
|
|
154
|
+
p.value?.pause(), t.value?.pause(), u.value?.pause(), n.value?.pause();
|
|
155
|
+
}, f = $(!1);
|
|
156
156
|
let S = null;
|
|
157
157
|
const M = async () => {
|
|
158
|
-
if (b.value = !1, C.value = !1,
|
|
159
|
-
})), t.value && (
|
|
158
|
+
if (b.value = !1, C.value = !1, f.value = !0, p.value && (x(), p.value.play().catch(() => {
|
|
159
|
+
})), t.value && (m(), x(), t.value.play().catch(() => {
|
|
160
160
|
}), u.value && (u.value.currentTime = t.value.currentTime, u.value.play().catch(() => {
|
|
161
161
|
}))), n.value && (x(), n.value.play().catch(() => {
|
|
162
|
-
})), !
|
|
162
|
+
})), !p.value && !t.value && !n.value)
|
|
163
163
|
try {
|
|
164
|
-
V(), w = new AbortController(), await ye((l.duration ?? 0) * 1e3, w.signal), w = null, C.value || (
|
|
164
|
+
V(), w = new AbortController(), await ye((l.duration ?? 0) * 1e3, w.signal), w = null, C.value || (f.value = !1, C.value = !0, h("ended"));
|
|
165
165
|
} catch {
|
|
166
166
|
}
|
|
167
167
|
}, re = () => {
|
|
168
|
-
b.value = !0,
|
|
168
|
+
b.value = !0, f.value = !1, C.value = !0, V(), p.value?.pause(), t.value?.pause(), u.value?.pause(), n.value?.pause();
|
|
169
169
|
}, de = () => {
|
|
170
170
|
!u.value || !t.value || u.value.ended || Math.abs(u.value.currentTime - t.value.currentTime) > 0.5 && (u.value.currentTime = t.value.currentTime);
|
|
171
171
|
}, O = (y) => {
|
|
@@ -175,16 +175,16 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
175
175
|
c.paused && !c.ended && (y.ended || (c.currentTime = y.currentTime), c.play().catch(() => {
|
|
176
176
|
}));
|
|
177
177
|
}, ee = () => {
|
|
178
|
-
|
|
178
|
+
f.value && (O(p.value), t.value && u.value ? (O(t.value), ce(t.value, u.value)) : O(t.value), O(n.value));
|
|
179
179
|
}, te = () => {
|
|
180
|
-
document.hidden &&
|
|
180
|
+
document.hidden && f.value ? S || (S = setInterval(ee, 500)) : document.hidden || S && (clearInterval(S), S = null);
|
|
181
181
|
}, T = () => {
|
|
182
|
-
document.hidden &&
|
|
182
|
+
document.hidden && f.value && setTimeout(ee, 50);
|
|
183
183
|
};
|
|
184
184
|
return ae(() => {
|
|
185
|
-
document.addEventListener("visibilitychange", te),
|
|
185
|
+
document.addEventListener("visibilitychange", te), p.value?.addEventListener("pause", T), t.value?.addEventListener("pause", T), n.value?.addEventListener("pause", T), u.value?.addEventListener("pause", T);
|
|
186
186
|
}), ve(() => {
|
|
187
|
-
document.removeEventListener("visibilitychange", te),
|
|
187
|
+
document.removeEventListener("visibilitychange", te), p.value?.removeEventListener("pause", T), t.value?.removeEventListener("pause", T), n.value?.removeEventListener("pause", T), u.value?.removeEventListener("pause", T), S && (clearInterval(S), S = null), V();
|
|
188
188
|
}), d({
|
|
189
189
|
play: M,
|
|
190
190
|
stop: re
|
|
@@ -192,7 +192,7 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
192
192
|
a.videoWithAudioSource ? (i(), r("div", be, [
|
|
193
193
|
e("video", {
|
|
194
194
|
ref_key: "videoWithAudioRef",
|
|
195
|
-
ref:
|
|
195
|
+
ref: p,
|
|
196
196
|
src: a.videoWithAudioSource,
|
|
197
197
|
class: "mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",
|
|
198
198
|
controls: !0,
|
|
@@ -219,13 +219,13 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
219
219
|
ref: t,
|
|
220
220
|
class: "mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",
|
|
221
221
|
src: a.soundEffectSource || a.videoSource,
|
|
222
|
-
controls: !
|
|
222
|
+
controls: !v.value,
|
|
223
223
|
playsinline: "true",
|
|
224
224
|
onPlay: W,
|
|
225
225
|
onPause: J,
|
|
226
226
|
onEnded: H,
|
|
227
227
|
onSeeked: de,
|
|
228
|
-
onLoadedmetadata:
|
|
228
|
+
onLoadedmetadata: g
|
|
229
229
|
}, null, 40, Pe),
|
|
230
230
|
a.audioSource ? (i(), r("audio", {
|
|
231
231
|
key: 0,
|
|
@@ -233,12 +233,12 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
233
233
|
ref: u,
|
|
234
234
|
src: a.audioSource,
|
|
235
235
|
controls: !0,
|
|
236
|
-
class: ne(
|
|
236
|
+
class: ne(v.value ? "mulmocast-audio absolute bottom-0 left-0 w-full" : "hidden"),
|
|
237
237
|
onEnded: A,
|
|
238
238
|
onSeeked: F,
|
|
239
239
|
onPlay: K,
|
|
240
240
|
onPause: E,
|
|
241
|
-
onLoadedmetadata:
|
|
241
|
+
onLoadedmetadata: g
|
|
242
242
|
}, null, 42, Ce)) : k("", !0),
|
|
243
243
|
e("div", Ee, [
|
|
244
244
|
e("button", {
|
|
@@ -312,8 +312,8 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
312
312
|
}
|
|
313
313
|
}), ue = (a, d) => {
|
|
314
314
|
const o = a.__vccOpts || a;
|
|
315
|
-
for (const [l,
|
|
316
|
-
o[l] =
|
|
315
|
+
for (const [l, h] of d)
|
|
316
|
+
o[l] = h;
|
|
317
317
|
return o;
|
|
318
318
|
}, Y = /* @__PURE__ */ ue(Je, [["__scopeId", "data-v-843621f0"]]), Ke = ["value"], Qe = ["value"], N = /* @__PURE__ */ R({
|
|
319
319
|
__name: "select_language",
|
|
@@ -325,14 +325,14 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
325
325
|
const o = ["en", "ja"], l = {
|
|
326
326
|
en: "English",
|
|
327
327
|
ja: "日本語"
|
|
328
|
-
},
|
|
328
|
+
}, h = d, p = (t) => {
|
|
329
329
|
const u = t.target;
|
|
330
|
-
|
|
330
|
+
h("update:modelValue", u.value);
|
|
331
331
|
};
|
|
332
332
|
return (t, u) => (i(), r("select", {
|
|
333
333
|
value: a.modelValue,
|
|
334
334
|
class: "px-4 py-2 bg-white border-2 border-gray-300 rounded-lg shadow-sm hover:border-indigo-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 focus:outline-none transition-colors cursor-pointer text-base font-medium text-gray-700",
|
|
335
|
-
onChange:
|
|
335
|
+
onChange: p
|
|
336
336
|
}, [
|
|
337
337
|
(i(), r(D, null, Z(o, (n) => e("option", {
|
|
338
338
|
key: n,
|
|
@@ -358,18 +358,18 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
358
358
|
},
|
|
359
359
|
emits: ["updatedPage", "update:audioLang", "update:textLang", "allCompleted"],
|
|
360
360
|
setup(a, { expose: d, emit: o }) {
|
|
361
|
-
const l = a,
|
|
361
|
+
const l = a, h = o, p = l.dataSet?.beats?.length ?? 0, t = $(l.initPage ?? 0), u = $(!0), n = $(), v = $(), g = B({
|
|
362
362
|
get: () => l.audioLang,
|
|
363
|
-
set: (s) =>
|
|
364
|
-
}),
|
|
363
|
+
set: (s) => h("update:audioLang", s || "en")
|
|
364
|
+
}), m = B({
|
|
365
365
|
get: () => l.textLang,
|
|
366
|
-
set: (s) =>
|
|
366
|
+
set: (s) => h("update:textLang", s || "en")
|
|
367
367
|
});
|
|
368
368
|
let x = 0;
|
|
369
369
|
_(
|
|
370
370
|
() => l.audioLang,
|
|
371
|
-
async (s,
|
|
372
|
-
if (s !==
|
|
371
|
+
async (s, f) => {
|
|
372
|
+
if (s !== f && w.value) {
|
|
373
373
|
x++;
|
|
374
374
|
const S = x;
|
|
375
375
|
if (n.value?.stop(), await X(500), S !== x) return;
|
|
@@ -378,16 +378,16 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
378
378
|
}
|
|
379
379
|
), _(
|
|
380
380
|
() => l.textLang,
|
|
381
|
-
async (s,
|
|
382
|
-
s !==
|
|
381
|
+
async (s, f) => {
|
|
382
|
+
s !== f && w.value && (await X(100), n.value && await n.value.play());
|
|
383
383
|
}
|
|
384
|
-
), _(
|
|
384
|
+
), _(v, (s) => {
|
|
385
385
|
s && (s.volume = 0.3);
|
|
386
386
|
});
|
|
387
387
|
const C = B(() => l.dataSet?.beats[t.value]), b = (s) => s ? l.basePath + "/" + s : "", P = B(() => b(l.dataSet?.bgmSource)), w = $(!1), V = () => {
|
|
388
|
-
w.value = !0,
|
|
388
|
+
w.value = !0, v.value && (v.value.volume = 0.3, v.value.play());
|
|
389
389
|
}, W = () => {
|
|
390
|
-
w.value = !1,
|
|
390
|
+
w.value = !1, v.value && v.value.pause();
|
|
391
391
|
}, J = async () => {
|
|
392
392
|
x++;
|
|
393
393
|
const s = x;
|
|
@@ -395,53 +395,53 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
395
395
|
}, H = (s) => {
|
|
396
396
|
t.value !== s && (t.value = s, w.value && u.value && J());
|
|
397
397
|
}, A = (s) => {
|
|
398
|
-
const
|
|
399
|
-
return
|
|
398
|
+
const f = t.value + s;
|
|
399
|
+
return f > -1 && f < p ? (H(f), h("updatedPage", f), !0) : !1;
|
|
400
400
|
}, F = () => {
|
|
401
|
-
u.value && A(1) || (w.value = !1,
|
|
401
|
+
u.value && A(1) || (w.value = !1, v.value && v.value.pause(), h("allCompleted"));
|
|
402
402
|
}, K = {
|
|
403
403
|
onPlay: V,
|
|
404
404
|
onPause: W,
|
|
405
405
|
onEnded: F
|
|
406
406
|
}, E = B(() => {
|
|
407
|
-
const s = C.value,
|
|
407
|
+
const s = C.value, f = s?.audioSources?.[g.value], S = s?.multiLinguals?.[m.value] ?? s?.text ?? "", M = l.dataSet?.lang ? s?.multiLinguals?.[l.dataSet.lang] ?? s?.text ?? "" : "";
|
|
408
408
|
return {
|
|
409
409
|
videoWithAudioSource: b(s?.videoWithAudioSource),
|
|
410
410
|
videoSource: b(s?.videoSource),
|
|
411
411
|
soundEffectSource: b(s?.soundEffectSource),
|
|
412
|
-
audioSource: b(
|
|
412
|
+
audioSource: b(f),
|
|
413
413
|
imageSource: b(s?.imageSource),
|
|
414
414
|
index: t.value,
|
|
415
415
|
text: S,
|
|
416
416
|
originalText: M,
|
|
417
417
|
duration: s?.duration,
|
|
418
418
|
defaultLang: l.dataSet?.lang,
|
|
419
|
-
currentLang:
|
|
419
|
+
currentLang: g.value,
|
|
420
420
|
playbackSpeed: l.playbackSpeed,
|
|
421
421
|
...K
|
|
422
422
|
};
|
|
423
423
|
}), G = B(() => l.dataSet?.beats[t.value + 1]), j = B(() => {
|
|
424
|
-
if (t.value + 1 >=
|
|
424
|
+
if (t.value + 1 >= p) return null;
|
|
425
425
|
const s = G.value;
|
|
426
426
|
return {
|
|
427
427
|
videoWithAudioSource: b(s?.videoWithAudioSource),
|
|
428
428
|
videoSource: b(s?.videoSource),
|
|
429
429
|
soundEffectSource: b(s?.soundEffectSource),
|
|
430
|
-
audioSource: b(s?.audioSources?.[
|
|
430
|
+
audioSource: b(s?.audioSources?.[g.value]),
|
|
431
431
|
imageSource: b(s?.imageSource),
|
|
432
432
|
index: t.value + 1,
|
|
433
|
-
text: s?.multiLinguals?.[
|
|
433
|
+
text: s?.multiLinguals?.[m.value] ?? s?.text ?? "",
|
|
434
434
|
duration: s?.duration
|
|
435
435
|
};
|
|
436
436
|
}), U = B(() => ({
|
|
437
437
|
MulmoPlayer: Y,
|
|
438
438
|
pageProps: E.value,
|
|
439
439
|
currentPage: t.value,
|
|
440
|
-
pageCount:
|
|
440
|
+
pageCount: p,
|
|
441
441
|
pageMove: A,
|
|
442
442
|
isPlaying: w.value,
|
|
443
|
-
audioLang:
|
|
444
|
-
textLang:
|
|
443
|
+
audioLang: g,
|
|
444
|
+
textLang: m,
|
|
445
445
|
SelectLanguage: N,
|
|
446
446
|
mediaPlayerRef: n,
|
|
447
447
|
// Event handlers for direct access
|
|
@@ -451,7 +451,7 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
451
451
|
}));
|
|
452
452
|
return d({
|
|
453
453
|
updatePage: H
|
|
454
|
-
}), (s,
|
|
454
|
+
}), (s, f) => (i(), r(D, null, [
|
|
455
455
|
q(s.$slots, "default", oe(me(U.value)), () => [
|
|
456
456
|
e("div", Xe, [
|
|
457
457
|
e("div", Ye, [
|
|
@@ -459,7 +459,7 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
459
459
|
e("button", {
|
|
460
460
|
class: "col-start-1 row-start-1 justify-self-start w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:row-start-2",
|
|
461
461
|
disabled: t.value === 0,
|
|
462
|
-
onClick:
|
|
462
|
+
onClick: f[0] || (f[0] = (S) => A(-1))
|
|
463
463
|
}, " Prev ", 8, Ie),
|
|
464
464
|
e("div", et, [
|
|
465
465
|
z(Y, le({
|
|
@@ -469,8 +469,8 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
469
469
|
]),
|
|
470
470
|
e("button", {
|
|
471
471
|
class: "col-start-3 row-start-1 justify-self-end w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:col-start-2 max-sm:row-start-2",
|
|
472
|
-
disabled: t.value >= fe(
|
|
473
|
-
onClick:
|
|
472
|
+
disabled: t.value >= fe(p) - 1,
|
|
473
|
+
onClick: f[1] || (f[1] = (S) => A(1))
|
|
474
474
|
}, " Next ", 8, tt),
|
|
475
475
|
E.value.text ? (i(), r("div", at, [
|
|
476
476
|
e("p", ot, L(E.value.text), 1),
|
|
@@ -486,12 +486,12 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
486
486
|
P.value ? (i(), r("audio", {
|
|
487
487
|
key: 1,
|
|
488
488
|
ref_key: "bgmRef",
|
|
489
|
-
ref:
|
|
489
|
+
ref: v,
|
|
490
490
|
src: P.value
|
|
491
491
|
}, null, 8, nt)) : k("", !0)
|
|
492
492
|
], 64));
|
|
493
493
|
}
|
|
494
|
-
}), Rt = /* @__PURE__ */ ue(st, [["__scopeId", "data-v-
|
|
494
|
+
}), Rt = /* @__PURE__ */ ue(st, [["__scopeId", "data-v-46289647"]]), it = { class: "container mx-auto px-4 py-2 sm:py-4" }, ut = { class: "flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2 sm:gap-4" }, rt = { class: "flex items-center gap-4 flex-wrap" }, dt = { class: "flex items-center gap-2 sm:gap-4 flex-wrap w-full sm:w-auto" }, ct = {
|
|
495
495
|
key: 0,
|
|
496
496
|
class: "hidden sm:flex items-center gap-3"
|
|
497
497
|
}, vt = ["value"], mt = {
|
|
@@ -629,34 +629,34 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
629
629
|
},
|
|
630
630
|
emits: ["beat-click"],
|
|
631
631
|
setup(a, { emit: d }) {
|
|
632
|
-
const o = a, l = d,
|
|
633
|
-
const
|
|
634
|
-
return
|
|
635
|
-
},
|
|
636
|
-
o.linkComponent === "a" && o.linkUrlBuilder &&
|
|
632
|
+
const o = a, l = d, h = (n) => {
|
|
633
|
+
const v = Math.floor(n / 3600), g = Math.floor(n % 3600 / 60), m = Math.floor(n % 60);
|
|
634
|
+
return v > 0 ? `${v}:${g.toString().padStart(2, "0")}:${m.toString().padStart(2, "0")}` : `${g}:${m.toString().padStart(2, "0")}`;
|
|
635
|
+
}, p = (n) => n.multiLinguals?.[o.textLang] || n.text || "No text available", t = (n, v) => n.imageSource ? `${o.basePath}/${n.imageSource}` : `${o.basePath}/${v + 1}.jpg`, u = (n, v) => {
|
|
636
|
+
o.linkComponent === "a" && o.linkUrlBuilder && v.preventDefault(), l("beat-click", n);
|
|
637
637
|
};
|
|
638
|
-
return (n,
|
|
639
|
-
(i(!0), r(D, null, Z(a.beats, ({ beat:
|
|
640
|
-
key:
|
|
641
|
-
to: a.linkUrlBuilder ? a.linkUrlBuilder(
|
|
642
|
-
href: a.linkUrlBuilder ? a.linkUrlBuilder(
|
|
638
|
+
return (n, v) => (i(), r("div", bt, [
|
|
639
|
+
(i(!0), r(D, null, Z(a.beats, ({ beat: g, originalIndex: m }) => (i(), I(se(a.linkComponent), {
|
|
640
|
+
key: m,
|
|
641
|
+
to: a.linkUrlBuilder ? a.linkUrlBuilder(m) : void 0,
|
|
642
|
+
href: a.linkUrlBuilder ? a.linkUrlBuilder(m) : void 0,
|
|
643
643
|
class: "group block bg-white rounded-lg shadow-md hover:shadow-xl transition-shadow duration-300 overflow-hidden",
|
|
644
|
-
onClick: (x) => u(
|
|
644
|
+
onClick: (x) => u(m, x)
|
|
645
645
|
}, {
|
|
646
646
|
default: ie(() => [
|
|
647
647
|
e("div", kt, [
|
|
648
648
|
e("img", {
|
|
649
|
-
src: t(
|
|
650
|
-
alt: `Beat ${
|
|
649
|
+
src: t(g, m),
|
|
650
|
+
alt: `Beat ${m + 1}`,
|
|
651
651
|
class: "w-full h-full object-cover"
|
|
652
652
|
}, null, 8, wt),
|
|
653
|
-
e("div", St, L(
|
|
653
|
+
e("div", St, L(m + 1), 1)
|
|
654
654
|
]),
|
|
655
655
|
e("div", $t, [
|
|
656
|
-
e("p", Lt, L(g
|
|
656
|
+
e("p", Lt, L(p(g)), 1),
|
|
657
657
|
e("div", Pt, [
|
|
658
|
-
|
|
659
|
-
|
|
658
|
+
g.startTime !== void 0 ? (i(), r("p", Ct, "Start: " + L(h(g.startTime)), 1)) : k("", !0),
|
|
659
|
+
g.duration ? (i(), r("p", Et, "Duration: " + L(h(g.duration)), 1)) : k("", !0)
|
|
660
660
|
])
|
|
661
661
|
])
|
|
662
662
|
]),
|
|
@@ -681,40 +681,40 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
|
|
|
681
681
|
},
|
|
682
682
|
emits: ["beat-click"],
|
|
683
683
|
setup(a, { emit: d }) {
|
|
684
|
-
const o = a, l = d,
|
|
685
|
-
const
|
|
686
|
-
return
|
|
687
|
-
},
|
|
688
|
-
o.linkComponent === "a" && o.linkUrlBuilder &&
|
|
684
|
+
const o = a, l = d, h = (n) => {
|
|
685
|
+
const v = Math.floor(n / 3600), g = Math.floor(n % 3600 / 60), m = Math.floor(n % 60);
|
|
686
|
+
return v > 0 ? `${v}:${g.toString().padStart(2, "0")}:${m.toString().padStart(2, "0")}` : `${g}:${m.toString().padStart(2, "0")}`;
|
|
687
|
+
}, p = (n) => n.multiLinguals?.[o.textLang] || n.text || "No text available", t = (n, v) => n.imageSource ? `${o.basePath}/${n.imageSource}` : `${o.basePath}/${v + 1}.jpg`, u = (n, v) => {
|
|
688
|
+
o.linkComponent === "a" && o.linkUrlBuilder && v.preventDefault(), l("beat-click", n);
|
|
689
689
|
};
|
|
690
|
-
return (n,
|
|
691
|
-
(i(!0), r(D, null, Z(a.beats, ({ beat:
|
|
692
|
-
id: `beat-${
|
|
693
|
-
key:
|
|
690
|
+
return (n, v) => (i(), r("div", Bt, [
|
|
691
|
+
(i(!0), r(D, null, Z(a.beats, ({ beat: g, originalIndex: m }) => (i(), r("div", {
|
|
692
|
+
id: `beat-${m}`,
|
|
693
|
+
key: m,
|
|
694
694
|
class: "bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow"
|
|
695
695
|
}, [
|
|
696
696
|
(i(), I(se(a.linkComponent), {
|
|
697
|
-
to: a.linkUrlBuilder ? a.linkUrlBuilder(
|
|
698
|
-
href: a.linkUrlBuilder ? a.linkUrlBuilder(
|
|
697
|
+
to: a.linkUrlBuilder ? a.linkUrlBuilder(m) : void 0,
|
|
698
|
+
href: a.linkUrlBuilder ? a.linkUrlBuilder(m) : void 0,
|
|
699
699
|
class: "float-left mr-4 mb-2 w-64 flex-shrink-0",
|
|
700
|
-
onClick: (x) => u(
|
|
700
|
+
onClick: (x) => u(m, x)
|
|
701
701
|
}, {
|
|
702
702
|
default: ie(() => [
|
|
703
703
|
e("div", Mt, [
|
|
704
|
-
e("span", _t, " #" + L(
|
|
705
|
-
|
|
706
|
-
|
|
704
|
+
e("span", _t, " #" + L(m + 1), 1),
|
|
705
|
+
g.startTime !== void 0 ? (i(), r("span", Vt, " Start: " + L(h(g.startTime)), 1)) : k("", !0),
|
|
706
|
+
g.duration ? (i(), r("span", At, " Duration: " + L(h(g.duration)), 1)) : k("", !0)
|
|
707
707
|
]),
|
|
708
708
|
e("img", {
|
|
709
|
-
src: t(
|
|
710
|
-
alt: `Beat ${
|
|
709
|
+
src: t(g, m),
|
|
710
|
+
alt: `Beat ${m + 1}`,
|
|
711
711
|
class: "w-full h-auto object-cover rounded-lg hover:opacity-80 transition-opacity shadow-sm"
|
|
712
712
|
}, null, 8, jt)
|
|
713
713
|
]),
|
|
714
714
|
_: 2
|
|
715
715
|
}, 1032, ["to", "href", "onClick"])),
|
|
716
|
-
e("p", Ut, L(g
|
|
717
|
-
|
|
716
|
+
e("p", Ut, L(p(g)), 1),
|
|
717
|
+
v[0] || (v[0] = e("div", { class: "clear-both" }, null, -1))
|
|
718
718
|
], 8, Tt))), 128))
|
|
719
719
|
]));
|
|
720
720
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(b,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(b=typeof globalThis<"u"?globalThis:b||self,e(b.MulmoCastViewer={},b.Vue))})(this,(function(b,e){"use strict";const j=async o=>await new Promise(r=>setTimeout(r,o)),O=(o,r)=>{const a=l=>l instanceof Error?l:new Error("Aborted");return new Promise((l,p)=>{if(r.aborted){p(a(r.reason));return}const f=()=>{clearTimeout(t),p(a(r.reason))},t=setTimeout(()=>{r.removeEventListener("abort",f),l()},o);r.addEventListener("abort",f,{once:!0})})},q={class:"items-center justify-center w-full"},J={key:0,class:"group relative"},K=["src"],Q={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},X={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},Y={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},Z={key:1,class:"group relative inline-block"},I=["src","controls"],ee=["src"],te={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},oe={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},ae={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},le={key:2,class:"group relative inline-block"},ne=["src"],se=["src"],ie={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},re={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},de={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},ce={key:3,class:"group relative inline-block"},ue=["src"],me={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},fe={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},pe={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},ge={key:4},ye={key:5,class:"mt-4 px-6 py-4 text-left"},he={class:"text-lg leading-relaxed font-sans text-gray-800"},ke={key:0,class:"text-base leading-relaxed font-sans text-gray-400 mt-3 italic"},xe="https://github.com/receptron/mulmocast-cli/blob/main/assets/images/mulmocast_credit.png?raw=true",ve=e.defineComponent({__name:"mulmo_player",props:{index:{},videoWithAudioSource:{default:void 0},soundEffectSource:{default:void 0},videoSource:{default:void 0},imageSource:{default:void 0},audioSource:{default:void 0},text:{default:void 0},originalText:{default:void 0},duration:{default:void 0},defaultLang:{default:void 0},currentLang:{default:void 0},playbackSpeed:{default:1}},emits:["play","pause","ended"],setup(o,{expose:r,emit:a}){const l=o,p=a,f=e.ref(),t=e.ref(),i=e.ref(),n=e.ref(),m=e.ref(!1),g=()=>{t.value&&i.value&&!isNaN(t.value.duration)&&!isNaN(i.value.duration)&&(m.value=i.value.duration>t.value.duration+1)},c=()=>{if(t.value){if(l.soundEffectSource){t.value.volume=1;return}l.videoSource&&(l.audioSource&&l.currentLang&&l.defaultLang&&l.currentLang!==l.defaultLang?t.value.volume=.2:t.value.volume=0)}},h=()=>{const y=l.playbackSpeed??1;f.value&&(f.value.playbackRate=y),t.value&&(t.value.playbackRate=y),i.value&&(i.value.playbackRate=y),n.value&&(n.value.playbackRate=y)};e.watch([()=>l.currentLang,()=>l.defaultLang,()=>l.videoSource,()=>l.audioSource],()=>{c()}),e.watch(()=>l.playbackSpeed,()=>{h()}),e.watch(t,y=>{y&&(c(),h())}),e.watch([f,i,n],()=>{h()}),e.onMounted(()=>{c(),h()});const w=e.ref(!1),k=e.ref(!1),E=e.computed(()=>u.value||k.value);let x=null;const $=()=>{x&&(x.abort(),x=null)},T=()=>{u.value=!0,i.value&&t.value&&!i.value.ended&&(i.value.currentTime=t.value.currentTime,i.value.play().catch(()=>{})),p("play")},z=y=>{k.value||t.value?.ended&&i.value&&!i.value.ended||(document.hidden||(u.value=!1),!t.value?.ended&&i?.value&&i.value?.pause(),L(y))},M=()=>{if(w.value)return;(!i.value||i.value.ended)&&P()},C=()=>{if(w.value)return;(!t.value||t.value.ended)&&P()},_=()=>{if(!t.value||!i.value)return;const y=Math.min(i.value.currentTime,t.value.duration);Math.abs(t.value.currentTime-y)>.5&&(t.value.currentTime=y)},R=()=>{u.value=!0,t.value&&!t.value.ended&&t.value.play().catch(()=>{}),p("play")},S=()=>{k.value||i.value?.ended||(document.hidden||(u.value=!1),t.value&&!t.value.ended&&t.value.pause(),p("pause"))},D=()=>{u.value=!0,p("play")},L=y=>{if(k.value)return;document.hidden||(u.value=!1);const d=y.target;d.duration!==d.currentTime&&p("pause")},P=()=>{w.value||(w.value=!0,u.value=!1,p("ended"))},s=()=>{f.value?.pause(),t.value?.pause(),i.value?.pause(),n.value?.pause()},u=e.ref(!1);let v=null;const V=async()=>{if(k.value=!1,w.value=!1,u.value=!0,f.value&&(h(),f.value.play().catch(()=>{})),t.value&&(c(),h(),t.value.play().catch(()=>{}),i.value&&(i.value.currentTime=t.value.currentTime,i.value.play().catch(()=>{}))),n.value&&(h(),n.value.play().catch(()=>{})),!f.value&&!t.value&&!n.value)try{$(),x=new AbortController,await O((l.duration??0)*1e3,x.signal),x=null,w.value||(u.value=!1,w.value=!0,p("ended"))}catch{}},ft=()=>{k.value=!0,u.value=!1,w.value=!0,$(),f.value?.pause(),t.value?.pause(),i.value?.pause(),n.value?.pause()},pt=()=>{!i.value||!t.value||i.value.ended||Math.abs(i.value.currentTime-t.value.currentTime)>.5&&(i.value.currentTime=t.value.currentTime)},A=y=>{y?.paused&&!y.ended&&y.play().catch(()=>{})},gt=(y,d)=>{d.paused&&!d.ended&&(y.ended||(d.currentTime=y.currentTime),d.play().catch(()=>{}))},H=()=>{u.value&&(A(f.value),t.value&&i.value?(A(t.value),gt(t.value,i.value)):A(t.value),A(n.value))},G=()=>{document.hidden&&u.value?v||(v=setInterval(H,500)):document.hidden||v&&(clearInterval(v),v=null)},B=()=>{document.hidden&&u.value&&setTimeout(H,50)};return e.onMounted(()=>{document.addEventListener("visibilitychange",G),f.value?.addEventListener("pause",B),t.value?.addEventListener("pause",B),n.value?.addEventListener("pause",B),i.value?.addEventListener("pause",B)}),e.onUnmounted(()=>{document.removeEventListener("visibilitychange",G),f.value?.removeEventListener("pause",B),t.value?.removeEventListener("pause",B),n.value?.removeEventListener("pause",B),i.value?.removeEventListener("pause",B),v&&(clearInterval(v),v=null),$()}),r({play:V,stop:ft}),(y,d)=>(e.openBlock(),e.createElementBlock("div",q,[o.videoWithAudioSource?(e.openBlock(),e.createElementBlock("div",J,[e.createElementVNode("video",{ref_key:"videoWithAudioRef",ref:f,src:o.videoWithAudioSource,class:"mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",controls:!0,playsinline:"true",onPlay:D,onPause:L,onEnded:P},null,40,K),e.createElementVNode("div",Q,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[0]||(d[0]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",Y,[...d[5]||(d[5]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",X,[...d[4]||(d[4]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.soundEffectSource||o.videoSource?(e.openBlock(),e.createElementBlock("div",Z,[e.createElementVNode("video",{ref_key:"videoRef",ref:t,class:"mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",src:o.soundEffectSource||o.videoSource,controls:!m.value,playsinline:"true",onPlay:T,onPause:z,onEnded:M,onSeeked:pt,onLoadedmetadata:g},null,40,I),o.audioSource?(e.openBlock(),e.createElementBlock("audio",{key:0,ref_key:"audioSyncRef",ref:i,src:o.audioSource,controls:!0,class:e.normalizeClass(m.value?"mulmocast-audio absolute bottom-0 left-0 w-full":"hidden"),onEnded:C,onSeeked:_,onPlay:R,onPause:S,onLoadedmetadata:g},null,42,ee)):e.createCommentVNode("",!0),e.createElementVNode("div",te,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[1]||(d[1]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",ae,[...d[7]||(d[7]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",oe,[...d[6]||(d[6]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.audioSource?(e.openBlock(),e.createElementBlock("div",le,[o.imageSource?(e.openBlock(),e.createElementBlock("img",{key:0,src:o.imageSource,class:"mx-auto h-auto max-h-[80vh] w-auto object-contain",alt:"Background"},null,8,ne)):(e.openBlock(),e.createElementBlock("img",{key:1,src:xe,class:"mx-auto h-auto max-h-[80vh] w-auto object-contain",alt:"Background"})),e.createElementVNode("audio",{ref_key:"audioRef",ref:n,class:"mulmocast-audio absolute inset-0 w-full h-full",src:o.audioSource,controls:!0,onPlay:D,onPause:L,onEnded:P},null,40,se),e.createElementVNode("div",ie,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[2]||(d[2]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",de,[...d[9]||(d[9]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",re,[...d[8]||(d[8]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.imageSource?(e.openBlock(),e.createElementBlock("div",ce,[e.createElementVNode("img",{src:o.imageSource,class:"max-w-full max-h-full object-contain"},null,8,ue),e.createElementVNode("div",me,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[3]||(d[3]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",pe,[...d[11]||(d[11]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",fe,[...d[10]||(d[10]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):(e.openBlock(),e.createElementBlock("div",ge,"No media available")),o.text?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("p",he,e.toDisplayString(o.text),1),o.originalText&&o.originalText!==o.text?(e.openBlock(),e.createElementBlock("p",ke,e.toDisplayString(o.originalText),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),W=(o,r)=>{const a=o.__vccOpts||o;for(const[l,p]of r)a[l]=p;return a},U=W(ve,[["__scopeId","data-v-843621f0"]]),be=["value"],Ee=["value"],N=e.defineComponent({__name:"select_language",props:{modelValue:{}},emits:["update:modelValue"],setup(o,{emit:r}){const a=["en","ja"],l={en:"English",ja:"日本語"},p=r,f=t=>{const i=t.target;p("update:modelValue",i.value)};return(t,i)=>(e.openBlock(),e.createElementBlock("select",{value:o.modelValue,class:"px-4 py-2 bg-white border-2 border-gray-300 rounded-lg shadow-sm hover:border-indigo-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 focus:outline-none transition-colors cursor-pointer text-base font-medium text-gray-700",onChange:f},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,n=>e.createElementVNode("option",{key:n,value:n},e.toDisplayString(l[n]||n),9,Ee)),64))],40,be))}}),we={class:"w-full overflow-hidden"},Se={class:"max-w-7xl mx-auto px-4"},Be={class:"grid grid-cols-[auto,1fr,auto] gap-x-4 gap-y-4 max-sm:grid-cols-2"},Ve=["disabled"],Ne={class:"col-start-2 row-start-1 min-w-0 max-sm:col-span-2 max-sm:col-start-1"},$e=["disabled"],Ce={key:0,class:"mulmo-text-box col-start-2 row-start-2 min-w-0 mt-1 rounded-lg px-6 py-4 text-left max-sm:col-span-2 max-sm:col-start-1 max-sm:row-start-3"},Le={class:"mulmo-text-primary text-lg leading-relaxed font-sans"},Pe={key:0,class:"mulmo-text-secondary text-base leading-relaxed font-sans mt-3 italic"},Te=["src"],Me=W(e.defineComponent({__name:"mulmo_viewer",props:{dataSet:{default:void 0},basePath:{},initPage:{default:void 0},audioLang:{default:"en"},textLang:{default:"en"},playbackSpeed:{default:1}},emits:["updatedPage","update:audioLang","update:textLang","allCompleted"],setup(o,{expose:r,emit:a}){const l=o,p=a,f=l.dataSet?.beats?.length??0,t=e.ref(l.initPage??0),i=e.ref(!0),n=e.ref(),m=e.ref(),g=e.computed({get:()=>l.audioLang,set:s=>p("update:audioLang",s||"en")}),c=e.computed({get:()=>l.textLang,set:s=>p("update:textLang",s||"en")});let h=0;e.watch(()=>l.audioLang,async(s,u)=>{if(s!==u&&x.value){h++;const v=h;if(n.value?.stop(),await j(500),v!==h)return;n.value&&(x.value=!0,await n.value.play())}}),e.watch(()=>l.textLang,async(s,u)=>{s!==u&&x.value&&(await j(100),n.value&&await n.value.play())}),e.watch(m,s=>{s&&(s.volume=.3)});const w=e.computed(()=>l.dataSet?.beats[t.value]),k=s=>s?l.basePath+"/"+s:"",E=e.computed(()=>k(l.dataSet?.bgmSource)),x=e.ref(!1),$=()=>{x.value=!0,m.value&&(m.value.volume=.3,m.value.play())},T=()=>{x.value=!1,m.value&&m.value.pause()},z=async()=>{h++;const s=h;n.value?.stop(),await j(500),s===h&&n.value&&n.value.play()},M=s=>{t.value!==s&&(t.value=s,x.value&&i.value&&z())},C=s=>{const u=t.value+s;return u>-1&&u<f?(M(u),p("updatedPage",u),!0):!1},_=()=>{i.value&&C(1)||(x.value=!1,m.value&&m.value.pause(),p("allCompleted"))},R={onPlay:$,onPause:T,onEnded:_},S=e.computed(()=>{const s=w.value,u=s?.audioSources?.[g.value],v=s?.multiLinguals?.[c.value]??s?.text??"",V=l.dataSet?.lang?s?.multiLinguals?.[l.dataSet.lang]??s?.text??"":"";return{videoWithAudioSource:k(s?.videoWithAudioSource),videoSource:k(s?.videoSource),soundEffectSource:k(s?.soundEffectSource),audioSource:k(u),imageSource:k(s?.imageSource),index:t.value,text:v,originalText:V,duration:s?.duration,defaultLang:l.dataSet?.lang,currentLang:g.value,playbackSpeed:l.playbackSpeed,...R}}),D=e.computed(()=>l.dataSet?.beats[t.value+1]),L=e.computed(()=>{if(t.value+1>=f)return null;const s=D.value;return{videoWithAudioSource:k(s?.videoWithAudioSource),videoSource:k(s?.videoSource),soundEffectSource:k(s?.soundEffectSource),audioSource:k(s?.audioSources?.[g.value]),imageSource:k(s?.imageSource),index:t.value+1,text:s?.multiLinguals?.[c.value]??s?.text??"",duration:s?.duration}}),P=e.computed(()=>({MulmoPlayer:U,pageProps:S.value,currentPage:t.value,pageCount:f,pageMove:C,isPlaying:x.value,audioLang:g,textLang:c,SelectLanguage:N,mediaPlayerRef:n,handlePlay:$,handlePause:T,handleEnded:_}));return r({updatePage:M}),(s,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(s.$slots,"default",e.normalizeProps(e.guardReactiveProps(P.value)),()=>[e.createElementVNode("div",we,[e.createElementVNode("div",Se,[e.createElementVNode("div",Be,[e.createElementVNode("button",{class:"col-start-1 row-start-1 justify-self-start w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:row-start-2",disabled:t.value===0,onClick:u[0]||(u[0]=v=>C(-1))}," Prev ",8,Ve),e.createElementVNode("div",Ne,[e.createVNode(U,e.mergeProps({ref_key:"mediaPlayer",ref:n},{...S.value,text:"",originalText:""}),null,16)]),e.createElementVNode("button",{class:"col-start-3 row-start-1 justify-self-end w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:col-start-2 max-sm:row-start-2",disabled:t.value>=e.unref(f)-1,onClick:u[1]||(u[1]=v=>C(1))}," Next ",8,$e),S.value.text?(e.openBlock(),e.createElementBlock("div",Ce,[e.createElementVNode("p",Le,e.toDisplayString(S.value.text),1),S.value.originalText&&S.value.originalText!==S.value.text?(e.openBlock(),e.createElementBlock("p",Pe,e.toDisplayString(S.value.originalText),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])])],!0),L.value?e.withDirectives((e.openBlock(),e.createBlock(U,e.normalizeProps(e.mergeProps({key:0},L.value)),null,16)),[[e.vShow,!1]]):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock("audio",{key:1,ref_key:"bgmRef",ref:m,src:E.value},null,8,Te)):e.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-fdffe885"]]),_e={class:"container mx-auto px-4 py-2 sm:py-4"},De={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2 sm:gap-4"},Ae={class:"flex items-center gap-4 flex-wrap"},je={class:"flex items-center gap-2 sm:gap-4 flex-wrap w-full sm:w-auto"},Ue={key:0,class:"hidden sm:flex items-center gap-3"},ze=["value"],Re={key:1,class:"hidden sm:flex items-center gap-3"},Fe={class:"hidden sm:flex items-center gap-3"},We={class:"flex items-center justify-between mb-4"},He={key:0,class:"space-y-2"},Ge=["value"],Oe={key:1,class:"space-y-2"},qe={class:"space-y-2"},Je=e.defineComponent({__name:"mulmo_viewer_header",props:{audioLang:{},textLang:{},playbackSpeed:{default:1},showSpeedControl:{type:Boolean,default:!0},showAudioLang:{type:Boolean,default:!0},hideDesktopControls:{type:Boolean,default:!1},showMobileSettings:{type:Boolean,default:!1},sticky:{type:Boolean,default:!1}},emits:["update:audioLang","update:textLang","update:playbackSpeed","update:showMobileSettings"],setup(o){return(r,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["bg-white shadow-md border-b border-gray-200",{"sticky top-0 z-50":o.sticky}])},[e.createElementVNode("div",_e,[e.createElementVNode("div",De,[e.createElementVNode("div",Ae,[e.renderSlot(r.$slots,"left")]),e.createElementVNode("div",je,[e.renderSlot(r.$slots,"actions"),o.hideDesktopControls?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.showSpeedControl?(e.openBlock(),e.createElementBlock("div",Ue,[a[11]||(a[11]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Speed:",-1)),e.createElementVNode("select",{value:o.playbackSpeed,class:"px-3 py-2 border border-gray-300 rounded-lg bg-white text-gray-700 font-medium shadow-sm hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 transition-colors",onChange:a[0]||(a[0]=l=>r.$emit("update:playbackSpeed",Number(l.target.value)))},[...a[10]||(a[10]=[e.createElementVNode("option",{value:1},"1x",-1),e.createElementVNode("option",{value:1.25},"1.25x",-1),e.createElementVNode("option",{value:1.5},"1.5x",-1),e.createElementVNode("option",{value:1.75},"1.75x",-1),e.createElementVNode("option",{value:2},"2x",-1)])],40,ze)])):e.createCommentVNode("",!0),o.showAudioLang?(e.openBlock(),e.createElementBlock("div",Re,[a[12]||(a[12]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Audio:",-1)),e.createVNode(N,{"model-value":o.audioLang,"onUpdate:modelValue":a[1]||(a[1]=l=>r.$emit("update:audioLang",l))},null,8,["model-value"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Fe,[a[13]||(a[13]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Text:",-1)),e.createVNode(N,{"model-value":o.textLang,"onUpdate:modelValue":a[2]||(a[2]=l=>r.$emit("update:textLang",l))},null,8,["model-value"])])],64)),e.renderSlot(r.$slots,"mobile-actions")])])])],2),o.showMobileSettings?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 z-50 sm:hidden",onClick:a[9]||(a[9]=l=>r.$emit("update:showMobileSettings",!1))},[e.createElementVNode("div",{class:"absolute bottom-0 left-0 right-0 bg-white rounded-t-2xl shadow-xl p-6 space-y-4",onClick:a[8]||(a[8]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",We,[a[14]||(a[14]=e.createElementVNode("h2",{class:"text-xl font-bold text-gray-800"},"Settings",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-gray-700 text-2xl",onClick:a[3]||(a[3]=l=>r.$emit("update:showMobileSettings",!1))}," × ")]),o.showSpeedControl?(e.openBlock(),e.createElementBlock("div",He,[a[16]||(a[16]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Playback Speed",-1)),e.createElementVNode("select",{value:o.playbackSpeed,class:"w-full px-4 py-3 border border-gray-300 rounded-lg bg-white text-gray-700 font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500",onChange:a[4]||(a[4]=l=>r.$emit("update:playbackSpeed",Number(l.target.value)))},[...a[15]||(a[15]=[e.createElementVNode("option",{value:1},"1x (Normal)",-1),e.createElementVNode("option",{value:1.25},"1.25x",-1),e.createElementVNode("option",{value:1.5},"1.5x",-1),e.createElementVNode("option",{value:1.75},"1.75x",-1),e.createElementVNode("option",{value:2},"2x (Double)",-1)])],40,Ge)])):e.createCommentVNode("",!0),o.showAudioLang?(e.openBlock(),e.createElementBlock("div",Oe,[a[17]||(a[17]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Audio Language",-1)),e.createVNode(N,{"model-value":o.audioLang,class:"w-full","onUpdate:modelValue":a[5]||(a[5]=l=>r.$emit("update:audioLang",l))},null,8,["model-value"])])):e.createCommentVNode("",!0),e.createElementVNode("div",qe,[a[18]||(a[18]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Text Language",-1)),e.createVNode(N,{"model-value":o.textLang,class:"w-full","onUpdate:modelValue":a[6]||(a[6]=l=>r.$emit("update:textLang",l))},null,8,["model-value"])]),e.createElementVNode("button",{class:"w-full px-4 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 font-medium shadow-sm transition-colors mt-4",onClick:a[7]||(a[7]=l=>r.$emit("update:showMobileSettings",!1))}," Done ")])])):e.createCommentVNode("",!0)],64))}}),Ke={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},Qe={class:"relative aspect-video bg-gray-200"},Xe=["src","alt"],Ye={class:"absolute top-2 left-2 bg-black bg-opacity-70 text-white px-3 py-1 rounded-full text-sm font-semibold"},Ze={class:"p-4"},Ie={class:"text-gray-700 text-sm line-clamp-3 group-hover:text-indigo-600 transition-colors"},et={class:"text-gray-500 text-xs mt-2 space-y-1"},tt={key:0},ot={key:1},at=e.defineComponent({__name:"beat_grid_view",props:{beats:{},basePath:{default:""},textLang:{default:"en"},linkUrlBuilder:{type:Function,default:void 0},linkComponent:{default:"a"}},emits:["beat-click"],setup(o,{emit:r}){const a=o,l=r,p=n=>{const m=Math.floor(n/3600),g=Math.floor(n%3600/60),c=Math.floor(n%60);return m>0?`${m}:${g.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}`:`${g}:${c.toString().padStart(2,"0")}`},f=n=>n.multiLinguals?.[a.textLang]||n.text||"No text available",t=n=>`${a.basePath}/${n+1}.jpg`,i=(n,m)=>{a.linkComponent==="a"&&a.linkUrlBuilder&&m.preventDefault(),l("beat-click",n)};return(n,m)=>(e.openBlock(),e.createElementBlock("div",Ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.beats,({beat:g,originalIndex:c})=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.linkComponent),{key:c,to:o.linkUrlBuilder?o.linkUrlBuilder(c):void 0,href:o.linkUrlBuilder?o.linkUrlBuilder(c):void 0,class:"group block bg-white rounded-lg shadow-md hover:shadow-xl transition-shadow duration-300 overflow-hidden",onClick:h=>i(c,h)},{default:e.withCtx(()=>[e.createElementVNode("div",Qe,[e.createElementVNode("img",{src:t(c),alt:`Beat ${c+1}`,class:"w-full h-full object-cover"},null,8,Xe),e.createElementVNode("div",Ye,e.toDisplayString(c+1),1)]),e.createElementVNode("div",Ze,[e.createElementVNode("p",Ie,e.toDisplayString(f(g)),1),e.createElementVNode("div",et,[g.startTime!==void 0?(e.openBlock(),e.createElementBlock("p",tt,"Start: "+e.toDisplayString(p(g.startTime)),1)):e.createCommentVNode("",!0),g.duration?(e.openBlock(),e.createElementBlock("p",ot,"Duration: "+e.toDisplayString(p(g.duration)),1)):e.createCommentVNode("",!0)])])]),_:2},1032,["to","href","onClick"]))),128))]))}}),lt={class:"space-y-6"},nt=["id"],st={class:"flex items-center gap-3 mb-2 flex-wrap"},it={class:"bg-indigo-600 text-white px-4 py-1 rounded-full text-sm font-semibold"},rt={key:0,class:"text-gray-500 text-sm"},dt={key:1,class:"text-gray-500 text-sm"},ct=["src","alt"],ut={class:"text-gray-800 text-base leading-relaxed font-sans"},mt=e.defineComponent({__name:"beat_list_view",props:{beats:{},basePath:{default:""},textLang:{default:"en"},linkUrlBuilder:{type:Function,default:void 0},linkComponent:{default:"a"}},emits:["beat-click"],setup(o,{emit:r}){const a=o,l=r,p=n=>{const m=Math.floor(n/3600),g=Math.floor(n%3600/60),c=Math.floor(n%60);return m>0?`${m}:${g.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}`:`${g}:${c.toString().padStart(2,"0")}`},f=n=>n.multiLinguals?.[a.textLang]||n.text||"No text available",t=n=>`${a.basePath}/${n+1}.jpg`,i=(n,m)=>{a.linkComponent==="a"&&a.linkUrlBuilder&&m.preventDefault(),l("beat-click",n)};return(n,m)=>(e.openBlock(),e.createElementBlock("div",lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.beats,({beat:g,originalIndex:c})=>(e.openBlock(),e.createElementBlock("div",{id:`beat-${c}`,key:c,class:"bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.linkComponent),{to:o.linkUrlBuilder?o.linkUrlBuilder(c):void 0,href:o.linkUrlBuilder?o.linkUrlBuilder(c):void 0,class:"float-left mr-4 mb-2 w-64 flex-shrink-0",onClick:h=>i(c,h)},{default:e.withCtx(()=>[e.createElementVNode("div",st,[e.createElementVNode("span",it," #"+e.toDisplayString(c+1),1),g.startTime!==void 0?(e.openBlock(),e.createElementBlock("span",rt," Start: "+e.toDisplayString(p(g.startTime)),1)):e.createCommentVNode("",!0),g.duration?(e.openBlock(),e.createElementBlock("span",dt," Duration: "+e.toDisplayString(p(g.duration)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("img",{src:t(c),alt:`Beat ${c+1}`,class:"w-full h-auto object-cover rounded-lg hover:opacity-80 transition-opacity shadow-sm"},null,8,ct)]),_:2},1032,["to","href","onClick"])),e.createElementVNode("p",ut,e.toDisplayString(f(g)),1),m[0]||(m[0]=e.createElementVNode("div",{class:"clear-both"},null,-1))],8,nt))),128))]))}});b.BeatGridView=at,b.BeatListView=mt,b.MulmoViewer=Me,b.MulmoViewerHeader=Je,b.SelectLanguage=N,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(b,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(b=typeof globalThis<"u"?globalThis:b||self,e(b.MulmoCastViewer={},b.Vue))})(this,(function(b,e){"use strict";const j=async o=>await new Promise(r=>setTimeout(r,o)),O=(o,r)=>{const a=l=>l instanceof Error?l:new Error("Aborted");return new Promise((l,g)=>{if(r.aborted){g(a(r.reason));return}const p=()=>{clearTimeout(t),g(a(r.reason))},t=setTimeout(()=>{r.removeEventListener("abort",p),l()},o);r.addEventListener("abort",p,{once:!0})})},q={class:"items-center justify-center w-full"},J={key:0,class:"group relative"},K=["src"],Q={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},X={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},Y={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},Z={key:1,class:"group relative inline-block"},I=["src","controls"],ee=["src"],te={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},oe={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},ae={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},le={key:2,class:"group relative inline-block"},ne=["src"],se=["src"],ie={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},re={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},de={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},ce={key:3,class:"group relative inline-block"},ue=["src"],me={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},fe={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},pe={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},ge={key:4},ye={key:5,class:"mt-4 px-6 py-4 text-left"},he={class:"text-lg leading-relaxed font-sans text-gray-800"},ke={key:0,class:"text-base leading-relaxed font-sans text-gray-400 mt-3 italic"},xe="https://github.com/receptron/mulmocast-cli/blob/main/assets/images/mulmocast_credit.png?raw=true",ve=e.defineComponent({__name:"mulmo_player",props:{index:{},videoWithAudioSource:{default:void 0},soundEffectSource:{default:void 0},videoSource:{default:void 0},imageSource:{default:void 0},audioSource:{default:void 0},text:{default:void 0},originalText:{default:void 0},duration:{default:void 0},defaultLang:{default:void 0},currentLang:{default:void 0},playbackSpeed:{default:1}},emits:["play","pause","ended"],setup(o,{expose:r,emit:a}){const l=o,g=a,p=e.ref(),t=e.ref(),i=e.ref(),n=e.ref(),c=e.ref(!1),f=()=>{t.value&&i.value&&!isNaN(t.value.duration)&&!isNaN(i.value.duration)&&(c.value=i.value.duration>t.value.duration+1)},u=()=>{if(t.value){if(l.soundEffectSource){t.value.volume=1;return}l.videoSource&&(l.audioSource&&l.currentLang&&l.defaultLang&&l.currentLang!==l.defaultLang?t.value.volume=.2:t.value.volume=0)}},h=()=>{const y=l.playbackSpeed??1;p.value&&(p.value.playbackRate=y),t.value&&(t.value.playbackRate=y),i.value&&(i.value.playbackRate=y),n.value&&(n.value.playbackRate=y)};e.watch([()=>l.currentLang,()=>l.defaultLang,()=>l.videoSource,()=>l.audioSource],()=>{u()}),e.watch(()=>l.playbackSpeed,()=>{h()}),e.watch(t,y=>{y&&(u(),h())}),e.watch([p,i,n],()=>{h()}),e.onMounted(()=>{u(),h()});const w=e.ref(!1),k=e.ref(!1),E=e.computed(()=>m.value||k.value);let x=null;const $=()=>{x&&(x.abort(),x=null)},T=()=>{m.value=!0,i.value&&t.value&&!i.value.ended&&(i.value.currentTime=t.value.currentTime,i.value.play().catch(()=>{})),g("play")},z=y=>{k.value||t.value?.ended&&i.value&&!i.value.ended||(document.hidden||(m.value=!1),!t.value?.ended&&i?.value&&i.value?.pause(),L(y))},M=()=>{if(w.value)return;(!i.value||i.value.ended)&&P()},C=()=>{if(w.value)return;(!t.value||t.value.ended)&&P()},_=()=>{if(!t.value||!i.value)return;const y=Math.min(i.value.currentTime,t.value.duration);Math.abs(t.value.currentTime-y)>.5&&(t.value.currentTime=y)},R=()=>{m.value=!0,t.value&&!t.value.ended&&t.value.play().catch(()=>{}),g("play")},S=()=>{k.value||i.value?.ended||(document.hidden||(m.value=!1),t.value&&!t.value.ended&&t.value.pause(),g("pause"))},D=()=>{m.value=!0,g("play")},L=y=>{if(k.value)return;document.hidden||(m.value=!1);const d=y.target;d.duration!==d.currentTime&&g("pause")},P=()=>{w.value||(w.value=!0,m.value=!1,g("ended"))},s=()=>{p.value?.pause(),t.value?.pause(),i.value?.pause(),n.value?.pause()},m=e.ref(!1);let v=null;const V=async()=>{if(k.value=!1,w.value=!1,m.value=!0,p.value&&(h(),p.value.play().catch(()=>{})),t.value&&(u(),h(),t.value.play().catch(()=>{}),i.value&&(i.value.currentTime=t.value.currentTime,i.value.play().catch(()=>{}))),n.value&&(h(),n.value.play().catch(()=>{})),!p.value&&!t.value&&!n.value)try{$(),x=new AbortController,await O((l.duration??0)*1e3,x.signal),x=null,w.value||(m.value=!1,w.value=!0,g("ended"))}catch{}},ft=()=>{k.value=!0,m.value=!1,w.value=!0,$(),p.value?.pause(),t.value?.pause(),i.value?.pause(),n.value?.pause()},pt=()=>{!i.value||!t.value||i.value.ended||Math.abs(i.value.currentTime-t.value.currentTime)>.5&&(i.value.currentTime=t.value.currentTime)},A=y=>{y?.paused&&!y.ended&&y.play().catch(()=>{})},gt=(y,d)=>{d.paused&&!d.ended&&(y.ended||(d.currentTime=y.currentTime),d.play().catch(()=>{}))},H=()=>{m.value&&(A(p.value),t.value&&i.value?(A(t.value),gt(t.value,i.value)):A(t.value),A(n.value))},G=()=>{document.hidden&&m.value?v||(v=setInterval(H,500)):document.hidden||v&&(clearInterval(v),v=null)},B=()=>{document.hidden&&m.value&&setTimeout(H,50)};return e.onMounted(()=>{document.addEventListener("visibilitychange",G),p.value?.addEventListener("pause",B),t.value?.addEventListener("pause",B),n.value?.addEventListener("pause",B),i.value?.addEventListener("pause",B)}),e.onUnmounted(()=>{document.removeEventListener("visibilitychange",G),p.value?.removeEventListener("pause",B),t.value?.removeEventListener("pause",B),n.value?.removeEventListener("pause",B),i.value?.removeEventListener("pause",B),v&&(clearInterval(v),v=null),$()}),r({play:V,stop:ft}),(y,d)=>(e.openBlock(),e.createElementBlock("div",q,[o.videoWithAudioSource?(e.openBlock(),e.createElementBlock("div",J,[e.createElementVNode("video",{ref_key:"videoWithAudioRef",ref:p,src:o.videoWithAudioSource,class:"mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",controls:!0,playsinline:"true",onPlay:D,onPause:L,onEnded:P},null,40,K),e.createElementVNode("div",Q,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[0]||(d[0]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",Y,[...d[5]||(d[5]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",X,[...d[4]||(d[4]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.soundEffectSource||o.videoSource?(e.openBlock(),e.createElementBlock("div",Z,[e.createElementVNode("video",{ref_key:"videoRef",ref:t,class:"mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",src:o.soundEffectSource||o.videoSource,controls:!c.value,playsinline:"true",onPlay:T,onPause:z,onEnded:M,onSeeked:pt,onLoadedmetadata:f},null,40,I),o.audioSource?(e.openBlock(),e.createElementBlock("audio",{key:0,ref_key:"audioSyncRef",ref:i,src:o.audioSource,controls:!0,class:e.normalizeClass(c.value?"mulmocast-audio absolute bottom-0 left-0 w-full":"hidden"),onEnded:C,onSeeked:_,onPlay:R,onPause:S,onLoadedmetadata:f},null,42,ee)):e.createCommentVNode("",!0),e.createElementVNode("div",te,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[1]||(d[1]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",ae,[...d[7]||(d[7]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",oe,[...d[6]||(d[6]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.audioSource?(e.openBlock(),e.createElementBlock("div",le,[o.imageSource?(e.openBlock(),e.createElementBlock("img",{key:0,src:o.imageSource,class:"mx-auto h-auto max-h-[80vh] w-auto object-contain",alt:"Background"},null,8,ne)):(e.openBlock(),e.createElementBlock("img",{key:1,src:xe,class:"mx-auto h-auto max-h-[80vh] w-auto object-contain",alt:"Background"})),e.createElementVNode("audio",{ref_key:"audioRef",ref:n,class:"mulmocast-audio absolute inset-0 w-full h-full",src:o.audioSource,controls:!0,onPlay:D,onPause:L,onEnded:P},null,40,se),e.createElementVNode("div",ie,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[2]||(d[2]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",de,[...d[9]||(d[9]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",re,[...d[8]||(d[8]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.imageSource?(e.openBlock(),e.createElementBlock("div",ce,[e.createElementVNode("img",{src:o.imageSource,class:"max-w-full max-h-full object-contain"},null,8,ue),e.createElementVNode("div",me,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[3]||(d[3]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",pe,[...d[11]||(d[11]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",fe,[...d[10]||(d[10]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):(e.openBlock(),e.createElementBlock("div",ge,"No media available")),o.text?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("p",he,e.toDisplayString(o.text),1),o.originalText&&o.originalText!==o.text?(e.openBlock(),e.createElementBlock("p",ke,e.toDisplayString(o.originalText),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),W=(o,r)=>{const a=o.__vccOpts||o;for(const[l,g]of r)a[l]=g;return a},U=W(ve,[["__scopeId","data-v-843621f0"]]),be=["value"],Ee=["value"],N=e.defineComponent({__name:"select_language",props:{modelValue:{}},emits:["update:modelValue"],setup(o,{emit:r}){const a=["en","ja"],l={en:"English",ja:"日本語"},g=r,p=t=>{const i=t.target;g("update:modelValue",i.value)};return(t,i)=>(e.openBlock(),e.createElementBlock("select",{value:o.modelValue,class:"px-4 py-2 bg-white border-2 border-gray-300 rounded-lg shadow-sm hover:border-indigo-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 focus:outline-none transition-colors cursor-pointer text-base font-medium text-gray-700",onChange:p},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,n=>e.createElementVNode("option",{key:n,value:n},e.toDisplayString(l[n]||n),9,Ee)),64))],40,be))}}),we={class:"w-full overflow-hidden"},Se={class:"max-w-7xl mx-auto px-4"},Be={class:"grid grid-cols-[auto,1fr,auto] gap-x-4 gap-y-4 max-sm:grid-cols-2"},Ve=["disabled"],Ne={class:"col-start-2 row-start-1 min-w-0 max-sm:col-span-2 max-sm:col-start-1"},$e=["disabled"],Ce={key:0,class:"mulmo-text-box col-start-2 row-start-2 min-w-0 mt-1 rounded-lg px-6 py-4 text-left max-sm:col-span-2 max-sm:col-start-1 max-sm:row-start-3"},Le={class:"mulmo-text-primary text-lg leading-relaxed font-sans"},Pe={key:0,class:"mulmo-text-secondary text-base leading-relaxed font-sans mt-3 italic"},Te=["src"],Me=W(e.defineComponent({__name:"mulmo_viewer",props:{dataSet:{default:void 0},basePath:{},initPage:{default:void 0},audioLang:{default:"en"},textLang:{default:"en"},playbackSpeed:{default:1}},emits:["updatedPage","update:audioLang","update:textLang","allCompleted"],setup(o,{expose:r,emit:a}){const l=o,g=a,p=l.dataSet?.beats?.length??0,t=e.ref(l.initPage??0),i=e.ref(!0),n=e.ref(),c=e.ref(),f=e.computed({get:()=>l.audioLang,set:s=>g("update:audioLang",s||"en")}),u=e.computed({get:()=>l.textLang,set:s=>g("update:textLang",s||"en")});let h=0;e.watch(()=>l.audioLang,async(s,m)=>{if(s!==m&&x.value){h++;const v=h;if(n.value?.stop(),await j(500),v!==h)return;n.value&&(x.value=!0,await n.value.play())}}),e.watch(()=>l.textLang,async(s,m)=>{s!==m&&x.value&&(await j(100),n.value&&await n.value.play())}),e.watch(c,s=>{s&&(s.volume=.3)});const w=e.computed(()=>l.dataSet?.beats[t.value]),k=s=>s?l.basePath+"/"+s:"",E=e.computed(()=>k(l.dataSet?.bgmSource)),x=e.ref(!1),$=()=>{x.value=!0,c.value&&(c.value.volume=.3,c.value.play())},T=()=>{x.value=!1,c.value&&c.value.pause()},z=async()=>{h++;const s=h;n.value?.stop(),await j(500),s===h&&n.value&&n.value.play()},M=s=>{t.value!==s&&(t.value=s,x.value&&i.value&&z())},C=s=>{const m=t.value+s;return m>-1&&m<p?(M(m),g("updatedPage",m),!0):!1},_=()=>{i.value&&C(1)||(x.value=!1,c.value&&c.value.pause(),g("allCompleted"))},R={onPlay:$,onPause:T,onEnded:_},S=e.computed(()=>{const s=w.value,m=s?.audioSources?.[f.value],v=s?.multiLinguals?.[u.value]??s?.text??"",V=l.dataSet?.lang?s?.multiLinguals?.[l.dataSet.lang]??s?.text??"":"";return{videoWithAudioSource:k(s?.videoWithAudioSource),videoSource:k(s?.videoSource),soundEffectSource:k(s?.soundEffectSource),audioSource:k(m),imageSource:k(s?.imageSource),index:t.value,text:v,originalText:V,duration:s?.duration,defaultLang:l.dataSet?.lang,currentLang:f.value,playbackSpeed:l.playbackSpeed,...R}}),D=e.computed(()=>l.dataSet?.beats[t.value+1]),L=e.computed(()=>{if(t.value+1>=p)return null;const s=D.value;return{videoWithAudioSource:k(s?.videoWithAudioSource),videoSource:k(s?.videoSource),soundEffectSource:k(s?.soundEffectSource),audioSource:k(s?.audioSources?.[f.value]),imageSource:k(s?.imageSource),index:t.value+1,text:s?.multiLinguals?.[u.value]??s?.text??"",duration:s?.duration}}),P=e.computed(()=>({MulmoPlayer:U,pageProps:S.value,currentPage:t.value,pageCount:p,pageMove:C,isPlaying:x.value,audioLang:f,textLang:u,SelectLanguage:N,mediaPlayerRef:n,handlePlay:$,handlePause:T,handleEnded:_}));return r({updatePage:M}),(s,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(s.$slots,"default",e.normalizeProps(e.guardReactiveProps(P.value)),()=>[e.createElementVNode("div",we,[e.createElementVNode("div",Se,[e.createElementVNode("div",Be,[e.createElementVNode("button",{class:"col-start-1 row-start-1 justify-self-start w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:row-start-2",disabled:t.value===0,onClick:m[0]||(m[0]=v=>C(-1))}," Prev ",8,Ve),e.createElementVNode("div",Ne,[e.createVNode(U,e.mergeProps({ref_key:"mediaPlayer",ref:n},{...S.value,text:"",originalText:""}),null,16)]),e.createElementVNode("button",{class:"col-start-3 row-start-1 justify-self-end w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:col-start-2 max-sm:row-start-2",disabled:t.value>=e.unref(p)-1,onClick:m[1]||(m[1]=v=>C(1))}," Next ",8,$e),S.value.text?(e.openBlock(),e.createElementBlock("div",Ce,[e.createElementVNode("p",Le,e.toDisplayString(S.value.text),1),S.value.originalText&&S.value.originalText!==S.value.text?(e.openBlock(),e.createElementBlock("p",Pe,e.toDisplayString(S.value.originalText),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])])],!0),L.value?e.withDirectives((e.openBlock(),e.createBlock(U,e.normalizeProps(e.mergeProps({key:0},L.value)),null,16)),[[e.vShow,!1]]):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock("audio",{key:1,ref_key:"bgmRef",ref:c,src:E.value},null,8,Te)):e.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-46289647"]]),_e={class:"container mx-auto px-4 py-2 sm:py-4"},De={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2 sm:gap-4"},Ae={class:"flex items-center gap-4 flex-wrap"},je={class:"flex items-center gap-2 sm:gap-4 flex-wrap w-full sm:w-auto"},Ue={key:0,class:"hidden sm:flex items-center gap-3"},ze=["value"],Re={key:1,class:"hidden sm:flex items-center gap-3"},Fe={class:"hidden sm:flex items-center gap-3"},We={class:"flex items-center justify-between mb-4"},He={key:0,class:"space-y-2"},Ge=["value"],Oe={key:1,class:"space-y-2"},qe={class:"space-y-2"},Je=e.defineComponent({__name:"mulmo_viewer_header",props:{audioLang:{},textLang:{},playbackSpeed:{default:1},showSpeedControl:{type:Boolean,default:!0},showAudioLang:{type:Boolean,default:!0},hideDesktopControls:{type:Boolean,default:!1},showMobileSettings:{type:Boolean,default:!1},sticky:{type:Boolean,default:!1}},emits:["update:audioLang","update:textLang","update:playbackSpeed","update:showMobileSettings"],setup(o){return(r,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["bg-white shadow-md border-b border-gray-200",{"sticky top-0 z-50":o.sticky}])},[e.createElementVNode("div",_e,[e.createElementVNode("div",De,[e.createElementVNode("div",Ae,[e.renderSlot(r.$slots,"left")]),e.createElementVNode("div",je,[e.renderSlot(r.$slots,"actions"),o.hideDesktopControls?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.showSpeedControl?(e.openBlock(),e.createElementBlock("div",Ue,[a[11]||(a[11]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Speed:",-1)),e.createElementVNode("select",{value:o.playbackSpeed,class:"px-3 py-2 border border-gray-300 rounded-lg bg-white text-gray-700 font-medium shadow-sm hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 transition-colors",onChange:a[0]||(a[0]=l=>r.$emit("update:playbackSpeed",Number(l.target.value)))},[...a[10]||(a[10]=[e.createElementVNode("option",{value:1},"1x",-1),e.createElementVNode("option",{value:1.25},"1.25x",-1),e.createElementVNode("option",{value:1.5},"1.5x",-1),e.createElementVNode("option",{value:1.75},"1.75x",-1),e.createElementVNode("option",{value:2},"2x",-1)])],40,ze)])):e.createCommentVNode("",!0),o.showAudioLang?(e.openBlock(),e.createElementBlock("div",Re,[a[12]||(a[12]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Audio:",-1)),e.createVNode(N,{"model-value":o.audioLang,"onUpdate:modelValue":a[1]||(a[1]=l=>r.$emit("update:audioLang",l))},null,8,["model-value"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Fe,[a[13]||(a[13]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Text:",-1)),e.createVNode(N,{"model-value":o.textLang,"onUpdate:modelValue":a[2]||(a[2]=l=>r.$emit("update:textLang",l))},null,8,["model-value"])])],64)),e.renderSlot(r.$slots,"mobile-actions")])])])],2),o.showMobileSettings?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 z-50 sm:hidden",onClick:a[9]||(a[9]=l=>r.$emit("update:showMobileSettings",!1))},[e.createElementVNode("div",{class:"absolute bottom-0 left-0 right-0 bg-white rounded-t-2xl shadow-xl p-6 space-y-4",onClick:a[8]||(a[8]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",We,[a[14]||(a[14]=e.createElementVNode("h2",{class:"text-xl font-bold text-gray-800"},"Settings",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-gray-700 text-2xl",onClick:a[3]||(a[3]=l=>r.$emit("update:showMobileSettings",!1))}," × ")]),o.showSpeedControl?(e.openBlock(),e.createElementBlock("div",He,[a[16]||(a[16]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Playback Speed",-1)),e.createElementVNode("select",{value:o.playbackSpeed,class:"w-full px-4 py-3 border border-gray-300 rounded-lg bg-white text-gray-700 font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500",onChange:a[4]||(a[4]=l=>r.$emit("update:playbackSpeed",Number(l.target.value)))},[...a[15]||(a[15]=[e.createElementVNode("option",{value:1},"1x (Normal)",-1),e.createElementVNode("option",{value:1.25},"1.25x",-1),e.createElementVNode("option",{value:1.5},"1.5x",-1),e.createElementVNode("option",{value:1.75},"1.75x",-1),e.createElementVNode("option",{value:2},"2x (Double)",-1)])],40,Ge)])):e.createCommentVNode("",!0),o.showAudioLang?(e.openBlock(),e.createElementBlock("div",Oe,[a[17]||(a[17]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Audio Language",-1)),e.createVNode(N,{"model-value":o.audioLang,class:"w-full","onUpdate:modelValue":a[5]||(a[5]=l=>r.$emit("update:audioLang",l))},null,8,["model-value"])])):e.createCommentVNode("",!0),e.createElementVNode("div",qe,[a[18]||(a[18]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Text Language",-1)),e.createVNode(N,{"model-value":o.textLang,class:"w-full","onUpdate:modelValue":a[6]||(a[6]=l=>r.$emit("update:textLang",l))},null,8,["model-value"])]),e.createElementVNode("button",{class:"w-full px-4 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 font-medium shadow-sm transition-colors mt-4",onClick:a[7]||(a[7]=l=>r.$emit("update:showMobileSettings",!1))}," Done ")])])):e.createCommentVNode("",!0)],64))}}),Ke={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},Qe={class:"relative aspect-video bg-gray-200"},Xe=["src","alt"],Ye={class:"absolute top-2 left-2 bg-black bg-opacity-70 text-white px-3 py-1 rounded-full text-sm font-semibold"},Ze={class:"p-4"},Ie={class:"text-gray-700 text-sm line-clamp-3 group-hover:text-indigo-600 transition-colors"},et={class:"text-gray-500 text-xs mt-2 space-y-1"},tt={key:0},ot={key:1},at=e.defineComponent({__name:"beat_grid_view",props:{beats:{},basePath:{default:""},textLang:{default:"en"},linkUrlBuilder:{type:Function,default:void 0},linkComponent:{default:"a"}},emits:["beat-click"],setup(o,{emit:r}){const a=o,l=r,g=n=>{const c=Math.floor(n/3600),f=Math.floor(n%3600/60),u=Math.floor(n%60);return c>0?`${c}:${f.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}`:`${f}:${u.toString().padStart(2,"0")}`},p=n=>n.multiLinguals?.[a.textLang]||n.text||"No text available",t=(n,c)=>n.imageSource?`${a.basePath}/${n.imageSource}`:`${a.basePath}/${c+1}.jpg`,i=(n,c)=>{a.linkComponent==="a"&&a.linkUrlBuilder&&c.preventDefault(),l("beat-click",n)};return(n,c)=>(e.openBlock(),e.createElementBlock("div",Ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.beats,({beat:f,originalIndex:u})=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.linkComponent),{key:u,to:o.linkUrlBuilder?o.linkUrlBuilder(u):void 0,href:o.linkUrlBuilder?o.linkUrlBuilder(u):void 0,class:"group block bg-white rounded-lg shadow-md hover:shadow-xl transition-shadow duration-300 overflow-hidden",onClick:h=>i(u,h)},{default:e.withCtx(()=>[e.createElementVNode("div",Qe,[e.createElementVNode("img",{src:t(f,u),alt:`Beat ${u+1}`,class:"w-full h-full object-cover"},null,8,Xe),e.createElementVNode("div",Ye,e.toDisplayString(u+1),1)]),e.createElementVNode("div",Ze,[e.createElementVNode("p",Ie,e.toDisplayString(p(f)),1),e.createElementVNode("div",et,[f.startTime!==void 0?(e.openBlock(),e.createElementBlock("p",tt,"Start: "+e.toDisplayString(g(f.startTime)),1)):e.createCommentVNode("",!0),f.duration?(e.openBlock(),e.createElementBlock("p",ot,"Duration: "+e.toDisplayString(g(f.duration)),1)):e.createCommentVNode("",!0)])])]),_:2},1032,["to","href","onClick"]))),128))]))}}),lt={class:"space-y-6"},nt=["id"],st={class:"flex items-center gap-3 mb-2 flex-wrap"},it={class:"bg-indigo-600 text-white px-4 py-1 rounded-full text-sm font-semibold"},rt={key:0,class:"text-gray-500 text-sm"},dt={key:1,class:"text-gray-500 text-sm"},ct=["src","alt"],ut={class:"text-gray-800 text-base leading-relaxed font-sans"},mt=e.defineComponent({__name:"beat_list_view",props:{beats:{},basePath:{default:""},textLang:{default:"en"},linkUrlBuilder:{type:Function,default:void 0},linkComponent:{default:"a"}},emits:["beat-click"],setup(o,{emit:r}){const a=o,l=r,g=n=>{const c=Math.floor(n/3600),f=Math.floor(n%3600/60),u=Math.floor(n%60);return c>0?`${c}:${f.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}`:`${f}:${u.toString().padStart(2,"0")}`},p=n=>n.multiLinguals?.[a.textLang]||n.text||"No text available",t=(n,c)=>n.imageSource?`${a.basePath}/${n.imageSource}`:`${a.basePath}/${c+1}.jpg`,i=(n,c)=>{a.linkComponent==="a"&&a.linkUrlBuilder&&c.preventDefault(),l("beat-click",n)};return(n,c)=>(e.openBlock(),e.createElementBlock("div",lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.beats,({beat:f,originalIndex:u})=>(e.openBlock(),e.createElementBlock("div",{id:`beat-${u}`,key:u,class:"bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.linkComponent),{to:o.linkUrlBuilder?o.linkUrlBuilder(u):void 0,href:o.linkUrlBuilder?o.linkUrlBuilder(u):void 0,class:"float-left mr-4 mb-2 w-64 flex-shrink-0",onClick:h=>i(u,h)},{default:e.withCtx(()=>[e.createElementVNode("div",st,[e.createElementVNode("span",it," #"+e.toDisplayString(u+1),1),f.startTime!==void 0?(e.openBlock(),e.createElementBlock("span",rt," Start: "+e.toDisplayString(g(f.startTime)),1)):e.createCommentVNode("",!0),f.duration?(e.openBlock(),e.createElementBlock("span",dt," Duration: "+e.toDisplayString(g(f.duration)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("img",{src:t(f,u),alt:`Beat ${u+1}`,class:"w-full h-auto object-cover rounded-lg hover:opacity-80 transition-opacity shadow-sm"},null,8,ct)]),_:2},1032,["to","href","onClick"])),e.createElementVNode("p",ut,e.toDisplayString(p(f)),1),c[0]||(c[0]=e.createElementVNode("div",{class:"clear-both"},null,-1))],8,nt))),128))]))}});b.BeatGridView=at,b.BeatListView=mt,b.MulmoViewer=Me,b.MulmoViewerHeader=Je,b.SelectLanguage=N,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mulmocast-viewer",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/mulmocast-viewer.umd.js",
|
|
@@ -63,8 +63,5 @@
|
|
|
63
63
|
"vue-i18n": "^11.2.8",
|
|
64
64
|
"vue-router": "^5.0.2",
|
|
65
65
|
"vue-tsc": "^3.2.4"
|
|
66
|
-
},
|
|
67
|
-
"resolutions": {
|
|
68
|
-
"**/vite-plugin-dts/**/@vue/compiler-core": "3.5.27"
|
|
69
66
|
}
|
|
70
67
|
}
|