@limetech/lime-crm-building-blocks 1.98.0 → 1.100.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 (176) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/{index.esm-a894ac76.js → index.esm-d785eb6e.js} +2 -0
  3. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  4. package/dist/cjs/limebb-browser.cjs.entry.js +1 -1
  5. package/dist/cjs/limebb-chat-item_2.cjs.entry.js +1 -1
  6. package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
  7. package/dist/cjs/limebb-component-config.cjs.entry.js +1 -1
  8. package/dist/cjs/limebb-component-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  11. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  12. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  13. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +68 -179
  17. package/dist/cjs/limebb-lime-query-filter-and.cjs.entry.js +80 -0
  18. package/dist/cjs/{limebb-limetype-field_2.cjs.entry.js → limebb-lime-query-filter-builder_3.cjs.entry.js} +108 -6
  19. package/dist/cjs/limebb-lime-query-filter-comparison_5.cjs.entry.js +705 -0
  20. package/dist/cjs/limebb-lime-query-filter-expression.cjs.entry.js +45 -0
  21. package/dist/cjs/limebb-lime-query-filter-or.cjs.entry.js +68 -0
  22. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +1 -1
  23. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  24. package/dist/cjs/limebb-loader.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-locale-picker.cjs.entry.js +2 -2
  26. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  27. package/dist/cjs/limebb-mention.cjs.entry.js +1 -1
  28. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  29. package/dist/cjs/limebb-notification-item.cjs.entry.js +2 -2
  30. package/dist/cjs/limebb-notification-list.cjs.entry.js +1 -1
  31. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-text-editor.cjs.entry.js +3 -3
  33. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  34. package/dist/cjs/{limetype-1fe0207f.js → limetype-f2e4376e.js} +1 -1
  35. package/dist/cjs/loader.cjs.js +1 -1
  36. package/dist/collection/collection-manifest.json +2 -0
  37. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +41 -49
  38. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.css +5 -0
  39. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.js +225 -0
  40. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +77 -41
  41. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +35 -46
  42. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +130 -0
  43. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +269 -0
  44. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +19 -25
  45. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +34 -34
  46. package/dist/collection/components/lime-query-builder/lime-query-builder.js +11 -26
  47. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  48. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  49. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  50. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  51. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  52. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  53. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  54. package/dist/collection/components/text-editor/text-editor.js +1 -1
  55. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  56. package/dist/components/index.esm.js +2 -1
  57. package/dist/components/lime-query-filter-builder.js +129 -0
  58. package/dist/components/lime-query-filter-comparison.js +32 -45
  59. package/dist/components/lime-query-filter-expression.js +315 -0
  60. package/dist/components/limebb-lime-query-builder.js +73 -182
  61. package/dist/components/limebb-lime-query-filter-and.js +130 -1
  62. package/dist/components/limebb-lime-query-filter-builder.d.ts +11 -0
  63. package/dist/components/limebb-lime-query-filter-builder.js +6 -0
  64. package/dist/components/limebb-lime-query-filter-comparison.js +1 -1
  65. package/dist/components/limebb-lime-query-filter-expression.js +1 -1
  66. package/dist/components/limebb-lime-query-filter-group.d.ts +11 -0
  67. package/dist/components/limebb-lime-query-filter-group.js +6 -0
  68. package/dist/components/limebb-lime-query-filter-not.js +1 -1
  69. package/dist/components/limebb-lime-query-filter-or.js +118 -1
  70. package/dist/components/limebb-locale-picker.js +1 -1
  71. package/dist/components/limebb-mention-group-counter.js +2 -2
  72. package/dist/components/limebb-percentage-visualizer.js +2 -2
  73. package/dist/components/limebb-text-editor.js +1 -1
  74. package/dist/components/limebb-trend-indicator.js +1 -1
  75. package/dist/components/limetype-field.js +34 -2
  76. package/dist/components/live-docs-info.js +2 -2
  77. package/dist/components/notification-item.js +1 -1
  78. package/dist/components/summary-popover.js +3 -3
  79. package/dist/esm/{index.esm-d8fdeb18.js → index.esm-bb569663.js} +2 -1
  80. package/dist/esm/lime-crm-building-blocks.js +1 -1
  81. package/dist/esm/limebb-browser.entry.js +1 -1
  82. package/dist/esm/limebb-chat-item_2.entry.js +1 -1
  83. package/dist/esm/limebb-chat-list.entry.js +1 -1
  84. package/dist/esm/limebb-component-config.entry.js +1 -1
  85. package/dist/esm/limebb-component-picker.entry.js +1 -1
  86. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  87. package/dist/esm/limebb-date-picker.entry.js +1 -1
  88. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  89. package/dist/esm/limebb-feed.entry.js +1 -1
  90. package/dist/esm/limebb-info-tile.entry.js +1 -1
  91. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  92. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  93. package/dist/esm/limebb-lime-query-builder.entry.js +67 -178
  94. package/dist/esm/limebb-lime-query-filter-and.entry.js +76 -0
  95. package/dist/esm/{limebb-limetype-field_2.entry.js → limebb-lime-query-filter-builder_3.entry.js} +107 -6
  96. package/dist/esm/limebb-lime-query-filter-comparison_5.entry.js +697 -0
  97. package/dist/esm/limebb-lime-query-filter-expression.entry.js +41 -0
  98. package/dist/esm/limebb-lime-query-filter-or.entry.js +64 -0
  99. package/dist/esm/limebb-limeobject-file-viewer.entry.js +1 -1
  100. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  101. package/dist/esm/limebb-loader.entry.js +1 -1
  102. package/dist/esm/limebb-locale-picker.entry.js +2 -2
  103. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  104. package/dist/esm/limebb-mention.entry.js +1 -1
  105. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  106. package/dist/esm/limebb-notification-item.entry.js +2 -2
  107. package/dist/esm/limebb-notification-list.entry.js +1 -1
  108. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  109. package/dist/esm/limebb-text-editor.entry.js +3 -3
  110. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  111. package/dist/esm/{limetype-6e7552a7.js → limetype-c0e041f7.js} +1 -1
  112. package/dist/esm/loader.js +1 -1
  113. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  114. package/dist/lime-crm-building-blocks/{p-a1818969.entry.js → p-03af0e66.entry.js} +1 -1
  115. package/dist/lime-crm-building-blocks/{p-f402184f.entry.js → p-098ee6c1.entry.js} +1 -1
  116. package/dist/lime-crm-building-blocks/{p-42e52b50.entry.js → p-1be0eec7.entry.js} +1 -1
  117. package/dist/lime-crm-building-blocks/{p-2aa18c2b.entry.js → p-206575e4.entry.js} +1 -1
  118. package/dist/lime-crm-building-blocks/p-20bfca36.js +1 -0
  119. package/dist/lime-crm-building-blocks/p-24aeb928.entry.js +1 -0
  120. package/dist/lime-crm-building-blocks/{p-82d33d43.entry.js → p-2faaacbc.entry.js} +1 -1
  121. package/dist/lime-crm-building-blocks/{p-d4016891.entry.js → p-2fdcb868.entry.js} +1 -1
  122. package/dist/lime-crm-building-blocks/{p-f52125a0.entry.js → p-3122ea05.entry.js} +1 -1
  123. package/dist/lime-crm-building-blocks/{p-baf4e428.entry.js → p-3175883d.entry.js} +1 -1
  124. package/dist/lime-crm-building-blocks/{p-8c8b7115.entry.js → p-32534eb7.entry.js} +1 -1
  125. package/dist/lime-crm-building-blocks/{p-6c1146ca.entry.js → p-36ea13c0.entry.js} +1 -1
  126. package/dist/lime-crm-building-blocks/p-422f6d51.entry.js +1 -0
  127. package/dist/lime-crm-building-blocks/{p-1fba0ade.js → p-4838284a.js} +1 -1
  128. package/dist/lime-crm-building-blocks/{p-5e4ba110.entry.js → p-5464f0de.entry.js} +1 -1
  129. package/dist/lime-crm-building-blocks/{p-e9d23ef7.entry.js → p-569c86b5.entry.js} +1 -1
  130. package/dist/lime-crm-building-blocks/{p-90e1716a.entry.js → p-5dc574a3.entry.js} +1 -1
  131. package/dist/lime-crm-building-blocks/{p-00da9b24.entry.js → p-631ca5a5.entry.js} +1 -1
  132. package/dist/lime-crm-building-blocks/p-67dbaa4c.entry.js +1 -0
  133. package/dist/lime-crm-building-blocks/p-6d119dab.entry.js +1 -0
  134. package/dist/lime-crm-building-blocks/{p-beb0d164.entry.js → p-7271f47a.entry.js} +1 -1
  135. package/dist/lime-crm-building-blocks/{p-34357744.entry.js → p-9031f136.entry.js} +1 -1
  136. package/dist/lime-crm-building-blocks/p-91732502.entry.js +1 -0
  137. package/dist/lime-crm-building-blocks/{p-8c4eb49f.entry.js → p-93cadc1e.entry.js} +1 -1
  138. package/dist/lime-crm-building-blocks/{p-3932077b.entry.js → p-9cac4de2.entry.js} +1 -1
  139. package/dist/lime-crm-building-blocks/{p-79d4668a.entry.js → p-a200954f.entry.js} +1 -1
  140. package/dist/lime-crm-building-blocks/p-b198194a.entry.js +1 -0
  141. package/dist/lime-crm-building-blocks/{p-d89c44ad.entry.js → p-b9b954d9.entry.js} +1 -1
  142. package/dist/lime-crm-building-blocks/{p-3a620226.entry.js → p-cfa1a4ad.entry.js} +1 -1
  143. package/dist/lime-crm-building-blocks/{p-ef8a5266.entry.js → p-e8946134.entry.js} +1 -1
  144. package/dist/lime-crm-building-blocks/{p-9d9f25da.entry.js → p-eb81bceb.entry.js} +1 -1
  145. package/dist/lime-crm-building-blocks/{p-50d3d61a.entry.js → p-ee1b00b9.entry.js} +1 -1
  146. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +5 -4
  147. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-builder.d.ts +50 -0
  148. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +6 -4
  149. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +10 -14
  150. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +60 -0
  151. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-not.d.ts +4 -4
  152. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +5 -4
  153. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +1 -0
  154. package/dist/types/components/lime-query-builder/lime-query.types.d.ts +2 -1
  155. package/dist/types/components.d.ts +293 -65
  156. package/package.json +1 -1
  157. package/dist/cjs/isEqual-e77cce75.js +0 -37
  158. package/dist/cjs/lime-query.types-bcb63a22.js +0 -61
  159. package/dist/cjs/limebb-lime-query-filter-and_5.cjs.entry.js +0 -278
  160. package/dist/cjs/limebb-lime-query-value-input.cjs.entry.js +0 -239
  161. package/dist/cjs/limebb-property-selector.cjs.entry.js +0 -234
  162. package/dist/components/isEqual.js +0 -35
  163. package/dist/components/lime-query-filter-and.js +0 -408
  164. package/dist/esm/isEqual-57d0c223.js +0 -35
  165. package/dist/esm/lime-query.types-f72355e1.js +0 -59
  166. package/dist/esm/limebb-lime-query-filter-and_5.entry.js +0 -270
  167. package/dist/esm/limebb-lime-query-value-input.entry.js +0 -235
  168. package/dist/esm/limebb-property-selector.entry.js +0 -230
  169. package/dist/lime-crm-building-blocks/p-02c0cc04.entry.js +0 -1
  170. package/dist/lime-crm-building-blocks/p-0957b2a6.entry.js +0 -1
  171. package/dist/lime-crm-building-blocks/p-3b0a15ec.js +0 -1
  172. package/dist/lime-crm-building-blocks/p-5a6d2e7f.js +0 -1
  173. package/dist/lime-crm-building-blocks/p-60971d64.js +0 -1
  174. package/dist/lime-crm-building-blocks/p-70a28b93.entry.js +0 -1
  175. package/dist/lime-crm-building-blocks/p-96beaabc.entry.js +0 -1
  176. package/dist/lime-crm-building-blocks/p-f99c611d.entry.js +0 -1
@@ -0,0 +1,697 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-96dd111f.js';
2
+ import { Z as Zt, T as Te } from './index.esm-bb569663.js';
3
+ import { a as getPropertyFromPath, g as getNormalizedProperties } from './property-resolution-fde2375e.js';
4
+
5
+ const limeQueryFilterComparisonCss = ".expression-container{display:flex;flex-direction:row;align-items:flex-start;gap:1rem;flex-wrap:wrap}.expression-container>*{flex-grow:2;width:30%;max-width:calc(100% - 3.25rem)}.expression-container>.operator{flex-grow:1;width:calc(30% + 1rem);min-width:4rem}.expression-container>.remove{flex-grow:0;width:auto;margin-left:auto}@media (max-width: 768px){.expression-container{flex-direction:column}.expression-container>*{width:100%;max-width:100%}.expression-container>.operator{width:100%}.expression-container>.remove{margin-left:0;align-self:flex-end}}";
6
+ const LimebbLimeQueryFilterComparisonStyle0 = limeQueryFilterComparisonCss;
7
+
8
+ const LIME_QUERY_OPERATORS = [
9
+ { value: Zt.EQUALS, label: 'Equals', icon: 'equals' },
10
+ { value: Zt.NOT_EQUALS, label: 'Not Equals', icon: 'not-equal' },
11
+ {
12
+ value: Zt.GREATER,
13
+ label: 'Greater Than',
14
+ icon: 'greater-than',
15
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
16
+ },
17
+ {
18
+ value: Zt.GREATER_OR_EQUAL,
19
+ label: 'Greater or Equal',
20
+ icon: 'greater-or-equal',
21
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
22
+ },
23
+ {
24
+ value: Zt.LESS,
25
+ label: 'Less Than',
26
+ icon: 'less-than',
27
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
28
+ },
29
+ {
30
+ value: Zt.LESS_OR_EQUAL,
31
+ label: 'Less or Equal',
32
+ icon: 'less-or-equal',
33
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
34
+ },
35
+ { value: Zt.IN, label: 'In List', icon: 'list' },
36
+ {
37
+ value: Zt.LIKE,
38
+ label: 'Contains',
39
+ icon: '-lime-filter-contain',
40
+ applicableTypes: ['string', 'text'],
41
+ },
42
+ {
43
+ value: Zt.BEGINS,
44
+ label: 'Begins With',
45
+ icon: '-lime-filter-begin',
46
+ applicableTypes: ['string', 'text'],
47
+ },
48
+ {
49
+ value: Zt.ENDS,
50
+ label: 'Ends With',
51
+ icon: '-lime-filter-end',
52
+ applicableTypes: ['string', 'text'],
53
+ },
54
+ ];
55
+ const LimeQueryFilterComparisonComponent = class {
56
+ constructor(hostRef) {
57
+ registerInstance(this, hostRef);
58
+ this.expressionChange = createEvent(this, "expressionChange", 7);
59
+ this.handlePropertyChange = (event) => {
60
+ event.stopPropagation();
61
+ this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { key: event.detail }));
62
+ };
63
+ this.handleOperatorChange = (event) => {
64
+ event.stopPropagation();
65
+ // TODO: Clear value when switching between IN and other operators
66
+ // since array values are incompatible with single-value operators
67
+ this.expressionChange.emit({
68
+ key: this.expression.key,
69
+ op: event.detail.value,
70
+ exp: this.expression.exp,
71
+ });
72
+ };
73
+ this.handleValueChange = (event) => {
74
+ event.stopPropagation();
75
+ this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { exp: event.detail }));
76
+ };
77
+ this.removeExpression = () => {
78
+ this.expressionChange.emit(undefined);
79
+ };
80
+ }
81
+ render() {
82
+ return (h("div", { key: '668e0f05bdb1fb25ffd652ea650c34e5431a3332', class: "expression" }, this.label && h("limel-header", { key: '5034070b58afe31cf90699dd2a27f884e647f540', heading: this.label }), h("div", { key: '14a2b1270e5e6d7e158e29ebc5f61051e5670e80', class: "expression-container" }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput(), h("limel-icon-button", { key: 'b69bde6e88c40d2623ef015794db28cec3676c73', class: "remove", icon: "trash", label: "Remove condition", onClick: this.removeExpression }))));
83
+ }
84
+ renderPropertySelector() {
85
+ return (h("limebb-property-selector", { platform: this.platform, context: this.context, label: "Property", limetype: this.limetype, value: this.expression.key, required: true, onChange: this.handlePropertyChange }));
86
+ }
87
+ renderOperator() {
88
+ const operatorHasBeenSet = !!this.expression.op;
89
+ const options = LIME_QUERY_OPERATORS.map((op) => ({
90
+ text: op.label,
91
+ value: op.value,
92
+ icon: op.icon ? { name: op.icon } : undefined,
93
+ }));
94
+ const selectedOption = options.find((o) => o.value === this.expression.op);
95
+ return (h("limel-select", { class: "operator", label: "Operator", value: selectedOption, options: options, disabled: !operatorHasBeenSet && !this.expression.key, onChange: this.handleOperatorChange }));
96
+ }
97
+ renderValueInput() {
98
+ if (!this.expression.op) {
99
+ return null;
100
+ }
101
+ return (h("limebb-lime-query-value-input", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, propertyPath: this.expression.key, operator: this.expression.op, value: this.expression.exp, onChange: this.handleValueChange }));
102
+ }
103
+ };
104
+ LimeQueryFilterComparisonComponent.style = LimebbLimeQueryFilterComparisonStyle0;
105
+
106
+ const limeQueryFilterGroupCss = "@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 .clickable-header{cursor:pointer;user-select:none}.expression .clickable-header:hover{background-color:rgb(var(--contrast-200))}.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;display:flex;gap:0.5rem}";
107
+ const LimebbLimeQueryFilterGroupStyle0 = limeQueryFilterGroupCss;
108
+
109
+ const LimeQueryFilterGroupComponent = class {
110
+ constructor(hostRef) {
111
+ registerInstance(this, hostRef);
112
+ this.expressionChange = createEvent(this, "expressionChange", 7);
113
+ 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) })));
114
+ this.handleToggleOperator = () => {
115
+ const newOperator = this.expression.op === Zt.AND ? Zt.OR : Zt.AND;
116
+ this.expressionChange.emit({
117
+ op: newOperator,
118
+ exp: this.expression.exp,
119
+ });
120
+ };
121
+ this.handleAddChildExpression = () => {
122
+ // Always add a new comparison directly to the list
123
+ const newChild = {
124
+ key: '',
125
+ op: Zt.EQUALS,
126
+ exp: '',
127
+ };
128
+ this.expressionChange.emit({
129
+ op: this.expression.op,
130
+ exp: [...this.expression.exp, newChild],
131
+ });
132
+ };
133
+ this.handleAddChildGroup = () => {
134
+ // Add a nested group of the opposite type
135
+ const oppositeOp = this.expression.op === Zt.AND ? Zt.OR : Zt.AND;
136
+ const newChild = {
137
+ op: oppositeOp,
138
+ exp: [
139
+ {
140
+ key: '',
141
+ op: Zt.EQUALS,
142
+ exp: '',
143
+ },
144
+ ],
145
+ };
146
+ this.expressionChange.emit({
147
+ op: this.expression.op,
148
+ exp: [...this.expression.exp, newChild],
149
+ });
150
+ };
151
+ this.handleExpressionChange = (updatedChildIndex) => (event) => {
152
+ event.stopPropagation();
153
+ const updatedExpression = event.detail;
154
+ const expressions = [...this.expression.exp];
155
+ if (updatedExpression === undefined) {
156
+ // Deletion - remove the child and potentially unwrap
157
+ expressions.splice(updatedChildIndex, 1);
158
+ if (expressions.length === 0) {
159
+ this.expressionChange.emit(undefined);
160
+ return;
161
+ }
162
+ if (expressions.length === 1) {
163
+ // Unwrap when only one child remains after deletion
164
+ this.expressionChange.emit(expressions[0]);
165
+ return;
166
+ }
167
+ }
168
+ else {
169
+ // Update - replace the child, don't unwrap
170
+ expressions[updatedChildIndex] = updatedExpression;
171
+ }
172
+ this.expressionChange.emit({
173
+ op: this.expression.op,
174
+ exp: expressions,
175
+ });
176
+ };
177
+ }
178
+ render() {
179
+ const subheading = this.getSubheading();
180
+ return (h("div", { key: '43a1d99fd896e3ad49dd97594e54bccaf74c3aa0', class: "expression" }, subheading && (h("limel-header", { key: '534eb0a3db2f0194e8a28e2fb071beb545f38458', subheading: subheading, onClick: this.handleToggleOperator, class: "clickable-header" })), h("ul", { key: '9d29d98ab034bf2878e7dc19828bc045dbdd492f' }, this.expression.exp.map(this.renderChildExpression), h("li", { key: '44b266c8aeb390b8a68b3e08a51a0760a6421f93', class: "add-button" }, this.renderAddButton(), this.renderAddGroupButton()))));
181
+ }
182
+ getSubheading() {
183
+ if (this.expression.exp.length <= 1) {
184
+ return '';
185
+ }
186
+ return this.expression.op === Zt.AND
187
+ ? 'All of these conditions are true'
188
+ : 'Any of these conditions are true';
189
+ }
190
+ renderAddButton() {
191
+ const label = this.getAddButtonLabel();
192
+ return (h("limel-button", { label: label, icon: "plus_math", onClick: this.handleAddChildExpression }));
193
+ }
194
+ renderAddGroupButton() {
195
+ const label = this.getAddGroupButtonLabel();
196
+ return (h("limel-button", { label: label, icon: "tree_structure", onClick: this.handleAddChildGroup }));
197
+ }
198
+ getAddButtonLabel() {
199
+ const isAnd = this.expression.op === Zt.AND;
200
+ if (this.expression.exp.length === 0) {
201
+ return 'Add a condition';
202
+ }
203
+ return isAnd ? 'Add another condition' : 'Add alternative';
204
+ }
205
+ getAddGroupButtonLabel() {
206
+ const isAnd = this.expression.op === Zt.AND;
207
+ if (this.expression.exp.length === 0) {
208
+ return 'Add a group';
209
+ }
210
+ return isAnd ? 'Add another group' : 'Add alternative group';
211
+ }
212
+ };
213
+ LimeQueryFilterGroupComponent.style = LimebbLimeQueryFilterGroupStyle0;
214
+
215
+ const limeQueryFilterNotCss = "@charset \"UTF-8\";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem;padding:1rem;border-left:0.25rem solid rgb(var(--contrast-400));background-color:rgb(var(--contrast-100))}";
216
+ const LimebbLimeQueryFilterNotStyle0 = limeQueryFilterNotCss;
217
+
218
+ const LimeQueryFilterNotComponent = class {
219
+ constructor(hostRef) {
220
+ registerInstance(this, hostRef);
221
+ this.expressionChange = createEvent(this, "expressionChange", 7);
222
+ this.handleExpressionChange = (event) => {
223
+ var _a;
224
+ event.stopPropagation();
225
+ const updatedExpression = (_a = event.detail) !== null && _a !== void 0 ? _a : undefined;
226
+ if (updatedExpression === undefined) {
227
+ this.expressionChange.emit(undefined);
228
+ return;
229
+ }
230
+ this.expressionChange.emit({
231
+ op: Zt.NOT,
232
+ exp: updatedExpression,
233
+ });
234
+ };
235
+ }
236
+ render() {
237
+ return (h("div", { key: 'f1dfd7fd4ec7dc1873841d1c8b3d2bb6677634fd', class: "expression" }, this.label && h("limel-header", { key: '91e1b754f6e45c70f49bf2a770898a590defaf22', heading: this.label }), h("limebb-lime-query-filter-expression", { key: 'bf42f3c71521a413e5ecc49a8e0d6401b34384a2', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
238
+ }
239
+ };
240
+ LimeQueryFilterNotComponent.style = LimebbLimeQueryFilterNotStyle0;
241
+
242
+ const limeQueryValueInputCss = ":host{display:block}.value-input-container{display:flex;flex-direction:row;align-items:flex-start;gap:0.5rem;width:100%}.mode-toggle{flex-shrink:0;margin-top:0.5rem;opacity:0.7;transition:opacity 0.2s ease}.mode-toggle:hover{opacity:1}.placeholder-input{flex-grow:1;display:flex;flex-direction:column;gap:0.5rem}.placeholder-preview{display:flex;align-items:center;gap:0.5rem;padding:0.5rem;background-color:rgba(var(--color-blue-light), 0.1);border-radius:var(--border-radius-small);font-size:0.875rem;color:rgb(var(--color-blue-default));border-left:3px solid rgb(var(--color-blue-default))}.placeholder-preview limel-icon{flex-shrink:0;color:rgb(var(--color-blue-default))}.placeholder-preview span{font-family:var(--font-monospace);word-break:break-all}";
243
+ const LimebbLimeQueryValueInputStyle0 = limeQueryValueInputCss;
244
+
245
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
246
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
247
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
248
+ r = Reflect.decorate(decorators, target, key, desc);
249
+ else
250
+ for (var i = decorators.length - 1; i >= 0; i--)
251
+ if (d = decorators[i])
252
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
253
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
254
+ };
255
+ const LimeQueryValueInput = class {
256
+ constructor(hostRef) {
257
+ registerInstance(this, hostRef);
258
+ this.change = createEvent(this, "change", 7);
259
+ /**
260
+ * Optional label for the input
261
+ */
262
+ this.label = 'Value';
263
+ this.inputMode = 'value';
264
+ this.handleTextChange = (event) => {
265
+ event.stopPropagation();
266
+ // Try to parse as number for number inputs
267
+ const value = event.detail;
268
+ const numValue = Number(value);
269
+ if (!Number.isNaN(numValue) && value !== '') {
270
+ this.change.emit(numValue);
271
+ }
272
+ else {
273
+ this.change.emit(value);
274
+ }
275
+ };
276
+ this.handleSelectChange = (event) => {
277
+ event.stopPropagation();
278
+ const detail = event.detail;
279
+ if (Array.isArray(detail)) {
280
+ this.change.emit(detail.map((o) => o.value));
281
+ }
282
+ else {
283
+ this.change.emit(detail === null || detail === void 0 ? void 0 : detail.value);
284
+ }
285
+ };
286
+ this.handleBooleanChange = (event) => {
287
+ event.stopPropagation();
288
+ const detail = event.detail;
289
+ if (!Array.isArray(detail)) {
290
+ // Convert string back to boolean
291
+ this.change.emit((detail === null || detail === void 0 ? void 0 : detail.value) === 'true');
292
+ }
293
+ };
294
+ this.handleDateChange = (event) => {
295
+ event.stopPropagation();
296
+ // Convert Date to ISO string for storage
297
+ const date = event.detail;
298
+ this.change.emit(date ? date.toISOString() : null);
299
+ };
300
+ this.handleMultiValueChange = (event) => {
301
+ event.stopPropagation();
302
+ // Split by comma and trim whitespace
303
+ const values = event.detail
304
+ .split(',')
305
+ .map((v) => v.trim())
306
+ .filter((v) => v.length > 0);
307
+ this.change.emit(values);
308
+ };
309
+ this.handleModeToggle = () => {
310
+ if (this.inputMode === 'value') {
311
+ // Switching to placeholder mode
312
+ this.inputMode = 'placeholder';
313
+ // Emit placeholder value (empty initially)
314
+ this.change.emit('%activeObject%');
315
+ }
316
+ else {
317
+ // Switching to value mode
318
+ this.inputMode = 'value';
319
+ // Emit empty value
320
+ this.change.emit('');
321
+ }
322
+ };
323
+ this.handlePlaceholderPropertyChange = (event) => {
324
+ event.stopPropagation();
325
+ const propertyPath = event.detail;
326
+ const placeholderValue = this.buildPlaceholderValue(propertyPath);
327
+ this.change.emit(placeholderValue);
328
+ };
329
+ }
330
+ componentWillLoad() {
331
+ // Detect if the current value is a placeholder
332
+ if (this.isPlaceholder(this.value)) {
333
+ this.inputMode = 'placeholder';
334
+ }
335
+ }
336
+ componentWillUpdate() {
337
+ // Update mode if value changes externally
338
+ if (this.isPlaceholder(this.value) &&
339
+ this.inputMode !== 'placeholder') {
340
+ this.inputMode = 'placeholder';
341
+ }
342
+ else if (!this.isPlaceholder(this.value) &&
343
+ this.inputMode === 'placeholder') {
344
+ this.inputMode = 'value';
345
+ }
346
+ }
347
+ isPlaceholder(value) {
348
+ return typeof value === 'string' && value.startsWith('%activeObject%');
349
+ }
350
+ parsePlaceholderPath(value) {
351
+ if (!this.isPlaceholder(value)) {
352
+ return '';
353
+ }
354
+ // Extract path after %activeObject%. (e.g., "%activeObject%.company.name" → "company.name")
355
+ return value.replace(/^%activeObject%\.?/, '');
356
+ }
357
+ buildPlaceholderValue(propertyPath) {
358
+ if (!propertyPath) {
359
+ return '%activeObject%';
360
+ }
361
+ return `%activeObject%.${propertyPath}`;
362
+ }
363
+ render() {
364
+ if (!this.operator) {
365
+ return null;
366
+ }
367
+ return (h("div", { class: "value-input-container" }, this.renderModeToggle(), this.inputMode === 'placeholder'
368
+ ? this.renderPlaceholderInput()
369
+ : this.renderValueInputByType()));
370
+ }
371
+ renderModeToggle() {
372
+ // Only show toggle if activeLimetype is set
373
+ if (!this.activeLimetype) {
374
+ return null;
375
+ }
376
+ const isPlaceholderMode = this.inputMode === 'placeholder';
377
+ const buttonLabel = isPlaceholderMode ? 'Use Value' : 'Use Placeholder';
378
+ const buttonIcon = isPlaceholderMode ? 'text' : 'link';
379
+ return (h("limel-icon-button", { class: "mode-toggle", icon: buttonIcon, label: buttonLabel, onClick: this.handleModeToggle }));
380
+ }
381
+ renderPlaceholderInput() {
382
+ const propertyPath = this.parsePlaceholderPath(this.value);
383
+ return (h("div", { class: "placeholder-input" }, h("limebb-property-selector", { platform: this.platform, context: this.context, limetype: this.activeLimetype, label: "Active Object Property", value: propertyPath, required: false, helperText: "Select property from the active object", onChange: this.handlePlaceholderPropertyChange }), this.isPlaceholder(this.value) && (h("div", { class: "placeholder-preview" }, h("limel-icon", { name: "info", size: "small" }), h("span", null, "Placeholder: ", this.value)))));
384
+ }
385
+ renderValueInputByType() {
386
+ // Special handling for IN operator - always use chip set for arrays
387
+ if (this.operator === 'IN') {
388
+ return this.renderMultiValueInput();
389
+ }
390
+ const property = this.getProperty();
391
+ if (!property) {
392
+ return this.renderTextInput();
393
+ }
394
+ switch (property.type) {
395
+ case 'integer':
396
+ case 'decimal': {
397
+ return this.renderNumberInput(property.type);
398
+ }
399
+ case 'yesno': {
400
+ return this.renderBooleanInput();
401
+ }
402
+ case 'option': {
403
+ return this.renderOptionInput(property);
404
+ }
405
+ case 'date': {
406
+ return this.renderDateInput();
407
+ }
408
+ case 'time': {
409
+ return this.renderTimeInput();
410
+ }
411
+ default: {
412
+ return this.renderTextInput();
413
+ }
414
+ }
415
+ }
416
+ renderTextInput() {
417
+ var _a;
418
+ return (h("limel-input-field", { label: this.label, value: ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) || '', placeholder: "Enter value", onChange: this.handleTextChange }));
419
+ }
420
+ renderNumberInput(type) {
421
+ var _a;
422
+ const step = type === 'integer' ? 1 : 0.01;
423
+ return (h("limel-input-field", { label: this.label, type: "number", value: ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) || '', step: step, onChange: this.handleTextChange }));
424
+ }
425
+ renderBooleanInput() {
426
+ const options = [
427
+ { text: 'True', value: 'true' },
428
+ { text: 'False', value: 'false' },
429
+ ];
430
+ const valueAsString = this.value === true || this.value === 'true' ? 'true' : 'false';
431
+ const selectedOption = options.find((o) => o.value === valueAsString);
432
+ return (h("limel-select", { label: this.label, options: options, value: selectedOption, onChange: this.handleBooleanChange }));
433
+ }
434
+ renderOptionInput(property) {
435
+ if (!property.options || property.options.length === 0) {
436
+ return this.renderTextInput();
437
+ }
438
+ const options = property.options.map((opt) => ({
439
+ text: opt.text || opt.key,
440
+ value: opt.key,
441
+ }));
442
+ const selectedOption = options.find((o) => o.value === this.value);
443
+ return (h("limel-select", { label: this.label, options: options, value: selectedOption, onChange: this.handleSelectChange }));
444
+ }
445
+ renderDateInput() {
446
+ // Convert string to Date if needed
447
+ const dateValue = typeof this.value === 'string' ? new Date(this.value) : this.value;
448
+ return (h("limel-date-picker", { label: this.label, value: dateValue, onChange: this.handleDateChange }));
449
+ }
450
+ renderTimeInput() {
451
+ return (h("limel-input-field", { label: this.label, type: "time", value: this.value || '', onChange: this.handleTextChange }));
452
+ }
453
+ renderMultiValueInput() {
454
+ // For IN operator, allow comma-separated values
455
+ const displayValue = Array.isArray(this.value)
456
+ ? this.value.join(', ')
457
+ : this.value || '';
458
+ return (h("limel-input-field", { label: this.label + ' (comma-separated)', value: displayValue, placeholder: "e.g., won, lost, tender", onChange: this.handleMultiValueChange }));
459
+ }
460
+ getProperty() {
461
+ if (!this.limetypes || !this.limetype || !this.propertyPath) {
462
+ return;
463
+ }
464
+ return getPropertyFromPath(this.limetypes, this.limetype, this.propertyPath);
465
+ }
466
+ };
467
+ __decorate$1([
468
+ Te()
469
+ ], LimeQueryValueInput.prototype, "limetypes", void 0);
470
+ LimeQueryValueInput.style = LimebbLimeQueryValueInputStyle0;
471
+
472
+ const propertySelectorCss = ":host(limebb-property-selector){display:block}limel-menu{display:block;width:100%}";
473
+ const LimebbPropertySelectorStyle0 = propertySelectorCss;
474
+
475
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
476
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
477
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
478
+ r = Reflect.decorate(decorators, target, key, desc);
479
+ else
480
+ for (var i = decorators.length - 1; i >= 0; i--)
481
+ if (d = decorators[i])
482
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
483
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
484
+ };
485
+ const PropertySelector = class {
486
+ constructor(hostRef) {
487
+ registerInstance(this, hostRef);
488
+ this.change = createEvent(this, "change", 7);
489
+ /**
490
+ * Label for the input
491
+ */
492
+ this.label = 'Property';
493
+ /**
494
+ * Whether the field is required
495
+ */
496
+ this.required = false;
497
+ this.isOpen = false;
498
+ this.navigationPath = '';
499
+ this.menuItems = [];
500
+ this.handleChipSetWrapperClick = (event) => {
501
+ // Stop all clicks on the chip-set from bubbling
502
+ // This prevents the menu from opening when clicking chip remove buttons
503
+ event.stopPropagation();
504
+ };
505
+ this.handleChipSetFocus = () => {
506
+ // Open menu when the chip-set input receives focus
507
+ // This happens when user clicks to type/edit
508
+ if (!this.isOpen) {
509
+ this.navigationPath = this.value || '';
510
+ this.loadMenuItems();
511
+ this.isOpen = true;
512
+ }
513
+ };
514
+ this.handleSelect = (event) => {
515
+ event.stopPropagation();
516
+ const selectedPath = event.detail.value;
517
+ if (!selectedPath) {
518
+ return;
519
+ }
520
+ // Check if this is a complete path (leaf property, not a relation)
521
+ const property = getPropertyFromPath(this.limetypes, this.limetype, selectedPath);
522
+ if (property === null || property === void 0 ? void 0 : property.relation) {
523
+ // This is a relation - update navigation but don't emit
524
+ this.navigationPath = selectedPath;
525
+ }
526
+ else {
527
+ // This is a leaf property - emit and close
528
+ this.change.emit(selectedPath);
529
+ this.isOpen = false;
530
+ this.navigationPath = '';
531
+ }
532
+ };
533
+ this.handleNavigateMenu = (event) => {
534
+ var _a;
535
+ event.stopPropagation();
536
+ if ((_a = event.detail) === null || _a === void 0 ? void 0 : _a.value) {
537
+ // Update navigation path when drilling down
538
+ this.navigationPath = event.detail.value;
539
+ }
540
+ };
541
+ this.handleCancel = () => {
542
+ this.isOpen = false;
543
+ this.navigationPath = '';
544
+ };
545
+ this.handleChipSetChange = (event) => {
546
+ event.stopPropagation();
547
+ const detail = event.detail;
548
+ // Handle both single chip and array of chips
549
+ if (!detail) {
550
+ // Clear all was clicked
551
+ this.change.emit('');
552
+ this.navigationPath = '';
553
+ return;
554
+ }
555
+ // Convert to array if it's a single chip
556
+ const chips = Array.isArray(detail) ? detail : [detail];
557
+ if (chips.length === 0) {
558
+ // All chips removed
559
+ this.change.emit('');
560
+ this.navigationPath = '';
561
+ }
562
+ else {
563
+ // A chip was removed - emit the last remaining chip's value
564
+ const lastChip = chips.at(-1);
565
+ if (lastChip) {
566
+ this.change.emit(lastChip.value);
567
+ }
568
+ this.navigationPath = '';
569
+ }
570
+ };
571
+ }
572
+ render() {
573
+ if (!this.limetype || !this.limetypes) {
574
+ return null;
575
+ }
576
+ const chips = this.getChipsForPath(this.navigationPath || this.value || '');
577
+ return (h("limel-menu", { items: this.menuItems, open: this.isOpen, emptyResultMessage: "No available properties", surfaceWidth: "inherit-from-trigger", openDirection: "bottom-end", onSelect: this.handleSelect, onNavigateMenu: this.handleNavigateMenu, onCancel: this.handleCancel }, h("div", { slot: "trigger" }, h("div", { onClick: this.handleChipSetWrapperClick }, h("limel-chip-set", { type: "input", label: this.label, value: chips, required: this.required, helperText: this.helperText, delimiter: "\u203A", maxItems: 1, onChange: this.handleChipSetChange, onFocus: this.handleChipSetFocus })))));
578
+ }
579
+ loadMenuItems() {
580
+ // Get the limetype we're currently navigating in
581
+ const currentLimetype = this.getCurrentLimetype();
582
+ if (!currentLimetype) {
583
+ this.menuItems = [];
584
+ return;
585
+ }
586
+ this.menuItems = this.createMenuItems(currentLimetype, '');
587
+ }
588
+ getCurrentLimetype() {
589
+ if (!this.navigationPath) {
590
+ return this.limetypes[this.limetype];
591
+ }
592
+ // Get the limetype at the current navigation path
593
+ const property = getPropertyFromPath(this.limetypes, this.limetype, this.navigationPath);
594
+ if (property === null || property === void 0 ? void 0 : property.relation) {
595
+ return property.relation.getLimetype();
596
+ }
597
+ return this.limetypes[this.limetype];
598
+ }
599
+ createMenuItems(limetype, pathPrefix) {
600
+ const results = [];
601
+ if (!limetype) {
602
+ return results;
603
+ }
604
+ const normalizedProperties = getNormalizedProperties(limetype);
605
+ for (const [propName, property] of Object.entries(normalizedProperties)) {
606
+ // Skip hasMany and hasAndBelongsToMany relations
607
+ if (property.type === 'hasmany' ||
608
+ property.type === 'hasandbelongstomany') {
609
+ continue;
610
+ }
611
+ const fullPath = pathPrefix
612
+ ? `${pathPrefix}.${propName}`
613
+ : propName;
614
+ const isRelation = !!property.relation;
615
+ let items;
616
+ if (isRelation && property.relation) {
617
+ // Create submenu for relation (only belongsto at this point)
618
+ const relatedLimetype = property.relation.getLimetype();
619
+ if (relatedLimetype) {
620
+ items = async () => this.createMenuItems(relatedLimetype, fullPath);
621
+ }
622
+ }
623
+ results.push({
624
+ text: property.localname || propName,
625
+ secondaryText: this.getSecondaryText(property),
626
+ icon: this.getIconForProperty(property),
627
+ value: fullPath,
628
+ items: items,
629
+ });
630
+ }
631
+ if (results.length === 0) {
632
+ return [
633
+ {
634
+ text: 'No available properties',
635
+ value: '',
636
+ disabled: true,
637
+ },
638
+ ];
639
+ }
640
+ return results;
641
+ }
642
+ getSecondaryText(property) {
643
+ var _a;
644
+ if (property.relation) {
645
+ const relatedLimetype = property.relation.getLimetype();
646
+ return ((_a = relatedLimetype === null || relatedLimetype === void 0 ? void 0 : relatedLimetype.localname) === null || _a === void 0 ? void 0 : _a.singular) || 'Object';
647
+ }
648
+ // Return the property type as the secondary text
649
+ return property.type.charAt(0).toUpperCase() + property.type.slice(1);
650
+ }
651
+ getIconForProperty(property) {
652
+ if (property.relation) {
653
+ return {
654
+ name: 'link',
655
+ color: 'rgb(var(--color-sky-default))',
656
+ };
657
+ }
658
+ // Use generic property icon
659
+ return {
660
+ name: 'decision',
661
+ color: 'rgb(var(--color-gray-default))',
662
+ };
663
+ }
664
+ getChipsForPath(path) {
665
+ if (!path) {
666
+ return [];
667
+ }
668
+ const parts = path.split('.');
669
+ const chips = [];
670
+ let currentLimetype = this.limetypes[this.limetype];
671
+ let currentPath = '';
672
+ for (const part of parts) {
673
+ currentPath = currentPath ? `${currentPath}.${part}` : part;
674
+ // Use getNormalizedProperties to include _id and _timestamp
675
+ const normalizedProperties = getNormalizedProperties(currentLimetype);
676
+ const property = normalizedProperties[part];
677
+ if (property) {
678
+ chips.push({
679
+ id: currentPath,
680
+ text: property.localname || part,
681
+ icon: this.getIconForProperty(property),
682
+ value: currentPath,
683
+ });
684
+ if (property.relation) {
685
+ currentLimetype = property.relation.getLimetype();
686
+ }
687
+ }
688
+ }
689
+ return chips;
690
+ }
691
+ };
692
+ __decorate([
693
+ Te()
694
+ ], PropertySelector.prototype, "limetypes", void 0);
695
+ PropertySelector.style = LimebbPropertySelectorStyle0;
696
+
697
+ export { LimeQueryFilterComparisonComponent as limebb_lime_query_filter_comparison, LimeQueryFilterGroupComponent as limebb_lime_query_filter_group, LimeQueryFilterNotComponent as limebb_lime_query_filter_not, LimeQueryValueInput as limebb_lime_query_value_input, PropertySelector as limebb_property_selector };