{"version":3,"file":"export-progress-modal-afa3e91d.js","sources":["../../../app/javascript/common/helpers/progress.ts","../../../app/javascript/common/components/export/export-progress-title-block.vue","../../../app/javascript/common/components/export/export-progress-title-block.vue?vue&type=template&lang.js","../../../app/javascript/common/components/export/export-progress-modal.vue","../../../app/javascript/common/components/export/export-progress-modal.vue?vue&type=template&lang.js"],"sourcesContent":["import moment from 'moment'\n\ntype ProgressMessage = { value: number, max: number } | { progress_value: number, progress_max: number }\n\n/**\n * Use in conjunction with ActionCable and our convention of sending progress updates on long-running processes\n * @example progress = {progress_value: 7, progress_max: 10, mode: 'some string'}\n */\nexport default class Progress {\n endTime: number = null\n max: number = 0\n startTime: number = null\n value: number = 0\n\n /**\n * @return [number] in milliseconds, rounded up to nearest second\n */\n get eta(): number {\n if (!this.startTime) return null\n\n const elapsedMS = Date.now() - this.startTime\n const msPerValue = elapsedMS / this.value\n const valueRemaining = this.max - this.value\n return Math.ceil(msPerValue * valueRemaining / 1000) * 1000\n }\n\n get isProgressing(): boolean {\n return Boolean(this.startTime) && !Boolean(this.endTime)\n }\n\n /**\n * @return [number] 0 - 100 assuming valid +value+ and +max+ being 0 or positive with +value+ < +max+\n */\n get percent(): number {\n if (!this.max) return 0\n\n return this.value / this.max * 100\n }\n\n formatETA(format: string): string {\n if (!this.eta) return ''\n return moment.utc(this.eta).format(format)\n }\n\n formatPercent({ decimal }: { decimal?: number }): string {\n decimal = decimal ?? 0\n return this.percent.toFixed(decimal)\n }\n\n start(progress: ProgressMessage): void {\n this.startTime = null\n this.endTime = null\n this.update(progress)\n }\n\n stop(): void {\n this.endTime = Date.now()\n }\n\n update(progress: ProgressMessage): void {\n if (!this.startTime) this.startTime = Date.now()\n\n if ('value' in progress) {\n this.value = progress.value ?? 0\n this.max = progress.max ?? 0\n } else {\n this.value = progress.progress_value ?? 0\n this.max = progress.progress_max ?? 0\n }\n }\n}\n","\n\n","\n
\n
Export for
\n

{{title}}

\n
\n","\n\n","\n\n

Export CSV

\n\n \n\n
\n \n

1\" class=\"text-grey text-base-i mb-0-i underline\">\n Attempt #{{lastBroadcast.tries}}\n

\n

Time remaining: {{progressETAMessage}}

\n

Completion: {{progressPercentMessage}}

\n \n

File is exporting. We will notify you when it's complete.

\n
\n\n
\n \n

Export is complete.

\n
\n Download\n
\n
\n\n
\n \n
\n
Export failed:
\n

{{failMsg}}

\n

{{failTimeDisplay}}

\n
\n
\n
\n"],"names":["Progress","constructor","this","endTime","max","startTime","value","eta","msPerValue","Date","now","valueRemaining","Math","ceil","isProgressing","Boolean","percent","formatETA","format","moment","utc","formatPercent","decimal","toFixed","start","progress","update","stop","progress_value","progress_max","__vue2_script$1","Vue","extend","props","title","type","String","required","_vm","_h","$createElement","_c","_self","staticClass","_v","_s","__vue2_script","inheritAttrs","components","ExportProgressTitleBlock","ProgressBar","mixins","modalComponentMixin","config","Object","initialStatus","Number","default","ModalStatus","Confirmation","data","actionCableService","ActionCableService","jobChannelName","_uid","failMsg","failTimeDisplay","lastBroadcast","is_final","job_id","mode","success","tries","channels","computed","channelName","connected","rejected","received","fail","state","status","Failure","retry","unsubscribe","dead","disconnected","beforeDestroy","progressPercentMessage","progressETAMessage","downloadData","_b","_a","app_notification","file_download_data","methods","subscribe","payload","parse","started_at","downloadAvailable","$emit","downloaded","event","close","exportDead","href","emitHideModal","failed_at","DatetimeHelper","formats","watch","handler","newVal","oldVal","channel","channel_id","id","immediate","isVisible","attrs","on","_t","slot","_e","min","Successful","target","click"],"mappings":"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"}