Socket
Socket
Sign inDemoInstall

ngx-audio-player

Package Overview
Dependencies
Maintainers
1
Versions
64
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-audio-player - npm Package Compare versions

Comparing version 7.0.14 to 7.0.15

4

bundles/ngx-audio-player.umd.js

@@ -269,2 +269,4 @@ (function (global, factory) {

_this.dataSource = new material.MatTableDataSource();
_this.displayTitle = true;
_this.displayPlaylist = true;
return _this;

@@ -412,3 +414,3 @@ }

selector: 'mat-advanced-audio-player',
template: "<mat-card class=\"row d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"py-3 px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"py-3 px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
template: "<mat-card class=\"d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"my-auto px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill my-auto p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"my-auto px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card{padding:0!important}mat-slider{max-height:30px}table{width:100%}button:focus,button:hover{outline:0!important}.ngx-advanced-audio-player{min-width:275px}"]

@@ -415,0 +417,0 @@ }] }

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("rxjs"),require("@angular/material"),require("@angular/common"),require("@angular/core"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/fontawesome-svg-core"),require("@fortawesome/free-solid-svg-icons"),require("@angular/forms")):"function"==typeof define&&define.amd?define("ngx-audio-player",["exports","rxjs","@angular/material","@angular/common","@angular/core","@fortawesome/angular-fontawesome","@fortawesome/fontawesome-svg-core","@fortawesome/free-solid-svg-icons","@angular/forms"],e):e(t["ngx-audio-player"]={},t.rxjs,t.ng.material,t.ng.common,t.ng.core,t.angularFontawesome,t.fontawesomeSvgCore,t.freeSolidSvgIcons,t.ng.forms)}(this,function(t,e,a,n,i,r,o,s,l){"use strict";var c=function(t,e){return(c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function p(t,e){function n(){this.constructor=t}c(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var d=function(){function t(){this.playlist=[],this.indexSong=0,this.currentTrack=new e.BehaviorSubject(this.playlist[this.indexSong]),this.currentTime=0,this.duration=0}return t.prototype.init=function(){this.updateCurrentSong()},t.prototype.nextSong=function(){this.indexSong+1>=this.playlist.length?this.indexSong=0:this.indexSong++,this.updateCurrentSong()},t.prototype.previousSong=function(){this.indexSong-1<0?this.indexSong=this.playlist.length-1:this.indexSong--,this.updateCurrentSong()},t.prototype.resetPlaylist=function(){this.indexSong=0,this.updateCurrentSong()},t.prototype.selectATrack=function(t){this.indexSong=t-1,this.updateCurrentSong()},t.prototype.updateCurrentSong=function(){var t=this.playlist[this.indexSong],e=0<=this.indexSong-1?this.playlist[this.indexSong-1]:this.playlist[this.playlist.length-1],n=this.indexSong+1>=this.playlist.length?this.playlist[0]:this.playlist[this.indexSong+1];this.currentTrack.next([e,t,n])},t.prototype.getSubjectCurrentTrack=function(){return this.currentTrack},t.prototype.getPlaylist=function(){return this.playlist},t.prototype.setPlaylist=function(t){this.playlist=t},t.prototype.getIndexSong=function(){return this.indexSong},t.decorators=[{type:i.Injectable}],t.ctorParameters=function(){return[]},t}(),u=function(){function t(){this.loaderDisplay=!1,this.isPlaying=!1,this.currentTime=0,this.duration=.01}return t.prototype.currTimePosChanged=function(t){this.player.nativeElement.currentTime=t.value},t.prototype.bindPlayerEvent=function(){var t=this;this.player.nativeElement.addEventListener("playing",function(){t.isPlaying=!0,t.duration=Math.floor(t.player.nativeElement.duration)}),this.player.nativeElement.addEventListener("pause",function(){t.isPlaying=!1}),this.player.nativeElement.addEventListener("timeupdate",function(){t.currentTime=Math.floor(t.player.nativeElement.currentTime)}),this.player.nativeElement.addEventListener("loadstart",function(){t.loaderDisplay=!0}),this.player.nativeElement.addEventListener("loadeddata",function(){t.loaderDisplay=!1,t.duration=Math.floor(t.player.nativeElement.duration)})},t.prototype.playBtnHandler=function(){this.loaderDisplay||(this.player.nativeElement.paused?this.player.nativeElement.play(this.currentTime):(this.currentTime=this.player.nativeElement.currentTime,this.player.nativeElement.pause()))},t.prototype.play=function(){var t=this;setTimeout(function(){t.player.nativeElement.play()},0)},t.propDecorators={player:[{type:i.ViewChild,args:["audioPlayer"]}]},t}(),y=function(n){function t(t){var e=n.call(this)||this;return e.playlistService=t,e.displayedColumns=["title","status"],e.dataSource=new a.MatTableDataSource,e}return p(t,n),t.prototype.ngOnInit=function(){var e=this;this.setDataSourceAttributes(),this.bindPlayerEvent(),this.playlistService.setPlaylist(this.playlistData),this.playlistService.getSubjectCurrentTrack().subscribe(function(t){e.playlistTrack=t}),this.player.nativeElement.currentTime=0,this.playlistService.init()},Object.defineProperty(t.prototype,"matPaginator",{set:function(t){this.paginator=t,this.setDataSourceAttributes()},enumerable:!0,configurable:!0}),t.prototype.setDataSourceAttributes=function(){var e=1;this.playlistData&&(this.playlistData.forEach(function(t){t.index=e++}),this.dataSource=new a.MatTableDataSource(this.playlistData),this.dataSource.paginator=this.paginator)},t.prototype.nextSong=function(){(this.playlistService.indexSong+1)%this.paginator.pageSize!=0&&this.playlistService.indexSong+1!==this.paginator.length||(this.paginator.hasNextPage()?this.paginator.nextPage():this.paginator.hasNextPage()||this.paginator.firstPage()),this.currentTime=0,this.duration=.01,this.playlistService.nextSong(),this.play()},t.prototype.previousSong=function(){this.currentTime=0,this.duration=.01,this.checkIfSongHasStartedSinceAtleastTwoSeconds()?this.resetSong():(this.playlistService.indexSong%this.paginator.pageSize!=0&&0!==this.playlistService.indexSong||(this.paginator.hasPreviousPage()?this.paginator.previousPage():this.paginator.hasPreviousPage()||this.paginator.lastPage()),this.playlistService.previousSong()),this.play()},t.prototype.resetSong=function(){this.player.nativeElement.src=this.playlistTrack[1].link},t.prototype.selectTrack=function(t){var e=this;console.log("selectTrack(index: number): void: "+t),this.playlistService.selectATrack(t),setTimeout(function(){e.player.nativeElement.play()},0)},t.prototype.checkIfSongHasStartedSinceAtleastTwoSeconds=function(){return 2<this.player.nativeElement.currentTime},Object.defineProperty(t.prototype,"playlist",{set:function(t){this.playlistData=t,this.ngOnInit()},enumerable:!0,configurable:!0}),t.decorators=[{type:i.Component,args:[{selector:"mat-advanced-audio-player",template:'<mat-card class="row d-flex justify-content-center ngx-advanced-audio-player" style="margin: 0px;">\n <audio [src]="playlistTrack[1].link" #audioPlayer></audio>\n \n <button mat-button class="p-1" style="border-left: 1px solid #ddd;" (click)=\'previousSong();\' [disabled]="loaderDisplay">\n <fa-icon class="fa fa-lg" [icon]="[\'fas\',\'step-backward\']" aria-hidden="true"></fa-icon>\n </button>\n <button mat-button class="p-1" (click)=\'playBtnHandler();\' style="border-left: 2px solid #ccc; border-right: 2px solid #ccc;"\n [disabled]="loaderDisplay">\n <fa-icon *ngIf="loaderDisplay" title="loading..." class="fa fa-2x loading-track" [pulse]="true" [icon]="[\'fas\',\'spinner\']"\n aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!loaderDisplay && !isPlaying" class="fa fa-2x play-track" style="color:#444" [icon]="[\'fas\',\'play\']"\n aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!loaderDisplay && isPlaying" class="fa fa-2x pause-track" style="color:#444" [icon]="[\'fas\',\'pause\']"\n aria-hidden="true"></fa-icon>\n </button>\n <button mat-button class="p-1" style="border-right: 1px solid #ddd;" (click)=\'nextSong();\' [disabled]="loaderDisplay">\n <fa-icon class="fa fa-lg next-track" [icon]="[\'fas\',\'step-forward\']" aria-hidden="true"></fa-icon>\n </button>\n\n <div class="col">\n <div class="d-flex flex-fill">\n <div class="py-3 px-1" style="font-size: 12px">\n <span *ngIf="duration !== 0.01">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class="flex-fill p-1" style="width: 100%" min="0" max="{{duration}}" value="{{currentTime}}" (change)="currTimePosChanged($event)"></mat-slider>\n\n <div class="py-3 px-1" style="font-size: 12px; text-align: right">\n <span *ngIf="duration !== 0.01">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf="displayTitle" style="border: 1px solid #ddd; box-shadow: none;">\n <div class="p-1" style="text-align: center;">\n <div style="padding:1px 3px;">\n <span *ngIf="!isPlaying">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf="isPlaying" behavior="scroll" direction="left">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class="clear"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf="displayPlaylist">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]="dataSource" class="mat-elevation-z6">\n <ng-container matColumnDef="title">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef="let element" (click)="selectTrack(element.index)"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef="status">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef="let element">\n <div *ngIf="playlistTrack[1].title === element.title">\n <fa-icon *ngIf="isPlaying" class="fa" [icon]="[\'fas\',\'play\']" [spin]="true" aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!isPlaying" class="fa" [icon]="[\'fas\',\'play\']" aria-hidden="true"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>\n <tr class="mat-select-content" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>\n </table>\n <mat-paginator [pageSizeOptions]="[2, 5, 10]" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>',styles:["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card{padding:0!important}mat-slider{max-height:30px}table{width:100%}button:focus,button:hover{outline:0!important}.ngx-advanced-audio-player{min-width:275px}"]}]}],t.ctorParameters=function(){return[{type:d}]},t.propDecorators={displayTitle:[{type:i.Input}],displayPlaylist:[{type:i.Input}],matPaginator:[{type:i.ViewChild,args:[a.MatPaginator]}],playlist:[{type:i.Input}]},t}(u),f=function(e){function t(){var t=e.call(this)||this;return t.displayTitle=!1,t}return p(t,e),t.prototype.ngOnInit=function(){this.bindPlayerEvent()},t.prototype.resetSong=function(){this.player.nativeElement.src=this.audioUrl},t.decorators=[{type:i.Component,args:[{selector:"mat-basic-audio-player",template:'<mat-card class="d-flex ngx-basic-audio-player">\n <audio [src]="audioUrl" #audioPlayer></audio>\n <button mat-button (click)=\'playBtnHandler();\' class="ngx-basic-audio-player-button-handler" style="font-size: 14px!important;" [disabled]="loaderDisplay">\n <fa-icon *ngIf="loaderDisplay" title="loading..." class="fa fa-lg loading-track" [pulse]="true" [icon]="[\'fas\',\'spinner\']"\n aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!loaderDisplay && !isPlaying" class="fa fa-lg play-track" [icon]="[\'fas\',\'play\']" aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!loaderDisplay && isPlaying" class="fa fa-lg pause-track" [icon]="[\'fas\',\'pause\']" aria-hidden="true"></fa-icon>\n </button>\n <div class="flex-fill pl-1 ngx-basic-audio-player-slider">\n <mat-slider style="width: 100%" min="0" max="{{duration}}" value="{{currentTime}}" (change)="currTimePosChanged($event)"></mat-slider>\n </div>\n <div class="d-flex ngx-basic-audio-player-duration">\n <span *ngIf="duration !== 0.01" class="pl-2 pr-3 my-auto" style="font-size: 14px!important;">\n -{{duration-currentTime |\n secondsToMinutes }}\n </span>\n </div>\n</mat-card>\n<mat-card *ngIf="displayTitle && title !== \'\'" style="border-top: 1px solid #ddd;">\n <div style="text-align: center;">\n <div style="padding:1px 3px;">\n {{ title }}\n </div>\n </div>\n</mat-card>\n',styles:["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}.ngx-basic-audio-player{min-width:275px}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={title:[{type:i.Input}],audioUrl:[{type:i.Input}],displayTitle:[{type:i.Input}]},t}(u),g=function(){function t(){}return t.prototype.transform=function(t){return("0"+Math.floor(t/60)).slice(-2)+":"+("0"+t%60).slice(-2)},t.decorators=[{type:i.Pipe,args:[{name:"secondsToMinutes"}]}],t}(),h=function(){function t(){o.library.add(s.faPlay,s.faPause,s.faSpinner,s.faStepForward,s.faStepBackward)}return t.decorators=[{type:i.NgModule,args:[{declarations:[f,g,y],imports:[n.CommonModule,a.MatButtonModule,a.MatCardModule,a.MatTableModule,a.MatFormFieldModule,a.MatSliderModule,a.MatExpansionModule,a.MatPaginatorModule,l.FormsModule,r.FontAwesomeModule],exports:[f,y],providers:[d]}]}],t.ctorParameters=function(){return[]},t}(),m=function v(){};t.MatAdvancedAudioPlayerComponent=y,t.MatBasicAudioPlayerComponent=f,t.NgxAudioPlayerModule=h,t.Track=m,t.ɵa=u,t.ɵc=g,t.ɵb=d,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("rxjs"),require("@angular/material"),require("@angular/common"),require("@angular/core"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/fontawesome-svg-core"),require("@fortawesome/free-solid-svg-icons"),require("@angular/forms")):"function"==typeof define&&define.amd?define("ngx-audio-player",["exports","rxjs","@angular/material","@angular/common","@angular/core","@fortawesome/angular-fontawesome","@fortawesome/fontawesome-svg-core","@fortawesome/free-solid-svg-icons","@angular/forms"],e):e(t["ngx-audio-player"]={},t.rxjs,t.ng.material,t.ng.common,t.ng.core,t.angularFontawesome,t.fontawesomeSvgCore,t.freeSolidSvgIcons,t.ng.forms)}(this,function(t,e,n,a,i,r,o,s,l){"use strict";var c=function(t,e){return(c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var a in e)e.hasOwnProperty(a)&&(t[a]=e[a])})(t,e)};function p(t,e){function a(){this.constructor=t}c(t,e),t.prototype=null===e?Object.create(e):(a.prototype=e.prototype,new a)}var d=function(){function t(){this.playlist=[],this.indexSong=0,this.currentTrack=new e.BehaviorSubject(this.playlist[this.indexSong]),this.currentTime=0,this.duration=0}return t.prototype.init=function(){this.updateCurrentSong()},t.prototype.nextSong=function(){this.indexSong+1>=this.playlist.length?this.indexSong=0:this.indexSong++,this.updateCurrentSong()},t.prototype.previousSong=function(){this.indexSong-1<0?this.indexSong=this.playlist.length-1:this.indexSong--,this.updateCurrentSong()},t.prototype.resetPlaylist=function(){this.indexSong=0,this.updateCurrentSong()},t.prototype.selectATrack=function(t){this.indexSong=t-1,this.updateCurrentSong()},t.prototype.updateCurrentSong=function(){var t=this.playlist[this.indexSong],e=0<=this.indexSong-1?this.playlist[this.indexSong-1]:this.playlist[this.playlist.length-1],a=this.indexSong+1>=this.playlist.length?this.playlist[0]:this.playlist[this.indexSong+1];this.currentTrack.next([e,t,a])},t.prototype.getSubjectCurrentTrack=function(){return this.currentTrack},t.prototype.getPlaylist=function(){return this.playlist},t.prototype.setPlaylist=function(t){this.playlist=t},t.prototype.getIndexSong=function(){return this.indexSong},t.decorators=[{type:i.Injectable}],t.ctorParameters=function(){return[]},t}(),u=function(){function t(){this.loaderDisplay=!1,this.isPlaying=!1,this.currentTime=0,this.duration=.01}return t.prototype.currTimePosChanged=function(t){this.player.nativeElement.currentTime=t.value},t.prototype.bindPlayerEvent=function(){var t=this;this.player.nativeElement.addEventListener("playing",function(){t.isPlaying=!0,t.duration=Math.floor(t.player.nativeElement.duration)}),this.player.nativeElement.addEventListener("pause",function(){t.isPlaying=!1}),this.player.nativeElement.addEventListener("timeupdate",function(){t.currentTime=Math.floor(t.player.nativeElement.currentTime)}),this.player.nativeElement.addEventListener("loadstart",function(){t.loaderDisplay=!0}),this.player.nativeElement.addEventListener("loadeddata",function(){t.loaderDisplay=!1,t.duration=Math.floor(t.player.nativeElement.duration)})},t.prototype.playBtnHandler=function(){this.loaderDisplay||(this.player.nativeElement.paused?this.player.nativeElement.play(this.currentTime):(this.currentTime=this.player.nativeElement.currentTime,this.player.nativeElement.pause()))},t.prototype.play=function(){var t=this;setTimeout(function(){t.player.nativeElement.play()},0)},t.propDecorators={player:[{type:i.ViewChild,args:["audioPlayer"]}]},t}(),y=function(a){function t(t){var e=a.call(this)||this;return e.playlistService=t,e.displayedColumns=["title","status"],e.dataSource=new n.MatTableDataSource,e.displayTitle=!0,e.displayPlaylist=!0,e}return p(t,a),t.prototype.ngOnInit=function(){var e=this;this.setDataSourceAttributes(),this.bindPlayerEvent(),this.playlistService.setPlaylist(this.playlistData),this.playlistService.getSubjectCurrentTrack().subscribe(function(t){e.playlistTrack=t}),this.player.nativeElement.currentTime=0,this.playlistService.init()},Object.defineProperty(t.prototype,"matPaginator",{set:function(t){this.paginator=t,this.setDataSourceAttributes()},enumerable:!0,configurable:!0}),t.prototype.setDataSourceAttributes=function(){var e=1;this.playlistData&&(this.playlistData.forEach(function(t){t.index=e++}),this.dataSource=new n.MatTableDataSource(this.playlistData),this.dataSource.paginator=this.paginator)},t.prototype.nextSong=function(){(this.playlistService.indexSong+1)%this.paginator.pageSize!=0&&this.playlistService.indexSong+1!==this.paginator.length||(this.paginator.hasNextPage()?this.paginator.nextPage():this.paginator.hasNextPage()||this.paginator.firstPage()),this.currentTime=0,this.duration=.01,this.playlistService.nextSong(),this.play()},t.prototype.previousSong=function(){this.currentTime=0,this.duration=.01,this.checkIfSongHasStartedSinceAtleastTwoSeconds()?this.resetSong():(this.playlistService.indexSong%this.paginator.pageSize!=0&&0!==this.playlistService.indexSong||(this.paginator.hasPreviousPage()?this.paginator.previousPage():this.paginator.hasPreviousPage()||this.paginator.lastPage()),this.playlistService.previousSong()),this.play()},t.prototype.resetSong=function(){this.player.nativeElement.src=this.playlistTrack[1].link},t.prototype.selectTrack=function(t){var e=this;console.log("selectTrack(index: number): void: "+t),this.playlistService.selectATrack(t),setTimeout(function(){e.player.nativeElement.play()},0)},t.prototype.checkIfSongHasStartedSinceAtleastTwoSeconds=function(){return 2<this.player.nativeElement.currentTime},Object.defineProperty(t.prototype,"playlist",{set:function(t){this.playlistData=t,this.ngOnInit()},enumerable:!0,configurable:!0}),t.decorators=[{type:i.Component,args:[{selector:"mat-advanced-audio-player",template:'<mat-card class="d-flex justify-content-center ngx-advanced-audio-player" style="margin: 0px;">\n <audio [src]="playlistTrack[1].link" #audioPlayer></audio>\n \n <button mat-button class="p-1" style="border-left: 1px solid #ddd;" (click)=\'previousSong();\' [disabled]="loaderDisplay">\n <fa-icon class="fa fa-lg" [icon]="[\'fas\',\'step-backward\']" aria-hidden="true"></fa-icon>\n </button>\n <button mat-button class="p-1" (click)=\'playBtnHandler();\' style="border-left: 2px solid #ccc; border-right: 2px solid #ccc;"\n [disabled]="loaderDisplay">\n <fa-icon *ngIf="loaderDisplay" title="loading..." class="fa fa-2x loading-track" [pulse]="true" [icon]="[\'fas\',\'spinner\']"\n aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!loaderDisplay && !isPlaying" class="fa fa-2x play-track" style="color:#444" [icon]="[\'fas\',\'play\']"\n aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!loaderDisplay && isPlaying" class="fa fa-2x pause-track" style="color:#444" [icon]="[\'fas\',\'pause\']"\n aria-hidden="true"></fa-icon>\n </button>\n <button mat-button class="p-1" style="border-right: 1px solid #ddd;" (click)=\'nextSong();\' [disabled]="loaderDisplay">\n <fa-icon class="fa fa-lg next-track" [icon]="[\'fas\',\'step-forward\']" aria-hidden="true"></fa-icon>\n </button>\n\n <div class="col">\n <div class="d-flex flex-fill">\n <div class="my-auto px-1" style="font-size: 12px">\n <span *ngIf="duration !== 0.01">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class="flex-fill my-auto p-1" style="width: 100%" min="0" max="{{duration}}" value="{{currentTime}}" (change)="currTimePosChanged($event)"></mat-slider>\n\n <div class="my-auto px-1" style="font-size: 12px; text-align: right">\n <span *ngIf="duration !== 0.01">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf="displayTitle" style="border: 1px solid #ddd; box-shadow: none;">\n <div class="p-1" style="text-align: center;">\n <div style="padding:1px 3px;">\n <span *ngIf="!isPlaying">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf="isPlaying" behavior="scroll" direction="left">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class="clear"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf="displayPlaylist">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]="dataSource" class="mat-elevation-z6">\n <ng-container matColumnDef="title">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef="let element" (click)="selectTrack(element.index)"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef="status">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef="let element">\n <div *ngIf="playlistTrack[1].title === element.title">\n <fa-icon *ngIf="isPlaying" class="fa" [icon]="[\'fas\',\'play\']" [spin]="true" aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!isPlaying" class="fa" [icon]="[\'fas\',\'play\']" aria-hidden="true"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>\n <tr class="mat-select-content" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>\n </table>\n <mat-paginator [pageSizeOptions]="[2, 5, 10]" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>',styles:["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card{padding:0!important}mat-slider{max-height:30px}table{width:100%}button:focus,button:hover{outline:0!important}.ngx-advanced-audio-player{min-width:275px}"]}]}],t.ctorParameters=function(){return[{type:d}]},t.propDecorators={displayTitle:[{type:i.Input}],displayPlaylist:[{type:i.Input}],matPaginator:[{type:i.ViewChild,args:[n.MatPaginator]}],playlist:[{type:i.Input}]},t}(u),f=function(e){function t(){var t=e.call(this)||this;return t.displayTitle=!1,t}return p(t,e),t.prototype.ngOnInit=function(){this.bindPlayerEvent()},t.prototype.resetSong=function(){this.player.nativeElement.src=this.audioUrl},t.decorators=[{type:i.Component,args:[{selector:"mat-basic-audio-player",template:'<mat-card class="d-flex ngx-basic-audio-player">\n <audio [src]="audioUrl" #audioPlayer></audio>\n <button mat-button (click)=\'playBtnHandler();\' class="ngx-basic-audio-player-button-handler" style="font-size: 14px!important;" [disabled]="loaderDisplay">\n <fa-icon *ngIf="loaderDisplay" title="loading..." class="fa fa-lg loading-track" [pulse]="true" [icon]="[\'fas\',\'spinner\']"\n aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!loaderDisplay && !isPlaying" class="fa fa-lg play-track" [icon]="[\'fas\',\'play\']" aria-hidden="true"></fa-icon>\n <fa-icon *ngIf="!loaderDisplay && isPlaying" class="fa fa-lg pause-track" [icon]="[\'fas\',\'pause\']" aria-hidden="true"></fa-icon>\n </button>\n <div class="flex-fill pl-1 ngx-basic-audio-player-slider">\n <mat-slider style="width: 100%" min="0" max="{{duration}}" value="{{currentTime}}" (change)="currTimePosChanged($event)"></mat-slider>\n </div>\n <div class="d-flex ngx-basic-audio-player-duration">\n <span *ngIf="duration !== 0.01" class="pl-2 pr-3 my-auto" style="font-size: 14px!important;">\n -{{duration-currentTime |\n secondsToMinutes }}\n </span>\n </div>\n</mat-card>\n<mat-card *ngIf="displayTitle && title !== \'\'" style="border-top: 1px solid #ddd;">\n <div style="text-align: center;">\n <div style="padding:1px 3px;">\n {{ title }}\n </div>\n </div>\n</mat-card>\n',styles:["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}.ngx-basic-audio-player{min-width:275px}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={title:[{type:i.Input}],audioUrl:[{type:i.Input}],displayTitle:[{type:i.Input}]},t}(u),g=function(){function t(){}return t.prototype.transform=function(t){return("0"+Math.floor(t/60)).slice(-2)+":"+("0"+t%60).slice(-2)},t.decorators=[{type:i.Pipe,args:[{name:"secondsToMinutes"}]}],t}(),h=function(){function t(){o.library.add(s.faPlay,s.faPause,s.faSpinner,s.faStepForward,s.faStepBackward)}return t.decorators=[{type:i.NgModule,args:[{declarations:[f,g,y],imports:[a.CommonModule,n.MatButtonModule,n.MatCardModule,n.MatTableModule,n.MatFormFieldModule,n.MatSliderModule,n.MatExpansionModule,n.MatPaginatorModule,l.FormsModule,r.FontAwesomeModule],exports:[f,y],providers:[d]}]}],t.ctorParameters=function(){return[]},t}(),m=function v(){};t.MatAdvancedAudioPlayerComponent=y,t.MatBasicAudioPlayerComponent=f,t.NgxAudioPlayerModule=h,t.Track=m,t.ɵa=u,t.ɵc=g,t.ɵb=d,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=ngx-audio-player.umd.min.js.map

@@ -18,2 +18,4 @@ /**

this.dataSource = new MatTableDataSource();
this.displayTitle = true;
this.displayPlaylist = true;
}

@@ -136,3 +138,3 @@ /**

selector: 'mat-advanced-audio-player',
template: "<mat-card class=\"row d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"py-3 px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"py-3 px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
template: "<mat-card class=\"d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"my-auto px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill my-auto p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"my-auto px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card{padding:0!important}mat-slider{max-height:30px}table{width:100%}button:focus,button:hover{outline:0!important}.ngx-advanced-audio-player{min-width:275px}"]

@@ -179,2 +181,2 @@ }] }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWFkdmFuY2VkLWF1ZGlvLXBsYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYXVkaW8tcGxheWVyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudC9tYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyL21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFhLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBT2hGLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSx3QkFBd0I7Ozs7SUFtQnpFLFlBQW9CLGVBQW1DO1FBQ25ELEtBQUssRUFBRSxDQUFDO1FBRFEsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBakJ2RCxxQkFBZ0IsR0FBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUdqRCxlQUFVLEdBQUcsSUFBSSxrQkFBa0IsRUFBUyxDQUFDO0lBZ0I3QyxDQUFDOzs7O0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ3RFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0gs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Q0FBQyxDQUFDLElBQUksQ0FBQztJQUMvRCxDQUFDO0lBQUEsQ0FBQzs7Ozs7SUFFRixXQUFXLENBQUMsS0FBYTtRQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQUEsQ0FBQzs7OztJQUVGLDJDQUEyQztRQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUFBLENBQUM7Ozs7O0lBRUYsSUFDSSxRQUFRLENBQUMsUUFBaUI7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7OztZQTdHSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsaXRIQUF5RDs7YUFFNUQ7Ozs7WUFUUSxrQkFBa0I7OzsyQkFxQnRCLEtBQUs7OEJBR0wsS0FBSzsyQkFvQkwsU0FBUyxTQUFDLFlBQVk7dUJBa0V0QixLQUFLOzs7O0lBbEdOLDJEQUFpRDs7SUFDakQsMkRBQTRCOztJQUU1QixxREFBNkM7O0lBRTdDLG9EQUF3Qjs7SUFFeEIsdURBQXNCOztJQUV0Qix1REFDbUI7O0lBRW5CLDBEQUNzQjs7SUFFdEIsd0RBQW1COzs7OztJQUVQLDBEQUEyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdWRpb1BsYXllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2F1ZGlvLXBsYXllci1zZXJ2aWNlL2F1ZGlvLXBsYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdFNsaWRlciwgTWF0UGFnaW5hdG9yLCBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBUcmFjayB9IGZyb20gJy4uLy4uL21vZGVsL3RyYWNrLm1vZGVsJztcbmltcG9ydCB7IEJhc2VBdWRpb1BsYXllckZ1bmN0aW9ucyB9IGZyb20gJy4uL2Jhc2UvYmFzZS1hdWRpby1wbGF5ZXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWF0LWFkdmFuY2VkLWF1ZGlvLXBsYXllcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1hdEFkdmFuY2VkQXVkaW9QbGF5ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQXVkaW9QbGF5ZXJGdW5jdGlvbnMgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ3RpdGxlJywgJ3N0YXR1cyddO1xuICAgIHRpbWVMaW5lRHVyYXRpb246IE1hdFNsaWRlcjtcblxuICAgIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRyYWNrPigpO1xuXG4gICAgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgICBwbGF5bGlzdERhdGE6IFRyYWNrW107XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlUaXRsZTogdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheVBsYXlsaXN0OiB0cnVlO1xuXG4gICAgcGxheWxpc3RUcmFjazogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwbGF5bGlzdFNlcnZpY2U6IEF1ZGlvUGxheWVyU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldERhdGFTb3VyY2VBdHRyaWJ1dGVzKCk7XG4gICAgICAgIHRoaXMuYmluZFBsYXllckV2ZW50KCk7XG4gICAgICAgIHRoaXMucGxheWxpc3RTZXJ2aWNlLnNldFBsYXlsaXN0KHRoaXMucGxheWxpc3REYXRhKTtcbiAgICAgICAgdGhpcy5wbGF5bGlzdFNlcnZpY2UuZ2V0U3ViamVjdEN1cnJlbnRUcmFjaygpLnN1YnNjcmliZSgocGxheWxpc3RUcmFjaykgPT4ge1xuICAgICAgICAgICAgdGhpcy5wbGF5bGlzdFRyYWNrID0gcGxheWxpc3RUcmFjaztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPSAwO1xuICAgICAgICB0aGlzLnBsYXlsaXN0U2VydmljZS5pbml0KCk7XG4gICAgfVxuXG4gICAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHNldCBtYXRQYWdpbmF0b3IobXA6IE1hdFBhZ2luYXRvcikge1xuICAgICAgICB0aGlzLnBhZ2luYXRvciA9IG1wO1xuICAgICAgICB0aGlzLnNldERhdGFTb3VyY2VBdHRyaWJ1dGVzKCk7XG4gICAgfVxuXG4gICAgc2V0RGF0YVNvdXJjZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIGxldCBpbmRleCA9IDE7XG4gICAgICAgIGlmICh0aGlzLnBsYXlsaXN0RGF0YSkge1xuICAgICAgICAgICAgdGhpcy5wbGF5bGlzdERhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBkYXRhLmluZGV4ID0gaW5kZXgrKztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxUcmFjaz4odGhpcy5wbGF5bGlzdERhdGEpO1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV4dFNvbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICgoKHRoaXMucGxheWxpc3RTZXJ2aWNlLmluZGV4U29uZyArIDEpICUgdGhpcy5wYWdpbmF0b3IucGFnZVNpemUpID09PSAwIHx8XG4gICAgICAgICAgICAodGhpcy5wbGF5bGlzdFNlcnZpY2UuaW5kZXhTb25nICsgMSkgPT09IHRoaXMucGFnaW5hdG9yLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yLmhhc05leHRQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5uZXh0UGFnZSgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5wYWdpbmF0b3IuaGFzTmV4dFBhZ2UoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLmZpcnN0UGFnZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSAwO1xuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMC4wMTtcbiAgICAgICAgdGhpcy5wbGF5bGlzdFNlcnZpY2UubmV4dFNvbmcoKTtcbiAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgfTtcblxuICAgIHByZXZpb3VzU29uZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IDA7XG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSAwLjAxO1xuICAgICAgICBpZiAoIXRoaXMuY2hlY2tJZlNvbmdIYXNTdGFydGVkU2luY2VBdGxlYXN0VHdvU2Vjb25kcygpKSB7XG4gICAgICAgICAgICBpZiAoKCh0aGlzLnBsYXlsaXN0U2VydmljZS5pbmRleFNvbmcpICUgdGhpcy5wYWdpbmF0b3IucGFnZVNpemUpID09PSAwIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMucGxheWxpc3RTZXJ2aWNlLmluZGV4U29uZykgPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IuaGFzUHJldmlvdXNQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IucHJldmlvdXNQYWdlKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5wYWdpbmF0b3IuaGFzUHJldmlvdXNQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IubGFzdFBhZ2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBsYXlsaXN0U2VydmljZS5wcmV2aW91c1NvbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRTb25nKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgfTtcblxuICAgIHJlc2V0U29uZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5zcmMgPSB0aGlzLnBsYXlsaXN0VHJhY2tbMV0ubGluaztcbiAgICB9O1xuXG4gICAgc2VsZWN0VHJhY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zb2xlLmxvZygnc2VsZWN0VHJhY2soaW5kZXg6IG51bWJlcik6IHZvaWQ6ICcgKyBpbmRleCk7XG4gICAgICAgIHRoaXMucGxheWxpc3RTZXJ2aWNlLnNlbGVjdEFUcmFjayhpbmRleCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5wbGF5KCk7XG4gICAgICAgIH0sIDApO1xuICAgIH07XG5cbiAgICBjaGVja0lmU29uZ0hhc1N0YXJ0ZWRTaW5jZUF0bGVhc3RUd29TZWNvbmRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZSA+IDI7XG4gICAgfTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHBsYXlsaXN0KHBsYXlsaXN0OiBUcmFja1tdKSB7XG4gICAgICAgIHRoaXMucGxheWxpc3REYXRhID0gcGxheWxpc3Q7XG4gICAgICAgIHRoaXMubmdPbkluaXQoKTtcbiAgICB9XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWFkdmFuY2VkLWF1ZGlvLXBsYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYXVkaW8tcGxheWVyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudC9tYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyL21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFhLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBT2hGLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSx3QkFBd0I7Ozs7SUFtQnpFLFlBQW9CLGVBQW1DO1FBQ25ELEtBQUssRUFBRSxDQUFDO1FBRFEsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBakJ2RCxxQkFBZ0IsR0FBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUdqRCxlQUFVLEdBQUcsSUFBSSxrQkFBa0IsRUFBUyxDQUFDO1FBTzdDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBR3BCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO0lBTXZCLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDdEUsSUFB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QU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9ELENBQUM7SUFBQSxDQUFDOzs7OztJQUVGLFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFBQSxDQUFDOzs7O0lBRUYsMkNBQTJDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQUEsQ0FBQzs7Ozs7SUFFRixJQUNJLFFBQVEsQ0FBQyxRQUFpQjtRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7O1lBN0dKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQywydEhBQXlEOzthQUU1RDs7OztZQVRRLGtCQUFrQjs7OzJCQXFCdEIsS0FBSzs4QkFHTCxLQUFLOzJCQW9CTCxTQUFTLFNBQUMsWUFBWTt1QkFrRXRCLEtBQUs7Ozs7SUFsR04sMkRBQWlEOztJQUNqRCwyREFBNEI7O0lBRTVCLHFEQUE2Qzs7SUFFN0Msb0RBQXdCOztJQUV4Qix1REFBc0I7O0lBRXRCLHVEQUNvQjs7SUFFcEIsMERBQ3VCOztJQUV2Qix3REFBbUI7Ozs7O0lBRVAsMERBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1ZGlvUGxheWVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXVkaW8tcGxheWVyLXNlcnZpY2UvYXVkaW8tcGxheWVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0U2xpZGVyLCBNYXRQYWdpbmF0b3IsIE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IFRyYWNrIH0gZnJvbSAnLi4vLi4vbW9kZWwvdHJhY2subW9kZWwnO1xuaW1wb3J0IHsgQmFzZUF1ZGlvUGxheWVyRnVuY3Rpb25zIH0gZnJvbSAnLi4vYmFzZS9iYXNlLWF1ZGlvLXBsYXllci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWF0LWFkdmFuY2VkLWF1ZGlvLXBsYXllci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWF0LWFkdmFuY2VkLWF1ZGlvLXBsYXllci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWF0QWR2YW5jZWRBdWRpb1BsYXllckNvbXBvbmVudCBleHRlbmRzIEJhc2VBdWRpb1BsYXllckZ1bmN0aW9ucyBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsndGl0bGUnLCAnc3RhdHVzJ107XG4gICAgdGltZUxpbmVEdXJhdGlvbjogTWF0U2xpZGVyO1xuXG4gICAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VHJhY2s+KCk7XG5cbiAgICBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICAgIHBsYXlsaXN0RGF0YTogVHJhY2tbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheVRpdGxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheVBsYXlsaXN0ID0gdHJ1ZTtcblxuICAgIHBsYXlsaXN0VHJhY2s6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGxheWxpc3RTZXJ2aWNlOiBBdWRpb1BsYXllclNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhU291cmNlQXR0cmlidXRlcygpO1xuICAgICAgICB0aGlzLmJpbmRQbGF5ZXJFdmVudCgpO1xuICAgICAgICB0aGlzLnBsYXlsaXN0U2VydmljZS5zZXRQbGF5bGlzdCh0aGlzLnBsYXlsaXN0RGF0YSk7XG4gICAgICAgIHRoaXMucGxheWxpc3RTZXJ2aWNlLmdldFN1YmplY3RDdXJyZW50VHJhY2soKS5zdWJzY3JpYmUoKHBsYXlsaXN0VHJhY2spID0+IHtcbiAgICAgICAgICAgIHRoaXMucGxheWxpc3RUcmFjayA9IHBsYXlsaXN0VHJhY2s7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lID0gMDtcbiAgICAgICAgdGhpcy5wbGF5bGlzdFNlcnZpY2UuaW5pdCgpO1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBzZXQgbWF0UGFnaW5hdG9yKG1wOiBNYXRQYWdpbmF0b3IpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IgPSBtcDtcbiAgICAgICAgdGhpcy5zZXREYXRhU291cmNlQXR0cmlidXRlcygpO1xuICAgIH1cblxuICAgIHNldERhdGFTb3VyY2VBdHRyaWJ1dGVzKCkge1xuICAgICAgICBsZXQgaW5kZXggPSAxO1xuICAgICAgICBpZiAodGhpcy5wbGF5bGlzdERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMucGxheWxpc3REYXRhLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgZGF0YS5pbmRleCA9IGluZGV4Kys7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VHJhY2s+KHRoaXMucGxheWxpc3REYXRhKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5leHRTb25nKCk6IHZvaWQge1xuICAgICAgICBpZiAoKCh0aGlzLnBsYXlsaXN0U2VydmljZS5pbmRleFNvbmcgKyAxKSAlIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplKSA9PT0gMCB8fFxuICAgICAgICAgICAgKHRoaXMucGxheWxpc3RTZXJ2aWNlLmluZGV4U29uZyArIDEpID09PSB0aGlzLnBhZ2luYXRvci5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhZ2luYXRvci5oYXNOZXh0UGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IubmV4dFBhZ2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucGFnaW5hdG9yLmhhc05leHRQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5maXJzdFBhZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gMDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDAuMDE7XG4gICAgICAgIHRoaXMucGxheWxpc3RTZXJ2aWNlLm5leHRTb25nKCk7XG4gICAgICAgIHRoaXMucGxheSgpO1xuICAgIH07XG5cbiAgICBwcmV2aW91c1NvbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSAwO1xuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMC4wMTtcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrSWZTb25nSGFzU3RhcnRlZFNpbmNlQXRsZWFzdFR3b1NlY29uZHMoKSkge1xuICAgICAgICAgICAgaWYgKCgodGhpcy5wbGF5bGlzdFNlcnZpY2UuaW5kZXhTb25nKSAlIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplKSA9PT0gMCB8fFxuICAgICAgICAgICAgICAgICh0aGlzLnBsYXlsaXN0U2VydmljZS5pbmRleFNvbmcpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLnByZXZpb3VzUGFnZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLmxhc3RQYWdlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wbGF5bGlzdFNlcnZpY2UucHJldmlvdXNTb25nKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U29uZygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGxheSgpO1xuICAgIH07XG5cbiAgICByZXNldFNvbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuc3JjID0gdGhpcy5wbGF5bGlzdFRyYWNrWzFdLmxpbms7XG4gICAgfTtcblxuICAgIHNlbGVjdFRyYWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS5sb2coJ3NlbGVjdFRyYWNrKGluZGV4OiBudW1iZXIpOiB2b2lkOiAnICsgaW5kZXgpO1xuICAgICAgICB0aGlzLnBsYXlsaXN0U2VydmljZS5zZWxlY3RBVHJhY2soaW5kZXgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQucGxheSgpO1xuICAgICAgICB9LCAwKTtcbiAgICB9O1xuXG4gICAgY2hlY2tJZlNvbmdIYXNTdGFydGVkU2luY2VBdGxlYXN0VHdvU2Vjb25kcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPiAyO1xuICAgIH07XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBwbGF5bGlzdChwbGF5bGlzdDogVHJhY2tbXSkge1xuICAgICAgICB0aGlzLnBsYXlsaXN0RGF0YSA9IHBsYXlsaXN0O1xuICAgICAgICB0aGlzLm5nT25Jbml0KCk7XG4gICAgfVxufSJdfQ==

@@ -17,2 +17,4 @@ /**

_this.dataSource = new MatTableDataSource();
_this.displayTitle = true;
_this.displayPlaylist = true;
return _this;

@@ -167,3 +169,3 @@ }

selector: 'mat-advanced-audio-player',
template: "<mat-card class=\"row d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"py-3 px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"py-3 px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
template: "<mat-card class=\"d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"my-auto px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill my-auto p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"my-auto px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card{padding:0!important}mat-slider{max-height:30px}table{width:100%}button:focus,button:hover{outline:0!important}.ngx-advanced-audio-player{min-width:275px}"]

@@ -213,2 +215,2 @@ }] }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWFkdmFuY2VkLWF1ZGlvLXBsYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYXVkaW8tcGxheWVyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudC9tYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyL21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzdGLE9BQU8sRUFBYSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVoRjtJQUtxRCwyREFBd0I7SUFtQnpFLHlDQUFvQixlQUFtQztRQUF2RCxZQUNJLGlCQUFPLFNBQ1Y7UUFGbUIscUJBQWUsR0FBZixlQUFlLENBQW9CO1FBakJ2RCxzQkFBZ0IsR0FBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUdqRCxnQkFBVSxHQUFHLElBQUksa0JBQWtCLEVBQVMsQ0FBQzs7SUFnQjdDLENBQUM7Ozs7SUFFRCxrREFBUTs7O0lBQVI7UUFBQSxpQkFTQztRQVJHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFDLGFBQWE7WUFDbEUsS0FBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJ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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXVkaW9QbGF5ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hdWRpby1wbGF5ZXItc2VydmljZS9hdWRpby1wbGF5ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRTbGlkZXIsIE1hdFBhZ2luYXRvciwgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgVHJhY2sgfSBmcm9tICcuLi8uLi9tb2RlbC90cmFjay5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlQXVkaW9QbGF5ZXJGdW5jdGlvbnMgfSBmcm9tICcuLi9iYXNlL2Jhc2UtYXVkaW8tcGxheWVyLWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNYXRBZHZhbmNlZEF1ZGlvUGxheWVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUF1ZGlvUGxheWVyRnVuY3Rpb25zIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gWyd0aXRsZScsICdzdGF0dXMnXTtcbiAgICB0aW1lTGluZUR1cmF0aW9uOiBNYXRTbGlkZXI7XG5cbiAgICBkYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxUcmFjaz4oKTtcblxuICAgIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gICAgcGxheWxpc3REYXRhOiBUcmFja1tdO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5VGl0bGU6IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlQbGF5bGlzdDogdHJ1ZTtcblxuICAgIHBsYXlsaXN0VHJhY2s6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGxheWxpc3RTZXJ2aWNlOiBBdWRpb1BsYXllclNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhU291cmNlQXR0cmlidXRlcygpO1xuICAgICAgICB0aGlzLmJpbmRQbGF5ZXJFdmVudCgpO1xuICAgICAgICB0aGlzLnBsYXlsaXN0U2VydmljZS5zZXRQbGF5bGlzdCh0aGlzLnBsYXlsaXN0RGF0YSk7XG4gICAgICAgIHRoaXMucGxheWxpc3RTZXJ2aWNlLmdldFN1YmplY3RDdXJyZW50VHJhY2soKS5zdWJzY3JpYmUoKHBsYXlsaXN0VHJhY2spID0+IHtcbiAgICAgICAgICAgIHRoaXMucGxheWxpc3RUcmFjayA9IHBsYXlsaXN0VHJhY2s7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lID0gMDtcbiAgICAgICAgdGhpcy5wbGF5bGlzdFNlcnZpY2UuaW5pdCgpO1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBzZXQgbWF0UGFnaW5hdG9yKG1wOiBNYXRQYWdpbmF0b3IpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IgPSBtcDtcbiAgICAgICAgdGhpcy5zZXREYXRhU291cmNlQXR0cmlidXRlcygpO1xuICAgIH1cblxuICAgIHNldERhdGFTb3VyY2VBdHRyaWJ1dGVzKCkge1xuICAgICAgICBsZXQgaW5kZXggPSAxO1xuICAgICAgICBpZiAodGhpcy5wbGF5bGlzdERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMucGxheWxpc3REYXRhLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgZGF0YS5pbmRleCA9IGluZGV4Kys7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VHJhY2s+KHRoaXMucGxheWxpc3REYXRhKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5leHRTb25nKCk6IHZvaWQge1xuICAgICAgICBpZiAoKCh0aGlzLnBsYXlsaXN0U2VydmljZS5pbmRleFNvbmcgKyAxKSAlIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplKSA9PT0gMCB8fFxuICAgICAgICAgICAgKHRoaXMucGxheWxpc3RTZXJ2aWNlLmluZGV4U29uZyArIDEpID09PSB0aGlzLnBhZ2luYXRvci5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhZ2luYXRvci5oYXNOZXh0UGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IubmV4dFBhZ2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucGFnaW5hdG9yLmhhc05leHRQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5maXJzdFBhZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gMDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDAuMDE7XG4gICAgICAgIHRoaXMucGxheWxpc3RTZXJ2aWNlLm5leHRTb25nKCk7XG4gICAgICAgIHRoaXMucGxheSgpO1xuICAgIH07XG5cbiAgICBwcmV2aW91c1NvbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSAwO1xuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMC4wMTtcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrSWZTb25nSGFzU3RhcnRlZFNpbmNlQXRsZWFzdFR3b1NlY29uZHMoKSkge1xuICAgICAgICAgICAgaWYgKCgodGhpcy5wbGF5bGlzdFNlcnZpY2UuaW5kZXhTb25nKSAlIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplKSA9PT0gMCB8fFxuICAgICAgICAgICAgICAgICh0aGlzLnBsYXlsaXN0U2VydmljZS5pbmRleFNvbmcpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLnByZXZpb3VzUGFnZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLmxhc3RQYWdlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wbGF5bGlzdFNlcnZpY2UucHJldmlvdXNTb25nKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U29uZygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGxheSgpO1xuICAgIH07XG5cbiAgICByZXNldFNvbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuc3JjID0gdGhpcy5wbGF5bGlzdFRyYWNrWzFdLmxpbms7XG4gICAgfTtcblxuICAgIHNlbGVjdFRyYWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS5sb2coJ3NlbGVjdFRyYWNrKGluZGV4OiBudW1iZXIpOiB2b2lkOiAnICsgaW5kZXgpO1xuICAgICAgICB0aGlzLnBsYXlsaXN0U2VydmljZS5zZWxlY3RBVHJhY2soaW5kZXgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQucGxheSgpO1xuICAgICAgICB9LCAwKTtcbiAgICB9O1xuXG4gICAgY2hlY2tJZlNvbmdIYXNTdGFydGVkU2luY2VBdGxlYXN0VHdvU2Vjb25kcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPiAyO1xuICAgIH07XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBwbGF5bGlzdChwbGF5bGlzdDogVHJhY2tbXSkge1xuICAgICAgICB0aGlzLnBsYXlsaXN0RGF0YSA9IHBsYXlsaXN0O1xuICAgICAgICB0aGlzLm5nT25Jbml0KCk7XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWFkdmFuY2VkLWF1ZGlvLXBsYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYXVkaW8tcGxheWVyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudC9tYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyL21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzdGLE9BQU8sRUFBYSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVoRjtJQUtxRCwyREFBd0I7SUFtQnpFLHlDQUFvQixlQUFtQztRQUF2RCxZQUNJLGlCQUFPLFNBQ1Y7UUFGbUIscUJBQWUsR0FBZixlQUFlLENBQW9CO1FBakJ2RCxzQkFBZ0IsR0FBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUdqRCxnQkFBVSxHQUFHLElBQUksa0JBQWtCLEVBQVMsQ0FBQztRQU83QyxrQkFBWSxHQUFHLElBQUksQ0FBQztRQUdwQixxQkFBZSxHQUFHLElBQUksQ0FBQzs7SUFNdkIsQ0FBQzs7OztJQUVELGtEQUFROzs7SUFBUjtRQUFBLGlCQVNDO1FBUkcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFLENBQUMsU0FBUyxDQUFDLFVBQUMsYUFBYTtZQUNsRSxLQUFJLENB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REFDb0I7O0lBRXBCLDBEQUN1Qjs7SUFFdkIsd0RBQW1COzs7OztJQUVQLDBEQUEyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdWRpb1BsYXllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2F1ZGlvLXBsYXllci1zZXJ2aWNlL2F1ZGlvLXBsYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdFNsaWRlciwgTWF0UGFnaW5hdG9yLCBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBUcmFjayB9IGZyb20gJy4uLy4uL21vZGVsL3RyYWNrLm1vZGVsJztcbmltcG9ydCB7IEJhc2VBdWRpb1BsYXllckZ1bmN0aW9ucyB9IGZyb20gJy4uL2Jhc2UvYmFzZS1hdWRpby1wbGF5ZXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWF0LWFkdmFuY2VkLWF1ZGlvLXBsYXllcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1hdEFkdmFuY2VkQXVkaW9QbGF5ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQXVkaW9QbGF5ZXJGdW5jdGlvbnMgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ3RpdGxlJywgJ3N0YXR1cyddO1xuICAgIHRpbWVMaW5lRHVyYXRpb246IE1hdFNsaWRlcjtcblxuICAgIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRyYWNrPigpO1xuXG4gICAgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgICBwbGF5bGlzdERhdGE6IFRyYWNrW107XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlUaXRsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlQbGF5bGlzdCA9IHRydWU7XG5cbiAgICBwbGF5bGlzdFRyYWNrOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBsYXlsaXN0U2VydmljZTogQXVkaW9QbGF5ZXJTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0YVNvdXJjZUF0dHJpYnV0ZXMoKTtcbiAgICAgICAgdGhpcy5iaW5kUGxheWVyRXZlbnQoKTtcbiAgICAgICAgdGhpcy5wbGF5bGlzdFNlcnZpY2Uuc2V0UGxheWxpc3QodGhpcy5wbGF5bGlzdERhdGEpO1xuICAgICAgICB0aGlzLnBsYXlsaXN0U2VydmljZS5nZXRTdWJqZWN0Q3VycmVudFRyYWNrKCkuc3Vic2NyaWJlKChwbGF5bGlzdFRyYWNrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBsYXlsaXN0VHJhY2sgPSBwbGF5bGlzdFRyYWNrO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZSA9IDA7XG4gICAgICAgIHRoaXMucGxheWxpc3RTZXJ2aWNlLmluaXQoKTtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgc2V0IG1hdFBhZ2luYXRvcihtcDogTWF0UGFnaW5hdG9yKSB7XG4gICAgICAgIHRoaXMucGFnaW5hdG9yID0gbXA7XG4gICAgICAgIHRoaXMuc2V0RGF0YVNvdXJjZUF0dHJpYnV0ZXMoKTtcbiAgICB9XG5cbiAgICBzZXREYXRhU291cmNlQXR0cmlidXRlcygpIHtcbiAgICAgICAgbGV0IGluZGV4ID0gMTtcbiAgICAgICAgaWYgKHRoaXMucGxheWxpc3REYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnBsYXlsaXN0RGF0YS5mb3JFYWNoKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIGRhdGEuaW5kZXggPSBpbmRleCsrO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRyYWNrPih0aGlzLnBsYXlsaXN0RGF0YSk7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0U29uZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCgodGhpcy5wbGF5bGlzdFNlcnZpY2UuaW5kZXhTb25nICsgMSkgJSB0aGlzLnBhZ2luYXRvci5wYWdlU2l6ZSkgPT09IDAgfHxcbiAgICAgICAgICAgICh0aGlzLnBsYXlsaXN0U2VydmljZS5pbmRleFNvbmcgKyAxKSA9PT0gdGhpcy5wYWdpbmF0b3IubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IuaGFzTmV4dFBhZ2UoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLm5leHRQYWdlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnBhZ2luYXRvci5oYXNOZXh0UGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IuZmlyc3RQYWdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IDA7XG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSAwLjAxO1xuICAgICAgICB0aGlzLnBsYXlsaXN0U2VydmljZS5uZXh0U29uZygpO1xuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICB9O1xuXG4gICAgcHJldmlvdXNTb25nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gMDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDAuMDE7XG4gICAgICAgIGlmICghdGhpcy5jaGVja0lmU29uZ0hhc1N0YXJ0ZWRTaW5jZUF0bGVhc3RUd29TZWNvbmRzKCkpIHtcbiAgICAgICAgICAgIGlmICgoKHRoaXMucGxheWxpc3RTZXJ2aWNlLmluZGV4U29uZykgJSB0aGlzLnBhZ2luYXRvci5wYWdlU2l6ZSkgPT09IDAgfHxcbiAgICAgICAgICAgICAgICAodGhpcy5wbGF5bGlzdFNlcnZpY2UuaW5kZXhTb25nKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZ2luYXRvci5oYXNQcmV2aW91c1BhZ2UoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5wcmV2aW91c1BhZ2UoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnBhZ2luYXRvci5oYXNQcmV2aW91c1BhZ2UoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5sYXN0UGFnZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGxheWxpc3RTZXJ2aWNlLnByZXZpb3VzU29uZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXNldFNvbmcoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICB9O1xuXG4gICAgcmVzZXRTb25nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LnNyYyA9IHRoaXMucGxheWxpc3RUcmFja1sxXS5saW5rO1xuICAgIH07XG5cbiAgICBzZWxlY3RUcmFjayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdzZWxlY3RUcmFjayhpbmRleDogbnVtYmVyKTogdm9pZDogJyArIGluZGV4KTtcbiAgICAgICAgdGhpcy5wbGF5bGlzdFNlcnZpY2Uuc2VsZWN0QVRyYWNrKGluZGV4KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LnBsYXkoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfTtcblxuICAgIGNoZWNrSWZTb25nSGFzU3RhcnRlZFNpbmNlQXRsZWFzdFR3b1NlY29uZHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lID4gMjtcbiAgICB9O1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgcGxheWxpc3QocGxheWxpc3Q6IFRyYWNrW10pIHtcbiAgICAgICAgdGhpcy5wbGF5bGlzdERhdGEgPSBwbGF5bGlzdDtcbiAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xuICAgIH1cbn0iXX0=

@@ -208,2 +208,4 @@ import { BehaviorSubject } from 'rxjs';

this.dataSource = new MatTableDataSource();
this.displayTitle = true;
this.displayPlaylist = true;
}

@@ -326,3 +328,3 @@ /**

selector: 'mat-advanced-audio-player',
template: "<mat-card class=\"row d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"py-3 px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"py-3 px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
template: "<mat-card class=\"d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"my-auto px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill my-auto p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"my-auto px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card{padding:0!important}mat-slider{max-height:30px}table{width:100%}button:focus,button:hover{outline:0!important}.ngx-advanced-audio-player{min-width:275px}"]

@@ -329,0 +331,0 @@ }] }

@@ -244,2 +244,4 @@ import { BehaviorSubject } from 'rxjs';

_this.dataSource = new MatTableDataSource();
_this.displayTitle = true;
_this.displayPlaylist = true;
return _this;

@@ -389,3 +391,3 @@ }

selector: 'mat-advanced-audio-player',
template: "<mat-card class=\"row d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"py-3 px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"py-3 px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
template: "<mat-card class=\"d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"my-auto px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill my-auto p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"my-auto px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card{padding:0!important}mat-slider{max-height:30px}table{width:100%}button:focus,button:hover{outline:0!important}.ngx-advanced-audio-player{min-width:275px}"]

@@ -392,0 +394,0 @@ }] }

@@ -13,4 +13,4 @@ import { OnInit } from '@angular/core';

playlistData: Track[];
displayTitle: true;
displayPlaylist: true;
displayTitle: boolean;
displayPlaylist: boolean;
playlistTrack: any;

@@ -17,0 +17,0 @@ constructor(playlistService: AudioPlayerService);

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"MatAdvancedAudioPlayerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"mat-advanced-audio-player","template":"<mat-card class=\"row d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"py-3 px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"py-3 px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>","styles":["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card{padding:0!important}mat-slider{max-height:30px}table{width:100%}button:focus,button:hover{outline:0!important}.ngx-advanced-audio-player{min-width:275px}"]}]}],"members":{"displayTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"displayPlaylist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"matPaginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatPaginator","line":45,"character":15}]}]}],"setDataSourceAttributes":[{"__symbolic":"method"}],"nextSong":[{"__symbolic":"method"}],"previousSong":[{"__symbolic":"method"}],"resetSong":[{"__symbolic":"method"}],"selectTrack":[{"__symbolic":"method"}],"checkIfSongHasStartedSinceAtleastTwoSeconds":[{"__symbolic":"method"}],"playlist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":5}}]}]}},"MatBasicAudioPlayerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"mat-basic-audio-player","template":"<mat-card class=\"d-flex ngx-basic-audio-player\">\n <audio [src]=\"audioUrl\" #audioPlayer></audio>\n <button mat-button (click)='playBtnHandler();' class=\"ngx-basic-audio-player-button-handler\" style=\"font-size: 14px!important;\" [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-lg loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-lg play-track\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-lg pause-track\" [icon]=\"['fas','pause']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <div class=\"flex-fill pl-1 ngx-basic-audio-player-slider\">\n <mat-slider style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n </div>\n <div class=\"d-flex ngx-basic-audio-player-duration\">\n <span *ngIf=\"duration !== 0.01\" class=\"pl-2 pr-3 my-auto\" style=\"font-size: 14px!important;\">\n -{{duration-currentTime |\n secondsToMinutes }}\n </span>\n </div>\n</mat-card>\n<mat-card *ngIf=\"displayTitle && title !== ''\" style=\"border-top: 1px solid #ddd;\">\n <div style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n {{ title }}\n </div>\n </div>\n</mat-card>\n","styles":["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}.ngx-basic-audio-player{min-width:275px}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"audioUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":5}}]}],"displayTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"resetSong":[{"__symbolic":"method"}]}},"NgxAudioPlayerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MatBasicAudioPlayerComponent"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"MatAdvancedAudioPlayerComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":12},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":16,"character":26},{"__symbolic":"reference","module":"@angular/material","name":"MatCardModule","line":16,"character":43},{"__symbolic":"reference","module":"@angular/material","name":"MatTableModule","line":16,"character":58},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":16,"character":74},{"__symbolic":"reference","module":"@angular/material","name":"MatSliderModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatExpansionModule","line":17,"character":21},{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorModule","line":17,"character":41},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":17,"character":61},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":17,"character":74}],"exports":[{"__symbolic":"reference","name":"MatBasicAudioPlayerComponent"},{"__symbolic":"reference","name":"MatAdvancedAudioPlayerComponent"}],"providers":[{"__symbolic":"reference","name":"ɵb"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"Track":{"__symbolic":"class","members":{}},"ɵa":{"__symbolic":"class","members":{"player":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":5,"character":5},"arguments":["audioPlayer"]}]}],"currTimePosChanged":[{"__symbolic":"method"}],"bindPlayerEvent":[{"__symbolic":"method"}],"playBtnHandler":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"init":[{"__symbolic":"method"}],"nextSong":[{"__symbolic":"method"}],"previousSong":[{"__symbolic":"method"}],"resetPlaylist":[{"__symbolic":"method"}],"selectATrack":[{"__symbolic":"method"}],"updateCurrentSong":[{"__symbolic":"method"}],"getSubjectCurrentTrack":[{"__symbolic":"method"}],"getPlaylist":[{"__symbolic":"method"}],"setPlaylist":[{"__symbolic":"method"}],"getIndexSong":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"secondsToMinutes"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"MatAdvancedAudioPlayerComponent":"./lib/component/mat-advanced-audio-player/mat-advanced-audio-player.component","MatBasicAudioPlayerComponent":"./lib/component/mat-basic-audio-player/mat-basic-audio-player.component","NgxAudioPlayerModule":"./lib/ngx-audio-player.module","Track":"./lib/model/track.model","ɵa":"./lib/component/base/base-audio-player-components","ɵb":"./lib/service/audio-player-service/audio-player.service","ɵc":"./lib/pipe/seconds-to-minutes"},"importAs":"ngx-audio-player"}
{"__symbolic":"module","version":4,"metadata":{"MatAdvancedAudioPlayerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"mat-advanced-audio-player","template":"<mat-card class=\"d-flex justify-content-center ngx-advanced-audio-player\" style=\"margin: 0px;\">\n <audio [src]=\"playlistTrack[1].link\" #audioPlayer></audio>\n \n <button mat-button class=\"p-1\" style=\"border-left: 1px solid #ddd;\" (click)='previousSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg\" [icon]=\"['fas','step-backward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" (click)='playBtnHandler();' style=\"border-left: 2px solid #ccc; border-right: 2px solid #ccc;\"\n [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-2x loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-2x play-track\" style=\"color:#444\" [icon]=\"['fas','play']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-2x pause-track\" style=\"color:#444\" [icon]=\"['fas','pause']\"\n aria-hidden=\"true\"></fa-icon>\n </button>\n <button mat-button class=\"p-1\" style=\"border-right: 1px solid #ddd;\" (click)='nextSong();' [disabled]=\"loaderDisplay\">\n <fa-icon class=\"fa fa-lg next-track\" [icon]=\"['fas','step-forward']\" aria-hidden=\"true\"></fa-icon>\n </button>\n\n <div class=\"col\">\n <div class=\"d-flex flex-fill\">\n <div class=\"my-auto px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider class=\"flex-fill my-auto p-1\" style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n\n <div class=\"my-auto px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" style=\"border: 1px solid #ddd; box-shadow: none;\">\n <div class=\"p-1\" style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n <span *ngIf=\"!isPlaying\">{{ playlistTrack[1].title }}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ playlistTrack[1].title }}</marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n Play List\n </mat-expansion-panel-header>\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\">\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"selectTrack(element.index)\"> {{element.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"playlistTrack[1].title === element.title\">\n <fa-icon *ngIf=\"isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" [spin]=\"true\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!isPlaying\" class=\"fa\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr class=\"mat-select-content\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"[2, 5, 10]\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>","styles":["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card{padding:0!important}mat-slider{max-height:30px}table{width:100%}button:focus,button:hover{outline:0!important}.ngx-advanced-audio-player{min-width:275px}"]}]}],"members":{"displayTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"displayPlaylist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"matPaginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatPaginator","line":45,"character":15}]}]}],"setDataSourceAttributes":[{"__symbolic":"method"}],"nextSong":[{"__symbolic":"method"}],"previousSong":[{"__symbolic":"method"}],"resetSong":[{"__symbolic":"method"}],"selectTrack":[{"__symbolic":"method"}],"checkIfSongHasStartedSinceAtleastTwoSeconds":[{"__symbolic":"method"}],"playlist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":5}}]}]}},"MatBasicAudioPlayerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"mat-basic-audio-player","template":"<mat-card class=\"d-flex ngx-basic-audio-player\">\n <audio [src]=\"audioUrl\" #audioPlayer></audio>\n <button mat-button (click)='playBtnHandler();' class=\"ngx-basic-audio-player-button-handler\" style=\"font-size: 14px!important;\" [disabled]=\"loaderDisplay\">\n <fa-icon *ngIf=\"loaderDisplay\" title=\"loading...\" class=\"fa fa-lg loading-track\" [pulse]=\"true\" [icon]=\"['fas','spinner']\"\n aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && !isPlaying\" class=\"fa fa-lg play-track\" [icon]=\"['fas','play']\" aria-hidden=\"true\"></fa-icon>\n <fa-icon *ngIf=\"!loaderDisplay && isPlaying\" class=\"fa fa-lg pause-track\" [icon]=\"['fas','pause']\" aria-hidden=\"true\"></fa-icon>\n </button>\n <div class=\"flex-fill pl-1 ngx-basic-audio-player-slider\">\n <mat-slider style=\"width: 100%\" min=\"0\" max=\"{{duration}}\" value=\"{{currentTime}}\" (change)=\"currTimePosChanged($event)\"></mat-slider>\n </div>\n <div class=\"d-flex ngx-basic-audio-player-duration\">\n <span *ngIf=\"duration !== 0.01\" class=\"pl-2 pr-3 my-auto\" style=\"font-size: 14px!important;\">\n -{{duration-currentTime |\n secondsToMinutes }}\n </span>\n </div>\n</mat-card>\n<mat-card *ngIf=\"displayTitle && title !== ''\" style=\"border-top: 1px solid #ddd;\">\n <div style=\"text-align: center;\">\n <div style=\"padding:1px 3px;\">\n {{ title }}\n </div>\n </div>\n</mat-card>\n","styles":["@import url(https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap-grid.min.css);mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}.ngx-basic-audio-player{min-width:275px}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"audioUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":5}}]}],"displayTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"resetSong":[{"__symbolic":"method"}]}},"NgxAudioPlayerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MatBasicAudioPlayerComponent"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"MatAdvancedAudioPlayerComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":12},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":16,"character":26},{"__symbolic":"reference","module":"@angular/material","name":"MatCardModule","line":16,"character":43},{"__symbolic":"reference","module":"@angular/material","name":"MatTableModule","line":16,"character":58},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":16,"character":74},{"__symbolic":"reference","module":"@angular/material","name":"MatSliderModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatExpansionModule","line":17,"character":21},{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorModule","line":17,"character":41},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":17,"character":61},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":17,"character":74}],"exports":[{"__symbolic":"reference","name":"MatBasicAudioPlayerComponent"},{"__symbolic":"reference","name":"MatAdvancedAudioPlayerComponent"}],"providers":[{"__symbolic":"reference","name":"ɵb"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"Track":{"__symbolic":"class","members":{}},"ɵa":{"__symbolic":"class","members":{"player":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":5,"character":5},"arguments":["audioPlayer"]}]}],"currTimePosChanged":[{"__symbolic":"method"}],"bindPlayerEvent":[{"__symbolic":"method"}],"playBtnHandler":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"init":[{"__symbolic":"method"}],"nextSong":[{"__symbolic":"method"}],"previousSong":[{"__symbolic":"method"}],"resetPlaylist":[{"__symbolic":"method"}],"selectATrack":[{"__symbolic":"method"}],"updateCurrentSong":[{"__symbolic":"method"}],"getSubjectCurrentTrack":[{"__symbolic":"method"}],"getPlaylist":[{"__symbolic":"method"}],"setPlaylist":[{"__symbolic":"method"}],"getIndexSong":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"secondsToMinutes"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"MatAdvancedAudioPlayerComponent":"./lib/component/mat-advanced-audio-player/mat-advanced-audio-player.component","MatBasicAudioPlayerComponent":"./lib/component/mat-basic-audio-player/mat-basic-audio-player.component","NgxAudioPlayerModule":"./lib/ngx-audio-player.module","Track":"./lib/model/track.model","ɵa":"./lib/component/base/base-audio-player-components","ɵb":"./lib/service/audio-player-service/audio-player.service","ɵc":"./lib/pipe/seconds-to-minutes"},"importAs":"ngx-audio-player"}
{
"name": "ngx-audio-player",
"version": "7.0.14",
"version": "7.0.15",
"repository": {

@@ -5,0 +5,0 @@ "type": "git",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc