@archbase/advanced 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ export * from './querybuilder';
2
+ export * from './kanban';
3
+ export declare const ArchbaseAdvancedVersion = "3.0.0";
@@ -0,0 +1 @@
1
+ export declare const ArchbaseKanbanVersion = "3.0.0";
@@ -0,0 +1,142 @@
1
+ import { ButtonVariant } from '@mantine/core';
2
+ import { Component, ReactNode } from 'react';
3
+ import { ArchbaseQueryFilter, Condition, DataType, Field, Operator, Rule, Schema, SelectedSort, SortField } from './ArchbaseFilterCommons';
4
+ import { ArchbaseDataSource } from '@archbase/data';
5
+ interface ArchbaseAdvancedFilterProps<_T, _ID> {
6
+ id: string;
7
+ currentFilter: ArchbaseQueryFilter;
8
+ activeFilterIndex: number;
9
+ children?: ReactNode | ReactNode[];
10
+ onFilterChanged: (currentFilter: ArchbaseQueryFilter, activeFilterIndex: number) => void;
11
+ onApplyFilterClick?: (filter: ArchbaseQueryFilter) => void;
12
+ horizontal?: boolean;
13
+ operators: Operator[];
14
+ conditions: Condition[];
15
+ getOperators: (args: any) => any;
16
+ onError?: (error: string) => void;
17
+ height?: string;
18
+ width?: string;
19
+ allowSort?: boolean;
20
+ disabled?: boolean;
21
+ onSearchButtonClick?: () => void;
22
+ border?: string;
23
+ variant?: ButtonVariant;
24
+ }
25
+ interface ArchbaseAdvancedFilterState {
26
+ currentFilter: ArchbaseQueryFilter;
27
+ modalOpen?: string;
28
+ activeFilterIndex: number;
29
+ schema: Schema;
30
+ sortFocused?: string;
31
+ forceUpdateCounter: number;
32
+ }
33
+ declare class ArchbaseAdvancedFilter<T, ID> extends Component<ArchbaseAdvancedFilterProps<T, ID>, ArchbaseAdvancedFilterState> {
34
+ static defaultProps: {
35
+ operators: {
36
+ name: string;
37
+ label: string;
38
+ dataTypes: string[];
39
+ }[];
40
+ conditions: {
41
+ name: string;
42
+ label: string;
43
+ }[];
44
+ getOperators: any;
45
+ onFilterChanged: any;
46
+ allowSort: boolean;
47
+ disabled: boolean;
48
+ horizontal: boolean;
49
+ sortFocused: string;
50
+ width: string;
51
+ border: string;
52
+ };
53
+ constructor(props: ArchbaseAdvancedFilterProps<T, ID>);
54
+ shouldComponentUpdate: (nextProps: ArchbaseAdvancedFilterProps<T, ID>, nextState: ArchbaseAdvancedFilterState) => boolean;
55
+ createCompatibleDataSource: (records: any[]) => ArchbaseDataSource<any, unknown>;
56
+ getQuickFields: () => any;
57
+ getQuickFilterSort: () => string;
58
+ UNSAFE_componentWillReceiveProps: (nextProps: any) => void;
59
+ createRuleGroup: () => Rule;
60
+ createSchema: () => Schema;
61
+ getSelectedSort: () => SelectedSort[];
62
+ getSortItem: (field: string) => SortField | undefined;
63
+ getSortItemByOrder: (order: number) => SortField | undefined;
64
+ onChangeSortItem: (field: string, selected: any, order: any, asc_desc: any) => void;
65
+ propagateFilterChanged: () => void;
66
+ onSortDown: (_event: any) => void;
67
+ onSortUp: (_event: any) => void;
68
+ getFields: (props: Readonly<ArchbaseAdvancedFilterProps<T, ID>>) => Field[];
69
+ isRuleGroup: (rule: {
70
+ condition: any;
71
+ rules: any;
72
+ }) => boolean;
73
+ createRule: () => Rule;
74
+ getField: (name: string) => any;
75
+ getOperators: (field: string) => Operator[];
76
+ onRuleAdd: (rule: Rule, parentId: any) => void;
77
+ onGroupAdd: (group: Rule, parentId: any) => void;
78
+ onPropChange: (prop: string, value: string, ruleId: any) => void;
79
+ onRuleRemove: (ruleId: string, parentId: any) => void;
80
+ onGroupRemove: (groupId: any, parentId: any) => void;
81
+ getLevel: (id: any) => number;
82
+ _getLevel: (id: any, index: any, root: any) => number;
83
+ _findRule: (id: string, parent: Rule) => Rule | undefined;
84
+ _notifyQueryChange: (fn: any, ...args: any[]) => void;
85
+ onSelectListItem: (index: number, _item: any) => void;
86
+ render(): import("react/jsx-runtime").JSX.Element;
87
+ }
88
+ interface CustomSortItemProps<T, ID> {
89
+ id: string;
90
+ disabled?: boolean;
91
+ active: boolean;
92
+ index: number;
93
+ recordData: any;
94
+ dataFieldId: string;
95
+ dataSource: ArchbaseDataSource<T, ID>;
96
+ onSelectListItem?: (index: number, self: CustomSortItem<T, ID>) => void;
97
+ onChangeSortItem: (field: string, checked: boolean, order: any, ascDesc: 'asc' | 'desc') => void;
98
+ }
99
+ interface CustomSortItemState {
100
+ update: number;
101
+ selected: boolean;
102
+ }
103
+ export declare class CustomSortItem<T, ID> extends Component<CustomSortItemProps<T, ID>, CustomSortItemState> {
104
+ static defaultProps: {
105
+ disabled: boolean;
106
+ active: boolean;
107
+ selected: boolean;
108
+ };
109
+ constructor(props: CustomSortItemProps<T, ID>);
110
+ static get componentName(): string;
111
+ UNSAFE_componentWillReceiveProps: (nextProps: CustomSortItemProps<T, ID>) => void;
112
+ onClick: (event: any) => void;
113
+ onCheckboxChange: (event: any) => void;
114
+ onDoubleClick: (_event: any) => void;
115
+ isAsc: () => boolean;
116
+ render: () => import("react/jsx-runtime").JSX.Element;
117
+ }
118
+ interface ValueEditorProps {
119
+ field: string;
120
+ operator: string;
121
+ value: string;
122
+ value2?: string;
123
+ level?: number;
124
+ listValues?: string[];
125
+ searchField: string;
126
+ disabled: boolean;
127
+ dataType: DataType;
128
+ twoFields?: boolean;
129
+ className?: string;
130
+ handleOnChange: (value: any) => void;
131
+ onSearchButtonClick: (field: string, event: any, handleOnChange: (value: string) => void, operator: string, searchField: string) => void;
132
+ }
133
+ export declare class ValueEditor extends Component<ValueEditorProps> {
134
+ private onInput;
135
+ constructor(props: ValueEditorProps);
136
+ static get componentName(): string;
137
+ onActionSearchExecute: () => void;
138
+ convertValueCombobox: (value: string, dataType: string) => string | string[];
139
+ handleRangeChange: (value: [Date | null, Date | null]) => void;
140
+ render: () => import("react/jsx-runtime").JSX.Element;
141
+ }
142
+ export { ArchbaseAdvancedFilter };
@@ -0,0 +1,72 @@
1
+ import { ButtonVariant } from '@mantine/core';
2
+ import { Component, ReactNode } from 'react';
3
+ import { ArchbaseQueryFilter, ArchbaseQueryFilterDelegator, Field } from './ArchbaseFilterCommons';
4
+ import { ArchbaseDataSource } from '@archbase/data';
5
+ interface ArchbaseCompositeFilterProps {
6
+ variant?: ButtonVariant;
7
+ activeFilterIndex: number;
8
+ currentFilter: ArchbaseQueryFilter;
9
+ width?: string | number | undefined;
10
+ height?: string | number | undefined;
11
+ persistenceDelegator: ArchbaseQueryFilterDelegator;
12
+ update?: number;
13
+ children?: ReactNode | ReactNode[];
14
+ onSaveFilter?: (itemId: string) => void;
15
+ onChangeFilterType?: (index: number) => void;
16
+ onChangeSelectedFilter?: (filter: ArchbaseQueryFilter, index: number) => void;
17
+ onFilterChanged: (currentFilter: ArchbaseQueryFilter, activeFilterIndex: number) => void;
18
+ onSearchButtonClick?: (field: string, event?: any, handleOnChange?: any, operator?: any, searchField?: any) => void;
19
+ onActionClick?: (action: string) => void;
20
+ toggleFilterButtonRef?: any;
21
+ }
22
+ interface ArchbaseCompositeFilterState {
23
+ modalOpen: string;
24
+ activeFilterIndex: number;
25
+ fields: Field[];
26
+ showEditor: boolean;
27
+ expandedFilter: boolean;
28
+ dataSource: ArchbaseDataSource<any, any>;
29
+ isDataSourceV2: boolean;
30
+ forceUpdateCounter: number;
31
+ }
32
+ declare class ArchbaseCompositeFilter extends Component<ArchbaseCompositeFilterProps, ArchbaseCompositeFilterState> {
33
+ constructor(props: ArchbaseCompositeFilterProps);
34
+ shouldComponentUpdate: (nextProps: ArchbaseCompositeFilterProps, nextState: ArchbaseCompositeFilterState) => boolean;
35
+ UNSAFE_componentWillReceiveProps: (nextProps: ArchbaseCompositeFilterProps) => void;
36
+ onSelectMenuItem: (itemId: string) => void;
37
+ onChangeFilterType: (index: number) => void;
38
+ onSelectItem: (index: number, data: any) => void;
39
+ getColor: (color: string) => string;
40
+ render: () => import("react/jsx-runtime").JSX.Element;
41
+ }
42
+ interface ArchbaseDetailedFilterProps {
43
+ currentFilter: ArchbaseQueryFilter;
44
+ onChangeSelectedFilter?: (filter: ArchbaseQueryFilter, index: number) => void;
45
+ onSaveFilter?: (item: string) => void;
46
+ onFilterChanged: (currentFilter: ArchbaseQueryFilter, activeFilterIndex: number) => void;
47
+ height?: string;
48
+ width?: string;
49
+ activeFilterIndex: number;
50
+ children?: ReactNode | ReactNode[];
51
+ onClickOkSaveFilter?: () => void;
52
+ onClickCancelSaveFilter?: () => void;
53
+ onSearchButtonClick?: (field: string) => void;
54
+ isOpen?: boolean;
55
+ update?: number;
56
+ selectedOptions?: Field[];
57
+ variant?: ButtonVariant;
58
+ }
59
+ interface ArchbaseAdvancedFilterState {
60
+ modalOpen: string;
61
+ update: number;
62
+ }
63
+ declare class ArchbaseDetailedFilter extends Component<ArchbaseDetailedFilterProps, ArchbaseAdvancedFilterState> {
64
+ static defaultProps: {
65
+ isOpen: boolean;
66
+ };
67
+ constructor(props: ArchbaseDetailedFilterProps);
68
+ onSelectMenuItem: (itemId: string) => void;
69
+ onSelectItem: (index: number, data: any) => void;
70
+ render(): import("react/jsx-runtime").JSX.Element;
71
+ }
72
+ export { ArchbaseCompositeFilter, ArchbaseDetailedFilter };
@@ -0,0 +1,18 @@
1
+ import { default as React, Component, ReactNode } from 'react';
2
+ interface ArchbaseFeedbackProps {
3
+ style?: React.CSSProperties;
4
+ classNameFeedback?: string | undefined;
5
+ when?: (inputValue: any) => boolean;
6
+ inputValue?: any;
7
+ primary?: boolean;
8
+ info?: boolean;
9
+ danger?: boolean;
10
+ warning?: boolean;
11
+ secondary?: boolean;
12
+ default?: boolean;
13
+ children?: ReactNode;
14
+ }
15
+ export declare class ArchbaseFeedback extends Component<ArchbaseFeedbackProps> {
16
+ render: () => import("react/jsx-runtime").JSX.Element;
17
+ }
18
+ export {};
@@ -0,0 +1,299 @@
1
+ import { default as React, Component, ReactNode } from 'react';
2
+ import { MaskPattern } from '@archbase/components';
3
+ import { ButtonVariant } from '@mantine/core';
4
+ declare const QUICK_FILTER_INDEX = -2;
5
+ declare const NEW_FILTER_INDEX = -1;
6
+ declare const NORMAL = "normal";
7
+ declare const QUICK = "quick";
8
+ declare const ADVANCED = "advanced";
9
+ declare const OP_NULL = "null";
10
+ declare const OP_NOT_NULL = "notNull";
11
+ declare const OP_CONTAINS = "contains";
12
+ declare const OP_STARTSWITH = "startsWith";
13
+ declare const OP_ENDSWITH = "endsWith";
14
+ declare const OP_EQUALS = "=";
15
+ declare const OP_NOT_EQUALS = "!=";
16
+ declare const OP_GREATER = ">";
17
+ declare const OP_LESS = "<";
18
+ declare const OP_GREATER_OR_EQUAL = ">=";
19
+ declare const OP_LESS_OR_EQUAL = "<=";
20
+ declare const OP_BETWEEN = "between";
21
+ declare const OP_IN_LIST = "inList";
22
+ declare const OP_NOT_IN_LIST = "notInList";
23
+ type FilterType = 'quick' | 'normal' | 'advanced' | undefined;
24
+ type PositionType = 'filter' | 'fields' | 'range' | undefined;
25
+ type RangeType = 'month' | 'week' | 'range' | 'day' | undefined;
26
+ type DataType = 'string' | 'number' | 'date' | 'date_time' | 'time' | 'boolean';
27
+ interface Operator {
28
+ name: string;
29
+ label: string;
30
+ dataTypes: DataType[];
31
+ }
32
+ interface SortField {
33
+ name: string;
34
+ selected: boolean;
35
+ order: number;
36
+ asc_desc: string;
37
+ label: string;
38
+ }
39
+ interface FilterValue {
40
+ label: string;
41
+ value: string;
42
+ }
43
+ interface Field {
44
+ name: string;
45
+ label: string;
46
+ dataType: DataType;
47
+ operator: string;
48
+ quickFilter: boolean;
49
+ quickFilterSort: boolean;
50
+ sortable: boolean;
51
+ listValues: FilterValue[];
52
+ searchComponent: ReactNode;
53
+ searchField: any;
54
+ nameSql?: string;
55
+ }
56
+ interface Filter {
57
+ id: string;
58
+ selectedFields: Field[];
59
+ quickFilterText: string;
60
+ quickFilterFieldsText: string;
61
+ rules: Rule[];
62
+ condition: string;
63
+ filterType: FilterType;
64
+ }
65
+ interface Sort {
66
+ quickFilterSort: string;
67
+ sortFields: SortField[];
68
+ activeIndex: number;
69
+ }
70
+ interface ArchbaseQueryFilter {
71
+ id?: number;
72
+ filter: Filter;
73
+ sort: Sort;
74
+ name?: string;
75
+ viewName?: string;
76
+ apiVersion?: string;
77
+ selectedFields?: Field[];
78
+ }
79
+ interface FilterOptions {
80
+ currentFilter?: ArchbaseQueryFilter;
81
+ activeFilterIndex: number;
82
+ enabledAdvancedFilter: boolean;
83
+ apiVersion: string;
84
+ viewName: string;
85
+ componentName: string;
86
+ onApplyFilter?: (currentFilter: ArchbaseQueryFilter, index: number) => void;
87
+ }
88
+ interface ArchbaseQueryFilterState {
89
+ currentFilter?: ArchbaseQueryFilter;
90
+ activeFilterIndex: number;
91
+ expandedFilter: boolean;
92
+ }
93
+ interface Position {
94
+ left?: string | number | undefined;
95
+ top?: string | number | undefined;
96
+ height?: string | number | undefined;
97
+ }
98
+ interface SelectedSort {
99
+ name: string;
100
+ asc_desc: string;
101
+ }
102
+ interface Rule {
103
+ id: string;
104
+ parentId?: string | null;
105
+ field?: string | null;
106
+ fieldSql?: string | null;
107
+ dataType?: DataType;
108
+ operator?: string | null;
109
+ value?: any | null;
110
+ value2?: any | null;
111
+ disabled?: boolean;
112
+ rules?: Rule[];
113
+ condition?: string;
114
+ }
115
+ interface Condition {
116
+ name: string;
117
+ label: string;
118
+ }
119
+ interface IQueryFilterEntity {
120
+ id?: any;
121
+ companyId?: any;
122
+ filter?: any;
123
+ name?: string;
124
+ viewName?: string;
125
+ componentName?: string;
126
+ userName?: string;
127
+ shared?: boolean;
128
+ code?: string;
129
+ isNewFilter?: boolean;
130
+ setId: (id: any) => void;
131
+ setCompanyId: (companyId: any) => void;
132
+ setFilter: (filter: any) => void;
133
+ setName: (name: string) => void;
134
+ setViewName: (viewName: string) => void;
135
+ setComponentName: (componentName: string) => void;
136
+ setUserName: (userName: string) => void;
137
+ setShared: (shared: boolean) => void;
138
+ setCode: (code: string) => void;
139
+ setIsNewFilter: (value: boolean) => void;
140
+ }
141
+ declare class QueryFilterEntity implements IQueryFilterEntity {
142
+ private _id?;
143
+ private _companyId?;
144
+ private _filter?;
145
+ private _name?;
146
+ private _viewName?;
147
+ private _componentName?;
148
+ private _userName?;
149
+ private _shared?;
150
+ private _code?;
151
+ private _isNewFilter?;
152
+ constructor();
153
+ get id(): any;
154
+ get companyId(): any;
155
+ get filter(): any | undefined;
156
+ get name(): string | undefined;
157
+ get viewName(): string | undefined;
158
+ get componentName(): string | undefined;
159
+ get userName(): string | undefined;
160
+ get isShared(): boolean | undefined;
161
+ get code(): string | undefined;
162
+ get isNewFilter(): boolean | undefined;
163
+ setId(id: any): void;
164
+ setCompanyId(companyId: any): void;
165
+ setFilter(filter: any): void;
166
+ setName(name: string): void;
167
+ setViewName(viewName: string): void;
168
+ setComponentName(componentName: string): void;
169
+ setUserName(userName: string): void;
170
+ setShared(shared: boolean): void;
171
+ setCode(code: string): void;
172
+ setIsNewFilter(value: boolean): void;
173
+ static createInstance(): QueryFilterEntity;
174
+ static createInstanceWithValues(values: Partial<IQueryFilterEntity>): IQueryFilterEntity;
175
+ }
176
+ type DelegatorCallback = (error: any, id?: any) => void;
177
+ interface ArchbaseQueryFilterDelegator {
178
+ getFilterById: (id: any) => IQueryFilterEntity | undefined;
179
+ addNewFilter: (filter: IQueryFilterEntity, onResult: DelegatorCallback) => void;
180
+ saveFilter: (filter: IQueryFilterEntity, onResult: DelegatorCallback) => void;
181
+ removeFilterBy: (filter: IQueryFilterEntity, onResult: DelegatorCallback) => void;
182
+ getFirstFilter: () => IQueryFilterEntity | undefined;
183
+ getFilters: () => IQueryFilterEntity[];
184
+ }
185
+ interface Schema {
186
+ fields: Field[];
187
+ operators: Operator[];
188
+ conditions: Condition[];
189
+ createRule: () => Rule;
190
+ createRuleGroup: () => Rule;
191
+ onRuleAdd: (rule: any, parentId: any) => void;
192
+ onGroupAdd: (group: any, parentId: any) => void;
193
+ onRuleRemove: (ruleId: any, parentId: any) => void;
194
+ onGroupRemove: (groupId: any, parentId: any) => void;
195
+ onPropChange: (prop: any, value: any, ruleId: any) => void;
196
+ getLevel: (id: any) => number;
197
+ isRuleGroup: (rule: any) => boolean;
198
+ getOperators: (field: any) => Operator[];
199
+ }
200
+ interface FilterFieldProps {
201
+ name: string;
202
+ label: string;
203
+ dataType: DataType;
204
+ sortable?: boolean;
205
+ quickFilter?: boolean;
206
+ quickFilterSort?: boolean;
207
+ }
208
+ declare function FilterField({ sortable, quickFilter, quickFilterSort, ...others }: FilterFieldProps): any;
209
+ interface ArchbaseQueryBuilderProps {
210
+ persistenceDelegator: ArchbaseQueryFilterDelegator;
211
+ showClearButton?: boolean;
212
+ showToggleButton?: boolean;
213
+ showPrintButton?: boolean;
214
+ showExportButton?: boolean;
215
+ onClearFilter?: (self: any) => {};
216
+ variant?: ButtonVariant;
217
+ viewName: string;
218
+ id: string;
219
+ apiVersion: string;
220
+ width?: string;
221
+ height?: string;
222
+ placeholder?: string;
223
+ detailsWidth?: number;
224
+ detailsHeight?: number;
225
+ currentFilter?: ArchbaseQueryFilter;
226
+ expandedFilter?: boolean;
227
+ activeFilterIndex: number;
228
+ onToggleExpandedFilter?: (value: boolean) => void;
229
+ onFilterChanged?: (currentFilter: ArchbaseQueryFilter, index: number, callback?: () => void) => void;
230
+ onSearchByFilter?: () => void;
231
+ onSelectedFilter?: (filter: ArchbaseQueryFilter, index: number) => void;
232
+ userName?: any;
233
+ children?: ReactNode | ReactNode[];
234
+ onPrint?: () => void;
235
+ onExport?: () => void;
236
+ }
237
+ interface FilterFieldValueProps {
238
+ label: string;
239
+ value: string;
240
+ }
241
+ declare class FilterFieldValue extends Component<FilterFieldValueProps> {
242
+ static get componentName(): string;
243
+ render(): any;
244
+ }
245
+ interface FilterFieldsProps {
246
+ children?: ReactNode | ReactNode[];
247
+ }
248
+ declare function FilterFields({ children }: FilterFieldsProps): import("react/jsx-runtime").JSX.Element;
249
+ declare const getSortString: (currentFilter: {
250
+ sort: {
251
+ sortFields: any[];
252
+ };
253
+ }) => string | undefined;
254
+ declare const convertQueryFields: (children: React.ReactNode) => React.ReactNode;
255
+ declare const getFields: (props: any) => Field[];
256
+ declare const getFieldSql: (field: any, fields: string | any[]) => any;
257
+ declare const getFieldValues: (field: any, fields: string | any[]) => any;
258
+ declare const getQuickFields: (fields: Field[]) => Field[];
259
+ declare const getQuickFieldsSort: (fields: Field[]) => SortField[];
260
+ declare const getQuickFilterSort: (fields: any[]) => string;
261
+ declare const getQuickFilterSortBySelectedFields: (fields: any[]) => string;
262
+ declare const mergeSortWithFields: (sort: any[], fields: any[]) => SortField[];
263
+ declare const getQuickFilterFields: (currentFilter: ArchbaseQueryFilter | null, fields: any[]) => string;
264
+ declare const getDefaultEmptyFilter: () => ArchbaseQueryFilter;
265
+ declare const defaultOperators: Operator[];
266
+ declare const defaultConditions: Condition[];
267
+ declare const getDefaultFilter: (props: Readonly<ArchbaseQueryBuilderProps>, type: FilterType) => ArchbaseQueryFilter;
268
+ interface QueryFieldProps {
269
+ name: string;
270
+ label: string;
271
+ dataType: 'string' | 'number' | 'date' | 'date_time' | 'time' | 'boolean';
272
+ operator?: 'contains' | 'startsWith' | 'endsWith' | '=' | '!=' | '<' | '>' | '<=' | '>=' | 'between' | 'inList' | 'notInList';
273
+ sortable?: boolean;
274
+ quickFilter?: boolean;
275
+ quickFilterSort?: boolean;
276
+ searchComponent?: any;
277
+ children?: ReactNode | ReactNode[] | undefined;
278
+ mask?: MaskPattern | Function | string;
279
+ filterWithMask?: boolean;
280
+ }
281
+ interface QueryFieldValueProps {
282
+ label: string;
283
+ value: string;
284
+ }
285
+ interface QueryFieldsProps {
286
+ children: ReactNode | ReactNode[];
287
+ }
288
+ declare function QueryFields({ children }: QueryFieldsProps): import("react/jsx-runtime").JSX.Element;
289
+ declare function QueryField({ sortable, quickFilter, quickFilterSort, operator, mask, ...others }: QueryFieldProps): any;
290
+ interface QueryFieldValueProps {
291
+ label: string;
292
+ value: string;
293
+ }
294
+ declare class QueryFieldValue extends Component<QueryFieldValueProps> {
295
+ static get componentName(): string;
296
+ render(): any;
297
+ }
298
+ export { QueryFieldValue, QueryField, QueryFields, QueryFilterEntity, FilterField, FilterFieldValue, FilterFields, getDefaultFilter, defaultConditions, defaultOperators, getDefaultEmptyFilter, getQuickFilterFields, mergeSortWithFields, getQuickFilterSort, getQuickFields, getFieldValues, getFieldSql, getFields, getQuickFieldsSort, getQuickFilterSortBySelectedFields, convertQueryFields, getSortString, QUICK_FILTER_INDEX, NEW_FILTER_INDEX, NORMAL, QUICK, ADVANCED, OP_NULL, OP_NOT_NULL, OP_CONTAINS, OP_STARTSWITH, OP_ENDSWITH, OP_EQUALS, OP_NOT_EQUALS, OP_GREATER, OP_LESS, OP_GREATER_OR_EQUAL, OP_LESS_OR_EQUAL, OP_BETWEEN, OP_IN_LIST, OP_NOT_IN_LIST };
299
+ export type { Field, SortField, Filter, FilterOptions, ArchbaseQueryFilter, ArchbaseQueryFilterState, ArchbaseQueryFilterDelegator, PositionType, RangeType, Position, FilterType, DataType, FilterValue, SelectedSort, Operator, Rule, Condition, Schema, DelegatorCallback, IQueryFilterEntity, ArchbaseQueryBuilderProps };
@@ -0,0 +1,11 @@
1
+ import { ArchbaseQueryFilter } from './ArchbaseFilterCommons';
2
+ declare class GraphQLQueryBuilder {
3
+ private query;
4
+ constructor();
5
+ buildFrom(filter: ArchbaseQueryFilter): string;
6
+ buildGraphQLQuery(condition: any, rules: any): void;
7
+ getFieldName(fieldName: any): any;
8
+ getOperator(operator: any): any;
9
+ formatValue(value: any, dataType: any): any;
10
+ }
11
+ export default GraphQLQueryBuilder;
@@ -0,0 +1,7 @@
1
+ import { ExpressionNode } from '@archbase/core';
2
+ import { ArchbaseQueryFilter } from './ArchbaseFilterCommons';
3
+ declare function buildFrom(filter: ArchbaseQueryFilter): {
4
+ expressionNode: ExpressionNode;
5
+ sortStrings: string[];
6
+ };
7
+ export { buildFrom };
@@ -0,0 +1,40 @@
1
+ import { ArchbaseDataSource } from '@archbase/data';
2
+ import { ButtonVariant } from '@mantine/core';
3
+ import { default as React, Component } from 'react';
4
+ import { ArchbaseQueryFilter, Field, SortField } from './ArchbaseFilterCommons';
5
+ interface ArchbaseFilterSelectFieldsProps {
6
+ variant?: ButtonVariant | string;
7
+ currentFilter: ArchbaseQueryFilter;
8
+ fields: Field[];
9
+ selectedOptions: Field[];
10
+ sort: SortField[];
11
+ id: string;
12
+ key: string;
13
+ width?: string | number | undefined;
14
+ sortFocused?: boolean;
15
+ onConfirmSelectFields?: (selectedFields: Field[], sortFields: SortField[], activeIndex: number) => void;
16
+ onCancelSelectFields?: () => void;
17
+ }
18
+ interface ArchbaseFilterSelectFieldsState {
19
+ selectedFields: Field[];
20
+ sortFields: SortField[];
21
+ allChecked: boolean;
22
+ activeIndex: number;
23
+ update: number;
24
+ forceUpdateCounter: number;
25
+ }
26
+ declare class ArchbaseFilterSelectFields extends Component<ArchbaseFilterSelectFieldsProps, ArchbaseFilterSelectFieldsState> {
27
+ constructor(props: ArchbaseFilterSelectFieldsProps);
28
+ createCompatibleDataSource: (records: any[]) => ArchbaseDataSource<any, unknown>;
29
+ onCheckboxChange: (_value: any, _checked: boolean, item: any) => void;
30
+ renderCheckboxFields: () => import("react/jsx-runtime").JSX.Element[];
31
+ getSortItem: (field: string) => SortField | undefined;
32
+ onChangeSortItem: (field: string, selected: any, order: any, asc_desc: any) => void;
33
+ getSortItemByOrder: (order: number) => SortField | undefined;
34
+ onSortDown: (_event: React.MouseEvent) => void;
35
+ onSortUp: (_event: React.MouseEvent) => void;
36
+ onSelectListItem: (index: number, _item: any) => void;
37
+ selectAllFields: (checked: boolean) => void;
38
+ render: () => import("react/jsx-runtime").JSX.Element;
39
+ }
40
+ export { ArchbaseFilterSelectFields };
@@ -0,0 +1,24 @@
1
+ import { ButtonVariant } from '@mantine/core';
2
+ import { Component } from 'react';
3
+ import { Value } from 'react-multi-date-picker';
4
+ interface ArchbaseFilterSelectRangeProps {
5
+ id?: string;
6
+ key?: string;
7
+ onCancelSelectRange?: () => void;
8
+ onConfirmSelectRange?: (value: Value | undefined, selectRangeType: any) => void;
9
+ width?: string | undefined;
10
+ selectRangeType?: 'day' | 'week' | 'month' | 'range';
11
+ variant?: ButtonVariant | string;
12
+ }
13
+ interface ArchbaseFilterSelectRangeState {
14
+ value?: Value;
15
+ selectRangeType?: 'day' | 'week' | 'month' | 'range';
16
+ }
17
+ declare class ArchbaseFilterSelectRange extends Component<ArchbaseFilterSelectRangeProps, ArchbaseFilterSelectRangeState> {
18
+ private dateRef;
19
+ constructor(props: ArchbaseFilterSelectRangeProps);
20
+ UNSAFE_componentWillReceiveProps: (_nextProps: ArchbaseFilterSelectRangeProps) => void;
21
+ handleDateChange: (value: Value) => void;
22
+ render: () => import("react/jsx-runtime").JSX.Element;
23
+ }
24
+ export { ArchbaseFilterSelectRange };
@@ -0,0 +1,25 @@
1
+ import { ActionIconProps, TextInputProps } from '@mantine/core';
2
+ export interface ArchbaseGlobalFilterProps {
3
+ /** Lista dos nomes dos campos a serem efetuados a pesquisa filtrada */
4
+ searchableFields: string[];
5
+ /** Evento ocorre quando é efetuado a pesquisa filtrada */
6
+ onFilter: (buildedQuery: string, value: string) => void;
7
+ /** Quantidade minima de carácteres do valor do filtro para que seja disparada a pesquisa filtrada */
8
+ minFilterValueLength: number;
9
+ /** Opções para personalização */
10
+ options?: {
11
+ inputProps?: TextInputProps;
12
+ buttonRefreshProps?: ActionIconProps;
13
+ buttonClearProps?: ActionIconProps;
14
+ iconRefreshProps?: {
15
+ size?: string | number;
16
+ color?: string;
17
+ };
18
+ iconClearProps?: {
19
+ size?: string | number;
20
+ color?: string;
21
+ };
22
+ spacing?: number | string;
23
+ };
24
+ }
25
+ export declare function ArchbaseGlobalFilter({ searchableFields, onFilter, minFilterValueLength, options, }: ArchbaseGlobalFilterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { ActionIconVariant, MantineColorScheme, MantineTheme } from '@mantine/core';
2
+ import { Component } from 'react';
3
+ interface ArchbaseInputSearchProps {
4
+ placeholder?: string | undefined;
5
+ theme: MantineTheme;
6
+ colorScheme: MantineColorScheme;
7
+ onSearchClick?: () => void;
8
+ variant?: ActionIconVariant;
9
+ }
10
+ export declare class ArchbaseInputSearch extends Component<ArchbaseInputSearchProps> {
11
+ render: () => import("react/jsx-runtime").JSX.Element;
12
+ }
13
+ export {};
@@ -0,0 +1,97 @@
1
+ import { default as React, Component, ReactNode } from 'react';
2
+ import { ArchbaseQueryBuilderProps, ArchbaseQueryFilter, Field, Position, PositionType, RangeType, SortField } from './ArchbaseFilterCommons';
3
+ export interface ArchbaseQueryBuilderState {
4
+ currentFilter: ArchbaseQueryFilter;
5
+ modalOpen: string;
6
+ expandedFilter: boolean;
7
+ activeFilterIndex: number;
8
+ isOpenSelectRange: boolean;
9
+ isOpenSelectFields: boolean;
10
+ selectRangeType?: RangeType | undefined;
11
+ detailsAlign?: 'left' | 'right';
12
+ modalOperator?: string | undefined;
13
+ modalSearchField: string;
14
+ children?: React.ReactNode | React.ReactNode[];
15
+ update: number;
16
+ modalHandleOnChange?: (value: string) => void;
17
+ }
18
+ export declare const DebouncedTextInput: ({ onActionSearchExecute, icon, disabled, label, error, initialValue, onChange, style, placeholder, keyProp, readOnly, innerRef, onFocus, onKeyDown, tooltipIconSearch, variant, }: {
19
+ onActionSearchExecute: any;
20
+ icon: any;
21
+ disabled: any;
22
+ label: any;
23
+ error: any;
24
+ initialValue: any;
25
+ onChange: any;
26
+ style: any;
27
+ placeholder: any;
28
+ keyProp: any;
29
+ readOnly: any;
30
+ innerRef: any;
31
+ onFocus: any;
32
+ onKeyDown: any;
33
+ tooltipIconSearch?: string;
34
+ variant?: string;
35
+ }) => import("react/jsx-runtime").JSX.Element;
36
+ export declare class ArchbaseQueryBuilder extends Component<ArchbaseQueryBuilderProps, ArchbaseQueryBuilderState> {
37
+ static defaultProps: {
38
+ showClearButton: boolean;
39
+ showToggleButton: boolean;
40
+ showPrintButton: boolean;
41
+ showExportButton: boolean;
42
+ expandedFilter: boolean;
43
+ width: string;
44
+ height: string;
45
+ detailsHeight: number;
46
+ detailsWidth: number;
47
+ detailsAlign: string;
48
+ };
49
+ private timeout;
50
+ private divMain;
51
+ private refEdit;
52
+ private toggleFilterButtonRef;
53
+ private inputValue;
54
+ constructor(props: ArchbaseQueryBuilderProps);
55
+ shouldComponentUpdate: (nextProps: ArchbaseQueryBuilderProps, nextState: ArchbaseQueryBuilderState) => boolean;
56
+ UNSAFE_componentWillReceiveProps: (nextProps: ArchbaseQueryBuilderProps) => void;
57
+ componentDidMount: () => void;
58
+ componentWillUnmount: () => void;
59
+ toggleExpandedFilter: () => void;
60
+ clearFilter: () => void;
61
+ onSearchClick: () => void;
62
+ onChangeQuickFilter: (value: string) => void;
63
+ changeQuickFilter: (value: string) => void;
64
+ handleQuickFilter: (event: any) => void;
65
+ getQuickFilterText: () => string;
66
+ onFilterChanged: (currentFilter: ArchbaseQueryFilter, activeFilterIndex: number, callback: () => void) => void;
67
+ loadListValuesToFilter: (parent: string, rules: string | any[], values: any) => void;
68
+ getItemListById: (values: string | any[], parent: string, id: any) => any;
69
+ convertFilterToListValues: (parent: string, rules: string | any[], result: {
70
+ parent: any;
71
+ id: any;
72
+ value: any;
73
+ value2: any;
74
+ }[]) => void;
75
+ onSaveFilter: (itemId: string) => void;
76
+ onChangeFilterType: (index: number) => void;
77
+ onChangeSelectedFilter: (filter: ArchbaseQueryFilter, index: number) => void;
78
+ addNewFilter: () => void;
79
+ onActionClick: (action: string) => void;
80
+ removeFilter: () => void;
81
+ onCloseFilterClick: () => void;
82
+ getPosition: (type: PositionType, rangeType?: RangeType) => Position;
83
+ onResize: () => void;
84
+ onSelectRange: (rangeType: RangeType) => void;
85
+ onCancelSelectRange: () => void;
86
+ onConfirmSelectRange: (values: any, selectRangeType: any) => void;
87
+ selectFields: () => void;
88
+ onCancelSelectFields: () => void;
89
+ getSortString: (currentFilter: ArchbaseQueryFilter) => string;
90
+ onConfirmSelectFields: (selectedFields: Field[], sortFields: SortField[], activeIndex: number) => void;
91
+ onFocusEdit: () => void;
92
+ onClickOk: (_event: any, selectedRecords: any[]) => void;
93
+ onClickCancel: (_event: any) => void;
94
+ onSearchButtonClick: (field: string, _event: any, handleOnChange: any, operator: any, searchField: any) => void;
95
+ buildSearchModals: () => ReactNode[];
96
+ render: () => import("react/jsx-runtime").JSX.Element;
97
+ }
@@ -0,0 +1,13 @@
1
+ import { ButtonVariant } from '@mantine/core';
2
+ import { default as React } from 'react';
3
+ interface ArchbaseSaveFilterProps {
4
+ title: string;
5
+ id: string;
6
+ onClickOk?: (filterName: string, shared: boolean) => void;
7
+ onClickCancel?: (event?: React.MouseEvent) => void;
8
+ modalOpen?: string;
9
+ placeholder?: string;
10
+ variant?: ButtonVariant;
11
+ }
12
+ export declare const ArchbaseSaveFilter: React.FC<ArchbaseSaveFilterProps>;
13
+ export {};
@@ -0,0 +1,99 @@
1
+ import { MantineColorScheme, MantineTheme } from '@mantine/core';
2
+ import { Component, ReactNode } from 'react';
3
+ import { ArchbaseQueryFilter, Condition, Field, Operator, SelectedSort } from './ArchbaseFilterCommons';
4
+ interface Schema {
5
+ fields: Field[];
6
+ conditions: Condition[];
7
+ operators: Operator[];
8
+ onPropChange: (prop: any, value: any, ruleId: any) => void;
9
+ getLevel: (id: any) => number;
10
+ isRuleGroup: (rule: any) => boolean;
11
+ getOperators: (...args: any) => Operator[];
12
+ }
13
+ export interface ArchbaseSimpleFilterProps {
14
+ currentFilter?: any;
15
+ operators: any[];
16
+ onFilterChanged?: (filter: any, index: number) => void;
17
+ onError?: (error: any) => void;
18
+ fields: any[];
19
+ conditions: any[];
20
+ activeFilterIndex?: number;
21
+ allowSort?: boolean;
22
+ sortFocused?: boolean;
23
+ onSearchButtonClick?: (field: string, event?: any, handleOnChange?: any, operator?: any, searchField?: any) => void;
24
+ update?: number;
25
+ theme?: MantineTheme | null;
26
+ colorScheme?: MantineColorScheme | null;
27
+ }
28
+ export interface ArchbaseSimpleFilterState {
29
+ currentFilter: any;
30
+ update: number;
31
+ activeFilterIndex?: number;
32
+ simpleFields: ReactNode[];
33
+ schema: Schema;
34
+ }
35
+ declare class ArchbaseSimpleFilter extends Component<ArchbaseSimpleFilterProps, ArchbaseSimpleFilterState> {
36
+ static defaultProps: {
37
+ operators: {
38
+ name: string;
39
+ label: string;
40
+ dataTypes: string[];
41
+ }[];
42
+ conditions: {
43
+ name: string;
44
+ label: string;
45
+ }[];
46
+ onFilterChanged: any;
47
+ onError: any;
48
+ };
49
+ private prefixId;
50
+ constructor(props: ArchbaseSimpleFilterProps);
51
+ shouldComponentUpdate: (nextProps: ArchbaseSimpleFilterProps, nextState: ArchbaseSimpleFilterState) => boolean;
52
+ UNSAFE_componentWillReceiveProps: (nextProps: ArchbaseSimpleFilterProps) => void;
53
+ createSchema: () => Schema;
54
+ getDataType: (field: any, fields: string | any[]) => any;
55
+ getSelectedSort: () => SelectedSort[];
56
+ getSortItem: (field: any) => any;
57
+ getSortItemByOrder: (order: number) => any;
58
+ onChangeSortItem: (field: any, selected: any, order: any, asc_desc: any) => void;
59
+ propagateFilterChanged: () => void;
60
+ onSortDown: (_event: any) => void;
61
+ onSortUp: (_event: any) => void;
62
+ isRuleGroup: (rule: {
63
+ condition: any;
64
+ rules: any;
65
+ }) => boolean;
66
+ getField: (name: string) => any;
67
+ getOperators: (field: string) => Operator[];
68
+ onPropChange: (prop: string, value: any, ruleId: any) => void;
69
+ getLevel: (id: number) => number;
70
+ getLevel2: (id: any, index: number, root: any) => number;
71
+ findRule: (id: string, parent: {
72
+ id: any;
73
+ rules: any;
74
+ }) => any;
75
+ notifyQueryChange: (fn: Function, ...args: any[]) => void;
76
+ onSelectListItem: (index: any, _item: any) => void;
77
+ onOperatorChanged: (rule: {
78
+ id: any;
79
+ }, value: any) => void;
80
+ onDisabledChanged: (_value: any, checked: any, rule: {
81
+ id: any;
82
+ }, id: string) => void;
83
+ onValueChanged: (rule: {
84
+ id?: any;
85
+ field?: any;
86
+ operator?: any;
87
+ }, value: any | {
88
+ toString: () => any;
89
+ }[]) => void;
90
+ onValue2Changed: (rule: {
91
+ id: any;
92
+ }, value: any) => void;
93
+ onElementChanged: (property: string, value: string | boolean, id: any) => void;
94
+ getFieldValues: (field: any, fields: Field[] | any[]) => any;
95
+ getColor: (color: string) => string;
96
+ createFilterFields: (props: any, schema: Schema, currentFilter: ArchbaseQueryFilter) => ReactNode[];
97
+ render: () => import("react/jsx-runtime").JSX.Element;
98
+ }
99
+ export { ArchbaseSimpleFilter };
@@ -0,0 +1,17 @@
1
+ export { QueryFieldValue, QueryField, QueryFields, QueryFilterEntity, FilterField, FilterFieldValue, FilterFields, getDefaultFilter, defaultConditions, defaultOperators, getDefaultEmptyFilter, getQuickFilterFields, mergeSortWithFields, getQuickFilterSort, getQuickFields, getFieldValues, getFieldSql, getFields, getQuickFieldsSort, getQuickFilterSortBySelectedFields, convertQueryFields, getSortString, QUICK_FILTER_INDEX, NEW_FILTER_INDEX, NORMAL, QUICK, ADVANCED, OP_NULL, OP_NOT_NULL, OP_CONTAINS, OP_STARTSWITH, OP_ENDSWITH, OP_EQUALS, OP_NOT_EQUALS, OP_GREATER, OP_LESS, OP_GREATER_OR_EQUAL, OP_LESS_OR_EQUAL, OP_BETWEEN, OP_IN_LIST, OP_NOT_IN_LIST, } from './ArchbaseFilterCommons';
2
+ export type { Field, SortField, Filter, FilterOptions, ArchbaseQueryFilter, ArchbaseQueryFilterState, ArchbaseQueryFilterDelegator, PositionType, RangeType, Position, FilterType, DataType, FilterValue, SelectedSort, Operator, Rule, Condition, Schema, DelegatorCallback, IQueryFilterEntity, ArchbaseQueryBuilderProps, } from './ArchbaseFilterCommons';
3
+ export { ArchbaseAdvancedFilter, CustomSortItem, ValueEditor } from './ArchbaseAdvancedFilter';
4
+ export { ArchbaseCompositeFilter, ArchbaseDetailedFilter } from './ArchbaseCompositeFilter';
5
+ export { ArchbaseFeedback } from './ArchbaseFeedback';
6
+ export { ArchbaseFilterSelectFields } from './ArchbaseFilterSelectFields';
7
+ export { ArchbaseFilterSelectRange } from './ArchbaseFilterSelectRange';
8
+ export { ArchbaseInputSearch } from './ArchbaseInputSearch';
9
+ export { ArchbaseQueryBuilder } from './ArchbaseQueryBuilder';
10
+ export type { ArchbaseQueryBuilderState } from './ArchbaseQueryBuilder';
11
+ export { ArchbaseSaveFilter } from './ArchbaseSaveFilter';
12
+ export { ArchbaseSimpleFilter } from './ArchbaseSimpleFilter';
13
+ export { ArchbaseGlobalFilter } from './ArchbaseGlobalFilter';
14
+ export type { ArchbaseGlobalFilterProps } from './ArchbaseGlobalFilter';
15
+ export type { ArchbaseSimpleFilterProps, ArchbaseSimpleFilterState } from './ArchbaseSimpleFilter';
16
+ export { buildFrom } from './ArchbaseFilterRSQL';
17
+ export * as GraphQLQueryBuilder from './ArchbaseFilterGraphQL';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@archbase/advanced",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "Archbase React Advanced Components - Charts, Kanban, QueryBuilder",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -10,51 +10,54 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js",
12
12
  "require": "./dist/index.js"
13
- }
13
+ },
14
+ "./dist/index.css": "./dist/index.css"
14
15
  },
15
16
  "files": [
16
17
  "dist"
17
18
  ],
18
19
  "peerDependencies": {
19
- "react": "^19.0.0",
20
- "react-dom": "^19.0.0",
21
20
  "@mantine/core": "8.3.12",
22
- "@mantine/hooks": "8.3.12",
23
21
  "@mantine/dates": "8.3.12",
24
- "@tabler/icons-react": "^3.29.0"
22
+ "@mantine/hooks": "8.3.12",
23
+ "@tabler/icons-react": "^3.29.0",
24
+ "react": "^19.2.0",
25
+ "react-dom": "^19.2.0"
25
26
  },
26
27
  "dependencies": {
28
+ "@archbase/components": "3.0.2",
29
+ "@archbase/core": "3.0.2",
30
+ "@archbase/data": "3.0.2",
31
+ "@archbase/layout": "3.0.2",
32
+ "date-fns": "^2.30.0",
33
+ "dayjs": "^1.11.10",
27
34
  "i18next": "^23.16.8",
28
35
  "lodash": "^4.17.21",
36
+ "react-accessible-accordion": "^5.0.0",
29
37
  "react-addons-shallow-compare": "^15.6.3",
30
- "react-select": "^5.8.0",
31
- "react-multi-date-picker": "4.1.2",
32
38
  "react-date-object": "^2.1.8",
33
- "react-accessible-accordion": "^5.0.0",
34
- "uuid": "^9.0.1",
35
- "react-use": "^17.5.0",
36
- "dayjs": "^1.11.10",
37
39
  "react-i18next": "^13.5.0",
38
40
  "react-modal": "^3.16.1",
39
- "date-fns": "^2.30.0",
40
- "@archbase/core": "3.0.0",
41
- "@archbase/data": "3.0.0",
42
- "@archbase/components": "3.0.0",
43
- "@archbase/layout": "3.0.0"
41
+ "react-multi-date-picker": "4.1.2",
42
+ "react-select": "^5.8.0",
43
+ "react-use": "^17.5.0",
44
+ "uuid": "^9.0.1"
44
45
  },
45
46
  "devDependencies": {
46
- "@types/react": "^19.0.2",
47
- "@types/react-dom": "^19.0.2",
48
47
  "@types/lodash": "^4.17.13",
48
+ "@types/react": "^19.0.6",
49
49
  "@types/react-addons-shallow-compare": "^0.14.22",
50
+ "@types/react-dom": "^19.0.2",
50
51
  "typescript": "^5.7.2",
51
- "vite": "^6.3.5"
52
+ "vite": "^6.3.5",
53
+ "vite-plugin-dts": "^4.5.4"
52
54
  },
53
55
  "publishConfig": {
54
56
  "registry": "http://192.168.1.110:4873"
55
57
  },
58
+ "module": "./dist/index.js",
56
59
  "scripts": {
57
- "build": "NODE_OPTIONS=\"--max-old-space-size=16384\" vite build && tsc --emitDeclarationOnly || true",
60
+ "build": "NODE_OPTIONS=\"--max-old-space-size=16384\" vite build",
58
61
  "typecheck": "tsc --noEmit",
59
62
  "lint": "eslint src --ext .ts,.tsx",
60
63
  "clean": "rm -rf dist"
Binary file