{"version":3,"sources":["webpack:///./src/components/widgets/LogVariablesDialog.vue?c2be","webpack:///./src/components/VesselSelect.vue?90ba","webpack:///./src/components/VesselSelect.vue","webpack:///./src/components/VesselSelect.vue?9349","webpack:///./src/components/VesselSelect.vue?26fa","webpack:///./src/components/VesselSelect.vue?80a0","webpack:///./src/components/widgets/LogVariablesDialog.vue?d686","webpack:///./src/components/widgets/LogVariablesDialog.vue","webpack:///./src/components/widgets/LogVariablesDialog.vue?9749","webpack:///../../../src/components/VTreeview/VTreeviewNode.ts","webpack:///../../../../src/components/VTreeview/util/filterTreeItems.ts","webpack:///../../../src/components/VTreeview/VTreeview.ts","webpack:///./src/components/widgets/LogVariablesDialog.vue?1ac8","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///../../../src/components/VGrid/VLayout.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","vesselGroups","model","value","callback","$$v","vesselGroup","expression","_t","_l","vessel","key","id","hasRequiredFeaturesEnabled","scopedSlots","_u","fn","ref","on","_g","name","$event","onVesselChange","selectedVessels","_v","_s","requiredFeaturesMissing","join","staticRenderFns","VesselGroups","getModule","VesselGroupsModule","store","VesselSelect","vesselIds","reduce","arr","push","vesselsList","find","$emit","vesselEnabledFeaturesNameList","features","map","feature","requiredFeatures","every","includes","missingFeatures","filter","f","Vue","__decorate","PropSync","type","Array","default","Prop","required","Component","component","VCheckbox","VList","VListItem","VSelect","VTooltip","dialogWidth","close","isModalActive","selectedVessel","staticStyle","searchTaxonomy","_b","categorizedTaxonomyList","openCategories","setVesselFilteredVariables","selectedTaxonomyList","_e","displayTaxonomyTree","searchVariable","filteredVesselLogVariables","variable","i","preventDefault","setVesselSelectedVariable","isUnitAccAllowed","unit","caption","class","Taxonomy","TaxonomyModule","LogVariables","LogVariablesModule","LogVariablesDialog","accumulatedAllowedUnits","currentState","toLowerCase","_","pluck","syncColumn","columnFirstVariable","logVariables","vesselId","vesselLogVariables","getVesselLogVariables","uniqVesselLogVariables","filterDuplicateLogVariables","columnFirstVesselLogVariable","isColumnFirstVariableSelected","resetVariables","columnLogVariables","variableIndex","findIndex","item","set","selectedTaxonomyNames","length","firstVesselSelectedLogVariableUnit","filteredByTaxonomy","validateLogVariablesByUnit","filteredByFirstColumnLogVariableUnit","vesselsLogVariables","uniq","unitType","filteredLogVariables","forEach","taxa","taxaItem","Boolean","Watch","components","baseMixins","mixins","Colorable","RegistrableInject","VTreeviewNodeProps","activatable","activeClass","String","color","disablePerNode","expandIcon","indeterminateIcon","itemChildren","itemDisabled","itemKey","itemText","loadChildren","Function","loadingIcon","offIcon","onIcon","openOnClick","rounded","selectable","selectedColor","shaped","transition","selectionType","validator","v","VTreeviewNode","extend","inject","treeview","props","level","Number","Object","parentIsDisabled","data","hasLoaded","isActive","isIndeterminate","isLoading","isOpen","isSelected","computed","disabled","getObjectValueByPath","children","child","isExcluded","text","scopedProps","leaf","selected","indeterminate","active","open","computedIcon","hasChildren","created","register","beforeDestroy","unregister","methods","checkChildren","Promise","resolve","then","updateOpen","emitOpen","genLabel","$scopedSlots","label","slot","genPrependSlot","prepend","genAppendSlot","append","genContent","genToggle","VIcon","click","e","stopPropagation","genCheckbox","undefined","$nextTick","updateSelected","emitSelected","genLevel","createRange","genNode","unshift","setTextColor","updateActive","emitActive","genChild","genChildrenWrapper","c","genTransition","VExpandTransition","h","filterTreeItem","search","textKey","toLocaleLowerCase","indexOf","filterTreeItems","idKey","childrenKey","excluded","match","add","RegistrableProvide","Themeable","provide","dense","hoverable","items","multipleActive","openAll","returnObject","activeCache","Set","nodes","openCache","selectedCache","excludedItems","watch","handler","oldKeys","keys","k","newKeys","getKeys","diff","arrayDiff","oldSelectedCache","buildTree","deepEqual","deep","handleNodeCacheWatcher","getValue","mounted","$slots","consoleWarn","updateAll","parent","oldNode","hasOwnProperty","vnode","node","calculateState","updateVnodeState","state","counts","emitNodeCache","event","cache","updateFn","emitFn","old","getDescendants","descendants","getParents","parents","isParent","delete","isForced","changed","Map","descendant","calculated","entries","has","options","bind","themeClasses","VBtn","VCard","VCardActions","VCardText","VDialog","VLayout","VListItemGroup","VListItemTitle","VSheet","VSpacer","VTextField","VToolbar","VToolbarTitle","VTreeview","collection","collectionStrong","init","arguments","Grid"],"mappings":"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","file":"js/chunk-7856a434.27840af3.js","sourcesContent":["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!./LogVariablesDialog.vue?vue&type=style&index=0&id=cb27ab90&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"vessel-select\"},[_c('div',{staticClass:\"vessel-select__header d-flex px-4 mb-4\"},[_c('v-select',{staticClass:\"vessel-group-select mr-16\",attrs:{\"return-object\":\"\",\"item-text\":\"name\",\"items\":_vm.vesselGroups,\"label\":\"Vessel group\",\"no-data-text\":\"No available vessel groups\",\"clearable\":\"\",\"hide-details\":\"\"},model:{value:(_vm.vesselGroup),callback:function ($$v) {_vm.vesselGroup=$$v},expression:\"vesselGroup\"}}),_vm._t(\"additional-inputs\")],2),_c('v-list',{staticClass:\"d-flex flex-wrap py-3\"},[_vm._l((_vm.filteredExtendedVessels),function(vessel){return _c('v-tooltip',{key:vessel.id,attrs:{\"disabled\":_vm.hasRequiredFeaturesEnabled(vessel),\"top\":\"\",\"color\":\"primary lighten-2\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-list-item',_vm._g({staticClass:\"vessel-list__item d-flex align-center justify-space-between\"},on),[_vm._t(\"checkbox-disabled\",null,{\"vessel\":vessel}),_c('v-checkbox',{attrs:{\"value\":vessel,\"label\":vessel.name,\"indeterminate\":!_vm.hasRequiredFeaturesEnabled(vessel),\"disabled\":!_vm.hasRequiredFeaturesEnabled(vessel),\"return-object\":\"\",\"color\":\"primary\",\"hide-details\":\"\"},on:{\"change\":function($event){return _vm.onVesselChange(vessel)}},model:{value:(_vm.selectedVessels),callback:function ($$v) {_vm.selectedVessels=$$v},expression:\"selectedVessels\"}}),_vm._t(\"checkbox-append-content\",null,{\"vessel\":vessel})],2)]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.requiredFeaturesMissing(vessel).join(\" ,\"))+\" is not activated for this vessel\")])])})],2),_vm._t(\"footer-content\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, PropSync } from \"vue-property-decorator\";\nimport { getModule } from \"vuex-module-decorators\";\nimport store from \"@/store\";\n// types\nimport { VesselGroup } from \"@/types/vesselGroup\";\nimport { ExtendedVessel } from \"@/types/vessel\";\n// modules\nimport VesselGroupsModule from \"@/store/clients/VesselGroups.module\";\n\nconst VesselGroups = getModule(VesselGroupsModule, store);\n\n@Component({})\nexport default class VesselSelect extends Vue {\n @PropSync(\"selectedVesselsList\", { type: Array, default: () => [] }) selectedVessels!: ExtendedVessel[];\n @Prop({ type: Array, default: () => [], required: true }) vesselsList!: ExtendedVessel[];\n @Prop({ type: Array, default: () => [] }) requiredFeatures!: string[];\n\n vesselGroup: VesselGroup | null = null;\n\n //returns vessels, and filters by vessel group if one is selected\n get filteredExtendedVessels(): ExtendedVessel[] {\n if (this.vesselGroup) {\n return this.vesselGroup.vesselIds.reduce((arr, id) => {\n arr.push(this.vesselsList.find(vessel => vessel.id === id));\n return arr;\n }, [] as any[]);\n }\n\n return this.vesselsList;\n }\n\n get vesselGroups(): VesselGroup[] {\n return VesselGroups.vesselGroups;\n }\n\n onVesselChange(vessel: ExtendedVessel): void {\n this.$emit(\"onVesselChange\", vessel);\n }\n\n hasRequiredFeaturesEnabled(vessel: ExtendedVessel): boolean {\n const vesselEnabledFeaturesNameList = vessel.features.map(feature => feature.name);\n return this.requiredFeatures.every(feature => vesselEnabledFeaturesNameList.includes(feature));\n }\n\n requiredFeaturesMissing(vessel: ExtendedVessel): string[] {\n const vesselEnabledFeaturesNameList = vessel.features.map(feature => feature.name);\n const missingFeatures = this.requiredFeatures.filter(feature => !vesselEnabledFeaturesNameList.includes(feature));\n return missingFeatures.map(f => (f === \"Notifications\" ? \"Notifications\" : f));\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VesselSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VesselSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VesselSelect.vue?vue&type=template&id=38655d80&scoped=true&\"\nimport script from \"./VesselSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./VesselSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VesselSelect.vue?vue&type=style&index=0&id=38655d80&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 \"38655d80\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCheckbox,VList,VListItem,VSelect,VTooltip})\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!./VesselSelect.vue?vue&type=style&index=0&id=38655d80&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":_vm.dialogWidth,\"content-class\":\"LogVariablesDialog\",\"scrollable\":\"\"},on:{\"click:outside\":function($event){return _vm.close()}},model:{value:(_vm.isModalActive),callback:function ($$v) {_vm.isModalActive=$$v},expression:\"isModalActive\"}},[_c('v-card',{attrs:{\"max-height\":\"960px\",\"color\":\"blue-grey lighten-5\"}},[_c('v-toolbar',{staticClass:\"font-weight-medium\",attrs:{\"dark\":\"\",\"dense\":\"\",\"color\":\"accentDarker110\"}},[_c('v-toolbar-title',[_vm._v(\" Select variable \"),_c('v-icon',[_vm._v(\"arrow_right\")]),_vm._v(\" \"+_vm._s(_vm.selectedVessel ? _vm.selectedVessel.name : '')+\" \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\",\"plain\":\"\"},on:{\"click\":function($event){return _vm.close()}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1),_c('v-card-text',{staticClass:\"pa-5\",staticStyle:{\"height\":\"100%\"}},[_c('v-layout',{attrs:{\"justify-space-between\":\"\",\"fill-height\":\"\"}},[(_vm.displayTaxonomyTree)?_c('v-card',{staticClass:\"variable-tree-view\",attrs:{\"width\":\"49%\"}},[_c('v-sheet',{staticClass:\"d-flex pa-4 secondary\"},[_c('v-text-field',{attrs:{\"label\":\"Search Filters...\",\"dark\":\"\",\"flat\":\"\",\"solo-inverted\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"dense\":\"\",\"clear-icon\":\"mdi-close-circle-outline\"},model:{value:(_vm.searchTaxonomy),callback:function ($$v) {_vm.searchTaxonomy=$$v},expression:\"searchTaxonomy\"}}),_c('v-tooltip',{attrs:{\"max-width\":\"400px\",\"color\":\"primary\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-2\",attrs:{\"color\":\"white\",\"dark\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}],null,false,1539172379)},[_c('span',[_c('p',[_vm._v(\" In this column you can select categories you want to filter the variables on. \")]),_c('p',[_vm._v(\" Not all variables are sorted into categories. If you can not find the variable you are looking for, we recommend using the \"),_c('b',[_vm._v(\"'Search Variables'\")]),_vm._v(\" function. \")]),_c('p',[_vm._v(\" Note: in order to search among all variables, make sure you have unchecked all filters. \")])])])],1),_c('v-card-text',{staticClass:\"variable-tree-view__list\"},[_c('v-treeview',{attrs:{\"items\":_vm.categorizedTaxonomyList,\"item-key\":\"name\",\"item-children\":\"taxons\",\"search\":_vm.searchTaxonomy,\"selected-color\":\"primary\",\"open\":_vm.openCategories,\"open-on-click\":\"\",\"return-object\":\"\",\"selectable\":\"\",\"transition\":\"\",\"hoverable\":\"\"},on:{\"input\":function($event){return _vm.setVesselFilteredVariables()},\"update:open\":function($event){_vm.openCategories=$event}},model:{value:(_vm.selectedTaxonomyList),callback:function ($$v) {_vm.selectedTaxonomyList=$$v},expression:\"selectedTaxonomyList\"}})],1)],1):_vm._e(),_c('v-card',{staticClass:\"filtred-variables\",attrs:{\"width\":_vm.displayTaxonomyTree ? '49%' : '100%'}},[_c('v-sheet',{staticClass:\"pa-4 secondary\"},[_c('v-text-field',{attrs:{\"label\":\"Search Variables...\",\"clear-icon\":\"mdi-close-circle-outline\",\"dark\":\"\",\"flat\":\"\",\"dense\":\"\",\"solo-inverted\":\"\",\"hide-details\":\"\",\"clearable\":\"\"},on:{\"input\":function($event){return _vm.setVesselFilteredVariables()}},model:{value:(_vm.searchVariable),callback:function ($$v) {_vm.searchVariable=$$v},expression:\"searchVariable\"}})],1),_c('v-card-text',{staticClass:\"filtred-variables__list\"},[(_vm.filteredVesselLogVariables.length)?_c('v-list',{staticClass:\"variable-list\"},[_c('v-list-item-group',_vm._l((_vm.filteredVesselLogVariables),function(variable,i){return _c('v-list-item',{key:i,on:{\"click\":function($event){$event.preventDefault();return _vm.setVesselSelectedVariable(variable)}}},[_c('v-list-item-title',[_c('v-tooltip',{attrs:{\"disabled\":!_vm.isUnitAccAllowed(variable.unit.caption),\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('p',_vm._g(_vm._b({staticClass:\"ma-0 d-flex justify-space-between\"},'p',attrs,false),on),[_vm._v(\" \"+_vm._s(variable.name)+\" \"),_c('span',{staticClass:\"unit px-2 py-1\",class:{'unit_acc-allowed': _vm.isUnitAccAllowed(variable.unit.caption)}},[_vm._v(_vm._s(variable.unit.name))])])]}}],null,true)},[_c('span',[_vm._v(\"Variable allowed for accumulated calculations\")])])],1)],1)}),1)],1):_c('p',{staticClass:\"text-subtitle-2\"},[_vm._v(\"There are no matching results\")])],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"flex-column\"},[(_vm.displayTaxonomyTree)?_c('v-layout',{staticClass:\"ml-auto mr-9 mb-4 mt-n4\"},[_c('div',{staticClass:\"d-flex mr-4 align-end\"},[_c('span',{staticClass:\"color-blob color-blob--acc\"}),_c('span',[_vm._v(\"Accumulated value available\")])]),_c('div',{staticClass:\"d-flex align-end\"},[_c('span',{staticClass:\"color-blob color-blob--not-acc\",attrs:{\"dark\":\"\"}}),_c('span',[_vm._v(\"Accumulated value not available\")])])]):_vm._e(),_c('v-btn',{staticClass:\"ml-auto font-weight-semibold\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\" Cancel \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Watch, Vue } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport _ from \"underscore\";\n// types\nimport { VesselDataWidgetColumn } from \"@/types/VesselDataWidgetColumn\";\nimport { Category as TaxonomyCategory } from \"@/types/taxonomy/category\";\nimport { LogVariable } from \"@/types/logVariable\";\nimport { ExtendedVessel } from \"@/types/vessel\";\nimport { LogVariableTaxon } from \"@/types/logVariableTaxon\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport TaxonomyModule from \"@/store/clients/Taxonomy.module\";\nimport LogVariablesModule from \"@/store/clients/LogVariables.module\";\n\nconst Taxonomy = getModule(TaxonomyModule, store);\nconst LogVariables = getModule(LogVariablesModule, store);\n\n@Component({\n components: {},\n})\nexport default class LogVariablesDialog extends Vue {\n @PropSync(\"value\", { required: true }) isModalActive!: boolean;\n @PropSync(\"maxWidth\", { default: 1000 }) dialogWidth!: number;\n @PropSync(\"column\", { required: true }) syncColumn!: VesselDataWidgetColumn;\n @Prop({ required: true }) selectedVessel!: ExtendedVessel;\n @Prop({ type: Boolean, default: true }) validateLogVariablesByUnit!: boolean;\n @Prop({ type: Boolean, default: true }) displayTaxonomyTree!: boolean;\n\n selectedTaxonomyList: [] = [];\n filteredVesselLogVariables: [] | any = [];\n openCategories = [];\n searchTaxonomy: string | null = null;\n searchVariable: string | null = null;\n accumulatedAllowedUnits = [\"rpm\", \"MT/hr\", \"MT/day\", \"knot\", \"kW\", \"kg/hr\", \"l/hr\"];\n\n @Watch(\"isModalActive\")\n onModalActive(currentState: boolean): void {\n if (!currentState) return;\n this.selectedTaxonomyList = [];\n this.setVesselFilteredVariables();\n }\n\n @Watch(\"searchVariable\")\n onSearchVariableInput(searchVariable: string): void {\n if (!searchVariable) return;\n this.filteredVesselLogVariables = this.filteredVesselLogVariables.filter((variable: LogVariable) => variable.name.toLowerCase().includes(searchVariable.toLowerCase()));\n }\n\n get categorizedTaxonomyList(): TaxonomyCategory[] {\n return Taxonomy.categorizedTaxonomyList;\n }\n\n get selectedTaxonomyNames(): string[] {\n return _.pluck(this.selectedTaxonomyList, \"fullName\");\n }\n\n get isColumnFirstVariableSelected(): boolean {\n if (!this.syncColumn) return false;\n const columnFirstVariable = this.syncColumn.logVariables[0];\n if (!columnFirstVariable) return false;\n return this.selectedVessel.id === columnFirstVariable.vesselId;\n }\n\n get filteredByFirstColumnLogVariableUnit(): LogVariable[] {\n const vesselLogVariables: any = this.getVesselLogVariables(this.selectedVessel.id);\n const uniqVesselLogVariables: LogVariable[] = this.filterDuplicateLogVariables(vesselLogVariables);\n const columnFirstVesselLogVariable = this.syncColumn?.logVariables[0];\n if (columnFirstVesselLogVariable && !this.isColumnFirstVariableSelected) {\n return uniqVesselLogVariables.filter(variable => variable.unit.caption === columnFirstVesselLogVariable?.unit?.caption);\n } else {\n return uniqVesselLogVariables;\n }\n }\n\n close(): void {\n this.isModalActive = false;\n this.resetVariables();\n }\n\n isUnitAccAllowed(unit: string): boolean {\n return this.accumulatedAllowedUnits.includes(unit);\n }\n\n resetVariables(): void {\n this.filteredVesselLogVariables = [];\n this.selectedTaxonomyList = [];\n this.openCategories = [];\n this.searchTaxonomy = null;\n this.searchVariable = null;\n }\n\n setVesselSelectedVariable(variable: LogVariable): void {\n this.isModalActive = false;\n this.openCategories = [];\n this.searchVariable = null;\n const columnLogVariables = this.syncColumn.logVariables;\n const variableIndex = columnLogVariables.findIndex(item => item.vesselId === variable.vesselId);\n if (variableIndex !== -1) {\n Vue.set(columnLogVariables, variableIndex, variable);\n } else {\n this.syncColumn.logVariables.push(variable);\n }\n }\n\n setVesselFilteredVariables(): void {\n if (this.selectedTaxonomyNames.length && !this.isColumnFirstVariableSelected) {\n const firstVesselSelectedLogVariableUnit = this.syncColumn.logVariables[0]?.unit?.caption;\n this.filteredVesselLogVariables = this.filteredByTaxonomy(this.selectedVessel.id, firstVesselSelectedLogVariableUnit);\n } else if (this.selectedTaxonomyNames.length) {\n this.filteredVesselLogVariables = this.filteredByTaxonomy(this.selectedVessel.id);\n } else if (this.validateLogVariablesByUnit) {\n this.filteredVesselLogVariables = this.filteredByFirstColumnLogVariableUnit;\n } else {\n const vesselLogVariables: any = this.getVesselLogVariables(this.selectedVessel.id);\n this.filteredVesselLogVariables = this.filterDuplicateLogVariables(vesselLogVariables);\n }\n }\n\n getVesselLogVariables(vesselId: number): LogVariable[] | undefined {\n if (!vesselId) return;\n return LogVariables.vesselsLogVariables.find(vessel => vessel.vesselId === vesselId)?.logVariables;\n }\n\n filterDuplicateLogVariables(logVariables: LogVariable[]): LogVariable[] {\n return _.uniq(logVariables, variable => variable.name);\n }\n\n filteredByTaxonomy(vesselId: number, unitType: string | null = null): LogVariable[] {\n const filteredLogVariables: LogVariable[] = [];\n const vesselLogVariables: any = this.getVesselLogVariables(vesselId);\n\n vesselLogVariables.forEach((variable: LogVariable) => {\n if (!variable.taxa) return;\n variable.taxa.forEach((taxaItem: LogVariableTaxon) => {\n if (unitType && this.selectedTaxonomyNames.includes(taxaItem.name) && variable.unit.caption === unitType) {\n filteredLogVariables.push(variable);\n } else if (!unitType && this.selectedTaxonomyNames.includes(taxaItem.name)) {\n filteredLogVariables.push(variable);\n }\n });\n });\n return this.filterDuplicateLogVariables(filteredLogVariables);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogVariablesDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogVariablesDialog.vue?vue&type=script&lang=ts&\"","// Components\nimport { VExpandTransition } from '../transitions'\nimport { VIcon } from '../VIcon'\nimport VTreeview from './VTreeview'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getObjectValueByPath, createRange } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VTreeViewInstance = InstanceType\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('treeview')\n)\n\ninterface options extends ExtractVue {\n treeview: VTreeViewInstance\n}\n\nexport const VTreeviewNodeProps = {\n activatable: Boolean,\n activeClass: {\n type: String,\n default: 'v-treeview-node--active',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disablePerNode: Boolean,\n expandIcon: {\n type: String,\n default: '$subgroup',\n },\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n itemChildren: {\n type: String,\n default: 'children',\n },\n itemDisabled: {\n type: String,\n default: 'disabled',\n },\n itemKey: {\n type: String,\n default: 'id',\n },\n itemText: {\n type: String,\n default: 'name',\n },\n loadChildren: Function as PropType<(item: any) => Promise>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n openOnClick: Boolean,\n rounded: Boolean,\n selectable: Boolean,\n selectedColor: {\n type: String,\n default: 'accent',\n },\n shaped: Boolean,\n transition: Boolean,\n selectionType: {\n type: String as PropType<'leaf' | 'independent'>,\n default: 'leaf',\n validator: (v: string) => ['leaf', 'independent'].includes(v),\n },\n}\n\n/* @vue/component */\nconst VTreeviewNode = baseMixins.extend().extend({\n name: 'v-treeview-node',\n\n inject: {\n treeview: {\n default: null,\n },\n },\n\n props: {\n level: Number,\n item: {\n type: Object,\n default: () => null,\n } as PropValidator | null>,\n parentIsDisabled: Boolean,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n hasLoaded: false,\n isActive: false, // Node is selected (row)\n isIndeterminate: false, // Node has at least one selected child\n isLoading: false,\n isOpen: false, // Node is open/expanded\n isSelected: false, // Node is selected (checkbox)\n }),\n\n computed: {\n disabled (): boolean {\n return (\n getObjectValueByPath(this.item, this.itemDisabled) ||\n (!this.disablePerNode && (this.parentIsDisabled && this.selectionType === 'leaf'))\n )\n },\n key (): string {\n return getObjectValueByPath(this.item, this.itemKey)\n },\n children (): any[] | null {\n const children = getObjectValueByPath(this.item, this.itemChildren)\n return children && children.filter((child: any) => !this.treeview.isExcluded(getObjectValueByPath(child, this.itemKey)))\n },\n text (): string {\n return getObjectValueByPath(this.item, this.itemText)\n },\n scopedProps (): object {\n return {\n item: this.item,\n leaf: !this.children,\n selected: this.isSelected,\n indeterminate: this.isIndeterminate,\n active: this.isActive,\n open: this.isOpen,\n }\n },\n computedIcon (): string {\n if (this.isIndeterminate) return this.indeterminateIcon\n else if (this.isSelected) return this.onIcon\n else return this.offIcon\n },\n hasChildren (): boolean {\n return !!this.children && (!!this.children.length || !!this.loadChildren)\n },\n },\n\n created () {\n this.treeview.register(this)\n },\n\n beforeDestroy () {\n this.treeview.unregister(this)\n },\n\n methods: {\n checkChildren (): Promise {\n return new Promise(resolve => {\n // TODO: Potential issue with always trying\n // to load children if response is empty?\n if (!this.children || this.children.length || !this.loadChildren || this.hasLoaded) return resolve()\n\n this.isLoading = true\n resolve(this.loadChildren(this.item))\n }).then(() => {\n this.isLoading = false\n this.hasLoaded = true\n })\n },\n open () {\n this.isOpen = !this.isOpen\n this.treeview.updateOpen(this.key, this.isOpen)\n this.treeview.emitOpen()\n },\n genLabel () {\n const children = []\n\n if (this.$scopedSlots.label) children.push(this.$scopedSlots.label(this.scopedProps))\n else children.push(this.text)\n\n return this.$createElement('div', {\n slot: 'label',\n staticClass: 'v-treeview-node__label',\n }, children)\n },\n genPrependSlot () {\n if (!this.$scopedSlots.prepend) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__prepend',\n }, this.$scopedSlots.prepend(this.scopedProps))\n },\n genAppendSlot () {\n if (!this.$scopedSlots.append) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__append',\n }, this.$scopedSlots.append(this.scopedProps))\n },\n genContent () {\n const children = [\n this.genPrependSlot(),\n this.genLabel(),\n this.genAppendSlot(),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__content',\n }, children)\n },\n genToggle () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__toggle',\n class: {\n 'v-treeview-node__toggle--open': this.isOpen,\n 'v-treeview-node__toggle--loading': this.isLoading,\n },\n slot: 'prepend',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => this.open())\n },\n },\n }, [this.isLoading ? this.loadingIcon : this.expandIcon])\n },\n genCheckbox () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__checkbox',\n props: {\n color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined,\n disabled: this.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => {\n // We nextTick here so that items watch in VTreeview has a chance to run first\n this.$nextTick(() => {\n this.isSelected = !this.isSelected\n this.isIndeterminate = false\n\n this.treeview.updateSelected(this.key, this.isSelected)\n this.treeview.emitSelected()\n })\n })\n },\n },\n }, [this.computedIcon])\n },\n genLevel (level: number) {\n return createRange(level).map(() => this.$createElement('div', {\n staticClass: 'v-treeview-node__level',\n }))\n },\n genNode () {\n const children = [this.genContent()]\n\n if (this.selectable) children.unshift(this.genCheckbox())\n\n if (this.hasChildren) {\n children.unshift(this.genToggle())\n } else {\n children.unshift(...this.genLevel(1))\n }\n\n children.unshift(...this.genLevel(this.level))\n\n return this.$createElement('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-treeview-node__root',\n class: {\n [this.activeClass]: this.isActive,\n },\n on: {\n click: () => {\n if (this.openOnClick && this.hasChildren) {\n this.checkChildren().then(this.open)\n } else if (this.activatable && !this.disabled) {\n this.isActive = !this.isActive\n this.treeview.updateActive(this.key, this.isActive)\n this.treeview.emitActive()\n }\n },\n },\n }), children)\n },\n genChild (item: any, parentIsDisabled: boolean) {\n return this.$createElement(VTreeviewNode, {\n key: getObjectValueByPath(item, this.itemKey),\n props: {\n activatable: this.activatable,\n activeClass: this.activeClass,\n item,\n selectable: this.selectable,\n selectedColor: this.selectedColor,\n color: this.color,\n disablePerNode: this.disablePerNode,\n expandIcon: this.expandIcon,\n indeterminateIcon: this.indeterminateIcon,\n offIcon: this.offIcon,\n onIcon: this.onIcon,\n loadingIcon: this.loadingIcon,\n itemKey: this.itemKey,\n itemText: this.itemText,\n itemDisabled: this.itemDisabled,\n itemChildren: this.itemChildren,\n loadChildren: this.loadChildren,\n transition: this.transition,\n openOnClick: this.openOnClick,\n rounded: this.rounded,\n shaped: this.shaped,\n level: this.level + 1,\n selectionType: this.selectionType,\n parentIsDisabled,\n },\n scopedSlots: this.$scopedSlots,\n })\n },\n genChildrenWrapper () {\n if (!this.isOpen || !this.children) return null\n\n const children = [this.children.map(c => this.genChild(c, this.disabled))]\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__children',\n }, children)\n },\n genTransition () {\n return this.$createElement(VExpandTransition, [this.genChildrenWrapper()])\n },\n },\n\n render (h): VNode {\n const children: VNodeChildren = [this.genNode()]\n\n if (this.transition) children.push(this.genTransition())\n else children.push(this.genChildrenWrapper())\n\n return h('div', {\n staticClass: 'v-treeview-node',\n class: {\n 'v-treeview-node--leaf': !this.hasChildren,\n 'v-treeview-node--click': this.openOnClick,\n 'v-treeview-node--disabled': this.disabled,\n 'v-treeview-node--rounded': this.rounded,\n 'v-treeview-node--shaped': this.shaped,\n 'v-treeview-node--selected': this.isSelected,\n },\n attrs: {\n 'aria-expanded': String(this.isOpen),\n },\n }, children)\n },\n})\n\nexport default VTreeviewNode\n","import { getObjectValueByPath } from '../../../util/helpers'\nimport { TreeviewItemFunction } from 'vuetify/types'\n\nexport function filterTreeItem (item: object, search: string, textKey: string): boolean {\n const text = getObjectValueByPath(item, textKey)\n\n return text.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1\n}\n\nexport function filterTreeItems (\n filter: TreeviewItemFunction,\n item: any,\n search: string,\n idKey: string,\n textKey: string,\n childrenKey: string,\n excluded: Set\n): boolean {\n if (filter(item, search, textKey)) {\n return true\n }\n\n const children = getObjectValueByPath(item, childrenKey)\n\n if (children) {\n let match = false\n for (let i = 0; i < children.length; i++) {\n if (filterTreeItems(filter, children[i], search, idKey, textKey, childrenKey, excluded)) {\n match = true\n }\n }\n\n if (match) return true\n }\n\n excluded.add(getObjectValueByPath(item, idKey))\n\n return false\n}\n","// Styles\nimport './VTreeview.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { TreeviewItemFunction } from 'vuetify/types'\n\n// Components\nimport VTreeviewNode, { VTreeviewNodeProps } from './VTreeviewNode'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utils\nimport {\n arrayDiff,\n deepEqual,\n getObjectValueByPath,\n} from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport {\n filterTreeItems,\n filterTreeItem,\n} from './util/filterTreeItems'\n\ntype VTreeviewNodeInstance = InstanceType\n\ntype NodeCache = Set\ntype NodeArray = (string | number)[]\n\ntype NodeState = {\n parent: number | string | null\n children: (number | string)[]\n vnode: VTreeviewNodeInstance | null\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n isOpen: boolean\n item: any\n}\n\nexport default mixins(\n RegistrableProvide('treeview'),\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-treeview',\n\n provide (): object {\n return { treeview: this }\n },\n\n props: {\n active: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n dense: Boolean,\n disabled: Boolean,\n filter: Function as PropType,\n hoverable: Boolean,\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n multipleActive: Boolean,\n open: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n openAll: Boolean,\n returnObject: {\n type: Boolean,\n default: false, // TODO: Should be true in next major\n },\n search: String,\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n level: -1,\n activeCache: new Set() as NodeCache,\n nodes: {} as Record,\n openCache: new Set() as NodeCache,\n selectedCache: new Set() as NodeCache,\n }),\n\n computed: {\n excludedItems (): Set {\n const excluded = new Set()\n\n if (!this.search) return excluded\n\n for (let i = 0; i < this.items.length; i++) {\n filterTreeItems(\n this.filter || filterTreeItem,\n this.items[i],\n this.search,\n this.itemKey,\n this.itemText,\n this.itemChildren,\n excluded\n )\n }\n\n return excluded\n },\n },\n\n watch: {\n items: {\n handler () {\n const oldKeys = Object.keys(this.nodes).map(k => getObjectValueByPath(this.nodes[k].item, this.itemKey))\n const newKeys = this.getKeys(this.items)\n const diff = arrayDiff(newKeys, oldKeys)\n\n // We only want to do stuff if items have changed\n if (!diff.length && newKeys.length < oldKeys.length) return\n\n // If nodes are removed we need to clear them from this.nodes\n diff.forEach(k => delete this.nodes[k])\n\n const oldSelectedCache = [...this.selectedCache]\n this.selectedCache = new Set()\n this.activeCache = new Set()\n this.openCache = new Set()\n this.buildTree(this.items)\n\n // Only emit selected if selection has changed\n // as a result of items changing. This fixes a\n // potential double emit when selecting a node\n // with dynamic children\n if (!deepEqual(oldSelectedCache, [...this.selectedCache])) this.emitSelected()\n },\n deep: true,\n },\n active (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.activeCache, this.updateActive, this.emitActive)\n },\n value (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.selectedCache, this.updateSelected, this.emitSelected)\n },\n open (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.openCache, this.updateOpen, this.emitOpen)\n },\n },\n\n created () {\n const getValue = (key: string | number) => this.returnObject ? getObjectValueByPath(key, this.itemKey) : key\n\n this.buildTree(this.items)\n\n for (const value of this.value.map(getValue)) {\n this.updateSelected(value, true, true)\n }\n\n for (const active of this.active.map(getValue)) {\n this.updateActive(active, true)\n }\n },\n\n mounted () {\n // Save the developer from themselves\n if (this.$slots.prepend || this.$slots.append) {\n consoleWarn('The prepend and append slots require a slot-scope attribute', this)\n }\n\n if (this.openAll) {\n this.updateAll(true)\n } else {\n this.open.forEach(key => this.updateOpen(this.returnObject ? getObjectValueByPath(key, this.itemKey) : key, true))\n this.emitOpen()\n }\n },\n\n methods: {\n /** @public */\n updateAll (value: boolean) {\n Object.keys(this.nodes).forEach(key => this.updateOpen(getObjectValueByPath(this.nodes[key].item, this.itemKey), value))\n this.emitOpen()\n },\n getKeys (items: any[], keys: any[] = []) {\n for (let i = 0; i < items.length; i++) {\n const key = getObjectValueByPath(items[i], this.itemKey)\n keys.push(key)\n const children = getObjectValueByPath(items[i], this.itemChildren)\n if (children) {\n keys.push(...this.getKeys(children))\n }\n }\n\n return keys\n },\n buildTree (items: any[], parent: (string | number | null) = null) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = getObjectValueByPath(item, this.itemKey)\n const children = getObjectValueByPath(item, this.itemChildren) ?? []\n const oldNode = this.nodes.hasOwnProperty(key) ? this.nodes[key] : {\n isSelected: false, isIndeterminate: false, isActive: false, isOpen: false, vnode: null,\n } as NodeState\n\n const node: any = {\n vnode: oldNode.vnode,\n parent,\n children: children.map((c: any) => getObjectValueByPath(c, this.itemKey)),\n item,\n }\n\n this.buildTree(children, key)\n\n // This fixed bug with dynamic children resetting selected parent state\n if (!this.nodes.hasOwnProperty(key) && parent !== null && this.nodes.hasOwnProperty(parent)) {\n node.isSelected = this.nodes[parent].isSelected\n } else {\n node.isSelected = oldNode.isSelected\n node.isIndeterminate = oldNode.isIndeterminate\n }\n\n node.isActive = oldNode.isActive\n node.isOpen = oldNode.isOpen\n\n this.nodes[key] = node\n\n if (children.length && this.selectionType !== 'independent') {\n const { isSelected, isIndeterminate } = this.calculateState(key, this.nodes)\n\n node.isSelected = isSelected\n node.isIndeterminate = isIndeterminate\n }\n\n // Don't forget to rebuild cache\n if (this.nodes[key].isSelected && (this.selectionType === 'independent' || node.children.length === 0)) this.selectedCache.add(key)\n if (this.nodes[key].isActive) this.activeCache.add(key)\n if (this.nodes[key].isOpen) this.openCache.add(key)\n\n this.updateVnodeState(key)\n }\n },\n calculateState (node: string | number, state: Record) {\n const children = state[node].children\n const counts = children.reduce((counts: number[], child: string | number) => {\n counts[0] += +Boolean(state[child].isSelected)\n counts[1] += +Boolean(state[child].isIndeterminate)\n\n return counts\n }, [0, 0])\n\n const isSelected = !!children.length && counts[0] === children.length\n const isIndeterminate = !isSelected && (counts[0] > 0 || counts[1] > 0)\n\n return {\n isSelected,\n isIndeterminate,\n }\n },\n emitOpen () {\n this.emitNodeCache('update:open', this.openCache)\n },\n emitSelected () {\n this.emitNodeCache('input', this.selectedCache)\n },\n emitActive () {\n this.emitNodeCache('update:active', this.activeCache)\n },\n emitNodeCache (event: string, cache: NodeCache) {\n this.$emit(event, this.returnObject ? [...cache].map(key => this.nodes[key].item) : [...cache])\n },\n handleNodeCacheWatcher (value: any[], cache: NodeCache, updateFn: Function, emitFn: Function) {\n value = this.returnObject ? value.map(v => getObjectValueByPath(v, this.itemKey)) : value\n const old = [...cache]\n if (deepEqual(old, value)) return\n\n old.forEach(key => updateFn(key, false))\n value.forEach(key => updateFn(key, true))\n\n emitFn()\n },\n getDescendants (key: string | number, descendants: NodeArray = []) {\n const children = this.nodes[key].children\n\n descendants.push(...children)\n\n for (let i = 0; i < children.length; i++) {\n descendants = this.getDescendants(children[i], descendants)\n }\n\n return descendants\n },\n getParents (key: string | number) {\n let parent = this.nodes[key].parent\n\n const parents = []\n while (parent !== null) {\n parents.push(parent)\n parent = this.nodes[parent].parent\n }\n\n return parents\n },\n register (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n this.nodes[key].vnode = node\n\n this.updateVnodeState(key)\n },\n unregister (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n if (this.nodes[key]) this.nodes[key].vnode = null\n },\n isParent (key: string | number) {\n return this.nodes[key].children && this.nodes[key].children.length\n },\n updateActive (key: string | number, isActive: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n if (!this.multipleActive) {\n this.activeCache.forEach(active => {\n this.nodes[active].isActive = false\n this.updateVnodeState(active)\n this.activeCache.delete(active)\n })\n }\n\n const node = this.nodes[key]\n if (!node) return\n\n if (isActive) this.activeCache.add(key)\n else this.activeCache.delete(key)\n\n node.isActive = isActive\n\n this.updateVnodeState(key)\n },\n updateSelected (key: string | number, isSelected: boolean, isForced = false) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const changed = new Map()\n\n if (this.selectionType !== 'independent') {\n for (const descendant of this.getDescendants(key)) {\n if (!getObjectValueByPath(this.nodes[descendant].item, this.itemDisabled) || isForced) {\n this.nodes[descendant].isSelected = isSelected\n this.nodes[descendant].isIndeterminate = false\n changed.set(descendant, isSelected)\n }\n }\n\n const calculated = this.calculateState(key, this.nodes)\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = calculated.isIndeterminate\n changed.set(key, isSelected)\n\n for (const parent of this.getParents(key)) {\n const calculated = this.calculateState(parent, this.nodes)\n this.nodes[parent].isSelected = calculated.isSelected\n this.nodes[parent].isIndeterminate = calculated.isIndeterminate\n changed.set(parent, calculated.isSelected)\n }\n } else {\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = false\n changed.set(key, isSelected)\n }\n\n for (const [key, value] of changed.entries()) {\n this.updateVnodeState(key)\n\n if (this.selectionType === 'leaf' && this.isParent(key)) continue\n\n value === true ? this.selectedCache.add(key) : this.selectedCache.delete(key)\n }\n },\n updateOpen (key: string | number, isOpen: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const node = this.nodes[key]\n const children = getObjectValueByPath(node.item, this.itemChildren)\n\n if (children && !children.length && node.vnode && !node.vnode.hasLoaded) {\n node.vnode.checkChildren().then(() => this.updateOpen(key, isOpen))\n } else if (children && children.length) {\n node.isOpen = isOpen\n\n node.isOpen ? this.openCache.add(key) : this.openCache.delete(key)\n\n this.updateVnodeState(key)\n }\n },\n updateVnodeState (key: string | number) {\n const node = this.nodes[key]\n\n if (node && node.vnode) {\n node.vnode.isSelected = node.isSelected\n node.vnode.isIndeterminate = node.isIndeterminate\n node.vnode.isActive = node.isActive\n node.vnode.isOpen = node.isOpen\n }\n },\n isExcluded (key: string | number) {\n return !!this.search && this.excludedItems.has(key)\n },\n },\n\n render (h): VNode {\n const children: VNodeChildrenArrayContents = this.items.length\n ? this.items.filter(item => {\n return !this.isExcluded(getObjectValueByPath(item, this.itemKey))\n }).map(item => {\n const genChild = VTreeviewNode.options.methods.genChild.bind(this)\n\n return genChild(item, this.disabled || getObjectValueByPath(item, this.itemDisabled))\n })\n /* istanbul ignore next */\n : this.$slots.default! // TODO: remove type annotation with TS 3.2\n\n return h('div', {\n staticClass: 'v-treeview',\n class: {\n 'v-treeview--hoverable': this.hoverable,\n 'v-treeview--dense': this.dense,\n ...this.themeClasses,\n },\n }, children)\n },\n})\n","import { render, staticRenderFns } from \"./LogVariablesDialog.vue?vue&type=template&id=cb27ab90&scoped=true&\"\nimport script from \"./LogVariablesDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./LogVariablesDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LogVariablesDialog.vue?vue&type=style&index=0&id=cb27ab90&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 \"cb27ab90\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\nimport { VTreeview } from 'vuetify/lib/components/VTreeview';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VIcon,VLayout,VList,VListItem,VListItemGroup,VListItemTitle,VSheet,VSpacer,VTextField,VToolbar,VToolbarTitle,VTooltip,VTreeview})\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('layout')\n"],"sourceRoot":""}