@limetech/lime-crm-building-blocks 1.130.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 (325) hide show
  1. package/CHANGELOG.md +7 -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 +4 -4
  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/rule-chip-popover/rule-chip-popover.js +1 -1
  118. package/dist/collection/components/rule-editor/rule-editor.css +1 -0
  119. package/dist/collection/components/rule-editor/rule-editor.js +1 -1
  120. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  121. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  122. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  123. package/dist/collection/components/text-editor/text-editor.js +1 -1
  124. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  125. package/dist/components/chat-icon-list.js +1 -1
  126. package/dist/components/chat-item.js +1 -1
  127. package/dist/components/currency-picker.js +1 -1
  128. package/dist/components/date-picker.js +1 -1
  129. package/dist/components/document-item.js +1 -1
  130. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  131. package/dist/components/feed-timeline-item.js +1 -1
  132. package/dist/components/kanban-group.js +1 -1
  133. package/dist/components/kanban-item.js +1 -1
  134. package/dist/components/lime-query-filter-builder.js +1 -1
  135. package/dist/components/lime-query-filter-comparison-editor.js +1 -0
  136. package/dist/components/lime-query-filter-comparison.js +1 -1
  137. package/dist/components/lime-query-filter-expression.js +1 -1
  138. package/dist/components/limebb-alert-dialog.js +1 -1
  139. package/dist/components/limebb-browser.js +1 -1
  140. package/dist/components/limebb-chat-list.js +1 -1
  141. package/dist/components/limebb-color-palette-picker.js +1 -1
  142. package/dist/components/limebb-color-palette-swatches.js +1 -1
  143. package/dist/components/limebb-composer-toolbar.js +1 -1
  144. package/dist/components/limebb-dashboard-widget.js +1 -1
  145. package/dist/components/limebb-date-range.js +1 -1
  146. package/dist/components/limebb-document-chips.js +1 -1
  147. package/dist/components/limebb-document-picker.js +1 -1
  148. package/dist/components/limebb-feed.js +1 -1
  149. package/dist/components/limebb-icon-picker.js +1 -1
  150. package/dist/components/limebb-info-tile-format.js +1 -1
  151. package/dist/components/limebb-info-tile.js +1 -1
  152. package/dist/components/limebb-lime-query-builder.js +1 -1
  153. package/dist/components/limebb-lime-query-filter-comparison-editor.d.ts +11 -0
  154. package/dist/components/limebb-lime-query-filter-comparison-editor.js +1 -0
  155. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  156. package/dist/components/limebb-locale-picker.js +1 -1
  157. package/dist/components/limebb-mention-group-counter.js +1 -1
  158. package/dist/components/limebb-rule-arg-filter-editor.js +1 -1
  159. package/dist/components/limebb-rule-editor.js +1 -1
  160. package/dist/components/limebb-rule-gate.js +1 -1
  161. package/dist/components/limebb-text-editor.js +1 -1
  162. package/dist/components/limebb-trend-indicator.js +1 -1
  163. package/dist/components/limetype-field.js +1 -1
  164. package/dist/components/live-docs-info.js +1 -1
  165. package/dist/components/notification-item.js +1 -1
  166. package/dist/components/order-by-editor.js +1 -1
  167. package/dist/components/order-by-item.js +1 -1
  168. package/dist/components/percentage-visualizer.js +1 -1
  169. package/dist/components/property-selector.js +1 -1
  170. package/dist/components/response-format-item.js +1 -1
  171. package/dist/components/rule-chip-popover.js +1 -1
  172. package/dist/components/summary-popover.js +1 -1
  173. package/dist/components/typing-indicator.js +1 -1
  174. package/dist/esm/filter-group-logic-RXn-GGk1.js +126 -0
  175. package/dist/esm/{index-BIwHMk6j.js → index-DYpn0EkA.js} +12 -0
  176. package/dist/esm/{index.esm-CJU4N9K8.js → index.esm-DAe4_MLR.js} +1 -1
  177. package/dist/esm/lime-crm-building-blocks.js +3 -3
  178. package/dist/esm/lime-query-operators-DYlN1dAt.js +63 -0
  179. package/dist/esm/{lime-query-validation-COGfPUFN.js → lime-query-validation-DXxPZ2CH.js} +1 -1
  180. package/dist/esm/limebb-alert-dialog.entry.js +2 -2
  181. package/dist/esm/limebb-browser.entry.js +4 -4
  182. package/dist/esm/limebb-chat-icon-list_3.entry.js +6 -6
  183. package/dist/esm/limebb-chat-list.entry.js +3 -3
  184. package/dist/esm/limebb-color-palette-picker.entry.js +2 -2
  185. package/dist/esm/limebb-color-palette-swatches.entry.js +2 -2
  186. package/dist/esm/limebb-component-config.entry.js +3 -3
  187. package/dist/esm/limebb-component-picker.entry.js +2 -2
  188. package/dist/esm/limebb-composer-toolbar.entry.js +4 -4
  189. package/dist/esm/limebb-currency-picker.entry.js +3 -3
  190. package/dist/esm/limebb-dashboard-widget.entry.js +2 -2
  191. package/dist/esm/limebb-data-cells.entry.js +2 -2
  192. package/dist/esm/limebb-date-picker.entry.js +3 -3
  193. package/dist/esm/limebb-date-range.entry.js +2 -2
  194. package/dist/esm/limebb-document-chips.entry.js +2 -2
  195. package/dist/esm/limebb-document-item.entry.js +3 -3
  196. package/dist/esm/limebb-document-picker.entry.js +2 -2
  197. package/dist/esm/limebb-empty-state.entry.js +1 -1
  198. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +2 -2
  199. package/dist/esm/limebb-feed-timeline-item.entry.js +3 -3
  200. package/dist/esm/limebb-feed.entry.js +3 -3
  201. package/dist/esm/limebb-icon-picker.entry.js +2 -2
  202. package/dist/esm/limebb-info-tile-currency-format.entry.js +1 -1
  203. package/dist/esm/limebb-info-tile-date-format.entry.js +1 -1
  204. package/dist/esm/limebb-info-tile-decimal-format.entry.js +1 -1
  205. package/dist/esm/limebb-info-tile-format.entry.js +2 -2
  206. package/dist/esm/limebb-info-tile-relative-date-format.entry.js +1 -1
  207. package/dist/esm/limebb-info-tile-unit-format.entry.js +1 -1
  208. package/dist/esm/limebb-info-tile.entry.js +4 -4
  209. package/dist/esm/limebb-kanban-group.entry.js +3 -3
  210. package/dist/esm/limebb-kanban-item.entry.js +3 -3
  211. package/dist/esm/limebb-kanban.entry.js +1 -1
  212. package/dist/esm/limebb-lime-query-builder.entry.js +4 -4
  213. package/dist/esm/limebb-lime-query-filter-builder.entry.js +4 -8
  214. package/dist/esm/{limebb-lime-query-filter-group_3.entry.js → limebb-lime-query-filter-comparison-editor_4.entry.js} +158 -188
  215. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +83 -121
  216. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +5 -5
  217. package/dist/esm/limebb-lime-query-order-by-item.entry.js +3 -3
  218. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +4 -4
  219. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +2 -2
  220. package/dist/esm/limebb-limeobject-file-viewer.entry.js +2 -2
  221. package/dist/esm/limebb-live-docs-info.entry.js +3 -3
  222. package/dist/esm/limebb-loader.entry.js +2 -2
  223. package/dist/esm/limebb-locale-picker.entry.js +3 -3
  224. package/dist/esm/limebb-mention-group-counter.entry.js +3 -3
  225. package/dist/esm/limebb-mention.entry.js +2 -2
  226. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  227. package/dist/esm/limebb-notification-item.entry.js +3 -3
  228. package/dist/esm/limebb-notification-list.entry.js +2 -2
  229. package/dist/esm/limebb-object-chip.entry.js +3 -3
  230. package/dist/esm/limebb-percentage-visualizer.entry.js +4 -4
  231. package/dist/esm/limebb-property-selector.entry.js +42 -19
  232. package/dist/esm/limebb-rule-arg-filter-editor.entry.js +2 -2
  233. package/dist/esm/limebb-rule-chip-popover.entry.js +4 -4
  234. package/dist/esm/limebb-rule-editor.entry.js +4 -4
  235. package/dist/esm/limebb-rule-gate.entry.js +3 -3
  236. package/dist/esm/limebb-text-editor-picker.entry.js +1 -1
  237. package/dist/esm/limebb-text-editor.entry.js +4 -4
  238. package/dist/esm/limebb-trend-indicator.entry.js +3 -3
  239. package/dist/esm/{limetype-Dc4uQPMG.js → limetype-C1wEJnPI.js} +1 -1
  240. package/dist/esm/loader.js +3 -3
  241. package/dist/esm/{web-component-template-6zRYia86.js → web-component-template-D6zkEjKN.js} +1 -1
  242. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  243. package/dist/lime-crm-building-blocks/{p-34eb61da.entry.js → p-00d00277.entry.js} +1 -1
  244. package/dist/lime-crm-building-blocks/p-072756ea.entry.js +1 -0
  245. package/dist/lime-crm-building-blocks/{p-32c3789e.entry.js → p-07ef2fd0.entry.js} +1 -1
  246. package/dist/lime-crm-building-blocks/{p-c609b5ec.entry.js → p-0ba1294a.entry.js} +1 -1
  247. package/dist/lime-crm-building-blocks/{p-7fee7ef3.entry.js → p-0fac2307.entry.js} +1 -1
  248. package/dist/lime-crm-building-blocks/{p-97e6712f.entry.js → p-16fa6f3e.entry.js} +1 -1
  249. package/dist/lime-crm-building-blocks/{p-0c572fe9.entry.js → p-18ce3ce5.entry.js} +1 -1
  250. package/dist/lime-crm-building-blocks/p-1dfdf045.entry.js +1 -0
  251. package/dist/lime-crm-building-blocks/{p-20206710.entry.js → p-22296e19.entry.js} +1 -1
  252. package/dist/lime-crm-building-blocks/{p-1747221f.entry.js → p-24337de2.entry.js} +1 -1
  253. package/dist/lime-crm-building-blocks/{p-de6f4670.entry.js → p-3996a598.entry.js} +1 -1
  254. package/dist/lime-crm-building-blocks/{p-d2a01f51.entry.js → p-3bff70d2.entry.js} +1 -1
  255. package/dist/lime-crm-building-blocks/{p-7c96b265.entry.js → p-3c437049.entry.js} +1 -1
  256. package/dist/lime-crm-building-blocks/{p-3a112b17.entry.js → p-43af24b5.entry.js} +1 -1
  257. package/dist/lime-crm-building-blocks/{p-2cb31064.entry.js → p-464b02c2.entry.js} +1 -1
  258. package/dist/lime-crm-building-blocks/{p-02565865.entry.js → p-47a7b3fd.entry.js} +1 -1
  259. package/dist/lime-crm-building-blocks/{p-e6083593.entry.js → p-4c10bea0.entry.js} +1 -1
  260. package/dist/lime-crm-building-blocks/{p-e7a10082.entry.js → p-4e0d077b.entry.js} +1 -1
  261. package/dist/lime-crm-building-blocks/{p-25d8a718.entry.js → p-5006c5ea.entry.js} +1 -1
  262. package/dist/lime-crm-building-blocks/{p-c678f22f.entry.js → p-52c07130.entry.js} +1 -1
  263. package/dist/lime-crm-building-blocks/{p-492b1b0c.entry.js → p-55692241.entry.js} +1 -1
  264. package/dist/lime-crm-building-blocks/{p-b2383e7f.entry.js → p-5573a867.entry.js} +1 -1
  265. package/dist/lime-crm-building-blocks/{p-bec4231f.entry.js → p-563d69ff.entry.js} +1 -1
  266. package/dist/lime-crm-building-blocks/{p-32f8477f.entry.js → p-571777c3.entry.js} +1 -1
  267. package/dist/lime-crm-building-blocks/{p-4446f170.entry.js → p-58e63c29.entry.js} +1 -1
  268. package/dist/lime-crm-building-blocks/{p-31d8f414.entry.js → p-5a718d20.entry.js} +1 -1
  269. package/dist/lime-crm-building-blocks/{p-9c27e558.entry.js → p-5eef1781.entry.js} +1 -1
  270. package/dist/lime-crm-building-blocks/{p-861ac606.entry.js → p-603ab702.entry.js} +1 -1
  271. package/dist/lime-crm-building-blocks/{p-3252e153.entry.js → p-661e4700.entry.js} +1 -1
  272. package/dist/lime-crm-building-blocks/{p-184ae23d.entry.js → p-68a951f5.entry.js} +1 -1
  273. package/dist/lime-crm-building-blocks/{p-ed1e7e34.entry.js → p-692084d2.entry.js} +1 -1
  274. package/dist/lime-crm-building-blocks/{p-1428aa13.entry.js → p-6ee28dfc.entry.js} +1 -1
  275. package/dist/lime-crm-building-blocks/{p-fdd236ff.entry.js → p-725e6748.entry.js} +1 -1
  276. package/dist/lime-crm-building-blocks/{p-c394c1f6.entry.js → p-7a4704dc.entry.js} +1 -1
  277. package/dist/lime-crm-building-blocks/{p-48c2b617.entry.js → p-7b9359cc.entry.js} +1 -1
  278. package/dist/lime-crm-building-blocks/{p-6ff38954.entry.js → p-7d969bbe.entry.js} +1 -1
  279. package/dist/lime-crm-building-blocks/{p-eb8d58ab.entry.js → p-7f5c97fe.entry.js} +1 -1
  280. package/dist/lime-crm-building-blocks/{p-6cceabf1.entry.js → p-81655182.entry.js} +1 -1
  281. package/dist/lime-crm-building-blocks/p-8238723b.entry.js +1 -0
  282. package/dist/lime-crm-building-blocks/{p-2a3098a7.entry.js → p-898b097e.entry.js} +1 -1
  283. package/dist/lime-crm-building-blocks/{p-46c00a4b.entry.js → p-8d14a58a.entry.js} +1 -1
  284. package/dist/lime-crm-building-blocks/{p-48deac2a.entry.js → p-8d5311e4.entry.js} +1 -1
  285. package/dist/lime-crm-building-blocks/{p-08eb070d.entry.js → p-8ed7b025.entry.js} +1 -1
  286. package/dist/lime-crm-building-blocks/p-99464fa7.entry.js +1 -0
  287. package/dist/lime-crm-building-blocks/{p-C_tMNOSt.js → p-BKtEmDNs.js} +1 -1
  288. package/dist/lime-crm-building-blocks/{p-BV8CPdbi.js → p-BbFGcMnU.js} +1 -1
  289. package/dist/lime-crm-building-blocks/{p-C84z8BwL.js → p-CqRNpSRV.js} +1 -1
  290. package/dist/lime-crm-building-blocks/p-D3UYWGdn.js +1 -0
  291. package/dist/lime-crm-building-blocks/p-DYpn0EkA.js +2 -0
  292. package/dist/lime-crm-building-blocks/{p-BsNp-hBU.js → p-DzXJyKRS.js} +1 -1
  293. package/dist/lime-crm-building-blocks/{p-d910699a.entry.js → p-a5850f04.entry.js} +1 -1
  294. package/dist/lime-crm-building-blocks/{p-8d3fa274.entry.js → p-a6103d04.entry.js} +1 -1
  295. package/dist/lime-crm-building-blocks/{p-b24b7338.entry.js → p-b01f2045.entry.js} +1 -1
  296. package/dist/lime-crm-building-blocks/{p-731820f0.entry.js → p-b16bbda2.entry.js} +1 -1
  297. package/dist/lime-crm-building-blocks/{p-dabb227b.entry.js → p-b424f55f.entry.js} +1 -1
  298. package/dist/lime-crm-building-blocks/{p-f1d9e133.entry.js → p-b95b94b6.entry.js} +1 -1
  299. package/dist/lime-crm-building-blocks/{p-2a46f4be.entry.js → p-bd264cfa.entry.js} +1 -1
  300. package/dist/lime-crm-building-blocks/{p-9e5862de.entry.js → p-c7c5991f.entry.js} +1 -1
  301. package/dist/lime-crm-building-blocks/{p-c9003b76.entry.js → p-dc1d543d.entry.js} +1 -1
  302. package/dist/lime-crm-building-blocks/{p-e4fe45d3.entry.js → p-dc3a86f3.entry.js} +1 -1
  303. package/dist/lime-crm-building-blocks/p-ec335be5.entry.js +1 -0
  304. package/dist/lime-crm-building-blocks/{p-5743a74e.entry.js → p-ecd0280d.entry.js} +1 -1
  305. package/dist/lime-crm-building-blocks/p-efab4f7e.entry.js +1 -0
  306. package/dist/lime-crm-building-blocks/{p-9f7992b0.entry.js → p-efb70fbb.entry.js} +1 -1
  307. package/dist/lime-crm-building-blocks/{p-3263f8d5.entry.js → p-f011673a.entry.js} +1 -1
  308. package/dist/lime-crm-building-blocks/p-y_s8hZmV.js +1 -0
  309. package/dist/types/components/lime-query-builder/expressions/filter-group-logic.d.ts +56 -54
  310. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.d.ts +29 -0
  311. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +12 -9
  312. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +4 -0
  313. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +14 -30
  314. package/dist/types/components/lime-query-builder/expressions/lime-query-operators.d.ts +12 -0
  315. package/dist/types/components/lime-query-builder/property-selector/property-selector.d.ts +1 -0
  316. package/dist/types/components.d.ts +106 -47
  317. package/package.json +1 -1
  318. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +0 -137
  319. package/dist/lime-crm-building-blocks/p-6002654f.entry.js +0 -1
  320. package/dist/lime-crm-building-blocks/p-7acd06eb.entry.js +0 -1
  321. package/dist/lime-crm-building-blocks/p-89b43ac5.entry.js +0 -1
  322. package/dist/lime-crm-building-blocks/p-BIwHMk6j.js +0 -2
  323. package/dist/lime-crm-building-blocks/p-a3556715.entry.js +0 -1
  324. package/dist/lime-crm-building-blocks/p-c6a913af.entry.js +0 -1
  325. package/dist/lime-crm-building-blocks/p-c6fee2bd.entry.js +0 -1
@@ -1,5 +1,6 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-BIwHMk6j.js';
2
- import { n as nt } from './index.esm-CJU4N9K8.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-DYpn0EkA.js';
2
+ import { n as nt } from './index.esm-DAe4_MLR.js';
3
+ import { i as isGroupShape } from './filter-group-logic-RXn-GGk1.js';
3
4
 
4
5
  const limeQueryFilterBuilderCss = () => `.expression-with-promotion{display:flex;flex-direction:column;gap:1rem}limel-button{width:100%}.query-options-section{margin-top:1rem}`;
5
6
 
@@ -54,12 +55,7 @@ const LimeQueryFilterBuilderComponent = class {
54
55
  if (!this.expression) {
55
56
  return false;
56
57
  }
57
- // Basic comparison needs promotion
58
- if ('key' in this.expression) {
59
- return true;
60
- }
61
- // NOT needs promotion
62
- return this.expression.op === nt.NOT;
58
+ return !isGroupShape(this.expression);
63
59
  }
64
60
  renderEmptyState() {
65
61
  return (h("limel-button", { label: "Condition", icon: {
@@ -1,215 +1,185 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-BIwHMk6j.js';
2
- import { n as nt, L as Le } from './index.esm-CJU4N9K8.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-DYpn0EkA.js';
2
+ import { b as n, n as nt, L as Le } from './index.esm-DAe4_MLR.js';
3
+ import { L as LIME_QUERY_OPERATORS } from './lime-query-operators-DYlN1dAt.js';
4
+ import { g as getCombinator, s as setCombinator, b as addExpressionToGroup, u as updateChildExpression, c as getInnerAndOr, d as createNestedGroup, e as createEmptyComparison } from './filter-group-logic-RXn-GGk1.js';
3
5
  import { g as getPropertyFromPath } from './property-resolution-CQUZjrU4.js';
4
6
 
5
- /**
6
- * Get the subheading text for a filter group based on its operator and expression count
7
- *
8
- * @param operator - The group's operator (AND or OR)
9
- * @param expressionCount - Number of child expressions
10
- * @returns Subheading text, or empty string if 0 or 1 expressions
11
- */
12
- function getFilterGroupSubheading(operator, expressionCount) {
13
- if (expressionCount <= 1) {
14
- return '';
7
+ const limeQueryFilterComparisonEditorCss = () => `:host{display:grid;grid-template-columns:3fr 1fr;gap:0.5rem;padding:0.75rem;min-width:30rem;align-items:center}.value{grid-column:1/-1}`;
8
+
9
+ const LimeQueryFilterComparisonEditorComponent = class {
10
+ constructor(hostRef) {
11
+ registerInstance(this, hostRef);
12
+ this.expressionChange = createEvent(this, "expressionChange");
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 === nt.IN && !Array.isArray(convertedValue)) {
24
+ convertedValue =
25
+ convertedValue !== undefined && convertedValue !== ''
26
+ ? [convertedValue]
27
+ : [];
28
+ }
29
+ else if (oldOperator === nt.IN &&
30
+ newOperator !== nt.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
+ };
15
44
  }
16
- return operator === nt.AND
17
- ? 'All of these conditions are met'
18
- : 'Any of these conditions are met';
19
- }
20
- /**
21
- * Create a new empty comparison expression
22
- *
23
- * @returns A new comparison expression with empty key and value
24
- */
25
- function createEmptyComparison() {
26
- return {
27
- key: '',
28
- op: nt.EQUALS,
29
- exp: '',
30
- };
31
- }
32
- /**
33
- * Create a new nested group with the opposite operator from the parent
34
- *
35
- * @param parentOperator - The parent group's operator
36
- * @returns A new group with the opposite operator and one empty comparison
37
- */
38
- function createNestedGroup(parentOperator) {
39
- const oppositeOp = parentOperator === nt.AND ? nt.OR : nt.AND;
40
- return {
41
- op: oppositeOp,
42
- exp: [createEmptyComparison()],
43
- };
44
- }
45
- /**
46
- * Add a new expression to a group immutably
47
- *
48
- * @param group - The existing group
49
- * @param newExpression - The expression to add
50
- * @returns A new group with the expression added to the end
51
- */
52
- function addExpressionToGroup(group, newExpression) {
53
- return {
54
- op: group.op,
55
- exp: [...group.exp, newExpression],
56
- };
57
- }
58
- /**
59
- * Toggle a group's operator between AND and OR
60
- *
61
- * @param group - The group to toggle
62
- * @returns A new group with the toggled operator
63
- */
64
- function toggleGroupOperator(group) {
65
- const newOperator = group.op === nt.AND ? nt.OR : nt.AND;
66
- return {
67
- op: newOperator,
68
- exp: [...group.exp],
69
- };
70
- }
71
- /**
72
- * Update a child expression in a group, handling deletion and unwrapping
73
- *
74
- * This function handles three scenarios:
75
- * 1. Update: Replace a child expression with a new one
76
- * 2. Delete: Remove a child (when updatedChild is undefined)
77
- * - If last child is deleted, return 'removed' (group should be deleted)
78
- * - If deletion leaves one child, return 'unwrapped' (unwrap to that child)
79
- * - Otherwise, return 'updated' with the remaining children
80
- *
81
- * @param group - The group containing the child
82
- * @param childIndex - Index of the child to update
83
- * @param updatedChild - The new child expression, or undefined to delete
84
- * @returns Result object with type and resulting expression
85
- */
86
- function updateChildExpression(group, childIndex, updatedChild) {
87
- const expressions = [...group.exp];
88
- if (!updatedChild) {
89
- // Deletion - remove the child
90
- expressions.splice(childIndex, 1);
91
- if (expressions.length === 0) {
92
- // No children left - remove the entire group
93
- return {
94
- type: 'removed',
95
- expression: undefined,
96
- };
97
- }
98
- if (expressions.length === 1) {
99
- // One child left - unwrap to that child
100
- return {
101
- type: 'unwrapped',
102
- expression: expressions[0],
103
- };
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;
104
72
  }
105
- // Multiple children remain - return updated group
106
- return {
107
- type: 'updated',
108
- expression: {
109
- op: group.op,
110
- exp: expressions,
111
- },
112
- };
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 }));
113
74
  }
114
- // Update - replace the child
115
- expressions[childIndex] = updatedChild;
116
- return {
117
- type: 'updated',
118
- expression: {
119
- op: group.op,
120
- exp: expressions,
121
- },
122
- };
123
- }
75
+ get translator() {
76
+ var _a;
77
+ return (_a = this.platform) === null || _a === void 0 ? void 0 : _a.get(n.Translate);
78
+ }
79
+ static get delegatesFocus() { return true; }
80
+ };
81
+ LimeQueryFilterComparisonEditorComponent.style = limeQueryFilterComparisonEditorCss();
124
82
 
125
- const limeQueryFilterGroupCss = () => `@charset "UTF-8";*,*::before,*::after{box-sizing:border-box}limebb-lime-query-filter-expression{position:relative;isolation:isolate}limebb-lime-query-filter-expression:not(:first-of-type):after{content:"";position:absolute;top:-0.5rem;left:0.75rem;display:block;border-radius:1rem;height:2rem;width:0.125rem;background-color:var(--limebb-lime-query-builder-group-color)}limebb-lime-query-filter-expression:not(:first-of-type):before{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;height:1rem;content:var(--limebb-lime-query-filter-group-operator);display:inline-block;margin:0 auto 0.5rem auto;transform:translateY(-50%);font-size:0.625rem;padding:0 0.5rem;color:rgb(var(--color-blue-dark));background-color:var(--limebb-lime-query-builder-group-color);border-radius:2rem}.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:0;background-color:rgb(var(--contrast-100));border-radius:0.75rem;border:1px solid var(--limebb-lime-query-builder-group-color)}.expression ul{list-style:none;margin:0;padding:0.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.expression ul [role=listitem]{list-style:none;width:100%}limel-button.add-group{width:fit-content;margin:0.5rem}limel-icon-button.delete-group{margin-left:0.5rem}limel-select.operator-select{min-width:8rem}`;
83
+ const limeQueryFilterGroupCss = () => `*,*:before,*::after{box-sizing:border-box}:host(limebb-lime-query-filter-group){--group-rail-color:var(--limebb-query-filter-group-color-code);display:flex;flex-direction:column;gap:1.5rem}:host([data-op=AND]){--combinator-symbol:"&"}:host([data-op=NOT_AND]){--combinator-symbol:"- &"}:host([data-op=OR]){--combinator-symbol:"or"}:host([data-op=NOT_OR]){--combinator-symbol:"- or"}.group{position:relative;display:flex;flex-direction:column;gap:1rem;padding:0.5rem;border-radius:0.75rem;background-color:rgb(var(--contrast-800), 0.15);transition:box-shadow 120ms ease}.group:before{content:"";position:absolute;top:1rem;bottom:calc(1rem + 1.75rem);left:0;width:0.125rem;transform:translateX(-50%);border-radius:1rem;background-color:var(--group-rail-color)}.group:has(limel-icon-button.delete-group:hover),.group:has(limel-icon-button.delete-group:focus-within){box-shadow:var(--shadow-error-state)}.group-header{display:flex;align-items:center;gap:0.5rem}limel-select.combinator{min-width:9rem}limel-icon-button.delete-group{margin-left:auto;opacity:0;transition:opacity 120ms ease}limel-chip.add-group{--lime-elevated-surface-background-color:transparent;--button-shadow-normal:none;isolation:isolate;position:relative;margin-right:auto}limel-chip.add-group:after{content:"";position:absolute;width:0.5rem;height:1.75rem;top:0;left:calc(0.5rem * -1 - 0.125rem / 2);border-width:0 0 0.125rem 0.125rem;border-color:var(--group-rail-color);border-style:solid;border-radius:0 0 0 0.5rem;transform:translateY(calc(-50% - 0.125rem / 2))}.group:hover>.group-header>limel-icon-button.delete-group,limel-icon-button.delete-group:focus-within{opacity:1}ul.rows{list-style:none;margin:0;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:0.5rem;row-gap:0.5rem;padding:0 0.5rem 0.5rem 0.5rem}li.row{list-style:none;position:relative}li.row:has(>limebb-lime-query-filter-expression>limebb-lime-query-filter-group){flex-basis:100%;align-self:stretch}li.row+li.row:before{content:var(--combinator-symbol);color:var(--limebb-query-filter-group-color-code);font-size:0.75rem;font-weight:600}li.row+li.row:has(>limebb-lime-query-filter-expression>limebb-lime-query-filter-group):before{position:absolute;left:0;top:0;transform:translate(-50%, -50%)}li.row+li.row:not(:has(>limebb-lime-query-filter-expression>limebb-lime-query-filter-group)):before{margin-right:0.5rem}`;
126
84
 
85
+ const OP_STYLE = {
86
+ AND: {
87
+ color: 'rgb(var(--contrast-900))',
88
+ iconName: 'dot_circle',
89
+ text: 'All of',
90
+ secondaryText: 'True when every condition is true',
91
+ },
92
+ OR: {
93
+ color: 'rgb(var(--color-sky-default))',
94
+ iconName: 'centre_point',
95
+ text: 'Any of',
96
+ secondaryText: 'True when at least one condition is true',
97
+ },
98
+ NOT_AND: {
99
+ color: 'rgb(var(--color-orange-default))',
100
+ iconName: 'dot_circle',
101
+ text: 'Not all of',
102
+ secondaryText: 'True when at least one condition is false',
103
+ },
104
+ NOT_OR: {
105
+ color: 'rgb(var(--color-red-default))',
106
+ iconName: 'centre_point',
107
+ text: 'None of',
108
+ secondaryText: 'True when every condition is false',
109
+ },
110
+ };
111
+ const COMBINATOR_OPTIONS = ['AND', 'OR', 'NOT_AND', 'NOT_OR'].map((value) => ({
112
+ text: OP_STYLE[value].text,
113
+ secondaryText: OP_STYLE[value].secondaryText,
114
+ value,
115
+ icon: { name: OP_STYLE[value].iconName, color: OP_STYLE[value].color },
116
+ }));
127
117
  const LimeQueryFilterGroupComponent = class {
128
118
  constructor(hostRef) {
129
119
  registerInstance(this, hostRef);
130
120
  this.expressionChange = createEvent(this, "expressionChange");
131
- this.options = [
132
- {
133
- text: 'All',
134
- secondaryText: 'AND operator',
135
- value: 'and',
136
- },
137
- {
138
- text: 'Any',
139
- secondaryText: 'OR operator',
140
- value: 'or',
141
- },
142
- ];
143
- this.renderChildExpression = (expression, childIndex) => (h("limebb-lime-query-filter-expression", { role: "listitem", platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleExpressionChange(childIndex) }));
121
+ this.renderChildExpression = (expression, childIndex) => (h("li", { class: "row" }, h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleChildExpressionChange(childIndex) })));
122
+ this.handleCombinatorChange = (event) => {
123
+ event.stopPropagation();
124
+ const next = event.detail.value;
125
+ if (!next || next === getCombinator(this.expression)) {
126
+ return;
127
+ }
128
+ this.expressionChange.emit(setCombinator(this.expression, next));
129
+ };
144
130
  this.handleDeleteGroup = () => {
145
131
  this.expressionChange.emit();
146
132
  };
147
- this.handleToggleOperator = (event) => {
148
- const selectedOption = Array.isArray(event.detail)
149
- ? event.detail[0]
150
- : event.detail;
151
- this.value = selectedOption;
152
- const newOp = selectedOption.value === 'and' ? nt.AND : nt.OR;
153
- if (newOp !== this.expression.op) {
154
- const newGroup = toggleGroupOperator(this.expression);
155
- this.expressionChange.emit(newGroup);
156
- }
157
- };
158
133
  this.handleAddChildExpression = () => {
159
- const newChild = createEmptyComparison();
160
- const newGroup = addExpressionToGroup(this.expression, newChild);
161
- this.expressionChange.emit(newGroup);
134
+ const inner = getInnerAndOr(this.expression);
135
+ const updatedInner = addExpressionToGroup(inner, createEmptyComparison());
136
+ this.expressionChange.emit(this.wrap(updatedInner));
162
137
  };
163
138
  this.handleAddChildGroup = () => {
164
- const newChild = createNestedGroup(this.expression.op);
165
- const newGroup = addExpressionToGroup(this.expression, newChild);
166
- this.expressionChange.emit(newGroup);
139
+ const inner = getInnerAndOr(this.expression);
140
+ const newChild = createNestedGroup(inner.op);
141
+ const updatedInner = addExpressionToGroup(inner, newChild);
142
+ this.expressionChange.emit(this.wrap(updatedInner));
167
143
  };
168
- this.handleExpressionChange = (updatedChildIndex) => (event) => {
144
+ this.handleChildExpressionChange = (childIndex) => (event) => {
169
145
  event.stopPropagation();
170
- const updatedExpression = event.detail;
171
- const result = updateChildExpression(this.expression, updatedChildIndex, updatedExpression);
146
+ const inner = getInnerAndOr(this.expression);
147
+ const result = updateChildExpression(inner, childIndex, event.detail);
148
+ if (result.type === 'removed') {
149
+ this.expressionChange.emit(undefined);
150
+ return;
151
+ }
152
+ if (this.isNegated) {
153
+ this.expressionChange.emit({
154
+ op: nt.NOT,
155
+ exp: result.expression,
156
+ });
157
+ return;
158
+ }
172
159
  this.expressionChange.emit(result.expression);
173
160
  };
174
161
  }
175
- // Initialize value to match current operator
176
- componentWillLoad() {
177
- this.value =
178
- this.options.find((option) => option.value ===
179
- (this.expression.op === nt.AND ? 'and' : 'or')) || this.options[0];
180
- }
181
162
  render() {
182
- return (h(Host, { key: '4b1647c741b78253b4ce4ed1bd347800da394563', style: {
183
- '--limebb-lime-query-filter-group-operator': `"${this.expression.op === nt.AND ? 'AND' : 'OR'}"`,
184
- } }, h("div", { key: '47fd3000275e17ef70d86af5e6abcb492806ffba', class: "expression" }, this.renderHeader(), h("ul", { key: '224249a4b305eb2b20c1aedad98d2c3191d47e83' }, this.expression.exp.map(this.renderChildExpression), this.renderAddButton()), this.renderAddGroupButton())));
185
- }
186
- renderHeader() {
187
- const subheading = this.getSubheading();
188
- if (!subheading) {
189
- return null;
190
- }
191
- return (h("limel-header", { subheading: subheading }, this.renderOperators(), this.renderDeleteGroupButton()));
192
- }
193
- renderOperators() {
194
- return (h("limel-select", { class: "operator-select", slot: "actions", value: this.value, options: this.options, onChange: this.handleToggleOperator }));
195
- }
196
- renderDeleteGroupButton() {
197
- return (h("limel-icon-button", { class: "delete-group", slot: "actions", icon: "trash", label: "Delete This Group", onClick: this.handleDeleteGroup }));
198
- }
199
- getSubheading() {
200
- return getFilterGroupSubheading(this.expression.op, this.expression.exp.length);
201
- }
202
- renderAddButton() {
203
- return (h("limel-button", { role: "listitem", label: "Condition", icon: {
163
+ const combinator = getCombinator(this.expression);
164
+ const inner = getInnerAndOr(this.expression);
165
+ const selected = COMBINATOR_OPTIONS.find((o) => o.value === combinator);
166
+ return (h(Host, { key: 'c9ca20c6b893416088807266fede19e5a24e360d', "data-op": combinator, style: {
167
+ '--limebb-query-filter-group-color-code': OP_STYLE[combinator].color,
168
+ } }, h("div", { key: '8efe9e6e4d1ba552b8a761ec23b18668a1aef7f3', class: "group" }, h("div", { key: 'e99bb85a9532431a63ce0916dc4882a2f73d2307', class: "group-header" }, h("limel-select", { key: '981fd5c1d4755ef937451144245640228ed515a9', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: 'caa427e897501a12a98a370c4d2364564904c042', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: '8a21efdd1d783b11bb00f39c3579eec7277a505e', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: 'b4612f1899060f2f553283cc7afac53777b0c1ef', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: '7046abfe1929fa13f4de3e90285610280467fd76', class: "add-group", size: "small", text: "Group", icon: {
204
169
  name: 'plus_math',
205
170
  title: 'Add',
206
- }, onClick: this.handleAddChildExpression }));
171
+ color: 'var(--group-rail-color)',
172
+ }, onClick: this.handleAddChildGroup }))));
207
173
  }
208
- renderAddGroupButton() {
209
- return (h("limel-button", { class: "add-group", label: "Group", icon: {
210
- name: 'plus_math',
211
- title: 'Add',
212
- }, onClick: this.handleAddChildGroup }));
174
+ get isNegated() {
175
+ return this.expression.op === nt.NOT;
176
+ }
177
+ wrap(inner) {
178
+ if (this.isNegated) {
179
+ const wrapped = { op: nt.NOT, exp: inner };
180
+ return wrapped;
181
+ }
182
+ return inner;
213
183
  }
214
184
  };
215
185
  LimeQueryFilterGroupComponent.style = limeQueryFilterGroupCss();
@@ -235,7 +205,7 @@ const LimeQueryFilterNotComponent = class {
235
205
  };
236
206
  }
237
207
  render() {
238
- return (h("div", { key: '16246e10be820ad18713cb097146040d30e242bf', class: "expression" }, this.label && h("limel-header", { key: '539d60a4567727282463dec2a90e06a3630501aa', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '67f892704ea3e5a061acdcb8f3ffe22271971569', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
208
+ return (h("div", { key: '30b9f2fbe27c8277633ef02fbebbafb227387ed8', class: "expression" }, this.label && h("limel-header", { key: '05b193ac0ec191b1f9394ed48691c24e534ba66c', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '83b6a42631b886735502a8ec6454f5e9c868cc4c', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
239
209
  }
240
210
  };
241
211
  LimeQueryFilterNotComponent.style = limeQueryFilterNotCss();
@@ -590,4 +560,4 @@ __decorate([
590
560
  ], LimeQueryValueInput.prototype, "limetypes", void 0);
591
561
  LimeQueryValueInput.style = limeQueryValueInputCss();
592
562
 
593
- export { LimeQueryFilterGroupComponent as limebb_lime_query_filter_group, LimeQueryFilterNotComponent as limebb_lime_query_filter_not, LimeQueryValueInput as limebb_lime_query_value_input };
563
+ export { LimeQueryFilterComparisonEditorComponent as limebb_lime_query_filter_comparison_editor, LimeQueryFilterGroupComponent as limebb_lime_query_filter_group, LimeQueryFilterNotComponent as limebb_lime_query_filter_not, LimeQueryValueInput as limebb_lime_query_value_input };