35 lines
868 B
JavaScript
35 lines
868 B
JavaScript
// Utilities
|
|
import { computed, watch } from 'vue';
|
|
import { deepEqual, getCurrentInstance } from "../../../util/index.mjs"; // Types
|
|
export function useOptions(_ref) {
|
|
let {
|
|
page,
|
|
itemsPerPage,
|
|
sortBy,
|
|
groupBy,
|
|
search
|
|
} = _ref;
|
|
const vm = getCurrentInstance('VDataTable');
|
|
const options = computed(() => ({
|
|
page: page.value,
|
|
itemsPerPage: itemsPerPage.value,
|
|
sortBy: sortBy.value,
|
|
groupBy: groupBy.value,
|
|
search: search.value
|
|
}));
|
|
let oldOptions = null;
|
|
watch(options, () => {
|
|
if (deepEqual(oldOptions, options.value)) return;
|
|
|
|
// Reset page when searching
|
|
if (oldOptions?.search !== options.value.search) {
|
|
page.value = 1;
|
|
}
|
|
vm.emit('update:options', options.value);
|
|
oldOptions = options.value;
|
|
}, {
|
|
deep: true,
|
|
immediate: true
|
|
});
|
|
}
|
|
//# sourceMappingURL=options.mjs.map
|