UNPKG

element-plus

Version:

A Component Library for Vue3.0

42 lines (38 loc) 1.07 kB
import Store from './index' import debounce from 'lodash/debounce' import { Table } from '../table.type' export function createStore(table: Table, initialState = {}) { if (!table) { throw new Error('Table is required.') } const store = Store() // fix https://github.com/ElemeFE/element/issues/14075 // related pr https://github.com/ElemeFE/element/pull/14146 store.toggleAllSelection = debounce(store._toggleAllSelection, 10) Object.keys(initialState).forEach(key => { store.states[key].value = initialState[key] }) return store } export function mapStates<T>(mapper: T): any { const res = {} Object.keys(mapper).forEach(key => { const value = mapper[key] let fn if (typeof value === 'string') { fn = function () { return this.store.states[value] } } else if (typeof value === 'function') { fn = function () { return value.call(this, this.store.states) } } else { console.error('invalid value type') } if (fn) { res[key] = fn } }) return res as any }