{"version":3,"file":"app-d93d6b02.650784c5e0ef386c.bundle.js","mappings":"gOAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,oGAAqG,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+EAA+E,MAAQ,GAAG,SAAW,4BAA4B,eAAiB,CAAC,kJAAkJ,WAAa,MAE3d,S,oECPAD,EAAOE,QAAU,g/C,wLCOV,IAAMC,EAAN,MAKHC,YAAmBC,GAAA,KAAAA,OAAAA,EAFX,KAAAC,cAAgC,EAEI,CAE5CC,KAAKC,GACDC,KAAKC,gBAAkBF,EACvB,IAAIG,EAAOF,KACXA,KAAKH,cAAgB,CACjBG,KAAKJ,OAAOO,UAAU,6BAA6BC,MAAOC,I,QAClDA,EAAUC,KACU,QAApB,EAAAJ,EAAKD,uBAAe,SAAEM,iBAAiBF,EAAUG,MAAOH,EAAUI,UAE9C,QAApB,EAAAP,EAAKD,uBAAe,SAAES,sBAAsBL,EAAUG,MAAOH,EAAUI,S,IAG/ET,KAAKJ,OAAOO,UAAU,qCAAqCC,MAAOC,I,MAC1C,QAApB,EAAAH,EAAKD,uBAAe,SAAEU,mBAAmBN,EAAUG,MAAOH,EAAUO,WAAW,IAEnFZ,KAAKJ,OAAOO,UAAU,8BAA8BC,MAAOC,I,YACjC,GAAlBA,EAAUC,YACgB,QAApB,EAAAJ,EAAKD,uBAAe,eAAEY,qBACR,QAApB,EAAAX,EAAKD,uBAAe,SAAEa,mBAEF,QAApB,EAAAZ,EAAKD,uBAAe,SAAEc,kBAAkBV,EAAUI,UAC9B,QAApB,EAAAP,EAAKD,uBAAe,SAAEe,eAAeX,EAAUG,O,IAI/D,CAEAS,WACI,IAAIC,EAAwCC,SAASC,eAAe,sBAChEF,IACAA,EAAkBG,QAAS,EAGnC,CAEAC,SACItB,KAAKH,cAAc0B,SAASC,GAA+BA,EAAaC,WAC5E,CAEAC,gB,MACI,IAAIC,EAAwCR,SAASC,eAAe,sBAChEQ,EAA6CT,SAASC,eAAe,4BACrEO,GAAsBC,IACtBD,EAAmBN,QAAS,EAC5BO,EAAuBC,MAAMC,SAAW,QACpB,QAApB,EAAA9B,KAAKC,uBAAe,SAAE8B,eAAe,MAE7C,CAEA3B,oBAAoBI,GAEhB,IAAImB,EAAwCR,SAASC,eAAe,sBAChEQ,EAA6CT,SAASC,eAAe,4BACzE,GAAIpB,KAAKgC,mBAAmBxB,EAAMhB,IAAK,CACnC,GAAGQ,KAAKiC,mCAAoC,CAExC,GAAeC,YADKlC,KAAKmC,0BAA0B3B,GAE/C,OAEAmB,GAAsBC,IACtBD,EAAmBN,QAAS,EAC5BM,EAAmBE,MAAMO,MAAQ,QACjCT,EAAmBE,MAAMQ,OAAS,cAClCT,EAAuBC,MAAMC,SAAW,Q,YAGtC9B,KAAKmC,0BAA0B3B,GAEzCR,KAAKsC,e,MAEDX,GAAsBC,IACtBA,EAAuBC,MAAMC,SAAW,QACxCH,EAAmBN,QAAS,GAIpC,OAAO,CACX,CAEAjB,gCAAgCI,G,MAE5B,GAAgB0B,YADsE,QAApB,EAAAlC,KAAKC,uBAAe,eAAEsC,yBAAyB/B,EAAM,WAMvH,OAFAR,KAAKwC,aAAehC,EACpBR,KAAKyC,kBACE,CACX,CAEAA,iB,UACQzC,KAAKwC,eAC0D,QAA/D,EAAuC,QAAvC,EAAoB,QAApB,EAAAxC,KAAKC,uBAAe,eAAEyC,yBAAiB,eAAEC,IAAI3C,KAAKwC,qBAAa,SAAEjB,SAAQd,IACrEA,EAASmC,QAAU,eAA6BnC,EAASmC,QAAQ,IAG7E,CAEAN,gB,UACQtC,KAAKwC,eAC0D,QAA/D,EAAuC,QAAvC,EAAoB,QAApB,EAAAxC,KAAKC,uBAAe,eAAEyC,yBAAiB,eAAEC,IAAI3C,KAAKwC,qBAAa,SAAEK,MAAK,CAACC,EAA0CC,IAC1GD,EAAUrC,SAAWsC,EAAUtC,UACtB,EACFqC,EAAUrC,SAAWsC,EAAUtC,SAC9B,EAEA,IAIvB,CAEAwB,mCACI,IAAIN,EAAwCR,SAASC,eAAe,sBACpE,QAAIO,IAC8C,UAAvCA,EAAmBE,MAAMmB,YACO,IAAvCrB,EAAmBE,MAAMmB,WAGjC,CAEAhB,mBAAmBiB,GACf,OAAwBf,MAArBlC,KAAKwC,cACGxC,KAAKwC,aAAahD,IAAMyD,GAAmC,IAAxBjD,KAAKwC,aAAahD,IAAwC,GAA5BQ,KAAKwC,aAAaU,MAGlG,CAEAC,qBAAqB1C,EAAyC2C,G,OACtDA,aAAK,EAALA,EAAOC,UAAUD,aAAK,EAALA,EAAOC,QAAS,EACjCC,QAAQC,KAAK,qCAGS,GAAtB9C,EAAS+C,UACTxD,KAAKJ,OAAO6D,QAAQ,0BAA2B,CAACjD,MAAOR,KAAKwC,aAAc/B,WAAUiD,kBAAuC,QAApB,EAAA1D,KAAKC,uBAAe,eAAEyD,sBAE7H1D,KAAKJ,OAAO6D,QAAQ,2BAE5B,CAEAE,qBAAqBlD,EAAyC2C,G,MAC1D,IAAIA,aAAK,EAALA,EAAOC,UAAUD,aAAK,EAALA,EAAOC,QAAS,EACjCC,QAAQC,KAAK,0CAGjB,GAAIvD,KAAKwC,aAAc,CACnB,IAAIoB,EAAkE,QAApB,EAAA5D,KAAKC,uBAAe,eAAE2D,uBAAuB5D,KAAKwC,aAAc/B,GACxF,GAAtBA,EAASoD,WACrBP,QAAQQ,IAAI,2DACA9D,KAAKJ,OAAO6D,QAAQ,4BAA6B,CAACjD,MAAOR,KAAKwC,aAAc/B,WAAUmD,uBAAwBA,KAE9G5D,KAAKJ,OAAO6D,QAAQ,6BAA8B,CAACjD,MAAOR,KAAKwC,aAAc/B,SAAUA,EAAUmD,uBAAwBA,G,CAGrI,CAEAG,8BAA8BtD,EAAyCD,G,MACnER,KAAKJ,OAAO6D,QAAQ,0BAA2B,CAACjD,QAAOC,WAAUiD,kBAAuC,QAApB,EAAA1D,KAAKC,uBAAe,eAAEyD,qBAC9G,CAEAM,8BAA8BvD,EAAyCD,GACzE8C,QAAQQ,IAAI,oEACN9D,KAAKJ,OAAO6D,QAAQ,4BAA6B,CAACjD,QAAOC,YAC7D,GAxKSf,E,mUAAQ,EADpB,EAAAuE,W,kIAM8B,OALlBvE,E,2ECsCN,MAAMwE,EAAb,cACI,KAAAC,cAAwB,GAWxB,KAAAC,mBAA+B,GAC/B,KAAAC,SAAqB,GACrB,KAAAC,kBAA8B,GAC9B,KAAAC,gBAA0B,CAC9B,EAEO,MAAMC,EAAb,cACI,KAAAL,cAAwB,GAWxB,KAAAC,mBAA+B,GAC/B,KAAAC,SAAqB,GACrB,KAAAC,kBAA8B,GAC9B,KAAAC,gBAA0B,CAG9B,EAGO,MAAME,EAAb,cACI,KAAAC,QAAmB,GACnB,KAAAH,gBAA0B,EAC1B,KAAAtB,QAAkB,EACtB,EAcO,MAAM0B,EAGThF,YAAYiF,EAA6BC,GACrC7E,KAAK4E,mBAAqBA,EAC1B5E,KAAK6E,QAAUA,CACnB,E","sources":["webpack://client-app/./src/app/project/work-area/model-revision/revision/revision.scss","webpack://client-app/./src/app/project/work-area/model-revision/revision/revision.html","webpack://client-app/./src/app/project/work-area/model-revision/revision/revision.ts","webpack://client-app/./src/app/project/work-area/split-viewer-interfaces.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, \"td .revision-name-text,td .revision-username-text,td .revision-time-text{all:unset;display:block}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/work-area/model-revision/revision/revision.scss\"],\"names\":[],\"mappings\":\"AACI,yEACI,SAAA,CACA,aAAA\",\"sourcesContent\":[\"td {\\r\\n .revision-name-text,.revision-username-text, .revision-time-text {\\r\\n all: unset;\\r\\n display: block;\\r\\n }\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n \\r\\n \\r\\n Revisions\\r\\n \\r\\n \\r\\n \\r\\n 15 ? r.name : ''}\\\"> ${r.name.length > 15 ? r.name.substring(0,15) + \\\"...\\\" : r.name} #${r.revision}\\r\\n ${r.created}\\r\\n By: ${r.username}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";","import { BimViewerFileAndRevisionId, BimViewerFileDtoSplitView, BimViewerFileFromModelRevisionResponse, BimViewerRevisionDtoSplitView } from \"app/models/viewer-dtos/Dtos/bimviewer-dtos\";\r\nimport { ModelRevisionParent } from \"../model-revision-parent\";\r\nimport {EventAggregator, Subscription} from 'aurelia-event-aggregator';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { DateTimeFormatter } from \"app/services/date-time-formatter\";\r\n\r\n@autoinject\r\nexport class Revision {\r\n public currentModel: BimViewerFileDtoSplitView | undefined;\r\n private parentComponent: ModelRevisionParent | undefined;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(public events: EventAggregator){}\r\n\r\n bind(params: ModelRevisionParent): void {\r\n this.parentComponent = params; \r\n let self = this;\r\n this.subscriptions = [\r\n this.events.subscribe('Revision:RevisionTurnedOn', async (parameter: BimViewerFileFromModelRevisionResponse): Promise => {\r\n if (parameter.is2d) {\r\n self.parentComponent?.turnOn2dRevision(parameter.model, parameter.revision);\r\n } else {\r\n self.parentComponent?.started3dModelLoading(parameter.model, parameter.revision);\r\n\t\t\t\t}\r\n }), \r\n this.events.subscribe(\"Revision:Revision3FinishedLoading\", async (parameter: BimViewerFileAndRevisionId): Promise => {\r\n self.parentComponent?.model3dDoneLoading(parameter.model, parameter.revisionId);\r\n\t\t\t}),\r\n this.events.subscribe('Revision:RevisionTurnedOff', async (parameter: BimViewerFileFromModelRevisionResponse): Promise => {\r\n if (parameter.is2d == true) {\r\n await self.parentComponent?.turnOff2dRevision();\r\n self.parentComponent?.turnOff2dModel();\r\n } else {\r\n self.parentComponent?.turnOff3dRevision(parameter.revision);\r\n self.parentComponent?.turnOff3dModel(parameter.model);\r\n }\r\n })\r\n ]\r\n }\r\n\r\n attached() {\r\n let revisionContainer: HTMLElement | null = document.getElementById('revision-container');\r\n if (revisionContainer) {\r\n revisionContainer.hidden = true;\r\n }\r\n\r\n }\r\n\r\n unbind(): void {\r\n this.subscriptions.forEach((subscription: Subscription) => subscription.dispose());\r\n }\r\n\r\n hideRevisions(): void { // UB reload and MRP.hideRevisions.\r\n let revisionsContainer: HTMLElement |null = document.getElementById('revision-container');\r\n let modelRevisionContainer: HTMLElement | null = document.getElementById('model-revision-container');\r\n if (revisionsContainer && modelRevisionContainer) {\r\n revisionsContainer.hidden = true;\r\n modelRevisionContainer.style.minWidth = \"350px\";\r\n this.parentComponent?.closeModel_MRP('HR');\r\n }\r\n }\r\n\r\n async showRevisions(model: BimViewerFileDtoSplitView): Promise {\r\n \r\n let revisionsContainer: HTMLElement |null = document.getElementById('revision-container');\r\n let modelRevisionContainer: HTMLElement | null = document.getElementById('model-revision-container');\r\n if (this.isNewModelSelected(model.id)) {\r\n if(this.shouldMakeRevisionElementVisible()) {\r\n let success = await this.setRevisionListAndModelId(model); //Get indication of whether or not it was a success.\r\n if (success == undefined) {\r\n return;\r\n }\r\n if (revisionsContainer && modelRevisionContainer) {\r\n revisionsContainer.hidden = false;\r\n revisionsContainer.style.width = \"320px\";\r\n revisionsContainer.style.height = \"fit-content\";\r\n modelRevisionContainer.style.minWidth = \"720px\";\r\n }\r\n } else {\r\n await this.setRevisionListAndModelId(model);\r\n }\r\n this.sortRevisions();\r\n } else {\r\n if (revisionsContainer && modelRevisionContainer) {\r\n modelRevisionContainer.style.minWidth = \"350px\";\r\n revisionsContainer.hidden = true;\r\n }\r\n\r\n }\r\n return true;\r\n }\r\n\r\n async setRevisionListAndModelId(model: BimViewerFileDtoSplitView): Promise {\r\n let response: BimViewerRevisionDtoSplitView[] | undefined = await this.parentComponent?.getAllRevisions_forMODEL(model,'SRLAMI');\r\n if (response == undefined) {\r\n return;\r\n }\r\n this.currentModel = model\r\n this.formatDateTime();\r\n return true;\r\n }\r\n \r\n formatDateTime(): void {\r\n if (this.currentModel) {\r\n this.parentComponent?.modelRevisionsMap?.get(this.currentModel)?.forEach(revision => {\r\n revision.created = DateTimeFormatter.formatDate(revision.created);\r\n });\r\n }\r\n }\r\n\r\n sortRevisions(): void {\r\n if (this.currentModel) {\r\n this.parentComponent?.modelRevisionsMap?.get(this.currentModel)?.sort((revision1: BimViewerRevisionDtoSplitView, revision2: BimViewerRevisionDtoSplitView) => {\r\n if(revision1.revision > revision2.revision) {\r\n return -1;\r\n } else if(revision1.revision < revision2.revision) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n }\r\n\r\n shouldMakeRevisionElementVisible(): boolean {\r\n let revisionsContainer: HTMLElement |null = document.getElementById('revision-container');\r\n if (revisionsContainer) {\r\n return revisionsContainer.style.visibility == \"hidden\" ||\r\n revisionsContainer.style.visibility == \"\";\r\n }\r\n return false;\r\n }\r\n\r\n isNewModelSelected(modelId: string): boolean {\r\n if(this.currentModel != undefined) {\r\n return this.currentModel.id != modelId || this.currentModel.id == \"\" || this.currentModel.isOpen == false;\r\n }\r\n return true;\r\n }\r\n \r\n open2DViewerRevision(revision: BimViewerRevisionDtoSplitView, event: PointerEvent | undefined): void {\r\n if (event?.detail && event?.detail > 1) {\r\n console.warn(\"Multiple clicks are not supported\")\r\n return;\r\n }\r\n if (revision.pressed2d != true) {\r\n this.events.publish('2dViewer:TurnOnRevision', {model: this.currentModel, revision, isAny3dRevisionOn: this.parentComponent?.isAny3dRevisionOn()});\r\n } else {\r\n this.events.publish('2dViewer:TurnOffRevision');\r\n }\r\n }\r\n\r\n open3DViewerRevision(revision: BimViewerRevisionDtoSplitView, event: PointerEvent | undefined): void {\r\n if (event?.detail && event?.detail > 1) {\r\n console.warn(\"Multiple clicks are not supported\")\r\n return;\r\n }\r\n if (this.currentModel) {\r\n let isNewestPluginRevision: boolean | undefined = this.parentComponent?.isNewestPluginRevision(this.currentModel, revision);\r\n if (revision.pressed3d != true) {\r\n\t\t\t\tconsole.log('open3DViewerRevision emitting 3dViewer:TurnOn3dRevision');\r\n this.events.publish('3dViewer:TurnOn3dRevision', {model: this.currentModel, revision, isNewestPluginRevision: isNewestPluginRevision});\r\n } else {\r\n this.events.publish('3dViewer:TurnOff3dRevision', {model: this.currentModel, revision: revision, isNewestPluginRevision: isNewestPluginRevision});\r\n }\r\n }\r\n }\r\n\r\n open2DViewerRevisionOnStartup(revision: BimViewerRevisionDtoSplitView, model: BimViewerFileDtoSplitView): void {\r\n this.events.publish('2dViewer:TurnOnRevision', {model, revision, isAny3dRevisionOn: this.parentComponent?.isAny3dRevisionOn()});\r\n }\r\n\r\n open3DViewerRevisionOnStartup(revision: BimViewerRevisionDtoSplitView, model: BimViewerFileDtoSplitView): void {\r\n\t\tconsole.log('open3DViewerRevisionOnStartup emitting 3dViewer:TurnOn3dRevision');\r\n this.events.publish('3dViewer:TurnOn3dRevision', {model, revision});\r\n }\r\n}\r\n","import { ViewerTokenDto } from \"app/models/viewer-dtos/Dtos/Bimsync/BimsyncDtos\";\r\nimport { BimViewerFileDtoSplitView } from \"app/models/viewer-dtos/Dtos/bimviewer-dtos\";\r\n\r\nimport {FragmentsGroup} from 'bim-fragment'; \r\n\r\nexport interface ViewpointClass {\r\n direction: {\r\n x: number,\r\n y: number,\r\n z: number\r\n };\r\n location: {\r\n x: number,\r\n y: number,\r\n z: number\r\n };\r\n up: {\r\n x: number,\r\n y: number,\r\n z: number,\r\n };\r\n fov: number;\r\n type: string\r\n}\r\n\r\nexport interface Viewpoint {\r\n direction: {\r\n x: number,\r\n y: number,\r\n z: number\r\n };\r\n location: {\r\n x: number,\r\n y: number,\r\n z: number\r\n };\r\n up: {\r\n x: number,\r\n y: number,\r\n z: number,\r\n };\r\n fov: number;\r\n type: string\r\n}\r\n \r\nexport class RevisionInformation3d { // for catenda.\r\n revisionBimId: string = \"\";\r\n boundingBox: {\r\n min: {\r\n x: number,\r\n y: number;\r\n },\r\n max: {\r\n x: number,\r\n y: number\r\n }\r\n } | undefined;\r\n otherObjectIdsList: number[] = [];\r\n spaceIds: number[] = [];\r\n ifcSpaceObjectIds: number[] = [];\r\n isModelShowing: boolean = false;\r\n}\r\n\r\nexport class OB_RevisionInformation3d { // OpenBim variant of Catenda's RevisionInformation3d\r\n revisionBimId: string = \"\";\r\n boundingBox: {\r\n min: {\r\n x: number,\r\n y: number;\r\n },\r\n max: {\r\n x: number,\r\n y: number\r\n }\r\n } | undefined;\r\n otherObjectIdsList: number[] = [];\r\n spaceIds: number[] = [];\r\n ifcSpaceObjectIds: number[] = [];\r\n isModelShowing: boolean = false;\r\n\r\n\topenBim_model:FragmentsGroup|undefined;\r\n}\r\n\r\n\r\nexport class RevisionInformation2d {\r\n stories: Story[] = [];\r\n isModelShowing: boolean = false;\r\n modelId: string = \"\";\r\n}\r\n\r\nexport interface Story {\r\n buildingId: string;\r\n elevation: number;\r\n guid: string;\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport interface SelectedItem {\r\n objectIds: number[];\r\n}\r\n\r\nexport class TurnOnRevision3dResponse {\r\n hasModelBeenLoaded: boolean;\r\n success: boolean;\r\n constructor(hasModelBeenLoaded: boolean, success: boolean) {\r\n this.hasModelBeenLoaded = hasModelBeenLoaded;\r\n this.success = success;\r\n }\r\n}\r\n\r\nexport interface ObjectRelation {\r\n ifcType: string;\r\n objectId: number;\r\n name: string;\r\n parent: any;\r\n}\r\n\r\nexport interface IFCObject {\r\n id: number;\r\n name: string;\r\n parentObjectId?: number;\r\n}\r\n\r\nexport class ObjectRelationTree {\r\n map: Map\r\n constructor() {\r\n this.map = new Map();\r\n }\r\n}\r\n\r\ntype ChildId = number;\r\nexport class ObjectRelationTreeSimple {\r\n parent: number = -1;\r\n children: (number | ObjectRelationTreeSimple)[];\r\n _children: Map = new Map();\r\n constructor() {\r\n this.children = [];\r\n }\r\n}\r\n\r\nexport interface GetAllObjectIdsResponse {\r\n somethingWentWrong: boolean;\r\n otherObjectIdsList: number[];\r\n spaceObjectIds: number[];\r\n //parentID childIds\r\n bimRevisionId: string;\r\n revisionId: string;\r\n model: BimViewerFileDtoSplitView;\r\n}\r\n\r\nexport interface FileAndRevisionDto {\r\n\tfileId:string;\r\n\trevisionId:string;\r\n}\r\n\r\nexport interface GetViewerResponse3d {\r\n viewerTokenDto: ViewerTokenDto;\r\n fileBimId: string;\r\n bimRevisionId: string;\r\n revisionId: string;\r\n isSynced: boolean;\r\n syncProgress: number;\r\n}\r\n\r\nexport interface GetViewerResponse2d {\r\n viewerTokenDto: ViewerTokenDto;\r\n bimRevisionId: string;\r\n revisionId: string;\r\n isSynced: boolean;\r\n syncProgress: number;\r\n}\r\n\r\nexport interface ObjectRelationParent {\r\n children: (ObjectRelationChild | ObjectRelationParent)[],\r\n classificationReferences: any[],\r\n globalId: string,\r\n groups: any[]\r\n ifcType: string,\r\n layers: any[]\r\n name: string,\r\n objectId:number,\r\n ownerHistory: OwnerHistory[],\r\n parent: ObjectRelationParent,\r\n systems: any[]\r\n type: any,\r\n zones: any[]\r\n}\r\n\r\nexport interface ObjectRelationChild {\r\n globalId: string,\r\n ifcType: string,\r\n name: string,\r\n objectId: number,\r\n url: string\r\n}\r\n\r\nexport interface OwnerHistory {\r\n globalId: string,\r\n ifcType: string,\r\n name: string,\r\n objectId: number,\r\n url: string\r\n}\r\n\r\n//https://bimsync.com/js/examples/navigation-modes.js\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","Revision","constructor","events","subscriptions","bind","params","this","parentComponent","self","subscribe","async","parameter","is2d","turnOn2dRevision","model","revision","started3dModelLoading","model3dDoneLoading","revisionId","turnOff2dRevision","turnOff2dModel","turnOff3dRevision","turnOff3dModel","attached","revisionContainer","document","getElementById","hidden","unbind","forEach","subscription","dispose","hideRevisions","revisionsContainer","modelRevisionContainer","style","minWidth","closeModel_MRP","isNewModelSelected","shouldMakeRevisionElementVisible","undefined","setRevisionListAndModelId","width","height","sortRevisions","getAllRevisions_forMODEL","currentModel","formatDateTime","modelRevisionsMap","get","created","sort","revision1","revision2","visibility","modelId","isOpen","open2DViewerRevision","event","detail","console","warn","pressed2d","publish","isAny3dRevisionOn","open3DViewerRevision","isNewestPluginRevision","pressed3d","log","open2DViewerRevisionOnStartup","open3DViewerRevisionOnStartup","autoinject","RevisionInformation3d","revisionBimId","otherObjectIdsList","spaceIds","ifcSpaceObjectIds","isModelShowing","OB_RevisionInformation3d","RevisionInformation2d","stories","TurnOnRevision3dResponse","hasModelBeenLoaded","success"],"sourceRoot":""}
15 ? r.name : ''}\\\"> ${r.name.length > 15 ? r.name.substring(0,15) + \\\"...\\\" : r.name} #${r.revision}
${r.created}
By: ${r.username}