{"version":3,"sources":["webpack:///./src/components/Config/DataTable.vue?2102","webpack:///./src/components/Config/DataTable.vue?02d3","webpack:///./src/components/Config/DataTable.vue?f49f","webpack:///./src/components/Config/DataTable.vue","webpack:///./src/components/Controls/Map.vue?d873","webpack:///./src/components/Controls/Map.vue?7191","webpack:///./src/components/Controls/Map.vue?3aa0","webpack:///./src/components/Controls/Map.vue","webpack:///./src/components/Controls/Map.vue?e242","webpack:///./src/components/System/SystemHistory.vue?e1e3","webpack:///./src/components/Config/DataModal.vue?5b9f","webpack:///./src/components/Config/DataModal.vue?60a7","webpack:///./src/components/Config/DataModal.vue?1fd0","webpack:///./src/components/Config/DataModal.vue","webpack:///./src/views/System.vue?88c3","webpack:///./src/components/System/TenantList.vue?fc2a","webpack:///./src/services/api/api_System.ts","webpack:///./src/components/System/TenantFeatures.vue?f1cf","webpack:///./src/components/System/TenantFeatures.vue?b5f8","webpack:///./src/components/System/TenantFeatures.vue?4265","webpack:///./src/components/System/TenantFeatures.vue","webpack:///./src/components/System/TenantList.vue?192d","webpack:///./src/components/System/TenantList.vue?b33b","webpack:///./src/components/System/TenantList.vue","webpack:///./src/components/System/SystemUsers.vue?4d28","webpack:///./src/components/System/SystemUsers.vue?0c8f","webpack:///./src/components/System/SystemUsers.vue?8c9d","webpack:///./src/components/System/SystemUsers.vue","webpack:///./src/components/System/SystemHistory.vue?74f3","webpack:///./src/components/System/SystemHistory.vue?f829","webpack:///./src/views/System.vue?2d2e","webpack:///./src/components/System/SystemHistory.vue?9cee","webpack:///./src/components/System/SystemHistory.vue","webpack:///./src/views/System.vue?f544","webpack:///./src/views/System.vue","webpack:///./src/components/System/SystemUsers.vue?5e48"],"names":["render","_vm","this","_h","$createElement","_c","_self","directives","name","rawName","value","hide","expression","staticClass","class","staticStyle","_t","_v","_s","headerTitle","attrs","helpText","_e","dataCyType","on","createNew","dataTypeHeader","dataType","model","callback","$$v","filter","$event","items","rowClick","allowRowClick","tableColumns","isBusy","noLocalSorting","rowClass","sortChanged","scopedSlots","_u","_l","boolColumn","key","columnTemplateName","fn","data","column","item","ref","columns","modalSize","deleteDetails","canDeleteItem","canConfirmDelete","saveItem","deleteItem","slotProps","details","staticRenderFns","DataTable","undefined","onlyEmitOnRowClick","$emit","loadItem","cloneDeep","itemClone","$refs","dataModal","open","c","inTable","hasTemplate","values","newItem","createNewItem","context","type","replace","toLowerCase","Vue","__decorate","Prop","String","default","Boolean","Emit","Component","components","HelpIcon","vSelect","VuePerfectScrollbar","DataModal","component","drawArgs","markerText","drawType","markerDrawType","Path","finishDrawing","MapDisplay","mapKey","process","enhancedMapping","map","currentDrawing","MarkerDrawType","lat","lng","getEnhancedMapping","mapStyle","getMapStyle","darkMode","mapProvider","createMap","mappingContainer","location","registerEvent","mapClick","nextTick","then","setMapping","mapElement","boundsSet","navigator","geolocation","getCurrentPosition","pos","center","coords","latitude","longitude","zoom","startDraw","clearMarkers","off","remove","setCursor","clickLocation","Point","set","addPoint","states","first","imageUrl","colorName","opacity","line","color","linePath","last","Region","markerType","MarkerType","MultiMarker","clickedMarker","index","lineMarkers","marker","position","Inject","State","title","ok","canDelete","deleting","id","canEdit","isDeleteButtonDisabled","deleteConfirm","isSaveButtonDisabled","save","deleteDetailsItem","label","deleteConfirmText","displayColumns","valid","MapProvider","deleteConfirmButtonDisabled","saveButtonDisabled","itemOverrideColumns","confirmDelete","editModal","show","allowMap","some","Provide","FieldPermissions","DataForm","slot","modifiers","currentPage","SystemPages","Tenants","Users","History","systemUser","supportAccess","displayDateFromISOString","created","enterTenant","endSupportAccess","tenantsList","loadTenantDetails","saveTenant","support","enabledUntil","showAccess","accessReason","access","accessModalOpen","proxy","supportTenant","SystemApi","api","getAxios","axios","get","tenantId","features","put","user","delete","reason","post","systemnApi","enabledFeatures","options","featuresChanged","TenantFeatures","feature","text","Object","keys","f","updatedList","updatedListItems","o","oldValue","newValue","reduce","p","length","includes","TenantList","sortable","readonly","inModal","dynamicComponent","componentProperties","systemApi","tenantsGet","tenant","tenantFeatures","enabledFeaturesSet","accessTenant","finishLogin","Action","TextAreaExpand","loading","users","loadUserDetails","disabled","isoFromNow","setup","namespace","SystemUsers","editUser","adEnabled","errorEmailValue","emailStatus","reloadData","getADEnabled","enabled","errors","email","regx","test","toLocaleLowerCase","emailExists","exists","status","errorValue","tooltip","systemUsers","Promise","all","loadUsers","$bvToast","toast","variant","solid","autoHideDelay","systemUserSave","systemUserDelete","SkeletonLoader","UserImage","audit","changedAt","changedBy","fetchUserPictureUrl","tenantTitle","fieldName","oldValueLabel","newValueLabel","SystemHistory","toDictionary","systemAuditGet","userId","pictureUrl","System","endTenantAccess","userInit","switchToTenant","PageWrapper"],"mappings":"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","file":"js/chunk-1060041f.f66cc6e1.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.hide),expression:\"!hide\"}],staticClass:\"flex-column\",class:{'d-flex': !_vm.hide},staticStyle:{\"overflow\":\"hidden\"}},[_c('div',{staticClass:\"d-flex flex-row align-items-center m-b-10 m-t-5\"},[_c('h4',{staticClass:\"flex-grow-1 m-b-0 m-l-10\"},[_vm._t('header',[_vm._v(\" \"+_vm._s(_vm.headerTitle)+\" \"),(_vm.helpText)?_c('help-icon',{attrs:{\"help-title\":_vm.headerTitle}},[_vm._v(_vm._s(_vm.helpText))]):_vm._e()])],2),_vm._t(\"header-buttons\"),(_vm.canCreateItem)?_c('b-button',{staticClass:\"m-l-10\",attrs:{\"data-cy\":(\"data-table-btn-new-\" + _vm.dataCyType),\"variant\":\"primary\"},on:{\"click\":_vm.createNew}},[_vm._v(\" Create new \"+_vm._s(_vm.dataTypeHeader ? _vm.dataTypeHeader : _vm.dataType)+\" \")]):_vm._e()],2),_vm._t(\"description\"),_c('div',{staticClass:\"d-flex flex-row align-items-end m-l-10 m-r-10 m-b-10\"},[_c('b-form-group',{staticClass:\"mb-0 flex-grow-1\",attrs:{\"label\":\"Filter\",\"label-for\":\"filterInput\"}},[_c('b-input-group',[_c('b-form-input',{attrs:{\"type\":\"search\",\"data-cy\":(\"data-table-txt-search-\" + _vm.dataCyType),\"id\":\"filterInput\",\"placeholder\":\"Type to search\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_c('b-input-group-append',[_c('b-button',{attrs:{\"disabled\":!_vm.filter,\"data-cy\":(\"data-table-btn-clear-filter-\" + _vm.dataCyType)},on:{\"click\":function($event){_vm.filter = ''}}},[_vm._v(\" Clear \")])],1)],1)],1)],1),(_vm.overrideView)?[_vm._t(\"overrideView\",null,{\"items\":_vm.items,\"createNew\":_vm.createNew,\"editItem\":_vm.rowClick,\"filter\":_vm.filter})]:[_c('scrollbar',{staticClass:\"flex-grow-1 \"},[_c('b-table',{staticClass:\"m-l-10 m-r-10\",staticStyle:{\"width\":\"calc(100% - 20px)\"},attrs:{\"hover\":_vm.allowRowClick,\"fields\":_vm.tableColumns,\"items\":_vm.items,\"busy\":_vm.isBusy,\"filter\":_vm.filter,\"no-local-sorting\":_vm.noLocalSorting,\"tbody-tr-class\":_vm.rowClass},on:{\"sort-changed\":_vm.sortChanged,\"row-clicked\":_vm.rowClick},scopedSlots:_vm._u([_vm._l((_vm.boolColumns),function(boolColumn){return {key:_vm.columnTemplateName(boolColumn),fn:function(data){return [(data.value)?_c('i',{key:boolColumn.key,staticClass:\"fas fa-check-circle\"}):_vm._e()]}}}),_vm._l((_vm.columnsWithTemplate),function(column){return {key:_vm.columnTemplateName(column),fn:function(data){return [_vm._t('column.' + column.key,null,{\"item\":data.item})]}}})],null,true)})],1)],_c('data-modal',{ref:\"dataModal\",attrs:{\"title\":_vm.dataTypeHeader ? _vm.dataTypeHeader : _vm.dataType,\"columns\":_vm.columns,\"canEdit\":true,\"allowMap\":\"\",\"modalSize\":_vm.modalSize,\"deleteDetails\":_vm.deleteDetails,\"canDeleteItem\":_vm.canDeleteItem,\"canConfirmDelete\":_vm.canConfirmDelete},on:{\"save\":_vm.saveItem,\"delete\":_vm.deleteItem},scopedSlots:_vm._u([{key:\"header\",fn:function(slotProps){return [_vm._t(\"modal-header\",null,{\"item\":slotProps.item})]}},{key:\"additional\",fn:function(slotProps){return [_vm._t(\"additional\",null,{\"item\":slotProps.item})]}},{key:\"flex-additional\",fn:function(slotProps){return [_vm._t(\"flex-additional\",null,{\"item\":slotProps.item})]}},{key:\"deleteConfirm\",fn:function(slotProps){return [_vm._t(\"deleteConfirm\",null,{\"item\":slotProps.item,\"details\":slotProps.details})]}},{key:\"deleteConfirmAdditional\",fn:function(slotProps){return [_vm._t(\"deleteConfirmAdditional\",null,{\"item\":slotProps.item,\"details\":slotProps.details})]}},{key:\"additional-footer\",fn:function(slotProps){return [_vm._t(\"additional-footer\",null,{\"item\":slotProps.item})]}},{key:\"footer\",fn:function(slotProps){return [_vm._t(\"footer\",null,{\"item\":slotProps.item,\"details\":slotProps.details})]}},{key:\"okButtonContent\",fn:function(slotProps){return [_vm._t(\"modalOkButtonContent\",null,{\"item\":slotProps.item,\"details\":slotProps.details})]}}],null,true)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Prop, Emit } from \"vue-property-decorator\"\r\n\r\nimport cloneDeep from \"lodash/cloneDeep\"\r\n\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { BModal } from \"bootstrap-vue\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport DataModal from \"./DataModal.vue\"\r\nimport HelpIcon from \"@/components/New/Page/PageComponents/HelpIcon.vue\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"help-icon\": HelpIcon,\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"data-modal\": DataModal\r\n\t}\r\n})\r\nexport default class DataTable extends Vue {\r\n\t$refs!: {\r\n\t\tdataModal: BModal\r\n\t}\r\n\t@Prop()\r\n\tpublic dataType!: string;\r\n\r\n\t@Prop({ type: String }) helpText!: string;\r\n\r\n\t@Prop()\r\n\tpublic dataTypeHeader!: string;\r\n\r\n\t@Prop()\r\n\tpublic columns!: any[];\r\n\r\n\t@Prop()\r\n\tpublic items!: any[];\r\n\r\n\t@Prop({ type: String, default: \"xl\" })\r\n\tpublic modalSize!: string;\r\n\r\n\t@Prop({ type: Boolean })\r\n\tpublic isBusy!: boolean;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tpublic overrideView!: boolean\r\n\r\n\t@Prop()\r\n\tpublic createNewItem!: (values: any) => any;\r\n\r\n\t@Prop()\r\n\tpublic deleteDetails!: (item: any) => any;\r\n\r\n\t@Prop({ default: true })\r\n\tpublic canCreateItem!: boolean;\r\n\r\n\t@Prop()\r\n\tpublic canDeleteItem!: (item: any) => boolean;\r\n\r\n\t@Prop()\r\n\tpublic canConfirmDelete!: (item: any) => boolean;\r\n\r\n\t@Prop()\r\n\tpublic loadItem!: (item: any) => any;\r\n\r\n\t@Prop({ default: false })\r\n\tpublic hide!: boolean\r\n\r\n\t@Prop({ default: true })\r\n\tpublic allowRowClick!: boolean\r\n\r\n\t@Prop({ default: false })\r\n\tpublic noLocalSorting!: boolean\r\n\r\n\t@Prop({ default: () => { return (item: any, type: any) => \"\" } })\r\n\tpublic rowClass!: (item: any, type: any) => string;\r\n\r\n\tpublic filter: string = \"\";\r\n\r\n\tpublic async rowClick (item: any) {\r\n\t\tif (!this.allowRowClick) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (item.allowRowClick !== undefined && !item.allowRowClick) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (item.onlyEmitOnRowClick !== undefined && item.onlyEmitOnRowClick) {\r\n\t\t\tthis.$emit(\"row-opened\", item)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst itemClone = this.loadItem\r\n\t\t\t? await this.loadItem(item)\r\n\t\t\t: cloneDeep(item)\r\n\r\n\t\tthis.$refs.dataModal.open(itemClone)\r\n\r\n\t\tthis.$emit(\"row-opened\", item)\r\n\t}\r\n\r\n\tpublic get tableColumns () {\r\n\t\tif (!this.columns) {\r\n\t\t\treturn []\r\n\t\t}\r\n\r\n\t\treturn this.columns.filter(c => c.inTable !== false)\r\n\t}\r\n\r\n\tprivate get columnsWithTemplate (): any[] {\r\n\t\tif (!this.columns) { return [] }\r\n\r\n\t\treturn this.columns.filter(c => c.hasTemplate)\r\n\t}\r\n\r\n\tprivate get boolColumns (): any[] {\r\n\t\tif (!this.columns) { return [] }\r\n\r\n\t\treturn this.columns.filter(c => c.dataType === \"checkbox\" && !c.hasTemplate)\r\n\t}\r\n\r\n\tpublic createNew (values: any) {\r\n\t\tlet newItem = this.createNewItem\r\n\t\t\t? this.createNewItem(values)\r\n\t\t\t: {}\r\n\r\n\t\tthis.$refs.dataModal.open(newItem)\r\n\t}\r\n\r\n\t@Emit(\"save\")\r\n\tpublic saveItem (item: any) {\r\n\t\treturn item\r\n\t}\r\n\r\n\t@Emit(\"delete\")\r\n\tpublic deleteItem (item: any) {\r\n\t\treturn item\r\n\t}\r\n\r\n\tcolumnTemplateName (column: any) {\r\n\t\treturn \"cell(\" + column.key + \")\"\r\n\t}\r\n\r\n\t@Emit(\"sortChanged\")\r\n\tpublic sortChanged (context: any) {\r\n\t\treturn context\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the data type in the correct format for data-cy tags i.e.\r\n\t * - Has all spaces replaced with '-'\r\n\t * - Is all lowercase\r\n\t * @private\r\n\t */\r\n\tprivate get dataCyType () {\r\n\t\tlet type = (this.dataTypeHeader ? this.dataTypeHeader : this.dataType)\r\n\t\ttype = type.replace(/ /g, \"-\")\r\n\t\treturn type.toLowerCase()\r\n\t}\r\n\r\n\tprivate get headerTitle () {\r\n\t\treturn this.dataTypeHeader ? this.dataTypeHeader : this.dataType + \"s\"\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataTable.vue?vue&type=template&id=2d78c8d0&\"\nimport script from \"./DataTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataTable.vue?vue&type=script&lang=ts&\"\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 null,\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('div',{staticClass:\"enhanced-map-wrapper ps__child--consume\"},[_c('div',{ref:\"mappingContainer\",staticClass:\"h-100\",attrs:{\"id\":\"divMappingContainer\"}}),(_vm.drawArgs)?_c('div',{staticClass:\"draw-text alert alert-secondary\"},[_vm._v(\" Drawing \"+_vm._s(_vm.drawArgs.markerText)+\" \"),(_vm.drawArgs.drawType === _vm.markerDrawType.Path)?_c('a',{staticClass:\"btn btn-primary m-l-20\",on:{\"click\":_vm.finishDrawing}},[_vm._v(\"Done\")]):_vm._e()]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch, InjectReactive, Inject } from \"vue-property-decorator\"\r\nimport { State } from \"vuex-class\"\r\n\r\nimport { get, set } from \"lodash\"\r\n\r\n// @ts-ignore\r\nimport { Datetime } from \"vue-datetime\"\r\nimport vSelect from \"vue-select\"\r\n\r\nimport { getMapStyle } from \"@/scripts/mapStyle\"\r\n\r\nimport {\r\n\tgetEnhancedMapping,\r\n\tIEnhancedMapping,\r\n\tIMap,\r\n\tIMarker,\r\n\tILatLng,\r\n\tILatLngBounds,\r\n\tMultiMarker,\r\n\tMarkerType\r\n} from \"@sureview/v2-mapping\"\r\n\r\nimport { MapProvider, DrawArguments, MarkerDrawType } from \"@/services/mapProvider\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class MapDisplay extends Vue {\r\n\t$refs!: {\r\n\t\tmappingContainer: HTMLElement,\r\n\t}\r\n\r\n\t@Inject(\"mapProvider\") mapProvider!: MapProvider;\r\n\r\n\t@State darkMode!: boolean;\r\n\r\n\tpublic mapKey: string = process.env.VUE_APP_GOOGLE_MAPS_API_KEY || \"\";\r\n\r\n\tpublic enhancedMapping: IEnhancedMapping | null = null;\r\n\tpublic map: IMap | null = null;\r\n\r\n\tprivate drawArgs: DrawArguments | null = null;\r\n\tprivate currentDrawing: MultiMarker | null = null;\r\n\r\n\tprivate markerDrawType = MarkerDrawType;\r\n\r\n\tget location () {\r\n\t\treturn { lat: 0, lng: 0 }\r\n\t}\r\n\r\n\tasync mounted () {\r\n\t\tthis.enhancedMapping = await getEnhancedMapping(\"google\", this.mapKey)\r\n\r\n\t\tconst mapStyle = getMapStyle(this.darkMode, \"roadmap\", false)\r\n\r\n\t\tif (this.mapProvider) {\r\n\t\t\tthis.mapProvider.mapStyle = mapStyle\r\n\t\t}\r\n\r\n\t\tthis.map = this.enhancedMapping.createMap(\r\n\t\t\tthis.$refs.mappingContainer,\r\n\t\t\tthis.location,\r\n\t\t\t2,\r\n\t\t\tfalse,\r\n\t\t\t\"roadmap\",\r\n\t\t\tmapStyle\r\n\t\t)\r\n\r\n\t\tthis.map!.registerEvent(\"onClick\", this.mapClick)\r\n\r\n\t\tif (this.mapProvider) {\r\n\t\t\tVue.nextTick().then(() => {\r\n\t\t\t\tthis.mapProvider.setMapping(this.enhancedMapping!, this.map!)\r\n\t\t\t\tthis.mapProvider.mapElement = this.$refs.mappingContainer\r\n\r\n\t\t\t\tif (!this.mapProvider.boundsSet) {\r\n\t\t\t\t\tnavigator.geolocation.getCurrentPosition((pos: any) => {\r\n\t\t\t\t\t\tthis.map!.center = {\r\n\t\t\t\t\t\t\tlat: pos.coords.latitude,\r\n\t\t\t\t\t\t\tlng: pos.coords.longitude\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.map!.zoom = 16\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tthis.mapProvider.on(\"startDraw\", this.startDraw)\r\n\t\t}\r\n\t}\r\n\r\n\tbeforeDestroy () {\r\n\t\tif (this.mapProvider) {\r\n\t\t\tthis.mapProvider.clearMarkers()\r\n\t\t\tthis.mapProvider.off(\"startDraw\", this.startDraw)\r\n\t\t}\r\n\r\n\t\tif (this.currentDrawing) {\r\n\t\t\tthis.currentDrawing.remove()\r\n\t\t\tthis.currentDrawing = null\r\n\t\t}\r\n\t}\r\n\r\n\tstartDraw (drawArgs: DrawArguments) {\r\n\t\tthis.map!.setCursor(\"crosshair\")\r\n\t\tthis.drawArgs = drawArgs\r\n\t}\r\n\r\n\tmapClick (clickLocation: { lat: number, lng: number }) {\r\n\t\tif (this.drawArgs) {\r\n\t\t\tif (this.drawArgs.drawType === MarkerDrawType.Point) {\r\n\t\t\t\tthis.drawArgs.set({ ...clickLocation, zoom: this.map!.zoom })\r\n\t\t\t\tthis.drawArgs = null\r\n\t\t\t\tthis.map!.setCursor(\"grab\")\r\n\t\t\t} else {\r\n\t\t\t\tif (!this.currentDrawing) {\r\n\t\t\t\t\tconst states = (this.drawArgs!.drawType === MarkerDrawType.Path)\r\n\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\tfirst: {\r\n\t\t\t\t\t\t\t\timageUrl: `./images/map/${this.drawArgs.colorName}_small.svg`,\r\n\t\t\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\t\t\tline: {\r\n\t\t\t\t\t\t\t\t\tcolor: this.drawArgs.color,\r\n\t\t\t\t\t\t\t\t\tlinePath: \"solid\"\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tlast: {\r\n\t\t\t\t\t\t\t\timageUrl: `./images/map/${this.drawArgs.colorName}_small.svg`,\r\n\t\t\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\t\t\tline: {\r\n\t\t\t\t\t\t\t\t\tcolor: this.drawArgs.color,\r\n\t\t\t\t\t\t\t\t\tlinePath: \"solid\"\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t: (this.drawArgs!.drawType === MarkerDrawType.Region)\r\n\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\tfirst: {\r\n\t\t\t\t\t\t\t\t\timageUrl: `./images/map/${this.drawArgs.colorName}_small.svg`,\r\n\t\t\t\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\t\t\t\tline: {\r\n\t\t\t\t\t\t\t\t\t\tcolor: this.drawArgs.color,\r\n\t\t\t\t\t\t\t\t\t\tlinePath: \"solid\"\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t: {}\r\n\r\n\t\t\t\t\tconst markerType = new MarkerType({\r\n\t\t\t\t\t\timageUrl: `./images/map/${this.drawArgs.colorName}_small.svg`,\r\n\t\t\t\t\t\topacity: 0,\r\n\t\t\t\t\t\tline: {\r\n\t\t\t\t\t\t\tcolor: this.drawArgs.color,\r\n\t\t\t\t\t\t\tlinePath: \"solid\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, states)\r\n\r\n\t\t\t\t\tthis.currentDrawing = new MultiMarker(this.enhancedMapping!,\r\n\t\t\t\t\t\tthis.map!,\r\n\t\t\t\t\t\t\"\",\r\n\t\t\t\t\t\tmarkerType,\r\n\t\t\t\t\t\t[clickLocation],\r\n\t\t\t\t\t\t(clickedMarker: IMarker, index: number) => {\r\n\t\t\t\t\t\t\tif (this.drawArgs! && (index === 0 || this.drawArgs!.drawType === MarkerDrawType.Path)) {\r\n\t\t\t\t\t\t\t\tthis.finishDrawing()\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.currentDrawing.addPoint(clickLocation)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.map!.setCursor(\"grab\")\r\n\t\t}\r\n\t}\r\n\r\n\tfinishDrawing () {\r\n\t\tif (this.currentDrawing) {\r\n\t\t\tthis.drawArgs!.set(\r\n\t\t\t\tthis.currentDrawing.lineMarkers.map((marker: IMarker) => marker.position)\r\n\t\t\t)\r\n\r\n\t\t\tthis.currentDrawing.remove()\r\n\t\t\tthis.currentDrawing = null\r\n\t\t}\r\n\r\n\t\tthis.drawArgs = null\r\n\t\tthis.map!.setCursor(\"grab\")\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Map.vue?vue&type=template&id=bbe8e3a6&scoped=true&\"\nimport script from \"./Map.vue?vue&type=script&lang=ts&\"\nexport * from \"./Map.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Map.vue?vue&type=style&index=0&id=bbe8e3a6&prod&lang=scss&scoped=true&\"\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 \"bbe8e3a6\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=style&index=0&id=bbe8e3a6&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemHistory.vue?vue&type=style&index=0&id=c2e921f4&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"editModal\",attrs:{\"data-cy\":\"data-modal\",\"content-class\":\"fill-modal\",\"title\":_vm.title,\"size\":_vm.modalSize,\"no-close-on-backdrop\":true},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(ref){\nvar ok = ref.ok;\nreturn [_c('div',{staticClass:\"d-flex w-100\"},[_vm._t(\"additional-footer\",null,{\"item\":_vm.item}),_c('div',{staticClass:\"flex-grow-1\"},[(_vm.canDelete && !_vm.deleting && _vm.item.id)?_c('b-button',{attrs:{\"data-cy\":\"delete-button\",\"variant\":\"danger\"},on:{\"click\":function($event){return _vm.deleteItem()}}},[_vm._v(\" Delete \")]):_vm._e()],1),(!_vm.canEdit)?_c('div',{attrs:{\"data-cy\":\"ok-footer-container\"}},[_c('b-button',{attrs:{\"data-cy\":\"cancel-button\",\"variant\":\"secondary\"},on:{\"click\":function($event){return ok()}}},[_vm._v(\" OK \")])],1):(!_vm.deleting)?_c('div',{attrs:{\"data-cy\":\"sc-footer-container\"}},[_c('b-button',{staticClass:\"m-r-5\",class:{'disabled': _vm.isSaveButtonDisabled()},attrs:{\"data-cy\":\"save-button\",\"variant\":\"primary\",\"disabled\":_vm.isSaveButtonDisabled()},on:{\"click\":function($event){return _vm.save()}}},[_vm._t(\"okButtonContent\",[_vm._v(\" Save \")])],2),_c('b-button',{attrs:{\"data-cy\":\"cancel-button\",\"variant\":\"secondary\"},on:{\"click\":function($event){return ok()}}},[_vm._v(\" Cancel \")])],1):_c('div',{attrs:{\"data-cy\":\"dc-footer-container\"}},[_c('b-button',{staticClass:\"m-r-5\",attrs:{\"data-cy\":\"delete-confirm-button\",\"variant\":\"danger\",\"disabled\":_vm.isDeleteButtonDisabled},on:{\"click\":function($event){return _vm.deleteConfirm()}}},[_vm._v(\" Delete \")]),_c('b-button',{attrs:{\"data-cy\":\"cancel-button\",\"variant\":\"secondary\"},on:{\"click\":function($event){return ok()}}},[_vm._v(\" Cancel \")])],1)],2)]}}],null,true)},[(_vm.displayColumns)?_c('div',{staticClass:\"modal-contents mh-100\",attrs:{\"data-cy\":\"columns-container\"}},[(!_vm.deleting)?[_vm._t(\"header\",null,{\"item\":_vm.item}),(_vm.showMap)?_c('map-display',{attrs:{\"data-cy\":\"map-display\"}}):_vm._e(),_c('data-form',{attrs:{\"canEdit\":_vm.canEdit,\"columns\":_vm.displayColumns,\"item\":_vm.item},on:{\"valid\":function($event){_vm.valid = true},\"invalid\":function($event){_vm.valid = false}}}),_vm._t(\"additional\",null,{\"item\":_vm.item})]:[_vm._t(\"deleteConfirm\",null,{\"item\":_vm.item,\"details\":_vm.deleteDetailsItem}),(_vm.confirmDelete)?_c('b-form-group',{attrs:{\"label\":'Are you sure you wish to delete ' + (_vm.item.name ? _vm.item.name : _vm.item.title ? _vm.item.title : _vm.item.label) + '?',\"label-for\":'input-delete'}},[(_vm.item.title || _vm.item.name)?_c('div',[_c('span',[_vm._v(\"To confirm deletion, enter \\\"\"+_vm._s(_vm.item.name ? _vm.item.name : _vm.item.title ? _vm.item.title : _vm.item.label)+\"\\\" \")]),_c('b-form-input',{attrs:{\"data-cy\":\"confirm-delete-text\",\"type\":\"text\",\"autocomplete\":\"off\",\"id\":'input-delete'},model:{value:(_vm.deleteConfirmText),callback:function ($$v) {_vm.deleteConfirmText=$$v},expression:\"deleteConfirmText\"}})],1):_vm._e()]):_vm._e(),_vm._t(\"deleteConfirmAdditional\",null,{\"item\":_vm.item,\"details\":_vm.deleteDetailsItem}),_vm._t(\"footer\",null,{\"item\":_vm.item,\"details\":_vm.deleteDetailsItem})],(!_vm.deleting)?_vm._t(\"flex-additional\",null,{\"item\":_vm.item}):_vm._e()],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Prop, Inject, Provide } from \"vue-property-decorator\"\r\n\r\nimport vSelect from \"vue-select\"\r\nimport { BModal } from \"bootstrap-vue\"\r\n\r\nimport DataForm from \"./DataForm.vue\"\r\nimport FieldPermissions from \"./Permissions/FieldPermissions.vue\"\r\nimport MapDisplay from \"@/components/Controls/Map.vue\"\r\n\r\nimport { MapProvider } from \"@/services/mapProvider\"\r\nimport ConfigurationColumn from \"@/types/configurationColumn\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select\": vSelect,\r\n\t\t\"field-permissions\": FieldPermissions,\r\n\t\t\"data-form\": DataForm,\r\n\t\t\"map-display\": MapDisplay\r\n\t}\r\n})\r\nexport default class DataModal extends Vue {\r\n\t$refs!: {\r\n\t\teditModal: BModal;\r\n\t\tscrollbar: any;\r\n\t}\r\n\r\n\t@Inject(\"mapProvider\") parentMapProvider!: MapProvider;\r\n\t@Provide(\"mapProvider\") mapProvider: MapProvider = new MapProvider();\r\n\r\n\t@Prop()\r\n\ttitle!: string;\r\n\r\n\t@Prop()\r\n\tcolumns!: ConfigurationColumn[];\r\n\r\n\t@Prop()\r\n\tcanEdit!: boolean;\r\n\r\n\t@Prop({ type: Boolean, default: false })\r\n\tallowMap!: boolean;\r\n\r\n\t@Prop({ type: String, default: \"xl\" })\r\n\tpublic modalSize!: string;\r\n\r\n\t@Prop()\r\n\tpublic deleteDetails!: (item: any) => any;\r\n\r\n\t@Prop()\r\n\tpublic canDeleteItem!: (item: any) => boolean;\r\n\r\n\t@Prop()\r\n\tpublic canConfirmDelete!: (item: any) => boolean;\r\n\r\n\tpublic deleteConfirmButtonDisabled: boolean = false;\r\n\tpublic saveButtonDisabled: boolean = false;\r\n\r\n\titemOverrideColumns: any[] | null = null;\r\n\titem: any = null;\r\n\r\n\tcanDelete: boolean = false;\r\n\tconfirmDelete: boolean = true;\r\n\tdeleteConfirmText: string = \"\";\r\n\tdeleteDetailsItem: any = null;\r\n\tdeleting: boolean = false;\r\n\r\n\tpublic valid: boolean = false;\r\n\r\n\tpublic async open (item: any, itemOverrideColumns: any[] | null = null) {\r\n\t\tthis.canDelete = this.canDeleteItem ? await this.canDeleteItem(item) : true\r\n\t\tthis.confirmDelete = this.canConfirmDelete ? await this.canConfirmDelete(item) : true\r\n\r\n\t\tthis.deleting = false\r\n\t\tthis.deleteConfirmText = \"\"\r\n\r\n\t\tthis.itemOverrideColumns = itemOverrideColumns\r\n\t\tthis.item = item\r\n\t\tthis.$refs.editModal.show()\r\n\t}\r\n\r\n\tpublic get displayColumns () {\r\n\t\tif (this.itemOverrideColumns) {\r\n\t\t\treturn this.itemOverrideColumns\r\n\t\t}\r\n\r\n\t\treturn this.columns\r\n\t}\r\n\r\n\tpublic get showMap () {\r\n\t\treturn this.allowMap && this.columns.some(\r\n\t\t\tc => c.dataType === \"map-marker\" ||\r\n\t\t\tc.dataType === \"map-path\" ||\r\n\t\t\tc.dataType === \"map-region\"\r\n\t\t)\r\n\t}\r\n\r\n\tpublic get isDeleteButtonDisabled () : boolean {\r\n\t\treturn this.item && (this.deleteConfirmButtonDisabled || (\r\n\t\t\tthis.item.name\r\n\t\t\t\t? this.deleteConfirmText !== this.item.name\r\n\t\t\t\t: this.item.title ? this.deleteConfirmText !== this.item.title : false)\r\n\t\t)\r\n\t}\r\n\r\n\tpublic save () {\r\n\t\tthis.$emit(\"save\", this.item)\r\n\t\tthis.hide()\r\n\t}\r\n\r\n\tpublic async deleteItem () {\r\n\t\tif (this.deleteDetails) {\r\n\t\t\tthis.deleteDetailsItem = await this.deleteDetails(this.item)\r\n\t\t}\r\n\r\n\t\tthis.deleting = true\r\n\t}\r\n\r\n\tpublic async deleteConfirm () {\r\n\t\tif (!this.isDeleteButtonDisabled) {\r\n\t\t\tthis.$emit(\"delete\", this.item)\r\n\t\t\tthis.hide()\r\n\t\t}\r\n\t}\r\n\r\n\tpublic isSaveButtonDisabled () : boolean {\r\n\t\treturn this.saveButtonDisabled || !this.valid\r\n\t}\r\n\r\n\tprivate hide () {\r\n\t\tthis.$refs.editModal.hide()\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataModal.vue?vue&type=template&id=72a4c2cc&\"\nimport script from \"./DataModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataModal.vue?vue&type=script&lang=ts&\"\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 null,\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('page',[_c('template',{slot:\"nav-content\"},[_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"tabindex\":\"0\",\"title\":\"Tenancies\"},on:{\"click\":function($event){_vm.currentPage = _vm.SystemPages.Tenants}}},[_c('i',{staticClass:\"fa fa-fw fa-square-list\"})]),_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"tabindex\":\"0\",\"title\":\"Users\"},on:{\"click\":function($event){_vm.currentPage = _vm.SystemPages.Users}}},[_c('i',{staticClass:\"fa fa-fw fa-user-group\"})]),_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"link\",attrs:{\"tabindex\":\"0\",\"title\":\"History\"},on:{\"click\":function($event){_vm.currentPage = _vm.SystemPages.History}}},[_c('i',{staticClass:\"fa fa-fw fa-clock-rotate-left\"})])]),_c('template',{slot:\"controls\"},[_c('h4',{staticClass:\"m-r-10\"},[_vm._v(\"System Admin Portal\")])]),_c('div',{staticClass:\"d-flex flex-column h-100\",staticStyle:{\"overflow\":\"hidden\"}},[(_vm.systemUser && _vm.systemUser.supportAccess)?_c('b-alert',{staticClass:\"m-a-10\",attrs:{\"show\":\"\",\"variant\":\"secondary\"}},[_c('b',[_vm._v(\"Active Support Session\")]),_c('div',{staticClass:\"d-flex align-items-center\"},[_c('div',{staticClass:\"flex-grow-1\"},[_vm._v(\" You have an open support session with \"+_vm._s(_vm.systemUser.supportAccess.title)+\" since \"+_vm._s(_vm.displayDateFromISOString(_vm.systemUser.supportAccess.created))+\" \")]),_c('b-btn',{staticClass:\"m-r-10\",attrs:{\"variant\":\"secondary\"},on:{\"click\":_vm.enterTenant}},[_vm._v(\" Enter Tenancy \")]),_c('b-btn',{attrs:{\"variant\":\"secondary\"},on:{\"click\":_vm.endSupportAccess}},[_vm._v(\" End Session \")])],1)]):_vm._e(),(_vm.currentPage === _vm.SystemPages.Tenants)?_c('tenant-list',{staticClass:\"flex-grow-1 h-100\"}):_vm._e(),(_vm.currentPage === _vm.SystemPages.Users)?_c('system-users',{staticClass:\"flex-grow-1 h-100\"}):_vm._e(),(_vm.currentPage === _vm.SystemPages.History)?_c('system-history',{staticClass:\"flex-grow-1 h-100\"}):_vm._e()],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('data-table',{staticClass:\"h-100\",attrs:{\"dataType\":\"Tenant\",\"columns\":_vm.columns,\"items\":_vm.tenantsList,\"canDeleteItem\":function () { return false; },\"canCreateItem\":false,\"loadItem\":_vm.loadTenantDetails},on:{\"save\":_vm.saveTenant},scopedSlots:_vm._u([{key:\"column.support\",fn:function(data){return [(data.item.support)?[_vm._v(\" Expires: \"+_vm._s(_vm.displayDateFromISOString(data.item.support.enabledUntil))+\" \"),(data.item.canSupport)?_c('b-btn',{attrs:{\"variant\":\"link\"},on:{\"click\":function($event){return _vm.showAccess(data.item)}}},[_vm._v(\" Access \")]):_vm._e()]:_vm._e()]}}])}),_c('b-modal',{scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('a',{staticClass:\"btn btn-primary\",class:{'disabled': !_vm.accessReason},attrs:{\"data-cy\":\"allow-access\"},on:{\"click\":_vm.access}},[_vm._v(\" Access \")]),_c('a',{staticClass:\"btn btn-secondary\",on:{\"click\":function($event){_vm.accessModalOpen = false}}},[_vm._v(\"Cancel\")])]},proxy:true}]),model:{value:(_vm.accessModalOpen),callback:function ($$v) {_vm.accessModalOpen=$$v},expression:\"accessModalOpen\"}},[(_vm.supportTenant)?_c('b-alert',{attrs:{\"variant\":\"secondary\",\"show\":\"\"}},[_c('p',[_vm._v(\"Only access customer tenancies with express permission.\")]),_c('p',[_vm._v(\"Please note that accessing \"+_vm._s(_vm.supportTenant.title)+\" will end your current system admin session and move you immediately into the tenancy.\")]),(_vm.systemUser && _vm.systemUser.supportAccess)?_c('p',[_vm._v(\" This will also close your support session on \"+_vm._s(_vm.systemUser.supportAccess.title)+\" \")]):_vm._e()]):_vm._e(),_c('b-form-group',{attrs:{\"label\":\"Reason for access\",\"label-for\":\"access-reason\"}},[_c('text-area-expand',{model:{value:(_vm.accessReason),callback:function ($$v) {_vm.accessReason=$$v},expression:\"accessReason\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios, { AxiosInstance } from \"axios\"\r\nimport api from \"@/services/api\"\r\nimport { Feature, Tenant } from \"@/types/tenant\"\r\nimport { SystemUser } from \"@/types/user\"\r\nimport { SystemAudit } from \"@/types/audit\"\r\n\r\nclass SystemApi {\r\n\tprivate get axios (): AxiosInstance {\r\n\t\treturn api.getAxios()\r\n\t}\r\n\r\n\tpublic async tenantsGet (): Promise {\r\n\t\treturn (await this.axios.get(\"/sysadmin/tenants\")).data\r\n\t}\r\n\r\n\tpublic async features (): Promise {\r\n\t\treturn (await this.axios.get(\"/sysadmin/tenants/features\")).data\r\n\t}\r\n\r\n\tpublic async enabledFeatures (tenantId: string): Promise<{ [key: string]: boolean }> {\r\n\t\treturn (await this.axios.get(`/sysadmin/tenants/${tenantId}/features`)).data\r\n\t}\r\n\r\n\tpublic async enabledFeaturesSet (tenantId: string, features: { [key: string]: boolean }): Promise {\r\n\t\tawait this.axios.put(`/sysadmin/tenants/${tenantId}/features`, features)\r\n\t}\r\n\r\n\tpublic async systemUsers (): Promise {\r\n\t\treturn (await this.axios.get(\"/sysadmin/adminUser\")).data\r\n\t}\r\n\r\n\tpublic async systemUserSave (user: SystemUser): Promise {\r\n\t\tawait this.axios.put(\"/sysadmin/adminUser\", user)\r\n\t}\r\n\r\n\tpublic async systemUserDelete (user: SystemUser): Promise {\r\n\t\tawait this.axios.delete(`/sysadmin/adminUser/${user.id}`)\r\n\t}\r\n\r\n\tpublic async accessTenant (tenantId: string, reason: string): Promise {\r\n\t\tawait this.axios.post(`/sysadmin/adminUser/accessTenant/${tenantId}`, {\r\n\t\t\treason\r\n\t\t})\r\n\t}\r\n\r\n\tpublic async switchToTenant (): Promise {\r\n\t\tawait this.axios.post(\"/sysadmin/adminUser/switchToTenant\")\r\n\t}\r\n\r\n\tpublic async endTenantAccess (): Promise {\r\n\t\tawait this.axios.post(\"/sysadmin/adminUser/accessTenantEnd\")\r\n\t}\r\n\r\n\tpublic async systemAuditGet (): Promise {\r\n\t\treturn (await this.axios.get(\"/sysadmin/audit\")).data\r\n\t}\r\n}\r\n\r\nconst systemnApi = new SystemApi()\r\nexport default systemnApi\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-checkbox-group',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\"}],attrs:{\"checked\":_vm.enabledFeatures,\"options\":_vm.options,\"stacked\":\"\"},on:{\"input\":_vm.featuresChanged}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\n\r\nimport { Feature } from \"@/types/tenant\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class TenantFeatures extends Vue {\r\n\t@Prop({ default: [] })\r\n\tfeatures!: Feature[]\r\n\r\n\t@Prop({ default: () => {} })\r\n\tvalue!: { [key: string]: boolean }\r\n\r\n\tget options () {\r\n\t\treturn this.features.map(feature => {\r\n\t\t\treturn {\r\n\t\t\t\ttext: feature.title,\r\n\t\t\t\tvalue: feature.key\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tget enabledFeatures (): string[] {\r\n\t\treturn Object.keys(this.value).filter(f => this.value[f])\r\n\t}\r\n\r\n\tfeaturesChanged (updatedList: string[]) {\r\n\t\tconst updatedListItems = updatedList.filter(f => this.options.some(o => o.value === f))\r\n\r\n\t\tconst oldValue = Object.keys(this.value).filter(f => this.value[f])\r\n\t\tconst newValue = updatedListItems.reduce((p, c) => {\r\n\t\t\tp[c] = true\r\n\t\t\treturn p\r\n\t\t}, {} as { [key: string]: boolean })\r\n\r\n\t\tif (oldValue.length !== updatedListItems.length || oldValue.some(o => !updatedListItems.includes(o))) {\r\n\t\t\tthis.$emit(\"input\", newValue)\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantFeatures.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantFeatures.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TenantFeatures.vue?vue&type=template&id=075b050b&\"\nimport script from \"./TenantFeatures.vue?vue&type=script&lang=ts&\"\nexport * from \"./TenantFeatures.vue?vue&type=script&lang=ts&\"\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 null,\n null\n \n)\n\nexport default component.exports","\r\n\r\nimport { Component, Vue, Prop, Emit } from \"vue-property-decorator\"\r\nimport { Getter, Mutation, Action, State } from \"vuex-class\"\r\n\r\nimport api from \"@/services/api\"\r\nimport systemApi from \"@/services/api/api_System\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport { Feature, Tenant, TenantWithFeatures } from \"@/types/tenant\"\r\n\r\nimport DataTable from \"@/components/Config/DataTable.vue\"\r\nimport TenantFeatures from \"./TenantFeatures.vue\"\r\nimport TextAreaExpand from \"@/components/Fields/TextAreaExpand.vue\"\r\nimport { SystemUser } from \"@/types/user\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"data-table\": DataTable,\r\n\t\t\"text-area-expand\": TextAreaExpand\r\n\t}\r\n})\r\nexport default class TenantList extends Vue {\r\n\t@State public systemUser!: SystemUser\r\n\t@Action finishLogin!: () => Promise\r\n\r\n\tfeatures: Feature[] = []\r\n\ttenantsList: Tenant[] = []\r\n\r\n\tsupportTenant: Tenant | null = null\r\n\taccessReason: string | null = null\r\n\r\n\tget columns () {\r\n\t\treturn [{\r\n\t\t\tkey: \"title\",\r\n\t\t\tlabel: \"Title\",\r\n\t\t\tsortable: true,\r\n\t\t\treadonly: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"support\",\r\n\t\t\tlabel: \"Support\",\r\n\t\t\thasTemplate: true,\r\n\t\t\tinModal: () => false\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"features\",\r\n\t\t\tlabel: \"Features\",\r\n\t\t\tinTable: false,\r\n\t\t\tdynamicComponent: TenantFeatures,\r\n\t\t\tcomponentProperties: {\r\n\t\t\t\tfeatures: this.features\r\n\t\t\t}\r\n\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tget accessModalOpen (): boolean {\r\n\t\treturn !!this.supportTenant\r\n\t}\r\n\tset accessModalOpen (value: boolean) {\r\n\t\tif (!value) {\r\n\t\t\tthis.supportTenant = null\r\n\t\t\tthis.accessReason = null\r\n\t\t}\r\n\t}\r\n\r\n\tasync mounted () {\r\n\t\tthis.features = await systemApi.features()\r\n\t\tthis.tenantsList = await systemApi.tenantsGet()\r\n\t}\r\n\r\n\tasync loadTenantDetails (tenant: Tenant) {\r\n\t\tconst tenantFeatures = await systemApi.enabledFeatures(tenant.id)\r\n\t\treturn {\r\n\t\t\tid: tenant.id,\r\n\t\t\ttitle: tenant.title,\r\n\t\t\tfeatures: tenantFeatures || {}\r\n\t\t}\r\n\t}\r\n\r\n\tasync saveTenant (tenant: TenantWithFeatures) {\r\n\t\tsystemApi.enabledFeaturesSet(tenant.id, tenant.features)\r\n\t}\r\n\r\n\tshowAccess (accessTenant: Tenant) {\r\n\t\tthis.supportTenant = accessTenant\r\n\t}\r\n\r\n\tasync access () {\r\n\t\tif (!this.supportTenant || !this.accessReason) return\r\n\r\n\t\tawait systemApi.accessTenant(this.supportTenant.id, this.accessReason)\r\n\t\tthis.finishLogin()\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TenantList.vue?vue&type=template&id=824d7cb0&\"\nimport script from \"./TenantList.vue?vue&type=script&lang=ts&\"\nexport * from \"./TenantList.vue?vue&type=script&lang=ts&\"\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 null,\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('skeleton',{staticClass:\"d-flex flex-column h-100\",attrs:{\"loading\":_vm.loading}},[_c('data-table',{staticClass:\"h-100\",attrs:{\"dataType\":\"System User\",\"columns\":_vm.columns,\"items\":_vm.users,\"loadItem\":_vm.loadUserDetails},on:{\"save\":_vm.saveItem,\"delete\":_vm.deleteItem},scopedSlots:_vm._u([{key:\"column.image\",fn:function(data){return [_c('div',{class:{'muted-image': data.item.disabled}},[_c('user-image',{attrs:{\"user\":data.item,\"size\":\"lg\"}})],1)]}},{key:\"column.disabled\",fn:function(data){return [_c('span',[_vm._v(_vm._s(data.item.disabled ? \"Account Disabled\" : \"\"))])]}},{key:\"column.supportAccess\",fn:function(data){return [(data.item.supportAccess)?_c('span',[_c('span',[_vm._v(_vm._s(data.item.supportAccess.title))]),_c('br'),_c('small',[_vm._v(_vm._s(_vm.isoFromNow(data.item.supportAccess.created)))])]):_vm._e()]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action, State } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport cloneDeep from \"lodash/cloneDeep\"\r\n\r\nimport { Team } from \"@/types\"\r\nimport User, { SystemUser } from \"@/types/user\"\r\nimport { Subscription } from \"@/types/subscription\"\r\n\r\nimport api from \"@/services/api\"\r\nimport systemApi from \"@/services/api/api_System\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport SkeletonLoader from \"@/components/SkeletonLoader.vue\"\r\nimport DataTable from \"@/components/Config/DataTable.vue\"\r\nimport UserImage from \"@/components/UserImage.vue\"\r\nimport apiTenant from \"@/services/api_Tenant\"\r\n\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"data-table\": DataTable,\r\n\t\t\"user-image\": UserImage\r\n\t}\r\n})\r\nexport default class SystemUsers extends Vue {\r\n\t@State public systemUser!: SystemUser\r\n\r\n\t@setup.Action public getADEnabled!: () => Promise\r\n\r\n\tpublic filter: string = \"\";\r\n\r\n\tpublic users: SystemUser[] = [];\r\n\tprivate editUser: SystemUser | null = null;\r\n\r\n\tpublic loading: boolean = true;\r\n\tpublic adEnabled: boolean = false;\r\n\r\n\tprivate errorEmailValue: string | null = null;\r\n\tprivate emailStatus: { [key: string]: boolean } = {};\r\n\r\n\t/**\r\n\t * On mount, get users page.\r\n\t */\r\n\tprivate async mounted (): Promise {\r\n\t\tthis.loading = true\r\n\r\n\t\tawait this.reloadData()\r\n\t\tthis.getADEnabled().then(enabled => this.adEnabled = enabled)\r\n\r\n\t\tthis.loading = false\r\n\t}\r\n\r\n\t/**\r\n\t * List of columns for a table\r\n\t */\r\n\tpublic get columns () {\r\n\t\treturn [\r\n\t\t\t{\r\n\t\t\t\tkey: \"image\",\r\n\t\t\t\thasTemplate: true,\r\n\t\t\t\tinModal: () => false\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tkey: \"name\",\r\n\t\t\t\tlabel: \"Name\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\terrors: (item: any) => item.name ? null : \"Please enter a name\"\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tkey: \"email\",\r\n\t\t\t\tlabel: \"Email\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\treadonly: this.editUser && this.editUser.id,\r\n\t\t\t\terrors: (item: any) => {\r\n\t\t\t\t\tif (this.editUser &&\r\n\t\t\t\t\t\tthis.editUser.id &&\r\n\t\t\t\t\t\tthis.editUser.email === item.email\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn null\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!item.email) return \"Please enter an email address\"\r\n\r\n\t\t\t\t\tconst regx = /\\S+@\\S+\\.\\S+/\r\n\t\t\t\t\tif (!regx.test(String(item.email).toLocaleLowerCase())) {\r\n\t\t\t\t\t\treturn \"Please enter a valid email address\"\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.emailStatus[item.email]) {\r\n\t\t\t\t\t\treturn \"This email address is already in use\"\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tapi.emailExists(item.email).then(exists => {\r\n\t\t\t\t\t\tthis.emailStatus[item.email] = exists\r\n\t\t\t\t\t\tif (exists) this.errorEmailValue = item.email\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\treturn null\r\n\t\t\t\t},\r\n\t\t\t\tstatus: this.emailStatus,\r\n\t\t\t\terrorValue: this.errorEmailValue\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tkey: \"pictureUrl\",\r\n\t\t\t\tlabel: \"Picture\",\r\n\t\t\t\tinTable: false,\r\n\t\t\t\ttooltip: \"Provide a URL to a location where the image is stored for this user.\"\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tkey: \"supportAccess\",\r\n\t\t\t\tlabel: \"Support Session\",\r\n\t\t\t\tinTable: true,\r\n\t\t\t\thasTemplate: true,\r\n\t\t\t\tinModal: () => false\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tkey: \"adAccount\",\r\n\t\t\t\tlabel: \"Active Directory Account\",\r\n\t\t\t\tinTable: false,\r\n\t\t\t\tinModal: (item: any) => this.adEnabled,\r\n\t\t\t\treadonly: this.editUser && this.editUser.id\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\t/**\r\n\t * Loads a list of users for further display in a table\r\n\t */\r\n\tprivate async loadUsers (): Promise {\r\n\t\tthis.users = await systemApi.systemUsers()\r\n\t}\r\n\r\n\t/**\r\n\t * Reloads data for users as well as subscription\r\n\t * after creating or deleting a user\r\n\t */\r\n\tprivate async reloadData (): Promise {\r\n\t\ttry {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.loadUsers()\r\n\t\t\t])\r\n\t\t} catch (err) {\r\n\t\t\tthis.$bvToast.toast(err as any, {\r\n\t\t\t\ttitle: \"Error reload data\",\r\n\t\t\t\tvariant: \"danger\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 10000\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Loads full information about the selected user for further editing\r\n\t */\r\n\tpublic async loadUserDetails (item: User): Promise {\r\n\t\tconst itemClone = cloneDeep(item)\r\n\r\n\t\tthis.editUser = itemClone\r\n\t\tthis.emailStatus = {}\r\n\r\n\t\treturn itemClone\r\n\t}\r\n\r\n\t/**\r\n\t * Create and update a user\r\n\t */\r\n\tpublic async saveItem (user: SystemUser): Promise {\r\n\t\ttry {\r\n\t\t\tawait systemApi.systemUserSave(user)\r\n\t\t} catch (err) {\r\n\t\t\tthis.$bvToast.toast(err as any, {\r\n\t\t\t\ttitle: `Error saving user: ${user.name}`,\r\n\t\t\t\tvariant: \"danger\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 10000\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis.editUser = null\r\n\r\n\t\tawait this.reloadData()\r\n\t}\r\n\r\n\t/**\r\n\t * Remove a user\r\n\t */\r\n\tpublic async deleteItem (user: SystemUser): Promise {\r\n\t\ttry {\r\n\t\t\tawait systemApi.systemUserDelete(user)\r\n\t\t} catch (err) {\r\n\t\t\tthis.$bvToast.toast(err as any, {\r\n\t\t\t\ttitle: `Error deleting user: ${user.name}`,\r\n\t\t\t\tvariant: \"danger\",\r\n\t\t\t\tsolid: true,\r\n\t\t\t\tautoHideDelay: 10000\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis.editUser = null\r\n\t\tthis.emailStatus = {}\r\n\r\n\t\tawait this.reloadData()\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemUsers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemUsers.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemUsers.vue?vue&type=template&id=4d4fa94c&scoped=true&\"\nimport script from \"./SystemUsers.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemUsers.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemUsers.vue?vue&type=style&index=0&id=4d4fa94c&prod&lang=scss&scoped=true&\"\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 \"4d4fa94c\",\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('skeleton',{staticClass:\"d-flex flex-column h-100\",attrs:{\"loading\":_vm.loading}},[_c('data-table',{staticClass:\"h-100\",attrs:{\"allowRowClick\":false,\"canCreateItem\":false,\"dataTypeHeader\":\"System History\",\"items\":_vm.audit,\"columns\":_vm.columns},scopedSlots:_vm._u([{key:\"column.changedAt\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm.displayDateFromISOString(data.item.changedAt))+\" \")]}},{key:\"column.changedBy\",fn:function(data){return [_c('user-image',{attrs:{\"user\":data.item.changedBy,\"showUserName\":true,\"fetchUserPictureUrl\":_vm.fetchUserPictureUrl,\"size\":\"lg\"}})]}},{key:\"column.tenantTitle\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.tenantTitle ? item.tenantTitle : 'System')+\" \")]}},{key:\"column.text\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.text)?_c('span',[_vm._v(_vm._s(item.text))]):(item.fieldName)?_c('div',[(item.oldValue && item.newValue)?_c('span',[_vm._v(_vm._s(item.fieldName)+\" changed from \"+_vm._s(item.oldValueLabel || item.oldValue)+\" to \"+_vm._s(item.newValueLabel || item.newValue))]):(item.oldValue)?_c('span',[_vm._v(_vm._s(item.fieldName)+\" cleared from \"+_vm._s(item.oldValueLabel || item.oldValue))]):(item.newValue)?_c('span',[_vm._v(_vm._s(item.fieldName)+\" set to \"+_vm._s(item.newValueLabel || item.newValue))]):_vm._e()]):_vm._e()]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\"\r\nimport { namespace, Getter, Action, State } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport cloneDeep from \"lodash/cloneDeep\"\r\n\r\nimport { Team } from \"@/types\"\r\nimport User, { SystemUser } from \"@/types/user\"\r\nimport { Subscription } from \"@/types/subscription\"\r\n\r\nimport api from \"@/services/api\"\r\nimport systemApi from \"@/services/api/api_System\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\n\r\nimport SkeletonLoader from \"@/components/SkeletonLoader.vue\"\r\nimport DataTable from \"@/components/Config/DataTable.vue\"\r\nimport UserImage from \"@/components/UserImage.vue\"\r\nimport { SystemAudit } from \"@/types/audit\"\r\n\r\nconst setup = namespace(\"setup\")\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"data-table\": DataTable,\r\n\t\t\"user-image\": UserImage\r\n\t}\r\n})\r\nexport default class SystemHistory extends Vue {\r\n\t@State public systemUser!: SystemUser\r\n\r\n\tpublic users: { [key: string]: SystemUser } = {}\r\n\tpublic audit: SystemAudit[] = []\r\n\tpublic loading: boolean = true;\r\n\r\n\t/**\r\n\t * On mount, get users page.\r\n\t */\r\n\tprivate async mounted (): Promise {\r\n\t\tthis.loading = true\r\n\r\n\t\tthis.users = (await systemApi.systemUsers()).toDictionary(\"id\")\r\n\t\tthis.audit = await systemApi.systemAuditGet()\r\n\r\n\t\tthis.loading = false\r\n\t}\r\n\r\n\t/**\r\n\t * List of columns for a table\r\n\t */\r\n\tpublic get columns () {\r\n\t\treturn [\r\n\t\t\t{\r\n\t\t\t\tkey: \"changedAt\",\r\n\t\t\t\tlabel: \"Time\",\r\n\t\t\t\thasTemplate: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"changedBy\",\r\n\t\t\t\tlabel: \"User\",\r\n\t\t\t\thasTemplate: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"tenantTitle\",\r\n\t\t\t\tlabel: \"Tenant\",\r\n\t\t\t\thasTemplate: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"text\",\r\n\t\t\t\tlabel: \"Message\",\r\n\t\t\t\thasTemplate: true\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tfetchUserPictureUrl (userId: string) {\r\n\t\treturn this.users[userId]\r\n\t\t\t? this.users[userId].pictureUrl\r\n\t\t\t: \"images/blank_user.png\"\r\n\t}\r\n}\r\n\r\n","\r\nimport { Component, Vue } from \"vue-property-decorator\"\r\nimport { Action, State } from \"vuex-class\"\r\n\r\n// @ts-ignore\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\"\r\nimport SkeletonLoader from \"@/components/SkeletonLoader.vue\"\r\n\r\nimport TenantList from \"@/components/System/TenantList.vue\"\r\nimport SystemUsers from \"@/components/System/SystemUsers.vue\"\r\nimport SystemHistory from \"@/components/System/SystemHistory.vue\"\r\n\r\nimport { SystemUser } from \"@/types/user\"\r\n\r\nimport systemApi from \"@/services/api/api_System\"\r\nimport PageWrapper from \"@/components/New/Page/PageWrapper.vue\"\r\n\r\nenum SystemPages {\r\n\tTenants,\r\n\tUsers,\r\n\tHistory\r\n}\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"page\": PageWrapper,\r\n\t\t\"skeleton\": SkeletonLoader,\r\n\t\t\"scrollbar\": VuePerfectScrollbar,\r\n\t\t\"tenant-list\": TenantList,\r\n\t\t\"system-users\": SystemUsers,\r\n\t\t\"system-history\": SystemHistory\r\n\t}\r\n})\r\nexport default class System extends Vue {\r\n\tSystemPages = SystemPages\r\n\r\n\t@State public systemUser!: SystemUser\r\n\r\n\t@Action userInit!: () => Promise\r\n\t@Action finishLogin!: () => Promise\r\n\r\n\tpublic currentPage: SystemPages = SystemPages.Tenants\r\n\r\n\tasync endSupportAccess () {\r\n\t\tawait systemApi.endTenantAccess()\r\n\t\tthis.userInit()\r\n\t}\r\n\r\n\tasync enterTenant () {\r\n\t\tawait systemApi.switchToTenant()\r\n\t\tthis.finishLogin()\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemHistory.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemHistory.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemHistory.vue?vue&type=template&id=c2e921f4&scoped=true&\"\nimport script from \"./SystemHistory.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemHistory.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemHistory.vue?vue&type=style&index=0&id=c2e921f4&prod&lang=scss&scoped=true&\"\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 \"c2e921f4\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./System.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./System.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./System.vue?vue&type=template&id=1759be90&scoped=true&\"\nimport script from \"./System.vue?vue&type=script&lang=ts&\"\nexport * from \"./System.vue?vue&type=script&lang=ts&\"\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 \"1759be90\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemUsers.vue?vue&type=style&index=0&id=4d4fa94c&prod&lang=scss&scoped=true&\""],"sourceRoot":""}