{"version":3,"sources":["jsdelivr-header.js","/npm/@scorum/clappr-flvjs-playback@3.4.0/src/main.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OCNS,WAAY,OAAQ,IAAK,SAAU,gBAAmB,sBACxD,UAAW,SAElB,MAAM,UAAY,CAAC,YAAa,eAC1B,UAAY,qBAEH,MAAM,sBAAsB,WACzC,QAAI,GACF,MAAO,OACT,CAEA,oBAAI,GAEF,MAAO,CAAE,IAAK,oBAChB,CAEA,gBAAI,GACF,OAAO,CACT,CAEA,SAAI,GACF,OAAO,KAAK,OACd,CAEA,eAAA,GACE,OAAO,KAAK,aACd,CAEA,IAAA,IACG,KAAK,SAAW,KAAK,SACtB,MAAM,MACR,CAEA,IAAA,GACE,MAAM,OACN,KAAK,UACP,CAEA,OAAA,GACE,KAAK,WACL,MAAM,SACR,CAGA,SAAA,GAAe,CAEf,MAAA,GACE,KAAK,WAEL,MAAM,EAAkB,CACtB,KA9CY,MA+CZ,IAAK,KAAK,QAAQ,KAEd,EAAc,KAAK,QAAQ,SAAS,aAAe,CAAC,EAC1D,KAAK,cAAgB,EAAY,OAAS,SAAS,KAAO,SAAS,IAEnE,MAAM,EAAgB,EAAY,gBAAiB,EACnD,MAAM,eAAe,UAAY,EAEjC,KAAK,QAAU,MAAM,aAAa,EAAiB,GACnD,KAAK,QAAQ,GAAG,MAAM,OAAO,MAAO,KAAK,SAAS,KAAK,OACvD,KAAK,QAAQ,mBAAmB,KAAK,IACrC,KAAK,QAAQ,MACf,CAEA,QAAA,CAAU,EAAM,EAAS,GACvB,IAAI,MAAM,UAAU,MAAS,IAAW,GAExC,MAAM,EAAiB,KAAK,YAAY,CACtC,KAAM,EAAK,MAAQ,EACnB,YAAa,EAAK,KAAO,EACzB,IAAK,EACL,MAAO,YAAY,OAAO,QAG5B,KAAK,QAAQ,OAAO,eAAgB,GACpC,KAAK,MACP,CAEA,QAAA,GACO,KAAK,UAIV,KAAK,QAAQ,iBACN,KAAK,QACd,EAGF,cAAc,QAAU,CAAC,EAAU,EAAW,MAC5C,MAAM,EAAiB,EAAS,MAAM,KAAK,GAAG,MAAM,cAAgB,GAC9D,EAAU,EAAc,OAAS,GAvFvB,QAuF4B,EAAc,GAAG,gBAC1B,IAAjC,UAAU,QAAQ,GACpB,OAAO,MAAM,eAAiB,GAIhC,cAAc,QAAU,IAAM","file":"/npm/@scorum/clappr-flvjs-playback@3.4.0/src/main.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/@scorum/clappr-flvjs-playback@3.4.0/src/main.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { HTML5Video, Events, Log, Playback, PlayerError } from '@clappr/core'\nimport flvjs from 'flv.js'\n\nconst MIMETYPES = ['video/flv', 'video/x-flv']\nconst EXTENSION = 'flv'\n\nexport default class FLVJSPlayback extends HTML5Video {\n  get name () {\n    return 'flvjs'\n  }\n\n  get supportedVersion () {\n    // eslint-disable-next-line no-undef\n    return { min: CLAPPR_CORE_VERSION }\n  }\n\n  get isHTML5Video () {\n    return true\n  }\n\n  get flvjs () {\n    return this._player\n  }\n\n  getPlaybackType () {\n    return this._playbackType\n  }\n\n  play () {\n    !this._player && this._setup()\n    super.play()\n  }\n\n  stop () {\n    super.stop()\n    this._destroy()\n  }\n\n  destroy () {\n    this._destroy()\n    super.destroy()\n  }\n\n  // skipping setup `setupSrc` on tag video\n  _setupSrc () { }\n\n  _setup () {\n    this._destroy()\n\n    const mediaDataSource = {\n      type: EXTENSION,\n      url: this.options.src\n    }\n    const flvjsConfig = this.options.playback.flvjsConfig || {}\n    this._playbackType = flvjsConfig.isLive ? Playback.LIVE : Playback.VOD\n\n    const enableLogging = flvjsConfig.enableLogging || false\n    flvjs.LoggingControl.enableAll = enableLogging\n\n    this._player = flvjs.createPlayer(mediaDataSource, flvjsConfig)\n    this._player.on(flvjs.Events.ERROR, this._onError.bind(this))\n    this._player.attachMediaElement(this.el)\n    this._player.load()\n  }\n\n  _onError (type, details, data) {\n    Log.error(`flvjs: ${type}: ${details}`, data)\n\n    const formattedError = this.createError({\n      code: data.code || type,\n      description: data.msg || details,\n      raw: data,\n      level: PlayerError.Levels.FATAL\n    })\n\n    this.trigger(Events.PLAYBACK_ERROR, formattedError)\n    this.stop()\n  }\n\n  _destroy () {\n    if (!this._player) {\n      return\n    }\n\n    this._player.destroy()\n    delete this._player\n  }\n}\n\nFLVJSPlayback.canPlay = (resource, mimeType = '') => {\n  const resourceParts = (resource.split('?')[0].match(/.*\\.(.*)$/) || [])\n  const isFLV = ((resourceParts.length > 1 && resourceParts[1].toLowerCase() === EXTENSION) ||\n    MIMETYPES.indexOf(mimeType) !== -1)\n  return flvjs.isSupported() && isFLV\n}\n\n// eslint-disable-next-line no-undef\nFLVJSPlayback.version = () => VERSION\n"]}