@servicetitan/data-query 31.2.0 → 31.3.0
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/accessor.js +7 -7
- package/dist/accessor.js.map +1 -1
- package/dist/array.operators.js +22 -23
- package/dist/array.operators.js.map +1 -1
- package/dist/common.interfaces.js +4 -1
- package/dist/common.interfaces.js.map +1 -1
- package/dist/data-result.interface.js +4 -1
- package/dist/data-result.interface.js.map +1 -1
- package/dist/data-source/async-data-source.js +28 -36
- package/dist/data-source/async-data-source.js.map +1 -1
- package/dist/data-source/data-source.js +2 -1
- package/dist/data-source/data-source.js.map +1 -1
- package/dist/data-source/in-memory-data-source.js +47 -50
- package/dist/data-source/in-memory-data-source.js.map +1 -1
- package/dist/data-source/index.js +2 -0
- package/dist/data-source/index.js.map +1 -1
- package/dist/filter-serialization.common.js +33 -43
- package/dist/filter-serialization.common.js.map +1 -1
- package/dist/filtering/filter-descriptor.interface.js +2 -2
- package/dist/filtering/filter-descriptor.interface.js.map +1 -1
- package/dist/filtering/filter-expression.factory.js +7 -8
- package/dist/filtering/filter-expression.factory.js.map +1 -1
- package/dist/filtering/filter-no-eval.js +42 -50
- package/dist/filtering/filter-no-eval.js.map +1 -1
- package/dist/filtering/filter.operators.js +42 -40
- package/dist/filtering/filter.operators.js.map +1 -1
- package/dist/funcs.js +5 -8
- package/dist/funcs.js.map +1 -1
- package/dist/grouping/aggregate.operators.js +4 -4
- package/dist/grouping/aggregate.operators.js.map +1 -1
- package/dist/grouping/group-descriptor.interface.js +4 -2
- package/dist/grouping/group-descriptor.interface.js.map +1 -1
- package/dist/grouping/group.operators.js +13 -12
- package/dist/grouping/group.operators.js.map +1 -1
- package/dist/index.js +13 -6
- package/dist/index.js.map +1 -1
- package/dist/mvc/deserialization.js +30 -31
- package/dist/mvc/deserialization.js.map +1 -1
- package/dist/mvc/operators.js +66 -48
- package/dist/mvc/operators.js.map +1 -1
- package/dist/odata-filtering.operators.js +68 -38
- package/dist/odata-filtering.operators.js.map +1 -1
- package/dist/odata.operators.js +12 -17
- package/dist/odata.operators.js.map +1 -1
- package/dist/sort-descriptor.js +4 -1
- package/dist/sort-descriptor.js.map +1 -1
- package/dist/sorting/sort-array.operator.js +10 -13
- package/dist/sorting/sort-array.operator.js.map +1 -1
- package/dist/sorting/sort.js +9 -10
- package/dist/sorting/sort.js.map +1 -1
- package/dist/state.js +4 -1
- package/dist/state.js.map +1 -1
- package/dist/transducers.js +93 -102
- package/dist/transducers.js.map +1 -1
- package/dist/utils.js +11 -20
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
package/dist/transducers.js
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import { isPresent, isNumeric, isDate } from './utils';
|
|
2
2
|
import { getter } from './accessor';
|
|
3
|
-
const valueToString = (value)
|
|
3
|
+
const valueToString = (value)=>{
|
|
4
4
|
value = isPresent(value) && value.getTime ? value.getTime() : value;
|
|
5
5
|
return value + "";
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
8
8
|
* @hidden
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const prop = a => {
|
|
9
|
+
*/ export const groupCombinator = (field, preprocessors = {})=>{
|
|
10
|
+
const prop = (a)=>{
|
|
12
11
|
const value = getter(field, true)(a);
|
|
13
12
|
const preprocessor = preprocessors[field];
|
|
14
13
|
return preprocessor ? preprocessor(value) : value;
|
|
15
14
|
};
|
|
16
15
|
let position = 0;
|
|
17
|
-
return (agg, value)
|
|
16
|
+
return (agg, value)=>{
|
|
18
17
|
agg[field] = agg[field] || {};
|
|
19
18
|
const groupValue = prop(value);
|
|
20
19
|
const key = valueToString(groupValue);
|
|
21
|
-
const values = agg[field][key] || {
|
|
20
|
+
const values = agg[field][key] || {
|
|
21
|
+
__position: position++,
|
|
22
|
+
aggregates: {},
|
|
23
|
+
items: [],
|
|
24
|
+
value: groupValue
|
|
25
|
+
};
|
|
22
26
|
values.items.push(value);
|
|
23
27
|
agg[field][key] = values;
|
|
24
28
|
return agg;
|
|
@@ -26,133 +30,123 @@ export const groupCombinator = (field, preprocessors = {}) => {
|
|
|
26
30
|
};
|
|
27
31
|
/**
|
|
28
32
|
* @hidden
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
Object.keys(result).forEach(field => {
|
|
33
|
+
*/ export const expandAggregates = (result = {})=>{
|
|
34
|
+
Object.keys(result).forEach((field)=>{
|
|
32
35
|
const aggregates = result[field];
|
|
33
|
-
Object.keys(aggregates).forEach(aggregate
|
|
36
|
+
Object.keys(aggregates).forEach((aggregate)=>{
|
|
34
37
|
aggregates[aggregate] = aggregates[aggregate].result();
|
|
35
38
|
});
|
|
36
39
|
});
|
|
37
40
|
return result;
|
|
38
41
|
};
|
|
39
|
-
const aggregatesFuncs = (name)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
}[name]());
|
|
42
|
+
const aggregatesFuncs = (name)=>({
|
|
43
|
+
average: ()=>{
|
|
44
|
+
let value = 0;
|
|
45
|
+
let count = 0;
|
|
46
|
+
let lastNonNumeric = undefined;
|
|
47
|
+
return {
|
|
48
|
+
calc: (curr)=>{
|
|
49
|
+
if (isNumeric(curr)) {
|
|
50
|
+
value += curr;
|
|
51
|
+
count++;
|
|
52
|
+
} else {
|
|
53
|
+
lastNonNumeric = curr;
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
result: ()=>count ? value / count : lastNonNumeric
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
count: ()=>{
|
|
60
|
+
let state = 0;
|
|
61
|
+
return {
|
|
62
|
+
calc: ()=>state++,
|
|
63
|
+
result: ()=>state
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
max: ()=>{
|
|
67
|
+
let state = Number.NEGATIVE_INFINITY;
|
|
68
|
+
return {
|
|
69
|
+
calc: (value)=>{
|
|
70
|
+
state = isNumeric(state) || isDate(state) ? state : value;
|
|
71
|
+
if (state < value && (isNumeric(value) || isDate(value))) {
|
|
72
|
+
state = value;
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
result: ()=>state
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
min: ()=>{
|
|
79
|
+
let state = Number.POSITIVE_INFINITY;
|
|
80
|
+
return {
|
|
81
|
+
calc: (value)=>{
|
|
82
|
+
state = isNumeric(state) || isDate(state) ? state : value;
|
|
83
|
+
if (state > value && (isNumeric(value) || isDate(value))) {
|
|
84
|
+
state = value;
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
result: ()=>state
|
|
88
|
+
};
|
|
89
|
+
},
|
|
90
|
+
sum: ()=>{
|
|
91
|
+
let state = 0;
|
|
92
|
+
return {
|
|
93
|
+
calc: (value)=>state += value,
|
|
94
|
+
result: ()=>state
|
|
95
|
+
};
|
|
96
|
+
},
|
|
97
|
+
count_distinct: ()=>{
|
|
98
|
+
const state = new Set();
|
|
99
|
+
return {
|
|
100
|
+
calc: (value)=>state.add(isPresent(value) && typeof value === 'object' && value.toString ? value.toString() : value),
|
|
101
|
+
result: ()=>state.size
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
})[name]();
|
|
105
105
|
/**
|
|
106
106
|
* @hidden
|
|
107
|
-
*/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const fieldAccessor = a => {
|
|
107
|
+
*/ export const aggregatesCombinator = (descriptors, preprocessors = {})=>{
|
|
108
|
+
const functions = descriptors.map((descriptor)=>{
|
|
109
|
+
const fieldAccessor = (a)=>{
|
|
111
110
|
const value = getter(descriptor.field, true)(a);
|
|
112
111
|
const preprocessor = preprocessors[descriptor.field];
|
|
113
112
|
return preprocessor ? preprocessor(value) : value;
|
|
114
113
|
};
|
|
115
114
|
const aggregateName = (descriptor.aggregate || "").toLowerCase();
|
|
116
115
|
const aggregateAccessor = getter(aggregateName, true);
|
|
117
|
-
return (state, value)
|
|
116
|
+
return (state, value)=>{
|
|
118
117
|
const fieldAggregates = state[descriptor.field] || {};
|
|
119
|
-
const aggregateFunction = aggregateAccessor(fieldAggregates)
|
|
120
|
-
|| aggregatesFuncs(aggregateName);
|
|
118
|
+
const aggregateFunction = aggregateAccessor(fieldAggregates) || aggregatesFuncs(aggregateName);
|
|
121
119
|
aggregateFunction.calc(fieldAccessor(value));
|
|
122
120
|
fieldAggregates[descriptor.aggregate] = aggregateFunction;
|
|
123
121
|
state[descriptor.field] = fieldAggregates;
|
|
124
122
|
return state;
|
|
125
123
|
};
|
|
126
124
|
});
|
|
127
|
-
return (state, value)
|
|
125
|
+
return (state, value)=>functions.reduce((agg, calc)=>calc(agg, value), state);
|
|
128
126
|
};
|
|
129
127
|
/**
|
|
130
128
|
* @hidden
|
|
131
129
|
* Adds the value to the `arr` and produces a new array.
|
|
132
130
|
*
|
|
133
131
|
* > The original array will be modified.
|
|
134
|
-
*/
|
|
135
|
-
export const concat = (arr, value) => {
|
|
132
|
+
*/ export const concat = (arr, value)=>{
|
|
136
133
|
arr.push(value);
|
|
137
134
|
return arr;
|
|
138
135
|
};
|
|
139
136
|
/**
|
|
140
137
|
* @hidden
|
|
141
138
|
* Returns a reducer that will apply the specified transformation to the value.
|
|
142
|
-
*/
|
|
143
|
-
export const map = (transform) => ((reduce) => ((acc, curr, index) => reduce(acc, transform(curr, index))));
|
|
139
|
+
*/ export const map = (transform)=>(reduce)=>(acc, curr, index)=>reduce(acc, transform(curr, index));
|
|
144
140
|
/**
|
|
145
141
|
* @hidden
|
|
146
142
|
* Returns a reducer that will filter out items which do not match the `Predicate`.
|
|
147
|
-
*/
|
|
148
|
-
export const filter = (predicate) => ((reduce) => ((acc, curr) => predicate(curr) ? reduce(acc, curr) : acc));
|
|
143
|
+
*/ export const filter = (predicate)=>(reduce)=>(acc, curr)=>predicate(curr) ? reduce(acc, curr) : acc;
|
|
149
144
|
/**
|
|
150
145
|
* @hidden
|
|
151
|
-
*/
|
|
152
|
-
export const isTransformerResult = (source) => {
|
|
146
|
+
*/ export const isTransformerResult = (source)=>{
|
|
153
147
|
return isPresent(source.__value);
|
|
154
148
|
};
|
|
155
|
-
const reduced = (x)
|
|
149
|
+
const reduced = (x)=>{
|
|
156
150
|
if (isTransformerResult(x)) {
|
|
157
151
|
return x;
|
|
158
152
|
}
|
|
@@ -164,25 +158,21 @@ const reduced = (x) => {
|
|
|
164
158
|
/**
|
|
165
159
|
* @hidden
|
|
166
160
|
* Returns a reducer that will take the specified number of items.
|
|
167
|
-
*/
|
|
168
|
-
export const take = (count) => ((reduce) => ((acc, curr) => count-- > 0 ? reduce(acc, curr) : reduced(acc)));
|
|
161
|
+
*/ export const take = (count)=>(reduce)=>(acc, curr)=>count-- > 0 ? reduce(acc, curr) : reduced(acc);
|
|
169
162
|
/**
|
|
170
163
|
* @hidden
|
|
171
164
|
* Returns a reducer that will take the specified number of items.
|
|
172
|
-
*/
|
|
173
|
-
export const takeWhile = (predicate) => ((reduce) => ((acc, curr) => predicate(curr) ? reduce(acc, curr) : reduced(acc)));
|
|
165
|
+
*/ export const takeWhile = (predicate)=>(reduce)=>(acc, curr)=>predicate(curr) ? reduce(acc, curr) : reduced(acc);
|
|
174
166
|
/**
|
|
175
167
|
* @hidden
|
|
176
168
|
* Returns a reducer that will skip the specified number of items.
|
|
177
|
-
*/
|
|
178
|
-
export const skip = (count) => ((reduce) => ((acc, curr) => count-- <= 0 ? reduce(acc, curr) : acc));
|
|
169
|
+
*/ export const skip = (count)=>(reduce)=>(acc, curr)=>count-- <= 0 ? reduce(acc, curr) : acc;
|
|
179
170
|
/**
|
|
180
171
|
* @hidden
|
|
181
172
|
* Transforms the data by applying the supplied transformer.
|
|
182
|
-
*/
|
|
183
|
-
export const exec = (transform, initialValue, data) => {
|
|
173
|
+
*/ export const exec = (transform, initialValue, data)=>{
|
|
184
174
|
let result = initialValue;
|
|
185
|
-
for
|
|
175
|
+
for(let idx = 0, length = data.length; idx < length; idx++){
|
|
186
176
|
result = transform(result, data[idx], idx);
|
|
187
177
|
if (isTransformerResult(result)) {
|
|
188
178
|
result = result.__value;
|
|
@@ -191,4 +181,5 @@ export const exec = (transform, initialValue, data) => {
|
|
|
191
181
|
}
|
|
192
182
|
return result;
|
|
193
183
|
};
|
|
184
|
+
|
|
194
185
|
//# sourceMappingURL=transducers.js.map
|
package/dist/transducers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transducers.js","sourceRoot":"","sources":["../src/transducers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/transducers.ts"],"sourcesContent":["import { isPresent, isNumeric, isDate } from './utils';\nimport { getter } from './accessor';\nimport { Combinator, Predicate, Reducer, Transformer, TransformerResult, Preprocessors } from './common.interfaces';\n\nconst valueToString = (value): string => {\n value = isPresent(value) && value.getTime ? value.getTime() : value;\n return value + \"\";\n};\n\n/**\n * @hidden\n */\nexport const groupCombinator = <T>(field, preprocessors: Preprocessors<T> = {}) => {\n const prop = a => {\n const value = getter(field, true)(a);\n const preprocessor = preprocessors[field];\n return preprocessor ? preprocessor(value) : value;\n };\n\n let position = 0;\n\n return (agg, value) => {\n agg[field] = agg[field] || {};\n\n const groupValue = prop(value);\n const key = valueToString(groupValue);\n const values = agg[field][key] || { __position: position++, aggregates: {}, items: [], value: groupValue };\n\n values.items.push(value);\n\n agg[field][key] = values;\n\n return agg;\n };\n};\n\n// tslint:disable:max-line-length\n/**\n * The result of the [aggregate operation]({% slug api_kendo-data-query_aggregateby %}) where the keys are the field name used for the calculation and the values are an object with the aggregate function name and a resulting value.\n *\n * @example\n * ```js-no-run\n * const result = <AggregateResult>{\n * \"unitPrice\": { \"sum\": 53, \"count\": 2 },\n * \"unitsInStock\": { \"sum\": 66, \"count\": 3 }\n * };\n *\n * console.log(result[\"unitPrice\"].sum); //53\n *\n * ```\n */\n// tslint:enable:max-line-length\nexport interface AggregateResult {\n [fieldName: string]: {\n count?: number;\n sum?: number;\n average?: number;\n min?: number;\n max?: number;\n count_distinct?: number\n };\n}\n\n/**\n * @hidden\n */\nexport const expandAggregates = (result = {}): AggregateResult => {\n Object.keys(result).forEach(field => {\n const aggregates = result[field];\n Object.keys(aggregates).forEach(aggregate => {\n aggregates[aggregate] = aggregates[aggregate].result();\n });\n });\n return result;\n};\n\nconst aggregatesFuncs = (name) => ({\n average: () => {\n let value = 0;\n let count = 0;\n let lastNonNumeric: any = undefined;\n return {\n calc: (curr) => {\n if (isNumeric(curr)) {\n value += curr;\n count++;\n } else {\n lastNonNumeric = curr;\n }\n },\n result: () => count ? value / count : lastNonNumeric\n };\n },\n count: () => {\n let state = 0;\n return {\n calc: () => state++,\n result: () => state\n };\n },\n max: () => {\n let state = Number.NEGATIVE_INFINITY;\n return {\n calc: (value) => {\n state = isNumeric(state) || isDate(state) ? state : value;\n\n if (state < value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: () => state\n };\n },\n min: () => {\n let state = Number.POSITIVE_INFINITY;\n return {\n calc: (value) => {\n state = isNumeric(state) || isDate(state) ? state : value;\n\n if (state > value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: () => state\n };\n },\n sum: () => {\n let state = 0;\n return {\n calc: (value) => state += value,\n result: () => state\n };\n },\n count_distinct: () => {\n const state = new Set();\n return {\n calc: (value) => state.add(\n isPresent(value) && typeof value === 'object' && value.toString\n ? value.toString()\n : value\n ),\n result: () => state.size,\n };\n }\n}[name]());\n\n/**\n * @hidden\n */\nexport const aggregatesCombinator = <T>(descriptors, preprocessors: Preprocessors<T> = {}) => {\n const functions = descriptors.map(descriptor => {\n const fieldAccessor = a => {\n const value = getter(descriptor.field, true)(a);\n const preprocessor = preprocessors[descriptor.field];\n return preprocessor ? preprocessor(value) : value;\n };\n const aggregateName = (descriptor.aggregate || \"\").toLowerCase();\n const aggregateAccessor = getter(aggregateName, true);\n\n return (state, value) => {\n const fieldAggregates = state[descriptor.field] || {};\n\n const aggregateFunction = aggregateAccessor(fieldAggregates)\n || aggregatesFuncs(aggregateName);\n\n aggregateFunction.calc(fieldAccessor(value));\n\n fieldAggregates[descriptor.aggregate] = aggregateFunction;\n\n state[descriptor.field] = fieldAggregates;\n\n return state;\n };\n });\n\n return (state, value) => functions.reduce((agg, calc) => calc(agg, value), state);\n};\n\n/**\n * @hidden\n * Adds the value to the `arr` and produces a new array.\n *\n * > The original array will be modified.\n */\nexport const concat = <T>(arr: T[], value: T): T[] => {\n arr.push(value);\n return arr;\n};\n\n/**\n * @hidden\n * Returns a reducer that will apply the specified transformation to the value.\n */\nexport const map = (transform): Reducer => (\n (reduce: Combinator): Transformer => (\n (acc, curr, index) => reduce(acc, transform(curr, index))\n )\n);\n\n/**\n * @hidden\n * Returns a reducer that will filter out items which do not match the `Predicate`.\n */\nexport const filter = (predicate): Reducer => (\n (reduce: Combinator): Transformer => (\n (acc, curr) => predicate(curr) ? reduce(acc, curr) : acc\n )\n);\n\n/**\n * @hidden\n */\nexport const isTransformerResult = <T>(source: TransformerResult<T>): source is TransformerResult<T> => {\n return isPresent((<TransformerResult<T>>source).__value);\n};\n\nconst reduced = <T>(x): TransformerResult<T> => {\n if (isTransformerResult(x)) {\n return <TransformerResult<T>>x;\n }\n return {\n __value: x,\n reduced: true\n };\n};\n\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport const take = (count: number): Reducer => (\n (reduce: Combinator): Transformer => (\n (acc, curr) => count-- > 0 ? reduce(acc, curr) : reduced(acc)\n )\n);\n\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport const takeWhile = (predicate: Predicate): Reducer => (\n (reduce: Combinator): Transformer => (\n (acc, curr) => predicate(curr) ? reduce(acc, curr) : reduced(acc)\n )\n);\n\n/**\n * @hidden\n * Returns a reducer that will skip the specified number of items.\n */\nexport const skip = (count: number): Reducer => (\n (reduce: Combinator): Transformer => (\n (acc, curr) => count-- <= 0 ? reduce(acc, curr) : acc\n )\n);\n\n/**\n * @hidden\n * Transforms the data by applying the supplied transformer.\n */\nexport const exec = <T, U>(transform: Transformer, initialValue: U, data: T[]): U => {\n let result: any = initialValue;\n\n for (let idx = 0, length = data.length; idx < length; idx++) {\n result = transform(result, data[idx], idx);\n\n if (isTransformerResult(result)) {\n result = result.__value;\n break;\n }\n }\n\n return result;\n};\n"],"names":["isPresent","isNumeric","isDate","getter","valueToString","value","getTime","groupCombinator","field","preprocessors","prop","a","preprocessor","position","agg","groupValue","key","values","__position","aggregates","items","push","expandAggregates","result","Object","keys","forEach","aggregate","aggregatesFuncs","name","average","count","lastNonNumeric","undefined","calc","curr","state","max","Number","NEGATIVE_INFINITY","min","POSITIVE_INFINITY","sum","count_distinct","Set","add","toString","size","aggregatesCombinator","descriptors","functions","map","descriptor","fieldAccessor","aggregateName","toLowerCase","aggregateAccessor","fieldAggregates","aggregateFunction","reduce","concat","arr","transform","acc","index","filter","predicate","isTransformerResult","source","__value","reduced","x","take","takeWhile","skip","exec","initialValue","data","idx","length"],"mappings":"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"}
|
package/dist/utils.js
CHANGED
|
@@ -1,41 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @hidden
|
|
3
|
-
*/
|
|
4
|
-
export const isPresent = (value) => value !== null && value !== undefined;
|
|
3
|
+
*/ export const isPresent = (value)=>value !== null && value !== undefined;
|
|
5
4
|
/**
|
|
6
5
|
* @hidden
|
|
7
|
-
*/
|
|
8
|
-
export const isBlank = (value) => value === null || value === undefined;
|
|
6
|
+
*/ export const isBlank = (value)=>value === null || value === undefined;
|
|
9
7
|
/**
|
|
10
8
|
* @hidden
|
|
11
|
-
*/
|
|
12
|
-
export const isArray = (value) => Array.isArray(value);
|
|
9
|
+
*/ export const isArray = (value)=>Array.isArray(value);
|
|
13
10
|
/**
|
|
14
11
|
* @hidden
|
|
15
|
-
*/
|
|
16
|
-
export const isFunction = (value) => typeof value === 'function';
|
|
12
|
+
*/ export const isFunction = (value)=>typeof value === 'function';
|
|
17
13
|
/**
|
|
18
14
|
* @hidden
|
|
19
|
-
*/
|
|
20
|
-
export const isString = (value) => typeof value === 'string';
|
|
15
|
+
*/ export const isString = (value)=>typeof value === 'string';
|
|
21
16
|
/**
|
|
22
17
|
* @hidden
|
|
23
|
-
*/
|
|
24
|
-
export const isTruthy = (value) => !!value;
|
|
18
|
+
*/ export const isTruthy = (value)=>!!value;
|
|
25
19
|
/**
|
|
26
20
|
* @hidden
|
|
27
|
-
*/
|
|
28
|
-
export const isNullOrEmptyString = (value) => isBlank(value) || value.trim().length === 0;
|
|
21
|
+
*/ export const isNullOrEmptyString = (value)=>isBlank(value) || value.trim().length === 0;
|
|
29
22
|
/**
|
|
30
23
|
* @hidden
|
|
31
|
-
*/
|
|
32
|
-
export const isNotNullOrEmptyString = (value) => !isNullOrEmptyString(value);
|
|
24
|
+
*/ export const isNotNullOrEmptyString = (value)=>!isNullOrEmptyString(value);
|
|
33
25
|
/**
|
|
34
26
|
* @hidden
|
|
35
|
-
*/
|
|
36
|
-
export const isNumeric = (value) => !isNaN(value - parseFloat(value));
|
|
27
|
+
*/ export const isNumeric = (value)=>!isNaN(value - parseFloat(value));
|
|
37
28
|
/**
|
|
38
29
|
* @hidden
|
|
39
|
-
*/
|
|
40
|
-
|
|
30
|
+
*/ export const isDate = (value)=>value && value.getTime;
|
|
31
|
+
|
|
41
32
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts"],"sourcesContent":["\n/**\n * @hidden\n */\nexport const isPresent = (value: any): boolean => value !== null && value !== undefined;\n\n/**\n * @hidden\n */\nexport const isBlank: Function = (value: any): boolean => value === null || value === undefined;\n\n/**\n * @hidden\n */\nexport const isArray: Function = (value: any): boolean => Array.isArray(value);\n\n/**\n * @hidden\n */\nexport const isFunction: Function = (value: any): boolean => typeof value === 'function';\n\n/**\n * @hidden\n */\nexport const isString: Function = (value: any): boolean => typeof value === 'string';\n\n/**\n * @hidden\n */\nexport const isTruthy: Function = (value: any): boolean => !!value;\n\n/**\n * @hidden\n */\nexport const isNullOrEmptyString = (value: string): boolean => isBlank(value) || value.trim().length === 0;\n\n/**\n * @hidden\n */\nexport const isNotNullOrEmptyString = (value: string): boolean => !isNullOrEmptyString(value);\n\n/**\n * @hidden\n */\nexport const isNumeric: Function = (value: any): boolean => !isNaN(value - parseFloat(value));\n\n/**\n * @hidden\n */\nexport const isDate: Function = (value: any): boolean => value && value.getTime;\n\n/**\n * @hidden\n */\nexport type Pair<T, U> = [T, U];\n"],"names":["isPresent","value","undefined","isBlank","isArray","Array","isFunction","isString","isTruthy","isNullOrEmptyString","trim","length","isNotNullOrEmptyString","isNumeric","isNaN","parseFloat","isDate","getTime"],"mappings":"AACA;;CAEC,GACD,OAAO,MAAMA,YAAY,CAACC,QAAwBA,UAAU,QAAQA,UAAUC,UAAU;AAExF;;CAEC,GACD,OAAO,MAAMC,UAAoB,CAACF,QAAwBA,UAAU,QAAQA,UAAUC,UAAU;AAEhG;;CAEC,GACD,OAAO,MAAME,UAAoB,CAACH,QAAwBI,MAAMD,OAAO,CAACH,OAAO;AAE/E;;CAEC,GACD,OAAO,MAAMK,aAAuB,CAACL,QAAwB,OAAOA,UAAU,WAAW;AAEzF;;CAEC,GACD,OAAO,MAAMM,WAAqB,CAACN,QAAwB,OAAOA,UAAU,SAAS;AAErF;;CAEC,GACD,OAAO,MAAMO,WAAqB,CAACP,QAAwB,CAAC,CAACA,MAAM;AAEnE;;CAEC,GACD,OAAO,MAAMQ,sBAAsB,CAACR,QAA2BE,QAAQF,UAAUA,MAAMS,IAAI,GAAGC,MAAM,KAAK,EAAE;AAE3G;;CAEC,GACD,OAAO,MAAMC,yBAAyB,CAACX,QAA2B,CAACQ,oBAAoBR,OAAO;AAE9F;;CAEC,GACD,OAAO,MAAMY,YAAsB,CAACZ,QAAwB,CAACa,MAAMb,QAAQc,WAAWd,QAAQ;AAE9F;;CAEC,GACD,OAAO,MAAMe,SAAmB,CAACf,QAAwBA,SAASA,MAAMgB,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/data-query",
|
|
3
|
-
"version": "31.
|
|
3
|
+
"version": "31.3.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
],
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@progress/kendo-data-query": "~1.6.0",
|
|
19
|
-
"@types/lodash": "
|
|
19
|
+
"@types/lodash": "^4.14.191",
|
|
20
20
|
"axios": "~0.30.0",
|
|
21
21
|
"mobx": "~6.10.2"
|
|
22
22
|
},
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"cli": {
|
|
35
35
|
"webpack": false
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "7fc7b9cbf766fe23879ae81831f28bdd96559bce"
|
|
38
38
|
}
|