import { ref } from 'vue'; import { defineStore } from 'pinia'; export const useArrayDataStore = defineStore('arrayDataStore', () => { const state = ref({}); const defaultOpts = { filter: {}, userFilter: {}, userParams: {}, url: '', limit: 10, skip: 0, order: '', data: ref(), isLoading: false, userParamsChanged: false, exprBuilder: null, searchUrl: 'params', navigate: null, }; function get(key) { return state.value[key]; } function set(key) { state.value[key] = defaultOpts; } function clear(key) { delete state.value[key]; } function reset(key, opts = []) { let obj = state.value[key]; if (!opts.length) obj = defaultOpts; else for (const opt in opts) { if (Object.hasOwn(obj, opt)) obj[opt] = defaultOpts[opt]; } } return { get, set, clear, reset, }; });