{"version":3,"file":"AudioNotificationHelper-CDrFIep2.js","sources":["../../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.mjs","../../../app/javascript/shared/helpers/AudioNotificationHelper.js"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n    for (var key in source) {\n      target[key] = source[key];\n    }\n  }\n  return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n  read: function (value) {\n    if (value[0] === '\"') {\n      value = value.slice(1, -1);\n    }\n    return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n  },\n  write: function (value) {\n    return encodeURIComponent(value).replace(\n      /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n      decodeURIComponent\n    )\n  }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n  function set (name, value, attributes) {\n    if (typeof document === 'undefined') {\n      return\n    }\n\n    attributes = assign({}, defaultAttributes, attributes);\n\n    if (typeof attributes.expires === 'number') {\n      attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n    }\n    if (attributes.expires) {\n      attributes.expires = attributes.expires.toUTCString();\n    }\n\n    name = encodeURIComponent(name)\n      .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n      .replace(/[()]/g, escape);\n\n    var stringifiedAttributes = '';\n    for (var attributeName in attributes) {\n      if (!attributes[attributeName]) {\n        continue\n      }\n\n      stringifiedAttributes += '; ' + attributeName;\n\n      if (attributes[attributeName] === true) {\n        continue\n      }\n\n      // Considers RFC 6265 section 5.2:\n      // ...\n      // 3.  If the remaining unparsed-attributes contains a %x3B (\";\")\n      //     character:\n      // Consume the characters of the unparsed-attributes up to,\n      // not including, the first %x3B (\";\") character.\n      // ...\n      stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n    }\n\n    return (document.cookie =\n      name + '=' + converter.write(value, name) + stringifiedAttributes)\n  }\n\n  function get (name) {\n    if (typeof document === 'undefined' || (arguments.length && !name)) {\n      return\n    }\n\n    // To prevent the for loop in the first place assign an empty array\n    // in case there are no cookies at all.\n    var cookies = document.cookie ? document.cookie.split('; ') : [];\n    var jar = {};\n    for (var i = 0; i < cookies.length; i++) {\n      var parts = cookies[i].split('=');\n      var value = parts.slice(1).join('=');\n\n      try {\n        var found = decodeURIComponent(parts[0]);\n        jar[found] = converter.read(value, found);\n\n        if (name === found) {\n          break\n        }\n      } catch (e) {}\n    }\n\n    return name ? jar[name] : jar\n  }\n\n  return Object.create(\n    {\n      set,\n      get,\n      remove: function (name, attributes) {\n        set(\n          name,\n          '',\n          assign({}, attributes, {\n            expires: -1\n          })\n        );\n      },\n      withAttributes: function (attributes) {\n        return init(this.converter, assign({}, this.attributes, attributes))\n      },\n      withConverter: function (converter) {\n        return init(assign({}, this.converter, converter), this.attributes)\n      }\n    },\n    {\n      attributes: { value: Object.freeze(defaultAttributes) },\n      converter: { value: Object.freeze(converter) }\n    }\n  )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","export const initOnEvents = ['click', 'touchstart', 'keypress', 'keydown'];\n\nexport const getAudioContext = () => {\n  let audioCtx;\n  try {\n    audioCtx = new (window.AudioContext || window.webkitAudioContext)();\n  } catch {\n    // AudioContext is not available.\n  }\n  return audioCtx;\n};\n\n// eslint-disable-next-line default-param-last\nexport const getAlertAudio = async (baseUrl = '', requestContext) => {\n  const audioCtx = getAudioContext();\n  const playSound = audioBuffer => {\n    window.playAudioAlert = () => {\n      if (audioCtx) {\n        const source = audioCtx.createBufferSource();\n        source.buffer = audioBuffer;\n        source.connect(audioCtx.destination);\n        source.loop = false;\n        source.start();\n      }\n    };\n  };\n\n  if (audioCtx) {\n    const { type = 'dashboard', alertTone = 'ding' } = requestContext || {};\n    const resourceUrl = `${baseUrl}/audio/${type}/${alertTone}.mp3`;\n    const audioRequest = new Request(resourceUrl);\n\n    fetch(audioRequest)\n      .then(response => response.arrayBuffer())\n      .then(buffer => {\n        audioCtx.decodeAudioData(buffer).then(playSound);\n        // eslint-disable-next-line no-promise-executor-return\n        return new Promise(res => res());\n      })\n      .catch(() => {\n        // error\n      });\n  }\n};\n"],"names":["assign","target","i","source","key","defaultConverter","value","init","converter","defaultAttributes","set","name","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","found","api","initOnEvents","getAudioContext","audioCtx","getAlertAudio","baseUrl","requestContext","playSound","audioBuffer","type","alertTone","resourceUrl","audioRequest","response","buffer","res"],"mappings":"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","x_google_ignoreList":[0]}