import { AddressSpace } from '@/ua/AddressSpace' import { type UABaseNode } from '@/ua/UABaseNode' import type { UANodeSet } from '@/ua/UANodeSet' import { defineStore } from 'pinia' import { ref } from 'vue' import { ServerConfig } from './ServerConfig' import type { IAddressSpace } from '@/ua/IAddressSpace' export const useStore = defineStore('user', { state: () => ({ addressSpace: new AddressSpace([]) as IAddressSpace, rootNode: ref(null), selectedNode: ref(null), config: ServerConfig.load({}) }), actions: { setAddressSpace(as: AddressSpace) { this.addressSpace=as; this.rootNode=this.addressSpace.findNode("ns=0;i=84")||null; this.selectedNode=null; }, addNodeset(nodeset: UANodeSet) { this.addressSpace?.addNodeset(nodeset); this.rootNode=this.addressSpace?.findNode("ns=0;i=84")||null; } } })