@limetech/lime-crm-building-blocks 1.98.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 +7 -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 +89 -169
- 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 +32 -17
- 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 +93 -177
- 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 +88 -168
- 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 +6 -0
- package/dist/types/components/lime-query-builder/lime-query.types.d.ts +2 -1
- package/dist/types/components.d.ts +177 -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-0957b2a6.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-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
|
};
|
|
@@ -719,7 +624,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
719
624
|
}
|
|
720
625
|
// Update internal state from parsed query
|
|
721
626
|
this.limetype = parsed.limetype || '';
|
|
722
|
-
this.filter =
|
|
627
|
+
this.filter = this.normalizeFilter(parsed.filter);
|
|
723
628
|
this.internalResponseFormat = parsed.responseFormat;
|
|
724
629
|
this.limit = parsed.limit;
|
|
725
630
|
this.mode = 'gui';
|
|
@@ -760,7 +665,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
760
665
|
}
|
|
761
666
|
if (this.value) {
|
|
762
667
|
this.limetype = this.value.limetype || '';
|
|
763
|
-
this.filter =
|
|
668
|
+
this.filter = this.normalizeFilter(this.value.filter);
|
|
764
669
|
this.internalResponseFormat = this.value.responseFormat;
|
|
765
670
|
this.limit = this.value.limit;
|
|
766
671
|
}
|
|
@@ -775,10 +680,26 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
775
680
|
render() {
|
|
776
681
|
const guiSupported = this.checkGuiSupport();
|
|
777
682
|
const showCodeMode = !this.guiModeEnabled || this.mode === 'code';
|
|
778
|
-
return (h("div", { key: '
|
|
683
|
+
return (h("div", { key: '5ff70a352e3e57ff4c51d44627bd4b5ed367fff4', class: "lime-query-builder" }, this.renderLabel(), this.renderModeControls(guiSupported), showCodeMode
|
|
779
684
|
? this.renderCodeMode(guiSupported)
|
|
780
685
|
: this.renderGuiMode()));
|
|
781
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
|
+
}
|
|
782
703
|
emitChange() {
|
|
783
704
|
// Only emit in GUI mode
|
|
784
705
|
if (this.mode === 'code') {
|
|
@@ -796,7 +717,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
796
717
|
const limeQuery = {
|
|
797
718
|
limetype: this.limetype,
|
|
798
719
|
responseFormat: responseFormat,
|
|
799
|
-
filter:
|
|
720
|
+
filter: this.filter,
|
|
800
721
|
};
|
|
801
722
|
if (this.limit !== undefined && this.limit > 0) {
|
|
802
723
|
limeQuery.limit = this.limit;
|
|
@@ -817,7 +738,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
817
738
|
const limeQuery = {
|
|
818
739
|
limetype: this.limetype,
|
|
819
740
|
responseFormat: responseFormat,
|
|
820
|
-
filter:
|
|
741
|
+
filter: this.filter,
|
|
821
742
|
};
|
|
822
743
|
if (this.limit !== undefined && this.limit > 0) {
|
|
823
744
|
limeQuery.limit = this.limit;
|
|
@@ -868,7 +789,7 @@ const LimeQueryBuilder = /*@__PURE__*/ proxyCustomElement(class LimeQueryBuilder
|
|
|
868
789
|
queryToCheck = {
|
|
869
790
|
limetype: this.limetype,
|
|
870
791
|
responseFormat: responseFormat,
|
|
871
|
-
filter:
|
|
792
|
+
filter: this.filter,
|
|
872
793
|
};
|
|
873
794
|
if (this.limit !== undefined && this.limit > 0) {
|
|
874
795
|
queryToCheck.limit = this.limit;
|
|
@@ -949,18 +870,13 @@ function defineCustomElement$1() {
|
|
|
949
870
|
if (typeof customElements === "undefined") {
|
|
950
871
|
return;
|
|
951
872
|
}
|
|
952
|
-
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"];
|
|
953
874
|
components.forEach(tagName => { switch (tagName) {
|
|
954
875
|
case "limebb-lime-query-builder":
|
|
955
876
|
if (!customElements.get(tagName)) {
|
|
956
877
|
customElements.define(tagName, LimeQueryBuilder);
|
|
957
878
|
}
|
|
958
879
|
break;
|
|
959
|
-
case "limebb-lime-query-filter-and":
|
|
960
|
-
if (!customElements.get(tagName)) {
|
|
961
|
-
defineCustomElement$b();
|
|
962
|
-
}
|
|
963
|
-
break;
|
|
964
880
|
case "limebb-lime-query-filter-comparison":
|
|
965
881
|
if (!customElements.get(tagName)) {
|
|
966
882
|
defineCustomElement$a();
|
|
@@ -971,12 +887,12 @@ function defineCustomElement$1() {
|
|
|
971
887
|
defineCustomElement$9();
|
|
972
888
|
}
|
|
973
889
|
break;
|
|
974
|
-
case "limebb-lime-query-filter-
|
|
890
|
+
case "limebb-lime-query-filter-group":
|
|
975
891
|
if (!customElements.get(tagName)) {
|
|
976
892
|
defineCustomElement$8();
|
|
977
893
|
}
|
|
978
894
|
break;
|
|
979
|
-
case "limebb-lime-query-filter-
|
|
895
|
+
case "limebb-lime-query-filter-not":
|
|
980
896
|
if (!customElements.get(tagName)) {
|
|
981
897
|
defineCustomElement$7();
|
|
982
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;
|