Skip to content

Commit edd1b37

Browse files
committed
feat: add filter api
1 parent 946f6fd commit edd1b37

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/api.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
*/
2424

2525
import { Page, Editor, Component } from 'grapesjs'
26-
import { DataSourceId, IDataSource, Expression, StateId, StoredToken, Token, Field, Context, TypeId } from './types'
26+
import { DataSourceId, IDataSource, Expression, StateId, StoredToken, Token, Field, Context, TypeId, Filter } from './types'
2727

2828
// Internal imports
2929
import { getPageQuery as getPageQueryInternal, buildPageQueries as buildPageQueriesInternal } from './model/queryBuilder'
@@ -224,6 +224,25 @@ export function getExpressionResultType(expression: Expression, component: Compo
224224
return getExpressionResultTypeInternal(expression, component, dataTree)
225225
}
226226

227+
export function addFilters(filters: Filter | Filter[]) {
228+
const dataTree = getDataTreeInternal()
229+
dataTree.filters = dataTree.filters.concat(filters)
230+
}
231+
232+
/**
233+
* Remove filters from the data tree.
234+
* Accepts a single Filter or an array of Filters.
235+
* Removes by reference.
236+
*/
237+
export function removeFilters(filters: Filter | Filter[]) {
238+
const dataTree = getDataTreeInternal()
239+
if (Array.isArray(filters)) {
240+
dataTree.filters = dataTree.filters.filter(f => !filters.includes(f))
241+
} else {
242+
dataTree.filters = dataTree.filters.filter(f => f !== filters)
243+
}
244+
}
245+
227246
// ===============================
228247
// STATE MANAGEMENT
229248
// ===============================

src/view/state-editor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ export class StateEditor extends LitElement {
258258
private popinsRef: Ref<PopinForm>[] = []
259259

260260
override render() {
261+
this.noFilters = false
261262
this.redrawing = true
262263
super.render()
263264
if(!this.name) throw new Error('name is required on state-editor')

0 commit comments

Comments
 (0)