{"version":3,"file":"app-f19daf30.3b31754f249be720.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/project/test-model-revision/download-progress.scss","webpack://client-app/./src/app/project/test-model-revision/test-model-revision.scss","webpack://client-app/./src/app/project/test-model-revision/download-progress.html","webpack://client-app/./src/app/project/test-model-revision/test-model-revision.html","webpack://client-app/./src/app/project/test-model-revision/download-progress.ts","webpack://client-app/./src/app/project/test-model-revision/test-model-revision.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#relative_parent{position:relative;margin-bottom:25px}#absolute_label{position:absolute;z-index:99;top:30px;color:#fff;font-family:sans-serif;font-size:2em;font-weight:bolder;text-align:center;width:100%}#the_progress[value]{background:gray;width:100%;height:3em;border:3px solid #000;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.25) inset}#the_progress[value]::-moz-progress-bar{background:#32cd32}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/test-model-revision/download-progress.scss\"],\"names\":[],\"mappings\":\"AACA,iBACC,iBAAA,CACA,kBAAA,CAED,gBACC,iBAAA,CAAA,UAAA,CACA,QAAA,CACA,UAAA,CACA,sBAAA,CAAA,aAAA,CAAA,kBAAA,CACA,iBAAA,CAAA,UAAA,CAGD,qBACC,eAAA,CACA,UAAA,CAAA,UAAA,CACA,qBAAA,CACA,iBAAA,CAAA,0CAAA,CAED,wCAAA,kBAAA\",\"sourcesContent\":[\"\\r\\n#relative_parent { \\r\\n\\tposition:relative; \\r\\n\\tmargin-bottom: 25px;\\r\\n}\\r\\n#absolute_label { \\r\\n\\tposition: absolute; z-index: 99;\\r\\n\\ttop: 30px; // Not the correct way to do it.\\r\\n\\tcolor: white; \\r\\n\\tfont-family: sans-serif; font-size: 2em; font-weight:bolder;\\r\\n\\ttext-align:center; width: 100%;\\r\\n}\\r\\n\\r\\n#the_progress[value] {\\r\\n\\tbackground: gray;\\r\\n\\twidth: 100%; height:3em; \\r\\n\\tborder: 3px solid black;\\r\\n\\tborder-radius: 2px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; \\r\\n}\\r\\n#the_progress[value]::-moz-progress-bar { background: limegreen; }\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.test-model-revision{width:100%;padding:10px}.test-model-revision .headers{display:grid;grid-template-columns:50% 50%;line-height:2.5;font-weight:800}.test-model-revision .items{display:grid;grid-template-columns:50% 50%;line-height:2.5}.test-model-revision .revision-header{display:grid;grid-template-columns:auto 50px 200px 200px;line-height:2.5;font-weight:800}.test-model-revision .revision-item{display:grid;grid-template-columns:auto 50px 200px 200px;line-height:2.5;margin-top:5px}.test-model-revision .active{background-color:aqua}.test-model-revision .items:hover{background-color:#d3d3d3;cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/test-model-revision/test-model-revision.scss\"],\"names\":[],\"mappings\":\"AAAA,qBACI,UAAA,CACA,YAAA,CACI,8BACI,YAAA,CACA,6BAAA,CACA,eAAA,CACA,eAAA,CAEJ,4BACI,YAAA,CACA,6BAAA,CACA,eAAA,CAEJ,sCACI,YAAA,CACA,2CAAA,CACA,eAAA,CACA,eAAA,CAEJ,oCACI,YAAA,CACA,2CAAA,CACA,eAAA,CACA,cAAA,CAEJ,6BACI,qBAAA,CAEJ,kCACI,wBAAA,CACA,cAAA\",\"sourcesContent\":[\".test-model-revision {\\r\\n width: 100%;\\r\\n padding: 10px;\\r\\n .headers {\\r\\n display: grid;\\r\\n grid-template-columns: 50% 50%;\\r\\n line-height: 2.5;\\r\\n font-weight: 800;\\r\\n }\\r\\n .items {\\r\\n display: grid;\\r\\n grid-template-columns: 50% 50%;\\r\\n line-height: 2.5;\\r\\n }\\r\\n .revision-header {\\r\\n display: grid;\\r\\n grid-template-columns: auto 50px 200px 200px;\\r\\n line-height: 2.5;\\r\\n font-weight: 800;\\r\\n }\\r\\n .revision-item {\\r\\n display: grid;\\r\\n grid-template-columns: auto 50px 200px 200px;\\r\\n line-height: 2.5;\\r\\n margin-top: 5px;\\r\\n }\\r\\n .active {\\r\\n background-color: aqua;\\r\\n }\\r\\n .items:hover {\\r\\n background-color: lightgray;\\r\\n cursor: pointer;\\r\\n }\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","module.exports = \"\\r\\n\";","import { DialogController } from \"aurelia-dialog\";\r\nimport { autoinject } from 'aurelia-framework';\r\n\r\n@autoinject\r\nexport class DownloadProgress implements GoodOrBadIF {\r\n\tmodel:DownloadModel = {}; \r\n constructor(protected dialog: DialogController) {}\t\r\n\tactivate(model:DownloadModel) { this.model = model; } \r\n\tattached() { this.beginDownload(this.model.url); }\r\n\tasync beginDownload(url:string){ await fetchWithCatch(url,this); }\r\n\r\n\tasync downloadDone(msg:any, arrayBuffer:ArrayBuffer):Promise { \r\n\t\tconsole.log('DownloadProgress.downloadDone()!',msg,arrayBuffer); \r\n\t\ttry {\r\n\t\t\tconst output2 = await this.model.action(this.model,arrayBuffer);\r\n\t\t\tawait this.dialog.ok(output2); \r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t\tawait this.bad(e);\r\n\t\t}\r\n\t}\r\n\tnumBads:number=0; // we should not do this more than once..\r\n\tasync bad(msg:any):Promise { \r\n\t\t++this.numBads;\r\n\t\tconsole.log(this.numBads, 'bad!', msg); \r\n await this.dialog.cancel();\r\n\t\treturn null;\r\n }\r\n}\r\n\r\nexport interface DownloadModel {\r\n\turl:string; \r\n\taction(inputModel: DownloadModel, arrayBuffer:ArrayBuffer): Promise; \r\n}\r\n\r\n\r\nexport interface GoodOrBadIF {\r\n\tdownloadDone(msg:any, output:ArrayBuffer):Promise;\r\n\tbad(msg:any):Promise;\r\n}\r\n\r\nexport function update_IFC_Progress(pct:number, msg:string) { \r\n\tconsole.log('update pct', pct, msg); \r\n\t$('#the_progress').prop('value', pct);\r\n\t$('#absolute_label').text(msg); \r\n}\r\n\r\nasync function myRead(controller:ReadableStreamDefaultController, response:Response, total:number, rep:GoodOrBadIF) { \r\n try {\r\n const R:ReadableStreamDefaultReader = response.body!.getReader();\r\n let loaded:number = 0;\r\n let B:ReadableStreamReadResult = await R.read();\r\n for ( ; !B.done; B = await R.read()) {\r\n loaded += B.value.byteLength;\r\n\t\t\tconst pct:number = Math.round(loaded/total*100);\r\n update_IFC_Progress(pct, `${pct}%`);\r\n controller.enqueue(B.value); //myRead(controller);\r\n }\r\n controller.close();\r\n } catch (error) {\r\n console.error(error);\r\n controller.error(error);\r\n\t\trep.bad(error); // we should be careful we don't do it twice.\r\n }\r\n}\r\n\r\nfunction MyUnderlyingSource(response:Response, total:number, rep:GoodOrBadIF):UnderlyingSource { // or UnderlyingDefaultSource?\r\n const underlyingSource = { start(controller:ReadableStreamDefaultController) { myRead(controller,response,total,rep); } };\r\n return underlyingSource;\r\n}\r\n\r\nfunction progressResponse(response:Response, total:number, rep:GoodOrBadIF):Response {\r\n const stream = new ReadableStream( MyUnderlyingSource(response,total,rep));\r\n return new Response(stream);\r\n}\r\n\r\nasync function fetchProgress(url:string, rep:GoodOrBadIF):Promise {\r\n const initialResponse:Response = \r\n\t await fetch(url, {\r\n\t\tcache: 'force-cache'\r\n\t\t//mode: \"cors\", // no, actually works by default. the problem instead is, when we specify the cache stuff.\r\n\t\t//mode: \"cors\", // angry cors.\r\n\t\t//mode: \"no-cors\", // den nægter at hente en eneste byte.\r\n\t\t//mode: 'same-origin', // NOT same-origin.\r\n\t\t//headers: {\r\n\t\t\t//'Cache-control': 'max-age=604800, public',\r\n\t\t\t// ETag can also be used for cache-control, IF we have it.\r\n\t\t\t// Vary specifies, that a separate variant must exist for each combination of .\r\n\t\t//}\r\n\t });\r\n\r\n\tshowHeaders(initialResponse);\r\n\r\n if (!initialResponse.ok) { return rep.bad(initialResponse.status+' '+initialResponse.statusText); } \r\n if (!initialResponse.body) { return rep.bad('ReadableStream not yet supported in this browser.'); } \r\n // to access headers, server must send CORS header \"Access-Control-Expose-Headers: content-encoding, content-length x-file-size\"\r\n // server must send custom x-file-size header if gzip or other content-encoding is used\r\n const contentEncoding = initialResponse.headers.get('content-encoding');\r\n const contentLength = initialResponse.headers.get(contentEncoding ? 'x-file-size' : 'content-length');\r\n if (contentLength === null) { return rep.bad('Response size header unavailable'); } \r\n\t// (read more at https://stackoverflow.com/questions/35711724/upload-progress-indicators-for-fetch)\r\n\r\n const total:number = parseInt(contentLength, 10);\r\n const response:Response = progressResponse(initialResponse,total,rep); \r\n\r\n //const data:Blob = await response.blob();\r\n\tconst data:ArrayBuffer = await response.arrayBuffer();\r\n\r\n\tconst success = `download completed, size: ${data.byteLength}`; // size.\r\n console.log(success); // document.getElementById('img').src = URL.createObjectURL(data); \r\n\tshowHeaders(initialResponse);\r\n\trep.downloadDone(success,data);\r\n\treturn data;\r\n}\r\n\r\nexport async function fetchWithCatch(url:string, rep:GoodOrBadIF):Promise { \r\n\ttry { \r\n\t\treturn await fetchProgress(url,rep); \r\n\t} catch (e) { \r\n\t\tconsole.error(e); \r\n\t\trep.bad(e);\r\n\t\treturn null;\r\n\t} \r\n}\r\n\r\n\r\nconst url0 = 'https://fetch-progress.anthum.com/30kbps/images/sunrise-baseline.jpg';\r\n\r\nfunction showHeaders(response:Response) {\r\n\tconsole.log('resp headers:', Array.from( response.headers.keys() ));\r\n\tconsole.log('resp headers, ETag:', response.headers.get('ETag'));\r\n\t/* Weirdly, we only see 3 standard-headers here: \"content-length\", \"content-type\", \"last-modified\"\r\n\tMaybe the problem is, that Etag should be requested separately/deliberately?\r\n\tOr even, that the way to use it is to send your EXPECTED ETag in a header,\r\n\twhich the server will then judge for you.\r\n\tThat way, the check for whether download should proceed, is protected server-side,\r\n\tand can't be faked by someone not really knowing the proper Etag..?\r\n\t */\t\r\n}\r\n// fetchWithCatch(url);\r\n\r\n/*\r\nhttps://javascript.info/fetch-progress\r\nhttps://www.bram.us/2021/12/25/show-a-progress-indicator-for-a-fetch-request-with-the-streams-api/\r\nhttps://dev.to/tqbit/how-to-monitor-the-progress-of-a-javascript-fetch-request-and-cancel-it-on-demand-107f\r\nhttps://stackoverflow.com/questions/35711724/upload-progress-indicators-for-fetch\r\n*/\r\n","import { BimViewerFileDtoSplitView, BimViewerRevisionDto, CheckRevisionSyncStatusResponseDto } from \"app/models/viewer-dtos/Dtos/bimviewer-dtos\";\r\nimport { ApiClient} from \"app/services/api-client\"; // , BimClient \r\nimport { AppContextService } from \"app/services/app-context-service\";\r\nimport { DialogService, DialogSettings } from \"aurelia-dialog\";\r\nimport { autoinject } from \"aurelia-framework\";\r\nimport { DownloadProgress } from \"./download-progress\";\r\n\r\n@autoinject\r\nexport class TestModelRevision {\r\n private projectId: string = \"\";\r\n private models: BimViewerFileDtoSplitView[] = [];\r\n private revisions: BimViewerRevisionDto[] = []\r\n private selectedModelId: string = \"\";\r\n\r\n constructor(\r\n\t\tprivate api: ApiClient, \r\n\t\tpublic appContext: AppContextService,\r\n\t\tprivate dlg: DialogService\r\n\t) {}\r\n\r\n async activate(params: any): Promise {\r\n if (params.projectId) {\r\n this.appContext.setProject(params.projectId);//in activate.\r\n this.projectId = params.projectId; \r\n }\r\n await this.getModels();\r\n }\r\n async getModels(): Promise {\r\n this.models = await this.api.project(this.appContext.projectId).get('BimViewer/GetFilesForProject').jsonResult();\r\n\t\tconsole.log('test-model-revision,getModels, this.models:', this.models);\r\n }\r\n\r\n\tasync openDialogClicked(){ \r\n\t\tconsole.log('openDialogClicked'); \r\n\t\tconst url0 = 'https://fetch-progress.anthum.com/30kbps/images/sunrise-baseline.jpg';\r\n\t\tconst dlgSettings:DialogSettings = {\r\n\t\t\tmodel:url0,\r\n\t\t\tviewModel: DownloadProgress, //'download-progress', // Den vinder: 'Unable to find module with ID: myViewModel'\r\n\t\t\trejectOnCancel:true,\r\n\t\t\t// context.viewModel\r\n\t\t\t//view:'myView',\r\n\t\t\t//model:'myModel'\r\n\t\t};\r\n\t\tconst dlgResult = await this.dlg.open(dlgSettings);\r\n\t}\r\n\r\n async selectModel(model: BimViewerFileDtoSplitView): Promise {\r\n this.selectedModelId = model.id;\r\n\r\n\t\tconsole.log('TMR-selectModel, this.appContext.projectId?', this.appContext.projectId);\r\n this.revisions = await this.api.project(this.appContext.projectId).get(`BimViewer/GetRevisionsForFile?fileId=${model.id}`).jsonResult();\r\n\t\tconsole.log('test-model-revision.selectModel, BimViewer/GetRevisionsForFile, this.revisions:', this.revisions);\r\n\r\n this.revisions.sort((a: BimViewerRevisionDto, b: BimViewerRevisionDto) => {\r\n return b.revision - a.revision;\r\n })\r\n }\r\n\r\n async downloadFile(revision: BimViewerRevisionDto, original: boolean): Promise {\r\n\t\tthrow 'Not implemented yet in the OpenBim version.'\r\n //await this.bimSyncClient.setTokenAndProject(this.projectId);\r\n let result: CheckRevisionSyncStatusResponseDto = await this.api.project(this.appContext.projectId).get(`BimViewer/GetCatendaRevision?revisionId=${revision.id}`).jsonResult();\r\n console.log(result);\r\n if (result != undefined && result.isSynced == true) {\r\n //this.bimSyncClient.downloadRevisionFile(result, original);\r\n }\r\n }\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","DownloadProgress","constructor","dialog","model","numBads","activate","this","attached","beginDownload","url","async","rep","initialResponse","fetch","cache","showHeaders","ok","bad","status","statusText","body","contentEncoding","headers","get","contentLength","response","total","stream","ReadableStream","underlyingSource","start","controller","R","getReader","loaded","B","read","done","value","byteLength","pct","Math","round","update_IFC_Progress","enqueue","close","error","console","myRead","MyUnderlyingSource","Response","progressResponse","parseInt","data","arrayBuffer","success","log","downloadDone","fetchProgress","e","fetchWithCatch","msg","output2","action","cancel","$","prop","text","Array","from","keys","autoinject","DialogController","TestModelRevision","api","appContext","dlg","projectId","models","revisions","selectedModelId","params","setProject","getModels","project","jsonResult","openDialogClicked","dlgSettings","viewModel","rejectOnCancel","open","selectModel","sort","a","b","revision","downloadFile","original","DialogService"],"sourceRoot":""}