@limetech/lime-crm-building-blocks 1.139.1 → 1.140.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 (261) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/{filter-condition-icons-HypsDn6x.js → filter-condition-icons-QK5stWj6.js} +142 -0
  3. package/dist/cjs/filter-operators-BTWvpD6A.js +61 -0
  4. package/dist/cjs/index.cjs.js +8 -1
  5. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  6. package/dist/cjs/limebb-alert-dialog.cjs.entry.js +1 -1
  7. package/dist/cjs/limebb-browser.cjs.entry.js +2 -2
  8. package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +4 -4
  9. package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +1 -1
  11. package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +1 -1
  12. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +2 -2
  13. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-date-range.cjs.entry.js +1 -1
  17. package/dist/cjs/limebb-document-chips.cjs.entry.js +1 -1
  18. package/dist/cjs/limebb-document-item.cjs.entry.js +2 -2
  19. package/dist/cjs/limebb-document-picker.cjs.entry.js +1 -1
  20. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +1 -1
  21. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  22. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  23. package/dist/cjs/{limebb-filter-chip_5.cjs.entry.js → limebb-filter-chip_6.cjs.entry.js} +115 -81
  24. package/dist/cjs/limebb-icon-picker.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
  26. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  27. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  28. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  29. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +1 -1
  30. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +7 -24
  31. package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +2 -2
  33. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +1 -1
  34. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +1 -1
  35. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  36. package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
  37. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  38. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +2 -2
  39. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  40. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  41. package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +1 -1
  42. package/dist/cjs/limebb-rule-editor.cjs.entry.js +1 -1
  43. package/dist/cjs/limebb-rule-gate.cjs.entry.js +1 -1
  44. package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
  45. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  46. package/dist/cjs/limebb-value-comparison-editor.cjs.entry.js +37 -35
  47. package/dist/cjs/loader.cjs.js +1 -1
  48. package/dist/collection/collection-manifest.json +1 -0
  49. package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
  50. package/dist/collection/components/browser/browser.js +2 -2
  51. package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
  52. package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
  53. package/dist/collection/components/chat-list/chat-list.js +1 -1
  54. package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
  55. package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
  56. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
  57. package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
  58. package/dist/collection/components/currency-picker/currency-picker.js +1 -1
  59. package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
  60. package/dist/collection/components/date-picker/date-picker.js +1 -1
  61. package/dist/collection/components/date-range/date-range.js +1 -1
  62. package/dist/collection/components/document-chips/document-chips.js +1 -1
  63. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  64. package/dist/collection/components/document-picker/document-picker.js +1 -1
  65. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  66. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  67. package/dist/collection/components/feed/feed.js +1 -1
  68. package/dist/collection/components/filter-chip/filter-chip.js +2 -2
  69. package/dist/collection/components/filter-chip/filter-condition-icons.js +141 -0
  70. package/dist/collection/components/filter-chip/filter-operators.js +54 -0
  71. package/dist/collection/components/filter-condition-picker/filter-condition-picker.css +7 -0
  72. package/dist/collection/components/filter-condition-picker/filter-condition-picker.js +256 -0
  73. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  74. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  75. package/dist/collection/components/info-tile/info-tile.js +1 -1
  76. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  77. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  78. package/dist/collection/components/lime-query-builder/expressions/compound-leaf.js +6 -6
  79. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +37 -20
  80. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +8 -25
  81. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
  82. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  83. package/dist/collection/components/lime-query-builder/expressions/lime-query-operators.js +23 -57
  84. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  85. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  86. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  87. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  88. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  89. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  90. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  91. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  92. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  93. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  94. package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +1 -1
  95. package/dist/collection/components/rule-editor/rule-editor.js +1 -1
  96. package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.js +62 -36
  97. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  98. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  99. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  100. package/dist/collection/components/text-editor/text-editor.js +1 -1
  101. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  102. package/dist/collection/index.js +1 -0
  103. package/dist/components/chat-icon-list.js +1 -1
  104. package/dist/components/chat-item.js +1 -1
  105. package/dist/components/currency-picker.js +1 -1
  106. package/dist/components/date-picker.js +1 -1
  107. package/dist/components/document-item.js +1 -1
  108. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  109. package/dist/components/feed-timeline-item.js +1 -1
  110. package/dist/components/filter-chip.js +1 -1
  111. package/dist/components/filter-condition-icons.js +1 -1
  112. package/dist/components/filter-condition-picker.js +1 -0
  113. package/dist/components/filter-operators.js +1 -0
  114. package/dist/components/index.js +1 -1
  115. package/dist/components/kanban-group.js +1 -1
  116. package/dist/components/kanban-item.js +1 -1
  117. package/dist/components/lime-query-filter-builder.js +1 -1
  118. package/dist/components/lime-query-filter-comparison-editor.js +1 -1
  119. package/dist/components/lime-query-filter-comparison.js +1 -1
  120. package/dist/components/lime-query-filter-expression.js +1 -1
  121. package/dist/components/limebb-alert-dialog.js +1 -1
  122. package/dist/components/limebb-browser.js +1 -1
  123. package/dist/components/limebb-chat-list.js +1 -1
  124. package/dist/components/limebb-color-palette-picker.js +1 -1
  125. package/dist/components/limebb-color-palette-swatches.js +1 -1
  126. package/dist/components/limebb-composer-toolbar.js +1 -1
  127. package/dist/components/limebb-dashboard-widget.js +1 -1
  128. package/dist/components/limebb-date-range.js +1 -1
  129. package/dist/components/limebb-document-chips.js +1 -1
  130. package/dist/components/limebb-document-picker.js +1 -1
  131. package/dist/components/limebb-feed.js +1 -1
  132. package/dist/components/limebb-filter-condition-picker.d.ts +11 -0
  133. package/dist/components/limebb-filter-condition-picker.js +1 -0
  134. package/dist/components/limebb-icon-picker.js +1 -1
  135. package/dist/components/limebb-info-tile-format.js +1 -1
  136. package/dist/components/limebb-info-tile.js +1 -1
  137. package/dist/components/limebb-lime-query-builder.js +1 -1
  138. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  139. package/dist/components/limebb-locale-picker.js +1 -1
  140. package/dist/components/limebb-mention-group-counter.js +1 -1
  141. package/dist/components/limebb-rule-arg-filter-editor.js +1 -1
  142. package/dist/components/limebb-rule-editor.js +1 -1
  143. package/dist/components/limebb-rule-gate.js +1 -1
  144. package/dist/components/limebb-text-editor.js +1 -1
  145. package/dist/components/limebb-trend-indicator.js +1 -1
  146. package/dist/components/limebb-value-comparison-editor.js +1 -1
  147. package/dist/components/limetype-field.js +1 -1
  148. package/dist/components/live-docs-info.js +1 -1
  149. package/dist/components/notification-item.js +1 -1
  150. package/dist/components/order-by-editor.js +1 -1
  151. package/dist/components/order-by-item.js +1 -1
  152. package/dist/components/percentage-visualizer.js +1 -1
  153. package/dist/components/response-format-item.js +1 -1
  154. package/dist/components/rule-chip-popover.js +1 -1
  155. package/dist/components/summary-popover.js +1 -1
  156. package/dist/components/typing-indicator.js +1 -1
  157. package/dist/esm/{filter-condition-icons-D8CJOcfs.js → filter-condition-icons-C_y3-T4Q.js} +142 -1
  158. package/dist/esm/filter-operators-Lw-ccmxQ.js +57 -0
  159. package/dist/esm/index.js +4 -1
  160. package/dist/esm/lime-crm-building-blocks.js +1 -1
  161. package/dist/esm/limebb-alert-dialog.entry.js +1 -1
  162. package/dist/esm/limebb-browser.entry.js +2 -2
  163. package/dist/esm/limebb-chat-icon-list_3.entry.js +4 -4
  164. package/dist/esm/limebb-chat-list.entry.js +1 -1
  165. package/dist/esm/limebb-color-palette-picker.entry.js +1 -1
  166. package/dist/esm/limebb-color-palette-swatches.entry.js +1 -1
  167. package/dist/esm/limebb-composer-toolbar.entry.js +2 -2
  168. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  169. package/dist/esm/limebb-dashboard-widget.entry.js +1 -1
  170. package/dist/esm/limebb-date-picker.entry.js +1 -1
  171. package/dist/esm/limebb-date-range.entry.js +1 -1
  172. package/dist/esm/limebb-document-chips.entry.js +1 -1
  173. package/dist/esm/limebb-document-item.entry.js +2 -2
  174. package/dist/esm/limebb-document-picker.entry.js +1 -1
  175. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +1 -1
  176. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  177. package/dist/esm/limebb-feed.entry.js +1 -1
  178. package/dist/esm/{limebb-filter-chip_5.entry.js → limebb-filter-chip_6.entry.js} +115 -82
  179. package/dist/esm/limebb-icon-picker.entry.js +1 -1
  180. package/dist/esm/limebb-info-tile-format.entry.js +1 -1
  181. package/dist/esm/limebb-info-tile.entry.js +1 -1
  182. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  183. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  184. package/dist/esm/limebb-lime-query-builder.entry.js +1 -1
  185. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +7 -24
  186. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +2 -2
  187. package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
  188. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +1 -1
  189. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +1 -1
  190. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  191. package/dist/esm/limebb-locale-picker.entry.js +1 -1
  192. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  193. package/dist/esm/limebb-navigation-button_2.entry.js +2 -2
  194. package/dist/esm/limebb-notification-item.entry.js +1 -1
  195. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  196. package/dist/esm/limebb-rule-chip-popover.entry.js +1 -1
  197. package/dist/esm/limebb-rule-editor.entry.js +1 -1
  198. package/dist/esm/limebb-rule-gate.entry.js +1 -1
  199. package/dist/esm/limebb-text-editor.entry.js +1 -1
  200. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  201. package/dist/esm/limebb-value-comparison-editor.entry.js +37 -35
  202. package/dist/esm/loader.js +1 -1
  203. package/dist/lime-crm-building-blocks/index.esm.js +1 -1
  204. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  205. package/dist/lime-crm-building-blocks/{p-0579d006.entry.js → p-05a1762a.entry.js} +1 -1
  206. package/dist/lime-crm-building-blocks/{p-e4cef02f.entry.js → p-19dc7242.entry.js} +1 -1
  207. package/dist/lime-crm-building-blocks/{p-96ea4550.entry.js → p-1f97e235.entry.js} +1 -1
  208. package/dist/lime-crm-building-blocks/{p-0f821315.entry.js → p-22e68812.entry.js} +1 -1
  209. package/dist/lime-crm-building-blocks/{p-3fc9866a.entry.js → p-251aca46.entry.js} +1 -1
  210. package/dist/lime-crm-building-blocks/{p-39009b47.entry.js → p-2dab7d4b.entry.js} +1 -1
  211. package/dist/lime-crm-building-blocks/{p-46dc34a6.entry.js → p-3f537135.entry.js} +1 -1
  212. package/dist/lime-crm-building-blocks/{p-f73e3da0.entry.js → p-430e3d11.entry.js} +1 -1
  213. package/dist/lime-crm-building-blocks/{p-817e2952.entry.js → p-43bdd66b.entry.js} +1 -1
  214. package/dist/lime-crm-building-blocks/p-58f18819.entry.js +1 -0
  215. package/dist/lime-crm-building-blocks/{p-302e6e3e.entry.js → p-6fe4c1cd.entry.js} +1 -1
  216. package/dist/lime-crm-building-blocks/{p-bf4b2a91.entry.js → p-7033d408.entry.js} +1 -1
  217. package/dist/lime-crm-building-blocks/{p-fce1a282.entry.js → p-73b71080.entry.js} +1 -1
  218. package/dist/lime-crm-building-blocks/{p-de785fee.entry.js → p-7b6c9cbf.entry.js} +1 -1
  219. package/dist/lime-crm-building-blocks/{p-be5c43bb.entry.js → p-863f456c.entry.js} +1 -1
  220. package/dist/lime-crm-building-blocks/{p-1cd148e2.entry.js → p-896e77b9.entry.js} +1 -1
  221. package/dist/lime-crm-building-blocks/{p-dacd1df3.entry.js → p-8986f27b.entry.js} +1 -1
  222. package/dist/lime-crm-building-blocks/{p-5b1ccfe1.entry.js → p-92bf5318.entry.js} +1 -1
  223. package/dist/lime-crm-building-blocks/{p-fd38bf57.entry.js → p-9452fb56.entry.js} +1 -1
  224. package/dist/lime-crm-building-blocks/{p-41ddbdde.entry.js → p-964b066d.entry.js} +1 -1
  225. package/dist/lime-crm-building-blocks/{p-D8CJOcfs.js → p-C_y3-T4Q.js} +1 -1
  226. package/dist/lime-crm-building-blocks/p-D1RJ1y7s.js +1 -0
  227. package/dist/lime-crm-building-blocks/p-a157233b.entry.js +1 -0
  228. package/dist/lime-crm-building-blocks/{p-13a35953.entry.js → p-a4e676a6.entry.js} +1 -1
  229. package/dist/lime-crm-building-blocks/{p-b0ec4121.entry.js → p-aafead4e.entry.js} +1 -1
  230. package/dist/lime-crm-building-blocks/{p-b7e5a10e.entry.js → p-b34817df.entry.js} +1 -1
  231. package/dist/lime-crm-building-blocks/{p-8d592755.entry.js → p-c0fa239a.entry.js} +1 -1
  232. package/dist/lime-crm-building-blocks/p-c4e2dca5.entry.js +1 -0
  233. package/dist/lime-crm-building-blocks/p-cac2a49f.entry.js +1 -0
  234. package/dist/lime-crm-building-blocks/{p-d95f66c8.entry.js → p-cd7106f7.entry.js} +1 -1
  235. package/dist/lime-crm-building-blocks/{p-bde3e779.entry.js → p-d40f53a5.entry.js} +1 -1
  236. package/dist/lime-crm-building-blocks/{p-e618ccd3.entry.js → p-d78370be.entry.js} +1 -1
  237. package/dist/lime-crm-building-blocks/{p-6cdefdc9.entry.js → p-d7d21bad.entry.js} +1 -1
  238. package/dist/lime-crm-building-blocks/{p-994296b0.entry.js → p-dba6f583.entry.js} +1 -1
  239. package/dist/lime-crm-building-blocks/p-dbbc5ba7.entry.js +1 -0
  240. package/dist/lime-crm-building-blocks/{p-69a3038b.entry.js → p-dec2b87d.entry.js} +1 -1
  241. package/dist/lime-crm-building-blocks/{p-9033acb5.entry.js → p-e242b955.entry.js} +1 -1
  242. package/dist/lime-crm-building-blocks/{p-5bc41701.entry.js → p-e29c27b8.entry.js} +1 -1
  243. package/dist/lime-crm-building-blocks/{p-d7d6d21b.entry.js → p-edeb359f.entry.js} +1 -1
  244. package/dist/lime-crm-building-blocks/{p-bd0a30d7.entry.js → p-f1090436.entry.js} +1 -1
  245. package/dist/lime-crm-building-blocks/{p-0f9a680c.entry.js → p-f3cb68d6.entry.js} +1 -1
  246. package/dist/lime-crm-building-blocks/{p-558915e4.entry.js → p-f4214745.entry.js} +1 -1
  247. package/dist/lime-crm-building-blocks/{p-e2420cde.entry.js → p-fb050628.entry.js} +1 -1
  248. package/dist/types/components/filter-chip/filter-condition-icons.d.ts +8 -0
  249. package/dist/types/components/filter-chip/filter-operators.d.ts +22 -0
  250. package/dist/types/components/filter-condition-picker/filter-condition-picker.d.ts +60 -0
  251. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.d.ts +8 -4
  252. package/dist/types/components/lime-query-builder/expressions/lime-query-operators.d.ts +16 -9
  253. package/dist/types/components/rule-editor/value-comparison-editor/value-comparison-editor.d.ts +7 -2
  254. package/dist/types/components.d.ts +164 -0
  255. package/dist/types/index.d.ts +1 -0
  256. package/package.json +5 -5
  257. package/dist/lime-crm-building-blocks/p-0843b50b.entry.js +0 -1
  258. package/dist/lime-crm-building-blocks/p-5b819d10.entry.js +0 -1
  259. package/dist/lime-crm-building-blocks/p-7a158104.entry.js +0 -1
  260. package/dist/lime-crm-building-blocks/p-92679e20.entry.js +0 -1
  261. package/dist/lime-crm-building-blocks/p-927e446d.entry.js +0 -1
@@ -56,8 +56,8 @@ const Browser = class {
56
56
  }
57
57
  render() {
58
58
  return [
59
- h("limel-input-field", { key: 'eb067bfce6cebf0d48da6ff940fd657380b6d1a4', tabIndex: 0, value: this.filter, type: "search", "leading-icon": "search", placeholder: this.translator.get('webclient.global-search-route'), onChange: this.handleChangeFilter, onKeyDown: this.handleKeyDown }),
60
- h("limel-list", { key: '80631ce6cd70018ae4481b8182387712d39b1f96', items: this.getItems(), type: "selectable", class: {
59
+ h("limel-input-field", { key: '8133f05dea6faf66bcdeb9621c2aa74b9945af5b', tabIndex: 0, value: this.filter, type: "search", "leading-icon": "search", placeholder: this.translator.get('webclient.global-search-route'), onChange: this.handleChangeFilter, onKeyDown: this.handleKeyDown }),
60
+ h("limel-list", { key: '586fa8bd9073db49e7c239f6fdd49f42904348ef', items: this.getItems(), type: "selectable", class: {
61
61
  'has-interactive-items': true,
62
62
  'has-grid-layout': this.layout === 'grid',
63
63
  }, onChange: this.handleChange }),
@@ -8,7 +8,7 @@ const ChatIconListComponent = class {
8
8
  registerInstance(this, hostRef);
9
9
  }
10
10
  render() {
11
- return (h(Host, { key: '37f41429c85d430370847b6ba08927757d97868f', id: this.item.id }, this.renderLabel(), h("div", { key: '958ef591606e10f95e43f4968110cb785f022dc7', class: "icons" }, this.item.icons.map((icon, index) => this.renderIcon(icon, index)))));
11
+ return (h(Host, { key: '8b396a9fe990300692e21c71e0674c412286db68', id: this.item.id }, this.renderLabel(), h("div", { key: '8f1da67a4bb6916a3a76203dee5c2050ac2db1d3', class: "icons" }, this.item.icons.map((icon, index) => this.renderIcon(icon, index)))));
12
12
  }
13
13
  renderLabel() {
14
14
  if (!this.item.label) {
@@ -99,9 +99,9 @@ const ChatListItem = class {
99
99
  }
100
100
  render() {
101
101
  const helperTextId = `helper-text-${this.item.id}`;
102
- return (h(Host, { key: '1e6c1cea485ef290ccaf883a7206e2db140a03de', id: this.item.id, "aria-describedby": this.helperText ? helperTextId : undefined, "aria-live": this.hasError ? 'assertive' : 'off', class: {
102
+ return (h(Host, { key: '7726b35958522c860513ba9ea7a119a4ee9dfe2d', id: this.item.id, "aria-describedby": this.helperText ? helperTextId : undefined, "aria-live": this.hasError ? 'assertive' : 'off', class: {
103
103
  [`${this.item.ui}`]: true,
104
- } }, h("div", { key: '9e726745a4e577fb56141693f94ad548a0dbb428', class: "bubble-content" }, h("div", { key: '30b9d1b5d27f658f43d65f60a8dfeb7c752ece7c', class: "icon-picture" }, this.renderIcon(), this.renderAuthorPicture()), this.renderErrorSign(), h("div", { key: '809b0064268e9ac537611a7244845d3622afd146', class: "item" }, this.renderHeader(), this.renderValue(), h("footer", { key: '5f5a9bfd1abe7b82d0bc8b5e04a0033de196d97f' }, this.renderHelperText(helperTextId), this.renderTimestamp()))), this.renderPromotedAction()));
104
+ } }, h("div", { key: '2092b4d2eb6a4149205fbddae42aa63893ae2c35', class: "bubble-content" }, h("div", { key: '728b94f59b744ac932ede9bef2a99d180c0675f3', class: "icon-picture" }, this.renderIcon(), this.renderAuthorPicture()), this.renderErrorSign(), h("div", { key: 'a87fbb4ba58928deace952f50f480483530ac552', class: "item" }, this.renderHeader(), this.renderValue(), h("footer", { key: '446921a64f33dc02c6d6b9ae3e6143b1ad7ee6d9' }, this.renderHelperText(helperTextId), this.renderTimestamp()))), this.renderPromotedAction()));
105
105
  }
106
106
  renderErrorSign() {
107
107
  if (!this.hasError) {
@@ -203,7 +203,7 @@ const TypingIndicator = class {
203
203
  registerInstance(this, hostRef);
204
204
  }
205
205
  render() {
206
- return (h("div", { key: 'a9d6cf448777260f6b0646b5435b5fc4e608fbd6', class: "typing-ellipsis" }, h("div", { key: 'a5ce17e35ab42f6f027bb0ad2886683a9f45fec6', class: "circle" }), h("div", { key: 'f0752c80704f720f7fe8a570c3cdec00aabfbc50', class: "circle" }), h("div", { key: '852536cd7c975e4d39e99b58e7f810d7dd2c1430', class: "circle" })));
206
+ return (h("div", { key: 'afc891f3443bdecefb025e3564679bf83d654e9a', class: "typing-ellipsis" }, h("div", { key: 'd886ca24a5c075b2cedc9c2902fd9bfbc995e418', class: "circle" }), h("div", { key: '73133ec43983aa1cdf50e9b505cba45e0c8bde04', class: "circle" }), h("div", { key: '624b5cc3b21336642acf53e6d3b867a60ae34a80', class: "circle" })));
207
207
  }
208
208
  };
209
209
  TypingIndicator.style = typingIndicatorCss();
@@ -397,7 +397,7 @@ const ChatList = class {
397
397
  this.scrollAnchor.afterRender();
398
398
  }
399
399
  render() {
400
- return (h(Host, { key: '9b74a79b098dfe001b8931f9ba8c6dc1644baa1a', class: {
400
+ return (h(Host, { key: '2aab7c285dab2438761d90107c573060802863bf', class: {
401
401
  'is-empty': this.items.length === 0 &&
402
402
  !this.isTypingIndicatorVisible,
403
403
  }, "aria-busy": this.isBusy(), role: "log" }, this.renderSpinner(), this.order === 'newest-on-top' &&
@@ -31,7 +31,7 @@ const ColorPalettePicker = class {
31
31
  this.optionsById = new Map(this.options.map((option) => [option.value, option]));
32
32
  }
33
33
  render() {
34
- return (h(Host, { key: 'dd5c38cb4b410f1a819547ee4e1ef200e5b74470' }, h("limel-select", { key: '0be8b51482986d95f3c949f10de115e465511ab9', label: this.label, helperText: this.helperText, disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, required: this.required, options: this.options, value: this.getSelectedOption(), onChange: this.handleChange })));
34
+ return (h(Host, { key: 'a5f44d09a862e67f6216bcad7f46eec29ced722a' }, h("limel-select", { key: 'a5cf05f6592bdda711def6ec1a05b56aee2b73c9', label: this.label, helperText: this.helperText, disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, required: this.required, options: this.options, value: this.getSelectedOption(), onChange: this.handleChange })));
35
35
  }
36
36
  /**
37
37
  * Resolve `this.value` against the cached options map. Returns
@@ -11,7 +11,7 @@ const ColorPaletteSwatches = class {
11
11
  this.colors = [];
12
12
  }
13
13
  render() {
14
- return (h(Host, { key: 'e4c3971072fcd0baa8615044e30098934ec64b69', "aria-hidden": "true" }, h("ol", { key: '721530cf997e348c58094479ca55fc3bc6d32a93' }, this.colors.map((color, index) => (h("li", { key: index, style: { backgroundColor: color } }))))));
14
+ return (h(Host, { key: '62b7189e13fb67c79e8da299a40b1ec621a2886f', "aria-hidden": "true" }, h("ol", { key: 'ae4bda8db0f631c0a8d7ea42f033c4bb1e37b1da' }, this.colors.map((color, index) => (h("li", { key: index, style: { backgroundColor: color } }))))));
15
15
  }
16
16
  };
17
17
  ColorPaletteSwatches.style = colorPaletteSwatchesCss();
@@ -64,8 +64,8 @@ const ComposerToolbar = class {
64
64
  }
65
65
  render() {
66
66
  return [
67
- h("div", { key: 'e489e22d79ddf53289add50121bc5e207363f393', class: "actions" }, h("slot", { key: 'b8e771341ed61bba095fc588eed806b6b6cc4201', name: "leading" }), this.renderFileInput(), this.renderTriggerActions(), h("slot", { key: '4ca9b9d8613159a9c4ab1177e13ea111b835399d', name: "trailing" })),
68
- h("slot", { key: '4dbc74d2a8b0ba9634dbb9783bc1d3c90d637cd7', name: "primary-action" }),
67
+ h("div", { key: '95a495c2289ee07d42b9f2ffd5b9f69634f0c70b', class: "actions" }, h("slot", { key: '3729266b77e939e980734556dc1417e34921b9a9', name: "leading" }), this.renderFileInput(), this.renderTriggerActions(), h("slot", { key: '211edc189658f512049b9e9487007a9e5b580134', name: "trailing" })),
68
+ h("slot", { key: '5c7e90a4577224f004e45b4f8447b330b6878138', name: "primary-action" }),
69
69
  ];
70
70
  }
71
71
  get translator() {
@@ -1968,7 +1968,7 @@ const CurrencyPicker = class {
1968
1968
  };
1969
1969
  }
1970
1970
  render() {
1971
- return (h("limel-picker", { key: 'f78c82b9d9beda17b65ed5898f0af68f74364c85', label: this.label || this.defaultLabel, value: this.createListItem(this.value), helperText: this.helperText, onChange: this.handleChange, badgeIcons: false, disabled: this.disabled, required: this.required, readonly: this.readonly, invalid: this.readonly, searcher: this.search }));
1971
+ return (h("limel-picker", { key: '8f907cef2bdcc25b1931f06f4bfdb54c0f6e4eec', label: this.label || this.defaultLabel, value: this.createListItem(this.value), helperText: this.helperText, onChange: this.handleChange, badgeIcons: false, disabled: this.disabled, required: this.required, readonly: this.readonly, invalid: this.readonly, searcher: this.search }));
1972
1972
  }
1973
1973
  getCurrencyName(code) {
1974
1974
  var _a;
@@ -16,7 +16,7 @@ const DashboardComponent = class {
16
16
  };
17
17
  }
18
18
  render() {
19
- return [this.renderHeader(), h("slot", { key: '6ded0fe72e2cad4fe6508cb8cb38d0eff0865bcc', name: "content" })];
19
+ return [this.renderHeader(), h("slot", { key: 'ab74c325ce14990b1e9bb7a29d361f13e4bab023', name: "content" })];
20
20
  }
21
21
  };
22
22
  DashboardComponent.style = dashboardWidgetCss();
@@ -73,7 +73,7 @@ const DatePicker = class {
73
73
  if (this.value) {
74
74
  this.shouldEmitValueAsString = typeof this.value === 'string';
75
75
  }
76
- return (h("limel-date-picker", { key: '2c1596c4b222106e4be7781c17cfa86fb2a6ea0f', disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, label: this.label, placeholder: this.placeholder, helperText: this.helperText, required: this.required, value: this.parseDateValue(), type: this.type, language: this.language, formatter: this.formatter, onChange: this.handleChange }));
76
+ return (h("limel-date-picker", { key: '218c0a409c7a508fd551099d1df5e7e05734db10', disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, label: this.label, placeholder: this.placeholder, helperText: this.helperText, required: this.required, value: this.parseDateValue(), type: this.type, language: this.language, formatter: this.formatter, onChange: this.handleChange }));
77
77
  }
78
78
  parseDateValue() {
79
79
  const value = this.value;
@@ -21,7 +21,7 @@ const DateRange = class {
21
21
  this.originalEndTime = this.endTime;
22
22
  }
23
23
  render() {
24
- return (h("div", { key: 'd2329327a3a68f1697d2008c1fa02b266a6268fa', class: "date-pickers" }, this.renderStartDatePicker(), this.renderEndDatePicker()));
24
+ return (h("div", { key: 'f6648162be4b8bf1605bce38cd584b8fe136c059', class: "date-pickers" }, this.renderStartDatePicker(), this.renderEndDatePicker()));
25
25
  }
26
26
  renderStartDatePicker() {
27
27
  if (!this.originalStartTime) {
@@ -345,7 +345,7 @@ const DocumentChips = class {
345
345
  this.revokeAllBlobUrls();
346
346
  }
347
347
  render() {
348
- return (h(Host, { key: '628907d27b78e79f65da61b32bdb7b851a3eef04', role: "list", "aria-label": this.accessibleLabel }, this.files.map((file) => this.renderFile(file))));
348
+ return (h(Host, { key: 'e74468ff9712e3e3bda315925b5204d5ef6ae91b', role: "list", "aria-label": this.accessibleLabel }, this.files.map((file) => this.renderFile(file))));
349
349
  }
350
350
  renderFile(file) {
351
351
  const isReady = !file.uploadState || file.uploadState === 'done';
@@ -114,10 +114,10 @@ const DocumentItemComponent = class {
114
114
  render() {
115
115
  const isUnavailable = this.isUnavailable();
116
116
  const image = this.getImage();
117
- return (h(Host, { key: '532fff336523f37eec1376e7abdb7d8ad7fe754d', id: String(this.item.file.id), class: {
117
+ return (h(Host, { key: '802076b3b96c854277a01fa7833a1ccdb942eff4', id: String(this.item.file.id), class: {
118
118
  'has-image': !!image,
119
119
  'has-error': !!this.item.hasError,
120
- }, role: this.type === 'radio' ? 'radio' : 'checkbox', "aria-checked": this.item.selected ? 'true' : 'false', "aria-disabled": isUnavailable ? 'true' : 'false', tabIndex: isUnavailable ? -1 : 0 }, h("limel-card", { key: 'fed54bcd54a754d0a61a2d7acec2591515b4d3de', image: image, clickable: isUnavailable ? false : true, onClick: this.handleDocumentItemClick, onKeyDown: this.handleKeyDown }, h("div", { key: '56ee7307fdb644364db3da43b48a53a985d661d9', slot: "component" }, this.renderFileSize(), this.renderBooleanInput())), this.renderHelp()));
120
+ }, role: this.type === 'radio' ? 'radio' : 'checkbox', "aria-checked": this.item.selected ? 'true' : 'false', "aria-disabled": isUnavailable ? 'true' : 'false', tabIndex: isUnavailable ? -1 : 0 }, h("limel-card", { key: '4c8149a090818f69c8ad7ced12d46d3f405f2601', image: image, clickable: isUnavailable ? false : true, onClick: this.handleDocumentItemClick, onKeyDown: this.handleKeyDown }, h("div", { key: 'bfcd9153638e17e8d332395739dc835eee684707', slot: "component" }, this.renderFileSize(), this.renderBooleanInput())), this.renderHelp()));
121
121
  }
122
122
  renderBooleanInput() {
123
123
  const id = this.getControlId();
@@ -66,7 +66,7 @@ const DocumentPicker = class {
66
66
  this.labelId = createRandomString();
67
67
  }
68
68
  render() {
69
- return (h(Host, { key: '40bc1bd642e680f5914c472b024336cd3d85a28e' }, h("limel-notched-outline", { key: '38c00a5a207c9873211cfe8a4ce001405bfa14b2', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, hasFloatingLabel: true }, h("limel-masonry-layout", { key: 'e0811c99105ac55b7fd089411670fe23bb637b63', slot: "content", role: this.type === 'radio' ? 'radiogroup' : 'group', "aria-labelledby": this.label ? this.labelId : undefined, "aria-describedby": this.helperText ? this.helperTextId : undefined }, this.renderItems())), this.renderHelperLine()));
69
+ return (h(Host, { key: 'b49d5f3c6598651dd7e6c87884cb1aefa6c423f6' }, h("limel-notched-outline", { key: '89c635494ccbac031af5ac8470804fe096b315ac', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, hasFloatingLabel: true }, h("limel-masonry-layout", { key: 'c465e0dd11e74957526c7ffb18ccfa73b5b42f01', slot: "content", role: this.type === 'radio' ? 'radiogroup' : 'group', "aria-labelledby": this.label ? this.labelId : undefined, "aria-describedby": this.helperText ? this.helperTextId : undefined }, this.renderItems())), this.renderHelperLine()));
70
70
  }
71
71
  renderItems() {
72
72
  return this.items.map((item) => (h("limebb-document-item", { platform: this.platform, context: this.context, item: item, key: item.file.id, type: this.type, onInteract: this.handleItemInteract })));
@@ -7,7 +7,7 @@ const FeedItemThumbnailFileInfo = class {
7
7
  registerInstance(this, hostRef);
8
8
  }
9
9
  render() {
10
- return h("span", { key: '2a85325e57d44c3ea5dcc262de0ede9aace8f4a6' }, this.description);
10
+ return h("span", { key: '418abbe9f287784ed8f9dfa1a8ba4e343cdcda3b' }, this.description);
11
11
  }
12
12
  };
13
13
  FeedItemThumbnailFileInfo.style = feedItemThumbnailFileInfoCss();
@@ -204,7 +204,7 @@ const FeedTimelineItem = class {
204
204
  render() {
205
205
  var _a, _b;
206
206
  const helperTextId = `helper-text-${this.item.id}`;
207
- return (h(Host, { key: '84e91c4401825cadc19d3a550c3047df0510230e', id: this.item.id, class: {
207
+ return (h(Host, { key: '0d1ba9124ef0451e73e6c66261015d193cde01b0', id: this.item.id, class: {
208
208
  'has-unpromoted-actions': !!((_a = this.item.unpromotedActions) === null || _a === void 0 ? void 0 : _a.length),
209
209
  'has-author-picture': !!((_b = this.item.author) === null || _b === void 0 ? void 0 : _b.picture),
210
210
  'shows-less': !this.showMore,
@@ -556,7 +556,7 @@ const Feed = class {
556
556
  this.highlighter.unregisterFeed(this.feedItemElement);
557
557
  }
558
558
  render() {
559
- return (h(Host, { key: '039b9edef50f1e306d67a3cd390149f65424bbe7', role: "log", "aria-busy": this.loading ? 'true' : 'false', style: {
559
+ return (h(Host, { key: 'a9313ef92a734e391ee178a1d0f2c3bcc3a7ec19', role: "log", "aria-busy": this.loading ? 'true' : 'false', style: {
560
560
  '--limebb-feed-highlight-duration': `${ITEM_HIGHLIGHT_DURATION}ms`,
561
561
  } }, this.renderLoadMore(), this.renderEmptyFeedMessage(), this.renderSpinner(), this.renderFeedItems()));
562
562
  }
@@ -1,7 +1,8 @@
1
1
  import { r as registerInstance, c as createEvent, g as getElement, h, H as Host } from './index-DwHAn7LS.js';
2
2
  import { b as n, n as nt, L as Le } from './index.esm-C-L5fkQs.js';
3
3
  import { c as createRandomString } from './random-string-C2JP2nLw.js';
4
- import { g as getFilterConditionIcon, c as getFilterConditionLabelKey } from './filter-condition-icons-D8CJOcfs.js';
4
+ import { g as getFilterConditionIcon, c as getFilterConditionLabelKey, d as getConditionsForPropertyType } from './filter-condition-icons-C_y3-T4Q.js';
5
+ import { o as operatorsToConditions, c as conditionToOperator, a as operatorToCondition } from './filter-operators-Lw-ccmxQ.js';
5
6
  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-BMY_GEsX.js';
6
7
  import { g as getPropertyFromPath } from './property-resolution-CQUZjrU4.js';
7
8
  import { g as getActualPropertyType, m as mapPropertyTypeToPickerType } from './type-resolution-CVEd2QZ8.js';
@@ -88,8 +89,8 @@ const FilterChip = class {
88
89
  const items = this.getDisplayItems();
89
90
  const conjunction = this.getConjunctionText();
90
91
  const helperLabel = this.getHelperLabel(items, conjunction);
91
- return (h(Host, { key: 'cd41bd4000ec52bba65131fcbdfaddcc57b5a19c' }, this.renderLabel(), h("button", { key: 'f9e4ad789d1234b6793215fba49922dfa22ed642', class: { chip: true }, type: "button", id: chipId, "aria-label": [this.label, helperLabel].filter(Boolean).join(', ') ||
92
- this.getFilterLabel(), "aria-pressed": this.getAriaPressed(), onKeyDown: this.handleKeyDown, disabled: this.disabled }, this.renderIcon(), this.renderValue(items, conjunction)), this.renderRemoveButton(chipId), h("limel-tooltip", { key: '2039675de876cd689295c4cd16d895da64437091', elementId: chipId, label: this.label || this.getFilterLabel(), helperLabel: helperLabel })));
92
+ return (h(Host, { key: '291c2a6437491c9a5152b87af18476c2fb2f69bc' }, this.renderLabel(), h("button", { key: '8a51d37a3aa1f3b6a49dd15b0f6705fdc4c9ced3', class: { chip: true }, type: "button", id: chipId, "aria-label": [this.label, helperLabel].filter(Boolean).join(', ') ||
93
+ this.getFilterLabel(), "aria-pressed": this.getAriaPressed(), onKeyDown: this.handleKeyDown, disabled: this.disabled }, this.renderIcon(), this.renderValue(items, conjunction)), this.renderRemoveButton(chipId), h("limel-tooltip", { key: '522b0a8736e302e074914bf672c350ead53e418b', elementId: chipId, label: this.label || this.getFilterLabel(), helperLabel: helperLabel })));
93
94
  }
94
95
  /**
95
96
  * `aria-pressed` only makes sense for an interactive toggle. A readonly
@@ -291,65 +292,107 @@ const FilterChip = class {
291
292
  };
292
293
  FilterChip.style = filterChipCss();
293
294
 
295
+ const filterConditionPickerCss = () => `:host(limebb-filter-condition-picker){display:inline-block}.condition{--limel-notched-outline-label-color:transparent}`;
296
+
297
+ /**
298
+ * Accessible label for the control: set for screen readers but hidden visually
299
+ * (see the stylesheet). Reuses the shared, localized "Operator" label.
300
+ */
301
+ const LABEL_KEY = 'webclient.operator';
302
+ const FilterConditionPicker = class {
303
+ constructor(hostRef) {
304
+ registerInstance(this, hostRef);
305
+ this.change = createEvent(this, "change");
306
+ /**
307
+ * Whether the picker is disabled.
308
+ */
309
+ this.disabled = false;
310
+ this.handleChange = (event) => {
311
+ event.stopPropagation();
312
+ if (event.detail) {
313
+ this.change.emit(event.detail.value);
314
+ }
315
+ };
316
+ }
317
+ render() {
318
+ const items = this.buildItems();
319
+ const selected = this.selectedOption(items);
320
+ return (h(Host, { key: 'ca926963d368460db20fa8961f49825d19ae2c07' }, h("limel-select", { key: '5571b580b7da63d1a95fef6cb9b204ed3b32cf75', class: "condition", label: this.accessibleLabel, disabled: this.disabled, options: items, value: selected, onChange: this.handleChange })));
321
+ }
322
+ buildItems() {
323
+ var _a;
324
+ const conditions = (_a = this.conditions) !== null && _a !== void 0 ? _a : getConditionsForPropertyType(this.propertyType);
325
+ // Divider before the empty / not-empty group and before "matches".
326
+ const emptyGroupStart = conditions.findIndex((condition) => condition === 'empty' || condition === 'not-empty');
327
+ const matchesIndex = conditions.indexOf('matches');
328
+ const items = [];
329
+ for (const [index, condition] of conditions.entries()) {
330
+ if (index > 0 &&
331
+ (index === emptyGroupStart || index === matchesIndex)) {
332
+ items.push({ separator: true });
333
+ }
334
+ items.push({
335
+ value: condition,
336
+ text: this.conditionLabel(condition),
337
+ icon: getFilterConditionIcon(condition, this.propertyType),
338
+ });
339
+ }
340
+ return items;
341
+ }
342
+ selectedOption(items) {
343
+ const options = items.filter((item) => !('separator' in item));
344
+ return options.find((option) => option.value === this.value);
345
+ }
346
+ get accessibleLabel() {
347
+ var _a;
348
+ return (_a = this.translate(LABEL_KEY)) !== null && _a !== void 0 ? _a : 'Operator';
349
+ }
350
+ conditionLabel(condition) {
351
+ var _a;
352
+ const key = getFilterConditionLabelKey(condition, this.propertyType);
353
+ return (_a = (key ? this.translate(key) : undefined)) !== null && _a !== void 0 ? _a : condition;
354
+ }
355
+ translate(key) {
356
+ var _a;
357
+ const translated = (_a = this.translator) === null || _a === void 0 ? void 0 : _a.get(key);
358
+ return translated && translated !== key ? translated : undefined;
359
+ }
360
+ get translator() {
361
+ var _a;
362
+ try {
363
+ return (_a = this.platform) === null || _a === void 0 ? void 0 : _a.get(n.Translate);
364
+ }
365
+ catch (_b) {
366
+ return;
367
+ }
368
+ }
369
+ };
370
+ FilterConditionPicker.style = filterConditionPickerCss();
371
+
372
+ /**
373
+ * The comparison operators the query builder can author, in the order the
374
+ * condition picker lists them. This is the query builder's capability — which
375
+ * operators it can serialize — not a per-property-type catalog. The
376
+ * operator↔condition translation lives in the shared `filter-operators` helpers.
377
+ */
294
378
  const LIME_QUERY_OPERATORS = [
295
- {
296
- value: nt.EQUALS,
297
- label: 'webclient.operator.equals',
298
- icon: '-lime-filter-equal',
299
- },
300
- {
301
- value: nt.NOT_EQUALS,
302
- label: 'webclient.operator.not-equals',
303
- icon: '-lime-filter-equal-not',
304
- },
305
- {
306
- value: nt.GREATER,
307
- label: 'webclient.operator.greater-than',
308
- icon: '-lime-filter-greater',
309
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
310
- },
311
- {
312
- value: nt.GREATER_OR_EQUAL,
313
- label: 'webclient.operator.greater-than-or-equal-to',
314
- icon: '-lime-filter-greater-equal',
315
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
316
- },
317
- {
318
- value: nt.LESS,
319
- label: 'webclient.operator.less-than',
320
- icon: '-lime-filter-less',
321
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
322
- },
323
- {
324
- value: nt.LESS_OR_EQUAL,
325
- label: 'webclient.operator.less-than-or-equal-to',
326
- icon: '-lime-filter-less-equal',
327
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
328
- },
329
- {
330
- value: nt.IN,
331
- label: 'webclient.operator.in-filter',
332
- icon: '-lime-filter-set-included',
333
- },
334
- {
335
- value: nt.LIKE,
336
- label: 'webclient.operator.contains',
337
- icon: '-lime-filter-contain',
338
- applicableTypes: ['string', 'text'],
339
- },
340
- {
341
- value: nt.BEGINS,
342
- label: 'webclient.operator.begins-with',
343
- icon: '-lime-filter-starts-with',
344
- applicableTypes: ['string', 'text'],
345
- },
346
- {
347
- value: nt.ENDS,
348
- label: 'webclient.operator.ends-with',
349
- icon: '-lime-filter-ends-with',
350
- applicableTypes: ['string', 'text'],
351
- },
379
+ nt.EQUALS,
380
+ nt.NOT_EQUALS,
381
+ nt.GREATER,
382
+ nt.GREATER_OR_EQUAL,
383
+ nt.LESS,
384
+ nt.LESS_OR_EQUAL,
385
+ nt.IN,
386
+ nt.LIKE,
387
+ nt.BEGINS,
388
+ nt.ENDS,
352
389
  ];
390
+ /**
391
+ * The conditions the query builder offers, in display order — handed to the
392
+ * `limebb-filter-condition-picker` as its `conditions` list. Derived from
393
+ * {@link LIME_QUERY_OPERATORS} so the two never drift.
394
+ */
395
+ const LIME_QUERY_CONDITIONS = operatorsToConditions(LIME_QUERY_OPERATORS);
353
396
 
354
397
  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}`;
355
398
 
@@ -361,9 +404,12 @@ const LimeQueryFilterComparisonEditorComponent = class {
361
404
  event.stopPropagation();
362
405
  this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { key: event.detail }));
363
406
  };
364
- this.handleOperatorChange = (event) => {
407
+ this.handleConditionChange = (event) => {
365
408
  event.stopPropagation();
366
- const newOperator = event.detail.value;
409
+ const newOperator = conditionToOperator(event.detail);
410
+ if (!newOperator) {
411
+ return;
412
+ }
367
413
  const oldOperator = this.expression.op;
368
414
  let convertedValue = this.expression.exp;
369
415
  // IN expects an array; other operators expect a single value.
@@ -395,23 +441,14 @@ const LimeQueryFilterComparisonEditorComponent = class {
395
441
  (_a = this.propertySelectorEl) === null || _a === void 0 ? void 0 : _a.focus();
396
442
  }
397
443
  render() {
398
- return (h(Host, { key: '05ca2dc867f8c42e2ca1299cd33c0f3faae0ed31' }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput()));
444
+ return (h(Host, { key: '528f313843bb6e8e779fc3a5603c10769cbd183b' }, this.renderPropertySelector(), this.renderConditionPicker(), this.renderValueInput()));
399
445
  }
400
446
  renderPropertySelector() {
401
447
  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 }));
402
448
  }
403
- renderOperator() {
449
+ renderConditionPicker() {
404
450
  const operatorHasBeenSet = !!this.expression.op;
405
- const options = LIME_QUERY_OPERATORS.map((op) => {
406
- var _a, _b;
407
- return ({
408
- text: (_b = (_a = this.translator) === null || _a === void 0 ? void 0 : _a.get(op.label)) !== null && _b !== void 0 ? _b : op.label,
409
- value: op.value,
410
- icon: op.icon ? { name: op.icon } : undefined,
411
- });
412
- });
413
- const selectedOption = options.find((o) => o.value === this.expression.op);
414
- return (h("limel-select", { class: "operator", label: "Operator", value: selectedOption, options: options, disabled: !operatorHasBeenSet && !this.expression.key, onChange: this.handleOperatorChange }));
451
+ return (h("limebb-filter-condition-picker", { class: "operator", platform: this.platform, propertyType: this.propertyType, conditions: LIME_QUERY_CONDITIONS, value: operatorToCondition(this.expression.op), disabled: !operatorHasBeenSet && !this.expression.key, onChange: this.handleConditionChange }));
415
452
  }
416
453
  renderValueInput() {
417
454
  if (!this.expression.op) {
@@ -419,10 +456,6 @@ const LimeQueryFilterComparisonEditorComponent = class {
419
456
  }
420
457
  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 }));
421
458
  }
422
- get translator() {
423
- var _a;
424
- return (_a = this.platform) === null || _a === void 0 ? void 0 : _a.get(n.Translate);
425
- }
426
459
  static get delegatesFocus() { return true; }
427
460
  };
428
461
  LimeQueryFilterComparisonEditorComponent.style = limeQueryFilterComparisonEditorCss();
@@ -510,9 +543,9 @@ const LimeQueryFilterGroupComponent = class {
510
543
  const combinator = getCombinator(this.expression);
511
544
  const inner = getInnerAndOr(this.expression);
512
545
  const selected = COMBINATOR_OPTIONS.find((o) => o.value === combinator);
513
- return (h(Host, { key: 'c94790ff047e47ada5e9142af88bff0c8250e34f', "data-op": combinator, style: {
546
+ return (h(Host, { key: '6b7013b523d0313f053f5a057db99d23e5c35041', "data-op": combinator, style: {
514
547
  '--limebb-query-filter-group-color-code': OP_STYLE[combinator].color,
515
- } }, h("div", { key: '6bc8daa9b292993e2740dbc0a2f1b0a7f2df4722', class: "group" }, h("div", { key: '8a171940ef57d657c3638943108e997bb84bde21', class: "group-header" }, h("limel-select", { key: '179abcc11b79527f7b8d0863b2e8d81de5bd3267', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: '3a604b24ccff02ac257d3440c82dbc33dc9f4f16', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: 'f65734f8d7cc66886065a511a90108c9316d4d7b', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: '252726aea61aefead90fc6ce421de9eb74288253', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: '2a5839a10a8b9ebb85f53d867c8870ad92ab0984', class: "add-group", size: "small", text: "Group", icon: {
548
+ } }, h("div", { key: '03bea15e4967f91d1e46a961aba64c04b1aff530', class: "group" }, h("div", { key: '26ca358c38a27e2fc24ac1b176ce338f885f2a31', class: "group-header" }, h("limel-select", { key: '46403ec7c67766ac4eb08b03eaac1eafeb92c0ff', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: 'cfdb09d1656dc4a87a40c6d1cf5e5a4e0c2aeba0', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: '55bb718c9ece64898a41bf95ff301bbeade8a4cd', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: '34c653a547ce2406938eece661c5d468c84871f3', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: 'b27939aced4774b9b738e81d07a7ed4b040f3b77', class: "add-group", size: "small", text: "Group", icon: {
516
549
  name: 'plus_math',
517
550
  title: 'Add',
518
551
  color: 'var(--group-rail-color)',
@@ -552,7 +585,7 @@ const LimeQueryFilterNotComponent = class {
552
585
  };
553
586
  }
554
587
  render() {
555
- return (h("div", { key: '73fa671599ac9f124797567f49af67941dd30e36', class: "expression" }, this.label && h("limel-header", { key: '959feb78614f0088b9946ccb492f32900a410ff8', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '78ce884774a3831c18ad329fb1eacc4e54cd3623', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
588
+ return (h("div", { key: '38ddcfda3b05cd9bc0c510f55d2712472ee2886f', class: "expression" }, this.label && h("limel-header", { key: '5b05cbb7bbd7fb1940c0d7c27b4578f6551833a8', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '4057437167e652f31aa02148e511cfe9a9b26ccb', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
556
589
  }
557
590
  };
558
591
  LimeQueryFilterNotComponent.style = limeQueryFilterNotCss();
@@ -798,4 +831,4 @@ __decorate([
798
831
  ], LimeQueryValueInput.prototype, "limetypes", void 0);
799
832
  LimeQueryValueInput.style = limeQueryValueInputCss();
800
833
 
801
- export { FilterChip as limebb_filter_chip, 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 };
834
+ export { FilterChip as limebb_filter_chip, FilterConditionPicker as limebb_filter_condition_picker, 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 };
@@ -53110,7 +53110,7 @@ const IconPicker = class {
53110
53110
  icon: this.value,
53111
53111
  };
53112
53112
  }
53113
- return (h("limel-picker", { key: 'd71d9babaf189723ccb3ece1722826054e109f70', label: this.label, helperText: this.helperText, disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, required: this.required, value: value, searcher: this.search, onChange: this.handleChange, badgeIcons: false, leadingIcon: "search", searchLabel: "Start typing to find the right icon" }));
53113
+ return (h("limel-picker", { key: 'bf6b76bbcea838150261e9e0037b1d7ca1ee08d1', label: this.label, helperText: this.helperText, disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, required: this.required, value: value, searcher: this.search, onChange: this.handleChange, badgeIcons: false, leadingIcon: "search", searchLabel: "Start typing to find the right icon" }));
53114
53114
  }
53115
53115
  };
53116
53116
 
@@ -91,7 +91,7 @@ const InfoTileAdminConfig = class {
91
91
  },
92
92
  ];
93
93
  return [
94
- h("limel-button-group", { key: '5ec61e22f0049afba77310ef1162c361a71f3290', value: buttons.filter(this.isValidButton), onChange: this.handleChangeType }),
94
+ h("limel-button-group", { key: '68999f607fd66a5a451929d6720200734c6505ea', value: buttons.filter(this.isValidButton), onChange: this.handleChangeType }),
95
95
  this.renderFormatConfig(),
96
96
  ];
97
97
  }
@@ -483,7 +483,7 @@ const InfoTile = class {
483
483
  const errorProps = Object.assign(Object.assign({}, baseProps), { icon: 'error', prefix: 'ERROR', loading: true, label: this.getLabel(filter) });
484
484
  const normalProps = Object.assign(Object.assign({}, baseProps), { label: this.getLabel(filter), link: this.getLink(filter), loading: this.loading, value: value === null || value === void 0 ? void 0 : value.value.trim() });
485
485
  const props = !filter || this.error ? errorProps : normalProps;
486
- return (h("limel-info-tile", Object.assign({ key: '8ce57413673c0feddc8cff70c66845ddacee5f74', class: { error: !filter || this.error } }, props)));
486
+ return (h("limel-info-tile", Object.assign({ key: '802c93fade2b3aff10e53c1a970798b994bff2d2', class: { error: !filter || this.error } }, props)));
487
487
  }
488
488
  /**
489
489
  * Effective `reducedPresence` for this render. The boolean prop
@@ -27,7 +27,7 @@ const KanbanGroup = class {
27
27
  };
28
28
  }
29
29
  render() {
30
- return (h(Host, { key: '074640215f29d21e8d3f38b81850823e8a93ce3c' }, this.renderHelp(), this.renderGroupHeading(), this.renderGroupSummary(), this.renderItems()));
30
+ return (h(Host, { key: '5c0675c4edff236ac8b4d90c93d418e3b0c18a9c' }, this.renderHelp(), this.renderGroupHeading(), this.renderGroupSummary(), this.renderItems()));
31
31
  }
32
32
  renderGroupSummary() {
33
33
  if (!this.summary || !this.totalCount) {
@@ -55,7 +55,7 @@ const KanbanItemComponent = class {
55
55
  }
56
56
  render() {
57
57
  var _a, _b;
58
- return (h(Host, { key: '6eb7fa30141a62e40588a59f17d27392dac78b90', id: this.item.id.toString(), class: {
58
+ return (h(Host, { key: '282342e6a11234154e4cbcc8df113aafd5cd9cd2', id: this.item.id.toString(), class: {
59
59
  'has-unpromoted-actions': !!((_a = this.item.unpromotedActions) === null || _a === void 0 ? void 0 : _a.length),
60
60
  'is-selected': !!((_b = this.item) === null || _b === void 0 ? void 0 : _b.selected),
61
61
  }, style: {
@@ -149,7 +149,7 @@ const LimeQueryBuilder = class {
149
149
  }
150
150
  }
151
151
  render() {
152
- return (h(Host, { key: 'fbecd3d9b61ea135192a2dc7a4c1e9c22835331b' }, this.renderHeader(), this.renderContent()));
152
+ return (h(Host, { key: 'd03160151a6467401424351f0bf7d05211800bf0' }, this.renderHeader(), this.renderContent()));
153
153
  }
154
154
  renderContent() {
155
155
  const visualModeSupported = this.checkVisualModeSupport();
@@ -1,30 +1,12 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-DwHAn7LS.js';
2
2
  import { b as n, n as nt } from './index.esm-C-L5fkQs.js';
3
+ import { a as operatorToCondition } from './filter-operators-Lw-ccmxQ.js';
3
4
  import { a as getNormalizedProperties } from './property-resolution-CQUZjrU4.js';
4
5
  import { g as getActualPropertyType } from './type-resolution-CVEd2QZ8.js';
5
6
  import { a as asGroupExpression } from './filter-group-logic-BMY_GEsX.js';
6
7
 
7
8
  const limeQueryFilterComparisonCss = () => `:host(limebb-lime-query-filter-comparison){display:inline-block;max-width:25rem}`;
8
9
 
9
- /**
10
- * Maps each query-builder comparison operator onto the shared, UI-agnostic
11
- * `FilterCondition` vocabulary. The shared `limebb-filter-chip` resolves the
12
- * icon and the wording from the condition (refined by the property type), so
13
- * the query builder shows the same glyphs and operator names as every other
14
- * filter UI.
15
- */
16
- const OPERATOR_TO_CONDITION = {
17
- [nt.EQUALS]: 'equals',
18
- [nt.NOT_EQUALS]: 'not-equals',
19
- [nt.GREATER]: 'greater-than',
20
- [nt.GREATER_OR_EQUAL]: 'greater-than-or-equal',
21
- [nt.LESS]: 'less-than',
22
- [nt.LESS_OR_EQUAL]: 'less-than-or-equal',
23
- [nt.IN]: 'in-filter-set',
24
- [nt.LIKE]: 'contains',
25
- [nt.BEGINS]: 'begins-with',
26
- [nt.ENDS]: 'ends-with',
27
- };
28
10
  const LimeQueryFilterComparisonComponent = class {
29
11
  constructor(hostRef) {
30
12
  registerInstance(this, hostRef);
@@ -54,13 +36,14 @@ const LimeQueryFilterComparisonComponent = class {
54
36
  var _a, _b;
55
37
  const hasKey = !!((_a = this.expression) === null || _a === void 0 ? void 0 : _a.key);
56
38
  const isList = Array.isArray((_b = this.expression) === null || _b === void 0 ? void 0 : _b.exp);
57
- return (h(Host, { key: '92e4a7debccbe2123c8fffe7b964ea51c5c1d586' }, this.renderHeader(), h("limel-popover", { key: '494afe14c58684826256ad275b16febd81d47d7a', open: this.isOpen, openDirection: "bottom-start", onClose: this.handleClose }, h("limebb-filter-chip", { key: '99c495cf63fc9ccc8067f7f0feb6d0d7884d3ca8', slot: "trigger", platform: this.platform, label: hasKey
39
+ const propertyType = hasKey
40
+ ? this.getPropertyType(this.expression.key)
41
+ : undefined;
42
+ return (h(Host, { key: '3e312a0124577ab70c6ab46074f7a34e0b87decc' }, this.renderHeader(), h("limel-popover", { key: '37b5e3b58ef4a20950b1f6fc24075388b4bdc932', open: this.isOpen, openDirection: "bottom-start", onClose: this.handleClose }, h("limebb-filter-chip", { key: 'd34fc11734714a8b83ef7c014fd9468522e8ffbf', slot: "trigger", platform: this.platform, label: hasKey
58
43
  ? this.getPropertyLabel(this.expression.key)
59
44
  : undefined, condition: hasKey
60
- ? OPERATOR_TO_CONDITION[this.expression.op]
61
- : undefined, propertyType: hasKey
62
- ? this.getPropertyType(this.expression.key)
63
- : undefined, value: hasKey ? this.chipValue() : 'New condition', conjunction: isList ? 'or' : undefined, selected: this.isOpen, removable: true, onClick: this.handleOpen, onRemove: this.removeExpression }), h("limebb-lime-query-filter-comparison-editor", { key: '0d56cccd56078eac4d988d757cae85897b8a48c7', platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, onExpressionChange: this.handleEditorChange }))));
45
+ ? operatorToCondition(this.expression.op)
46
+ : undefined, propertyType: propertyType, value: hasKey ? this.chipValue() : 'New condition', conjunction: isList ? 'or' : undefined, selected: this.isOpen, removable: true, onClick: this.handleOpen, onRemove: this.removeExpression }), h("limebb-lime-query-filter-comparison-editor", { key: 'abaa2fbbdf8ab350f1da21412b82405d02f1546f', platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, propertyType: propertyType, onExpressionChange: this.handleEditorChange }))));
64
47
  }
65
48
  getPropertyLabel(key) {
66
49
  return this.resolveProperty(key).labels.join(' › ');
@@ -119,7 +119,7 @@ const OrderByEditor = class {
119
119
  }
120
120
  }
121
121
  render() {
122
- return (h(Host, { key: 'ce933b9c6df59149fa40d26f7e38bdce89208df0' }, this.renderEmptyState(), this.renderOrderByEditor()));
122
+ return (h(Host, { key: '5eaad5237f6ccce6d93610bf4987cce10c06abaf' }, this.renderEmptyState(), this.renderOrderByEditor()));
123
123
  }
124
124
  renderEmptyState() {
125
125
  if (this.limetype) {
@@ -249,7 +249,7 @@ const LimetypeField = class {
249
249
  value: '',
250
250
  };
251
251
  options.unshift(emptyOption);
252
- return (h("limel-select", { key: '412e4360e37481f5e5e42eb6018a78350bcde4ae', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
252
+ return (h("limel-select", { key: '4c17fbdd5760fcb83fef57f7204df42c91f70f7f', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
253
253
  }
254
254
  componentWillRender() {
255
255
  this.updatePropertyFields(this.value || '');