@limetech/lime-crm-building-blocks 1.96.0 → 1.98.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.
Files changed (179) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/{_MapCache-2e84a981.js → _MapCache-8b125fbb.js} +0 -26
  3. package/dist/cjs/{_Uint8Array-1e99726d.js → _Uint8Array-95263550.js} +1 -12
  4. package/dist/cjs/_baseIsEqual-cb7951b0.js +496 -0
  5. package/dist/cjs/_defineProperty-40a6ad5d.js +15 -0
  6. package/dist/cjs/{get-1acf79ce.js → get-932b213e.js} +5 -4
  7. package/dist/cjs/isEqual-e77cce75.js +37 -0
  8. package/dist/cjs/isSymbol-5b36aeee.js +30 -0
  9. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  10. package/dist/cjs/lime-query.types-bcb63a22.js +61 -0
  11. package/dist/cjs/limebb-component-config.cjs.entry.js +3 -2
  12. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +378 -150
  13. package/dist/cjs/limebb-lime-query-filter-and_5.cjs.entry.js +278 -0
  14. package/dist/cjs/limebb-lime-query-value-input.cjs.entry.js +239 -0
  15. package/dist/cjs/limebb-limetype-field_2.cjs.entry.js +406 -0
  16. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  17. package/dist/cjs/limebb-locale-picker.cjs.entry.js +13 -498
  18. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  19. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  20. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  21. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  22. package/dist/cjs/limebb-property-selector.cjs.entry.js +234 -0
  23. package/dist/cjs/limebb-response-format-item.cjs.entry.js +80 -0
  24. package/dist/cjs/limebb-text-editor.cjs.entry.js +20 -61
  25. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  26. package/dist/cjs/limetype-1fe0207f.js +90 -0
  27. package/dist/cjs/loader.cjs.js +1 -1
  28. package/dist/cjs/property-resolution-fb42a46b.js +66 -0
  29. package/dist/collection/collection-manifest.json +10 -0
  30. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.css +121 -0
  31. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +257 -0
  32. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.css +39 -0
  33. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +246 -0
  34. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +104 -0
  35. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +220 -0
  36. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.css +107 -0
  37. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +212 -0
  38. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.css +123 -0
  39. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +237 -0
  40. package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.css +48 -0
  41. package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.js +457 -0
  42. package/dist/collection/components/lime-query-builder/filter-conversion.js +118 -21
  43. package/dist/collection/components/lime-query-builder/lime-query-builder.css +30 -17
  44. package/dist/collection/components/lime-query-builder/lime-query-builder.js +253 -27
  45. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +435 -0
  46. package/dist/collection/components/lime-query-builder/property-selection-format.js +158 -0
  47. package/dist/collection/components/lime-query-builder/property-selector/property-selector.css +8 -0
  48. package/dist/collection/components/lime-query-builder/property-selector/property-selector.js +422 -0
  49. package/dist/collection/components/lime-query-builder/response-format-editor.css +72 -0
  50. package/dist/collection/components/lime-query-builder/response-format-editor.js +249 -0
  51. package/dist/collection/components/lime-query-builder/response-format-item.css +61 -0
  52. package/dist/collection/components/lime-query-builder/response-format-item.js +208 -0
  53. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  54. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  55. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  56. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  57. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  58. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  59. package/dist/collection/components/text-editor/text-editor.js +1 -1
  60. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  61. package/dist/components/_MapCache.js +2 -27
  62. package/dist/components/_Uint8Array.js +2 -12
  63. package/dist/components/_baseIsEqual.js +494 -0
  64. package/dist/components/_defineProperty.js +13 -0
  65. package/dist/components/get.js +2 -1
  66. package/dist/components/isEqual.js +35 -0
  67. package/dist/components/isSymbol.js +28 -0
  68. package/dist/components/lime-query-filter-and.js +408 -0
  69. package/dist/components/lime-query-filter-comparison.js +152 -0
  70. package/dist/components/lime-query-value-input.js +266 -0
  71. package/dist/components/limebb-lime-query-builder.js +437 -149
  72. package/dist/components/limebb-lime-query-filter-and.d.ts +11 -0
  73. package/dist/components/limebb-lime-query-filter-and.js +6 -0
  74. package/dist/components/limebb-lime-query-filter-comparison.d.ts +11 -0
  75. package/dist/components/limebb-lime-query-filter-comparison.js +6 -0
  76. package/dist/components/limebb-lime-query-filter-expression.d.ts +11 -0
  77. package/dist/components/limebb-lime-query-filter-expression.js +6 -0
  78. package/dist/components/limebb-lime-query-filter-not.d.ts +11 -0
  79. package/dist/components/limebb-lime-query-filter-not.js +6 -0
  80. package/dist/components/limebb-lime-query-filter-or.d.ts +11 -0
  81. package/dist/components/limebb-lime-query-filter-or.js +6 -0
  82. package/dist/components/limebb-lime-query-value-input.d.ts +11 -0
  83. package/dist/components/limebb-lime-query-value-input.js +6 -0
  84. package/dist/components/limebb-limetype-field.d.ts +11 -0
  85. package/dist/components/limebb-limetype-field.js +6 -0
  86. package/dist/components/limebb-locale-picker.js +8 -493
  87. package/dist/components/limebb-mention-group-counter.js +2 -2
  88. package/dist/components/limebb-percentage-visualizer.js +2 -2
  89. package/dist/components/limebb-property-selector.d.ts +11 -0
  90. package/dist/components/limebb-property-selector.js +6 -0
  91. package/dist/components/limebb-response-format-editor.d.ts +11 -0
  92. package/dist/components/limebb-response-format-editor.js +6 -0
  93. package/dist/components/limebb-response-format-item.d.ts +11 -0
  94. package/dist/components/limebb-response-format-item.js +6 -0
  95. package/dist/components/limebb-text-editor.js +7 -48
  96. package/dist/components/limebb-trend-indicator.js +1 -1
  97. package/dist/components/limetype-field.js +184 -0
  98. package/dist/components/limetype.js +85 -0
  99. package/dist/components/live-docs-info.js +2 -2
  100. package/dist/components/notification-item.js +1 -1
  101. package/dist/components/property-selector.js +317 -0
  102. package/dist/components/response-format-editor.js +278 -0
  103. package/dist/components/response-format-item.js +104 -0
  104. package/dist/components/summary-popover.js +3 -3
  105. package/dist/esm/{_MapCache-6484495d.js → _MapCache-af496e9d.js} +2 -27
  106. package/dist/esm/{_Uint8Array-e5cac922.js → _Uint8Array-d6ebd526.js} +3 -13
  107. package/dist/esm/_baseIsEqual-28053b81.js +494 -0
  108. package/dist/esm/_defineProperty-e6a185c3.js +13 -0
  109. package/dist/esm/{get-f9e0b2e1.js → get-3e42932b.js} +2 -1
  110. package/dist/esm/isEqual-57d0c223.js +35 -0
  111. package/dist/esm/isSymbol-1c5f65cc.js +28 -0
  112. package/dist/esm/lime-crm-building-blocks.js +1 -1
  113. package/dist/esm/lime-query.types-f72355e1.js +59 -0
  114. package/dist/esm/limebb-component-config.entry.js +3 -2
  115. package/dist/esm/limebb-lime-query-builder.entry.js +375 -147
  116. package/dist/esm/limebb-lime-query-filter-and_5.entry.js +270 -0
  117. package/dist/esm/limebb-lime-query-value-input.entry.js +235 -0
  118. package/dist/esm/limebb-limetype-field_2.entry.js +401 -0
  119. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  120. package/dist/esm/limebb-locale-picker.entry.js +9 -494
  121. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  122. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  123. package/dist/esm/limebb-notification-item.entry.js +1 -1
  124. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  125. package/dist/esm/limebb-property-selector.entry.js +230 -0
  126. package/dist/esm/limebb-response-format-item.entry.js +76 -0
  127. package/dist/esm/limebb-text-editor.entry.js +7 -48
  128. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  129. package/dist/esm/limetype-6e7552a7.js +85 -0
  130. package/dist/esm/loader.js +1 -1
  131. package/dist/esm/property-resolution-fde2375e.js +63 -0
  132. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  133. package/dist/lime-crm-building-blocks/{p-88c64360.entry.js → p-00da9b24.entry.js} +1 -1
  134. package/dist/lime-crm-building-blocks/p-02c0cc04.entry.js +1 -0
  135. package/dist/lime-crm-building-blocks/p-0957b2a6.entry.js +1 -0
  136. package/dist/lime-crm-building-blocks/p-123190c3.js +1 -0
  137. package/dist/lime-crm-building-blocks/p-244ee55b.entry.js +1 -0
  138. package/dist/lime-crm-building-blocks/p-35897ec3.js +1 -0
  139. package/dist/lime-crm-building-blocks/{p-85b7291c.entry.js → p-3932077b.entry.js} +1 -1
  140. package/dist/lime-crm-building-blocks/p-3b0a15ec.js +1 -0
  141. package/dist/lime-crm-building-blocks/p-5a6d2e7f.js +1 -0
  142. package/dist/lime-crm-building-blocks/p-60971d64.js +1 -0
  143. package/dist/lime-crm-building-blocks/p-6c1146ca.entry.js +1 -0
  144. package/dist/lime-crm-building-blocks/p-70a28b93.entry.js +1 -0
  145. package/dist/lime-crm-building-blocks/p-7e6fb4af.js +1 -0
  146. package/dist/lime-crm-building-blocks/{p-8664381a.entry.js → p-8c4eb49f.entry.js} +1 -1
  147. package/dist/lime-crm-building-blocks/p-96beaabc.entry.js +1 -0
  148. package/dist/lime-crm-building-blocks/p-a659d55a.js +1 -0
  149. package/dist/lime-crm-building-blocks/p-baf4e428.entry.js +1 -0
  150. package/dist/lime-crm-building-blocks/p-d298b34e.js +1 -0
  151. package/dist/lime-crm-building-blocks/{p-7c4bdc1b.entry.js → p-d89c44ad.entry.js} +1 -1
  152. package/dist/lime-crm-building-blocks/p-e0ab1554.js +1 -0
  153. package/dist/lime-crm-building-blocks/{p-8064cbfb.entry.js → p-e9d23ef7.entry.js} +1 -1
  154. package/dist/lime-crm-building-blocks/p-ef8a5266.entry.js +1 -0
  155. package/dist/lime-crm-building-blocks/{p-c9126885.entry.js → p-f52125a0.entry.js} +1 -1
  156. package/dist/lime-crm-building-blocks/p-f99c611d.entry.js +1 -0
  157. package/dist/lime-crm-building-blocks/p-fe2b91d9.js +1 -0
  158. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +56 -0
  159. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +64 -0
  160. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +53 -0
  161. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-not.d.ts +54 -0
  162. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +55 -0
  163. package/dist/types/components/lime-query-builder/expressions/lime-query-value-input.d.ts +92 -0
  164. package/dist/types/components/lime-query-builder/filter-conversion.d.ts +18 -0
  165. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +40 -7
  166. package/dist/types/components/lime-query-builder/limetype-field/limetype-field.d.ts +96 -0
  167. package/dist/types/components/lime-query-builder/property-selection-format.d.ts +23 -0
  168. package/dist/types/components/lime-query-builder/property-selector/property-selector.d.ts +71 -0
  169. package/dist/types/components/lime-query-builder/response-format-editor.d.ts +57 -0
  170. package/dist/types/components/lime-query-builder/response-format-item.d.ts +46 -0
  171. package/dist/types/components.d.ts +1587 -114
  172. package/package.json +1 -1
  173. package/dist/lime-crm-building-blocks/p-00e7e0d4.entry.js +0 -1
  174. package/dist/lime-crm-building-blocks/p-11ac105b.entry.js +0 -1
  175. package/dist/lime-crm-building-blocks/p-5abe3fff.entry.js +0 -1
  176. package/dist/lime-crm-building-blocks/p-8044ffbd.js +0 -1
  177. package/dist/lime-crm-building-blocks/p-92ec9205.entry.js +0 -1
  178. package/dist/lime-crm-building-blocks/p-bcc23575.js +0 -1
  179. package/dist/lime-crm-building-blocks/p-c40a3f4b.js +0 -1
@@ -0,0 +1,56 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
3
+ import { LimeQueryFilterAnd, LimeQueryFilterMissing } from '../lime-query.types';
4
+ /**
5
+ * Lime Query Filter AND Component
6
+ *
7
+ * Renders a group of filter expressions where **all conditions must be true**.
8
+ * Users can add multiple child expressions, and a record must match all of them
9
+ * to be included in the result set.
10
+ *
11
+ * This component displays:
12
+ * - A header with "All of these conditions are true" when there are multiple conditions
13
+ * - A list of child expressions (which can be comparisons or nested AND/OR/NOT groups)
14
+ * - An "Add another condition" button to add more expressions
15
+ *
16
+ * Clicking the trash icon on a child expression removes it from the AND group.
17
+ *
18
+ * @private
19
+ */
20
+ export declare class LimeQueryFilterAndComponent implements LimeWebComponent {
21
+ /**
22
+ * Platform service provider
23
+ */
24
+ platform: LimeWebComponentPlatform;
25
+ /**
26
+ * Component context
27
+ */
28
+ context: LimeWebComponentContext;
29
+ /**
30
+ * Optional label for the AND group
31
+ */
32
+ label: string;
33
+ /**
34
+ * The limetype being queried (e.g., "deal", "company")
35
+ */
36
+ limetype: string;
37
+ /**
38
+ * The limetype of the active object (for %activeObject% placeholders)
39
+ */
40
+ activeLimetype?: string;
41
+ /**
42
+ * The AND expression containing child expressions
43
+ */
44
+ expression: LimeQueryFilterAnd;
45
+ /**
46
+ * Emitted when the AND expression changes (expressions added/removed/modified)
47
+ */
48
+ expressionChange: EventEmitter<LimeQueryFilterAnd | LimeQueryFilterMissing>;
49
+ render(): any;
50
+ private renderChildExpression;
51
+ private renderAddChildExpression;
52
+ private getAddButtonLabel;
53
+ private handleAddChildExpression;
54
+ private handleExpressionChange;
55
+ }
56
+ //# sourceMappingURL=lime-query-filter-and.d.ts.map
@@ -0,0 +1,64 @@
1
+ import { LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
2
+ import { EventEmitter } from '../../../stencil-public-runtime';
3
+ import { LimeQueryFilterComparison, LimeQueryFilterMissing } from '../lime-query.types';
4
+ /**
5
+ * Lime Query Filter Comparison Component
6
+ *
7
+ * Renders a single comparison expression with three parts:
8
+ * 1. **Property** - The field to compare (e.g., "dealstatus", "company.name")
9
+ * 2. **Operator** - The comparison operator (=, !=, >, <, >=, <=, IN, ?, =?, =$)
10
+ * 3. **Value** - The value to compare against
11
+ *
12
+ * This is the most basic building block of a filter. Examples:
13
+ * - dealstatus = "won"
14
+ * - value > 100000
15
+ * - name ? "Big" (contains "Big")
16
+ * - dealstatus IN ["won", "tender"]
17
+ *
18
+ * The component displays:
19
+ * - A text input for the property (Phase 0 - will be replaced with property-path in Phase 1)
20
+ * - A dropdown for the operator
21
+ * - A value input (text/number based on operator)
22
+ * - A trash icon button to remove this condition
23
+ *
24
+ * @private
25
+ */
26
+ export declare class LimeQueryFilterComparisonComponent {
27
+ /**
28
+ * Platform service provider
29
+ */
30
+ platform: LimeWebComponentPlatform;
31
+ /**
32
+ * Component context
33
+ */
34
+ context: LimeWebComponentContext;
35
+ /**
36
+ * Optional label for the comparison
37
+ */
38
+ label: string;
39
+ /**
40
+ * The limetype being queried (e.g., "deal", "company")
41
+ */
42
+ limetype: string;
43
+ /**
44
+ * The limetype of the active object (for %activeObject% placeholders)
45
+ */
46
+ activeLimetype?: string;
47
+ /**
48
+ * The comparison expression to render
49
+ */
50
+ expression: LimeQueryFilterComparison;
51
+ /**
52
+ * Emitted when the comparison expression changes (property/operator/value modified)
53
+ */
54
+ expressionChange: EventEmitter<LimeQueryFilterComparison | LimeQueryFilterMissing>;
55
+ render(): any;
56
+ private renderPropertySelector;
57
+ private renderOperator;
58
+ private renderValueInput;
59
+ private handlePropertyChange;
60
+ private handleOperatorChange;
61
+ private handleValueChange;
62
+ private removeExpression;
63
+ }
64
+ //# sourceMappingURL=lime-query-filter-comparison.d.ts.map
@@ -0,0 +1,53 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { LimeQueryFilterExpression } from '../lime-query.types';
3
+ import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
4
+ /**
5
+ * Lime Query Filter Expression Router
6
+ *
7
+ * This is the main entry point for rendering Lime Query filters.
8
+ * It routes to the appropriate sub-component based on the filter type:
9
+ * - `'AND'` → limebb-lime-query-filter-and
10
+ * - `'OR'` → limebb-lime-query-filter-or
11
+ * - `'NOT'` → limebb-lime-query-filter-not
12
+ * - `'comparison'` → limebb-lime-query-filter-comparison
13
+ * - `''` (missing) → limebb-lime-query-filter-comparison (default)
14
+ *
15
+ * Use this component when you need to render a complete filter expression
16
+ * that may contain nested AND/OR/NOT logic.
17
+ *
18
+ * @private
19
+ */
20
+ export declare class LimeQueryFilterExpressionComponent implements LimeWebComponent {
21
+ /**
22
+ * Platform service provider
23
+ */
24
+ platform: LimeWebComponentPlatform;
25
+ /**
26
+ * Component context
27
+ */
28
+ context: LimeWebComponentContext;
29
+ /**
30
+ * Optional label for the expression
31
+ */
32
+ label: string;
33
+ /**
34
+ * The limetype being queried (e.g., "deal", "company")
35
+ * Used for property validation and type-aware inputs
36
+ */
37
+ limetype: string;
38
+ /**
39
+ * The limetype of the active object (for %activeObject% placeholders)
40
+ * Optional - used for validation and property suggestions
41
+ */
42
+ activeLimetype?: string;
43
+ /**
44
+ * The filter expression to render
45
+ */
46
+ expression: LimeQueryFilterExpression;
47
+ /**
48
+ * Emitted when the filter expression changes
49
+ */
50
+ expressionChange: EventEmitter<LimeQueryFilterExpression>;
51
+ render(): any;
52
+ }
53
+ //# sourceMappingURL=lime-query-filter-expression.d.ts.map
@@ -0,0 +1,54 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
3
+ import { LimeQueryFilterNot, LimeQueryFilterMissing } from '../lime-query.types';
4
+ /**
5
+ * Lime Query Filter NOT Component
6
+ *
7
+ * Renders a negated filter expression. This inverts the logic of the child expression,
8
+ * so records that would normally match will be excluded, and vice versa.
9
+ *
10
+ * For example:
11
+ * - NOT (status = "won") → Include all records where status is NOT "won"
12
+ * - NOT (value > 100000) → Include all records where value is NOT greater than 100000
13
+ *
14
+ * This component displays:
15
+ * - A "Not" label
16
+ * - A single child expression (which can be a comparison or nested AND/OR group)
17
+ *
18
+ * Clicking the trash icon removes the entire NOT expression.
19
+ *
20
+ * @private
21
+ */
22
+ export declare class LimeQueryFilterNotComponent implements LimeWebComponent {
23
+ /**
24
+ * Platform service provider
25
+ */
26
+ platform: LimeWebComponentPlatform;
27
+ /**
28
+ * Component context
29
+ */
30
+ context: LimeWebComponentContext;
31
+ /**
32
+ * Optional label for the NOT expression
33
+ */
34
+ label: string;
35
+ /**
36
+ * The limetype being queried (e.g., "deal", "company")
37
+ */
38
+ limetype: string;
39
+ /**
40
+ * The limetype of the active object (for %activeObject% placeholders)
41
+ */
42
+ activeLimetype?: string;
43
+ /**
44
+ * The NOT expression containing the child expression to negate
45
+ */
46
+ expression: LimeQueryFilterNot;
47
+ /**
48
+ * Emitted when the NOT expression changes (child expression modified or removed)
49
+ */
50
+ expressionChange: EventEmitter<LimeQueryFilterNot | LimeQueryFilterMissing>;
51
+ render(): any;
52
+ private handleExpressionChange;
53
+ }
54
+ //# sourceMappingURL=lime-query-filter-not.d.ts.map
@@ -0,0 +1,55 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
3
+ import { LimeQueryFilterOr, LimeQueryFilterMissing } from '../lime-query.types';
4
+ /**
5
+ * Lime Query Filter OR Component
6
+ *
7
+ * Renders a group of filter expressions where **at least one condition must be true**.
8
+ * Users can add multiple alternative expressions, and a record only needs to match
9
+ * one of them to be included in the result set.
10
+ *
11
+ * This component displays:
12
+ * - A header with "Any of these conditions is true" when there are multiple conditions
13
+ * - A list of child expressions (which can be comparisons or nested AND/OR/NOT groups)
14
+ * - An "Add alternative" button to add more options
15
+ *
16
+ * Clicking the trash icon on a child expression removes it from the OR group.
17
+ *
18
+ * @private
19
+ */
20
+ export declare class LimeQueryFilterOrComponent implements LimeWebComponent {
21
+ /**
22
+ * Platform service provider
23
+ */
24
+ platform: LimeWebComponentPlatform;
25
+ /**
26
+ * Component context
27
+ */
28
+ context: LimeWebComponentContext;
29
+ /**
30
+ * Optional label for the OR group
31
+ */
32
+ label: string;
33
+ /**
34
+ * The limetype being queried (e.g., "deal", "company")
35
+ */
36
+ limetype: string;
37
+ /**
38
+ * The limetype of the active object (for %activeObject% placeholders)
39
+ */
40
+ activeLimetype?: string;
41
+ /**
42
+ * The OR expression containing child expressions
43
+ */
44
+ expression: LimeQueryFilterOr;
45
+ /**
46
+ * Emitted when the OR expression changes (expressions added/removed/modified)
47
+ */
48
+ expressionChange: EventEmitter<LimeQueryFilterOr | LimeQueryFilterMissing>;
49
+ render(): any;
50
+ private renderChildExpression;
51
+ private handleExpressionChange;
52
+ private renderAddChildExpression;
53
+ private handleAddChildExpression;
54
+ }
55
+ //# sourceMappingURL=lime-query-filter-or.d.ts.map
@@ -0,0 +1,92 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
3
+ import { FilterOperator } from '../lime-query.types';
4
+ /**
5
+ * Query Value Input Component
6
+ *
7
+ * Renders an appropriate input control based on the property type and operator.
8
+ * This component automatically adapts its UI to match the data type of the selected
9
+ * property, providing a better user experience and data validation.
10
+ *
11
+ * Supported input types:
12
+ * - **String/Text**: Standard text input field
13
+ * - **Integer/Decimal**: Number input with appropriate step values
14
+ * - **Date**: Date picker returning ISO date strings
15
+ * - **Time**: Time input field
16
+ * - **Boolean (yesno)**: True/False dropdown
17
+ * - **Option**: Dropdown populated with valid options from property definition
18
+ * - **IN operator**: Comma-separated input for multiple values (any type)
19
+ * - **Placeholder mode**: Select properties from active object using %activeObject%
20
+ *
21
+ * The component handles type conversions automatically:
22
+ * - Numbers are parsed from string inputs
23
+ * - Dates are converted to/from ISO strings
24
+ * - Booleans are converted to/from strings for dropdown compatibility
25
+ *
26
+ * @private
27
+ */
28
+ export declare class LimeQueryValueInput {
29
+ /**
30
+ * Platform service provider
31
+ */
32
+ platform: LimeWebComponentPlatform;
33
+ /**
34
+ * Component context
35
+ */
36
+ context: LimeWebComponentContext;
37
+ /**
38
+ * The limetype being queried
39
+ */
40
+ limetype: string;
41
+ /**
42
+ * The limetype of the active object (for %activeObject% placeholders)
43
+ */
44
+ activeLimetype?: string;
45
+ /**
46
+ * The property path (e.g., "dealstatus", "company.name")
47
+ */
48
+ propertyPath: string;
49
+ /**
50
+ * The operator being used
51
+ */
52
+ operator: FilterOperator;
53
+ /**
54
+ * The current value
55
+ */
56
+ value: any;
57
+ /**
58
+ * Optional label for the input
59
+ */
60
+ label: string;
61
+ private limetypes;
62
+ private inputMode;
63
+ /**
64
+ * Emitted when the value changes
65
+ */
66
+ change: EventEmitter<any>;
67
+ componentWillLoad(): void;
68
+ componentWillUpdate(): void;
69
+ private isPlaceholder;
70
+ private parsePlaceholderPath;
71
+ private buildPlaceholderValue;
72
+ render(): any;
73
+ private renderModeToggle;
74
+ private renderPlaceholderInput;
75
+ private renderValueInputByType;
76
+ private renderTextInput;
77
+ private renderNumberInput;
78
+ private renderBooleanInput;
79
+ private renderOptionInput;
80
+ private renderDateInput;
81
+ private renderTimeInput;
82
+ private renderMultiValueInput;
83
+ private handleTextChange;
84
+ private handleSelectChange;
85
+ private handleBooleanChange;
86
+ private handleDateChange;
87
+ private handleMultiValueChange;
88
+ private handleModeToggle;
89
+ private handlePlaceholderPropertyChange;
90
+ private getProperty;
91
+ }
92
+ //# sourceMappingURL=lime-query-value-input.d.ts.map
@@ -10,4 +10,22 @@ export declare function guiFilterToLimeQuery(filter: LimeQueryFilterExpression):
10
10
  * @param filter
11
11
  */
12
12
  export declare function limeQueryToGuiFilter(filter: FilterExpression | FilterGroup | undefined): LimeQueryFilterExpression;
13
+ /**
14
+ * Normalize filter for GUI mode by ensuring proper AND/OR wrapper structure.
15
+ * GUI mode requires filters to be wrapped in AND([OR(...)]) so users have
16
+ * access to add/remove buttons on the AND and OR components.
17
+ *
18
+ * This function ensures that:
19
+ * - Single comparisons are wrapped in AND([OR([comparison])])
20
+ * - OR groups are wrapped in AND([OR group])
21
+ * - AND groups have their comparison children wrapped in OR
22
+ * - Empty/undefined filters become AND([])
23
+ *
24
+ * When converting back to Lime Query JSON, limeQueryFilterToLimeQuery()
25
+ * automatically unwraps single-item AND/OR groups.
26
+ *
27
+ * @param filter The filter expression from limeQueryToLimeQueryFilter
28
+ * @returns Normalized filter suitable for GUI editing
29
+ */
30
+ export declare function normalizeLimeQueryFilterForGui(filter: LimeQueryFilterExpression): LimeQueryFilterExpression;
13
31
  //# sourceMappingURL=filter-conversion.d.ts.map
@@ -4,18 +4,27 @@ import { LimeQuery } from './lime-query.types';
4
4
  /**
5
5
  * Lime Query Builder Component
6
6
  *
7
- * A code editor for constructing Lime Query DSL queries in JSON format.
7
+ * A comprehensive query builder for constructing Lime Query DSL queries.
8
+ * This is the main component that combines limetype selection with the filter builder.
8
9
  *
9
10
  * Features:
10
- * - **JSON code editor**: Write queries using the Lime Query DSL
11
- * - **Syntax validation**: Real-time validation of query structure
12
- * - **Feature flag support**: GUI mode placeholder (not yet implemented)
11
+ * - **Limetype selection**: Choose which object type to query
12
+ * - **Filter builder**: Build complex filters with AND/OR/NOT logic
13
+ * - **Property path selection**: Navigate through relations
14
+ * - **Type-aware inputs**: Automatic input types based on property type
15
+ * - **Response format**: Select which properties to return
16
+ * - **Query options**: Configure limit and other query parameters
17
+ * - **Placeholder support**: Use `%activeObject%` placeholders in filter values
18
+ * - **Real-time output**: See the Lime Query JSON as you build
13
19
  *
14
- * The component allows editing of complete `LimeQuery` objects that can be sent
20
+ * The component produces a complete `LimeQuery` object that can be sent
15
21
  * directly to the Lime CRM backend.
16
22
  *
17
- * When the feature flag `useLimeQueryBuilderGuiMode` is enabled, a mode toggle
18
- * becomes available, but GUI mode currently shows a placeholder message.
23
+ * **Active Object Placeholders**:
24
+ * When the `activeLimetype` prop is provided, the component enables validation
25
+ * and UI support for `%activeObject%` placeholders in filter expressions.
26
+ * These placeholders reference properties of a contextual "active object"
27
+ * (e.g., `%activeObject%.company` references the company of the active object).
19
28
  *
20
29
  * @exampleComponent limebb-example-lime-query-builder-basic
21
30
  * @private
@@ -44,12 +53,36 @@ export declare class LimeQueryBuilder implements LimeWebComponent {
44
53
  private limetypes;
45
54
  private mode;
46
55
  private codeValue;
56
+ private limetype;
57
+ private filter;
58
+ private internalResponseFormat?;
59
+ private limit?;
60
+ /**
61
+ * The limetype of the active object (for %activeObject% placeholder validation).
62
+ * When provided, enables placeholder validation and the placeholder input mode.
63
+ * When omitted, placeholders are accepted without validation.
64
+ */
65
+ activeLimetype?: string;
47
66
  private get guiModeEnabled();
48
67
  componentWillLoad(): void;
49
68
  render(): any;
69
+ private handleLimetypeChange;
70
+ private handleFilterChange;
71
+ private handleResponseFormatChange;
72
+ private handleLimitChange;
73
+ private emitChange;
74
+ private updateCodeValue;
50
75
  private checkGuiSupport;
51
76
  private renderModeSwitch;
52
77
  private renderCodeEditor;
78
+ private renderLimetypeSection;
79
+ private renderResponseFormatSection;
80
+ private renderFilterSection;
81
+ private renderQueryOptionsSection;
82
+ private renderGuiMode;
83
+ private renderLabel;
84
+ private renderModeControls;
85
+ private renderCodeMode;
53
86
  private switchToGui;
54
87
  private switchToCode;
55
88
  private handleCodeChange;
@@ -0,0 +1,96 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { FormComponent, FormInfo } from '@limetech/lime-elements';
3
+ import { LimeWebComponentPlatform, LimeWebComponentContext, LimeWebComponent, PropertyType } from '@limetech/lime-web-components';
4
+ type DependentPropertyField = {
5
+ limetype: string;
6
+ allowedPropertyTypes?: PropertyType[];
7
+ };
8
+ /**
9
+ * Limetype Field Component
10
+ *
11
+ * A dropdown selector for choosing a limetype (object type) from the available
12
+ * limetypes in the system.
13
+ *
14
+ * This component:
15
+ * - Displays all limetypes with their icons and localized names
16
+ * - Supports restricting to a specific list of limetypes
17
+ * - Can update dependent property-path fields when selection changes
18
+ * - Implements the FormComponent interface for use in forms
19
+ *
20
+ * Common use cases:
21
+ * - Selecting which object type to query in a lime query builder
22
+ * - Choosing target limetype for relations
23
+ * - Configuring limetype-dependent settings
24
+ *
25
+ * @private
26
+ */
27
+ export declare class LimetypeField implements LimeWebComponent, FormComponent<string> {
28
+ /**
29
+ * @inheritdoc
30
+ */
31
+ platform: LimeWebComponentPlatform;
32
+ /**
33
+ * @inheritdoc
34
+ */
35
+ context: LimeWebComponentContext;
36
+ /**
37
+ * @inheritdoc
38
+ */
39
+ label: string;
40
+ /**
41
+ * @inheritdoc
42
+ */
43
+ required: boolean;
44
+ /**
45
+ * @inheritdoc
46
+ */
47
+ readonly: boolean;
48
+ /**
49
+ * @inheritdoc
50
+ */
51
+ disabled: boolean;
52
+ /**
53
+ * @inheritdoc
54
+ */
55
+ value: string;
56
+ /**
57
+ * @inheritdoc
58
+ */
59
+ helperText: string;
60
+ /**
61
+ * @inheritdoc
62
+ */
63
+ invalid: boolean;
64
+ /**
65
+ * The limetypes to choose from
66
+ */
67
+ limetypes?: string[];
68
+ /**
69
+ * A list of property fields that should be updated when the selected limetype changes.
70
+ */
71
+ propertyFields: DependentPropertyField[];
72
+ /**
73
+ * The name of this field. May be used as reference when a property mapping
74
+ * depends on the selected limetype.
75
+ */
76
+ fieldName: string;
77
+ /**
78
+ * @inheritdoc
79
+ */
80
+ formInfo?: FormInfo;
81
+ /**
82
+ * @inheritdoc
83
+ */
84
+ change: EventEmitter<string>;
85
+ private collator;
86
+ componentWillLoad(): void;
87
+ componentShouldUpdate(newValue: FormInfo | undefined, oldValue: FormInfo | undefined, property: string): boolean;
88
+ render(): any;
89
+ componentWillRender(): void;
90
+ private getLimeTypes;
91
+ private handleChange;
92
+ private updatePropertyFields;
93
+ private get limeTypeRepository();
94
+ }
95
+ export {};
96
+ //# sourceMappingURL=limetype-field.d.ts.map
@@ -0,0 +1,23 @@
1
+ import { PropertySelection } from './lime-query.types';
2
+ /**
3
+ * Represents a single property selection item in the UI
4
+ */
5
+ export interface PropertySelectionItem {
6
+ path: string;
7
+ alias?: string;
8
+ description?: string;
9
+ }
10
+ /**
11
+ * Convert a nested PropertySelection to a flat list of property items
12
+ * @param selection The nested PropertySelection object
13
+ * @param prefix Current path prefix (used for recursion)
14
+ * @returns Flat array of PropertySelectionItem objects
15
+ */
16
+ export declare function propertySelectionToItems(selection: PropertySelection | undefined | null, prefix?: string): PropertySelectionItem[];
17
+ /**
18
+ * Convert a flat list of property items to a nested PropertySelection structure
19
+ * @param items Array of PropertySelectionItem objects
20
+ * @returns Nested PropertySelection object
21
+ */
22
+ export declare function itemsToPropertySelection(items: PropertySelectionItem[]): PropertySelection;
23
+ //# sourceMappingURL=property-selection-format.d.ts.map
@@ -0,0 +1,71 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
3
+ /**
4
+ * Property Selector Component
5
+ *
6
+ * A menu-based property selector that allows users to navigate through properties
7
+ * and relations, only emitting complete property paths (not intermediate relations).
8
+ *
9
+ * Similar to limec-context-expression but specifically for selecting properties
10
+ * with dot-notation paths.
11
+ *
12
+ * Features:
13
+ * - Menu-based navigation through properties
14
+ * - Submenu support for drilling into relations
15
+ * - Internal state management during navigation
16
+ * - Only emits complete paths (leaf properties)
17
+ * - Chip-set display showing current path
18
+ * @private
19
+ */
20
+ export declare class PropertySelector implements LimeWebComponent {
21
+ /**
22
+ * Platform service provider
23
+ */
24
+ platform: LimeWebComponentPlatform;
25
+ /**
26
+ * Component context
27
+ */
28
+ context: LimeWebComponentContext;
29
+ /**
30
+ * The limetype to select properties from
31
+ */
32
+ limetype: string;
33
+ /**
34
+ * Current complete property path value
35
+ */
36
+ value: string;
37
+ /**
38
+ * Label for the input
39
+ */
40
+ label: string;
41
+ /**
42
+ * Whether the field is required
43
+ */
44
+ required: boolean;
45
+ /**
46
+ * Helper text to display
47
+ */
48
+ helperText: string;
49
+ private limetypes;
50
+ private isOpen;
51
+ private navigationPath;
52
+ /**
53
+ * Emitted when a complete property path is selected
54
+ */
55
+ change: EventEmitter<string>;
56
+ private menuItems;
57
+ render(): any;
58
+ private handleChipSetWrapperClick;
59
+ private handleChipSetFocus;
60
+ private handleSelect;
61
+ private handleNavigateMenu;
62
+ private handleCancel;
63
+ private handleChipSetChange;
64
+ private loadMenuItems;
65
+ private getCurrentLimetype;
66
+ private createMenuItems;
67
+ private getSecondaryText;
68
+ private getIconForProperty;
69
+ private getChipsForPath;
70
+ }
71
+ //# sourceMappingURL=property-selector.d.ts.map