export default { data: function () { return { inner: {...this.data}, }; }, props: { data: {}, }, computed: { filterString() { return this.toFilterString(this.inner.meta.filter); }, }, methods: { toFilterString(data) { return btoa(encodeURIComponent(JSON.stringify(data))); }, reload(resetPage = true) { var _self = this; var data = { filter: this.filterString, page: 1, }; data['page'] = resetPage ? 1 : this.inner.meta.current_page; this.$inertia.visit(window.location.pathname, { data, preserveState: true, onSuccess(page) { _self.inner = page.props.data; }, }); }, can(permission) { return this.inner.meta.can[permission]; }, getFilter(value) { return this.inner.meta.filter[value]; }, setFilter(key, value) { this.inner.meta.filter[key] = value; this.reload(); }, requestCallback(successMessage, failureMessage) { return { onSuccess: () => { this.$success(successMessage); this.reload(false); }, onFailure: () => { this.$error(failureMessage); this.reload(false); }, preserveState: true, }; }, }, };