PageSourceSearch

https://app.citizencode.net/9424.03b932600a04d38f.js

js citizencode.net collected 2026-10-02 05:21:13 UTC 11,931 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkcitizen_code=self.webpackChunkcitizen_code||[]).push([[9424],{46411(b,g,r){r.d(g,{w:()=>n});var e=r(84412),_=r(23294),l=r(96354),h=r(2615);let n=(()=>{class c{constructor(){this.state$=new e.t({listenIncomingAudioButtonDisabled:!1,recordingButtonDisabled:!0,isRecording:!1,listenUserRecordingDisabled:!0,incomingAudioUrl:"",userAudioFileBlob:null,image:{uri:"",title:"",alt:""}})}get state(){return this.state$.getValue()}select(u){return this.state$.asObservable().pipe((0,l.T)(m=>u(m)),(0,_.F)())}setState(u){this.state$.next({...this.state,...u})}resetState(){this.setState({listenIncomingAudioButtonDisabled:!1,recordingButtonDisabled:!0,isRecording:!1,listenUserRecordingDisabled:!0,incomingAudioUrl:"",userAudioFileBlob:null,image:{uri:"",title:"",alt:""}})}static{this.\u0275fac=function(m){return new(m||c)}}static{this.\u0275prov=h.jDH({token:c,factory:c.\u0275fac})}}return c})()},39424(b,g,r){r.d(g,{M:()=>M});var e=r(73664),_=r(62125),l=function(i){return i[i.USER_CONSENT_FAILED=0]="USER_CONSENT_FAILED",i[i.RECORDER_TIMEOUT=1]="RECORDER_TIMEOUT",i[i.ALREADY_RECORDING=2]="ALREADY_RECORDING",i}(l||{}),h=function(i){return i[i.WEBM_BLOB_URL=0]="WEBM_BLOB_URL",i[i.WEBM_BLOB=1]="WEBM_BLOB",i}(h||{}),n=function(i){return i[i.INITIALIZING=0]="INITIALIZING",i[i.INITIALIZED=1]="INITIALIZED",i[i.RECORDING=2]="RECORDING",i[i.PAUSED=3]="PAUSED",i[i.STOPPING=4]="STOPPING",i[i.STOPPED=5]="STOPPED",i}(n||{}),c=r(2615);let R=(()=>{class i{constructor(){this.chunks=[],this.recorderEnded=new e.bkB,this.recorderError=new e.bkB,this._recorderState=n.INITIALIZING,this.appendToChunks=t=>{this.chunks.push(t.data)},this.recordingStopped=t=>{const o=new Blob(this.chunks,{type:"audio/webm"});this.chunks=[],this.recorderEnded.emit(o),this.clear()}}static guc(){return navigator.mediaDevices.getUserMedia({audio:!0})}getUserContent(){return i.guc()}startRecording(){this._recorderState===n.RECORDING&&this.recorderError.emit(l.ALREADY_RECORDING),this._recorderState!==n.PAUSED?(this._recorderState=n.INITIALIZING,i.guc().then(t=>{this.recorder=new MediaRecorder(t),this._recorderState=n.INITIALIZED,this.addListeners(),this.recorder.start(),this._recorderState=n.RECORDING})):this.resume()}pause(){this._recorderState===n.RECORDING&&(this.recorder.pause(),this._recorderState=n.PAUSED)}resume(){this._recorderState===n.PAUSED&&(this._recorderState=n.RECORDING,this.recorder.resume())}stopRecording(t){return this._recorderState=n.STOPPING,new Promise((o,s)=>{this.recorderEnded.subscribe(a=>{if(this._recorderState=n.STOPPED,t===h.WEBM_BLOB&&o(a),t===h.WEBM_BLOB_URL){const G=URL.createObjectURL(a);o(G)}},a=>{this.recorderError.emit(l.RECORDER_TIMEOUT),s(l.RECORDER_TIMEOUT)}),this.recorder.stop()}).catch(()=>{this.recorderError.emit(l.USER_CONSENT_FAILED)})}getRecorderState(){return this._recorderState}addListeners(){this.recorder.ondataavailable=this.appendToChunks,this.recorder.onstop=this.recordingStopped}clear(){this.recorder=null,this.chunks=[]}static{this.\u0275fac=function(o){return new(o||i)}}static{this.\u0275prov=c.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}}return i})();var u=r(46411),m=r(1807),v=r(77048),p=r(72200),A=r(16038),T=r(99213),f=r(73955);const I=i=>({consigneImg:i});function B(i,d){if(1&i&&e.nrm(0,"div",11),2&i){const t=e.XpG(3);e.Y8G("innerHTML",t.flashcard.title,e.npT)}}function D(i,d){if(1&i&&(e.j41(0,"div",1)(1,"div",8)(2,"div",9),e.nrm(3,"img",10),e.k0s(),e.nVh(4,B,1,1,"div",11),e.k0s()()),2&i){const t=e.XpG(),o=e.XpG();e.Y8G("ngClass",e.eq3(4,I,null==t?null:t.image)),e.R7$(3),e.Y8G("src",null==t||null==t.image?null:t.image.uri,e.B4B),e.BMQ("alt",null==t||null==t.image?null:t.image.alt),e.R7$(),e.vxM(o.showTitle?4:-1)}}function E(i,d){if(1&i){const t=e.RV6();e.j41(0,"button",12),e.bIt("click",function(){c.eBV(t);const s=e.XpG(2);return c.Njj(s.startRecording())}),e.EFF(1),e.nI1(2,"translate"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("disabled",t.isRecording||t.recordingButtonDisabled),e.R7$(),e.SpI(" ",e.bMT(2,2,"activities.record_audio")," ")}}function C(i,d){1&i&&(e.j41(0,"div"),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&i&&(e.R7$(),e.SpI(" ",e.bMT(2,1,"activities.record_audio")," "))}function S(i,d){if(1&i&&(e.j41(0,"div",14)(1,"div",16),e.EFF(2),e.k0s(),e.nrm(3,"mat-icon",17)(4,"progress",18),e.k0s()),2&i){const t=e.XpG(3);e.R7$(2),e.JRh(t.recordTimer),e.R7$(2),e.Y8G("value",t.recordProgress)}}function U(i,d){if(1&i){const t=e.RV6();e.j41(0,"button",13),e.bIt("click",function(){c.eBV(t);const s=e.XpG(),a=e.XpG();return c.Njj(s.isRecording?a.stopRecording():a.startRecording())}),e.nVh(1,C,3,3,"div"),e.nVh(2,S,5,2,"div",14),e.nrm(3,"mat-icon",15),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("disabled",t.recordingButtonDisabled),e.R7$(),e.vxM(t.isRecording?-1:1),e.R7$(),e.vxM(t.isRecording?2:-1)}}function O(i,d){if(1&i){const t=e.RV6();e.j41(0,"button",3),e.bIt("click",function(){c.eBV(t);const s=e.XpG(2);return c.Njj(s.compareAudio())}),e.EFF(1),e.nI1(2,"translate"),e.nrm(3,"mat-icon",19),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("disabled",t.listenUserRecordingDisabled),e.R7$(),e.SpI(" ",e.bMT(2,2,"activities.listen_and_compare")," ")}}function y(i,d){if(1&i){const t=e.RV6();e.j41(0,"div",0),e.nVh(1,D,5,6,"div",1),e.j41(2,"div",2)(3,"button",3),e.bIt("click",function(){c.eBV(t);const s=e.XpG();return c.Njj(!1===(null==s.incomingAudio?null:s.incomingAudio.paused)?s.pauseIncomingAudio():s.playIncomingAudio())}),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"mat-icon",4),e.k0s(),e.nVh(7,E,3,4,"button",5),e.nVh(8,U,4,3,"button",6),e.nVh(9,O,4,4,"button",7),e.k0s()()}if(2&i){const t=d,o=e.XpG();e.R7$(),e.vxM((null==t||null==t.image||null==t.image.uri?null:t.image.uri.length)>1?1:-1),e.R7$(2),e.Y8G("disabled",t.listenIncomingAudioButtonDisabled),e.R7$(),e.SpI(" ",e.bMT(5,6,"activities.listen_incoming_audio")," "),e.R7$(3),e.vxM(o.displayForSummary?-1:7),e.R7$(),e.vxM(o.displayForSummary?-1:8),e.R7$(),e.vxM(o.displayForSummary?-1:9)}}let M=(()=>{class i{constructor(t,o){this.audioRecorderService=t,this.service=o,this.displayForSummary=!1,this.activityDone=new e.bkB,this.showTitle=!1,this.userAudioBlobEvent=ne
1w e.bkB}ngOnInit(){this.initStates(),this.userAudioBlob&&(this.service.state.userAudioFileBlob=this.userAudioBlob)}initialize(){this.service.setState({listenIncomingAudioButtonDisabled:!1,listenUserRecordingDisabled:!0,recordingButtonDisabled:!0,userAudioFileBlob:null,image:{uri:this.flashcard?.image?.uri.toString()||"",title:(0,_.A)(this.flashcard,".image.title")||"",alt:this.flashcard?.image?.alt.toString()||""}}),this.service.setState({incomingAudioUrl:this.flashcard?.audio?.uri.toString()||""}),this.forcePauseIncomingAudio$&&this.forcePauseIncomingAudio$.subscribe(()=>{this.pauseIncomingAudio()}),this.forceReset$&&this.forceReset$.subscribe(()=>{this.reset(!0)}),this.userAudioBlob&&(this.service.state.userAudioFileBlob=this.userAudioBlob)}initStates(){this.service.setState(this.displayForSummary?{listenIncomingAudioButtonDisabled:!1,listenUserRecordingDisabled:!0,recordingButtonDisabled:!0}:{listenIncomingAudioButtonDisabled:!1,listenUserRecordingDisabled:!0,recordingButtonDisabled:!0,userAudioFileBlob:null})}ngOnChanges(){this.initialize()}pauseIncomingAudio(){!1===this.incomingAudio?.paused&&this.incomingAudio.pause()}pauseUserAudio(){!1===this.userAudio?.paused&&this.userAudio.pause()}playIncomingAudio(){this.service.setState({recordingButtonDisabled:!0,listenUserRecordingDisabled:!0}),this.incomingAudio=new Audio(this.service.state.incomingAudioUrl),this.incomingAudio.play(),this.incomingAudio.ondurationchange=t=>{this.playIncomingAudioTimeout=setTimeout(()=>{this.service.setState({recordingButtonDisabled:!1,listenUserRecordingDisabled:!this.service.state?.userAudioFileBlob})},this.totalTimeToWait())}}stopRecording(t=!0){this.clearRecordingTimeout(),this.service.setState({isRecording:!1,listenIncomingAudioButtonDisabled:!1,listenUserRecordingDisabled:!1}),this.audioRecorderService.stopRecording(h.WEBM_BLOB).then(o=>{t&&(this.service.setState({userAudioFileBlob:o}),this.userAudioBlobEvent.emit(o))}).catch(o=>{}),this.recordTimer="",this.recordProgress=0}startRecording(){this.pauseIncomingAudio(),this.audioRecorderService.startRecording(),this.service.setState({isRecording:!0,listenIncomingAudioButtonDisabled:!0,listenUserRecordingDisabled:!0}),this.startRecordingTimer(),this.recordingTimeout=setTimeout(()=>{this.stopRecording()},this.totalTimeToWait())}startRecordingTimer(){let t=Date.now();(0,m.O)(0,50).pipe((0,v.v)(()=>this.service.state.isRecording)).subscribe(()=>{let o=Date.now()-t,s=Math.floor(o/1e3);this.recordTimer=`${Math.floor(s/60).toString().padStart(2,"0")}:${(s%60).toString().padStart(2,"0")}`,this.recordProgress=o/this.recorderTime()*100})}clearRecordingTimeout(){this.recordingTimeout&&(clearTimeout(this.recordingTimeout),this.recordingTimeout=null)}compareAudio(){if(this.pauseIncomingAudio(),this.service.setState({listenIncomingAudioButtonDisabled:!0,recordingButtonDisabled:!0}),this.service.state.userAudioFileBlob instanceof Blob)try{const t=URL.createObjectURL(this.service.state.userAudioFileBlob);this.userAudio=new Audio(t),this.userAudio.play(),this.readTimeout=setTimeout(()=>{this.incomingAudio.currentTime=0,this.incomingAudio.play(),this.endActivityTimeout=setTimeout(()=>{this.service.setState({listenIncomingAudioButtonDisabled:!1,listenUserRecordingDisabled:!1,recordingButtonDisabled:!1}),this.activityDone.emit()},1e3*this.incomingAudio.duration+500)},this.totalTimeToWait())}catch(t){this.activityDone.emit(),console.error("Erreur lors de la cr\xe9ation de l'URL pour userAudioFileBlob",t)}else this.activityDone.emit(),console.error("userAudioFileBlob n'est pas un Blob ou est undefined/null")}recorderTime(){return this.incomingAudio.duration?1e3*(this.incomingAudio.duration+this.extraTimeToRecord()):7e3}extraTimeToRecord(){return this.incomingAudio.duration?1+Math.round(this.incomingAudio.duration/5):2}totalTimeToWait(){return 1e3*(this.incomingAudio.duration+this.extraTimeToRecord())}ngOnDestroy(){this.reset()}reset(t){this.recordingTimeout&&clearTimeout(this.recordingTimeout),this.readTimeout&&clearTimeout(this.readTimeout),this.endActivityTimeout&&clearTimeout(this.endActivityTimeout),this.playIncomingAudioTimeout&&clearTimeout(this.playIncomingAudioTimeout),this.pauseIncomingAudio(),this.pauseUserAudio(),this.stopRecording(!1),this.service.resetState(),this.initStates(),t&&this.initialize()}static{this.\u0275fac=function(o){return new(o||i)(e.rXU(R),e.rXU(u.w))}}static{this.\u0275cmp=e.VBU({type:i,selectors:[["app-voice-recorder"]],inputs:{displayForSummary:"displayForSummary",flashcard:"flashcard",forcePauseIncomingAudio$:"forcePauseIncomingAudio$",forceReset$:"forceReset$",showTitle:"showTitle",userAudioBlob:"userAudioBlob"},outputs:{activityDone:"activityDone",userAudioBlobEvent:"userAudioBlobEvent"},standalone:!1,features:[e.Jv_([u.w,R]),e.OA$],decls:2,vars:3,consts:[[1,"container-voice-recorder"],[1,"pseudo-consignes",3,"ngClass"],[1,"available-answers"],[1,"bem-voice-recorder__button",3,"click","disabled"],["svgIcon","voice-recorder__listen"],[3,"disabled"],[1,"bem-voice-recorder__button","bem-voice-recorder__record-button",3,"disabled"],[1,"bem-voice-recorder__button",3,"disabled"],[1,"container"],[1,"is-picture"],[3,"src"],[1,"voice-recorder__caption",3,"innerHTML"],[3,"click","disabled"],[1,"bem-voice-recorder__button","bem-voice-recorder__record-button",3,"click","disabled"],[1,"bem-voice-recorder__progress-wrapper"],["svgIcon","voice-recorder__record"],[1,"bem-voice-recorder__timer"],["svgIcon","voice-recorder__stop-recording"],["max","100","role","progressbar",1,"bem-voice-recorder__progress-bar",3,"value"],["svgIcon","voice-recorder__listen-and-compare"]],template:function(o,s){if(1&o&&(e.nVh(0,y,10,8,"div",0),e.nI1(1,"async")),2&o){let a;e.vxM((a=e.bMT(1,1,s.service.state$))?0:-1,a)}},dependencies:[p.YU,A.PW,T.An,p.Jj,f.D9],encapsulation:2})}}return i})()}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.