@beabee/beabee-common 1.5.1 → 1.6.1
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.
- package/dist/cjs/search/index.js +10 -8
- package/dist/esm/search/index.js +7 -5
- package/dist/types/search/index.d.ts +30 -24
- package/package.json +1 -1
package/dist/cjs/search/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// *** Definitions for rules ***
|
|
2
3
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
4
|
if (k2 === undefined) k2 = k;
|
|
4
5
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -14,8 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
15
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
16
|
};
|
|
16
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
18
|
+
exports.convertFiltersToRuleGroup = exports.convertRuleGroupToFilters = exports.validateRuleGroup = exports.validateRule = exports.isRuleGroup = exports.operatorsByType = exports.nullableOperators = exports.ruleOperators = void 0;
|
|
19
|
+
exports.ruleOperators = [
|
|
19
20
|
"equal",
|
|
20
21
|
"not_equal",
|
|
21
22
|
"less",
|
|
@@ -68,6 +69,7 @@ exports.operatorsByType = {
|
|
|
68
69
|
enum: equalityOperators,
|
|
69
70
|
contact: equalityOperators,
|
|
70
71
|
};
|
|
72
|
+
// *** Helper methods ***
|
|
71
73
|
function isRuleGroup(ruleOrGroup) {
|
|
72
74
|
return "condition" in ruleOrGroup;
|
|
73
75
|
}
|
|
@@ -99,20 +101,20 @@ function validateRuleGroup(filters, ruleGroup) {
|
|
|
99
101
|
return true;
|
|
100
102
|
}
|
|
101
103
|
exports.validateRuleGroup = validateRuleGroup;
|
|
102
|
-
function
|
|
103
|
-
if (!
|
|
104
|
+
function convertRuleGroupToFilters(ruleGroup) {
|
|
105
|
+
if (!ruleGroup) {
|
|
104
106
|
return null;
|
|
105
107
|
}
|
|
106
108
|
// TODO: how to handle groups?
|
|
107
|
-
const rulesWithoutGroups =
|
|
109
|
+
const rulesWithoutGroups = ruleGroup.rules.filter((rule) => !isRuleGroup(rule));
|
|
108
110
|
return rulesWithoutGroups.map((rule) => ({
|
|
109
111
|
id: rule.field,
|
|
110
112
|
operator: rule.operator,
|
|
111
113
|
values: [...rule.value],
|
|
112
114
|
}));
|
|
113
115
|
}
|
|
114
|
-
exports.
|
|
115
|
-
function
|
|
116
|
+
exports.convertRuleGroupToFilters = convertRuleGroupToFilters;
|
|
117
|
+
function convertFiltersToRuleGroup(matchType, filters) {
|
|
116
118
|
return {
|
|
117
119
|
condition: matchType === "all" ? "AND" : "OR",
|
|
118
120
|
rules: filters.map((filter) => ({
|
|
@@ -122,7 +124,7 @@ function convertFiltersToRules(matchType, filters) {
|
|
|
122
124
|
})),
|
|
123
125
|
};
|
|
124
126
|
}
|
|
125
|
-
exports.
|
|
127
|
+
exports.convertFiltersToRuleGroup = convertFiltersToRuleGroup;
|
|
126
128
|
__exportStar(require("./callouts"), exports);
|
|
127
129
|
__exportStar(require("./contacts"), exports);
|
|
128
130
|
__exportStar(require("./notices"), exports);
|
package/dist/esm/search/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
// *** Definitions for rules ***
|
|
2
|
+
export const ruleOperators = [
|
|
2
3
|
"equal",
|
|
3
4
|
"not_equal",
|
|
4
5
|
"less",
|
|
@@ -51,6 +52,7 @@ export const operatorsByType = {
|
|
|
51
52
|
enum: equalityOperators,
|
|
52
53
|
contact: equalityOperators,
|
|
53
54
|
};
|
|
55
|
+
// *** Helper methods ***
|
|
54
56
|
export function isRuleGroup(ruleOrGroup) {
|
|
55
57
|
return "condition" in ruleOrGroup;
|
|
56
58
|
}
|
|
@@ -79,19 +81,19 @@ export function validateRuleGroup(filters, ruleGroup) {
|
|
|
79
81
|
}
|
|
80
82
|
return true;
|
|
81
83
|
}
|
|
82
|
-
export function
|
|
83
|
-
if (!
|
|
84
|
+
export function convertRuleGroupToFilters(ruleGroup) {
|
|
85
|
+
if (!ruleGroup) {
|
|
84
86
|
return null;
|
|
85
87
|
}
|
|
86
88
|
// TODO: how to handle groups?
|
|
87
|
-
const rulesWithoutGroups =
|
|
89
|
+
const rulesWithoutGroups = ruleGroup.rules.filter((rule) => !isRuleGroup(rule));
|
|
88
90
|
return rulesWithoutGroups.map((rule) => ({
|
|
89
91
|
id: rule.field,
|
|
90
92
|
operator: rule.operator,
|
|
91
93
|
values: [...rule.value],
|
|
92
94
|
}));
|
|
93
95
|
}
|
|
94
|
-
export function
|
|
96
|
+
export function convertFiltersToRuleGroup(matchType, filters) {
|
|
95
97
|
return {
|
|
96
98
|
condition: matchType === "all" ? "AND" : "OR",
|
|
97
99
|
rules: filters.map((filter) => ({
|
|
@@ -1,25 +1,18 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare type
|
|
3
|
-
export declare type
|
|
4
|
-
export interface
|
|
5
|
-
field:
|
|
6
|
-
operator:
|
|
7
|
-
value:
|
|
8
|
-
}
|
|
9
|
-
export interface GetPaginatedQueryRuleGroup<T> {
|
|
10
|
-
condition: "AND" | "OR";
|
|
11
|
-
rules: (GetPaginatedQueryRuleGroup<T> | GetPaginatedQueryRule<T>)[];
|
|
1
|
+
export declare const ruleOperators: readonly ["equal", "not_equal", "less", "less_or_equal", "greater", "greater_or_equal", "between", "not_between", "begins_with", "not_begins_with", "contains", "not_contains", "ends_with", "not_ends_with", "is_empty", "is_not_empty"];
|
|
2
|
+
export declare type RuleOperator = typeof ruleOperators[number];
|
|
3
|
+
export declare type RuleValue = string | number | boolean;
|
|
4
|
+
export interface Rule<Field extends string> {
|
|
5
|
+
field: Field;
|
|
6
|
+
operator: RuleOperator;
|
|
7
|
+
value: RuleValue[];
|
|
12
8
|
}
|
|
13
|
-
export interface
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
sort?: string;
|
|
17
|
-
order?: "ASC" | "DESC";
|
|
18
|
-
rules?: GetPaginatedQueryRuleGroup<T>;
|
|
9
|
+
export interface RuleGroup<Field extends string> {
|
|
10
|
+
condition: "AND" | "OR";
|
|
11
|
+
rules: (RuleGroup<Field> | Rule<Field>)[];
|
|
19
12
|
}
|
|
20
13
|
export declare type FilterType = "text" | "date" | "number" | "boolean" | "array" | "enum" | "contact";
|
|
21
|
-
export declare type FilterValue =
|
|
22
|
-
export declare type FilterOperator =
|
|
14
|
+
export declare type FilterValue = RuleValue;
|
|
15
|
+
export declare type FilterOperator = RuleOperator;
|
|
23
16
|
export interface FilterOperatorParams {
|
|
24
17
|
args: number;
|
|
25
18
|
}
|
|
@@ -50,11 +43,24 @@ export interface Filter {
|
|
|
50
43
|
operator: FilterOperator;
|
|
51
44
|
values: FilterValue[];
|
|
52
45
|
}
|
|
53
|
-
export
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
export interface Paginated<T> {
|
|
47
|
+
items: T[];
|
|
48
|
+
offset: number;
|
|
49
|
+
count: number;
|
|
50
|
+
total: number;
|
|
51
|
+
}
|
|
52
|
+
export interface PaginatedQuery<Field extends string> {
|
|
53
|
+
limit?: number;
|
|
54
|
+
offset?: number;
|
|
55
|
+
sort?: string;
|
|
56
|
+
order?: "ASC" | "DESC";
|
|
57
|
+
rules?: RuleGroup<Field>;
|
|
58
|
+
}
|
|
59
|
+
export declare function isRuleGroup<Field extends string>(ruleOrGroup: Rule<Field> | RuleGroup<Field>): ruleOrGroup is RuleGroup<Field>;
|
|
60
|
+
export declare function validateRule<Field extends string>(filters: Filters<Field>, rule: Rule<string>): rule is Rule<Field>;
|
|
61
|
+
export declare function validateRuleGroup<Field extends string>(filters: Filters<Field>, ruleGroup: RuleGroup<string>): ruleGroup is RuleGroup<Field>;
|
|
62
|
+
export declare function convertRuleGroupToFilters(ruleGroup?: RuleGroup<string>): Filter[] | null;
|
|
63
|
+
export declare function convertFiltersToRuleGroup(matchType: "all" | "any", filters: Filter[]): RuleGroup<string>;
|
|
58
64
|
export * from "./callouts";
|
|
59
65
|
export * from "./contacts";
|
|
60
66
|
export * from "./notices";
|