;(function(exports){'use strict';const SETTINGS={notificationVolume:'audio.volume.notification',vibration:'vibration.enabled'};const ATTENTION_PATTERN=[4,1,2,1,2,1];ATTENTION_PATTERN.push(...ATTENTION_PATTERN);const ATTENTION_SOUND_VOLUME=0.3;function getSetting(key){if(!navigator.mozSettings){return Promise.reject(new Error('The mozSettings API is not available.'));} return navigator.mozSettings.createLock().get(key).then((result)=>result[key]);} function getSettings(settings){return Promise.all(settings.map(getSetting)).catch((e)=>{console.error('Error while retrieving settings',e.message,e);return settings.map(()=>null);}).then((results)=>{return settings.reduce((result,setting,i)=>{result[setting]=results[i];return result;},{});});} function getAttentionCurveWave(){var result=[];var currentValue=ATTENTION_SOUND_VOLUME;ATTENTION_PATTERN.forEach(duration=>{for(var i=0;ivalue*500);if(document.hidden){window.addEventListener('visibilitychange',function waitOn(){window.removeEventListener('visibilitychange',waitOn);navigator.vibrate(pattern);});}else{navigator.vibrate(pattern);}} var Notify={notify:function notification_ringtone(){return getSettings([SETTINGS.notificationVolume,SETTINGS.vibration]).then((settings)=>{if(settings[SETTINGS.notificationVolume]){ringtone();} if(settings[SETTINGS.vibration]){vibrate();}});}};exports.Notify=Notify;}(this));