{"version":3,"file":"js/1579.js","mappings":"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,MAAM+P,EAA8D,CACvE,CAAE6B,KAAM,KAAMna,KAAM,sDACpB,CAAEma,KAAM,KAAMna,KAAM,oDACpB,CAAEma,KAAM,KAAMna,KAAM,iEACpB,CAAEma,KAAM,KAAMna,KAAM,wBACpB,CAAEma,KAAM,KAAMna,KAAM,+CACpB,CAAEma,KAAM,KAAMna,KAAM,gEACpB,CAAEma,KAAM,KAAMna,KAAM,6CACpB,CAAEma,KAAM,KAAMna,KAAM,gEAQXuY,EAAyE,CAClF,CAAE4B,KAAM,KAAMna,KAAM,uCACpB,CAAEma,KAAM,KAAMna,KAAM,mCACpB,CAAEma,KAAM,KAAMna,KAAM,gBACpB,CAAEma,KAAM,KAAMna,KAAM,oCACpB,CAAEma,KAAM,KAAMna,KAAM,gCACpB,CAAEma,KAAM,KAAMna,KAAM,yCACpB,CAAEma,KAAM,KAAMna,KAAM,qCACpB,CAAEma,KAAM,KAAMna,KAAM,gBACpB,CAAEma,KAAM,KAAMna,KAAM,2CACpB,CAAEma,KAAM,KAAMna,KAAM,uCACpB,CAAEma,KAAM,KAAMna,KAAM,oDACpB,CAAEma,KAAM,KAAMna,KAAM,mBACpB,CAAEma,KAAM,KAAMna,KAAM,8CACpB,CAAEma,KAAM,KAAMna,KAAM,cACpB,CAAEma,KAAM,KAAMna,KAAM,0BACpB,CAAEma,KAAM,KAAMna,KAAM,uCACpB,CAAEma,KAAM,KAAMna,KAAM,2CACpB,CAAEma,KAAM,KAAMna,KAAM,2CACpB,CAAEma,KAAM,KAAMna,KAAM,uCACpB,CAAEma,KAAM,KAAMna,KAAM,4CACpB,CAAEma,KAAM,KAAMna,KAAM,wCACpB,CAAEma,KAAM,KAAMna,KAAM,iDACpB,CAAEma,KAAM,KAAMna,KAAM,6CACpB,CAAEma,KAAM,KAAMna,KAAM,0CACpB,CAAEma,KAAM,KAAMna,KAAM,sCACpB,CAAEma,KAAM,KAAMna,KAAM,cACpB,CAAEma,KAAM,KAAMna,KAAM,UACpB,CAAEma,KAAM,KAAMna,KAAM,wBACpB,CAAEma,KAAM,KAAMna,KAAM,mBACpB,CAAEma,KAAM,KAAMna,KAAM,wBACpB,CAAEma,KAAM,KAAMna,KAAM,yDACpB,CAAEma,KAAM,KAAMna,KAAM,qDACpB,CAAEma,KAAM,KAAMna,KAAM,oBACpB,CAAEma,KAAM,KAAMna,KAAM,+CACpB,CAAEma,KAAM,KAAMna,KAAM,0CACpB,CAAEma,KAAM,KAAMna,KAAM,sCACpB,CAAEma,KAAM,KAAMna,KAAM,uDACpB,CAAEma,KAAM,KAAMna,KAAM,cACpB,CAAEma,KAAM,KAAMna,KAAM,gBACpB,CAAEma,KAAM,KAAMna,KAAM,oCACpB,CAAEma,KAAM,KAAMna,KAAM,gCACpB,CAAEma,KAAM,KAAMna,KAAM,kBACpB,CAAEma,KAAM,KAAMna,KAAM,sCACpB,CAAEma,KAAM,KAAMna,KAAM,kCACpB,CAAEma,KAAM,KAAMna,KAAM,yBACpB,CAAEma,KAAM,KAAMna,KAAM,yBACpB,CAAEma,KAAM,KAAMna,KAAM,qBACpB,CAAEma,KAAM,KAAMna,KAAM,sDACpB,CAAEma,KAAM,KAAMna,KAAM,mDACpB,CAAEma,KAAM,KAAMna,KAAM,sDACpB,CAAEma,KAAM,KAAMna,KAAM,0C","sources":["webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/EplumeDialog.vue?c814","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/EplumeDialog.vue.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/EplumeDialog.vue.ts?7354","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/EplumeDialog.vue","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/FolderWithCommentDialog.vue?308a","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/FolderWithCommentDialog.vue.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/FolderWithCommentDialog.vue.ts?a2c2","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/FolderWithCommentDialog.vue","webpack://sbs.vison/../../../src/components/VTimePicker/SelectingTimes.ts","webpack://sbs.vison/../../../src/components/VTimePicker/VTimePickerTitle.ts","webpack://sbs.vison/../../../src/components/VTimePicker/VTimePickerClock.ts","webpack://sbs.vison/../../../src/components/VTimePicker/VTimePicker.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoCreateDPDialog.vue?59d2","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoCreateDPDialog.vue.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoCreateDPDialog.vue.ts?b69a","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoCreateDPDialog.vue","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoEquipmentDialog.vue?37c1","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoEquipmentDialog.vue.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoEquipmentDialog.vue.ts?6e8a","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoEquipmentDialog.vue","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoPrsDialog.vue?de7a","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoPrsDialog.vue.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoPrsDialog.vue.ts?1292","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/OranoPrsDialog.vue","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/VoSmartObjectDetailsDialog.vue?6645","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/VoSmartObjectDetailsDialog.vue.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/VoSmartObjectDetailsDialog.vue.ts?d0c4","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Dialogs/VoSmartObjectDetailsDialog.vue","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/Dialogs/VoDiaporamaDialog.vue?297f","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/Dialogs/VoDiaporamaDialog.vue.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/Dialogs/VoDiaporamaDialog.vue.ts?95c3","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/Dialogs/VoDiaporamaDialog.vue","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/Dialogs/VoIFrameDialog.vue?fe91","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/Dialogs/VoIFrameDialog.vue.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/Dialogs/VoIFrameDialog.vue.ts?92f9","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/Dialogs/VoIFrameDialog.vue","webpack://sbs.vison/./Scripts/ts/App/Areas/Explore/Components/Behaviors/PointCloudBehavior.ts","webpack://sbs.vison/./Scripts/ts/App/Utils/SpecificationCollection.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/PlayerContext.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/VoPlayer.vue.ts","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/VoPlayer.vue","webpack://sbs.vison/./Scripts/ts/App/Areas/Shares/VoPlayer.vue.ts?e2f7","webpack://sbs.vison/./Scripts/ts/Api/Plugins/Orano/Dtos/WRHeader.ts"],"sourcesContent":["import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCarousel } from 'vuetify/lib/components/VCarousel';\nimport { VCarouselItem } from 'vuetify/lib/components/VCarousel';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('default-dialog',{staticClass:\"eplume-dialog\",scopedSlots:_vm._u([(_vm.wiwEntity)?{key:\"title\",fn:function(){return [_c('a',{attrs:{\"href\":_vm.getEntityUri(_vm.wiwEntity),\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\"#\"+_vm._s(_vm.wiwEntity.id))]),_vm._v(\" \"+_vm._s(_vm.wiwEntity.name)+\" \")]},proxy:true}:null,{key:\"default\",fn:function(){return [_c(VCard,{staticClass:\"d-flex flex-column overflow-hidden\",attrs:{\"flat\":\"\"}},[(_vm.wiwEntity)?_c(VCardTitle,[_vm._v(_vm._s(_vm.wiwEntity.description))]):_vm._e(),_c(VCardText,{staticClass:\"flex-grow-1\"},[_c(VContainer,{attrs:{\"fluid\":\"\",\"fill-height\":\"\",\"align-start\":\"\",\"justify-center\":\"\",\"pa-0\":\"\"}},[_c(VRow,{staticClass:\"align-self-stretch\",attrs:{\"no-gutters\":\"\"}},[_c(VCol,{staticClass:\"d-flex\"},[_c(VTabs,{attrs:{\"center-active\":\"\",\"show-arrows\":\"mobile\"}},[_c(VTabsSlider,{attrs:{\"color\":\"primary\"}}),(_vm.wiwEntity)?_c(VTab,{key:0,attrs:{\"value\":\"tab-0\",\"href\":\"#tab-0\"}},[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.General.Title')))]):_vm._e(),(_vm.wiwEntity && _vm.wiwEntity.images.length)?_c(VTab,{key:1,attrs:{\"value\":\"tab-1\",\"href\":\"#tab-1\"}},[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Pictures.Title')))]):_vm._e(),(_vm.hasEwattchData)?_c(VTab,{key:2,attrs:{\"value\":\"tab-2\",\"href\":\"#tab-2\"}},[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Data.Title')))]):_vm._e(),(_vm.wiwEntity)?_c(VTab,{key:3,attrs:{\"value\":\"tab-3\",\"href\":\"#tab-3\"}},[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Tickets.Title')))]):_vm._e(),(_vm.wiwEntity)?_c(VTab,{key:4,attrs:{\"value\":\"tab-4\",\"href\":\"#tab-4\"}},[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Comments.Title')))]):_vm._e(),_c(VTabItem,{key:0,attrs:{\"value\":\"tab-0\"}},[(_vm.wiwEntity && _vm.wiwEntity.properties)?_c('ul',{attrs:{\"id\":\"thewiw-infos\"}},_vm._l((_vm.wiwEntity.properties),function(info){return _c('li',{key:info.id},[(info.unit.name == 'link_internet' || info.property == 'vis_on')?_c('p',[_c('span',[_vm._v(_vm._s(info.display.FR)+\" :\")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":info.value}},[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.General.GoToWebsite')))])]):(info.property == 'gas_hazard' || info.property == 'burn_hazard')?_c('p',[_c('span',[_vm._v(_vm._s(info.display.FR)+\" :\")]),_vm._v(\" \"),_c('i',{staticClass:\"fa-duotone fa-exclamation-triangle\",staticStyle:{\"--fa-primary-color\":\"black\",\"--fa-secondary-color\":\"yellow\",\"--fa-secondary-opacity\":\"1\"}})]):(info.unit.name == 'datetime')?_c('p',[_c('span',[_vm._v(_vm._s(info.display.FR)+\" :\")]),_vm._v(\" \"+_vm._s(_vm.formatDate(info.value))+\" \")]):_c('p',[_c('span',[_vm._v(_vm._s(info.display.FR)+\" :\")]),_vm._v(\" \"+_vm._s(info.value)+\" \"+_vm._s(info.unit.symbol.FR[0])+\" \")])])}),0):_vm._e()]),_c(VTabItem,{key:1,attrs:{\"value\":\"tab-1\"}},[_c(VContainer,{attrs:{\"fluid\":\"\",\"fill-height\":\"\",\"justify-center\":\"\"}},[_c(VRow,{attrs:{\"no-gutters\":\"\"}},[_c(VCol,[_c(VCarousel,{attrs:{\"cycle\":\"\",\"hide-delimiter-background\":\"\",\"show-arrows-on-hover\":\"\"}},_vm._l((_vm.linkedImages),function(item,i){return _c(VCarouselItem,{key:i,attrs:{\"src\":item,\"contain\":\"\",\"reverse-transition\":\"fade-transition\",\"transition\":\"fade-transition\"}})}),1)],1)],1)],1)],1),_c(VTabItem,{key:2,attrs:{\"value\":\"tab-2\"}},[_c('iframe',{staticStyle:{\"height\":\"100%\",\"width\":\"100%\"},attrs:{\"id\":\"ewattch-dashlet\",\"src\":_vm.dashletEwattch}})]),(_vm.wiwEntity && _vm.wiwEntity.tickets)?_c(VTabItem,{key:3,attrs:{\"value\":\"tab-3\"}},[_c(VDataTable,{staticClass:\"d-flex\",attrs:{\"headers\":_vm.headersTicket,\"items\":_vm.wiwEntity.tickets,\"show-expand\":\"\",\"disable-sort\":\"\"},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c(VToolbar,{attrs:{\"flat\":\"\"}},[_c(VSpacer),_c(VDialog,{attrs:{\"max-width\":\"500px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VBtn,_vm._g({staticClass:\"mb-2\",attrs:{\"color\":\"primary\"}},on),[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Tickets.Add')))])]}}],null,false,3176438287),model:{value:(_vm.menu.isTicketModalOpen),callback:function ($$v) {_vm.$set(_vm.menu, \"isTicketModalOpen\", $$v)},expression:\"menu.isTicketModalOpen\"}},[_c(VCard,[_c(VCardTitle,[_c('span',{staticClass:\"text-h5\"},[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Tickets.AddTicketTitle')))])]),_c(VCardText,[_c(VContainer,[_c(VRow,[_c(VCol,[_c(VRow,[_c(VTextField,{attrs:{\"label\":_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Tickets.Name'),\"filled\":\"\"},model:{value:(_vm.formTicketName),callback:function ($$v) {_vm.formTicketName=$$v},expression:\"formTicketName\"}})],1),_c(VRow,[_c(VTextarea,{attrs:{\"label\":_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Tickets.Description'),\"filled\":\"\",\"auto-grow\":\"\"},model:{value:(_vm.formTicketDescription),callback:function ($$v) {_vm.formTicketDescription=$$v},expression:\"formTicketDescription\"}})],1),_c(VRow,[_c(VCol,[_c('vo-date-picker',{attrs:{\"prepend-icon\":\"fa-regular fa-calendar-days\",\"label\":_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Tickets.ScheduledStart')},model:{value:(_vm.formTicketStartDate),callback:function ($$v) {_vm.formTicketStartDate=$$v},expression:\"formTicketStartDate\"}})],1),_c(VCol,[_c('vo-date-picker',{attrs:{\"label\":_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Tickets.ScheduledEnd'),\"prepend-icon\":\"fa-regular fa-calendar-days\"},model:{value:(_vm.formTicketEndDate),callback:function ($$v) {_vm.formTicketEndDate=$$v},expression:\"formTicketEndDate\"}})],1)],1)],1)],1)],1)],1),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"color\":\"secondary\",\"disabled\":_vm.isBusy},on:{\"click\":function($event){_vm.menu.isTicketModalOpen = false}}},[_vm._v(_vm._s(_vm.localizer('Cancel')))]),_c(VBtn,{attrs:{\"color\":\"primary\",\"loading\":_vm.isBusy},on:{\"click\":_vm._onSubmitAddTicketAsync}},[_vm._v(_vm._s(_vm.localizer('Validate')))])],1)],1)],1)],1)]},proxy:true},{key:\"item.id\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('a',{attrs:{\"href\":_vm.getTicketUri(item),\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\"#\"+_vm._s(item.id))])]}},{key:\"item.created\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.formatDate(item.created))+\" \")]}},{key:\"item.scheduledBegin\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.formatDate(item.scheduledBegin))+\" \")]}},{key:\"item.scheduledEnd\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.formatDate(item.scheduledEnd))+\" \")]}},{key:\"expanded-item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('p',[_vm._v(_vm._s(item.description))])]}}],null,false,2290012953)})],1):_vm._e(),(_vm.wiwEntity && _vm.wiwEntity.comments)?_c(VTabItem,{key:4,attrs:{\"value\":\"tab-4\"}},[_c(VDataTable,{staticClass:\"d-flex\",attrs:{\"headers\":_vm.headersComments,\"items\":_vm.wiwEntity.comments,\"show-expand\":\"\",\"disable-sort\":\"\"},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c(VToolbar,{attrs:{\"flat\":\"\"}},[_c(VSpacer),_c(VDialog,{attrs:{\"max-width\":\"500px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VBtn,_vm._g({staticClass:\"mb-2\",attrs:{\"color\":\"primary\"}},on),[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Comments.Add')))])]}}],null,false,3608598264),model:{value:(_vm.menu.isCommentModalOpen),callback:function ($$v) {_vm.$set(_vm.menu, \"isCommentModalOpen\", $$v)},expression:\"menu.isCommentModalOpen\"}},[_c(VCard,[_c(VCardTitle,[_c('span',{staticClass:\"text-h5\"},[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Comments.AddCommentTitle')))])]),_c(VCardText,[_c(VContainer,[_c(VRow,[_c(VTextarea,{attrs:{\"label\":_vm.localizer('Areas.Explore.Dialogs.EPlume.Tabs.Comments.Comment'),\"filled\":\"\",\"auto-grow\":\"\"},model:{value:(_vm.formCommentContent),callback:function ($$v) {_vm.formCommentContent=$$v},expression:\"formCommentContent\"}})],1)],1)],1),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"color\":\"secondary\",\"disabled\":_vm.isBusy},on:{\"click\":function($event){_vm.menu.isCommentModalOpen = false}}},[_vm._v(_vm._s(_vm.localizer('Cancel')))]),_c(VBtn,{attrs:{\"color\":\"primary\",\"loading\":_vm.isBusy},on:{\"click\":_vm._onSubmitAddCommentAsync}},[_vm._v(_vm._s(_vm.localizer('Validate')))])],1)],1)],1)],1)]},proxy:true},{key:\"item.author\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.author.fullName)+\" \")]}},{key:\"item.date\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.formatDate(item.date))+\" \")]}},{key:\"expanded-item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('p',[_vm._v(_vm._s(item.content))])]}}],null,false,1880919655)})],1):_vm._e()],1)],1)],1)],1)],1)],1)]},proxy:true}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { LocalizerService } from 'Api/LocalizerService';\r\nimport { IEntity, injectTypes, ITicket, IWiwContext, WiwService } from 'Api/Plugins/Wiw/WiwService';\r\nimport VoDatePicker from 'App/Areas/Shares/FormInputs/VoDatePicker.vue';\r\nimport { lazyInject } from 'App/Inversify.config';\r\nimport { BaseDialogBehavior } from 'App/Services/DialogService/BaseDialogBehavior';\r\nimport { Component } from 'Framework/Components/UIElement';\r\nimport { chunk } from 'lodash';\r\nimport { DataTableHeader } from 'vuetify';\r\n\r\ninterface IEplumeState {\r\n wiwId: string;\r\n ewattchId: string;\r\n}\r\n\r\n@Component({\r\n name: 'EplumeDialog',\r\n components: {\r\n VoDatePicker\r\n }\r\n})\r\nexport default class EplumeDialog extends BaseDialogBehavior {\r\n public getTicketUri(ticket: ITicket): string {\r\n return `${this._wiwContext.baseUriWiw}/app/wiw.html?#!/ticket/${ticket.id}/details`\r\n }\r\n\r\n public getEntityUri(entity: IEntity): string {\r\n return `${this._wiwContext.baseUriWiw}/app/wiw.html?#!/product/${entity.id}/details`\r\n }\r\n\r\n public formatDate(date: Date): string {\r\n return date\r\n ? this._localizerService.localizeDate(date).format('LL')\r\n : '';\r\n }\r\n\r\n protected async _onDataContextChanged(newValue: IEplumeState, oldValue: IEplumeState): Promise {\r\n let oldWiwId = oldValue ? oldValue.wiwId : null;\r\n let newWiwId = newValue ? newValue.wiwId : null;\r\n\r\n let oldEwattchId = oldValue ? oldValue.ewattchId : null;\r\n let newEwattchId = newValue ? newValue.ewattchId : null;\r\n\r\n if (newEwattchId && newEwattchId != oldEwattchId) {\r\n this.dashletEwattch = this._getEwattchData(newEwattchId);\r\n }\r\n\r\n if (newWiwId && newWiwId != oldWiwId) {\r\n if (!this._wiwService.isLogged) {\r\n await this._wiwService.loginTokenAsync(this._wiwContext.apiKey);\r\n }\r\n\r\n this.wiwEntity = await this._wiwService.getEntityAsync(newWiwId);\r\n await this._updateEntityAsync(this.wiwEntity);\r\n }\r\n }\r\n\r\n private async _onSubmitAddTicketAsync(): Promise {\r\n try {\r\n this.isBusy = true;\r\n\r\n let selectedStartDate: Date = this.formTicketStartDate\r\n ? new Date(this.formTicketStartDate)\r\n : null;\r\n\r\n let selectedEndDate: Date = this.formTicketEndDate\r\n ? new Date(this.formTicketEndDate)\r\n : null;\r\n\r\n const isSuccess = await this._wiwService.addTicketForEntityAsync(\r\n this.wiwEntity.id,\r\n this.formTicketName,\r\n this.formTicketDescription,\r\n selectedStartDate,\r\n selectedEndDate\r\n );\r\n\r\n if (isSuccess) {\r\n this.wiwEntity.tickets = await this._wiwService.getTicketsOfEntityAsync(this.wiwEntity.id);\r\n }\r\n }\r\n finally {\r\n this.isBusy = false;\r\n this.menu.isTicketModalOpen = false;\r\n }\r\n }\r\n\r\n private async _onSubmitAddCommentAsync(): Promise {\r\n try {\r\n this.isBusy = true;\r\n\r\n const isSuccess = await this._wiwService.addCommentForEntityAsync(\r\n this.wiwEntity.id,\r\n this.formCommentContent\r\n );\r\n\r\n if (isSuccess) {\r\n this.wiwEntity.comments = await this._wiwService.getCommentsOfEntityAsync(this.wiwEntity.id);\r\n }\r\n }\r\n finally {\r\n this.isBusy = false;\r\n this.menu.isCommentModalOpen = false;\r\n }\r\n }\r\n\r\n private async _updateEntityAsync(data: IEntity): Promise {\r\n this.linkedImages = new Array();\r\n const chunkedImages: Array> = chunk(data.images, 4);\r\n\r\n for (const images of chunkedImages) {\r\n const loadingImages = images.map(async (rawId: string) => {\r\n const id = rawId.substring(1);\r\n const blobImage = await this._wiwService.getBlobImageAsync(id);\r\n\r\n return URL.createObjectURL(blobImage);\r\n });\r\n\r\n const results = await Promise.allSettled(loadingImages)\r\n const imagesLoaded = results\r\n .filter(p => p.status == 'fulfilled')\r\n .map((p: PromiseFulfilledResult) => p.value);\r\n\r\n this.linkedImages.push(...imagesLoaded);\r\n }\r\n }\r\n\r\n private _getEwattchData(ewattchId: string): string {\r\n if (ewattchId) {\r\n this.hasEwattchData = true;\r\n return `https://www.ewattchcloud.fr/dashlets/public/${ewattchId}`;\r\n }\r\n else {\r\n this.hasEwattchData = false;\r\n return null;\r\n }\r\n }\r\n\r\n public isBusy: boolean = false;\r\n public menu = {\r\n isTicketModalOpen: false,\r\n isCommentModalOpen: false\r\n };\r\n\r\n public headersTicket: Array = [\r\n { text: 'Id', value: 'id' },\r\n { text: 'Nom', value: 'name' },\r\n { text: 'Date de création', value: 'created' },\r\n { text: 'Début prévu', value: 'scheduledBegin' },\r\n { text: 'Fin prévue', value: 'scheduledEnd' },\r\n ];\r\n public headersComments: Array = [\r\n { text: 'Auteur', value: 'author' },\r\n { text: 'Date de création', value: 'date' }\r\n ];\r\n\r\n\r\n public hasEwattchData: boolean = false;\r\n public dashletEwattch: string = '';\r\n\r\n public wiwEntity: IEntity = null;\r\n public linkedImages: Array = [];\r\n\r\n public formTicketName: string = '';\r\n public formTicketDescription: string = '';\r\n public formTicketStartDate: Date = null;\r\n public formTicketEndDate: Date = null;\r\n\r\n public formCommentContent: string = '';\r\n\r\n @lazyInject(WiwService)\r\n private readonly _wiwService: WiwService;\r\n\r\n @lazyInject(injectTypes.IWiwContext)\r\n private readonly _wiwContext: IWiwContext;\r\n\r\n @lazyInject(LocalizerService)\r\n private readonly _localizerService: LocalizerService;\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./EplumeDialog.vue.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./EplumeDialog.vue.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EplumeDialog.vue?vue&type=template&id=61fe2320&scoped=true&\"\nimport script from \"./EplumeDialog.vue.ts?vue&type=script&lang=ts&\"\nexport * from \"./EplumeDialog.vue.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./EplumeDialog.vue.scss?vue&type=style&index=0&id=61fe2320&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61fe2320\",\n null\n \n)\n\nexport default component.exports","import { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('default-dialog',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.dataContext.assetItem.name)+\" \")]},proxy:true},{key:\"default\",fn:function(){return [_c(VTabs,{attrs:{\"center-active\":\"\"}},[_c(VTabsSlider,{attrs:{\"color\":\"primary\"}}),(_vm.dataContext.comment)?_c(VTab,{key:0,attrs:{\"value\":\"tab-0\",\"href\":\"#tab-0\"}},[_vm._v(_vm._s(_vm.localizer('Areas.Explore.Dialogs.FolderWithComment.Comment')))]):_vm._e(),_vm._l((_vm.subFolders),function(asset){return _c(VTab,{key:asset.assetItemId,attrs:{\"href\":'#tab-' + asset.assetItemId}},[_vm._v(_vm._s(asset.name))])}),(_vm.dataContext.comment)?_c(VTabItem,{key:0,attrs:{\"value\":\"tab-0\"}},[_c('vue-markdown',{attrs:{\"source\":_vm.dataContext.comment}})],1):_vm._e(),_vm._l((_vm.subFolders),function(asset){return _c(VTabItem,{key:asset.assetItemId,attrs:{\"value\":'tab-' + asset.assetItemId}},[_c('x-wrap-panel',{attrs:{\"item-source\":_vm.getChildren(asset.assetItemId),\"horizontal-content-alignment\":0},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_c('x-file-preview',{key:props.item.assetItemId,attrs:{\"asset-file\":props.item},on:{\"click\":function($event){return _vm.dataContext.playerContext.openAsset(asset.assetItemId,props.item.assetItemId)}}})]}}],null,true)})],1)})],2)]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AssetItem } from 'Api/ExploreService';\r\nimport { IPlayerContext } from 'App/Areas/Shares/IPlayerContext';\r\nimport { BaseDialogBehavior } from 'App/Services/DialogService/BaseDialogBehavior';\r\nimport { Component } from 'Framework/Components/UIElement';\r\nimport VueMarkdown from 'vue-markdown';\r\n\r\n@Component({\r\n name: 'FolderWithCommentDialog',\r\n components: { VueMarkdown }\r\n})\r\nexport default class FolderWithCommentDialog extends BaseDialogBehavior<{\r\n playerContext: IPlayerContext,\r\n assetItem: AssetItem,\r\n comment: string\r\n}> {\r\n public getChildren(folderId: number): Array {\r\n return this.dataContext\r\n .playerContext\r\n .findAssetFileFromAssetFolderId(folderId, true)\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n }\r\n\r\n public get subFolders(): Array {\r\n if (this.dataContext.assetItem) {\r\n return this.dataContext\r\n .playerContext\r\n .findAssetFileFromAssetFolderId(this.dataContext.assetItem.assetItemId)\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n } else {\r\n return [];\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FolderWithCommentDialog.vue.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FolderWithCommentDialog.vue.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderWithCommentDialog.vue?vue&type=template&id=163db722&\"\nimport script from \"./FolderWithCommentDialog.vue.ts?vue&type=script&lang=ts&\"\nexport * from \"./FolderWithCommentDialog.vue.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","enum SelectingTimes {\n Hour = 1,\n Minute = 2,\n Second = 3\n}\n\nexport { SelectingTimes }\n","import './VTimePickerTitle.sass'\n\n// Mixins\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport { pad } from '../VDatePicker/util'\nimport mixins from '../../util/mixins'\n\nimport { SelectingTimes } from './SelectingTimes'\nimport { VNode, PropType } from 'vue'\n\nexport default mixins(\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-time-picker-title',\n\n props: {\n ampm: Boolean,\n ampmReadonly: Boolean,\n disabled: Boolean,\n hour: Number,\n minute: Number,\n second: Number,\n period: {\n type: String as PropType<'am' | 'pm'>,\n validator: period => period === 'am' || period === 'pm',\n },\n readonly: Boolean,\n useSeconds: Boolean,\n selecting: Number,\n },\n\n methods: {\n genTime () {\n let hour = this.hour\n if (this.ampm) {\n hour = hour ? ((hour - 1) % 12 + 1) : 12\n }\n\n const displayedHour = this.hour == null ? '--' : this.ampm ? String(hour) : pad(hour)\n const displayedMinute = this.minute == null ? '--' : pad(this.minute)\n const titleContent = [\n this.genPickerButton('selecting', SelectingTimes.Hour, displayedHour, this.disabled),\n this.$createElement('span', ':'),\n this.genPickerButton('selecting', SelectingTimes.Minute, displayedMinute, this.disabled),\n ]\n\n if (this.useSeconds) {\n const displayedSecond = this.second == null ? '--' : pad(this.second)\n titleContent.push(this.$createElement('span', ':'))\n titleContent.push(this.genPickerButton('selecting', SelectingTimes.Second, displayedSecond, this.disabled))\n }\n return this.$createElement('div', {\n class: 'v-time-picker-title__time',\n }, titleContent)\n },\n genAmPm () {\n return this.$createElement('div', {\n staticClass: 'v-time-picker-title__ampm',\n class: {\n 'v-time-picker-title__ampm--readonly': this.ampmReadonly,\n },\n }, [\n (!this.ampmReadonly || this.period === 'am') ? this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly) : null,\n (!this.ampmReadonly || this.period === 'pm') ? this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly) : null,\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genTime()]\n\n this.ampm && children.push(this.genAmPm())\n\n return h('div', {\n staticClass: 'v-time-picker-title',\n }, children)\n },\n})\n","import './VTimePickerClock.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Vue, { VNode, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ninterface Point {\n x: number\n y: number\n}\n\ninterface options extends Vue {\n $refs: {\n clock: HTMLElement\n innerClock: HTMLElement\n }\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n Colorable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-time-picker-clock',\n\n props: {\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n disabled: Boolean,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n } as PropValidator<(val: string | number) => string | number>,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n value: Number,\n },\n\n data () {\n return {\n inputValue: this.value,\n isDragging: false,\n valueOnMouseDown: null as number | null,\n valueOnMouseUp: null as number | null,\n }\n },\n\n computed: {\n count (): number {\n return this.max - this.min + 1\n },\n degreesPerUnit (): number {\n return 360 / this.roundCount\n },\n degrees (): number {\n return this.degreesPerUnit * Math.PI / 180\n },\n displayedValue (): number {\n return this.value == null ? this.min : this.value\n },\n innerRadiusScale (): number {\n return 0.62\n },\n roundCount (): number {\n return this.double ? (this.count / 2) : this.count\n },\n },\n\n watch: {\n value (value) {\n this.inputValue = value\n },\n },\n\n methods: {\n wheel (e: WheelEvent) {\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = this.displayedValue\n do {\n value = value + delta\n value = (value - this.min + this.count) % this.count + this.min\n } while (!this.isAllowed(value) && value !== this.displayedValue)\n\n if (value !== this.displayedValue) {\n this.update(value)\n }\n },\n isInner (value: number) {\n return this.double && (value - this.min >= this.roundCount)\n },\n handScale (value: number) {\n return this.isInner(value) ? this.innerRadiusScale : 1\n },\n isAllowed (value: number) {\n return !this.allowedValues || this.allowedValues(value)\n },\n genValues () {\n const children: VNode[] = []\n\n for (let value = this.min; value <= this.max; value = value + this.step) {\n const color = value === this.value && (this.color || 'accent')\n children.push(this.$createElement('span', this.setBackgroundColor(color, {\n staticClass: 'v-time-picker-clock__item',\n class: {\n 'v-time-picker-clock__item--active': value === this.displayedValue,\n 'v-time-picker-clock__item--disabled': this.disabled || !this.isAllowed(value),\n },\n style: this.getTransform(value),\n domProps: { innerHTML: `${this.format(value)}` },\n })))\n }\n\n return children\n },\n genHand () {\n const scale = `scaleY(${this.handScale(this.displayedValue)})`\n const angle = this.rotate + this.degreesPerUnit * (this.displayedValue - this.min)\n const color = (this.value != null) && (this.color || 'accent')\n return this.$createElement('div', this.setBackgroundColor(color, {\n staticClass: 'v-time-picker-clock__hand',\n class: {\n 'v-time-picker-clock__hand--inner': this.isInner(this.value),\n },\n style: {\n transform: `rotate(${angle}deg) ${scale}`,\n },\n }))\n },\n getTransform (i: number) {\n const { x, y } = this.getPosition(i)\n return {\n left: `${50 + x * 50}%`,\n top: `${50 + y * 50}%`,\n }\n },\n getPosition (value: number) {\n const rotateRadians = this.rotate * Math.PI / 180\n return {\n x: Math.sin((value - this.min) * this.degrees + rotateRadians) * this.handScale(value),\n y: -Math.cos((value - this.min) * this.degrees + rotateRadians) * this.handScale(value),\n }\n },\n onMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.valueOnMouseDown = null\n this.valueOnMouseUp = null\n this.isDragging = true\n this.onDragMove(e)\n },\n onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n\n this.isDragging = false\n if (this.valueOnMouseUp !== null && this.isAllowed(this.valueOnMouseUp)) {\n this.$emit('change', this.valueOnMouseUp)\n }\n },\n onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!this.isDragging && e.type !== 'click') || !this.$refs.clock) return\n\n const { width, top, left } = this.$refs.clock.getBoundingClientRect()\n const { width: innerWidth } = this.$refs.innerClock.getBoundingClientRect()\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(this.angle(center, coords) - this.rotate + 360) % 360\n const insideClick = this.double && this.euclidean(center, coords) < (innerWidth + innerWidth * this.innerRadiusScale) / 4\n const checksCount = Math.ceil(15 / this.degreesPerUnit)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = this.angleToValue(handAngle + i * this.degreesPerUnit, insideClick)\n if (this.isAllowed(value)) return this.setMouseDownValue(value)\n\n value = this.angleToValue(handAngle - i * this.degreesPerUnit, insideClick)\n if (this.isAllowed(value)) return this.setMouseDownValue(value)\n }\n },\n angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / this.degreesPerUnit) +\n (insideClick ? this.roundCount : 0)\n ) % this.count + this.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - this.degreesPerUnit / 2)) return value\n\n return insideClick ? this.max - this.roundCount + 1 : this.min\n },\n setMouseDownValue (value: number) {\n if (this.valueOnMouseDown === null) {\n this.valueOnMouseDown = value\n }\n\n this.valueOnMouseUp = value\n this.update(value)\n },\n update (value: number) {\n if (this.inputValue !== value) {\n this.inputValue = value\n this.$emit('input', value)\n }\n },\n euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n },\n angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - this.euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n },\n },\n\n render (h): VNode {\n const data: VNodeData = {\n staticClass: 'v-time-picker-clock',\n class: {\n 'v-time-picker-clock--indeterminate': this.value == null,\n ...this.themeClasses,\n },\n on: (this.readonly || this.disabled) ? undefined : {\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n mouseleave: (e: MouseEvent) => (this.isDragging && this.onMouseUp(e)),\n touchstart: this.onMouseDown,\n touchend: this.onMouseUp,\n mousemove: this.onDragMove,\n touchmove: this.onDragMove,\n },\n ref: 'clock',\n }\n\n if (this.scrollable && data.on) {\n data.on.wheel = this.wheel\n }\n\n return h('div', data, [\n h('div', {\n staticClass: 'v-time-picker-clock__inner',\n ref: 'innerClock',\n }, [\n this.genHand(),\n this.genValues(),\n ]),\n ])\n },\n})\n","// Components\nimport VTimePickerTitle from './VTimePickerTitle'\nimport VTimePickerClock from './VTimePickerClock'\n\n// Mixins\nimport Picker from '../../mixins/picker'\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport { createRange } from '../../util/helpers'\nimport pad from '../VDatePicker/util/pad'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { SelectingTimes } from './SelectingTimes'\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\nconst selectingNames = { 1: 'hour', 2: 'minute', 3: 'second' }\nexport { SelectingTimes }\n\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\ntype ActivePicker = 'HOUR' | 'MINUTE' | 'SECOND'\n\nexport default mixins(\n Picker,\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-time-picker',\n\n props: {\n activePicker: String as PropType,\n allowedHours: [Function, Array] as PropType,\n allowedMinutes: [Function, Array] as PropType,\n allowedSeconds: [Function, Array] as PropType,\n disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n validator (val: any) {\n return ['ampm', '24hr'].includes(val)\n },\n },\n min: String,\n max: String,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n value: null as any as PropType,\n ampmInTitle: Boolean,\n },\n\n data () {\n return {\n inputHour: null as number | null,\n inputMinute: null as number | null,\n inputSecond: null as number | null,\n lazyInputHour: null as number | null,\n lazyInputMinute: null as number | null,\n lazyInputSecond: null as number | null,\n period: 'am' as Period,\n selecting: SelectingTimes.Hour,\n }\n },\n\n computed: {\n selectingHour: {\n get (): boolean {\n return this.selecting === SelectingTimes.Hour\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Hour\n },\n },\n selectingMinute: {\n get (): boolean {\n return this.selecting === SelectingTimes.Minute\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Minute\n },\n },\n selectingSecond: {\n get (): boolean {\n return this.selecting === SelectingTimes.Second\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Second\n },\n },\n isAllowedHourCb (): AllowFunction {\n let cb: AllowFunction\n\n if (this.allowedHours instanceof Array) {\n cb = (val: number) => (this.allowedHours as number[]).includes(val)\n } else {\n cb = this.allowedHours\n }\n\n if (!this.min && !this.max) return cb\n\n const minHour = this.min ? Number(this.min.split(':')[0]) : 0\n const maxHour = this.max ? Number(this.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= minHour * 1 &&\n val <= maxHour * 1 &&\n (!cb || cb(val))\n }\n },\n isAllowedMinuteCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n if (this.allowedMinutes instanceof Array) {\n cb = (val: number) => (this.allowedMinutes as number[]).includes(val)\n } else {\n cb = this.allowedMinutes\n }\n\n if (!this.min && !this.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = this.min ? this.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = this.max ? this.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + minMinute * 1\n const maxTime = maxHour * 60 + maxMinute * 1\n\n return (val: number) => {\n const time = 60 * this.inputHour! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n },\n isAllowedSecondCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n const isMinuteAllowed = isHourAllowed &&\n (!this.isAllowedMinuteCb ||\n this.inputMinute === null ||\n this.isAllowedMinuteCb(this.inputMinute)\n )\n\n if (this.allowedSeconds instanceof Array) {\n cb = (val: number) => (this.allowedSeconds as number[]).includes(val)\n } else {\n cb = this.allowedSeconds\n }\n\n if (!this.min && !this.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = this.min ? this.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = this.max ? this.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1\n const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1\n\n return (val: number) => {\n const time = 3600 * this.inputHour! + 60 * this.inputMinute! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n },\n isAmPm (): boolean {\n return this.format === 'ampm'\n },\n },\n\n watch: {\n activePicker: 'setPicker',\n selecting: 'emitPicker',\n value: 'setInputData',\n },\n\n mounted () {\n this.setInputData(this.value)\n this.$on('update:period', this.setPeriod)\n },\n\n methods: {\n genValue () {\n if (this.inputHour != null && this.inputMinute != null && (!this.useSeconds || this.inputSecond != null)) {\n return `${pad(this.inputHour)}:${pad(this.inputMinute)}` + (this.useSeconds ? `:${pad(this.inputSecond!)}` : '')\n }\n\n return null\n },\n emitValue () {\n const value = this.genValue()\n if (value !== null) this.$emit('input', value)\n },\n emitPicker (value: SelectingTimes) {\n let activePicker = 'HOUR'\n if (value === SelectingTimes.Minute) {\n activePicker = 'MINUTE'\n } else if (value === SelectingTimes.Second) {\n activePicker = 'SECOND'\n }\n this.$emit('update:active-picker', activePicker)\n },\n setPicker (picker: ActivePicker) {\n if (picker === 'HOUR') this.selecting = SelectingTimes.Hour\n else if (picker === 'MINUTE') this.selecting = SelectingTimes.Minute\n else if (picker === 'SECOND' && this.useSeconds) this.selecting = SelectingTimes.Second\n },\n setPeriod (period: Period) {\n this.period = period\n if (this.inputHour != null) {\n const newHour = this.inputHour! + (period === 'am' ? -12 : 12)\n this.inputHour = this.firstAllowed('hour', newHour)\n this.emitValue()\n }\n },\n setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n this.inputHour = null\n this.inputMinute = null\n this.inputSecond = null\n } else if (value instanceof Date) {\n this.inputHour = value.getHours()\n this.inputMinute = value.getMinutes()\n this.inputSecond = value.getSeconds()\n } else {\n const [, hour, minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n this.inputHour = period ? this.convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n this.inputMinute = parseInt(minute, 10)\n this.inputSecond = parseInt(second || 0, 10)\n }\n\n this.period = (this.inputHour == null || this.inputHour < 12) ? 'am' : 'pm'\n },\n convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n },\n convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n },\n onInput (value: number) {\n if (this.selecting === SelectingTimes.Hour) {\n this.inputHour = this.isAmPm ? this.convert12to24(value, this.period) : value\n } else if (this.selecting === SelectingTimes.Minute) {\n this.inputMinute = value\n } else {\n this.inputSecond = value\n }\n this.emitValue()\n },\n onChange (value: number) {\n this.$emit(`click:${selectingNames[this.selecting]}`, value)\n\n const emitChange = this.selecting === (this.useSeconds ? SelectingTimes.Second : SelectingTimes.Minute)\n\n if (this.selecting === SelectingTimes.Hour) {\n this.selecting = SelectingTimes.Minute\n } else if (this.useSeconds && this.selecting === SelectingTimes.Minute) {\n this.selecting = SelectingTimes.Second\n }\n\n if (this.inputHour === this.lazyInputHour &&\n this.inputMinute === this.lazyInputMinute &&\n (!this.useSeconds || this.inputSecond === this.lazyInputSecond)\n ) return\n\n const time = this.genValue()\n if (time === null) return\n\n this.lazyInputHour = this.inputHour\n this.lazyInputMinute = this.inputMinute\n this.useSeconds && (this.lazyInputSecond = this.inputSecond)\n\n emitChange && this.$emit('change', time)\n },\n firstAllowed (type: 'hour' | 'minute' | 'second', value: number) {\n const allowedFn = type === 'hour' ? this.isAllowedHourCb : (type === 'minute' ? this.isAllowedMinuteCb : this.isAllowedSecondCb)\n if (!allowedFn) return value\n\n // TODO: clean up\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (this.isAmPm\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n },\n genClock () {\n return this.$createElement(VTimePickerClock, {\n props: {\n allowedValues:\n this.selecting === SelectingTimes.Hour\n ? this.isAllowedHourCb\n : (this.selecting === SelectingTimes.Minute\n ? this.isAllowedMinuteCb\n : this.isAllowedSecondCb),\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n double: this.selecting === SelectingTimes.Hour && !this.isAmPm,\n format: this.selecting === SelectingTimes.Hour\n ? (this.isAmPm ? this.convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2),\n light: this.light,\n max: this.selecting === SelectingTimes.Hour ? (this.isAmPm && this.period === 'am' ? 11 : 23) : 59,\n min: this.selecting === SelectingTimes.Hour && this.isAmPm && this.period === 'pm' ? 12 : 0,\n readonly: this.readonly,\n scrollable: this.scrollable,\n size: Number(this.width) - ((!this.fullWidth && this.landscape) ? 80 : 20),\n step: this.selecting === SelectingTimes.Hour ? 1 : 5,\n value: this.selecting === SelectingTimes.Hour\n ? this.inputHour\n : (this.selecting === SelectingTimes.Minute\n ? this.inputMinute\n : this.inputSecond),\n },\n on: {\n input: this.onInput,\n change: this.onChange,\n },\n ref: 'clock',\n })\n },\n genClockAmPm () {\n return this.$createElement('div', this.setTextColor(this.color || 'primary', {\n staticClass: 'v-time-picker-clock__ampm',\n }), [\n this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly),\n this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly),\n ])\n },\n genPickerBody () {\n return this.$createElement('div', {\n staticClass: 'v-time-picker-clock__container',\n key: this.selecting,\n }, [\n !this.ampmInTitle && this.isAmPm && this.genClockAmPm(),\n this.genClock(),\n ])\n },\n genPickerTitle () {\n return this.$createElement(VTimePickerTitle, {\n props: {\n ampm: this.isAmPm,\n ampmReadonly: this.isAmPm && !this.ampmInTitle,\n disabled: this.disabled,\n hour: this.inputHour,\n minute: this.inputMinute,\n second: this.inputSecond,\n period: this.period,\n readonly: this.readonly,\n useSeconds: this.useSeconds,\n selecting: this.selecting,\n },\n on: {\n 'update:selecting': (value: 1 | 2 | 3) => (this.selecting = value),\n 'update:period': (period: string) => this.$emit('update:period', period),\n },\n ref: 'title',\n slot: 'title',\n })\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--time')\n },\n})\n","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTimePicker } from 'vuetify/lib/components/VTimePicker';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('default-dialog',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Nouvelle demande \")]},proxy:true},{key:\"default\",fn:function(){return [_c(VContainer,{staticClass:\"fill-height overflow-y-auto\",attrs:{\"fluid\":\"\"}},[_c(VRow,[_c(VCol,[_c(VRow,{attrs:{\"no-gutters\":\"\"}},[_c(VTextField,{attrs:{\"autofocus\":\"\",\"label\":\"Libellé\",\"outlined\":\"\"},model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:\"title\"}})],1),_c(VRow,{attrs:{\"no-gutters\":\"\"}},[_c(VTextarea,{attrs:{\"label\":\"Description - Symptôme\",\"outlined\":\"\",\"auto-grow\":\"\"},model:{value:(_vm.description),callback:function ($$v) {_vm.description=$$v},expression:\"description\"}})],1),_c(VRow,{attrs:{\"no-gutters\":\"\"}},[_c(VTextField,{attrs:{\"label\":\"Code ArevaKey\",\"outlined\":\"\"},model:{value:(_vm.originator),callback:function ($$v) {_vm.originator=$$v},expression:\"originator\"}})],1),_c(VRow,{attrs:{\"no-gutters\":\"\"}},[_c(VSelect,{attrs:{\"label\":\"Définir la priorité\",\"items\":_vm.priorities,\"item-value\":\"code\",\"item-text\":\"name\",\"required\":\"\",\"outlined\":\"\"},model:{value:(_vm.priority),callback:function ($$v) {_vm.priority=$$v},expression:\"priority\"}})],1),_c(VRow,{attrs:{\"no-gutters\":\"\"}},[_c(VSelect,{attrs:{\"label\":\"Définir le type de prestation\",\"items\":_vm.prestationTypes,\"item-value\":\"code\",\"item-text\":\"name\",\"required\":\"\",\"outlined\":\"\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}})],1),_c(VRow,{attrs:{\"no-gutters\":\"\"}},[_c(VCol,[_c('vo-date-picker',{attrs:{\"min\":_vm.minDate,\"label\":\"Date\",\"prepend-icon\":\"fa-regular fa-calendar-days\",\"outlined\":\"\"},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}})],1)],1),_c(VRow,{attrs:{\"no-gutters\":\"\"}},[_c(VCol,[_c(VMenu,{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VTextField,_vm._g({attrs:{\"value\":_vm.formatTime(_vm.currentDate),\"label\":\"Heure\",\"prepend-icon\":\"fa-regular fa-clock\",\"readonly\":\"\",\"outlined\":\"\"}},on))]}}]),model:{value:(_vm.isFormTimeOpen),callback:function ($$v) {_vm.isFormTimeOpen=$$v},expression:\"isFormTimeOpen\"}},[_c(VTimePicker,{attrs:{\"format\":\"24hr\"},on:{\"click:minute\":function($event){_vm.isFormTimeOpen = false}},model:{value:(_vm.time),callback:function ($$v) {_vm.time=$$v},expression:\"time\"}})],1)],1)],1)],1)],1)],1)]},proxy:true},{key:\"actions\",fn:function(ref){\nvar onCancel = ref.onCancel;\nvar onOk = ref.onOk;\nvar isOkBusy = ref.isOkBusy;\nreturn [_c(VBtn,{on:{\"click\":onCancel}},[_vm._v(\" \"+_vm._s(_vm.localizer('Cancel'))+\" \")]),_c(VBtn,{attrs:{\"color\":\"primary\",\"loading\":isOkBusy,\"disabled\":!_vm.canConfirm()},on:{\"click\":onOk}},[_vm._v(\" \"+_vm._s(_vm.localizer('Validate'))+\" \")])]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { LocalizerService } from 'Api/LocalizerService';\r\nimport { injectTypes } from 'Api/Plugins/Orano';\r\nimport { DpCodePrestationType, DpCodePriority, DPPrestationTypes, DPPriorities, WRHeaderCreate } from 'Api/Plugins/Orano/Dtos';\r\nimport { IGmaoService } from 'Api/Plugins/Orano/Interfaces';\r\nimport VoDatePicker from 'App/Areas/Shares/FormInputs/VoDatePicker.vue';\r\nimport { lazyInject } from 'App/Inversify.config';\r\nimport { BaseDialogBehavior } from 'App/Services/DialogService/BaseDialogBehavior';\r\nimport { Component } from 'Framework/Components/UIElement';\r\n\r\n@Component({\r\n name: 'OranoCreateDPDialog',\r\n components: {\r\n VoDatePicker\r\n }\r\n})\r\nexport default class OranoCreateDPDialog extends BaseDialogBehavior<{ ecode: string, result: WRHeaderCreate }> {\r\n public async beforeOkAsync(): Promise {\r\n try {\r\n const newDP = await this._ventixService.createDPAsync(\r\n this._dataContext.ecode,\r\n this.title,\r\n this.description,\r\n this.originator,\r\n this.type,\r\n this.priority,\r\n this.currentDate\r\n );\r\n\r\n if (newDP) {\r\n this.dataContext.result = newDP;\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n catch (e) {\r\n console.log(e);\r\n\r\n return false;\r\n }\r\n }\r\n\r\n public formatTime(date: Date): string {\r\n return this._localizerService.localizeDate(date).format('LT');\r\n }\r\n\r\n public get minDate(): string {\r\n const oneDay = 24 * 60 * 60 * 1000;\r\n\r\n return this._localizerService.getISODate(new Date(Date.now() + oneDay));\r\n }\r\n\r\n public get date(): string {\r\n return this._localizerService.getISODate(this.currentDate);\r\n }\r\n\r\n public set date(value: string) {\r\n this.currentDate = new Date(`${value}T${this.time}:00.000${this.timeZone}`);\r\n }\r\n\r\n public get time(): string {\r\n return this._localizerService.getISOTime(this.currentDate);\r\n }\r\n\r\n public set time(value: string) {\r\n this.currentDate = new Date(`${this.date}T${value}:00.000${this.timeZone}`);\r\n }\r\n\r\n public get timeZone(): string {\r\n const offset = (this._localizerService.utcOffset / 60);\r\n const offsetString = offset.toString().padStart(2, '0');\r\n\r\n return offset >= 0\r\n ? `+${offsetString}:00`\r\n : `-${offsetString}:00`;\r\n }\r\n\r\n public title: string = '';\r\n public description: string = '';\r\n public type: DpCodePrestationType = 'C1';\r\n public priority: DpCodePriority = 'E1';\r\n public originator: string = '';\r\n public currentDate: Date = new Date(Date.now());\r\n\r\n public isFormTimeOpen: boolean = false;\r\n\r\n public priorities = DPPriorities;\r\n public prestationTypes = DPPrestationTypes;\r\n\r\n @lazyInject(LocalizerService)\r\n private readonly _localizerService: LocalizerService;\r\n\r\n @lazyInject(injectTypes.IGmaoService)\r\n private readonly _ventixService: IGmaoService;\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./OranoCreateDPDialog.vue.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./OranoCreateDPDialog.vue.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OranoCreateDPDialog.vue?vue&type=template&id=62ca2206&\"\nimport script from \"./OranoCreateDPDialog.vue.ts?vue&type=script&lang=ts&\"\nexport * from \"./OranoCreateDPDialog.vue.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('default-dialog',{staticClass:\"orano-equipment-dialog\",scopedSlots:_vm._u([(_vm.equipment)?{key:\"title\",fn:function(){return [_c('a',{attrs:{\"href\":_vm.getRgfUri(_vm.equipment),\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\"#\"+_vm._s(_vm.equipment.unite_fonctionnelle_avec_chaine)+\" - \"+_vm._s(_vm.equipment.designation))])]},proxy:true}:null,{key:\"default\",fn:function(){return [_c(VTabs,{attrs:{\"center-active\":\"\",\"show-arrows\":\"\"}},[_c(VTabsSlider,{attrs:{\"color\":\"primary\"}}),_c(VTab,{key:0,attrs:{\"value\":\"tab-0\",\"href\":\"#tab-0\"}},[_vm._v(\"Informations\")]),_c(VTab,{key:1,attrs:{\"value\":\"tab-1\",\"href\":\"#tab-1\"}},[_vm._v(\"Demande de prestations\")]),_c(VTabItem,{key:0,attrs:{\"value\":\"tab-0\"}},[(_vm.equipment)?_c(VContainer,{staticClass:\"overflow-y-auto\",attrs:{\"fluid\":\"\"}},[_c(VRow,[_c(VCol,[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Nom d'équipement\"},model:{value:(_vm.equipment.designation),callback:function ($$v) {_vm.$set(_vm.equipment, \"designation\", $$v)},expression:\"equipment.designation\"}})],1)],1),_c(VRow,[_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Type d'équipement\"},model:{value:(_vm.equipment.type_equipement),callback:function ($$v) {_vm.$set(_vm.equipment, \"type_equipement\", $$v)},expression:\"equipment.type_equipement\"}})],1),_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Numéro d'équipement\"},model:{value:(_vm.equipment.no_equipement),callback:function ($$v) {_vm.$set(_vm.equipment, \"no_equipement\", $$v)},expression:\"equipment.no_equipement\"}})],1)],1),_c(VRow,[_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Type de composant\"},model:{value:(_vm.equipment.type_composant),callback:function ($$v) {_vm.$set(_vm.equipment, \"type_composant\", $$v)},expression:\"equipment.type_composant\"}})],1),_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Numéro de composant\"},model:{value:(_vm.equipment.no_composant),callback:function ($$v) {_vm.$set(_vm.equipment, \"no_composant\", $$v)},expression:\"equipment.no_composant\"}})],1)],1),_c(VRow,[_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Etat\"},model:{value:(_vm.equipment.statut_equipement),callback:function ($$v) {_vm.$set(_vm.equipment, \"statut_equipement\", $$v)},expression:\"equipment.statut_equipement\"}})],1),_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Unité\"},model:{value:(_vm.equipment.unite_fonctionnelle_avec_chaine),callback:function ($$v) {_vm.$set(_vm.equipment, \"unite_fonctionnelle_avec_chaine\", $$v)},expression:\"equipment.unite_fonctionnelle_avec_chaine\"}})],1)],1),_c(VRow,[_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"CF-EM\"},model:{value:(_vm.equipment.CFEM),callback:function ($$v) {_vm.$set(_vm.equipment, \"CFEM\", $$v)},expression:\"equipment.CFEM\"}})],1),_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Atelier\"},model:{value:(_vm.equipment.atelier),callback:function ($$v) {_vm.$set(_vm.equipment, \"atelier\", $$v)},expression:\"equipment.atelier\"}})],1)],1),(_vm.groupeEquipementPrincipal)?_c(VRow,[_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Groupe d'équipements principal\"},model:{value:(_vm.groupeEquipementPrincipal.type_groupe),callback:function ($$v) {_vm.$set(_vm.groupeEquipementPrincipal, \"type_groupe\", $$v)},expression:\"groupeEquipementPrincipal.type_groupe\"}})],1),_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Type\"},model:{value:(_vm.groupeEquipementPrincipal.groupe),callback:function ($$v) {_vm.$set(_vm.groupeEquipementPrincipal, \"groupe\", $$v)},expression:\"groupeEquipementPrincipal.groupe\"}})],1)],1):_vm._e(),(_vm.groupeEquipementSecondaire)?_c(VRow,[_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Groupe d'équipements secondaire\"},model:{value:(_vm.groupeEquipementSecondaire.type_groupe),callback:function ($$v) {_vm.$set(_vm.groupeEquipementSecondaire, \"type_groupe\", $$v)},expression:\"groupeEquipementSecondaire.type_groupe\"}})],1),_c(VCol,{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c(VTextField,{attrs:{\"outlined\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Type secondaire\"},model:{value:(_vm.groupeEquipementSecondaire.groupe),callback:function ($$v) {_vm.$set(_vm.groupeEquipementSecondaire, \"groupe\", $$v)},expression:\"groupeEquipementSecondaire.groupe\"}})],1)],1):_vm._e()],1):_vm._e()],1),_c(VTabItem,{key:1,attrs:{\"value\":\"tab-1\"}},[_c(VDataTable,{staticClass:\"d-flex\",attrs:{\"headers\":_vm.dpHeaders,\"item-key\":\"WoReqNumber\",\"show-expand\":\"\",\"items\":_vm.demandePrestations,\"disable-sort\":\"\"},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c(VToolbar,{attrs:{\"flat\":\"\",\"dense\":\"\"}},[_c(VSpacer),_c(VBtn,{attrs:{\"color\":\"primary\"},on:{\"click\":_vm._onOpenNewDemandePrestationAsync}},[_vm._v(\"Nouvelle demande\")])],1)]},proxy:true},{key:\"item.id\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('a',{attrs:{\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(item.WoReqNumber))])]}},{key:\"item.WoTskPriority\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s((_vm.priorities.find(function (p){ return p.code == item.WoTskPriority; }) || {name:'n/a'}).name)+\" \")]}},{key:\"item.JobType\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s((_vm.prestationTypes.find(function (p){ return p.code == item.JobType; }) || {name:'n/a'}).name)+\" \")]}},{key:\"expanded-item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('p',[_vm._v(_vm._s(item.description))])]}}])})],1)],1)]},proxy:true}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppContext } from 'Api/AppContext';\r\nimport { LocalizerService } from 'Api/LocalizerService';\r\nimport { injectTypes as injectTypesApi } from 'Api/Plugins/Orano';\r\nimport { DPPrestationTypes, DPPriorities, GroupeEquipement, Rgf, RgfWithGroupeEquipements, WRHeaderCreate, WRHeaderList } from 'Api/Plugins/Orano/Dtos';\r\nimport { IGmaoService } from 'Api/Plugins/Orano/Interfaces';\r\nimport OranoCreateDPDialog from 'App/Areas/Explore/Dialogs/OranoCreateDPDialog.vue';\r\nimport { injectTypes } from 'App/injectTypes';\r\nimport { lazyInject } from 'App/Inversify.config';\r\nimport { BaseDialogBehavior } from 'App/Services/DialogService/BaseDialogBehavior';\r\nimport { DialogResult } from 'Framework/Components/ModalDialog/ModalDialog';\r\nimport { Component } from 'Framework/Components/UIElement';\r\nimport { IDialogService } from 'Framework/Services/IDialogService';\r\nimport { DataTableHeader } from 'vuetify';\r\n\r\ninterface IOranoState {\r\n unit: string;\r\n ecode: string;\r\n}\r\n\r\n@Component({\r\n name: 'OranoEquipmentDialog'\r\n})\r\nexport default class OranoEquipmentDialog extends BaseDialogBehavior {\r\n public formatDate(date: Date | string): string {\r\n if (typeof (date) === 'string') {\r\n date = new Date(date);\r\n }\r\n\r\n return this._localizerService.localizeDate(date).format('LL');\r\n }\r\n\r\n public getRgfUri(equipment: Rgf): string {\r\n return `https://xfrdcnoas18/as/ui/#as-currentpage-view?view=PassPortTIMD030&keydata=${equipment.site}${equipment.id_equipement_revision.trim()}+`\r\n }\r\n\r\n protected async _onDataContextChanged(newValue: IOranoState, oldValue: IOranoState): Promise {\r\n if (newValue) {\r\n this.equipment = await this._VentixService.getRgfAsync(newValue.ecode);\r\n this.demandePrestations = await this._VentixService.getDPsAsync(newValue.ecode);\r\n }\r\n }\r\n\r\n private async _onOpenNewDemandePrestationAsync(): Promise {\r\n const dataContextCreateDemand: { ecode: string, result: WRHeaderCreate } = {\r\n ecode: this._dataContext.ecode,\r\n result: null\r\n };\r\n\r\n const dialogResult = await this._dialogService.openAsync(\r\n 'Explore',\r\n OranoCreateDPDialog,\r\n dataContextCreateDemand,\r\n\r\n {\r\n width: this._appContext.settings.dialogs.medium.width,\r\n height: this._appContext.settings.dialogs.auto.height,\r\n }\r\n );\r\n\r\n if (dialogResult == DialogResult.OK) {\r\n this.demandePrestations.push(Object.assign(dataContextCreateDemand.result, {\r\n WoReqDateEnter: dataContextCreateDemand.result.WoReqNeedDate,\r\n WoReqTimeEnter: dataContextCreateDemand.result.WoReqNeedTime\r\n }));\r\n }\r\n }\r\n\r\n public get groupeEquipementPrincipal(): GroupeEquipement {\r\n return this.equipment.groupe_equipements.find(ge => ge.est_principal == 'P');\r\n }\r\n\r\n public get groupeEquipementSecondaire(): GroupeEquipement {\r\n const allowedGroups = ['EIP', 'ESPN', 'EDR'];\r\n\r\n return this.equipment.groupe_equipements\r\n .find(ge => ge.est_principal == 'N'\r\n && allowedGroups.some(g => g == ge.type_groupe)\r\n );\r\n }\r\n\r\n public equipment: RgfWithGroupeEquipements = null;\r\n public demandePrestations: Array = [];\r\n public priorities = DPPriorities;\r\n public prestationTypes = DPPrestationTypes;\r\n\r\n @lazyInject(LocalizerService)\r\n private readonly _localizerService: LocalizerService;\r\n\r\n @lazyInject(injectTypesApi.IGmaoService)\r\n private readonly _VentixService: IGmaoService;\r\n\r\n @lazyInject(injectTypes.IDialogService)\r\n private readonly _dialogService: IDialogService;\r\n\r\n @lazyInject(AppContext)\r\n private readonly _appContext: AppContext;\r\n\r\n\r\n public dpHeaders: Array = [\r\n { text: 'Id', value: 'WoReqNumber' },\r\n { text: 'Date de création', value: 'WoReqDateEnter' },\r\n { text: 'Description - Symptôme', value: 'WrTaskTitle' },\r\n { text: 'Priorité', value: 'WoTskPriority' },\r\n { text: 'Type de prestation', value: 'JobType' },\r\n { text: 'Demandé par', value: 'WrOrigLastName' },\r\n { text: 'Pour le', value: 'WoReqNeedDate' },\r\n { text: 'Statut', value: 'WoReqStatus' },\r\n ];\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./OranoEquipmentDialog.vue.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./OranoEquipmentDialog.vue.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OranoEquipmentDialog.vue?vue&type=template&id=491c3094&scoped=true&\"\nimport script from \"./OranoEquipmentDialog.vue.ts?vue&type=script&lang=ts&\"\nexport * from \"./OranoEquipmentDialog.vue.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./OranoEquipmentDialog.vue.scss?vue&type=style&index=0&id=491c3094&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"491c3094\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('default-dialog',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return undefined},proxy:true},{key:\"default\",fn:function(){return [_c('iframe',{staticStyle:{\"height\":\"100%\",\"width\":\"100%\"},attrs:{\"src\":_vm.uriPrs}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { BaseDialogBehavior } from 'App/Services/DialogService/BaseDialogBehavior';\r\nimport { Component } from 'Framework/Components/UIElement';\r\nimport urlJoin from 'url-join';\r\n\r\ninterface IPrsState {\r\n baseUriPrs: string;\r\n workshopName: string;\r\n localName: string;\r\n}\r\n\r\n@Component({\r\n name: 'OranoPrsDialog'\r\n})\r\nexport default class OranoPrsDialog extends BaseDialogBehavior {\r\n public get uriPrs(): string {\r\n if (!this._dataContext) {\r\n return '';\r\n }\r\n\r\n return urlJoin(this._dataContext.baseUriPrs, `/#/sva/${this._dataContext.workshopName}/${this._dataContext.localName}`).replace('#', '/#');\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./OranoPrsDialog.vue.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./OranoPrsDialog.vue.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OranoPrsDialog.vue?vue&type=template&id=6839ebae&\"\nimport script from \"./OranoPrsDialog.vue.ts?vue&type=script&lang=ts&\"\nexport * from \"./OranoPrsDialog.vue.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('default-dialog',{attrs:{\"buttons\":_vm.buttons},scopedSlots:_vm._u([(_vm.dataContext.smartObject)?{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.dataContext.smartObject.dataSource.tagName)+\" \")]},proxy:true}:null,(_vm.dataContext.smartObject)?{key:\"default\",fn:function(){return [_c(VContainer,[_c(VRow,{staticClass:\"mt-2\"},[_c(VCol,{attrs:{\"cols\":\"6\"}},[_c(VTextField,{attrs:{\"label\":\"Tag_Name\",\"dense\":\"\",\"readonly\":\"\"},model:{value:(_vm.dataContext.smartObject.dataSource.tagName),callback:function ($$v) {_vm.$set(_vm.dataContext.smartObject.dataSource, \"tagName\", $$v)},expression:\"dataContext.smartObject.dataSource.tagName\"}})],1),_c(VCol,{attrs:{\"cols\":\"6\"}},[_c(VTextField,{attrs:{\"label\":\"Category\",\"dense\":\"\",\"readonly\":\"\"},model:{value:(_vm.dataContext.smartObject.dataSource.category),callback:function ($$v) {_vm.$set(_vm.dataContext.smartObject.dataSource, \"category\", $$v)},expression:\"dataContext.smartObject.dataSource.category\"}})],1)],1),_c(VRow,[_c(VCol,{attrs:{\"cols\":\"6\"}},[_c(VTextField,{attrs:{\"label\":\"Type\",\"dense\":\"\",\"readonly\":\"\"},model:{value:(_vm.dataContext.smartObject.dataSource.type),callback:function ($$v) {_vm.$set(_vm.dataContext.smartObject.dataSource, \"type\", $$v)},expression:\"dataContext.smartObject.dataSource.type\"}})],1),_c(VCol,{attrs:{\"cols\":\"6\"}},[_c(VTextField,{attrs:{\"label\":\"Risk\",\"dense\":\"\",\"readonly\":\"\"},model:{value:(_vm.dataContext.smartObject.dataSource.risk),callback:function ($$v) {_vm.$set(_vm.dataContext.smartObject.dataSource, \"risk\", $$v)},expression:\"dataContext.smartObject.dataSource.risk\"}})],1)],1),_c(VTextField,{attrs:{\"label\":\"MASTER_DATA\",\"readonly\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c(VBtn,{attrs:{\"href\":_vm.dataContext.smartObject.dataSource.inspectionManagment,\"target\":\"_blank\",\"dense\":\"\",\"icon\":\"\"}},[_c(VIcon,{attrs:{\"small\":\"\"}},[_vm._v(\" fa-light fa-arrow-up-right-from-square \")])],1)]},proxy:true}],null,false,311319046),model:{value:(_vm.dataContext.smartObject.dataSource.inspectionManagment),callback:function ($$v) {_vm.$set(_vm.dataContext.smartObject.dataSource, \"inspectionManagment\", $$v)},expression:\"dataContext.smartObject.dataSource.inspectionManagment\"}}),(_vm.dataContext.smartObject.dataSource.apmTml)?_c(VTextField,{attrs:{\"label\":\"GE_APM_TML\",\"readonly\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c(VBtn,{attrs:{\"href\":_vm.dataContext.smartObject.dataSource.apmTml,\"target\":\"_blank\",\"dense\":\"\",\"icon\":\"\"}},[_c(VIcon,{attrs:{\"small\":\"\"}},[_vm._v(\" fa-light fa-arrow-up-right-from-square \")])],1)]},proxy:true}],null,false,3486796807),model:{value:(_vm.dataContext.smartObject.dataSource.apmTml),callback:function ($$v) {_vm.$set(_vm.dataContext.smartObject.dataSource, \"apmTml\", $$v)},expression:\"dataContext.smartObject.dataSource.apmTml\"}}):_vm._e(),(_vm.dataContext.smartObject.dataSource.masterData)?_c(VTextField,{attrs:{\"label\":\"P&ID\",\"readonly\":\"\"},model:{value:(_vm.dataContext.smartObject.dataSource.masterData),callback:function ($$v) {_vm.$set(_vm.dataContext.smartObject.dataSource, \"masterData\", $$v)},expression:\"dataContext.smartObject.dataSource.masterData\"}}):_vm._e()],1)]},proxy:true}:null,{key:\"actions\",fn:function(){return [_c(VBtn,{attrs:{\"large\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm._openEditSmartObjectDialogAsync(_vm.dataContext.smartObject)}}},[_vm._v(\" \"+_vm._s(_vm.localizer((_vm.baseTranslationPath + \".Edit\")))+\" \")])]},proxy:true}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppContext } from 'Api/AppContext';\r\nimport { SmartObjectDto } from 'Api/Contracts/Dtos';\r\nimport VoAddOrEditSmartObjectDialog from 'App/Areas/Shares/Dialogs/VoAddOrEditSmartObjectDialog.vue';\r\nimport { injectTypes } from 'App/injectTypes';\r\nimport { lazyInject } from 'App/Inversify.config';\r\nimport { BaseDialogBehavior } from 'App/Services/DialogService/BaseDialogBehavior';\r\nimport { DialogButton } from 'App/Services/DialogService/Components/DefaultDialog.vue';\r\nimport { Component } from 'Framework/Components/UIElement';\r\nimport { DialogResult, IDialogService } from 'Framework/Services/IDialogService';\r\nimport { cloneDeep } from 'lodash';\r\n\r\ninterface ISmartObjectDialog {\r\n smartObject: SmartObjectDto;\r\n projectId: number;\r\n}\r\n\r\n@Component({\r\n name: 'VoSmartObjectDetailsDialog'\r\n})\r\nexport default class VoSmartObjectDetailsDialog extends BaseDialogBehavior {\r\n private async _openEditSmartObjectDialogAsync(smartObject: SmartObjectDto): Promise {\r\n const copyOfSmartObject: SmartObjectDto = cloneDeep(smartObject);\r\n\r\n const result: DialogResult = await this._dialogService.openAsync(\r\n 'Shares',\r\n VoAddOrEditSmartObjectDialog,\r\n {\r\n projectId: this.dataContext.projectId,\r\n currentSmartObject: copyOfSmartObject\r\n },\r\n {\r\n width: this._appContext.settings.dialogs.medium.width,\r\n height: this._appContext.settings.dialogs.large.height,\r\n });\r\n\r\n if (result == DialogResult.OK) {\r\n const _ = Object.assign(smartObject.dataSource, copyOfSmartObject.dataSource);\r\n }\r\n }\r\n\r\n protected readonly buttons: DialogButton = DialogButton.Custom;\r\n protected readonly baseTranslationPath: string = 'Areas.Explore.Components.SmartObjectPanel';\r\n\r\n @lazyInject(AppContext)\r\n private readonly _appContext: AppContext;\r\n\r\n @lazyInject(injectTypes.IDialogService)\r\n private readonly _dialogService: IDialogService;\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./VoSmartObjectDetailsDialog.vue.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./VoSmartObjectDetailsDialog.vue.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VoSmartObjectDetailsDialog.vue?vue&type=template&id=3bb6519f&\"\nimport script from \"./VoSmartObjectDetailsDialog.vue.ts?vue&type=script&lang=ts&\"\nexport * from \"./VoSmartObjectDetailsDialog.vue.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('default-dialog',{attrs:{\"canMaximize\":true,\"no-padding\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.displayName)+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c(VTooltip,{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"small\":\"\",\"fab\":\"\",\"icon\":\"\"},on:{\"click\":_vm.goToPreviousItem}},on),[_c(VIcon,[_vm._v(\"fa-light fa-arrow-left\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.dataContext.itemsSource[_vm.previousItemIndex].nameWithoutExtension))])]),_c('span',{staticClass:\"mx-2\"},[_vm._v(_vm._s(((_vm.selectedIndex + 1) + \" / \" + (_vm.dataContext.itemsSource.length))))]),_c(VTooltip,{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"small\":\"\",\"fab\":\"\",\"icon\":\"\"},on:{\"click\":_vm.goToNextItem}},on),[_c(VIcon,[_vm._v(\"fa-light fa-arrow-right\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.dataContext.itemsSource[_vm.nextItemIndex].nameWithoutExtension))])]),_c(VSpacer)]},proxy:true}])},[(_vm.selectedTemplate\n && _vm.selectedTemplate.templates[_vm.selectedTemplateIndex]\n && _vm.selectedTemplate.templates[_vm.selectedTemplateIndex].canRender(_vm.selectedItem)\n )?_c(_vm.selectedTemplate.templates[_vm.selectedTemplateIndex].template,_vm._b({key:_vm.selectedItem.guid,tag:\"component\",staticClass:\"content-template\"},'component',_vm.selectedTemplate.templates[_vm.selectedTemplateIndex].props(this, _vm.selectedItem),false)):_c('div',{staticClass:\"not-supported\"},[_vm._v(\" \"+_vm._s(_vm.localizer((_vm.baseTranslationPath + \".NotSupported\")))+\" \")]),(_vm.selectedTemplate && _vm.selectedTemplate.templates.length > 1)?_c(VBtnToggle,{staticClass:\"alternative-btn\",attrs:{\"rounded\":\"\",\"mandatory\":\"\"},model:{value:(_vm.selectedTemplateIndex),callback:function ($$v) {_vm.selectedTemplateIndex=$$v},expression:\"selectedTemplateIndex\"}},[_vm._l((_vm.selectedTemplate.templates),function(alternative,key){return [(alternative.canRender(_vm.selectedItem))?_c(VBtn,{key:key},[_c(VIcon,[_vm._v(_vm._s(alternative.icon))])],1):_vm._e()]})],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppContext } from 'Api/AppContext';\r\nimport { File, FileType } from 'Api/Dto/Drive';\r\nimport { HttpClient } from 'Api/HttpClient';\r\nimport { DriveService } from 'Api/Services';\r\nimport { IDiaporamaDialogContext } from 'App/Areas/Shares/Dialogs/IDiaporamaDialogContext';\r\nimport { getImageUrl, getPanoramaMobileUrl, getPdfUrl } from 'App/Helpers/AssetHelper';\r\nimport { injectTypes } from 'App/injectTypes';\r\nimport { lazyInject } from 'App/Inversify.config';\r\nimport { BaseDialogBehavior } from 'App/Services/DialogService/BaseDialogBehavior';\r\nimport { IVisonUriService } from 'App/Services/UriServices/Core';\r\nimport { ConfigurationBuilder } from 'Framework/Components/Controls/XView/Core';\r\nimport { Component, Watch } from 'vue-property-decorator';\r\n\r\ninterface IFile extends File {\r\n attributes?: Record\r\n}\r\n\r\ntype ContentTemplateType = {\r\n props: (dialog: VoDiaporamaDialog, file: IFile) => any,\r\n canRender: (file: IFile) => boolean,\r\n template: () => Promise,\r\n icon?: string,\r\n}\r\n\r\ntype ContentTemplateSelector = {\r\n fileType: FileType,\r\n templates: ContentTemplateType[],\r\n}\r\n\r\ntype AvailableComponent =\r\n | 'XViewFlat'\r\n | 'XView360'\r\n | 'XMediaPlayer'\r\n | 'XOfficeViewer'\r\n | 'VoPdfViewer'\r\n\r\n@Component({\r\n name: 'VoDiaporamaDialog'\r\n})\r\nexport default class VoDiaporamaDialog extends BaseDialogBehavior {\r\n public created(): void {\r\n window.addEventListener('keyup', this._onKeyUp);\r\n }\r\n\r\n public beforeDestroy() {\r\n window.removeEventListener('keyup', this._onKeyUp);\r\n }\r\n\r\n private _onKeyUp(e: KeyboardEvent) {\r\n if (e.code == 'ArrowRight') {\r\n this.goToNextItem();\r\n }\r\n else if (e.code == 'ArrowLeft') {\r\n this.goToPreviousItem();\r\n }\r\n }\r\n\r\n public goToNextItem(): void {\r\n this.selectedIndex = this.nextItemIndex;\r\n }\r\n\r\n public goToPreviousItem(): void {\r\n this.selectedIndex = this.previousItemIndex;\r\n }\r\n\r\n protected _onDataContextChanged(newValue: IDiaporamaDialogContext, oldValue: IDiaporamaDialogContext): void {\r\n this.selectedIndex = newValue.itemsSource.indexOf(newValue.selectedItem);\r\n }\r\n\r\n public get nextItemIndex(): number {\r\n const nextIndex = this.selectedIndex + 1;\r\n const nbItems = this.dataContext.itemsSource.length;\r\n\r\n return nextIndex == nbItems\r\n ? 0\r\n : nextIndex;\r\n }\r\n\r\n public get previousItemIndex(): number {\r\n const previousIndex = this.selectedIndex - 1;\r\n const lastIndex = this.dataContext.itemsSource.length - 1;\r\n\r\n return previousIndex < 0\r\n ? lastIndex\r\n : previousIndex;\r\n }\r\n\r\n public get selectedItem(): IFile {\r\n const selectedFile = this.dataContext?.itemsSource[this.selectedIndex];\r\n\r\n return selectedFile?.isSymlink\r\n ? selectedFile.target\r\n : selectedFile;\r\n }\r\n\r\n public get displayName(): string {\r\n const extension = this.selectedItem.extension ?? '';\r\n\r\n return `${this.selectedItem.nameWithoutExtension}${extension}`;\r\n }\r\n\r\n @Watch('selectedIndex', { immediate: true })\r\n private _onSelectedIndexChanged(_newValue: number): void {\r\n const select = (): void => {\r\n //force refresh UI\r\n this.selectedTemplate = null;\r\n\r\n this.selectedTemplate = this.contentTemplates\r\n .find(c => c.fileType == this.selectedItem.fileType);\r\n }\r\n\r\n if (!this.selectedItem.attributes) {\r\n const _ = this._driveService\r\n .getFileInfo(this.selectedItem, this.dataContext.token)\r\n .then(fileInfo => {\r\n this.selectedItem.attributes = fileInfo.attributes ?? {};\r\n\r\n select();\r\n });\r\n }\r\n else {\r\n select();\r\n }\r\n }\r\n\r\n public readonly baseTranslationPath: string = 'Areas.Shared.VoDiaporamaDialog';\r\n\r\n public selectedTemplate: ContentTemplateSelector = null;\r\n public selectedIndex: number = 0;\r\n public selectedTemplateIndex: number = 0;\r\n\r\n public static contentTemplateTypes: Record = {\r\n 'XViewFlat': {\r\n props: (dialog: VoDiaporamaDialog, file: IFile) => ({\r\n configuration: ConfigurationBuilder.CreateFlatConfigurationWithImage(\r\n dialog.dataContext?.token\r\n ? dialog._uriService.getAbsoluteUri(getImageUrl(dialog._appContext.codeCulture, file.guid, 'optimized'), { 'token': dialog.dataContext.token })\r\n : dialog._uriService.getAbsoluteUri(getImageUrl(dialog._appContext.codeCulture, file.guid, 'optimized')),\r\n Number.parseInt(file.attributes?.width),\r\n Number.parseInt(file.attributes?.height)\r\n )\r\n }),\r\n template: () => import('Framework/Components/Controls/XView/XView.vue'),\r\n canRender: (file: IFile): boolean =>\r\n Number.parseInt(file.attributes?.width) > 0\r\n && Number.parseInt(file.attributes?.height) > 0,\r\n icon: 'fa-light fa-panorama',\r\n },\r\n 'XView360': {\r\n props: (dialog: VoDiaporamaDialog, file: IFile) => ({\r\n configuration: ConfigurationBuilder.CreatePanoramaConfigurationWithComputedTile(\r\n dialog.dataContext?.token\r\n ? dialog._uriService.getAbsoluteUri(getPanoramaMobileUrl(dialog._appContext.codeCulture, file.guid), { 'token': dialog.dataContext.token })\r\n : dialog._uriService.getAbsoluteUri(getPanoramaMobileUrl(dialog._appContext.codeCulture, file.guid)),\r\n Math.min(Number.parseInt(file.attributes?.panoramaLevel), 3)\r\n )\r\n }),\r\n template: () => import('Framework/Components/Controls/XView/XView.vue'),\r\n canRender: (file: IFile): boolean =>\r\n Number.parseInt(file.attributes?.ratio) == 2\r\n && Number.parseInt(file.attributes?.panoramaLevel) > 0,\r\n icon: 'fa-light fa-360-degrees',\r\n },\r\n 'XMediaPlayer': {\r\n props: (dialog: VoDiaporamaDialog, file: IFile) => ({\r\n source: dialog._uriService.getAbsoluteUri(file.links.video, { 'token': dialog.dataContext?.token }),\r\n preview: dialog._uriService.getAbsoluteUri(file.links.preview, { 'token': dialog.dataContext?.token }),\r\n showControls: true,\r\n muted: false\r\n }),\r\n template: () => import('Framework/Components/Controls/XMediaPlayer.vue'),\r\n canRender: (_file: IFile): boolean => true,\r\n },\r\n 'XOfficeViewer': {\r\n props: (dialog: VoDiaporamaDialog, file: IFile) => ({\r\n url: dialog._uriService.getAbsoluteUri(\r\n file.links.download,\r\n { 'token': dialog.dataContext?.token })\r\n }),\r\n template: () => import('Framework/Components/Controls/XOfficeViewer.vue'),\r\n canRender: (_file: IFile): boolean => true,\r\n },\r\n 'VoPdfViewer': {\r\n props: (dialog: VoDiaporamaDialog, file: IFile) => {\r\n if (dialog._appContext.isStandalone) {\r\n return {\r\n pdfLoader: async () => await (await dialog._httpClient.getAsync(`asset/pdf/${file.guid}`, null, null, new Headers({\r\n 'Accept': 'application/octet-stream',\r\n 'Content-Type': 'application/octet-stream'\r\n }))).arrayBuffer(),\r\n fileName: `${file.nameWithoutExtension}${file.extension}`\r\n }\r\n }\r\n\r\n return {\r\n url: dialog._uriService.getAbsoluteUri(getPdfUrl(dialog._appContext.codeCulture, file.guid), { 'token': dialog.dataContext?.token }),\r\n fileName: `${file.nameWithoutExtension}${file.extension}`\r\n }\r\n },\r\n template: () => import('App/Areas/Shares/VoPdfViewer.vue'),\r\n canRender: (_file: IFile): boolean => true,\r\n }\r\n };\r\n\r\n public readonly contentTemplates: ContentTemplateSelector[] = [\r\n {\r\n fileType: FileType.Image,\r\n templates: [\r\n VoDiaporamaDialog.contentTemplateTypes.XViewFlat,\r\n VoDiaporamaDialog.contentTemplateTypes.XView360\r\n ]\r\n },\r\n {\r\n fileType: FileType.PointCloud,\r\n templates: [\r\n VoDiaporamaDialog.contentTemplateTypes.XViewFlat,\r\n VoDiaporamaDialog.contentTemplateTypes.XView360\r\n ]\r\n },\r\n {\r\n fileType: FileType.Video,\r\n templates: [\r\n VoDiaporamaDialog.contentTemplateTypes.XMediaPlayer\r\n ]\r\n },\r\n {\r\n fileType: FileType.Office,\r\n templates: [\r\n VoDiaporamaDialog.contentTemplateTypes.XOfficeViewer\r\n ]\r\n },\r\n {\r\n fileType: FileType.Pdf,\r\n templates: [\r\n VoDiaporamaDialog.contentTemplateTypes.VoPdfViewer\r\n ]\r\n }\r\n ];\r\n\r\n @lazyInject(AppContext)\r\n private readonly _appContext: AppContext;\r\n\r\n @lazyInject(injectTypes.IVisonUriService)\r\n private readonly _uriService: IVisonUriService;\r\n\r\n @lazyInject(HttpClient)\r\n private readonly _httpClient: HttpClient;\r\n\r\n @lazyInject(DriveService)\r\n private readonly _driveService: DriveService;\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./VoDiaporamaDialog.vue.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./VoDiaporamaDialog.vue.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VoDiaporamaDialog.vue?vue&type=template&id=0925a76a&scoped=true&\"\nimport script from \"./VoDiaporamaDialog.vue.ts?vue&type=script&lang=ts&\"\nexport * from \"./VoDiaporamaDialog.vue.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./VoDiaporamaDialog.vue.scss?vue&type=style&index=0&id=0925a76a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0925a76a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('default-dialog',{attrs:{\"canMaximize\":true},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.dataContext.title)+\" \")]},proxy:true},{key:\"default\",fn:function(){return [_c('iframe',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":_vm.dataContext.url,\"title\":_vm.dataContext.title,\"frameborder\":\"0\",\"allow\":\"autoplay; clipboard-write; encrypted-media; picture-in-picture\",\"allowfullscreen\":\"\"}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { BaseDialogBehavior } from 'App/Services/DialogService/BaseDialogBehavior';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\nexport interface IFrameDialogContext {\r\n title: string,\r\n text: string\r\n}\r\n\r\n@Component({\r\n name: 'VoIFrameDialog'\r\n})\r\nexport default class VoIFrameDialog extends BaseDialogBehavior {\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./VoIFrameDialog.vue.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./VoIFrameDialog.vue.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VoIFrameDialog.vue?vue&type=template&id=0464f0eb&\"\nimport script from \"./VoIFrameDialog.vue.ts?vue&type=script&lang=ts&\"\nexport * from \"./VoIFrameDialog.vue.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { ActionManager, Color3, Color4, ExecuteCodeAction, IAction, IActionEvent, PredicateCondition, Scene } from '@babylonjs/core';\r\nimport { Control, Vector2WithInfo } from '@babylonjs/gui/2D';\r\nimport { PointCloud } from 'Api/Dto/PointCloud';\r\nimport { LocalizerService } from 'Api/LocalizerService';\r\nimport { LineMeasure, Measurable } from 'App/Areas/Explore/Components/Behaviors/Measure';\r\nimport { ISphericalCoordinates } from 'Framework/Components/Controls/XView/Core';\r\nimport { ContextMenu } from 'Framework/Components/Controls/XView/XView.ContextMenu';\r\nimport { Viewer360 } from 'Framework/Components/Controls/XView/XView.Viewer360';\r\nimport { NotifyCollectionChangedAction, NotifyCollectionChangedEventArgs } from 'Framework/Components/EventArgs/NotifyCollectionChangedEventArgs';\r\nimport { UIElement } from 'Framework/Components/UIElement';\r\nimport { MathHelper } from 'Framework/Helpers/MathHelper';\r\nimport { Behavior } from 'Framework/Interactivity/BehaviorOfT';\r\n\r\n/**\r\n * Add point cloud capabilities to a 360° Viewer control\r\n */\r\nexport class PointCloudBehavior extends Behavior {\r\n public constructor(\r\n onPointerPickedAsync: (sphericalCoordinates: ISphericalCoordinates) => Promise,\r\n localizerService: LocalizerService\r\n ) {\r\n super();\r\n\r\n this._measures = new Array();\r\n this._actions = new Array();\r\n\r\n this._onPointerPickedAsync = onPointerPickedAsync;\r\n this._pointCloudMeasureRemovedFunc = (o, e) => this._onPointCloudMeasureRemoved(o, e);\r\n\r\n this._localizerService = localizerService;\r\n }\r\n\r\n public onAttached(): void {\r\n this._pointCloudScene = this.associatedObject.addNewScene();\r\n\r\n this._registerEvents();\r\n this._addContextMenuItems(this.associatedObject.contextMenu);\r\n\r\n this._pointCloudScene.activeCamera = this.associatedObject.camera;\r\n this._pointCloudScene.autoClear = false;\r\n this._pointCloudScene.registerBeforeRender(() => this._onUpdateScene());\r\n this._counterMeasure = 1;\r\n }\r\n\r\n public onDetaching(): void {\r\n UIElement.Bus.$off('eb-point-cloud-measure-remove', this._pointCloudMeasureRemovedFunc);\r\n\r\n this._measures.forEach(m => m.dispose(false, true));\r\n this._measures.splice(0);\r\n\r\n this._unRegisterEvents();\r\n this._removeContextMenuItems();\r\n\r\n UIElement.Bus.$emit(\r\n 'eb-point-cloud-measure-changed',\r\n this,\r\n NotifyCollectionChangedEventArgs.createReset()\r\n );\r\n\r\n this._pointCloudScene.dispose();\r\n }\r\n\r\n private _registerEvents(): void {\r\n const actionManager = this.rendererScene.actionManager as ActionManager;\r\n\r\n this._actions.push(\r\n actionManager.registerAction(new ExecuteCodeAction(\r\n ActionManager.OnLongPressTrigger,\r\n e => this._showContextMenu(e)\r\n )),\r\n actionManager.registerAction(new ExecuteCodeAction(\r\n ActionManager.OnRightPickTrigger,\r\n e => this._showContextMenu(e)\r\n )),\r\n actionManager.registerAction(new ExecuteCodeAction(\r\n ActionManager.OnPickDownTrigger,\r\n e => {\r\n this.associatedObject.contextMenu.close();\r\n },\r\n new PredicateCondition(\r\n actionManager,\r\n () => this.associatedObject.contextMenu.isOpen\r\n )\r\n )),\r\n actionManager.registerAction(new ExecuteCodeAction(\r\n {\r\n trigger: ActionManager.OnKeyUpTrigger,\r\n parameter: 27 //Escape\r\n },\r\n e => {\r\n if (this.associatedObject.contextMenu.isOpen) {\r\n this.associatedObject.contextMenu.close();\r\n\r\n return;\r\n }\r\n\r\n this._tryCancelCurrentMeasure();\r\n }\r\n ))\r\n );\r\n\r\n UIElement.Bus.$on('eb-point-cloud-measure-remove', this._pointCloudMeasureRemovedFunc);\r\n }\r\n\r\n private _unRegisterEvents(): void {\r\n this._actions.forEach(a => this.rendererScene.actionManager.unregisterAction(a));\r\n this._actions.splice(0);\r\n }\r\n\r\n private _addContextMenuItems(contextMenu: ContextMenu): void {\r\n this._contextMenuItems = Array.from(contextMenu.addMenuItems(\r\n {\r\n id: 'PickMeasureButtonStart',\r\n buttonType: 'Normal',\r\n text: this._localizerService.localize(`${this._translationBasePath}.PickMeasureButtonStart`),\r\n background: Color3.FromHexString('#272727'),\r\n foreground: Color3.White(),\r\n },\r\n {\r\n id: 'PickMeasureButtonEnd',\r\n buttonType: 'Normal',\r\n text: this._localizerService.localize(`${this._translationBasePath}.PickMeasureButtonEnd`),\r\n background: Color3.FromHexString('#272727'),\r\n foreground: Color3.White(),\r\n isVisible: false\r\n }\r\n ));\r\n\r\n const [pickMeasureButtonStart, pickMeasureButtonEnd] = this._contextMenuItems;\r\n\r\n const pickingMeasure = async (_: Vector2WithInfo) => {\r\n await this._pick2DMeasureAsync(contextMenu.openAt.x, contextMenu.openAt.y);\r\n\r\n contextMenu.close();\r\n };\r\n\r\n pickMeasureButtonStart.onPointerClickObservable.add(pickingMeasure);\r\n pickMeasureButtonEnd.onPointerClickObservable.add(pickingMeasure);\r\n }\r\n\r\n private _removeContextMenuItems(): void {\r\n this.associatedObject.contextMenu.removeMenuItems(this._contextMenuItems);\r\n }\r\n\r\n private _switchContextMenuButtons(): void {\r\n const [pickMeasureButtonStart, pickMeasureButtonEnd] = this._contextMenuItems;\r\n\r\n const isEndVisible: boolean = this._currentMeasure?.pointCount == 1;\r\n\r\n pickMeasureButtonStart.isVisible = !isEndVisible;\r\n pickMeasureButtonEnd.isVisible = isEndVisible;\r\n }\r\n\r\n private _showContextMenu(e: IActionEvent): void {\r\n this._switchContextMenuButtons();\r\n this.associatedObject.contextMenu.showAt(e.pointerX, e.pointerY);\r\n }\r\n\r\n private _removeMeasure(deletable: Measurable): boolean {\r\n let index = this._measures.indexOf(deletable);\r\n\r\n if (index == -1) {\r\n return false;\r\n }\r\n\r\n const [removed] = this._measures.splice(index, 1);\r\n removed.dispose(false, true);\r\n\r\n return true;\r\n }\r\n\r\n private _onUpdateScene(): void {\r\n this._measures.forEach(m => m.update());\r\n }\r\n\r\n private _tryCancelCurrentMeasure(): void {\r\n if (!this._currentMeasure?.canAddPoint()) {\r\n return;\r\n }\r\n\r\n if (this._removeMeasure(this._currentMeasure)) {\r\n UIElement.Bus.$emit(\r\n 'eb-point-cloud-measure-changed',\r\n this,\r\n NotifyCollectionChangedEventArgs.createOneItemChange(\r\n NotifyCollectionChangedAction.Remove,\r\n this._currentMeasure\r\n )\r\n );\r\n\r\n this._currentMeasure = null;\r\n }\r\n }\r\n\r\n private async _pick2DMeasureAsync(pickingX: number, pickingY: number): Promise {\r\n const pickInfo = this.associatedObject.pick(pickingX, pickingY);\r\n\r\n if (!pickInfo.hit) {\r\n return;\r\n }\r\n\r\n const sphericalCoords = MathHelper.toSphericalCoordinates(pickInfo);\r\n\r\n let cartesianCoords: PointCloud = await this._onPointerPickedAsync(sphericalCoords);\r\n\r\n if (!cartesianCoords) {\r\n return;\r\n }\r\n\r\n this._createMeasureIfNotExist();\r\n\r\n this._currentMeasure.addPoint(pickInfo.pickedPoint, cartesianCoords);\r\n\r\n if (this._currentMeasure.pointCount == 1) {\r\n UIElement.Bus.$emit(\r\n 'eb-point-cloud-measure-changed',\r\n this,\r\n NotifyCollectionChangedEventArgs.createOneItemChange(NotifyCollectionChangedAction.Add, this._currentMeasure)\r\n );\r\n }\r\n else if (this._currentMeasure.pointCount == 2) {\r\n this._counterMeasure++;\r\n\r\n UIElement.Bus.$emit(\r\n 'eb-point-cloud-measure-changed',\r\n this,\r\n NotifyCollectionChangedEventArgs.createOneItemReplace(this._currentMeasure, this._currentMeasure)\r\n );\r\n\r\n (this._currentMeasure as LineMeasure).hideGhostLine();\r\n this._currentMeasure = null;\r\n }\r\n }\r\n\r\n private _createMeasureIfNotExist(): void {\r\n if (this._currentMeasure == null) {\r\n let counter = this._counterMeasure;\r\n\r\n let line = new LineMeasure(`LineMeasure${counter}`, this._pointCloudScene);\r\n\r\n line.startPointColor = Color3.Green();\r\n line.endPointColor = Color3.Red();\r\n line.textColor = new Color4(1, 0, 1, 1);\r\n line.backgroundTextColor = new Color4(0, 0, 0, 0);\r\n\r\n line.formatText = (length: number) => {\r\n let localizedKey = null;\r\n let params = new Array();\r\n\r\n if (Number.isNaN(length)) {\r\n if (line.canAddPoint()) {\r\n localizedKey = 'PickingMeasurementFormat';\r\n params.push(counter);\r\n }\r\n else {\r\n localizedKey = 'InvalidMeasurement';\r\n }\r\n }\r\n else {\r\n localizedKey = 'PickedMeasurementFormat';\r\n params.push(counter, length.toFixed(2));\r\n }\r\n\r\n return this._localizerService.localize(\r\n `JS.Plugin.MeasureTool.${localizedKey}`,\r\n ...params\r\n );\r\n }\r\n\r\n this.rendererScene.onPointerObservable.add(e => {\r\n line.showGhostLineAt(e.pickInfo.pickedPoint);\r\n });\r\n\r\n this._currentMeasure = line;\r\n this._measures.push(this._currentMeasure);\r\n }\r\n }\r\n\r\n private _onPointCloudMeasureRemoved(_: UIElement, e: NotifyCollectionChangedEventArgs): void {\r\n let [remove] = e.oldItems;\r\n\r\n if (this._removeMeasure(remove) && remove == this._currentMeasure) {\r\n this._currentMeasure = null;\r\n }\r\n\r\n if (this._measures.length == 0) {\r\n this._counterMeasure = 1;\r\n }\r\n }\r\n\r\n public get measures(): Array {\r\n return this._measures;\r\n }\r\n\r\n public get rendererScene(): Scene {\r\n return this.associatedObject.scenes.find(s => s.metadata?.isRenderer == true);\r\n }\r\n\r\n private _pointCloudScene: Scene;\r\n private _currentMeasure: Measurable;\r\n private _counterMeasure: number;\r\n private _contextMenuItems: Array;\r\n private readonly _actions: Array;\r\n private readonly _measures: Array;\r\n private readonly _translationBasePath: string = 'JS.Framework.Controls.XView.ContextMenu';\r\n private readonly _onPointerPickedAsync: (sphericalCoordinates: ISphericalCoordinates) => Promise;\r\n private readonly _pointCloudMeasureRemovedFunc: (sender: UIElement, e: NotifyCollectionChangedEventArgs) => void;\r\n\r\n private readonly _localizerService: LocalizerService;\r\n}\r\n","import { EventDispatcher, IEvent } from 'Framework/Extensions/CoreJsExtensions';\r\nimport ISpecification from 'ts-specification/dist/ISpecification';\r\n\r\nexport class SpecificationCollection {\r\n public add(specification: ISpecification): boolean {\r\n if (this._specifications.includes(specification)) {\r\n return false;\r\n }\r\n\r\n this._specifications.push(specification);\r\n this._updateDispatcher.dispatch(this);\r\n\r\n return true;\r\n }\r\n\r\n public remove(specification: ISpecification): boolean {\r\n const index = this._specifications.indexOf(specification);\r\n\r\n if (index < 0) {\r\n return false;\r\n }\r\n\r\n this._specifications.splice(index, 1);\r\n this._updateDispatcher.dispatch(this);\r\n\r\n return true;\r\n }\r\n\r\n public update(newValue: ISpecification, oldValue: ISpecification): boolean {\r\n const index = this._specifications.indexOf(oldValue);\r\n\r\n if (index < 0) {\r\n return false;\r\n }\r\n\r\n this._specifications.splice(index, 1, newValue);\r\n this._updateDispatcher.dispatch(this);\r\n\r\n return true;\r\n }\r\n\r\n public clear(): void {\r\n this._specifications.splice(0, this._specifications.length);\r\n this._updateDispatcher.dispatch(this);\r\n }\r\n\r\n public get specifications(): ReadonlyArray> {\r\n return this._specifications as ReadonlyArray>;\r\n }\r\n\r\n public get onUpdate(): IEvent {\r\n return this._updateDispatcher.toEvent();\r\n }\r\n\r\n private readonly _specifications: Array> = [];\r\n private readonly _updateDispatcher: EventDispatcher = new EventDispatcher();\r\n}\r\n","import { AppContext } from 'Api/AppContext';\r\nimport { AssetItemType, SmartObjectDto } from 'Api/Contracts/Dtos';\r\nimport { ISmartObjectService } from 'Api/Contracts/Interfaces';\r\nimport { AssetFile, AssetHotspot, AssetItem, AssetPanoramaGroup, AssetPanoramaVersion, FileMap, Navigation, Project, ProjectMap } from 'Api/ExploreService';\r\nimport EplumeDialog from 'App/Areas/Explore/Dialogs/EplumeDialog.vue';\r\nimport FolderWithCommentDialog from 'App/Areas/Explore/Dialogs/FolderWithCommentDialog.vue';\r\nimport OranoEquipmentDialog from 'App/Areas/Explore/Dialogs/OranoEquipmentDialog.vue';\r\nimport OranoPrsDialog from 'App/Areas/Explore/Dialogs/OranoPrsDialog.vue';\r\nimport VoSmartObjectDetailsDialog from 'App/Areas/Explore/Dialogs/VoSmartObjectDetailsDialog.vue';\r\nimport { IDiaporamaDialogContext } from 'App/Areas/Shares/Dialogs/IDiaporamaDialogContext';\r\nimport VoDiaporamaDialog from 'App/Areas/Shares/Dialogs/VoDiaporamaDialog.vue';\r\nimport VoIFrameDialog from 'App/Areas/Shares/Dialogs/VoIFrameDialog.vue';\r\nimport { IPlayerContext } from 'App/Areas/Shares/IPlayerContext';\r\nimport { getPanoramaMobileUrl, getPanoramaUrl, getVideoUrl, makeLocalHotspot } from 'App/Helpers/AssetHelper';\r\nimport { CoordinatesHelper } from 'App/Helpers/CoordinatesHelper';\r\nimport { IVisonUriService } from 'App/Services/UriServices/Core';\r\nimport { SpecificationCollection } from 'App/Utils';\r\nimport { filterRecursive } from 'Commons/Common';\r\nimport { ICartesianCoordinates, IConfiguration, ICoordinates, IHotspot, IIconProvider, IPanoramaConfiguration, IPanoramaLevel, ISphericalCoordinates, RenderType } from 'Framework/Components/Controls/XView/Core';\r\nimport { UIElement } from 'Framework/Components/UIElement';\r\nimport { EventHandler } from 'Framework/Extensions/CoreJsExtensions';\r\nimport { MathHelper } from 'Framework/Helpers/MathHelper';\r\nimport { UrlHelper } from 'Framework/Helpers/UrlHelper';\r\nimport { IDialogService } from 'Framework/Services/IDialogService';\r\nimport { isNumber, isString } from 'lodash';\r\nimport ISpecification from 'ts-specification/dist/ISpecification';\r\n\r\nclass PanoramaConfiguration implements IPanoramaConfiguration {\r\n public constructor(getHotspots: () => Array) {\r\n this._getHotspots = getHotspots;\r\n }\r\n\r\n public Url: string;\r\n public MaxLevel: number;\r\n public IsMultiResolution: boolean;\r\n public idleRotationWaitTime: number;\r\n public idleRotationSpeed: number;\r\n public Levels: IPanoramaLevel[];\r\n public startOrientation: ICoordinates;\r\n public RenderType: RenderType;\r\n public MaxFov?: number;\r\n public MinFov?: number;\r\n public Fov?: number;\r\n public iconProvider: IIconProvider;\r\n\r\n public get hotspots(): Array> {\r\n return this._getHotspots();\r\n }\r\n\r\n private readonly _getHotspots: () => Array;\r\n}\r\n\r\nexport class PlayerContext implements IPlayerContext {\r\n constructor(\r\n player: UIElement,\r\n appContext: AppContext,\r\n uriService: IVisonUriService,\r\n dialogService: IDialogService,\r\n iconProvider: IIconProvider,\r\n smartObjectService: ISmartObjectService,\r\n project: Project = null\r\n ) {\r\n this._player = player;\r\n this.currentProjet = project;\r\n this._appContext = appContext;\r\n this.uriService = uriService;\r\n this._dialogService = dialogService;\r\n this._iconProvider = iconProvider;\r\n this._smartObjectService = smartObjectService;\r\n\r\n this.hotspotsFilters = new SpecificationCollection();\r\n this.hotspotsFilters.onUpdate.subscribe(this._onUpdateFiltersHandler);\r\n }\r\n\r\n public getDefaultPanoramaVersion(panoramaGroup: AssetPanoramaGroup): AssetPanoramaVersion {\r\n return panoramaGroup.getDefaultPanoramaVersion(this.currentPanorama?.name);\r\n }\r\n\r\n public goToPanorama(panoramaOrAssetItemId: AssetPanoramaGroup | number | string, startOrientation: ICoordinates = null, fov?: number): void {\r\n if (this.panoramas.length == 0) {\r\n return;\r\n }\r\n\r\n let panoramaGroup: AssetPanoramaGroup = null;\r\n\r\n if (panoramaOrAssetItemId instanceof AssetPanoramaGroup) {\r\n panoramaGroup = panoramaOrAssetItemId;\r\n }\r\n else if (isNumber(panoramaOrAssetItemId)) {\r\n panoramaGroup = this.panoramas.find(item => item.assetItemId == panoramaOrAssetItemId);\r\n }\r\n else if (isString(panoramaOrAssetItemId)) {\r\n const isRegex = panoramaOrAssetItemId.startsWith('^') && panoramaOrAssetItemId.endsWith('$');\r\n\r\n if (isRegex) {\r\n const regex = new RegExp(panoramaOrAssetItemId);\r\n\r\n panoramaGroup = [...this.panoramas]\r\n .sort((a, b) => a.name.localeCompare(b.name))\r\n .find(item => regex.test(item.name));\r\n }\r\n else {\r\n panoramaGroup = this.panoramas.find(item => item.name == panoramaOrAssetItemId);\r\n }\r\n }\r\n else {\r\n console.error('Wrong input type for parameter: \\'panoramaOrAssetItemId\\' ');\r\n }\r\n\r\n if (!panoramaGroup) {\r\n this._raisePanoramaNotFound();\r\n return;\r\n }\r\n\r\n const destinationVersion = this.getDefaultPanoramaVersion(panoramaGroup);\r\n\r\n let orientation: ISphericalCoordinates = null;\r\n\r\n if (startOrientation) {\r\n orientation = MathHelper.isSphericalCoordinates(startOrientation)\r\n ? { ...startOrientation }\r\n : MathHelper.toSphericalCoordinates(startOrientation as ICartesianCoordinates);\r\n\r\n orientation = CoordinatesHelper.changeAzimuthBase(orientation, 0, destinationVersion.offset);\r\n }\r\n\r\n this._loadPanorama(destinationVersion, orientation, fov);\r\n }\r\n\r\n public loadNavigation(navigation: Navigation): void {\r\n this.currentNavigation = navigation;\r\n }\r\n\r\n public goToPanoramaVersion(panoramaOrAssetItemId: AssetPanoramaVersion | number, startOrientation: ICoordinates = null, fov?: number): void {\r\n if (this.panoramas.length == 0) {\r\n return;\r\n }\r\n\r\n if (panoramaOrAssetItemId instanceof AssetPanoramaVersion) {\r\n this._loadPanorama(panoramaOrAssetItemId, startOrientation, fov);\r\n }\r\n else {\r\n let assetItem = this.panoramas\r\n .flatMap(g => g.children as Array)\r\n .find(apv => apv.assetItemId == panoramaOrAssetItemId);\r\n\r\n this._loadPanorama(assetItem, startOrientation, fov);\r\n }\r\n }\r\n\r\n private _loadPanorama(panorama: AssetPanoramaVersion, startOrientation: ICoordinates = null, fov?: number): void {\r\n if (!panorama) {\r\n this.currentPanorama = null;\r\n this.viewerConfiguration = null;\r\n\r\n this._raisePanoramaNotFound();\r\n return;\r\n }\r\n\r\n //TODO : Implement action before load panorama\r\n UIElement.Bus.$emit('player-content-loading', { sender: this, args: panorama });\r\n\r\n if (this.currentPanorama != panorama) {\r\n this.currentPanorama = panorama;\r\n\r\n if (this.currentNavigation) {\r\n let map = this.currentNavigation.maps.find(map => {\r\n return map instanceof FileMap\r\n && map.children.findIndex(link => (link as AssetHotspot).assetItemLinkedId == panorama.parentId) >= 0\r\n }) as FileMap;\r\n this.currentMap = map;\r\n }\r\n else {\r\n this.currentMap = null;\r\n }\r\n\r\n this.viewerConfiguration = this.buildProjectConfiguration(panorama, startOrientation, fov);\r\n }\r\n else {\r\n let coordinates: ICartesianCoordinates = panorama.startOrientation ?? null;\r\n\r\n if (MathHelper.isCartesianCoordinates(startOrientation)) {\r\n coordinates = startOrientation;\r\n }\r\n else if (MathHelper.isSphericalCoordinates(startOrientation)) {\r\n coordinates = MathHelper.toCartesianCoordinates(startOrientation);\r\n }\r\n\r\n UIElement.Bus.$emit(\r\n 'look-to-event-bus',\r\n this,\r\n coordinates\r\n );\r\n\r\n if (fov) {\r\n UIElement.Bus.$emit(\r\n 'set-fov',\r\n { sender: this, fov: fov }\r\n );\r\n }\r\n }\r\n\r\n let onLoadedFunctionToParse = panorama.events.onLoaded ?? panorama.parent.events.onLoaded;\r\n let onLoadedFunction = this.parseFunction(onLoadedFunctionToParse, 'assetPanoramaGroup', 'assetPanoramaVersion');\r\n onLoadedFunction?.(panorama.parent, panorama);\r\n\r\n UIElement.Bus.$emit('player-content-loaded', { sender: this, args: panorama });\r\n }\r\n\r\n public openAsset(assetId: number, startAssetId?: number): void {\r\n let assetItem: AssetItem | SmartObjectDto = this.findAssetFileFromAssetId(assetId)\r\n ?? this.findSmartObject(assetId);\r\n\r\n if (assetItem instanceof AssetFile) {\r\n if (assetItem.type == AssetItemType.Directory) {\r\n let assetItems = (this.findAssetFileFromAssetFolderId(assetId, true) as Array)\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n if (assetItems?.length > 0) {\r\n let assetFile = assetItems.find(item => item.assetItemId == startAssetId) || assetItems[0];\r\n\r\n if (assetFile instanceof AssetFile) {\r\n let dataContext: IDiaporamaDialogContext = {\r\n token: this.validatedToken,\r\n selectedItem: assetFile.file,\r\n itemsSource: assetItems.map(item => item.file)\r\n };\r\n\r\n const _ = this._dialogService.openAsync(\r\n 'Shares',\r\n VoDiaporamaDialog,\r\n dataContext,\r\n {\r\n width: this._appContext.settings.dialogs.large.width,\r\n height: this._appContext.settings.dialogs.large.height,\r\n }\r\n );\r\n }\r\n }\r\n }\r\n else {\r\n let file = assetItem.file;\r\n\r\n if (file) {\r\n let dataContext: IDiaporamaDialogContext = {\r\n token: this.validatedToken,\r\n selectedItem: file,\r\n itemsSource: [file]\r\n };\r\n\r\n const _ = this._dialogService.openAsync(\r\n 'Shares',\r\n VoDiaporamaDialog,\r\n dataContext,\r\n {\r\n width: this._appContext.settings.dialogs.large.width,\r\n height: this._appContext.settings.dialogs.large.height,\r\n }\r\n );\r\n }\r\n }\r\n }\r\n else if (assetItem instanceof SmartObjectDto) {\r\n const _ = this.openSmartObjectDetailsDialogAsync(assetItem);\r\n }\r\n }\r\n\r\n public openFolderWithComment(assetId: number, comment?: string): void {\r\n let assetItem = this.findAssetFileFromAssetId(assetId);\r\n if (assetItem) {\r\n if (assetItem.type == AssetItemType.Directory) {\r\n const _ = this._dialogService.openAsync(\r\n 'Explore',\r\n FolderWithCommentDialog,\r\n {\r\n playerContext: this,\r\n assetItem: assetItem,\r\n comment: comment\r\n },\r\n {\r\n width: this._appContext.settings.dialogs.large.width,\r\n height: this._appContext.settings.dialogs.large.height,\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n private _stopAudio(): void {\r\n this.currentMediaPlaying?.stop();\r\n this.currentMediaPlaying = null;\r\n\r\n UIElement.Bus.$off('player-content-loading', this._stopAudio);\r\n }\r\n\r\n public playAudio(assetId: number): void {\r\n if (this.currentMediaPlaying?.currentTime) {\r\n if (this.currentMediaPlaying.getAttribute('asset-item-id') == assetId?.toString()) {\r\n this.currentMediaPlaying.stop();\r\n return;\r\n }\r\n else {\r\n this._stopAudio();\r\n }\r\n }\r\n\r\n let assetItem = this.findAssetFileFromAssetId(assetId);\r\n if (assetItem) {\r\n if (assetItem instanceof AssetFile) {\r\n let uri = this.uriService.getAbsoluteUri(`/${this._appContext.codeCulture}/asset/audio/${assetItem.file.guid}`);\r\n uri = UrlHelper.addUrlParameter(uri, 'token', this.validatedToken);\r\n\r\n this.currentMediaPlaying = new Audio(uri);\r\n this.currentMediaPlaying.setAttribute('asset-item-id', assetItem.assetItemId.toString());\r\n this.currentMediaPlaying.play();\r\n\r\n UIElement.Bus.$once('player-content-loading', this._stopAudio.bind(this));\r\n }\r\n }\r\n }\r\n\r\n public openPopup(url: string, title: string, w: number, h: number, inNewWindow: boolean = false): void {\r\n if (inNewWindow) {\r\n // Fixes dual-screen position Most browsers Firefox\r\n let dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screenX;\r\n let dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screenY;\r\n\r\n const width: number = window.innerWidth\r\n || document.documentElement.clientWidth\r\n || screen.width;\r\n\r\n const height: number = window.innerHeight\r\n || document.documentElement.clientHeight\r\n || screen.height;\r\n\r\n let left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n let top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n let newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);\r\n\r\n // Puts focus on the newWindow\r\n if (window.focus) {\r\n newWindow.focus();\r\n }\r\n }\r\n else {\r\n const _ = this._dialogService.openAsync(\r\n 'Shares',\r\n VoIFrameDialog,\r\n {\r\n title: title,\r\n url: url\r\n },\r\n {\r\n width: this._appContext.settings.dialogs.large.width,\r\n height: this._appContext.settings.dialogs.large.height,\r\n }\r\n );\r\n }\r\n }\r\n\r\n public createMail(recipient: string, cc: string, subject: string, body: string): void {\r\n let bodyEncoded = encodeURIComponent(body);\r\n let subjectEncoded = encodeURIComponent(subject);\r\n\r\n let uri = '?';\r\n if (cc != '') {\r\n uri += 'cc=' + cc + '&';\r\n }\r\n if (subject != '') {\r\n uri += 'subject=' + subjectEncoded + '&';\r\n }\r\n if (body != '') {\r\n uri += 'body=' + bodyEncoded;\r\n }\r\n\r\n let mailTo = 'mailto:' + recipient + uri;\r\n\r\n window.location.href = mailTo;\r\n }\r\n\r\n public eplumeElement(wiwId: string, ewattchId: string): void {\r\n if (!wiwId && !ewattchId) {\r\n return;\r\n }\r\n\r\n //Vérifie si vis-on est intégré dans une iframe\r\n if (window.parent) {\r\n let wiwInputId = UrlHelper.getUrlParameter('wiwinput');\r\n\r\n if (wiwInputId) {\r\n try {\r\n parent.window.postMessage(JSON.stringify({ entityId: wiwId }), this._getParentOrigin());\r\n return;\r\n }\r\n catch (err) {\r\n console.log('IFrame WIW postMessage error : ', err);\r\n }\r\n }\r\n }\r\n\r\n const _ = this._dialogService.openAsync(\r\n 'Explore',\r\n EplumeDialog,\r\n {\r\n wiwId: wiwId,\r\n ewattchId: ewattchId\r\n },\r\n {\r\n width: this._appContext.settings.dialogs.large.width,\r\n height: this._appContext.settings.dialogs.large.height,\r\n }\r\n );\r\n }\r\n\r\n public async openSmartObjectDetailsDialogAsync(smartObject: SmartObjectDto | number): Promise {\r\n const smartObjectDto: SmartObjectDto = typeof smartObject === 'number'\r\n ? await this._smartObjectService.getObjectAsync(\r\n smartObject,\r\n null,\r\n this.validatedToken)\r\n : smartObject;\r\n\r\n const _ = await this._dialogService.openAsync(\r\n 'Explore',\r\n VoSmartObjectDetailsDialog,\r\n {\r\n smartObject: smartObjectDto,\r\n projectId: this.currentProjet.id\r\n },\r\n {\r\n width: this._appContext.settings.dialogs.medium.width,\r\n height: this._appContext.settings.dialogs.medium.height,\r\n }\r\n );\r\n }\r\n\r\n public openOranoEquipement(unit: string, ecode: string) {\r\n if (!unit || !ecode) {\r\n return;\r\n }\r\n\r\n const _ = this._dialogService.openAsync(\r\n 'Explore',\r\n OranoEquipmentDialog,\r\n {\r\n unit: unit,\r\n ecode: ecode\r\n },\r\n {\r\n width: this._appContext.settings.dialogs.large.width,\r\n height: this._appContext.settings.dialogs.large.height,\r\n }\r\n );\r\n }\r\n\r\n public openOranoPrs(baseUriPrs: string, workshopName: string, localName: string) {\r\n if (!baseUriPrs || !workshopName || !localName) {\r\n return;\r\n }\r\n\r\n const _ = this._dialogService.openAsync(\r\n 'Explore',\r\n OranoPrsDialog,\r\n {\r\n baseUriPrs: baseUriPrs,\r\n workshopName: workshopName,\r\n localName: localName\r\n },\r\n {\r\n width: this._appContext.settings.dialogs.large.width,\r\n height: this._appContext.settings.dialogs.large.height,\r\n }\r\n );\r\n }\r\n\r\n public openScanEdit(rfo: string): void {\r\n this._player.$el.dispatchEvent(new CustomEvent('hotspotclicked', { detail: rfo }));\r\n }\r\n\r\n public findPanoramaFileFromAssetId(assetItemId: number): AssetPanoramaVersion {\r\n if (this.panoramas) {\r\n return this.getDefaultPanoramaVersion(\r\n this.panoramas.find(item => item.assetItemId == assetItemId)\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public findAssetFileFromAssetId(assetId: number): AssetItem {\r\n if (this.assets) {\r\n return this.assets.find(item => item.assetItemId == assetId);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public findSmartObject(assetId: number): SmartObjectDto {\r\n return this.smartObjects?.find(item => item.assetItemId == assetId);\r\n }\r\n\r\n public findAssetFileFromAssetFolderId(assetId: number, includeSubFolder: boolean = false): Array {\r\n if (this.assets) {\r\n if (includeSubFolder) {\r\n return [...filterRecursive(item => item.parentId == assetId, this.assets, 'children', () => true)];\r\n } else {\r\n return this.assets.filter(item => item.parentId == assetId);\r\n }\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n private _getParentOrigin(): string {\r\n const locationAreDistinct = (window.location !== window.parent.location);\r\n const parentOrigin = ((locationAreDistinct ? document.referrer : document.location) || '').toString();\r\n\r\n if (parentOrigin) {\r\n return new URL(parentOrigin).origin;\r\n }\r\n\r\n const currentLocation = document.location;\r\n\r\n return currentLocation.ancestorOrigins?.[0] ?? '';\r\n }\r\n\r\n public *getHotposts(panorama: AssetPanoramaVersion): IterableIterator {\r\n const panoramaGroup = panorama.parent as AssetPanoramaGroup;\r\n const groupHotspots = panoramaGroup.hotspots;\r\n\r\n const parseEventIfExists = (hotspot: IHotspot): void => {\r\n const onclickCallback = this.parseFunction(\r\n hotspot.events?.onClick,\r\n 'hotspot',\r\n 'hotspotElement');\r\n\r\n if (onclickCallback) {\r\n hotspot.onclick = onclickCallback;\r\n }\r\n }\r\n\r\n for (const hotspot of groupHotspots) {\r\n if (this._aggregatedFilter && !this._aggregatedFilter.isSatisfiedBy(hotspot)) {\r\n continue;\r\n }\r\n\r\n let hs = makeLocalHotspot(hotspot, panorama);\r\n parseEventIfExists(hs);\r\n\r\n yield hs;\r\n }\r\n\r\n for (const hotspot of panorama.hotspots) {\r\n if (this._aggregatedFilter && !this._aggregatedFilter.isSatisfiedBy(hotspot)) {\r\n continue;\r\n }\r\n\r\n parseEventIfExists(hotspot);\r\n\r\n yield hotspot;\r\n }\r\n }\r\n\r\n private buildProjectConfiguration(panorama: AssetPanoramaVersion, startOrientation: ICoordinates = null, fov?: number): IConfiguration {\r\n let url: string = null;\r\n\r\n if (this.isStandalone) {\r\n url = this.uriService.getAbsoluteUri(\r\n panorama.renderType == RenderType.Cube\r\n ? getPanoramaMobileUrl(this._appContext.codeCulture, panorama.file.guid)\r\n : getVideoUrl(this._appContext.codeCulture, panorama.file.guid)\r\n );\r\n }\r\n else {\r\n url = this.uriService.getAbsoluteUri(\r\n panorama.renderType == RenderType.Cube\r\n ? getPanoramaUrl(this._appContext.codeCulture, panorama.file.guid)\r\n : getVideoUrl(this._appContext.codeCulture, panorama.file.guid)\r\n );\r\n\r\n url = UrlHelper.addUrlParameter(url, 'token', this.validatedToken);\r\n }\r\n\r\n const hotspotsFunc = () => Array.from(this.getHotposts(panorama));\r\n\r\n return Object.assign(new PanoramaConfiguration(hotspotsFunc), {\r\n RenderType: panorama.renderType,\r\n MaxLevel: panorama.level,\r\n Url: url,\r\n Fov: fov ?? 80 / 180 * Math.PI,\r\n Levels: [...this.levelGenerator(panorama.level, !this.isStandalone)],\r\n startOrientation: startOrientation || panorama.startOrientation,\r\n iconProvider: this._iconProvider\r\n });\r\n }\r\n\r\n private *levelGenerator(maxLevel: number, constantTileSize: boolean = true): IterableIterator {\r\n for (let level: number = 1; level <= maxLevel; level++) {\r\n let size: number = Math.pow(2, level - 1);\r\n let sizeOfImage = size * 512;\r\n yield {\r\n ImageWidth: sizeOfImage,\r\n ImageHeight: sizeOfImage,\r\n TileSize: constantTileSize ? 512 : sizeOfImage\r\n };\r\n }\r\n }\r\n\r\n public bind(func: Function): Function {\r\n return func.bind(this);\r\n }\r\n\r\n public parseFunction(literalFunction: string, ...args: string[]): Function {\r\n let func = this._functionMap.get(literalFunction);\r\n\r\n if (func) {\r\n return func;\r\n }\r\n\r\n try {\r\n func = new Function(...args, literalFunction).bind(this);\r\n\r\n this._functionMap.set(literalFunction, func);\r\n\r\n return func;\r\n } catch (e) {\r\n console.log('Vison : Parse function error', e);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _onUpdateFilters(newValue: ReadonlyArray>): void {\r\n this._aggregatedFilter = newValue.length == 0\r\n ? null\r\n : newValue.reduce((p, c) => p.and(c));\r\n\r\n UIElement.Bus.$emit('refresh-hotspots');\r\n }\r\n\r\n private _raisePanoramaNotFound(): void {\r\n UIElement.Bus.$emit('player-error-raised', {\r\n sender: this,\r\n args: {\r\n code: 'PlayerContext.PanoramaNotFound'\r\n }\r\n });\r\n }\r\n\r\n public token: string = null;\r\n public validatedToken: string = null;\r\n public isStandalone: boolean = false;\r\n public assets: Array = [];\r\n public panoramas: Array = [];\r\n public navigations: Array = [];\r\n public smartObjects: Array = [];\r\n\r\n public currentProjet: Project = null;\r\n public currentPanorama: AssetPanoramaVersion = null;\r\n public currentNavigation: Navigation = null;\r\n public viewerConfiguration: IConfiguration = null;\r\n public currentMap: ProjectMap = null;\r\n public currentOrientation: ICoordinates = null;\r\n public currentFocale: number = null;\r\n public isPanoramaHasPointCloud: boolean = false;\r\n public isDropAllowed: boolean = false;\r\n public currentMediaPlaying: HTMLAudioElement | HTMLVideoElement = null;\r\n public readonly hotspotsFilters: SpecificationCollection;\r\n\r\n public uriService: IVisonUriService;\r\n\r\n private readonly _appContext: AppContext;\r\n\r\n private readonly _dialogService: IDialogService;\r\n\r\n private readonly _smartObjectService: ISmartObjectService;\r\n\r\n private readonly _iconProvider: IIconProvider;\r\n\r\n private readonly _onUpdateFiltersHandler: EventHandler\r\n = sender => this._onUpdateFilters(\r\n (sender as SpecificationCollection).specifications);\r\n\r\n private readonly _player: UIElement;\r\n private readonly _functionMap: Map = new Map();\r\n\r\n private _aggregatedFilter: ISpecification = null;\r\n}\r\n","import { AppContext } from 'Api/AppContext';\r\nimport { ISmartObjectService } from 'Api/Contracts/Interfaces';\r\nimport { PointCloud } from 'Api/Dto/PointCloud';\r\nimport { AssetPanoramaGroup, BindingMode, ExploreService, Navigation, Project } from 'Api/ExploreService';\r\nimport { LocalizerService } from 'Api/LocalizerService';\r\nimport { PointCloudBehavior } from 'App/Areas/Explore/Components/Behaviors/PointCloudBehavior';\r\nimport VoPointCloudMeasure from 'App/Areas/Explore/Components/VoPointCloudMeasure.vue';\r\nimport { IPlayerContext } from 'App/Areas/Shares/IPlayerContext';\r\nimport { PlayerConverter } from 'App/Areas/Shares/PlayerActionConverters';\r\nimport { PlayerContext } from 'App/Areas/Shares/PlayerContext';\r\nimport { getComponentFromType } from 'App/Areas/Shares/RendererComponents';\r\nimport VoSearchBox from 'App/Areas/Shares/VoSearchBox.vue';\r\nimport { injectTypes } from 'App/injectTypes';\r\nimport { lazyInject, serviceProvider } from 'App/Inversify.config';\r\nimport { IVisonUriService } from 'App/Services/UriServices/Core';\r\nimport { IConfiguration, IIconProvider, isPanoramaConfiguration, ISphericalCoordinates } from 'Framework/Components/Controls/XView/Core';\r\nimport { IViewer } from 'Framework/Components/Controls/XView/IViewer';\r\nimport { Viewer360 } from 'Framework/Components/Controls/XView/XView.Viewer360';\r\nimport { Component, Prop, UIElement, Vue, Watch } from 'Framework/Components/UIElement';\r\nimport { UrlHelper } from 'Framework/Helpers/UrlHelper';\r\nimport { IDialogService } from 'Framework/Services/IDialogService';\r\nimport { CreateElement, VNode } from 'vue';\r\n\r\n@Component({\r\n name: 'vo-player',\r\n components: { VoSearchBox, VoPointCloudMeasure }\r\n})\r\nexport default class VoPlayer extends UIElement {\r\n public mounted(): void {\r\n //if(pointCloudModuleAllowed) { not used yet\r\n this._pointCloudBehavior = new PointCloudBehavior(\r\n async (e: ISphericalCoordinates) => await this._onPointerPickedAsync(e),\r\n this._localizerService\r\n );\r\n //}\r\n\r\n UIElement.Bus.$on('configuration-changed', this._onConfigurationChanged);\r\n UIElement.Bus.$on('player-error-raised', this._onPlayerErrorRaised);\r\n }\r\n\r\n public beforeDestroy(): void {\r\n UIElement.Bus.$off('configuration-changed', this._onConfigurationChanged);\r\n UIElement.Bus.$off('player-error-raised', this._onPlayerErrorRaised);\r\n }\r\n\r\n public render(createElement: CreateElement, context: any): VNode {\r\n if (this.error) {\r\n let uiElement = this.project.layout;\r\n\r\n return createElement('x-grid',\r\n {\r\n staticStyle: {\r\n 'position': 'relative'\r\n }\r\n },\r\n [\r\n this._uiElementToVNode(uiElement, createElement, context, {\r\n 'z-index': 0\r\n }),\r\n this.$scopedSlots['error']?.({ error: this.error, clear: () => this.error = null })?.[0]\r\n ]\r\n );\r\n }\r\n else if (this.project) {\r\n let uiElement = this.project.layout;\r\n\r\n return this._uiElementToVNode(uiElement, createElement, context);\r\n }\r\n else {\r\n return this.$scopedSlots['loading']?.({/*No props*/ })?.[0]\r\n ?? createElement('div');\r\n }\r\n }\r\n\r\n public static createDataContext(player: VoPlayer, value: Project = null): IPlayerContext {\r\n let dataContext = new PlayerContext(\r\n player,\r\n serviceProvider.get(AppContext),\r\n serviceProvider.get(injectTypes.IVisonUriService),\r\n serviceProvider.get(injectTypes.IDialogService),\r\n serviceProvider.get(injectTypes.IIconProvider),\r\n serviceProvider.get(injectTypes.ISmartObjectService),\r\n value ?? null\r\n );\r\n\r\n if (value) {\r\n for (let index in value.datasources) {\r\n let datasource = value.datasources[index];\r\n dataContext[datasource.name] = datasource.value;\r\n }\r\n\r\n dataContext.validatedToken = value.validatedToken;\r\n }\r\n\r\n return Vue.observable(dataContext);\r\n }\r\n\r\n @Watch('project')\r\n public onProjectPropertyChanged(value: Project, oldValue: Project): void {\r\n if (value) {\r\n let dataContext = VoPlayer.createDataContext(this, value);\r\n\r\n let events = JSON.parse(this.project.events || null) || {};\r\n let onLoadedEventString = events.onLoaded;\r\n let onLoadedEvent: Function = this._createLoadedEventFromViewState(dataContext);\r\n\r\n if (!onLoadedEvent && typeof(onLoadedEventString) === 'string') {\r\n onLoadedEvent = dataContext.parseFunction(onLoadedEventString);\r\n }\r\n\r\n onLoadedEvent = onLoadedEvent || this.loadFirstPanorama;\r\n\r\n this._dataContext = dataContext;\r\n this.loadFirstNavigation();\r\n onLoadedEvent();\r\n }\r\n else {\r\n this._dataContext = VoPlayer.createDataContext(this);\r\n }\r\n }\r\n\r\n private _createLoadedEventFromViewState(dataContext: IPlayerContext): Function {\r\n let onLoadedEvent: Function = null;\r\n let startOrientation: any = null;\r\n let viewState = UrlHelper.getUrlHashParameters();\r\n\r\n if (viewState) {\r\n if ('startOrientation' in viewState) {\r\n startOrientation = JSON.parse(viewState['startOrientation']);\r\n }\r\n\r\n if ('startPanoramaGroupName' in viewState) {\r\n let startPanoramaGroupName = viewState['startPanoramaGroupName'];\r\n\r\n onLoadedEvent = () => dataContext.goToPanorama(startPanoramaGroupName, startOrientation);\r\n }\r\n\r\n if ('startPanorama' in viewState) {\r\n let startPanoramaId = Number(viewState['startPanorama']);\r\n\r\n onLoadedEvent = () => dataContext.goToPanoramaVersion(startPanoramaId, startOrientation);\r\n }\r\n\r\n delete viewState['startPanorama'];\r\n delete viewState['startOrientation'];\r\n delete viewState['startPanoramaGroupName'];\r\n }\r\n\r\n return onLoadedEvent;\r\n }\r\n\r\n private _onPlayerErrorRaised(event: { sender: object, args: any }): void {\r\n this.error = event.args;\r\n }\r\n\r\n private loadFirstNavigation(): void {\r\n let datasources = this.project.datasources.filter(ds => ds.type == 'Array' && ds.of == 'Navigation');\r\n\r\n if (Array.isArray(datasources) && datasources.length == 1) {\r\n let navigationSource = datasources[0].value as Array;\r\n if (Array.isArray(navigationSource) && navigationSource.length > 0) {\r\n this._dataContext.loadNavigation(navigationSource[0]);\r\n }\r\n }\r\n else {\r\n console.log(`loadFirstNavigation : datasource is ${datasources} and lenght : ${datasources ? datasources.length : null}`);\r\n }\r\n }\r\n\r\n private loadFirstPanorama(): void {\r\n let datasources = this.project.datasources.filter(ds => ds.type == 'Array' && ds.of == 'AssetPanoramaGroup');\r\n\r\n if (Array.isArray(datasources) && datasources.length == 1) {\r\n let panoramaSource = datasources[0].value as Array;\r\n if (Array.isArray(panoramaSource) && panoramaSource.length > 0) {\r\n this._dataContext.goToPanorama(panoramaSource[0]);\r\n }\r\n }\r\n else {\r\n console.log(`loadFirstPanorama : datasource is ${datasources} and lenght : ${datasources ? datasources.length : null}`);\r\n }\r\n }\r\n\r\n private async _onConfigurationChanged(obj: { sender: IViewer, args: IConfiguration }): Promise {\r\n this._currentPlayer = obj.sender;\r\n\r\n if (isPanoramaConfiguration(obj.args)) {\r\n this._dataContext.currentOrientation = obj.args.startOrientation;\r\n }\r\n\r\n this._dataContext.isPanoramaHasPointCloud = await this._exploreService\r\n .scanExistAsync(\r\n this.project.id,\r\n this._dataContext.currentPanorama.assetItemId);\r\n\r\n if (!this._pointCloudBehavior) {\r\n return;\r\n }\r\n\r\n this._pointCloudBehavior.detach();\r\n\r\n if (this._currentPlayer instanceof Viewer360\r\n && this._dataContext.isPanoramaHasPointCloud\r\n ) {\r\n this._pointCloudBehavior.attach(this._currentPlayer);\r\n }\r\n }\r\n\r\n private async _onPointerPickedAsync(sphericalCoordinates: ISphericalCoordinates): Promise {\r\n return await this._exploreService.readScanAtAsync(\r\n this.project.id,\r\n this._dataContext?.currentPanorama?.assetItemId,\r\n sphericalCoordinates.theta,\r\n sphericalCoordinates.phi\r\n );\r\n }\r\n\r\n private _uiElementToVNode(uiElement: any, createElement: CreateElement, context: any, staticStyle: Record = null): VNode {\r\n if (uiElement) {\r\n let typeOfComponent = getComponentFromType(uiElement.type);\r\n\r\n if (typeOfComponent) {\r\n let props = {};\r\n let on = {};\r\n\r\n let configurationElement = {};\r\n props['configurationElement'] = configurationElement;\r\n if ('playerContext' in typeOfComponent.prototype) {\r\n props['playerContext'] = this._dataContext;\r\n }\r\n\r\n for (const propKey in uiElement) {\r\n const propValue: any = uiElement[propKey];\r\n\r\n if (propKey in typeOfComponent.prototype) {\r\n if (propValue && typeof (propValue) === 'object' && 'path' in propValue) {\r\n const bindingPath = propValue.path;\r\n const bindingMode = propValue.mode;\r\n const bindingConverterName = propValue.converter;\r\n\r\n const value = this._dataContext[bindingPath];\r\n\r\n const bindingConverter = PlayerConverter.getConverter(bindingConverterName);\r\n\r\n props[propKey] = bindingConverter\r\n ? bindingConverter.converter(this._dataContext, value)\r\n : value;\r\n\r\n if (bindingMode == BindingMode.TwoWay) {\r\n on[`update:${propKey}`] = ($event: any) => { this._dataContext[bindingPath] = $event };\r\n }\r\n }\r\n else {\r\n let propsOfPrototype = (typeOfComponent as any).options?.props || typeOfComponent.prototype?.$props || {};\r\n let record = (propsOfPrototype as Record)[propKey];\r\n if (record && 'type' in record) {\r\n switch (record.type) {\r\n case Object:\r\n case Array:\r\n props[propKey] = JSON.parse(propValue);\r\n break;\r\n case Number: props[propKey] = Number(propValue);\r\n break;\r\n case Function: props[propKey] = this._dataContext.parseFunction(propValue);\r\n break;\r\n default: props[propKey] = propValue;\r\n break;\r\n }\r\n }\r\n else {\r\n props[propKey] = propValue;\r\n }\r\n\r\n on[`update:${propKey}`] = ($event: any) => { uiElement[propKey] = $event };\r\n }\r\n\r\n }\r\n else {\r\n configurationElement[propKey] = propValue;\r\n }\r\n }\r\n\r\n let children: Array = [];\r\n if ('children' in uiElement && Array.isArray(uiElement.children)) {\r\n children = uiElement.children.map((c: any) => this._uiElementToVNode(c, createElement, null));\r\n }\r\n\r\n let result = createElement(\r\n typeOfComponent,\r\n {\r\n props: props,\r\n on: on,\r\n staticStyle: staticStyle\r\n },\r\n children\r\n );\r\n\r\n return result;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public error: any = null;\r\n\r\n @Prop({ type: Object, required: false, default: null })\r\n public project: Project;\r\n\r\n @lazyInject(ExploreService)\r\n private readonly _exploreService: ExploreService;\r\n\r\n @lazyInject(LocalizerService)\r\n private readonly _localizerService: LocalizerService;\r\n\r\n private _currentPlayer: IViewer;\r\n private _pointCloudBehavior: PointCloudBehavior;\r\n}\r\n","var render, staticRenderFns\nimport script from \"./VoPlayer.vue.ts?vue&type=script&lang=ts&\"\nexport * from \"./VoPlayer.vue.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./VoPlayer.vue.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./VoPlayer.vue.ts?vue&type=script&lang=ts&\"","export interface FindWorkRequestResult {\r\n FindWorkRequestResponse: FindWorkRequestResponse;\r\n}\r\n\r\nexport interface CreateWorkRequestResult {\r\n CreateWorkRequestResponse: CreateWorkRequestResponse;\r\n}\r\n\r\nexport interface FindWorkRequestResponse {\r\n BusinessObject: BusinessObject;\r\n StandardReply: StandardReply;\r\n}\r\n\r\nexport interface CreateWorkRequestResponse {\r\n BusinessObject: BusinessObject;\r\n StandardReply: StandardReply;\r\n}\r\n\r\nexport interface BusinessObject {\r\n WRHeader: T;\r\n}\r\n\r\nexport interface WRHeaderCommon {\r\n \"@Type\": string;\r\n WoReqNumber: number;\r\n WoReqStatus: string;\r\n WrTaskTitle: string;\r\n WrOrigLastName: string;\r\n Facility: string;\r\n WoTskPriority: string;\r\n\r\n WoReqNeedDate: string;\r\n WoReqNeedTime: string;\r\n\r\n WorkAgainstInd: string;\r\n JobType: string;\r\n}\r\n\r\nexport interface WRHeaderCreate extends WRHeaderCommon {\r\n WoReqStatusDate: Date;\r\n WoReqStatusTime: string;\r\n WrOrigFirstInit: string;\r\n WoReqOrgDept: string;\r\n WoReqOriginator: string;\r\n JobActiveInd: string;\r\n Unit: string;\r\n EquipmentType: string;\r\n EquipmentNumber: number;\r\n EquipmentName: string;\r\n LocationDesc: string;\r\n TroubleBreakdown: string;\r\n ECode: string;\r\n OpSystem: number;\r\n Division: string;\r\n OutageInd: string;\r\n}\r\n\r\nexport interface WRHeaderList extends WRHeaderCommon {\r\n WoReqDateEnter: string;\r\n WoReqTimeEnter: string;\r\n\r\n ScrollingParameters?: ScrollingParameters;\r\n}\r\n\r\nexport interface ScrollingParameters {\r\n \"@Type\": string;\r\n ScrollingCmd?: string;\r\n TopPageKey?: number;\r\n BottomPageKey?: number;\r\n MoreDataAbove?: string;\r\n MoreDataBelow?: string;\r\n}\r\n\r\nexport interface StandardReply {\r\n ReplyMessages: ReplyMessages;\r\n}\r\n\r\nexport interface ReplyMessages {\r\n ReturnCode: number;\r\n ErrorMsgCount: number;\r\n WarningMsgCount: number;\r\n InfoMsgCount: number;\r\n MessageEntry: MessageEntry;\r\n}\r\n\r\nexport interface MessageEntry {\r\n Type: string;\r\n Code: string;\r\n Text: string;\r\n}\r\n\r\nexport type DpCodePriority = 'AL' | 'E1' | 'E2' | 'RA' | 'S1' | 'S2' | 'U1' | 'U2';\r\n\r\nexport const DPPriorities: Array<{ code: DpCodePriority, name: string }> = [\r\n { code: 'AL', name: 'A REALISER AVANT LE (DATE SUPERIEURE A LA SEMAINE)' },\r\n { code: 'E1', name: 'EXPLOITATION - DEMANDE AVEC IMPACT TRÈS IMMEDIAT' },\r\n { code: 'E2', name: 'EXPLOIT-DEMANDE AVEC IMPACT TRÈS DIFFERE+DATE ECHEANCE SOUHAI' },\r\n { code: 'RA', name: 'A REALISER SUR ARRET' },\r\n { code: 'S1', name: 'SECURITE - DEMANDE D\\'INTERVENTION IMMEDIATE' },\r\n { code: 'S2', name: 'SECURITE -DEMANDE INTERV. DIFFEREE + DATE ECHEANCE SOUHAITEE' },\r\n { code: 'U1', name: 'SURETE - DEMANDE D\\'INTERVENTION IMMEDIATE' },\r\n { code: 'U2', name: 'SURETE DEMANDE D\\'INTERV.DIFFEREE + DATE ECHEANCE SOUHAITEE' }\r\n];\r\n\r\nexport type DpCodePrestationType = 'A1' | 'A2' | 'AM' | 'B1' | 'B2' | 'C1' | 'C2' | 'CS' | 'D1' | 'D2' | 'D5' | 'DE' |\r\n 'ES' | 'ET' | 'F1' | 'FA' | 'FD' | 'G1' | 'G2' | 'I1' | 'I2' | 'K1' | 'K2' | 'L1' | 'L2' | 'M1' | 'MO' | 'N1' | 'N4' |\r\n 'NP' | 'P3' | 'P4' | 'PG' | 'PM' | 'R1' | 'R2' | 'RE' | 'RP' | 'RU' | 'S1' | 'S2' | 'SU' | 'T1' | 'T2' | 'TD' | 'V1' |\r\n 'V2' | 'W1' | 'W2' | 'Z1' | 'Z2';\r\n\r\nexport const DPPrestationTypes: Array<{ code: DpCodePrestationType, name: string }> = [\r\n { code: 'A1', name: 'INTERNE DE TYPE DI NON RADIOLOGIQUE' },\r\n { code: 'A2', name: 'INTERNE DE TYPE DI RADIOLOGIQUE' },\r\n { code: 'AM', name: 'AMÉLIORATION' },\r\n { code: 'B1', name: 'AMPA DE TYPE DI NON RADIOLOGIQUE' },\r\n { code: 'B2', name: 'AMPA DE TYPE DI RADIOLOGIQUE' },\r\n { code: 'C1', name: 'CORRECTIF DE TYPE DI NON RADIOLOGIQUE' },\r\n { code: 'C2', name: 'CORRECTIF DE TYPE DI RADIOLOGIQUE' },\r\n { code: 'CS', name: 'CONSULTATION' },\r\n { code: 'D1', name: 'DISCORDANCE DE TYPE DI NON RADIOLOGIQUE' },\r\n { code: 'D2', name: 'DISCORDANCE DE TYPE DI RADIOLOGIQUE' },\r\n { code: 'D5', name: 'DISCORDANCE TRAITEMENT AUTRE QUE PAR MAINTENANCE' },\r\n { code: 'DE', name: 'DOSSIER D\\'ETUDE' },\r\n { code: 'ES', name: 'ECHANGE STANDARD (REMPLACEMENT EQUIPEMENT)' },\r\n { code: 'ET', name: 'ÉTALONNAGE' },\r\n { code: 'F1', name: 'FABRICATION DE TYPE DI' },\r\n { code: 'FA', name: 'FOURNITURES INDUSTRIELLES POUR MAFA' },\r\n { code: 'FD', name: 'FICHE DE TRAITEMENT DE DEFAUT EMBALLAGE' },\r\n { code: 'G1', name: 'PREPARATION DE TYPE DI NON RADIOLOGIQUE' },\r\n { code: 'G2', name: 'PREPARATION DE TYPE DI RADIOLOGIQUE' },\r\n { code: 'I1', name: 'INFORMATIQUE DE TYPE DI NON RADIOLOGIQUE' },\r\n { code: 'I2', name: 'INFORMATIQUE DE TYPE DI RADIOLOGIQUE' },\r\n { code: 'K1', name: 'DEMANDE SUITE A ALERTE KASEM NON RADIOLOGIQUE' },\r\n { code: 'K2', name: 'DEMANDE SUITE A ALERTE KASEM RADIOLOGIQUE' },\r\n { code: 'L1', name: 'LOGISTIQUE DE TYPE DI NON RADIOLOGIQUE' },\r\n { code: 'L2', name: 'LOGISTIQUE DE TYPE DI RADIOLOGIQUE' },\r\n { code: 'M1', name: 'METROLOGIE' },\r\n { code: 'MO', name: 'MODÈLE' },\r\n { code: 'N1', name: 'DIAGNOSTIQUE AMIANTE' },\r\n { code: 'N4', name: 'DECONTAMINATION' },\r\n { code: 'NP', name: 'TRAVAIL NON-PLANIFIÉ' },\r\n { code: 'P3', name: 'PREVENTIF OU NON CONFORMITE ASSOCIEE NON RADIOLOGIQUE' },\r\n { code: 'P4', name: 'PREVENTIF OU NON CONFORMITE ASSOCIEE RADIOLOGIQUE' },\r\n { code: 'PG', name: 'PRET DE GABARITS' },\r\n { code: 'PM', name: 'MAINTENANCE PRÉVENTIVE ET AUTRES PROGRAMMES' },\r\n { code: 'R1', name: 'REPARATION DE TYPE DI NON RADIOLOGIQUE' },\r\n { code: 'R2', name: 'REPARATION DE TYPE DI RADIOLOGIQUE' },\r\n { code: 'RE', name: 'APPRO. FAB. PREPA. PIECES DE RECHANGE OU OUTILLAGES' },\r\n { code: 'RP', name: 'RÉPARATION' },\r\n { code: 'RU', name: 'RÉCUPÉRATION' },\r\n { code: 'S1', name: 'SITE DE TYPE DI NON RADIOLOGIQUE' },\r\n { code: 'S2', name: 'SITE DE TYPE DI RADIOLOGIQUE' },\r\n { code: 'SU', name: 'SUPPLÉMENTAIRE' },\r\n { code: 'T1', name: 'TRANSPORT DE TYPE NON RADIOLOGIQUE' },\r\n { code: 'T2', name: 'TRANSPORT DE TYPE RADIOLOGIQUE' },\r\n { code: 'TD', name: 'TACHE DE DIAGNOSTIQUE' },\r\n { code: 'V1', name: 'NTQC NON RADIOLOGIQUE' },\r\n { code: 'V2', name: 'NTQC RADIOLOGIQUE' },\r\n { code: 'W1', name: 'TACHE DE VISITE ET VIEILLISSEMENT NON RADIOLOGIQUE' },\r\n { code: 'W2', name: 'TACHE DE VISITE ET VIEILLISSEMENT RADIOLOGIQUE' },\r\n { code: 'Z1', name: 'CONTROLE INTERNE SUR CODE ARTICLE EN STOCK MAGASIN' },\r\n { code: 'Z2', name: 'RECETTE DE MATERIEL POUR MISE EN STOCK' }\r\n];\r\n"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","scopedSlots","_u","key","fn","attrs","getEntityUri","wiwEntity","_v","_s","id","name","proxy","VCard","description","_e","VContainer","VRow","VCol","VTabs","VTabsSlider","VTab","localizer","images","length","VTabItem","properties","_l","info","unit","property","display","FR","value","staticStyle","formatDate","symbol","VCarousel","item","i","VCarouselItem","dashletEwattch","tickets","VDataTable","headersTicket","VToolbar","VSpacer","VDialog","ref","on","VBtn","_g","model","menu","callback","$$v","$set","expression","VTextField","formTicketName","VTextarea","formTicketDescription","formTicketStartDate","formTicketEndDate","isBusy","$event","isTicketModalOpen","_onSubmitAddTicketAsync","getTicketUri","created","scheduledBegin","scheduledEnd","comments","headersComments","formCommentContent","isCommentModalOpen","_onSubmitAddCommentAsync","author","fullName","date","content","staticRenderFns","EplumeDialog","BaseDialogBehavior","text","ticket","_wiwContext","baseUriWiw","entity","_localizerService","localizeDate","format","newValue","oldValue","oldWiwId","wiwId","newWiwId","oldEwattchId","ewattchId","newEwattchId","_getEwattchData","_wiwService","isLogged","loginTokenAsync","apiKey","getEntityAsync","_updateEntityAsync","selectedStartDate","Date","selectedEndDate","isSuccess","addTicketForEntityAsync","getTicketsOfEntityAsync","addCommentForEntityAsync","getCommentsOfEntityAsync","data","linkedImages","Array","chunkedImages","chunk","loadingImages","map","async","rawId","substring","blobImage","getBlobImageAsync","URL","createObjectURL","results","Promise","allSettled","imagesLoaded","filter","p","status","push","hasEwattchData","__decorate","lazyInject","WiwService","injectTypes","LocalizerService","Component","components","VoDatePicker","component","dataContext","assetItem","asset","assetItemId","comment","getChildren","props","playerContext","openAsset","FolderWithCommentDialog","folderId","findAssetFileFromAssetFolderId","sort","a","b","localeCompare","subFolders","VueMarkdown","SelectingTimes","mixins","PickerButton","extend","ampm","Boolean","ampmReadonly","disabled","hour","Number","minute","second","period","type","String","validator","readonly","useSeconds","selecting","methods","genTime","displayedHour","pad","displayedMinute","titleContent","genPickerButton","Hour","Minute","displayedSecond","Second","class","genAmPm","$vuetify","lang","t","h","children","Colorable","Themeable","allowedValues","Function","double","default","val","max","required","min","scrollable","rotate","step","inputValue","isDragging","valueOnMouseDown","valueOnMouseUp","computed","count","degreesPerUnit","roundCount","degrees","Math","PI","displayedValue","innerRadiusScale","watch","wheel","e","preventDefault","delta","sign","deltaY","isAllowed","update","isInner","handScale","genValues","color","setBackgroundColor","style","getTransform","domProps","innerHTML","genHand","scale","angle","transform","x","y","getPosition","left","top","rotateRadians","sin","cos","onMouseDown","onDragMove","onMouseUp","stopPropagation","$emit","$refs","clock","width","getBoundingClientRect","innerWidth","innerClock","clientX","clientY","touches","center","coords","handAngle","round","insideClick","euclidean","checksCount","ceil","angleToValue","setMouseDownValue","p0","p1","dx","dy","sqrt","atan2","abs","themeClasses","undefined","mousedown","mouseup","mouseleave","touchstart","touchend","mousemove","touchmove","rangeHours24","createRange","rangeHours12am","rangeHours12pm","v","range60","selectingNames","Picker","activePicker","allowedHours","allowedMinutes","allowedSeconds","includes","ampmInTitle","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","selectingHour","get","set","selectingMinute","selectingSecond","isAllowedHourCb","cb","minHour","split","maxHour","isAllowedMinuteCb","isHourAllowed","minMinute","maxMinute","minTime","maxTime","time","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","mounted","setInputData","$on","setPeriod","genValue","emitValue","emitPicker","setPicker","picker","newHour","firstAllowed","getHours","getMinutes","getSeconds","trim","toLowerCase","match","convert12to24","parseInt","convert24to12","onInput","onChange","emitChange","allowedFn","range","first","find","genClock","VTimePickerClock","dark","light","size","fullWidth","landscape","input","change","genClockAmPm","setTextColor","genPickerBody","genPickerTitle","VTimePickerTitle","slot","genPicker","title","originator","VSelect","priorities","priority","prestationTypes","minDate","VMenu","formatTime","currentDate","isFormTimeOpen","VTimePicker","onCancel","onOk","isOkBusy","canConfirm","OranoCreateDPDialog","now","DPPriorities","DPPrestationTypes","newDP","_ventixService","createDPAsync","_dataContext","ecode","result","console","log","oneDay","getISODate","timeZone","getISOTime","offset","utcOffset","offsetString","toString","padStart","getRgfUri","equipment","unite_fonctionnelle_avec_chaine","designation","groupeEquipementPrincipal","groupeEquipementSecondaire","dpHeaders","demandePrestations","_onOpenNewDemandePrestationAsync","WoReqNumber","code","WoTskPriority","JobType","OranoEquipmentDialog","site","id_equipement_revision","_VentixService","getRgfAsync","getDPsAsync","dataContextCreateDemand","dialogResult","_dialogService","openAsync","_appContext","settings","dialogs","medium","height","auto","DialogResult","Object","assign","WoReqDateEnter","WoReqNeedDate","WoReqTimeEnter","WoReqNeedTime","groupe_equipements","ge","est_principal","allowedGroups","some","g","type_groupe","injectTypesApi","AppContext","uriPrs","OranoPrsDialog","urlJoin","baseUriPrs","workshopName","localName","replace","buttons","smartObject","dataSource","tagName","inspectionManagment","VIcon","apmTml","_openEditSmartObjectDialogAsync","baseTranslationPath","VoSmartObjectDetailsDialog","DialogButton","copyOfSmartObject","cloneDeep","VoAddOrEditSmartObjectDialog","projectId","currentSmartObject","large","displayName","VTooltip","goToPreviousItem","itemsSource","previousItemIndex","nameWithoutExtension","selectedIndex","goToNextItem","nextItemIndex","selectedTemplate","templates","selectedTemplateIndex","canRender","selectedItem","template","_b","guid","tag","VBtnToggle","alternative","icon","VoDiaporamaDialog","fileType","FileType","VoDiaporamaDialog_1","contentTemplateTypes","XViewFlat","XView360","XMediaPlayer","XOfficeViewer","VoPdfViewer","window","addEventListener","_onKeyUp","beforeDestroy","removeEventListener","_onDataContextChanged","indexOf","nextIndex","nbItems","previousIndex","lastIndex","selectedFile","isSymlink","target","extension","_onSelectedIndexChanged","_newValue","select","contentTemplates","c","attributes","_driveService","getFileInfo","token","then","fileInfo","dialog","file","configuration","ConfigurationBuilder","_uriService","getAbsoluteUri","getImageUrl","codeCulture","getPanoramaMobileUrl","panoramaLevel","ratio","source","links","video","preview","showControls","muted","_file","url","download","isStandalone","pdfLoader","_httpClient","getAsync","Headers","arrayBuffer","fileName","getPdfUrl","Watch","immediate","HttpClient","DriveService","VoIFrameDialog","PointCloudBehavior","Behavior","constructor","onPointerPickedAsync","localizerService","super","_measures","_actions","_onPointerPickedAsync","_pointCloudMeasureRemovedFunc","o","_onPointCloudMeasureRemoved","onAttached","_pointCloudScene","associatedObject","addNewScene","_registerEvents","_addContextMenuItems","contextMenu","activeCamera","camera","autoClear","registerBeforeRender","_onUpdateScene","_counterMeasure","onDetaching","UIElement","forEach","m","dispose","splice","_unRegisterEvents","_removeContextMenuItems","NotifyCollectionChangedEventArgs","actionManager","rendererScene","registerAction","ExecuteCodeAction","ActionManager","_showContextMenu","close","PredicateCondition","isOpen","trigger","parameter","_tryCancelCurrentMeasure","unregisterAction","_contextMenuItems","from","addMenuItems","buttonType","localize","_translationBasePath","background","Color3","foreground","isVisible","pickMeasureButtonStart","pickMeasureButtonEnd","pickingMeasure","_pick2DMeasureAsync","openAt","onPointerClickObservable","add","removeMenuItems","_switchContextMenuButtons","isEndVisible","_currentMeasure","pointCount","showAt","pointerX","pointerY","_removeMeasure","deletable","index","removed","canAddPoint","NotifyCollectionChangedAction","pickingX","pickingY","pickInfo","pick","hit","sphericalCoords","MathHelper","cartesianCoords","_createMeasureIfNotExist","addPoint","pickedPoint","hideGhostLine","counter","line","LineMeasure","startPointColor","endPointColor","textColor","Color4","backgroundTextColor","formatText","localizedKey","params","isNaN","toFixed","onPointerObservable","showGhostLineAt","_","remove","oldItems","measures","scenes","s","metadata","isRenderer","SpecificationCollection","EventDispatcher","specification","_specifications","_updateDispatcher","dispatch","clear","specifications","onUpdate","toEvent","PanoramaConfiguration","getHotspots","_getHotspots","hotspots","PlayerContext","player","appContext","uriService","dialogService","iconProvider","smartObjectService","project","sender","_onUpdateFilters","Map","_player","currentProjet","_iconProvider","_smartObjectService","hotspotsFilters","subscribe","_onUpdateFiltersHandler","getDefaultPanoramaVersion","panoramaGroup","currentPanorama","goToPanorama","panoramaOrAssetItemId","startOrientation","fov","panoramas","AssetPanoramaGroup","isNumber","isString","isRegex","startsWith","endsWith","regex","RegExp","test","error","_raisePanoramaNotFound","destinationVersion","orientation","CoordinatesHelper","_loadPanorama","loadNavigation","navigation","currentNavigation","goToPanoramaVersion","AssetPanoramaVersion","flatMap","apv","panorama","viewerConfiguration","args","maps","FileMap","findIndex","link","assetItemLinkedId","parentId","currentMap","buildProjectConfiguration","coordinates","onLoadedFunctionToParse","events","onLoaded","parent","onLoadedFunction","parseFunction","assetId","startAssetId","findAssetFileFromAssetId","findSmartObject","AssetFile","AssetItemType","assetItems","assetFile","validatedToken","SmartObjectDto","openSmartObjectDetailsDialogAsync","openFolderWithComment","_stopAudio","currentMediaPlaying","stop","playAudio","currentTime","getAttribute","uri","UrlHelper","Audio","setAttribute","play","bind","openPopup","w","inNewWindow","dualScreenLeft","screenLeft","screenX","dualScreenTop","screenTop","screenY","document","documentElement","clientWidth","screen","innerHeight","clientHeight","newWindow","open","focus","createMail","recipient","cc","subject","body","bodyEncoded","encodeURIComponent","subjectEncoded","mailTo","location","href","eplumeElement","wiwInputId","postMessage","JSON","stringify","entityId","_getParentOrigin","err","smartObjectDto","getObjectAsync","openOranoEquipement","openOranoPrs","openScanEdit","rfo","$el","dispatchEvent","CustomEvent","detail","findPanoramaFileFromAssetId","assets","smartObjects","includeSubFolder","filterRecursive","locationAreDistinct","parentOrigin","referrer","origin","currentLocation","ancestorOrigins","groupHotspots","parseEventIfExists","hotspot","onclickCallback","onClick","onclick","_aggregatedFilter","isSatisfiedBy","hs","makeLocalHotspot","renderType","RenderType","getVideoUrl","getPanoramaUrl","hotspotsFunc","getHotposts","MaxLevel","level","Url","Fov","Levels","levelGenerator","maxLevel","constantTileSize","pow","sizeOfImage","ImageWidth","ImageHeight","TileSize","func","literalFunction","_functionMap","reduce","and","VoPlayer","_pointCloudBehavior","_onConfigurationChanged","_onPlayerErrorRaised","createElement","context","uiElement","layout","_uiElementToVNode","$scopedSlots","serviceProvider","datasources","datasource","Vue","onProjectPropertyChanged","VoPlayer_1","createDataContext","parse","onLoadedEventString","onLoadedEvent","_createLoadedEventFromViewState","loadFirstPanorama","loadFirstNavigation","viewState","startPanoramaGroupName","startPanoramaId","event","ds","of","isArray","navigationSource","panoramaSource","obj","_currentPlayer","isPanoramaConfiguration","currentOrientation","isPanoramaHasPointCloud","_exploreService","scanExistAsync","detach","Viewer360","attach","sphericalCoordinates","readScanAtAsync","theta","phi","typeOfComponent","getComponentFromType","configurationElement","prototype","propKey","propValue","bindingPath","path","bindingMode","mode","bindingConverterName","converter","bindingConverter","PlayerConverter","BindingMode","propsOfPrototype","options","$props","record","Prop","ExploreService","VoSearchBox","VoPointCloudMeasure"],"sourceRoot":""}