All files / app/mods/media audio.ts

100% Statements 3/3
100% Branches 0/0
100% Functions 0/0
100% Lines 3/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53117x       117x                                                                                     117x          
import { DateTime } from 'luxon';
import { Plugin } from '../../model/plugin';
import { Mod } from '../../model/tag';
 
export const audioPlugin: Plugin = {
  tag: 'plugin/audio',
  name: $localize`📻️ Audio`,
  config: {
    type: 'plugin',
    version: 1,
    default: true,
    proxy: true,
    add: true,
    embeddable: true,
    generated: $localize`Generated by jasper-ui ${DateTime.now().toISO()}`,
    submit: $localize`📻️ audio`,
    icons: [{ label: $localize`📻️`, order: 2 }],
    filters: [
      { query: 'plugin/audio', label: $localize`📻️ audio`, title: $localize`Audio`, group: $localize`Media 🎬️` },
    ],
    extensions: ['.mp3', '.aac', '.flac', '.m4a', '.ogg', '.wav'],
    description: $localize`Play audio in an audio player.
 
Keyboard shortcuts (when viewer is focused):
Space / K: Play/pause
J / L: Seek ±10s
← / →: Seek ±5s
↑ / ↓: Volume ±5%
M: Mute toggle
Home / End: Jump to start/end
0–9: Percentage seek`,
    advancedForm: [{
      key: 'url',
      type: 'audio',
      props: {
        label: $localize`URL:`,
      },
    }],
  },
  defaults: {},
  schema: {
    optionalProperties: {
      url: { type: 'string' },
    },
  },
};
 
export const audioMod: Mod = {
  plugin: [
    audioPlugin,
  ],
};