@limetech/lime-crm-building-blocks 1.97.0 → 1.99.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/CHANGELOG.md +14 -0
- package/dist/cjs/{index.esm-a894ac76.js → index.esm-d785eb6e.js} +2 -0
- package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
- package/dist/cjs/limebb-browser.cjs.entry.js +1 -1
- package/dist/cjs/limebb-chat-item_2.cjs.entry.js +1 -1
- package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
- package/dist/cjs/limebb-component-config.cjs.entry.js +1 -1
- package/dist/cjs/limebb-component-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
- package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
- package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
- package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
- package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +90 -174
- package/dist/cjs/limebb-lime-query-filter-and.cjs.entry.js +80 -0
- package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +147 -0
- package/dist/cjs/limebb-lime-query-filter-group_4.cjs.entry.js +603 -0
- package/dist/cjs/limebb-lime-query-filter-or.cjs.entry.js +68 -0
- package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +1 -1
- package/dist/cjs/limebb-limetype-field_2.cjs.entry.js +37 -6
- package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
- package/dist/cjs/limebb-loader.cjs.entry.js +1 -1
- package/dist/cjs/limebb-locale-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
- package/dist/cjs/limebb-mention.cjs.entry.js +1 -1
- package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
- package/dist/cjs/limebb-notification-item.cjs.entry.js +2 -2
- package/dist/cjs/limebb-notification-list.cjs.entry.js +1 -1
- package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
- package/dist/cjs/limebb-text-editor.cjs.entry.js +3 -3
- package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
- package/dist/cjs/{limetype-1fe0207f.js → limetype-f2e4376e.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +41 -49
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +77 -41
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +35 -46
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +130 -0
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +269 -0
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +19 -25
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +34 -34
- package/dist/collection/components/lime-query-builder/lime-query-builder.js +60 -24
- package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
- package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
- package/dist/collection/components/locale-picker/locale-picker.js +1 -1
- package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
- package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
- package/dist/collection/components/summary-popover/summary-popover.js +3 -3
- package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
- package/dist/collection/components/text-editor/text-editor.js +1 -1
- package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
- package/dist/components/index.esm.js +2 -1
- package/dist/components/lime-query-filter-comparison.js +32 -45
- package/dist/components/lime-query-filter-expression.js +315 -0
- package/dist/components/limebb-lime-query-builder.js +96 -184
- package/dist/components/limebb-lime-query-filter-and.js +130 -1
- package/dist/components/limebb-lime-query-filter-comparison.js +1 -1
- package/dist/components/limebb-lime-query-filter-expression.js +1 -1
- package/dist/components/limebb-lime-query-filter-group.d.ts +11 -0
- package/dist/components/limebb-lime-query-filter-group.js +6 -0
- package/dist/components/limebb-lime-query-filter-not.js +1 -1
- package/dist/components/limebb-lime-query-filter-or.js +118 -1
- package/dist/components/limebb-locale-picker.js +1 -1
- package/dist/components/limebb-mention-group-counter.js +2 -2
- package/dist/components/limebb-percentage-visualizer.js +2 -2
- package/dist/components/limebb-text-editor.js +1 -1
- package/dist/components/limebb-trend-indicator.js +1 -1
- package/dist/components/limetype-field.js +34 -2
- package/dist/components/live-docs-info.js +2 -2
- package/dist/components/notification-item.js +1 -1
- package/dist/components/summary-popover.js +3 -3
- package/dist/esm/{index.esm-d8fdeb18.js → index.esm-bb569663.js} +2 -1
- package/dist/esm/lime-crm-building-blocks.js +1 -1
- package/dist/esm/limebb-browser.entry.js +1 -1
- package/dist/esm/limebb-chat-item_2.entry.js +1 -1
- package/dist/esm/limebb-chat-list.entry.js +1 -1
- package/dist/esm/limebb-component-config.entry.js +1 -1
- package/dist/esm/limebb-component-picker.entry.js +1 -1
- package/dist/esm/limebb-currency-picker.entry.js +1 -1
- package/dist/esm/limebb-date-picker.entry.js +1 -1
- package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
- package/dist/esm/limebb-feed.entry.js +1 -1
- package/dist/esm/limebb-info-tile.entry.js +1 -1
- package/dist/esm/limebb-kanban-group.entry.js +1 -1
- package/dist/esm/limebb-kanban-item.entry.js +1 -1
- package/dist/esm/limebb-lime-query-builder.entry.js +89 -173
- package/dist/esm/limebb-lime-query-filter-and.entry.js +76 -0
- package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +142 -0
- package/dist/esm/limebb-lime-query-filter-group_4.entry.js +596 -0
- package/dist/esm/limebb-lime-query-filter-or.entry.js +64 -0
- package/dist/esm/limebb-limeobject-file-viewer.entry.js +1 -1
- package/dist/esm/limebb-limetype-field_2.entry.js +36 -5
- package/dist/esm/limebb-live-docs-info.entry.js +2 -2
- package/dist/esm/limebb-loader.entry.js +1 -1
- package/dist/esm/limebb-locale-picker.entry.js +2 -2
- package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
- package/dist/esm/limebb-mention.entry.js +1 -1
- package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
- package/dist/esm/limebb-notification-item.entry.js +2 -2
- package/dist/esm/limebb-notification-list.entry.js +1 -1
- package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
- package/dist/esm/limebb-text-editor.entry.js +3 -3
- package/dist/esm/limebb-trend-indicator.entry.js +1 -1
- package/dist/esm/{limetype-6e7552a7.js → limetype-c0e041f7.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
- package/dist/lime-crm-building-blocks/p-03accd53.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-a1818969.entry.js → p-03af0e66.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-f402184f.entry.js → p-098ee6c1.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-42e52b50.entry.js → p-1be0eec7.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-2aa18c2b.entry.js → p-206575e4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-20bfca36.js +1 -0
- package/dist/lime-crm-building-blocks/{p-82d33d43.entry.js → p-2faaacbc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d4016891.entry.js → p-2fdcb868.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-f52125a0.entry.js → p-3122ea05.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-baf4e428.entry.js → p-3175883d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8c8b7115.entry.js → p-32534eb7.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-6c1146ca.entry.js → p-36ea13c0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-4715210d.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-1fba0ade.js → p-4838284a.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-5e4ba110.entry.js → p-5464f0de.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e9d23ef7.entry.js → p-569c86b5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-90e1716a.entry.js → p-5dc574a3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-5f7644b5.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-00da9b24.entry.js → p-631ca5a5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-67dbaa4c.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-beb0d164.entry.js → p-7271f47a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-34357744.entry.js → p-9031f136.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-91732502.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-8c4eb49f.entry.js → p-93cadc1e.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3932077b.entry.js → p-9cac4de2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-79d4668a.entry.js → p-a200954f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-aa646df7.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-d89c44ad.entry.js → p-b9b954d9.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3a620226.entry.js → p-cfa1a4ad.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ef8a5266.entry.js → p-e8946134.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9d9f25da.entry.js → p-eb81bceb.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-50d3d61a.entry.js → p-ee1b00b9.entry.js} +1 -1
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +5 -4
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +6 -4
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +10 -14
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +60 -0
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-not.d.ts +4 -4
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +5 -4
- package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +19 -2
- package/dist/types/components/lime-query-builder/lime-query.types.d.ts +2 -1
- package/dist/types/components.d.ts +209 -65
- package/package.json +1 -1
- package/dist/cjs/isEqual-e77cce75.js +0 -37
- package/dist/cjs/lime-query.types-bcb63a22.js +0 -61
- package/dist/cjs/limebb-lime-query-filter-and_5.cjs.entry.js +0 -278
- package/dist/cjs/limebb-lime-query-value-input.cjs.entry.js +0 -239
- package/dist/cjs/limebb-property-selector.cjs.entry.js +0 -234
- package/dist/components/isEqual.js +0 -35
- package/dist/components/lime-query-filter-and.js +0 -408
- package/dist/esm/isEqual-57d0c223.js +0 -35
- package/dist/esm/lime-query.types-f72355e1.js +0 -59
- package/dist/esm/limebb-lime-query-filter-and_5.entry.js +0 -270
- package/dist/esm/limebb-lime-query-value-input.entry.js +0 -235
- package/dist/esm/limebb-property-selector.entry.js +0 -230
- package/dist/lime-crm-building-blocks/p-02c0cc04.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-3b0a15ec.js +0 -1
- package/dist/lime-crm-building-blocks/p-5a6d2e7f.js +0 -1
- package/dist/lime-crm-building-blocks/p-60971d64.js +0 -1
- package/dist/lime-crm-building-blocks/p-70a28b93.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-96beaabc.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-b7c72179.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-f99c611d.entry.js +0 -1
|
@@ -1,69 +1,71 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
|
-
import { T as Te } from './index.esm.js';
|
|
3
|
-
import { L as LIME_QUERY_OPERATORS, d as defineCustomElement$a } from './lime-query-filter-comparison.js';
|
|
2
|
+
import { T as Te, Z as Zt } from './index.esm.js';
|
|
4
3
|
import { g as getNormalizedProperties, a as getPropertyFromPath, d as defineCustomElement$4 } from './property-selector.js';
|
|
5
|
-
import { d as defineCustomElement$
|
|
4
|
+
import { d as defineCustomElement$a } from './lime-query-filter-comparison.js';
|
|
5
|
+
import { d as defineCustomElement$7, a as defineCustomElement$8, b as defineCustomElement$9 } from './lime-query-filter-expression.js';
|
|
6
6
|
import { d as defineCustomElement$6 } from './lime-query-value-input.js';
|
|
7
7
|
import { d as defineCustomElement$5 } from './limetype-field.js';
|
|
8
8
|
import { d as defineCustomElement$3 } from './response-format-editor.js';
|
|
9
9
|
import { d as defineCustomElement$2 } from './response-format-item.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* TypeScript type definitions for Lime Query DSL
|
|
13
|
+
*
|
|
14
|
+
* These types represent the structure of Lime Query as defined in:
|
|
15
|
+
* - lime-core/lime_query/schema.py
|
|
16
|
+
* - lime-core/lime_filter/schema.py
|
|
14
17
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
}
|
|
18
|
+
/**
|
|
19
|
+
* Available operators with display metadata
|
|
20
|
+
*/
|
|
21
|
+
const LIME_QUERY_OPERATORS = [
|
|
22
|
+
{ value: '=', label: 'Equals', icon: 'equals' },
|
|
23
|
+
{ value: '!=', label: 'Not Equals', icon: 'not-equal' },
|
|
24
|
+
{
|
|
25
|
+
value: '>',
|
|
26
|
+
label: 'Greater Than',
|
|
27
|
+
icon: 'greater-than',
|
|
28
|
+
applicableTypes: ['integer', 'decimal', 'date', 'time'],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
value: '>=',
|
|
32
|
+
label: 'Greater or Equal',
|
|
33
|
+
icon: 'greater-or-equal',
|
|
34
|
+
applicableTypes: ['integer', 'decimal', 'date', 'time'],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
value: '<',
|
|
38
|
+
label: 'Less Than',
|
|
39
|
+
icon: 'less-than',
|
|
40
|
+
applicableTypes: ['integer', 'decimal', 'date', 'time'],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
value: '<=',
|
|
44
|
+
label: 'Less or Equal',
|
|
45
|
+
icon: 'less-or-equal',
|
|
46
|
+
applicableTypes: ['integer', 'decimal', 'date', 'time'],
|
|
47
|
+
},
|
|
48
|
+
{ value: 'IN', label: 'In List', icon: 'list' },
|
|
49
|
+
{
|
|
50
|
+
value: '?',
|
|
51
|
+
label: 'Contains',
|
|
52
|
+
icon: '-lime-filter-contain',
|
|
53
|
+
applicableTypes: ['string', 'text'],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
value: '=?',
|
|
57
|
+
label: 'Begins With',
|
|
58
|
+
icon: '-lime-filter-begin',
|
|
59
|
+
applicableTypes: ['string', 'text'],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
value: '=$',
|
|
63
|
+
label: 'Ends With',
|
|
64
|
+
icon: '-lime-filter-end',
|
|
65
|
+
applicableTypes: ['string', 'text'],
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
67
69
|
/**
|
|
68
70
|
* Validate and convert a FilterExpression (comparison filter)
|
|
69
71
|
* @param filter
|
|
@@ -165,103 +167,6 @@ function limeQueryToGuiFilter(filter) {
|
|
|
165
167
|
// It's a FilterGroup
|
|
166
168
|
return validateAndConvertFilterGroup(filter);
|
|
167
169
|
}
|
|
168
|
-
/**
|
|
169
|
-
* Normalize filter for GUI mode by ensuring proper AND/OR wrapper structure.
|
|
170
|
-
* GUI mode requires filters to be wrapped in AND([OR(...)]) so users have
|
|
171
|
-
* access to add/remove buttons on the AND and OR components.
|
|
172
|
-
*
|
|
173
|
-
* This function ensures that:
|
|
174
|
-
* - Single comparisons are wrapped in AND([OR([comparison])])
|
|
175
|
-
* - OR groups are wrapped in AND([OR group])
|
|
176
|
-
* - AND groups have their comparison children wrapped in OR
|
|
177
|
-
* - Empty/undefined filters become AND([])
|
|
178
|
-
*
|
|
179
|
-
* When converting back to Lime Query JSON, limeQueryFilterToLimeQuery()
|
|
180
|
-
* automatically unwraps single-item AND/OR groups.
|
|
181
|
-
*
|
|
182
|
-
* @param filter The filter expression from limeQueryToLimeQueryFilter
|
|
183
|
-
* @returns Normalized filter suitable for GUI editing
|
|
184
|
-
*/
|
|
185
|
-
function normalizeLimeQueryFilterForGui(filter) {
|
|
186
|
-
// Empty AND is already correct for GUI
|
|
187
|
-
if (filter.filter_type === 'AND' && filter.expressions.length === 0) {
|
|
188
|
-
return filter;
|
|
189
|
-
}
|
|
190
|
-
// Single comparison needs wrapping
|
|
191
|
-
if (filter.filter_type === 'comparison') {
|
|
192
|
-
return {
|
|
193
|
-
filter_type: 'AND',
|
|
194
|
-
expressions: [
|
|
195
|
-
{
|
|
196
|
-
filter_type: 'OR',
|
|
197
|
-
expressions: [filter],
|
|
198
|
-
},
|
|
199
|
-
],
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
// OR needs wrapping in AND
|
|
203
|
-
if (filter.filter_type === 'OR') {
|
|
204
|
-
return {
|
|
205
|
-
filter_type: 'AND',
|
|
206
|
-
expressions: [filter],
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
// NOT needs wrapping
|
|
210
|
-
if (filter.filter_type === 'NOT') {
|
|
211
|
-
return {
|
|
212
|
-
filter_type: 'AND',
|
|
213
|
-
expressions: [
|
|
214
|
-
{
|
|
215
|
-
filter_type: 'OR',
|
|
216
|
-
expressions: [filter],
|
|
217
|
-
},
|
|
218
|
-
],
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
// AND group - check if children need OR wrappers
|
|
222
|
-
if (filter.filter_type === 'AND') {
|
|
223
|
-
const normalizedChildren = filter.expressions.map((child) => {
|
|
224
|
-
// If child is already OR, keep it
|
|
225
|
-
if (child.filter_type === 'OR') {
|
|
226
|
-
return child;
|
|
227
|
-
}
|
|
228
|
-
// If child is NOT, keep it (NOT can be a direct child of AND)
|
|
229
|
-
if (child.filter_type === 'NOT') {
|
|
230
|
-
return child;
|
|
231
|
-
}
|
|
232
|
-
// If child is comparison, wrap in OR
|
|
233
|
-
if (child.filter_type === 'comparison') {
|
|
234
|
-
return {
|
|
235
|
-
filter_type: 'OR',
|
|
236
|
-
expressions: [child],
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
// If child is nested AND, recursively normalize and wrap in OR
|
|
240
|
-
if (child.filter_type === 'AND') {
|
|
241
|
-
return {
|
|
242
|
-
filter_type: 'OR',
|
|
243
|
-
expressions: [normalizeLimeQueryFilterForGui(child)],
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
// Unknown filter type, keep as is
|
|
247
|
-
return child;
|
|
248
|
-
});
|
|
249
|
-
return {
|
|
250
|
-
filter_type: 'AND',
|
|
251
|
-
expressions: normalizedChildren,
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
// Fallback: wrap in AND/OR structure
|
|
255
|
-
return {
|
|
256
|
-
filter_type: 'AND',
|
|
257
|
-
expressions: [
|
|
258
|
-
{
|
|
259
|
-
filter_type: 'OR',
|
|
260
|
-
expressions: [filter],
|
|
261
|
-
},
|
|
262
|
-
],
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
170
|
|
|
266
171
|
/**
|
|
267
172
|
* Dynamic filter values and placeholders that are valid in Lime Query
|
|
@@ -663,16 +568,16 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
663
568
|
this.codeValue = '';
|
|
664
569
|
this.limetype = '';
|
|
665
570
|
this.filter = {
|
|
666
|
-
|
|
667
|
-
|
|
571
|
+
op: Zt.AND,
|
|
572
|
+
exp: [],
|
|
668
573
|
};
|
|
669
574
|
this.handleLimetypeChange = (event) => {
|
|
670
575
|
event.stopPropagation();
|
|
671
576
|
this.limetype = event.detail;
|
|
672
577
|
// Reset filter when limetype changes
|
|
673
578
|
this.filter = {
|
|
674
|
-
|
|
675
|
-
|
|
579
|
+
op: Zt.AND,
|
|
580
|
+
exp: [],
|
|
676
581
|
};
|
|
677
582
|
// Reset response format when limetype changes
|
|
678
583
|
this.internalResponseFormat = {
|
|
@@ -684,15 +589,15 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
684
589
|
};
|
|
685
590
|
this.handleFilterChange = (event) => {
|
|
686
591
|
event.stopPropagation();
|
|
687
|
-
|
|
688
|
-
if (
|
|
592
|
+
const expression = event.detail;
|
|
593
|
+
if (expression === undefined) {
|
|
689
594
|
this.filter = {
|
|
690
|
-
|
|
691
|
-
|
|
595
|
+
op: Zt.AND,
|
|
596
|
+
exp: [],
|
|
692
597
|
};
|
|
693
598
|
}
|
|
694
599
|
else {
|
|
695
|
-
this.filter =
|
|
600
|
+
this.filter = expression;
|
|
696
601
|
}
|
|
697
602
|
this.emitChange();
|
|
698
603
|
};
|
|
@@ -707,10 +612,6 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
707
612
|
this.limit = value ? Number.parseInt(value, 10) : undefined;
|
|
708
613
|
this.emitChange();
|
|
709
614
|
};
|
|
710
|
-
this.handleActiveLimetypeChange = (event) => {
|
|
711
|
-
event.stopPropagation();
|
|
712
|
-
this.activeLimetype = event.detail || undefined;
|
|
713
|
-
};
|
|
714
615
|
this.switchToGui = () => {
|
|
715
616
|
// Validate JSON before switching
|
|
716
617
|
try {
|
|
@@ -723,7 +624,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
723
624
|
}
|
|
724
625
|
// Update internal state from parsed query
|
|
725
626
|
this.limetype = parsed.limetype || '';
|
|
726
|
-
this.filter =
|
|
627
|
+
this.filter = this.normalizeFilter(parsed.filter);
|
|
727
628
|
this.internalResponseFormat = parsed.responseFormat;
|
|
728
629
|
this.limit = parsed.limit;
|
|
729
630
|
this.mode = 'gui';
|
|
@@ -764,7 +665,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
764
665
|
}
|
|
765
666
|
if (this.value) {
|
|
766
667
|
this.limetype = this.value.limetype || '';
|
|
767
|
-
this.filter =
|
|
668
|
+
this.filter = this.normalizeFilter(this.value.filter);
|
|
768
669
|
this.internalResponseFormat = this.value.responseFormat;
|
|
769
670
|
this.limit = this.value.limit;
|
|
770
671
|
}
|
|
@@ -779,10 +680,26 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
779
680
|
render() {
|
|
780
681
|
const guiSupported = this.checkGuiSupport();
|
|
781
682
|
const showCodeMode = !this.guiModeEnabled || this.mode === 'code';
|
|
782
|
-
return (h("div", { key: '
|
|
683
|
+
return (h("div", { key: '5ff70a352e3e57ff4c51d44627bd4b5ed367fff4', class: "lime-query-builder" }, this.renderLabel(), this.renderModeControls(guiSupported), showCodeMode
|
|
783
684
|
? this.renderCodeMode(guiSupported)
|
|
784
685
|
: this.renderGuiMode()));
|
|
785
686
|
}
|
|
687
|
+
/**
|
|
688
|
+
* Normalize filter to ensure top-level is an AND group.
|
|
689
|
+
* This ensures Add buttons are available in the UI.
|
|
690
|
+
* @param filter
|
|
691
|
+
*/
|
|
692
|
+
normalizeFilter(filter) {
|
|
693
|
+
if (!filter) {
|
|
694
|
+
return { op: Zt.AND, exp: [] };
|
|
695
|
+
}
|
|
696
|
+
// If it's already an AND at the top level, keep it
|
|
697
|
+
if ('op' in filter && filter.op === Zt.AND) {
|
|
698
|
+
return filter;
|
|
699
|
+
}
|
|
700
|
+
// Otherwise wrap in AND
|
|
701
|
+
return { op: Zt.AND, exp: [filter] };
|
|
702
|
+
}
|
|
786
703
|
emitChange() {
|
|
787
704
|
// Only emit in GUI mode
|
|
788
705
|
if (this.mode === 'code') {
|
|
@@ -800,7 +717,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
800
717
|
const limeQuery = {
|
|
801
718
|
limetype: this.limetype,
|
|
802
719
|
responseFormat: responseFormat,
|
|
803
|
-
filter:
|
|
720
|
+
filter: this.filter,
|
|
804
721
|
};
|
|
805
722
|
if (this.limit !== undefined && this.limit > 0) {
|
|
806
723
|
limeQuery.limit = this.limit;
|
|
@@ -821,7 +738,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
821
738
|
const limeQuery = {
|
|
822
739
|
limetype: this.limetype,
|
|
823
740
|
responseFormat: responseFormat,
|
|
824
|
-
filter:
|
|
741
|
+
filter: this.filter,
|
|
825
742
|
};
|
|
826
743
|
if (this.limit !== undefined && this.limit > 0) {
|
|
827
744
|
limeQuery.limit = this.limit;
|
|
@@ -872,7 +789,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
872
789
|
queryToCheck = {
|
|
873
790
|
limetype: this.limetype,
|
|
874
791
|
responseFormat: responseFormat,
|
|
875
|
-
filter:
|
|
792
|
+
filter: this.filter,
|
|
876
793
|
};
|
|
877
794
|
if (this.limit !== undefined && this.limit > 0) {
|
|
878
795
|
queryToCheck.limit = this.limit;
|
|
@@ -911,7 +828,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
911
828
|
if (!this.limetype) {
|
|
912
829
|
return;
|
|
913
830
|
}
|
|
914
|
-
return (h("div", { class: "query-options-section" }, h("h4", { class: "section-label" }, "Query Options"), h("div", { class: "query-options-controls" }, h("
|
|
831
|
+
return (h("div", { class: "query-options-section" }, h("h4", { class: "section-label" }, "Query Options"), h("div", { class: "query-options-controls" }, h("limel-input-field", { label: "Limit", type: "number", value: ((_a = this.limit) === null || _a === void 0 ? void 0 : _a.toString()) || '', placeholder: "No limit", helperText: "Maximum number of results", onChange: this.handleLimitChange }))));
|
|
915
832
|
}
|
|
916
833
|
renderGuiMode() {
|
|
917
834
|
return (h("div", { class: "gui-mode" }, this.renderLimetypeSection(), this.renderResponseFormatSection(), this.renderFilterSection(), this.renderQueryOptionsSection()));
|
|
@@ -937,14 +854,14 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
937
854
|
"context": [16],
|
|
938
855
|
"value": [16],
|
|
939
856
|
"label": [1],
|
|
857
|
+
"activeLimetype": [1, "active-limetype"],
|
|
940
858
|
"limetypes": [32],
|
|
941
859
|
"mode": [32],
|
|
942
860
|
"codeValue": [32],
|
|
943
861
|
"limetype": [32],
|
|
944
862
|
"filter": [32],
|
|
945
863
|
"internalResponseFormat": [32],
|
|
946
|
-
"limit": [32]
|
|
947
|
-
"activeLimetype": [32]
|
|
864
|
+
"limit": [32]
|
|
948
865
|
}]);
|
|
949
866
|
__decorate([
|
|
950
867
|
Te()
|
|
@@ -953,18 +870,13 @@ function defineCustomElement$1() {
|
|
|
953
870
|
if (typeof customElements === "undefined") {
|
|
954
871
|
return;
|
|
955
872
|
}
|
|
956
|
-
const components = ["limebb-lime-query-builder", "limebb-lime-query-filter-
|
|
873
|
+
const components = ["limebb-lime-query-builder", "limebb-lime-query-filter-comparison", "limebb-lime-query-filter-expression", "limebb-lime-query-filter-group", "limebb-lime-query-filter-not", "limebb-lime-query-value-input", "limebb-limetype-field", "limebb-property-selector", "limebb-response-format-editor", "limebb-response-format-item"];
|
|
957
874
|
components.forEach(tagName => { switch (tagName) {
|
|
958
875
|
case "limebb-lime-query-builder":
|
|
959
876
|
if (!customElements.get(tagName)) {
|
|
960
877
|
customElements.define(tagName, LimeQueryBuilder);
|
|
961
878
|
}
|
|
962
879
|
break;
|
|
963
|
-
case "limebb-lime-query-filter-and":
|
|
964
|
-
if (!customElements.get(tagName)) {
|
|
965
|
-
defineCustomElement$b();
|
|
966
|
-
}
|
|
967
|
-
break;
|
|
968
880
|
case "limebb-lime-query-filter-comparison":
|
|
969
881
|
if (!customElements.get(tagName)) {
|
|
970
882
|
defineCustomElement$a();
|
|
@@ -975,12 +887,12 @@ function defineCustomElement$1() {
|
|
|
975
887
|
defineCustomElement$9();
|
|
976
888
|
}
|
|
977
889
|
break;
|
|
978
|
-
case "limebb-lime-query-filter-
|
|
890
|
+
case "limebb-lime-query-filter-group":
|
|
979
891
|
if (!customElements.get(tagName)) {
|
|
980
892
|
defineCustomElement$8();
|
|
981
893
|
}
|
|
982
894
|
break;
|
|
983
|
-
case "limebb-lime-query-filter-
|
|
895
|
+
case "limebb-lime-query-filter-not":
|
|
984
896
|
if (!customElements.get(tagName)) {
|
|
985
897
|
defineCustomElement$7();
|
|
986
898
|
}
|
|
@@ -1,4 +1,133 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
|
+
import { Z as Zt } from './index.esm.js';
|
|
3
|
+
import { d as defineCustomElement$7 } from './lime-query-filter-comparison.js';
|
|
4
|
+
import { d as defineCustomElement$4, a as defineCustomElement$5, b as defineCustomElement$6 } from './lime-query-filter-expression.js';
|
|
5
|
+
import { d as defineCustomElement$3 } from './lime-query-value-input.js';
|
|
6
|
+
import { d as defineCustomElement$2 } from './property-selector.js';
|
|
7
|
+
|
|
8
|
+
const limeQueryFilterAndCss = "@charset \"UTF-8\";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:0;background-color:rgb(var(--contrast-100));border:1px solid rgb(var(--contrast-500));border-radius:0.75rem}.expression>ul{margin-top:0;margin-right:1rem;margin-bottom:1rem;margin-left:1rem;padding-left:1rem;list-style:disc}.expression>ul li{margin-top:1rem}.expression>ul li.add-button{list-style:none}";
|
|
9
|
+
const LimebbLimeQueryFilterAndStyle0 = limeQueryFilterAndCss;
|
|
10
|
+
|
|
11
|
+
const LimeQueryFilterAndComponent = /*@__PURE__*/ proxyCustomElement(class LimeQueryFilterAndComponent extends HTMLElement {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.__registerHost();
|
|
15
|
+
this.__attachShadow();
|
|
16
|
+
this.expressionChange = createEvent(this, "expressionChange", 7);
|
|
17
|
+
this.renderChildExpression = (expression, childIndex) => (h("li", null, h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleExpressionChange(childIndex) })));
|
|
18
|
+
this.handleAddChildExpression = () => {
|
|
19
|
+
const newOrGroup = {
|
|
20
|
+
op: Zt.OR,
|
|
21
|
+
exp: [
|
|
22
|
+
{
|
|
23
|
+
key: '',
|
|
24
|
+
op: Zt.EQUALS,
|
|
25
|
+
exp: '',
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
};
|
|
29
|
+
const updatedExpressionsList = [
|
|
30
|
+
...this.expression.exp,
|
|
31
|
+
newOrGroup,
|
|
32
|
+
];
|
|
33
|
+
this.expressionChange.emit({
|
|
34
|
+
op: Zt.AND,
|
|
35
|
+
exp: updatedExpressionsList,
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
this.handleExpressionChange = (updatedChildIndex) => (event) => {
|
|
39
|
+
var _a;
|
|
40
|
+
event.stopPropagation();
|
|
41
|
+
const updatedExpression = (_a = event.detail) !== null && _a !== void 0 ? _a : undefined;
|
|
42
|
+
const expressions = [...this.expression.exp];
|
|
43
|
+
if (updatedExpression === undefined) {
|
|
44
|
+
expressions.splice(updatedChildIndex, 1);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
expressions[updatedChildIndex] = updatedExpression;
|
|
48
|
+
}
|
|
49
|
+
if (expressions.length === 0) {
|
|
50
|
+
this.expressionChange.emit(undefined);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (expressions.length === 1) {
|
|
54
|
+
this.expressionChange.emit(expressions[0]);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.expressionChange.emit({
|
|
58
|
+
op: Zt.AND,
|
|
59
|
+
exp: expressions,
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
render() {
|
|
64
|
+
let subheading = 'All of these conditions are true';
|
|
65
|
+
if (this.expression.exp.length <= 1) {
|
|
66
|
+
subheading = '';
|
|
67
|
+
}
|
|
68
|
+
return (h("div", { key: 'f07c53808d6be8d846f5a45223abb5c94b1a0b16', class: "expression" }, (this.label || subheading) && (h("limel-header", { key: '229f0d58ff15743fbb12da53ad9c593bfba801d1', heading: this.label, subheading: subheading })), h("ul", { key: '2600c2bee2b958036ea606141bcfcac0e277114c' }, this.expression.exp.map(this.renderChildExpression), h("li", { key: '6395e605ee8f454a820ac73601da89b19686187a', class: "add-button" }, this.renderAddChildExpression()))));
|
|
69
|
+
}
|
|
70
|
+
renderAddChildExpression() {
|
|
71
|
+
return (h("limel-button", { label: this.getAddButtonLabel(), icon: "plus_math", onClick: this.handleAddChildExpression }));
|
|
72
|
+
}
|
|
73
|
+
getAddButtonLabel() {
|
|
74
|
+
if (this.expression.exp.length === 0) {
|
|
75
|
+
return 'Add a condition';
|
|
76
|
+
}
|
|
77
|
+
return 'Add another condition';
|
|
78
|
+
}
|
|
79
|
+
static get style() { return LimebbLimeQueryFilterAndStyle0; }
|
|
80
|
+
}, [1, "limebb-lime-query-filter-and", {
|
|
81
|
+
"platform": [16],
|
|
82
|
+
"context": [16],
|
|
83
|
+
"label": [1],
|
|
84
|
+
"limetype": [1],
|
|
85
|
+
"activeLimetype": [1, "active-limetype"],
|
|
86
|
+
"expression": [16]
|
|
87
|
+
}]);
|
|
88
|
+
function defineCustomElement$1() {
|
|
89
|
+
if (typeof customElements === "undefined") {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const components = ["limebb-lime-query-filter-and", "limebb-lime-query-filter-comparison", "limebb-lime-query-filter-expression", "limebb-lime-query-filter-group", "limebb-lime-query-filter-not", "limebb-lime-query-value-input", "limebb-property-selector"];
|
|
93
|
+
components.forEach(tagName => { switch (tagName) {
|
|
94
|
+
case "limebb-lime-query-filter-and":
|
|
95
|
+
if (!customElements.get(tagName)) {
|
|
96
|
+
customElements.define(tagName, LimeQueryFilterAndComponent);
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
case "limebb-lime-query-filter-comparison":
|
|
100
|
+
if (!customElements.get(tagName)) {
|
|
101
|
+
defineCustomElement$7();
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
case "limebb-lime-query-filter-expression":
|
|
105
|
+
if (!customElements.get(tagName)) {
|
|
106
|
+
defineCustomElement$6();
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
case "limebb-lime-query-filter-group":
|
|
110
|
+
if (!customElements.get(tagName)) {
|
|
111
|
+
defineCustomElement$5();
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
case "limebb-lime-query-filter-not":
|
|
115
|
+
if (!customElements.get(tagName)) {
|
|
116
|
+
defineCustomElement$4();
|
|
117
|
+
}
|
|
118
|
+
break;
|
|
119
|
+
case "limebb-lime-query-value-input":
|
|
120
|
+
if (!customElements.get(tagName)) {
|
|
121
|
+
defineCustomElement$3();
|
|
122
|
+
}
|
|
123
|
+
break;
|
|
124
|
+
case "limebb-property-selector":
|
|
125
|
+
if (!customElements.get(tagName)) {
|
|
126
|
+
defineCustomElement$2();
|
|
127
|
+
}
|
|
128
|
+
break;
|
|
129
|
+
} });
|
|
130
|
+
}
|
|
2
131
|
|
|
3
132
|
const LimebbLimeQueryFilterAnd = LimeQueryFilterAndComponent;
|
|
4
133
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { L as LimeQueryFilterComparisonComponent, d as defineCustomElement$1 } from './lime-query-filter-comparison.js';
|
|
2
2
|
|
|
3
3
|
const LimebbLimeQueryFilterComparison = LimeQueryFilterComparisonComponent;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { L as LimeQueryFilterExpressionComponent, b as defineCustomElement$1 } from './lime-query-filter-expression.js';
|
|
2
2
|
|
|
3
3
|
const LimebbLimeQueryFilterExpression = LimeQueryFilterExpressionComponent;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface LimebbLimeQueryFilterGroup extends Components.LimebbLimeQueryFilterGroup, HTMLElement {}
|
|
4
|
+
export const LimebbLimeQueryFilterGroup: {
|
|
5
|
+
prototype: LimebbLimeQueryFilterGroup;
|
|
6
|
+
new (): LimebbLimeQueryFilterGroup;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { c as LimeQueryFilterGroupComponent, a as defineCustomElement$1 } from './lime-query-filter-expression.js';
|
|
2
|
+
|
|
3
|
+
const LimebbLimeQueryFilterGroup = LimeQueryFilterGroupComponent;
|
|
4
|
+
const defineCustomElement = defineCustomElement$1;
|
|
5
|
+
|
|
6
|
+
export { LimebbLimeQueryFilterGroup, defineCustomElement };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { e as LimeQueryFilterNotComponent, d as defineCustomElement$1 } from './lime-query-filter-expression.js';
|
|
2
2
|
|
|
3
3
|
const LimebbLimeQueryFilterNot = LimeQueryFilterNotComponent;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|