{"version":3,"sources":["webpack:///./src/components/devices/ApplianceList.vue?5e2d","webpack:///./src/components/devices/ApplianceList.vue?af67","webpack:///./src/components/devices/ApplianceList.vue?76f0","webpack:///./src/components/devices/ApplianceList.vue","webpack:///./src/components/OpsLinkCameraImport.vue?b788","webpack:///./src/components/devices/ApplianceList.vue?8ea3","webpack:///./src/types/sv-data/devices/Constants.ts","webpack:///./src/components/OpsLinkCameraImport.vue?bf88","webpack:///./src/components/OpsLinkCameraImport.vue?e358","webpack:///./src/components/OpsLinkCameraImport.vue?b735","webpack:///./src/components/OpsLinkCameraImport.vue?ba99","webpack:///./src/components/OpsLinkCameraImport.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","applianceList","readonly","scopedSlots","_u","key","fn","option","class","isOnline","_v","_s","title","staticStyle","_e","model","value","callback","$$v","selectedAppliance","expression","staticRenderFns","GenericTableStore","mounted","getApplianceList","updateFromValue","valueChanged","updateAppliance","$emit","applianceId","find","a","Getter","type","Boolean","default","deep","ApplianceList","components","VuePerfectScrollbar","component","Constants","DEFAULT_CAMERA_SETTINGS_META","on","onOpen","close","isAdding","totalAdded","totalToAdd","canAdd","availableOpsLinks","length","totalDevicesToAdd","id","primaryGroupId","calculateTableHeight","_l","opsLink","opsLinkIndex","devices","$event","loadOpsLink","device","deviceIndex","cameraStreams","getRowCountForOpsLink","host","username","loadOnvifDeviceConfiguration","isEditingCreds","$set","cancelSetDevicePassword","tempUsername","password","tempPassword","setDevicePassword","cameraStream","index","isLoading","streamInfo","port","uriPath","encoding","width","height","cameraName","cameraStreamAddedToArea","areaNode","handleCameraStreamGroupChange","areaWarnings","slot","add","Session","availableServers","deviceServiceAddress","getDeviceServiceAddress","getUserTenantGroupId","getServers","data","map","x","result","groupId","DefaultInputNumber","CameraDeviceType","DefaultCameraSettings","RtspServerType","serverId","existingServer","s","groupID","serverID","addServer","undefined","serverTypeID","extraValue","newDevice","deviceTypeId","input1","settingsMeta","addDevice","opsLinkConnectionErrorOptions","text","duration","componentContext","updateSession","resourceId","DeviceServiceSession","authSession","getSession","netDetectEndpoint","encodeURI","xhr","XMLHttpRequest","open","onload","status","JSON","parse","response","forEach","d","ProbeMatches","RTSP","isRTSPOnly","deviceType","deviceId","rtspCameraStream","isEditing","push","Host","$notify","onerror","send","rtspPort","getConfigEndpoint","configResult","Name","Cameras","c","widthFeature","Features","f","parseInt","Value","heightFeature","encodingFeature","canUseRTSPFeature","rtspUriFeature","rtspUrl","split","urlPath","ExtraValue","statusText","includes","total","hasCamerasToAdd","filter","cs","ol","document","body","clientHeight","deviceUsername","$nextTick","Action","OpsLinkCameraImport","AreaTreeSelect"],"mappings":"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","file":"js/chunk-c58e177c.36e281bf.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-select3',{staticClass:\"dark\",attrs:{\"index\":\"applianceId\",\"options\":_vm.applianceList,\"label\":\"title\",\"multiple\":false,\"placeholder\":\"Select an Ops Link\",\"searchable\":true,\"clearable\":true,\"appendToBody\":\"\",\"disabled\":_vm.readonly},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [_c('div',{class:option.isOnline ? 'pip-on' : 'pip-off'}),_c('span',[_vm._v(_vm._s(option.title))])]}},{key:\"selected-option\",fn:function(option){return [(option.title)?_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('span',[_vm._v(_vm._s(option.title))]),_c('div',{class:option.isOnline ? 'pip-on' : 'pip-off'})]):_vm._e()]}}]),model:{value:(_vm.selectedAppliance),callback:function ($$v) {_vm.selectedAppliance=$$v},expression:\"selectedAppliance\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\r\nimport { namespace } from \"vuex-class\";\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\";\r\nimport vselect3 from \"vselect3\";\r\nimport api from \"@/services/api.service\";\r\nimport SelectedAppliance from \"@/types/sv-data/appliances/SelectedAppliance\";\r\n\r\nconst GenericTableStore = namespace(\"GenericTable\");\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\tVuePerfectScrollbar: VuePerfectScrollbar,\r\n\t\t\"v-select3\": vselect3\r\n\t}\r\n})\r\nexport default class ApplianceList extends Vue {\r\n\t$refs!: {};\r\n\t@GenericTableStore.Getter getModalRow: any;\r\n\r\n\t@Prop({type:Boolean, default: false})\r\n\tprivate readonly: boolean;\r\n\r\n\t@Prop()\r\n\tpublic value: any;\r\n\tpublic applianceList: SelectedAppliance[] = [];\r\n\tpublic selectedAppliance: SelectedAppliance = null;\r\n\r\n\tpublic async mounted() {\r\n\t\tthis.applianceList = await api.getApplianceList();\r\n\t\tif (this.value) {\r\n\t\t\tthis.updateFromValue();\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"value\")\r\n\tvalueChanged(value: string) {\r\n\t\tthis.updateFromValue();\r\n\t}\r\n\r\n\t@Watch(\"selectedAppliance\", { deep: true })\r\n\tpublic updateAppliance(selectedAppliance): void {\r\n\t\tif (selectedAppliance) {\r\n\t\t\tthis.$emit(\"input\", selectedAppliance.applianceId);\r\n\t\t} else {\r\n\t\t\tthis.$emit(\"input\", null);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tprivate async updateFromValue() {\r\n\t\tthis.selectedAppliance = this.applianceList.find(a => a.applianceId == this.value);\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplianceList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplianceList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ApplianceList.vue?vue&type=template&id=e488cf66&scoped=true\"\nimport script from \"./ApplianceList.vue?vue&type=script&lang=ts\"\nexport * from \"./ApplianceList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ApplianceList.vue?vue&type=style&index=0&id=e488cf66&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e488cf66\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OpsLinkCameraImport.vue?vue&type=style&index=0&id=260c9a06&prod&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplianceList.vue?vue&type=style&index=0&id=e488cf66&prod&scoped=true&lang=scss\"","export const Constants = {\r\n\tDEFAULT_CAMERA_SETTINGS_META: \"Lowest0DefaultDefault\"\r\n} as const;\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OpsLinkCameraImport.vue?vue&type=style&index=1&id=260c9a06&prod&lang=scss\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-modal',{attrs:{\"visible\":_vm.value,\"size\":\"lg\",\"dialog-class\":\"full-page-modal\",\"title\":\"Ops Link Camera Detection\"},on:{\"show\":_vm.onOpen,\"close\":_vm.close,\"hidden\":_vm.close}},[(_vm.isAdding || _vm.totalAdded > 0)?_c('b-progress',{staticClass:\"mb-3\",attrs:{\"value\":_vm.totalAdded,\"max\":_vm.totalToAdd,\"variant\":\"success\",\"height\":\"20px\",\"striped\":\"\",\"animated\":_vm.totalToAdd < _vm.totalAdded,\"show-progress\":\"\"}},[_c('b-progress-bar',{attrs:{\"value\":_vm.totalAdded}},[(_vm.totalAdded === _vm.totalToAdd)?_c('span',[_vm._v(\"Successfully added \"),_c('strong',[_vm._v(_vm._s(_vm.totalAdded))]),_vm._v(\" \"+_vm._s(_vm.totalAdded > 1 ? 'cameras' : 'camera')+\".\")]):_vm._e(),(_vm.totalAdded < _vm.totalToAdd)?_c('span',[_vm._v(\"Adding camera \"),_c('strong',[_vm._v(_vm._s(_vm.totalAdded + 1)+\" of \"+_vm._s(_vm.totalToAdd))]),_vm._v(\".\")]):_vm._e()])],1):_vm._e(),_c('div',{staticClass:\"intro-message\"},[_c('div',{staticClass:\"row\"},[_c('div',{class:_vm.canAdd ? 'col-4' : 'col-9'},[_c('p',[_vm._v(\" Detect cameras using your Ops Link device\"+_vm._s(_vm.availableOpsLinks.length > 1 ? 's' : '')+\" and assign them to an Area. \")]),_c('p',[_vm._v(\" Click on the \"),_c('i',{staticClass:\"fa fa-sync\"}),_vm._v(\" icon to load device connections. \")])]),(_vm.canAdd)?_c('div',{staticClass:\"col-5\"},[_c('b-alert',{staticClass:\"subscription-info-alert\",attrs:{\"show\":_vm.canAdd,\"variant\":\"primary\"}},[_vm._v(\" Adding \"+_vm._s(_vm.totalDevicesToAdd() > 1 ? 'these' : 'this')+\" camera\"+_vm._s(_vm.totalDevicesToAdd() > 1 ? 's' : '')+\" will increase your camera subscription usage by \"+_vm._s(_vm.totalDevicesToAdd())+\". \")])],1):_vm._e(),_c('div',{staticClass:\"primary-area-select\"},[_vm._v(\" Adding to area: \"),_c('area-tree-select',{attrs:{\"reduce\":function (a) { return a.id; },\"appendToBody\":\"\"},model:{value:(_vm.primaryGroupId),callback:function ($$v) {_vm.primaryGroupId=$$v},expression:\"primaryGroupId\"}})],1)])]),_c('b-table-simple',{attrs:{\"hover\":\"\",\"sticky-header\":_vm.calculateTableHeight(),\"responsive\":true,\"no-border-collapse\":true}},[_c('b-thead',[_c('b-tr',{staticClass:\"table-header\"},[_c('b-th',[_vm._v(\"Ops Link\")]),_c('b-th',[_vm._v(\"Device Address\")]),_c('b-th',[_vm._v(\"Device Type\")]),_c('b-th',[_vm._v(\"Credentials\")]),_c('b-th',[_vm._v(\"Camera Stream Information\")]),_c('b-th',[_vm._v(\"Camera Name\")]),_c('b-th',[_vm._v(\"Area\")])],1)],1),(_vm.isLoading)?_c('div',[_vm._v(\" Loading... \"),_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_c('b-tbody',[_vm._l((_vm.availableOpsLinks),function(opsLink,opsLinkIndex){return [(opsLink.isLoading)?_c('b-tr',{key:opsLinkIndex},[_c('b-td',[_vm._v(\" \"+_vm._s(opsLink.title)+\" \")]),_c('b-td',[_vm._v(\" Loading... \"),_c('i',{staticClass:\"fas fa-spinner fa-spin cell-icon\"})]),_c('b-td'),_c('b-td'),_c('b-td'),_c('b-td'),_c('b-td')],1):(opsLink.devices.length === 0)?_c('b-tr',{key:opsLink.id},[_c('b-td',[_vm._v(\" \"+_vm._s(opsLink.title)+\" \"),(!opsLink.isOnline)?_c('i',{staticClass:\"fa fa-signal-slash pl-2\",attrs:{\"title\":(\"Ops Link '\" + (opsLink.title) + \"' is offline\")}}):_c('i',{staticClass:\"fa fa-sync hover-icon pl-2\",attrs:{\"title\":\"Load connected cameras\"},on:{\"click\":function($event){return _vm.loadOpsLink(opsLink)}}})]),_c('b-td'),_c('b-td'),_c('b-td'),_c('b-td'),_c('b-td'),_c('b-td')],1):_vm._l((opsLink.devices),function(device,deviceIndex){return [(device.cameraStreams.length === 0)?_c('b-tr',{key:deviceIndex},[(deviceIndex === 0)?_c('b-td',{staticClass:\"ops-link-title-cell\",attrs:{\"rowspan\":_vm.getRowCountForOpsLink(opsLink)}},[_vm._v(\" \"+_vm._s(opsLink.title)+\" \"),_c('i',{staticClass:\"fa fa-sync hover-icon pl-2\",attrs:{\"title\":\"Load connected cameras\"},on:{\"click\":function($event){return _vm.loadOpsLink(opsLink)}}})]):_vm._e(),_c('b-td',[_vm._v(\" \"+_vm._s(device.host)+\" \"),(device.type === 'ONVIF' && device.username !== '')?_c('i',{staticClass:\"fa fa-sync hover-icon pl-2\",attrs:{\"title\":\"Load camera stream information\"},on:{\"click\":function($event){return _vm.loadOnvifDeviceConfiguration(opsLink, device)}}}):_vm._e()]),_c('b-td',[_vm._v(\" \"+_vm._s(device.type)+\" \")]),_c('b-td',[(!device.isEditingCreds)?[(device.username !== '')?_c('i',{staticClass:\"fa fa-check-circle cell-icon p-2\",attrs:{\"title\":\"Credentials set\"},on:{\"click\":function($event){device.isEditingCreds = true}}}):_c('i',{staticClass:\"fa fa-exclamation-triangle cell-icon p-2 warning-color\",attrs:{\"title\":\"Please provide credentials for this camera\"},on:{\"click\":function($event){device.isEditingCreds = true}}}),_c('i',{staticClass:\"fa fa-edit hover-icon cell-icon\",attrs:{\"title\":\"Edit credentials\"},on:{\"click\":function($event){device.isEditingCreds = true}}})]:_vm._e(),(device.isEditingCreds)?[_c('b-form-group',[_c('b-form-input',{attrs:{\"placeholder\":\"Camera username\"},model:{value:(device.tempUsername),callback:function ($$v) {_vm.$set(device, \"tempUsername\", $$v)},expression:\"device.tempUsername\"}}),_c('b-form-input',{attrs:{\"type\":\"password\",\"placeholder\":\"Camera password\"},model:{value:(device.tempPassword),callback:function ($$v) {_vm.$set(device, \"tempPassword\", $$v)},expression:\"device.tempPassword\"}}),_c('div',{staticClass:\"credentials-container p-2\"},[_c('b-button',{attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.cancelSetDevicePassword(device)}}},[_vm._v(\"Cancel\")]),_c('b-button',{staticClass:\"ml-2\",attrs:{\"variant\":\"primary\",\"disabled\":device.username === device.tempUsername && device.password === device.tempPassword,\"size\":\"sm\"},on:{\"click\":function($event){return _vm.setDevicePassword(opsLink, device)}}},[_vm._v(\" Confirm \")])],1)],1)]:_vm._e()],2),_c('b-td',[(device.isLoading)?[_vm._v(\" Loading... \"),_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]:(device.username === '')?[_vm._v(\" Please provide the device credentials to load stream information. \")]:[_vm._v(\" Failed to retrieve stream information. Check device credentials and try again. \")]],2),_c('b-td'),_c('b-td')],1):_vm._l((device.cameraStreams),function(cameraStream,index){return _c('b-tr',{key:((opsLink.title) + \".\" + deviceIndex + \".\" + index)},[(index === 0 && deviceIndex === 0)?_c('b-td',{staticClass:\"ops-link-title-cell\",attrs:{\"rowspan\":_vm.getRowCountForOpsLink(opsLink)}},[_vm._v(\" \"+_vm._s(opsLink.title)+\" \"),_c('i',{staticClass:\"fa fa-sync hover-icon pl-2\",attrs:{\"title\":\"Load connected devices\"},on:{\"click\":function($event){return _vm.loadOpsLink(opsLink)}}})]):_vm._e(),(index === 0)?[_c('b-td',{attrs:{\"rowspan\":device.cameraStreams.length}},[_vm._v(\" \"+_vm._s(device.host)+\" \"),(device.type === 'ONVIF' && device.username !== '')?_c('i',{staticClass:\"fa fa-sync hover-icon pl-2\",attrs:{\"title\":\"Load camera stream information\"},on:{\"click\":function($event){return _vm.loadOnvifDeviceConfiguration(opsLink, device)}}}):_vm._e()]),_c('b-td',{attrs:{\"rowspan\":device.cameraStreams.length}},[_vm._v(\" \"+_vm._s(device.type)+\" \")]),_c('b-td',{attrs:{\"rowspan\":device.cameraStreams.length}},[(device.username === '' && !device.isEditingCreds)?_c('i',{staticClass:\"fa fa-exclamation-triangle cell-icon warning-color p-2\",attrs:{\"title\":\"Please provide credentials for this camera\"},on:{\"click\":function($event){device.isEditingCreds = true}}}):_vm._e(),(device.username === '' && !device.isEditingCreds)?_c('i',{staticClass:\"fa fa-edit hover-icon cell-icon\",attrs:{\"title\":\"Edit credentials\"},on:{\"click\":function($event){device.isEditingCreds = true}}}):(!device.isEditingCreds)?[_c('i',{staticClass:\"fa fa-check-circle cell-icon p-2\",attrs:{\"title\":\"Credentials set\"},on:{\"click\":function($event){device.isEditingCreds = true}}}),_c('i',{staticClass:\"fa fa-edit hover-icon cell-icon\",attrs:{\"title\":\"Click to update\"},on:{\"click\":function($event){device.isEditingCreds = true}}})]:_vm._e(),(device.isEditingCreds)?_c('b-form-group',[_c('b-form-input',{attrs:{\"placeholder\":\"Camera username\"},model:{value:(device.tempUsername),callback:function ($$v) {_vm.$set(device, \"tempUsername\", $$v)},expression:\"device.tempUsername\"}}),_c('b-form-input',{attrs:{\"type\":\"password\",\"placeholder\":\"Camera password\"},model:{value:(device.tempPassword),callback:function ($$v) {_vm.$set(device, \"tempPassword\", $$v)},expression:\"device.tempPassword\"}}),_c('div',{staticClass:\"credentials-container p-2\"},[_c('b-button',{attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.cancelSetDevicePassword(device)}}},[_vm._v(\"Cancel\")]),_c('b-button',{staticClass:\"ml-2\",attrs:{\"variant\":\"primary\",\"disabled\":device.username === device.tempUsername && device.password === device.tempPassword,\"size\":\"sm\"},on:{\"click\":function($event){return _vm.setDevicePassword(opsLink, device)}}},[_vm._v(\" Confirm \")])],1)],1):_vm._e()],2)]:_vm._e(),_c('b-td',{staticClass:\"stream-info-column\"},[(device.isLoading && index === 0)?[_vm._v(\" Loading... \"),_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]:(device.type === 'RTSP')?_c('div',{staticClass:\"rtsp-stream-info-container\"},[_c('div',{staticClass:\"col-11\"},[_c('div',{staticClass:\"row\"},[_c('b-form-input',{attrs:{\"placeholder\":\"RTSP Uri path\"},model:{value:(cameraStream.streamInfo.uriPath),callback:function ($$v) {_vm.$set(cameraStream.streamInfo, \"uriPath\", $$v)},expression:\"cameraStream.streamInfo.uriPath\"}}),_c('span',{staticStyle:{\"word-break\":\"break-word\"}},[_vm._v(\"Full RTSP Uri:\"),_c('a',{staticClass:\"pl-1\"},[_vm._v(\"rtsp://\"+_vm._s(device.host)+\":\"+_vm._s(cameraStream.streamInfo.port)+\"/\"+_vm._s(cameraStream.streamInfo.uriPath))])])],1)])]):_c('div',{staticClass:\"onvif-stream-info-container\"},[_vm._v(\" \"+_vm._s(cameraStream.streamInfo.title)+\" \"),_c('br'),_vm._v(\" \"+_vm._s(cameraStream.streamInfo.encoding)+\" \"),(cameraStream.streamInfo.width > 0 && cameraStream.streamInfo.height > 0)?[_vm._v(\" \"+_vm._s(cameraStream.streamInfo.width)+\"x\"+_vm._s(cameraStream.streamInfo.height)+\" \")]:_vm._e()],2)],2),_c('b-td',[_c('b-form-input',{attrs:{\"required\":\"\",\"placeholder\":\"Provide a camera name...\"},model:{value:(cameraStream.streamInfo.cameraName),callback:function ($$v) {_vm.$set(cameraStream.streamInfo, \"cameraName\", $$v)},expression:\"cameraStream.streamInfo.cameraName\"}})],1),_c('b-td',[(!device.isLoading && device.username !== '' && cameraStream.streamInfo.cameraName !== '')?[_c('b-form-checkbox',{staticClass:\"pl-5 pt-2 pb-2\",on:{\"change\":function($event){return _vm.cameraStreamAddedToArea(cameraStream)}},model:{value:(cameraStream.isAdding),callback:function ($$v) {_vm.$set(cameraStream, \"isAdding\", $$v)},expression:\"cameraStream.isAdding\"}},[_vm._v(\" Add to area? \")]),(cameraStream.isAdding)?_c('area-tree-select',{staticClass:\"pl-2 pb-2\",attrs:{\"load-groups-before-mount\":false,\"reduce\":function (areaNode) { return areaNode.id; }},on:{\"input\":function($event){return _vm.handleCameraStreamGroupChange(cameraStream)}},model:{value:(cameraStream.groupId),callback:function ($$v) {_vm.$set(cameraStream, \"groupId\", $$v)},expression:\"cameraStream.groupId\"}}):_vm._e()]:_vm._e(),(device.username === '' || cameraStream.streamInfo.cameraName === '')?_c('i',{staticClass:\"fa fa-exclamation-triangle cell-icon area-warning-icon\",attrs:{\"title\":_vm.areaWarnings(device.username, cameraStream.streamInfo.cameraName)}}):_vm._e()],2)],2)})]})]})],2)],1),_c('template',{slot:\"modal-footer\"},[_c('b-button',{attrs:{\"variant\":\"secondary\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.totalAdded > 0 ? \"Done\" : \"Cancel\")+\" \")]),_c('b-button',{staticClass:\"ksConfirm\",attrs:{\"variant\":\"primary\",\"disabled\":!_vm.canAdd},on:{\"click\":_vm.add}},[_vm._v(\" Add \")])],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\";\nimport { Getter, namespace } from \"vuex-class\";\nimport { ServerDetails } from \"@/store/devices/types\";\nimport api from \"@/services/api.service\";\nimport { SessionResource } from \"@/store/sessions/types\";\nimport AreaTreeSelect from \"@/components/form/AreaTreeSelect.vue\";\nimport { Constants } from \"@/types/sv-data/devices/Constants\";\n\nexport interface OpsLink {\n\tid: number,\n\tgroupId: number,\n\ttitle: string,\n\tisOnline: boolean,\n\tdevices: OpsLinkDevice [],\n\tisLoading: boolean\n}\n\nexport interface OpsLinkDevice {\n\tid: number,\n\thost: string,\n\ttype: string,\n\tusername: string,\n\ttempUsername: string,\n\tpassword: string,\n\ttempPassword: string,\n\tcameraStreams: OpsCameraStream[],\n\tisEditingCreds: boolean,\n\tisLoading: boolean\n}\n\ninterface OpsCameraStream {\n\tstreamInfo: StreamInfo,\n\tgroupId: number,\n\tisEditing: boolean,\n\tisAdding: boolean\n}\n\ninterface StreamInfo {\n\ttitle: string,\n\tcameraName: string,\n\tencoding: string,\n\twidth: number,\n\theight: number,\n\tport: number,\n\turiPath?: string\n}\n\nconst Eventqueue = namespace(\"eventqueue\");\nconst Session = namespace(\"sessions\");\n\n@Component({\n\tcomponents: {\n\t\t\"area-tree-select\": AreaTreeSelect,\n\t\t\"vue-perfect-scrollbar\": VuePerfectScrollbar,\n\t}\n})\nexport default class OpsLinkCameraImport extends Vue {\n\n\t@Session.Action updateSession: any;\n\t@Session.Getter getSession: any;\n\t@Getter getUserTenantGroupId: number;\n\n\t@Prop() public value: boolean;\n\n\tprivate availableOpsLinks: OpsLink[] = [];\n\tprivate availableServers: ServerDetails[] = [];\n\tprivate deviceServiceAddress: string = \"\";\n\tprivate isLoading: boolean = false;\n\tprivate isAdding: boolean = false;\n\tprivate totalToAdd: number = 0;\n\tprivate totalAdded: number = 0;\n\tprivate primaryGroupId: number = 0;\n\n\tprivate async mounted() {\n\t\tthis.deviceServiceAddress = api.getDeviceServiceAddress();\n\t\tthis.primaryGroupId = this.getUserTenantGroupId;\n\t}\n\n\tprivate async onOpen() {\n\t\tthis.isLoading = true;\n\n\t\tthis.availableServers = (await api.getServers()).data;\n\n\t\tthis.availableOpsLinks = (await api.getApplianceList()).map(x => {\n\t\t\tlet result: OpsLink = {\n\t\t\t\tid: x.applianceId,\n\t\t\t\tgroupId: x.groupId,\n\t\t\t\ttitle: x.title,\n\t\t\t\tisOnline: x.isOnline,\n\t\t\t\tisLoading: false,\n\t\t\t\tdevices: []\n\t\t\t};\n\t\t\treturn result;\n\t\t});\n\n\t\tthis.isLoading = false;\n\n\t\t// if there's only 1 available ops link, start loading it, saves a click.\n\t\tif (this.availableOpsLinks.length === 1 && this.availableOpsLinks[0].isOnline) {\n\t\t\tawait this.loadOpsLink(this.availableOpsLinks[0]);\n\t\t}\n\t}\n\n\tprivate close() {\n\t\tthis.totalAdded = 0;\n\t\tthis.$emit(\"input\", false);\n\t}\n\n\tprivate async add() {\n\t\tconst DefaultInputNumber = 1;\n\t\tconst CameraDeviceType = 1;\n\t\tconst DefaultCameraSettings = Constants.DEFAULT_CAMERA_SETTINGS_META;\n\t\tconst RtspServerType = 542;\n\n\t\tthis.isAdding = true;\n\t\tthis.totalAdded = 0;\n\t\tthis.totalToAdd = this.totalDevicesToAdd();\n\t\tfor (let opsLink of this.availableOpsLinks) {\n\t\t\tfor (let device of opsLink.devices) {\n\t\t\t\tfor (let cameraStream of device.cameraStreams) {\n\t\t\t\t\t// has this stream been mapped to a group?\n\t\t\t\t\tif (cameraStream.groupId === 0) {\n\t\t\t\t\t\t// if not skip.\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet serverId = 0;\n\n\t\t\t\t\t// does a 'server' already exist with this device host, group ID & camera name\n\t\t\t\t\tlet existingServer = this.availableServers.find(s =>\n\t\t\t\t\t\ts.host === device.host &&\n\t\t\t\t\t\ts.groupID === cameraStream.groupId &&\n\t\t\t\t\t\ts.title === cameraStream.streamInfo.cameraName\n\t\t\t\t\t);\n\t\t\t\t\tif (existingServer) {\n\t\t\t\t\t\t// if so use the existing server id.\n\t\t\t\t\t\tserverId = existingServer.serverID;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// if not add it and get the new server id.\n\t\t\t\t\t\tserverId = await api.addServer({\n\t\t\t\t\t\t\tserverID: undefined,\n\t\t\t\t\t\t\tserverTypeID: RtspServerType,\n\t\t\t\t\t\t\tgroupID: cameraStream.groupId,\n\t\t\t\t\t\t\ttitle: cameraStream.streamInfo.cameraName,\n\t\t\t\t\t\t\thost: device.host,\n\t\t\t\t\t\t\tport: cameraStream.streamInfo.port,\n\t\t\t\t\t\t\tusername: device.username,\n\t\t\t\t\t\t\tpassword: device.password,\n\t\t\t\t\t\t\textraValue: cameraStream.streamInfo.uriPath,\n\t\t\t\t\t\t\tapplianceId: opsLink.id\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.availableServers = (await api.getServers()).data;\n\t\t\t\t\t}\n\n\t\t\t\t\t// map the camera stream to a new device.\n\t\t\t\t\tlet newDevice = {\n\t\t\t\t\t\tserverID: serverId,\n\t\t\t\t\t\tdeviceTypeId: CameraDeviceType,\n\t\t\t\t\t\tinput1: DefaultInputNumber,\n\t\t\t\t\t\ttitle: cameraStream.streamInfo.cameraName,\n\t\t\t\t\t\tgroupID: cameraStream.groupId,\n\t\t\t\t\t\tsettingsMeta: DefaultCameraSettings\n\t\t\t\t\t};\n\n\t\t\t\t\tawait api.addDevice(newDevice);\n\n\t\t\t\t\tthis.totalAdded += 1;\n\t\t\t\t\tcameraStream.isAdding = false;\n\t\t\t\t\tcameraStream.groupId = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.isAdding = false;\n\t\tthis.$emit(\"import-complete\");\n\t}\n\n\tprivate async loadOpsLink(opsLink: OpsLink) {\n\t\topsLink.isLoading = true;\n\t\topsLink.devices = [];\n\n\t\tlet opsLinkConnectionErrorOptions = {\n\t\t\ttype: \"error\",\n\t\t\ttitle: \"Ops Link Connection issue\",\n\t\t\ttext:\n\t\t\t\t\"Unable to establish secure connection to your Ops Link device - please try again later, or contact support if the problem persists.\",\n\t\t\tduration: 7000\n\t\t};\n\t\tlet componentContext = this;\n\n\t\t// update the session for use with the Device Service and use it\n\t\tawait this.updateSession({ resourceId: SessionResource.DeviceServiceSession });\n\t\tlet authSession = this.getSession(SessionResource.DeviceServiceSession);\n\n\t\tlet netDetectEndpoint = encodeURI(`${this.deviceServiceAddress}/devices/netdetect?applianceId=${opsLink.id}&auth=${authSession}`);\n\t\tlet xhr = new XMLHttpRequest();\n\t\txhr.open(\"GET\", netDetectEndpoint);\n\t\txhr.onload = function() {\n\t\t\tif (this.status == 200) {\n\t\t\t\tlet devices = JSON.parse(xhr.response);\n\t\t\t\tconst devicePort = 554;\n\t\t\t\tdevices.forEach(d => {\n\t\t\t\t\tif (d.ProbeMatches || d.RTSP) {\n\t\t\t\t\t\tlet isRTSPOnly = d.RTSP && !d.ProbeMatches;\n\t\t\t\t\t\tlet deviceType = isRTSPOnly ? \"RTSP\" : \"ONVIF\";\n\t\t\t\t\t\tlet deviceId = opsLink.devices.length + 1;\n\t\t\t\t\t\tlet rtspCameraStream: OpsCameraStream = {\n\t\t\t\t\t\t\tgroupId: 0,\n\t\t\t\t\t\t\tisEditing: false,\n\t\t\t\t\t\t\tisAdding: false,\n\t\t\t\t\t\t\tstreamInfo: {\n\t\t\t\t\t\t\t\ttitle: \"\",\n\t\t\t\t\t\t\t\tcameraName: ``,\n\t\t\t\t\t\t\t\turiPath: \"\",\n\t\t\t\t\t\t\t\twidth: 0,\n\t\t\t\t\t\t\t\theight: 0,\n\t\t\t\t\t\t\t\tencoding: \"\",\n\t\t\t\t\t\t\t\tport: devicePort\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\topsLink.devices.push({\n\t\t\t\t\t\t\tid: deviceId,\n\t\t\t\t\t\t\thost: d.Host,\n\t\t\t\t\t\t\ttype: deviceType,\n\t\t\t\t\t\t\tusername: \"\",\n\t\t\t\t\t\t\ttempUsername: \"\",\n\t\t\t\t\t\t\tpassword: \"\",\n\t\t\t\t\t\t\ttempPassword: \"\",\n\t\t\t\t\t\t\tcameraStreams: isRTSPOnly ? [ rtspCameraStream ] : [],\n\t\t\t\t\t\t\tisEditingCreds: false,\n\t\t\t\t\t\t\tisLoading: false\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcomponentContext.$notify(opsLinkConnectionErrorOptions);\n\t\t\t}\n\n\t\t\topsLink.isLoading = false;\n\t\t};\n\n\t\txhr.onerror = function() {\n\t\t\tcomponentContext.$notify(opsLinkConnectionErrorOptions);\n\t\t\topsLink.isLoading = false;\n\t\t};\n\t\txhr.send();\n\t}\n\n\tprivate async loadOnvifDeviceConfiguration(opsLink: OpsLink, device: OpsLinkDevice) {\n\t\tconst rtspPort = 80;\n\t\tlet componentContext = this;\n\n\t\tdevice.isLoading = true;\n\t\tdevice.cameraStreams = [];\n\n\t\t// update the session for use with the Device Service and use it\n\t\tawait this.updateSession({ resourceId: SessionResource.DeviceServiceSession });\n\t\tlet authSession = this.getSession(SessionResource.DeviceServiceSession);\n\n\t\tlet getConfigEndpoint = encodeURI(`${this.deviceServiceAddress}/devices/config?` +\n\t\t\t\t\t\t`auth=${authSession}`+\n\t\t\t\t\t\t`&file=Onvif\\\\DevOnvif.dll&type=DevOnvif.OnvifDevice` +\n\t\t\t\t\t\t`&host=${device.host}&port=${rtspPort}` +\n\t\t\t\t\t\t`&user=${device.username}&password=${device.password}` +\n\t\t\t\t\t\t`&applianceId=${opsLink.id}` +\n\t\t\t\t\t\t`&input1=&urlTemplate=&prefValue=&extra=&input2=&deviceExtra=&site=&format=json`);\n\n\t\tconst xhr = new XMLHttpRequest();\n\t\txhr.open(\"GET\", getConfigEndpoint);\n\t\txhr.onload = function() {\n\t\t\tif (this.status == 200) {\n\t\t\t\tlet configResult = JSON.parse(xhr.response)[0];\n\n\t\t\t\tlet deviceTitle = configResult.Name;\n\t\t\t\tconfigResult.Cameras.forEach(c => {\n\t\t\t\t\tlet width = 0;\n\t\t\t\t\tlet widthFeature = c.Features.find(f => f.Name === \"Width\");\n\t\t\t\t\tif (widthFeature) {\n\t\t\t\t\t\twidth = parseInt(widthFeature.Value);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet height = 0;\n\t\t\t\t\tlet heightFeature = c.Features.find(f => f.Name === \"Height\");\n\t\t\t\t\tif (heightFeature) {\n\t\t\t\t\t\theight = parseInt(heightFeature.Value);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet encoding = \"\";\n\t\t\t\t\tlet encodingFeature = c.Features.find(f => f.Name === \"Encoding\");\n\t\t\t\t\tif (encodingFeature) {\n\t\t\t\t\t\tencoding = encodingFeature.Value;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet canUseRTSPFeature = c.Features.find(f => f.Name === \"UriIsVariable\");\n\t\t\t\t\tif (canUseRTSPFeature && canUseRTSPFeature.Value === \"False\") {\n\t\t\t\t\t\tlet rtspUriFeature = c.Features.find(f => f.Name === \"Uri\");\n\t\t\t\t\t\tif (rtspUriFeature) {\n\t\t\t\t\t\t\tlet rtspUrl = rtspUriFeature.Value.split(\"rtsp://\")?.[1];\n\t\t\t\t\t\t\tlet port = rtspUrl?.split(\":\")[1]?.split(\"/\")[0] || 554;\n\t\t\t\t\t\t\tlet urlPath = rtspUrl?.split(/\\/(.*)/)?.[1] || '';\n\n\t\t\t\t\t\t\tdevice.cameraStreams.push({\n\t\t\t\t\t\t\t\tstreamInfo: {\n\t\t\t\t\t\t\t\t\ttitle: c.ExtraValue,\n\t\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t\t\t\tencoding,\n\t\t\t\t\t\t\t\t\tport: parseInt(port),\n\t\t\t\t\t\t\t\t\turiPath: urlPath,\n\t\t\t\t\t\t\t\t\tcameraName: `${deviceTitle} ${c.ExtraValue}`\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tgroupId: 0,\n\t\t\t\t\t\t\t\tisEditing: false,\n\t\t\t\t\t\t\t\tisAdding: false,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdevice.cameraStreams.push({\n\t\t\t\t\t\t\tstreamInfo: {\n\t\t\t\t\t\t\t\ttitle: c.ExtraValue,\n\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t\t\tencoding,\n\t\t\t\t\t\t\t\tcameraName: `${deviceTitle} ${c.ExtraValue}`,\n\t\t\t\t\t\t\t\tport: 554\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgroupId: 0,\n\t\t\t\t\t\t\tisEditing: false,\n\t\t\t\t\t\t\tisAdding: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (xhr.statusText.includes(\"DeviceConfigurationGet()\")) {\n\t\t\t\t\tcomponentContext.$notify({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\ttitle: \"Could not get device configuration\",\n\t\t\t\t\t\ttext:\n\t\t\t\t\t\t\t\"Please check the device credentials and try again, or contact support if the problem persists.\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcomponentContext.$notify({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\ttitle: \"Could not get device configuration\",\n\t\t\t\t\t\ttext:\n\t\t\t\t\t\t\t\"Please try again, or contact support if the problem persists.\"\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tdevice.cameraStreams = [];\n\t\t\t}\n\t\t\tdevice.isLoading = false;\n\t\t};\n\t\txhr.onerror = function() {\n\t\t\tdevice.cameraStreams = [];\n\t\t\tdevice.isLoading = false;\n\t\t\tcomponentContext.$notify({\n\t\t\t\ttype: \"error\",\n\t\t\t\ttitle: \"Could not get device configuration\",\n\t\t\t\ttext:\n\t\t\t\t\t\"Please try again, or contact support if the problem persists.\"\n\t\t\t});\n\t\t};\n\t\txhr.send();\n\t}\n\n\tprivate getRowCountForOpsLink(opsLink: OpsLink): number {\n\t\tlet total = 0;\n\t\topsLink.devices.forEach(d => {\n\t\t\t// if there are no camera streams, increase the row count by 1.\n\t\t\tif (d.cameraStreams.length === 0) {\n\t\t\t\ttotal += 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// if the device type is RTSP increase the row count by 1.\n\t\t\t\tif (d.type === 'RTSP') {\n\t\t\t\t\ttotal += 1;\n\t\t\t\t}\n\t\t\t\t// otherwise increase the row count by the number of camera streams.\n\t\t\t\telse {\n\t\t\t\t\ttotal += d.cameraStreams.length;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn total;\n\t}\n\n\tprivate cancelSetDevicePassword(device: OpsLinkDevice) {\n\t\tdevice.tempUsername = device.username;\n\t\tdevice.tempPassword = device.password;\n\t\tdevice.isEditingCreds = false;\n\t}\n\n\tprivate setDevicePassword(opsLink: OpsLink, device: OpsLinkDevice) {\n\t\tdevice.username = device.tempUsername;\n\t\tdevice.password = device.tempPassword;\n\t\tdevice.isEditingCreds = false;\n\t\tif (device.type === \"ONVIF\") {\n\t\t\tthis.loadOnvifDeviceConfiguration(opsLink, device);\n\t\t}\n\t}\n\n\tprivate get canAdd() {\n\t\tif (this.isAdding) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet hasCamerasToAdd = false\n\t\t// if no cameras have been given a name, we can't add.\n\t\tfor (let opsLink of this.availableOpsLinks) {\n\t\t\tfor (let device of opsLink.devices) {\n\t\t\t\tfor (let cameraStream of device.cameraStreams.filter(cs => cs.isAdding && cs.groupId !== 0)) {\n\t\t\t\t\tif (cameraStream.streamInfo.cameraName === '') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\thasCamerasToAdd = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn hasCamerasToAdd;\n\t}\n\n\tprivate totalDevicesToAdd() {\n\t\tlet total = 0;\n\t\tthis.availableOpsLinks.forEach(ol => {\n\t\t\treturn ol.devices.forEach(d => {\n\t\t\t\ttotal += d.cameraStreams.filter(cs => cs.groupId !== 0).length;\n\t\t\t});\n\t\t});\n\t\treturn total;\n\t}\n\n\tprivate calculateTableHeight() {\n\t\tlet result = document.body.clientHeight / 100 * 65;\n\t\treturn `${result}px`;\n\t}\n\n\tprivate areaWarnings(deviceUsername, cameraName) {\n\t\tif (deviceUsername === '' && cameraName === ''){\n\t\t\treturn \"Device credentials and camera name are required.\"\n\t\t}\n\n\t\tif (deviceUsername === '') {\n\t\t\treturn \"Device credentials are required.\"\n\t\t}\n\n\t\tif (cameraName === '') {\n\t\t\treturn \"Camera name is required.\"\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\t/*\n\tMethod to assign the cameraStream with the primary group id as an initial value when add to area checkbox is checked. Set to 0 if unchecked.\n\t*/\n\tprivate async cameraStreamAddedToArea(cameraStream: OpsCameraStream) {\n\t\tif (cameraStream.isAdding) {\n\t\t\tif (!cameraStream.groupId) {\n\t\t\t\t/* Wait for next tick to give the components' value watcher enough time to detect a value change.\n\t\t\t\tIf we happen to set the value back to what it was before being deselected in the same tick, the watcher doesn't detect a change.\n\t\t\t\t*/\n\t\t\t\tawait this.$nextTick();\n\t\t\t}\n\t\t\tcameraStream.groupId = this.primaryGroupId;\n\t\t}\n\t\telse {\n\t\t\tcameraStream.groupId = 0;\n\t\t}\n\t}\n\n\t/*\n\tHelper method invoked when @input is emmitted on the camera stream area tree select.\n\tIf groupID is invalid, use the initial value.\n\t*/\n\tprivate handleCameraStreamGroupChange(cameraStream: OpsCameraStream) {\n\t\t// Deselection sets groupID = null, set to initial.\n\t\tif (!cameraStream.groupId) {\n\t\t\tthis.cameraStreamAddedToArea(cameraStream);\n\t\t}\n\t}\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OpsLinkCameraImport.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OpsLinkCameraImport.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OpsLinkCameraImport.vue?vue&type=template&id=260c9a06&scoped=true\"\nimport script from \"./OpsLinkCameraImport.vue?vue&type=script&lang=ts\"\nexport * from \"./OpsLinkCameraImport.vue?vue&type=script&lang=ts\"\nimport style0 from \"./OpsLinkCameraImport.vue?vue&type=style&index=0&id=260c9a06&prod&scoped=true&lang=scss\"\nimport style1 from \"./OpsLinkCameraImport.vue?vue&type=style&index=1&id=260c9a06&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"260c9a06\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}