@limetech/lime-crm-building-blocks 1.129.0 → 1.131.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 (331) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/filter-group-logic-Bwk6B784.js +136 -0
  3. package/dist/cjs/{index-C_OnxXhP.js → index-dBY184XR.js} +12 -0
  4. package/dist/cjs/{index.esm-g8gOl7RV.js → index.esm-DcWSoSRE.js} +2 -2
  5. package/dist/cjs/lime-crm-building-blocks.cjs.js +2 -2
  6. package/dist/cjs/lime-query-operators-Ci-RNshi.js +65 -0
  7. package/dist/cjs/{lime-query-validation-DTurSvtv.js → lime-query-validation-nql4N6Z8.js} +1 -1
  8. package/dist/cjs/limebb-alert-dialog.cjs.entry.js +2 -2
  9. package/dist/cjs/limebb-browser.cjs.entry.js +4 -4
  10. package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +6 -6
  11. package/dist/cjs/limebb-chat-list.cjs.entry.js +3 -3
  12. package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +2 -2
  13. package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +2 -2
  14. package/dist/cjs/limebb-component-config.cjs.entry.js +3 -3
  15. package/dist/cjs/limebb-component-picker.cjs.entry.js +2 -2
  16. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +4 -4
  17. package/dist/cjs/limebb-currency-picker.cjs.entry.js +3 -3
  18. package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +2 -2
  19. package/dist/cjs/limebb-data-cells.cjs.entry.js +2 -2
  20. package/dist/cjs/limebb-date-picker.cjs.entry.js +3 -3
  21. package/dist/cjs/limebb-date-range.cjs.entry.js +2 -2
  22. package/dist/cjs/limebb-document-chips.cjs.entry.js +2 -2
  23. package/dist/cjs/limebb-document-item.cjs.entry.js +3 -3
  24. package/dist/cjs/limebb-document-picker.cjs.entry.js +2 -2
  25. package/dist/cjs/limebb-empty-state.cjs.entry.js +1 -1
  26. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +2 -2
  27. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +3 -3
  28. package/dist/cjs/limebb-feed.cjs.entry.js +3 -3
  29. package/dist/cjs/limebb-icon-picker.cjs.entry.js +2 -2
  30. package/dist/cjs/limebb-info-tile-currency-format.cjs.entry.js +1 -1
  31. package/dist/cjs/limebb-info-tile-date-format.cjs.entry.js +1 -1
  32. package/dist/cjs/limebb-info-tile-decimal-format.cjs.entry.js +1 -1
  33. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +2 -2
  34. package/dist/cjs/limebb-info-tile-relative-date-format.cjs.entry.js +1 -1
  35. package/dist/cjs/limebb-info-tile-unit-format.cjs.entry.js +1 -1
  36. package/dist/cjs/limebb-info-tile.cjs.entry.js +4 -4
  37. package/dist/cjs/limebb-kanban-group.cjs.entry.js +3 -3
  38. package/dist/cjs/limebb-kanban-item.cjs.entry.js +3 -3
  39. package/dist/cjs/limebb-kanban.cjs.entry.js +1 -1
  40. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +4 -4
  41. package/dist/cjs/limebb-lime-query-filter-builder.cjs.entry.js +4 -8
  42. package/dist/cjs/{limebb-lime-query-filter-group_3.cjs.entry.js → limebb-lime-query-filter-comparison-editor_4.cjs.entry.js} +158 -187
  43. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +83 -121
  44. package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +5 -5
  45. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +3 -3
  46. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +4 -4
  47. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +2 -2
  48. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +2 -2
  49. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +3 -3
  50. package/dist/cjs/limebb-loader.cjs.entry.js +2 -2
  51. package/dist/cjs/limebb-locale-picker.cjs.entry.js +3 -3
  52. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +3 -3
  53. package/dist/cjs/limebb-mention.cjs.entry.js +2 -2
  54. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  55. package/dist/cjs/limebb-notification-item.cjs.entry.js +3 -3
  56. package/dist/cjs/limebb-notification-list.cjs.entry.js +2 -2
  57. package/dist/cjs/limebb-object-chip.cjs.entry.js +3 -3
  58. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +4 -4
  59. package/dist/cjs/limebb-property-selector.cjs.entry.js +42 -19
  60. package/dist/cjs/limebb-rule-arg-filter-editor.cjs.entry.js +2 -2
  61. package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +4 -4
  62. package/dist/cjs/limebb-rule-editor.cjs.entry.js +104 -12
  63. package/dist/cjs/limebb-rule-gate.cjs.entry.js +3 -3
  64. package/dist/cjs/limebb-text-editor-picker.cjs.entry.js +1 -1
  65. package/dist/cjs/limebb-text-editor.cjs.entry.js +4 -4
  66. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +3 -3
  67. package/dist/cjs/{limetype-DJNXULgk.js → limetype-CNjUGemK.js} +1 -1
  68. package/dist/cjs/loader.cjs.js +2 -2
  69. package/dist/cjs/{web-component-template-BWCutZB6.js → web-component-template-CZ0lPHIg.js} +1 -1
  70. package/dist/collection/collection-manifest.json +1 -0
  71. package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
  72. package/dist/collection/components/browser/browser.js +2 -2
  73. package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
  74. package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
  75. package/dist/collection/components/chat-list/chat-list.js +1 -1
  76. package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
  77. package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
  78. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
  79. package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
  80. package/dist/collection/components/currency-picker/currency-picker.js +1 -1
  81. package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
  82. package/dist/collection/components/date-picker/date-picker.js +1 -1
  83. package/dist/collection/components/date-range/date-range.js +1 -1
  84. package/dist/collection/components/document-chips/document-chips.js +1 -1
  85. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  86. package/dist/collection/components/document-picker/document-picker.js +1 -1
  87. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  88. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  89. package/dist/collection/components/feed/feed.js +1 -1
  90. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  91. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  92. package/dist/collection/components/info-tile/info-tile.js +1 -1
  93. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  94. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  95. package/dist/collection/components/lime-query-builder/expressions/filter-group-logic.js +75 -72
  96. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.js +2 -6
  97. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.css +12 -0
  98. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +231 -0
  99. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.css +2 -17
  100. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +91 -118
  101. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +9 -14
  102. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +105 -179
  103. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +93 -94
  104. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  105. package/dist/collection/components/lime-query-builder/expressions/lime-query-operators.js +60 -0
  106. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  107. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  108. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  109. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  110. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  111. package/dist/collection/components/lime-query-builder/property-selector/property-selector.js +39 -16
  112. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  113. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  114. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  115. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  116. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  117. package/dist/collection/components/rule-editor/chip-picker-view.js +2 -2
  118. package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +1 -1
  119. package/dist/collection/components/rule-editor/rule-editor.css +1 -0
  120. package/dist/collection/components/rule-editor/rule-editor.js +102 -10
  121. package/dist/collection/components/rule-editor/view-helpers.js +9 -0
  122. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  123. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  124. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  125. package/dist/collection/components/text-editor/text-editor.js +1 -1
  126. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  127. package/dist/components/chat-icon-list.js +1 -1
  128. package/dist/components/chat-item.js +1 -1
  129. package/dist/components/currency-picker.js +1 -1
  130. package/dist/components/date-picker.js +1 -1
  131. package/dist/components/document-item.js +1 -1
  132. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  133. package/dist/components/feed-timeline-item.js +1 -1
  134. package/dist/components/kanban-group.js +1 -1
  135. package/dist/components/kanban-item.js +1 -1
  136. package/dist/components/lime-query-filter-builder.js +1 -1
  137. package/dist/components/lime-query-filter-comparison-editor.js +1 -0
  138. package/dist/components/lime-query-filter-comparison.js +1 -1
  139. package/dist/components/lime-query-filter-expression.js +1 -1
  140. package/dist/components/limebb-alert-dialog.js +1 -1
  141. package/dist/components/limebb-browser.js +1 -1
  142. package/dist/components/limebb-chat-list.js +1 -1
  143. package/dist/components/limebb-color-palette-picker.js +1 -1
  144. package/dist/components/limebb-color-palette-swatches.js +1 -1
  145. package/dist/components/limebb-composer-toolbar.js +1 -1
  146. package/dist/components/limebb-dashboard-widget.js +1 -1
  147. package/dist/components/limebb-date-range.js +1 -1
  148. package/dist/components/limebb-document-chips.js +1 -1
  149. package/dist/components/limebb-document-picker.js +1 -1
  150. package/dist/components/limebb-feed.js +1 -1
  151. package/dist/components/limebb-icon-picker.js +1 -1
  152. package/dist/components/limebb-info-tile-format.js +1 -1
  153. package/dist/components/limebb-info-tile.js +1 -1
  154. package/dist/components/limebb-lime-query-builder.js +1 -1
  155. package/dist/components/limebb-lime-query-filter-comparison-editor.d.ts +11 -0
  156. package/dist/components/limebb-lime-query-filter-comparison-editor.js +1 -0
  157. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  158. package/dist/components/limebb-locale-picker.js +1 -1
  159. package/dist/components/limebb-mention-group-counter.js +1 -1
  160. package/dist/components/limebb-rule-arg-filter-editor.js +1 -1
  161. package/dist/components/limebb-rule-editor.js +1 -1
  162. package/dist/components/limebb-rule-gate.js +1 -1
  163. package/dist/components/limebb-text-editor.js +1 -1
  164. package/dist/components/limebb-trend-indicator.js +1 -1
  165. package/dist/components/limetype-field.js +1 -1
  166. package/dist/components/live-docs-info.js +1 -1
  167. package/dist/components/notification-item.js +1 -1
  168. package/dist/components/order-by-editor.js +1 -1
  169. package/dist/components/order-by-item.js +1 -1
  170. package/dist/components/percentage-visualizer.js +1 -1
  171. package/dist/components/property-selector.js +1 -1
  172. package/dist/components/response-format-item.js +1 -1
  173. package/dist/components/rule-chip-popover.js +1 -1
  174. package/dist/components/summary-popover.js +1 -1
  175. package/dist/components/typing-indicator.js +1 -1
  176. package/dist/esm/filter-group-logic-RXn-GGk1.js +126 -0
  177. package/dist/esm/{index-BIwHMk6j.js → index-DYpn0EkA.js} +12 -0
  178. package/dist/esm/{index.esm-CJU4N9K8.js → index.esm-DAe4_MLR.js} +1 -1
  179. package/dist/esm/lime-crm-building-blocks.js +3 -3
  180. package/dist/esm/lime-query-operators-DYlN1dAt.js +63 -0
  181. package/dist/esm/{lime-query-validation-COGfPUFN.js → lime-query-validation-DXxPZ2CH.js} +1 -1
  182. package/dist/esm/limebb-alert-dialog.entry.js +2 -2
  183. package/dist/esm/limebb-browser.entry.js +4 -4
  184. package/dist/esm/limebb-chat-icon-list_3.entry.js +6 -6
  185. package/dist/esm/limebb-chat-list.entry.js +3 -3
  186. package/dist/esm/limebb-color-palette-picker.entry.js +2 -2
  187. package/dist/esm/limebb-color-palette-swatches.entry.js +2 -2
  188. package/dist/esm/limebb-component-config.entry.js +3 -3
  189. package/dist/esm/limebb-component-picker.entry.js +2 -2
  190. package/dist/esm/limebb-composer-toolbar.entry.js +4 -4
  191. package/dist/esm/limebb-currency-picker.entry.js +3 -3
  192. package/dist/esm/limebb-dashboard-widget.entry.js +2 -2
  193. package/dist/esm/limebb-data-cells.entry.js +2 -2
  194. package/dist/esm/limebb-date-picker.entry.js +3 -3
  195. package/dist/esm/limebb-date-range.entry.js +2 -2
  196. package/dist/esm/limebb-document-chips.entry.js +2 -2
  197. package/dist/esm/limebb-document-item.entry.js +3 -3
  198. package/dist/esm/limebb-document-picker.entry.js +2 -2
  199. package/dist/esm/limebb-empty-state.entry.js +1 -1
  200. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +2 -2
  201. package/dist/esm/limebb-feed-timeline-item.entry.js +3 -3
  202. package/dist/esm/limebb-feed.entry.js +3 -3
  203. package/dist/esm/limebb-icon-picker.entry.js +2 -2
  204. package/dist/esm/limebb-info-tile-currency-format.entry.js +1 -1
  205. package/dist/esm/limebb-info-tile-date-format.entry.js +1 -1
  206. package/dist/esm/limebb-info-tile-decimal-format.entry.js +1 -1
  207. package/dist/esm/limebb-info-tile-format.entry.js +2 -2
  208. package/dist/esm/limebb-info-tile-relative-date-format.entry.js +1 -1
  209. package/dist/esm/limebb-info-tile-unit-format.entry.js +1 -1
  210. package/dist/esm/limebb-info-tile.entry.js +4 -4
  211. package/dist/esm/limebb-kanban-group.entry.js +3 -3
  212. package/dist/esm/limebb-kanban-item.entry.js +3 -3
  213. package/dist/esm/limebb-kanban.entry.js +1 -1
  214. package/dist/esm/limebb-lime-query-builder.entry.js +4 -4
  215. package/dist/esm/limebb-lime-query-filter-builder.entry.js +4 -8
  216. package/dist/esm/{limebb-lime-query-filter-group_3.entry.js → limebb-lime-query-filter-comparison-editor_4.entry.js} +158 -188
  217. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +83 -121
  218. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +5 -5
  219. package/dist/esm/limebb-lime-query-order-by-item.entry.js +3 -3
  220. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +4 -4
  221. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +2 -2
  222. package/dist/esm/limebb-limeobject-file-viewer.entry.js +2 -2
  223. package/dist/esm/limebb-live-docs-info.entry.js +3 -3
  224. package/dist/esm/limebb-loader.entry.js +2 -2
  225. package/dist/esm/limebb-locale-picker.entry.js +3 -3
  226. package/dist/esm/limebb-mention-group-counter.entry.js +3 -3
  227. package/dist/esm/limebb-mention.entry.js +2 -2
  228. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  229. package/dist/esm/limebb-notification-item.entry.js +3 -3
  230. package/dist/esm/limebb-notification-list.entry.js +2 -2
  231. package/dist/esm/limebb-object-chip.entry.js +3 -3
  232. package/dist/esm/limebb-percentage-visualizer.entry.js +4 -4
  233. package/dist/esm/limebb-property-selector.entry.js +42 -19
  234. package/dist/esm/limebb-rule-arg-filter-editor.entry.js +2 -2
  235. package/dist/esm/limebb-rule-chip-popover.entry.js +4 -4
  236. package/dist/esm/limebb-rule-editor.entry.js +104 -12
  237. package/dist/esm/limebb-rule-gate.entry.js +3 -3
  238. package/dist/esm/limebb-text-editor-picker.entry.js +1 -1
  239. package/dist/esm/limebb-text-editor.entry.js +4 -4
  240. package/dist/esm/limebb-trend-indicator.entry.js +3 -3
  241. package/dist/esm/{limetype-Dc4uQPMG.js → limetype-C1wEJnPI.js} +1 -1
  242. package/dist/esm/loader.js +3 -3
  243. package/dist/esm/{web-component-template-6zRYia86.js → web-component-template-D6zkEjKN.js} +1 -1
  244. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  245. package/dist/lime-crm-building-blocks/{p-34eb61da.entry.js → p-00d00277.entry.js} +1 -1
  246. package/dist/lime-crm-building-blocks/p-072756ea.entry.js +1 -0
  247. package/dist/lime-crm-building-blocks/{p-32c3789e.entry.js → p-07ef2fd0.entry.js} +1 -1
  248. package/dist/lime-crm-building-blocks/{p-c609b5ec.entry.js → p-0ba1294a.entry.js} +1 -1
  249. package/dist/lime-crm-building-blocks/{p-7fee7ef3.entry.js → p-0fac2307.entry.js} +1 -1
  250. package/dist/lime-crm-building-blocks/{p-97e6712f.entry.js → p-16fa6f3e.entry.js} +1 -1
  251. package/dist/lime-crm-building-blocks/{p-0c572fe9.entry.js → p-18ce3ce5.entry.js} +1 -1
  252. package/dist/lime-crm-building-blocks/p-1dfdf045.entry.js +1 -0
  253. package/dist/lime-crm-building-blocks/{p-20206710.entry.js → p-22296e19.entry.js} +1 -1
  254. package/dist/lime-crm-building-blocks/{p-1747221f.entry.js → p-24337de2.entry.js} +1 -1
  255. package/dist/lime-crm-building-blocks/{p-de6f4670.entry.js → p-3996a598.entry.js} +1 -1
  256. package/dist/lime-crm-building-blocks/{p-d2a01f51.entry.js → p-3bff70d2.entry.js} +1 -1
  257. package/dist/lime-crm-building-blocks/{p-7c96b265.entry.js → p-3c437049.entry.js} +1 -1
  258. package/dist/lime-crm-building-blocks/{p-3a112b17.entry.js → p-43af24b5.entry.js} +1 -1
  259. package/dist/lime-crm-building-blocks/{p-2cb31064.entry.js → p-464b02c2.entry.js} +1 -1
  260. package/dist/lime-crm-building-blocks/{p-02565865.entry.js → p-47a7b3fd.entry.js} +1 -1
  261. package/dist/lime-crm-building-blocks/{p-e6083593.entry.js → p-4c10bea0.entry.js} +1 -1
  262. package/dist/lime-crm-building-blocks/{p-e7a10082.entry.js → p-4e0d077b.entry.js} +1 -1
  263. package/dist/lime-crm-building-blocks/{p-25d8a718.entry.js → p-5006c5ea.entry.js} +1 -1
  264. package/dist/lime-crm-building-blocks/{p-c678f22f.entry.js → p-52c07130.entry.js} +1 -1
  265. package/dist/lime-crm-building-blocks/{p-492b1b0c.entry.js → p-55692241.entry.js} +1 -1
  266. package/dist/lime-crm-building-blocks/{p-b2383e7f.entry.js → p-5573a867.entry.js} +1 -1
  267. package/dist/lime-crm-building-blocks/{p-bec4231f.entry.js → p-563d69ff.entry.js} +1 -1
  268. package/dist/lime-crm-building-blocks/{p-32f8477f.entry.js → p-571777c3.entry.js} +1 -1
  269. package/dist/lime-crm-building-blocks/{p-4446f170.entry.js → p-58e63c29.entry.js} +1 -1
  270. package/dist/lime-crm-building-blocks/{p-31d8f414.entry.js → p-5a718d20.entry.js} +1 -1
  271. package/dist/lime-crm-building-blocks/{p-9c27e558.entry.js → p-5eef1781.entry.js} +1 -1
  272. package/dist/lime-crm-building-blocks/{p-861ac606.entry.js → p-603ab702.entry.js} +1 -1
  273. package/dist/lime-crm-building-blocks/{p-3252e153.entry.js → p-661e4700.entry.js} +1 -1
  274. package/dist/lime-crm-building-blocks/{p-184ae23d.entry.js → p-68a951f5.entry.js} +1 -1
  275. package/dist/lime-crm-building-blocks/{p-ed1e7e34.entry.js → p-692084d2.entry.js} +1 -1
  276. package/dist/lime-crm-building-blocks/{p-1428aa13.entry.js → p-6ee28dfc.entry.js} +1 -1
  277. package/dist/lime-crm-building-blocks/{p-fdd236ff.entry.js → p-725e6748.entry.js} +1 -1
  278. package/dist/lime-crm-building-blocks/{p-c394c1f6.entry.js → p-7a4704dc.entry.js} +1 -1
  279. package/dist/lime-crm-building-blocks/{p-48c2b617.entry.js → p-7b9359cc.entry.js} +1 -1
  280. package/dist/lime-crm-building-blocks/{p-6ff38954.entry.js → p-7d969bbe.entry.js} +1 -1
  281. package/dist/lime-crm-building-blocks/{p-eb8d58ab.entry.js → p-7f5c97fe.entry.js} +1 -1
  282. package/dist/lime-crm-building-blocks/{p-6cceabf1.entry.js → p-81655182.entry.js} +1 -1
  283. package/dist/lime-crm-building-blocks/p-8238723b.entry.js +1 -0
  284. package/dist/lime-crm-building-blocks/{p-2a3098a7.entry.js → p-898b097e.entry.js} +1 -1
  285. package/dist/lime-crm-building-blocks/{p-46c00a4b.entry.js → p-8d14a58a.entry.js} +1 -1
  286. package/dist/lime-crm-building-blocks/{p-48deac2a.entry.js → p-8d5311e4.entry.js} +1 -1
  287. package/dist/lime-crm-building-blocks/{p-08eb070d.entry.js → p-8ed7b025.entry.js} +1 -1
  288. package/dist/lime-crm-building-blocks/p-99464fa7.entry.js +1 -0
  289. package/dist/lime-crm-building-blocks/{p-C_tMNOSt.js → p-BKtEmDNs.js} +1 -1
  290. package/dist/lime-crm-building-blocks/{p-BV8CPdbi.js → p-BbFGcMnU.js} +1 -1
  291. package/dist/lime-crm-building-blocks/{p-C84z8BwL.js → p-CqRNpSRV.js} +1 -1
  292. package/dist/lime-crm-building-blocks/p-D3UYWGdn.js +1 -0
  293. package/dist/lime-crm-building-blocks/p-DYpn0EkA.js +2 -0
  294. package/dist/lime-crm-building-blocks/{p-BsNp-hBU.js → p-DzXJyKRS.js} +1 -1
  295. package/dist/lime-crm-building-blocks/{p-d910699a.entry.js → p-a5850f04.entry.js} +1 -1
  296. package/dist/lime-crm-building-blocks/{p-8d3fa274.entry.js → p-a6103d04.entry.js} +1 -1
  297. package/dist/lime-crm-building-blocks/{p-b24b7338.entry.js → p-b01f2045.entry.js} +1 -1
  298. package/dist/lime-crm-building-blocks/{p-731820f0.entry.js → p-b16bbda2.entry.js} +1 -1
  299. package/dist/lime-crm-building-blocks/{p-dabb227b.entry.js → p-b424f55f.entry.js} +1 -1
  300. package/dist/lime-crm-building-blocks/p-b95b94b6.entry.js +1 -0
  301. package/dist/lime-crm-building-blocks/{p-2a46f4be.entry.js → p-bd264cfa.entry.js} +1 -1
  302. package/dist/lime-crm-building-blocks/{p-9e5862de.entry.js → p-c7c5991f.entry.js} +1 -1
  303. package/dist/lime-crm-building-blocks/{p-c9003b76.entry.js → p-dc1d543d.entry.js} +1 -1
  304. package/dist/lime-crm-building-blocks/{p-e4fe45d3.entry.js → p-dc3a86f3.entry.js} +1 -1
  305. package/dist/lime-crm-building-blocks/p-ec335be5.entry.js +1 -0
  306. package/dist/lime-crm-building-blocks/{p-5743a74e.entry.js → p-ecd0280d.entry.js} +1 -1
  307. package/dist/lime-crm-building-blocks/p-efab4f7e.entry.js +1 -0
  308. package/dist/lime-crm-building-blocks/{p-9f7992b0.entry.js → p-efb70fbb.entry.js} +1 -1
  309. package/dist/lime-crm-building-blocks/{p-3263f8d5.entry.js → p-f011673a.entry.js} +1 -1
  310. package/dist/lime-crm-building-blocks/p-y_s8hZmV.js +1 -0
  311. package/dist/types/components/lime-query-builder/expressions/filter-group-logic.d.ts +56 -54
  312. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.d.ts +29 -0
  313. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +12 -9
  314. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +4 -0
  315. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +14 -30
  316. package/dist/types/components/lime-query-builder/expressions/lime-query-operators.d.ts +12 -0
  317. package/dist/types/components/lime-query-builder/property-selector/property-selector.d.ts +1 -0
  318. package/dist/types/components/rule-editor/rule-editor-views.d.ts +2 -1
  319. package/dist/types/components/rule-editor/rule-editor.d.ts +54 -3
  320. package/dist/types/components/rule-editor/view-helpers.d.ts +8 -1
  321. package/dist/types/components.d.ts +136 -49
  322. package/package.json +2 -2
  323. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +0 -137
  324. package/dist/lime-crm-building-blocks/p-6002654f.entry.js +0 -1
  325. package/dist/lime-crm-building-blocks/p-7acd06eb.entry.js +0 -1
  326. package/dist/lime-crm-building-blocks/p-89b43ac5.entry.js +0 -1
  327. package/dist/lime-crm-building-blocks/p-BIwHMk6j.js +0 -2
  328. package/dist/lime-crm-building-blocks/p-a3556715.entry.js +0 -1
  329. package/dist/lime-crm-building-blocks/p-bd6e12e6.entry.js +0 -1
  330. package/dist/lime-crm-building-blocks/p-c6a913af.entry.js +0 -1
  331. package/dist/lime-crm-building-blocks/p-c6fee2bd.entry.js +0 -1
@@ -0,0 +1,231 @@
1
+ import { Operator, PlatformServiceName, } from "@limetech/lime-web-components";
2
+ import { Host, h } from "@stencil/core";
3
+ import { LIME_QUERY_OPERATORS, } from "./lime-query-operators";
4
+ /**
5
+ * Inline editor for a single comparison expression. `shadow: true` so
6
+ * its stylesheet travels with the host when `limel-popover` portals it
7
+ * out of the parent's shadow root.
8
+ *
9
+ * @private
10
+ */
11
+ export class LimeQueryFilterComparisonEditorComponent {
12
+ constructor() {
13
+ this.handlePropertyChange = (event) => {
14
+ event.stopPropagation();
15
+ this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { key: event.detail }));
16
+ };
17
+ this.handleOperatorChange = (event) => {
18
+ event.stopPropagation();
19
+ const newOperator = event.detail.value;
20
+ const oldOperator = this.expression.op;
21
+ let convertedValue = this.expression.exp;
22
+ // IN expects an array; other operators expect a single value.
23
+ if (newOperator === Operator.IN && !Array.isArray(convertedValue)) {
24
+ convertedValue =
25
+ convertedValue !== undefined && convertedValue !== ''
26
+ ? [convertedValue]
27
+ : [];
28
+ }
29
+ else if (oldOperator === Operator.IN &&
30
+ newOperator !== Operator.IN &&
31
+ Array.isArray(convertedValue)) {
32
+ convertedValue = convertedValue.length > 0 ? convertedValue[0] : '';
33
+ }
34
+ this.expressionChange.emit({
35
+ key: this.expression.key,
36
+ op: newOperator,
37
+ exp: convertedValue,
38
+ });
39
+ };
40
+ this.handleValueChange = (event) => {
41
+ event.stopPropagation();
42
+ this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { exp: event.detail }));
43
+ };
44
+ }
45
+ componentDidLoad() {
46
+ var _a;
47
+ // limel-popover does not auto-focus its portaled content.
48
+ (_a = this.propertySelectorEl) === null || _a === void 0 ? void 0 : _a.focus();
49
+ }
50
+ render() {
51
+ return (h(Host, { key: '8b70eaef1906fd9eaa69c9e4d6c42937406d2fcc' }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput()));
52
+ }
53
+ renderPropertySelector() {
54
+ return (h("limebb-property-selector", { ref: (el) => (this.propertySelectorEl = el), class: "property", label: "Property", platform: this.platform, context: this.context, limetype: this.limetype, value: this.expression.key, required: true, onChange: this.handlePropertyChange }));
55
+ }
56
+ renderOperator() {
57
+ const operatorHasBeenSet = !!this.expression.op;
58
+ const options = LIME_QUERY_OPERATORS.map((op) => {
59
+ var _a, _b;
60
+ return ({
61
+ text: (_b = (_a = this.translator) === null || _a === void 0 ? void 0 : _a.get(op.label)) !== null && _b !== void 0 ? _b : op.label,
62
+ value: op.value,
63
+ icon: op.icon ? { name: op.icon } : undefined,
64
+ });
65
+ });
66
+ const selectedOption = options.find((o) => o.value === this.expression.op);
67
+ return (h("limel-select", { class: "operator", label: "Operator", value: selectedOption, options: options, disabled: !operatorHasBeenSet && !this.expression.key, onChange: this.handleOperatorChange }));
68
+ }
69
+ renderValueInput() {
70
+ if (!this.expression.op) {
71
+ return null;
72
+ }
73
+ return (h("limebb-lime-query-value-input", { class: "value", label: "Value", 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 }));
74
+ }
75
+ get translator() {
76
+ var _a;
77
+ return (_a = this.platform) === null || _a === void 0 ? void 0 : _a.get(PlatformServiceName.Translate);
78
+ }
79
+ static get is() { return "limebb-lime-query-filter-comparison-editor"; }
80
+ static get encapsulation() { return "shadow"; }
81
+ static get delegatesFocus() { return true; }
82
+ static get originalStyleUrls() {
83
+ return {
84
+ "$": ["lime-query-filter-comparison-editor.scss"]
85
+ };
86
+ }
87
+ static get styleUrls() {
88
+ return {
89
+ "$": ["lime-query-filter-comparison-editor.css"]
90
+ };
91
+ }
92
+ static get properties() {
93
+ return {
94
+ "platform": {
95
+ "type": "unknown",
96
+ "mutable": false,
97
+ "complexType": {
98
+ "original": "LimeWebComponentPlatform",
99
+ "resolved": "LimeWebComponentPlatform",
100
+ "references": {
101
+ "LimeWebComponentPlatform": {
102
+ "location": "import",
103
+ "path": "@limetech/lime-web-components",
104
+ "id": "node_modules::LimeWebComponentPlatform",
105
+ "referenceLocation": "LimeWebComponentPlatform"
106
+ }
107
+ }
108
+ },
109
+ "required": false,
110
+ "optional": false,
111
+ "docs": {
112
+ "tags": [],
113
+ "text": ""
114
+ },
115
+ "getter": false,
116
+ "setter": false
117
+ },
118
+ "context": {
119
+ "type": "unknown",
120
+ "mutable": false,
121
+ "complexType": {
122
+ "original": "LimeWebComponentContext",
123
+ "resolved": "LimeWebComponentContext",
124
+ "references": {
125
+ "LimeWebComponentContext": {
126
+ "location": "import",
127
+ "path": "@limetech/lime-web-components",
128
+ "id": "node_modules::LimeWebComponentContext",
129
+ "referenceLocation": "LimeWebComponentContext"
130
+ }
131
+ }
132
+ },
133
+ "required": false,
134
+ "optional": false,
135
+ "docs": {
136
+ "tags": [],
137
+ "text": ""
138
+ },
139
+ "getter": false,
140
+ "setter": false
141
+ },
142
+ "limetype": {
143
+ "type": "string",
144
+ "mutable": false,
145
+ "complexType": {
146
+ "original": "string",
147
+ "resolved": "string",
148
+ "references": {}
149
+ },
150
+ "required": false,
151
+ "optional": false,
152
+ "docs": {
153
+ "tags": [],
154
+ "text": ""
155
+ },
156
+ "getter": false,
157
+ "setter": false,
158
+ "reflect": false,
159
+ "attribute": "limetype"
160
+ },
161
+ "activeLimetype": {
162
+ "type": "string",
163
+ "mutable": false,
164
+ "complexType": {
165
+ "original": "string",
166
+ "resolved": "string | undefined",
167
+ "references": {}
168
+ },
169
+ "required": false,
170
+ "optional": true,
171
+ "docs": {
172
+ "tags": [],
173
+ "text": ""
174
+ },
175
+ "getter": false,
176
+ "setter": false,
177
+ "reflect": false,
178
+ "attribute": "active-limetype"
179
+ },
180
+ "expression": {
181
+ "type": "unknown",
182
+ "mutable": false,
183
+ "complexType": {
184
+ "original": "ComparisonExpression",
185
+ "resolved": "{ key: string; op: BasicOperator; exp: ExpressionValue; } | { key: string; op: Operator.IN; exp: ExpressionValue[]; } | { type: \"filter\"; key: string; op: Operator.IN; exp: string; }",
186
+ "references": {
187
+ "ComparisonExpression": {
188
+ "location": "import",
189
+ "path": "./lime-query-operators",
190
+ "id": "src/components/lime-query-builder/expressions/lime-query-operators.ts::ComparisonExpression",
191
+ "referenceLocation": "ComparisonExpression"
192
+ }
193
+ }
194
+ },
195
+ "required": false,
196
+ "optional": false,
197
+ "docs": {
198
+ "tags": [],
199
+ "text": ""
200
+ },
201
+ "getter": false,
202
+ "setter": false
203
+ }
204
+ };
205
+ }
206
+ static get events() {
207
+ return [{
208
+ "method": "expressionChange",
209
+ "name": "expressionChange",
210
+ "bubbles": true,
211
+ "cancelable": true,
212
+ "composed": true,
213
+ "docs": {
214
+ "tags": [],
215
+ "text": ""
216
+ },
217
+ "complexType": {
218
+ "original": "ComparisonExpression",
219
+ "resolved": "{ key: string; op: BasicOperator; exp: ExpressionValue; } | { key: string; op: Operator.IN; exp: ExpressionValue[]; } | { type: \"filter\"; key: string; op: Operator.IN; exp: string; }",
220
+ "references": {
221
+ "ComparisonExpression": {
222
+ "location": "import",
223
+ "path": "./lime-query-operators",
224
+ "id": "src/components/lime-query-builder/expressions/lime-query-operators.ts::ComparisonExpression",
225
+ "referenceLocation": "ComparisonExpression"
226
+ }
227
+ }
228
+ }
229
+ }];
230
+ }
231
+ }
@@ -1,19 +1,4 @@
1
1
  :host(limebb-lime-query-filter-comparison) {
2
- display: flex;
3
- flex-direction: column;
4
- gap: 0.5rem;
5
- }
6
-
7
- .expression-container {
8
- position: relative;
9
- display: grid;
10
- grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
11
- grid-gap: 0.5rem;
12
- padding-right: 2.75rem;
13
- }
14
-
15
- .remove {
16
- position: absolute;
17
- right: 0;
18
- top: 0.125rem;
2
+ display: inline-block;
3
+ max-width: 25rem;
19
4
  }
@@ -1,64 +1,7 @@
1
- import { Operator, PlatformServiceName, } from "@limetech/lime-web-components";
2
- import { Host, h } from "@stencil/core";
3
- const LIME_QUERY_OPERATORS = [
4
- {
5
- value: Operator.EQUALS,
6
- label: 'webclient.operator.equals',
7
- icon: '-lime-filter-equal',
8
- },
9
- {
10
- value: Operator.NOT_EQUALS,
11
- label: 'webclient.operator.not-equals',
12
- icon: '-lime-filter-equal-not',
13
- },
14
- {
15
- value: Operator.GREATER,
16
- label: 'webclient.operator.greater-than',
17
- icon: '-lime-filter-greater',
18
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
19
- },
20
- {
21
- value: Operator.GREATER_OR_EQUAL,
22
- label: 'webclient.operator.greater-than-or-equal-to',
23
- icon: '-lime-filter-greater-equal',
24
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
25
- },
26
- {
27
- value: Operator.LESS,
28
- label: 'webclient.operator.less-than',
29
- icon: '-lime-filter-less',
30
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
31
- },
32
- {
33
- value: Operator.LESS_OR_EQUAL,
34
- label: 'webclient.operator.less-than-or-equal-to',
35
- icon: '-lime-filter-less-equal',
36
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
37
- },
38
- {
39
- value: Operator.IN,
40
- label: 'webclient.operator.in-filter',
41
- icon: '-lime-filter-set-included',
42
- },
43
- {
44
- value: Operator.LIKE,
45
- label: 'webclient.operator.contains',
46
- icon: '-lime-filter-contain',
47
- applicableTypes: ['string', 'text'],
48
- },
49
- {
50
- value: Operator.BEGINS,
51
- label: 'webclient.operator.begins-with',
52
- icon: '-lime-filter-starts-with',
53
- applicableTypes: ['string', 'text'],
54
- },
55
- {
56
- value: Operator.ENDS,
57
- label: 'webclient.operator.ends-with',
58
- icon: '-lime-filter-ends-with',
59
- applicableTypes: ['string', 'text'],
60
- },
61
- ];
1
+ import { PlatformServiceName, } from "@limetech/lime-web-components";
2
+ import { Host, h, } from "@stencil/core";
3
+ import { LIME_QUERY_OPERATORS, } from "./lime-query-operators";
4
+ import { getNormalizedProperties } from "../property-resolution";
62
5
  /**
63
6
  * Lime Query Filter Comparison Component
64
7
  *
@@ -83,74 +26,95 @@ const LIME_QUERY_OPERATORS = [
83
26
  */
84
27
  export class LimeQueryFilterComparisonComponent {
85
28
  constructor() {
86
- this.handlePropertyChange = (event) => {
87
- event.stopPropagation();
88
- this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { key: event.detail }));
29
+ this.isOpen = false;
30
+ this.handleOpen = () => {
31
+ this.isOpen = true;
89
32
  };
90
- this.handleOperatorChange = (event) => {
91
- event.stopPropagation();
92
- const newOperator = event.detail.value;
93
- const oldOperator = this.expression.op;
94
- let convertedValue = this.expression.exp;
95
- // Convert value when switching between IN and other operators
96
- // IN operator expects an array, other operators expect a single value
97
- if (newOperator === Operator.IN && !Array.isArray(convertedValue)) {
98
- // Switching TO IN operator: wrap non-array value in array
99
- convertedValue =
100
- convertedValue !== undefined && convertedValue !== ''
101
- ? [convertedValue]
102
- : [];
103
- }
104
- else if (oldOperator === Operator.IN &&
105
- newOperator !== Operator.IN &&
106
- Array.isArray(convertedValue)) {
107
- // Switching FROM IN operator: extract first element from array
108
- convertedValue = convertedValue.length > 0 ? convertedValue[0] : '';
109
- }
110
- this.expressionChange.emit({
111
- key: this.expression.key,
112
- op: newOperator,
113
- exp: convertedValue,
114
- });
33
+ this.handleClose = () => {
34
+ this.isOpen = false;
115
35
  };
116
- this.handleValueChange = (event) => {
36
+ this.handleEditorChange = (event) => {
117
37
  event.stopPropagation();
118
- this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { exp: event.detail }));
38
+ this.expressionChange.emit(event.detail);
119
39
  };
120
40
  this.removeExpression = () => {
121
41
  this.expressionChange.emit(undefined);
122
42
  };
123
43
  }
44
+ componentWillLoad() {
45
+ var _a;
46
+ if (!((_a = this.expression) === null || _a === void 0 ? void 0 : _a.key)) {
47
+ this.isOpen = true;
48
+ }
49
+ }
124
50
  render() {
125
- return (h(Host, { key: '29ddf92b2e83eafe695faeb9a4ce6b8d29aa973e' }, this.renderHeader(), h("div", { key: '258f8aeee98a2435d324a1e5b816f111188cf3cc', class: "expression-container" }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput(), h("limel-icon-button", { key: 'c9e4cf456908fb82507e2599af631691e96ab8e4', class: "remove", icon: "trash", label: "Remove condition", onClick: this.removeExpression }))));
51
+ return (h(Host, { key: 'f85d1669dccffd7a0905ac5549eeea2f4c350782' }, this.renderHeader(), h("limel-popover", { key: '793a3ea0377182b86511165e39ff30212736d030', open: this.isOpen, openDirection: "bottom-start", onClose: this.handleClose }, h("limel-chip", { key: '0d4c7c565268c096d390994a862920c8066e1f11', slot: "trigger", text: this.summaryText(), icon: this.summaryIcon(), removable: true, onClick: this.handleOpen, onRemove: this.removeExpression }), h("limebb-lime-query-filter-comparison-editor", { key: 'a4ddad5edc49c4de265e9b3e237fb31455ae48e0', platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, onExpressionChange: this.handleEditorChange }))));
126
52
  }
127
- renderHeader() {
128
- if (!this.label) {
129
- return;
53
+ summaryText() {
54
+ var _a;
55
+ const key = (_a = this.expression) === null || _a === void 0 ? void 0 : _a.key;
56
+ if (!key) {
57
+ return 'New condition';
130
58
  }
131
- return h("limel-header", { subheading: this.label });
59
+ const propertyLabel = this.getPropertyLabel(key);
60
+ const opLabel = this.getOperatorLabel(this.expression.op);
61
+ const value = this.formatValue(this.expression.exp);
62
+ return `${propertyLabel} ${opLabel} ${value}`.trim();
132
63
  }
133
- renderPropertySelector() {
134
- 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 }));
64
+ getPropertyLabel(key) {
65
+ var _a, _b;
66
+ const repository = (_a = this.platform) === null || _a === void 0 ? void 0 : _a.get(PlatformServiceName.LimeTypeRepository);
67
+ if (!repository || !this.limetype) {
68
+ return key;
69
+ }
70
+ const parts = key.split('.');
71
+ const labels = [];
72
+ let currentType = repository.getLimeType(this.limetype);
73
+ for (const part of parts) {
74
+ if (!currentType) {
75
+ labels.push(part);
76
+ continue;
77
+ }
78
+ const property = getNormalizedProperties(currentType)[part];
79
+ labels.push((property === null || property === void 0 ? void 0 : property.localname) || part);
80
+ currentType = (_b = property === null || property === void 0 ? void 0 : property.relation) === null || _b === void 0 ? void 0 : _b.getLimetype();
81
+ }
82
+ return labels.join(' › ');
135
83
  }
136
- renderOperator() {
137
- const operatorHasBeenSet = !!this.expression.op;
138
- const options = LIME_QUERY_OPERATORS.map((op) => {
139
- var _a, _b;
140
- return ({
141
- text: (_b = (_a = this.translator) === null || _a === void 0 ? void 0 : _a.get(op.label)) !== null && _b !== void 0 ? _b : op.label,
142
- value: op.value,
143
- icon: op.icon ? { name: op.icon } : undefined,
144
- });
145
- });
146
- const selectedOption = options.find((o) => o.value === this.expression.op);
147
- return (h("limel-select", { class: "operator", label: "Operator", value: selectedOption, options: options, disabled: !operatorHasBeenSet && !this.expression.key, onChange: this.handleOperatorChange }));
84
+ summaryIcon() {
85
+ var _a;
86
+ if (!((_a = this.expression) === null || _a === void 0 ? void 0 : _a.op)) {
87
+ return undefined;
88
+ }
89
+ const meta = LIME_QUERY_OPERATORS.find((op) => op.value === this.expression.op);
90
+ return meta === null || meta === void 0 ? void 0 : meta.icon;
91
+ }
92
+ getOperatorLabel(op) {
93
+ var _a, _b;
94
+ if (!op)
95
+ return '';
96
+ const meta = LIME_QUERY_OPERATORS.find((m) => m.value === op);
97
+ if (!meta)
98
+ return '';
99
+ return (_b = (_a = this.translator) === null || _a === void 0 ? void 0 : _a.get(meta.label)) !== null && _b !== void 0 ? _b : meta.label;
148
100
  }
149
- renderValueInput() {
150
- if (!this.expression.op) {
151
- return null;
101
+ formatValue(value) {
102
+ if (value === undefined || value === null || value === '') {
103
+ return '…';
104
+ }
105
+ if (Array.isArray(value)) {
106
+ return value.map((v) => this.formatValue(v)).join(', ');
107
+ }
108
+ if (typeof value === 'string') {
109
+ return `"${value}"`;
152
110
  }
153
- 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 }));
111
+ return String(value);
112
+ }
113
+ renderHeader() {
114
+ if (!this.label) {
115
+ return;
116
+ }
117
+ return h("limel-header", { subheading: this.label });
154
118
  }
155
119
  get translator() {
156
120
  var _a;
@@ -283,8 +247,10 @@ export class LimeQueryFilterComparisonComponent {
283
247
  "resolved": "{ key: string; op: BasicOperator; exp: ExpressionValue; } | { key: string; op: Operator.IN; exp: ExpressionValue[]; } | { type: \"filter\"; key: string; op: Operator.IN; exp: string; }",
284
248
  "references": {
285
249
  "ComparisonExpression": {
286
- "location": "global",
287
- "id": "global::ComparisonExpression"
250
+ "location": "import",
251
+ "path": "./lime-query-operators",
252
+ "id": "src/components/lime-query-builder/expressions/lime-query-operators.ts::ComparisonExpression",
253
+ "referenceLocation": "ComparisonExpression"
288
254
  }
289
255
  }
290
256
  },
@@ -299,6 +265,11 @@ export class LimeQueryFilterComparisonComponent {
299
265
  }
300
266
  };
301
267
  }
268
+ static get states() {
269
+ return {
270
+ "isOpen": {}
271
+ };
272
+ }
302
273
  static get events() {
303
274
  return [{
304
275
  "method": "expressionChange",
@@ -315,8 +286,10 @@ export class LimeQueryFilterComparisonComponent {
315
286
  "resolved": "undefined | { key: string; op: BasicOperator; exp: ExpressionValue; } | { key: string; op: Operator.IN; exp: ExpressionValue[]; } | { type: \"filter\"; key: string; op: Operator.IN; exp: string; }",
316
287
  "references": {
317
288
  "ComparisonExpression": {
318
- "location": "global",
319
- "id": "global::ComparisonExpression"
289
+ "location": "import",
290
+ "path": "./lime-query-operators",
291
+ "id": "src/components/lime-query-builder/expressions/lime-query-operators.ts::ComparisonExpression",
292
+ "referenceLocation": "ComparisonExpression"
320
293
  }
321
294
  }
322
295
  }
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { Operator, } from "@limetech/lime-web-components";
3
+ import { asGroupExpression } from "./filter-group-logic";
3
4
  /**
4
5
  * Lime Query Filter Expression Router
5
6
  *
@@ -9,6 +10,10 @@ import { Operator, } from "@limetech/lime-web-components";
9
10
  * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
10
11
  * - `op: Operator.NOT` → limebb-lime-query-filter-not
11
12
  *
13
+ * Uses `scoped: true` (no shadow root) so the dispatched child element
14
+ * participates in the parent's light DOM — that lets the parent drive
15
+ * its own layout off the rendered tag (e.g. `:has(limebb-lime-query-filter-group)`).
16
+ *
12
17
  * @private
13
18
  */
14
19
  export class LimeQueryFilterExpressionComponent {
@@ -32,26 +37,16 @@ export class LimeQueryFilterExpressionComponent {
32
37
  if ('key' in this.expression) {
33
38
  return (h("limebb-lime-query-filter-comparison", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
34
39
  }
35
- if (this.expression.op === Operator.AND ||
36
- this.expression.op === Operator.OR) {
37
- return (h("limebb-lime-query-filter-group", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
40
+ const groupShaped = asGroupExpression(this.expression);
41
+ if (groupShaped) {
42
+ return (h("limebb-lime-query-filter-group", Object.assign({}, props, { expression: groupShaped, onExpressionChange: this.handleExpressionChange })));
38
43
  }
39
44
  if (this.expression.op === Operator.NOT) {
40
45
  return (h("limebb-lime-query-filter-not", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
41
46
  }
42
47
  }
43
48
  static get is() { return "limebb-lime-query-filter-expression"; }
44
- static get encapsulation() { return "shadow"; }
45
- static get originalStyleUrls() {
46
- return {
47
- "$": ["lime-query-filter-expression.scss"]
48
- };
49
- }
50
- static get styleUrls() {
51
- return {
52
- "$": ["lime-query-filter-expression.css"]
53
- };
54
- }
49
+ static get encapsulation() { return "scoped"; }
55
50
  static get properties() {
56
51
  return {
57
52
  "platform": {