ng-toast-notify
Version:
Lightweight and flexible toast notifications for Angular
33 lines • 4.39 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class ToastysoundService {
constructor() {
this.oscillatorType = 'sine';
this.frequency = 430;
this.audioCtx = new AudioContext();
}
notify() {
if (this.audioCtx.state === 'suspended') {
this.audioCtx.resume();
}
const osc = this.audioCtx.createOscillator();
const gain = this.audioCtx.createGain();
osc.type = this.oscillatorType;
osc.frequency.value = this.frequency;
gain.gain.setValueAtTime(0.3, this.audioCtx.currentTime);
gain.gain.exponentialRampToValueAtTime(0.00009, this.audioCtx.currentTime + 0.4);
osc.connect(gain);
gain.connect(this.audioCtx.destination);
osc.start(0);
osc.stop(this.audioCtx.currentTime + 1);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastysoundService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastysoundService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastysoundService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3R5c291bmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRvYXN0LW5vdGlmeS9zcmMvbGliL3RvYXN0eXNvdW5kLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QjtRQUVRLG1CQUFjLEdBQW1CLE1BQU0sQ0FBQztRQUN4QyxjQUFTLEdBQVcsR0FBRyxDQUFDO1FBQ3hCLGFBQVEsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUpwQyxDQUFDO0lBTWpCLE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXhDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXJDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBRWpGLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBM0JVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb2FzdHlzb3VuZFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBwcml2YXRlIG9zY2lsbGF0b3JUeXBlOiBPc2NpbGxhdG9yVHlwZSA9ICdzaW5lJztcclxuICBwcml2YXRlIGZyZXF1ZW5jeTogbnVtYmVyID0gNDMwO1xyXG4gIHByaXZhdGUgYXVkaW9DdHg6IEF1ZGlvQ29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTtcclxuXHJcbiAgbm90aWZ5KCkge1xyXG4gICAgaWYgKHRoaXMuYXVkaW9DdHguc3RhdGUgPT09ICdzdXNwZW5kZWQnKSB7XHJcbiAgICAgIHRoaXMuYXVkaW9DdHgucmVzdW1lKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IG9zYyA9IHRoaXMuYXVkaW9DdHguY3JlYXRlT3NjaWxsYXRvcigpO1xyXG4gICAgY29uc3QgZ2FpbiA9IHRoaXMuYXVkaW9DdHguY3JlYXRlR2FpbigpO1xyXG5cclxuICAgIG9zYy50eXBlID0gdGhpcy5vc2NpbGxhdG9yVHlwZTtcclxuICAgIG9zYy5mcmVxdWVuY3kudmFsdWUgPSB0aGlzLmZyZXF1ZW5jeTtcclxuXHJcbiAgICBnYWluLmdhaW4uc2V0VmFsdWVBdFRpbWUoMC4zLCB0aGlzLmF1ZGlvQ3R4LmN1cnJlbnRUaW1lKTtcclxuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMDksIHRoaXMuYXVkaW9DdHguY3VycmVudFRpbWUgKyAwLjQpO1xyXG5cclxuICAgIG9zYy5jb25uZWN0KGdhaW4pO1xyXG4gICAgZ2Fpbi5jb25uZWN0KHRoaXMuYXVkaW9DdHguZGVzdGluYXRpb24pO1xyXG5cclxuICAgIG9zYy5zdGFydCgwKTtcclxuICAgIG9zYy5zdG9wKHRoaXMuYXVkaW9DdHguY3VycmVudFRpbWUgKyAxKTtcclxuICB9XHJcbn1cclxuIl19