@limetech/lime-crm-building-blocks 1.134.0 → 1.135.1

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 (285) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/{filter-group-logic-Bwk6B784.js → filter-group-logic-Dp9o1iOJ.js} +1 -1
  3. package/dist/cjs/{index.esm-DcWSoSRE.js → index.esm-Dgkx-Syd.js} +2 -2
  4. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  5. package/dist/cjs/{lime-query-operators-Ci-RNshi.js → lime-query-operators-B6PujuTH.js} +1 -1
  6. package/dist/cjs/{lime-query-validation-nql4N6Z8.js → lime-query-validation-BszGOirf.js} +1 -1
  7. package/dist/cjs/limebb-alert-dialog.cjs.entry.js +1 -1
  8. package/dist/cjs/limebb-browser.cjs.entry.js +3 -3
  9. package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +5 -5
  10. package/dist/cjs/limebb-chat-list.cjs.entry.js +2 -2
  11. package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +1 -1
  12. package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +1 -1
  13. package/dist/cjs/limebb-component-config.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-component-picker.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +3 -3
  16. package/dist/cjs/limebb-currency-picker.cjs.entry.js +2 -2
  17. package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +1 -1
  18. package/dist/cjs/limebb-data-cells.cjs.entry.js +1 -1
  19. package/dist/cjs/limebb-date-picker.cjs.entry.js +2 -2
  20. package/dist/cjs/limebb-date-range.cjs.entry.js +1 -1
  21. package/dist/cjs/limebb-document-chips.cjs.entry.js +1 -1
  22. package/dist/cjs/limebb-document-item.cjs.entry.js +2 -2
  23. package/dist/cjs/limebb-document-picker.cjs.entry.js +1 -1
  24. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +2 -2
  26. package/dist/cjs/limebb-feed.cjs.entry.js +2 -2
  27. package/dist/cjs/limebb-icon-picker.cjs.entry.js +1 -1
  28. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
  29. package/dist/cjs/limebb-info-tile.cjs.entry.js +44 -9
  30. package/dist/cjs/limebb-kanban-group.cjs.entry.js +2 -2
  31. package/dist/cjs/limebb-kanban-item.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +3 -3
  33. package/dist/cjs/limebb-lime-query-filter-builder.cjs.entry.js +2 -2
  34. package/dist/cjs/limebb-lime-query-filter-comparison-editor_4.cjs.entry.js +7 -7
  35. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +4 -4
  36. package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +4 -4
  37. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +2 -2
  38. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +3 -3
  39. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +1 -1
  40. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +1 -1
  41. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  42. package/dist/cjs/limebb-loader.cjs.entry.js +18 -1
  43. package/dist/cjs/limebb-locale-picker.cjs.entry.js +2 -2
  44. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  45. package/dist/cjs/limebb-mention.cjs.entry.js +1 -1
  46. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +2 -2
  47. package/dist/cjs/limebb-notification-item.cjs.entry.js +2 -2
  48. package/dist/cjs/limebb-notification-list.cjs.entry.js +1 -1
  49. package/dist/cjs/limebb-object-chip.cjs.entry.js +2 -2
  50. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +3 -3
  51. package/dist/cjs/limebb-property-selector.cjs.entry.js +17 -22
  52. package/dist/cjs/limebb-rule-arg-filter-editor.cjs.entry.js +1 -1
  53. package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +2 -2
  54. package/dist/cjs/limebb-rule-editor.cjs.entry.js +2 -2
  55. package/dist/cjs/limebb-rule-gate.cjs.entry.js +2 -2
  56. package/dist/cjs/limebb-text-editor.cjs.entry.js +3 -3
  57. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +2 -2
  58. package/dist/cjs/limebb-value-comparison-editor.cjs.entry.js +75 -0
  59. package/dist/cjs/{limetype-CNjUGemK.js → limetype-BayDf-QY.js} +1 -1
  60. package/dist/cjs/loader.cjs.js +1 -1
  61. package/dist/collection/collection-manifest.json +1 -0
  62. package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
  63. package/dist/collection/components/browser/browser.js +2 -2
  64. package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
  65. package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
  66. package/dist/collection/components/chat-list/chat-list.js +1 -1
  67. package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
  68. package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
  69. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
  70. package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
  71. package/dist/collection/components/currency-picker/currency-picker.js +1 -1
  72. package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
  73. package/dist/collection/components/date-picker/date-picker.js +1 -1
  74. package/dist/collection/components/date-range/date-range.js +1 -1
  75. package/dist/collection/components/document-chips/document-chips.js +1 -1
  76. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  77. package/dist/collection/components/document-picker/document-picker.js +1 -1
  78. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  79. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  80. package/dist/collection/components/feed/feed.js +1 -1
  81. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  82. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  83. package/dist/collection/components/info-tile/info-tile.js +86 -7
  84. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  85. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  86. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +1 -1
  87. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +1 -1
  88. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
  89. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  90. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  91. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  92. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  93. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  94. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  95. package/dist/collection/components/lime-query-builder/property-selector/property-selector.js +15 -20
  96. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  97. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  98. package/dist/collection/components/loader/loader.js +2 -0
  99. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  100. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  101. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  102. package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +1 -1
  103. package/dist/collection/components/rule-editor/rule-editor.js +1 -1
  104. package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor-metadata.js +15 -0
  105. package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.css +9 -0
  106. package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.js +149 -0
  107. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  108. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  109. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  110. package/dist/collection/components/text-editor/text-editor.js +1 -1
  111. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  112. package/dist/components/chat-icon-list.js +1 -1
  113. package/dist/components/chat-item.js +1 -1
  114. package/dist/components/currency-picker.js +1 -1
  115. package/dist/components/date-picker.js +1 -1
  116. package/dist/components/document-item.js +1 -1
  117. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  118. package/dist/components/feed-timeline-item.js +1 -1
  119. package/dist/components/kanban-group.js +1 -1
  120. package/dist/components/kanban-item.js +1 -1
  121. package/dist/components/lime-query-filter-comparison-editor.js +1 -1
  122. package/dist/components/lime-query-filter-comparison.js +1 -1
  123. package/dist/components/lime-query-filter-expression.js +1 -1
  124. package/dist/components/limebb-alert-dialog.js +1 -1
  125. package/dist/components/limebb-browser.js +1 -1
  126. package/dist/components/limebb-chat-list.js +1 -1
  127. package/dist/components/limebb-color-palette-picker.js +1 -1
  128. package/dist/components/limebb-color-palette-swatches.js +1 -1
  129. package/dist/components/limebb-composer-toolbar.js +1 -1
  130. package/dist/components/limebb-dashboard-widget.js +1 -1
  131. package/dist/components/limebb-date-range.js +1 -1
  132. package/dist/components/limebb-document-chips.js +1 -1
  133. package/dist/components/limebb-document-picker.js +1 -1
  134. package/dist/components/limebb-feed.js +1 -1
  135. package/dist/components/limebb-icon-picker.js +1 -1
  136. package/dist/components/limebb-info-tile-format.js +1 -1
  137. package/dist/components/limebb-info-tile.js +1 -1
  138. package/dist/components/limebb-lime-query-builder.js +1 -1
  139. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  140. package/dist/components/limebb-loader.js +1 -1
  141. package/dist/components/limebb-locale-picker.js +1 -1
  142. package/dist/components/limebb-mention-group-counter.js +1 -1
  143. package/dist/components/limebb-rule-editor.js +1 -1
  144. package/dist/components/limebb-rule-gate.js +1 -1
  145. package/dist/components/limebb-text-editor.js +1 -1
  146. package/dist/components/limebb-trend-indicator.js +1 -1
  147. package/dist/components/limebb-value-comparison-editor.d.ts +11 -0
  148. package/dist/components/limebb-value-comparison-editor.js +1 -0
  149. package/dist/components/limetype-field.js +1 -1
  150. package/dist/components/live-docs-info.js +1 -1
  151. package/dist/components/notification-item.js +1 -1
  152. package/dist/components/order-by-editor.js +1 -1
  153. package/dist/components/order-by-item.js +1 -1
  154. package/dist/components/percentage-visualizer.js +1 -1
  155. package/dist/components/property-selector.js +1 -1
  156. package/dist/components/response-format-item.js +1 -1
  157. package/dist/components/rule-chip-popover.js +1 -1
  158. package/dist/components/summary-popover.js +1 -1
  159. package/dist/components/typing-indicator.js +1 -1
  160. package/dist/esm/{filter-group-logic-RXn-GGk1.js → filter-group-logic-1aucZQgy.js} +1 -1
  161. package/dist/esm/{index.esm-DAe4_MLR.js → index.esm-B1KM7sH7.js} +1 -1
  162. package/dist/esm/lime-crm-building-blocks.js +1 -1
  163. package/dist/esm/{lime-query-operators-DYlN1dAt.js → lime-query-operators-DvI2OyJI.js} +1 -1
  164. package/dist/esm/{lime-query-validation-DXxPZ2CH.js → lime-query-validation-CiIEITCJ.js} +1 -1
  165. package/dist/esm/limebb-alert-dialog.entry.js +1 -1
  166. package/dist/esm/limebb-browser.entry.js +3 -3
  167. package/dist/esm/limebb-chat-icon-list_3.entry.js +5 -5
  168. package/dist/esm/limebb-chat-list.entry.js +2 -2
  169. package/dist/esm/limebb-color-palette-picker.entry.js +1 -1
  170. package/dist/esm/limebb-color-palette-swatches.entry.js +1 -1
  171. package/dist/esm/limebb-component-config.entry.js +1 -1
  172. package/dist/esm/limebb-component-picker.entry.js +1 -1
  173. package/dist/esm/limebb-composer-toolbar.entry.js +3 -3
  174. package/dist/esm/limebb-currency-picker.entry.js +2 -2
  175. package/dist/esm/limebb-dashboard-widget.entry.js +1 -1
  176. package/dist/esm/limebb-data-cells.entry.js +1 -1
  177. package/dist/esm/limebb-date-picker.entry.js +2 -2
  178. package/dist/esm/limebb-date-range.entry.js +1 -1
  179. package/dist/esm/limebb-document-chips.entry.js +1 -1
  180. package/dist/esm/limebb-document-item.entry.js +2 -2
  181. package/dist/esm/limebb-document-picker.entry.js +1 -1
  182. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +1 -1
  183. package/dist/esm/limebb-feed-timeline-item.entry.js +2 -2
  184. package/dist/esm/limebb-feed.entry.js +2 -2
  185. package/dist/esm/limebb-icon-picker.entry.js +1 -1
  186. package/dist/esm/limebb-info-tile-format.entry.js +1 -1
  187. package/dist/esm/limebb-info-tile.entry.js +44 -9
  188. package/dist/esm/limebb-kanban-group.entry.js +2 -2
  189. package/dist/esm/limebb-kanban-item.entry.js +2 -2
  190. package/dist/esm/limebb-lime-query-builder.entry.js +3 -3
  191. package/dist/esm/limebb-lime-query-filter-builder.entry.js +2 -2
  192. package/dist/esm/limebb-lime-query-filter-comparison-editor_4.entry.js +7 -7
  193. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +4 -4
  194. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +4 -4
  195. package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
  196. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +3 -3
  197. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +1 -1
  198. package/dist/esm/limebb-limeobject-file-viewer.entry.js +1 -1
  199. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  200. package/dist/esm/limebb-loader.entry.js +18 -1
  201. package/dist/esm/limebb-locale-picker.entry.js +2 -2
  202. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  203. package/dist/esm/limebb-mention.entry.js +1 -1
  204. package/dist/esm/limebb-navigation-button_2.entry.js +2 -2
  205. package/dist/esm/limebb-notification-item.entry.js +2 -2
  206. package/dist/esm/limebb-notification-list.entry.js +1 -1
  207. package/dist/esm/limebb-object-chip.entry.js +2 -2
  208. package/dist/esm/limebb-percentage-visualizer.entry.js +3 -3
  209. package/dist/esm/limebb-property-selector.entry.js +17 -22
  210. package/dist/esm/limebb-rule-arg-filter-editor.entry.js +1 -1
  211. package/dist/esm/limebb-rule-chip-popover.entry.js +2 -2
  212. package/dist/esm/limebb-rule-editor.entry.js +2 -2
  213. package/dist/esm/limebb-rule-gate.entry.js +2 -2
  214. package/dist/esm/limebb-text-editor.entry.js +3 -3
  215. package/dist/esm/limebb-trend-indicator.entry.js +2 -2
  216. package/dist/esm/limebb-value-comparison-editor.entry.js +73 -0
  217. package/dist/esm/{limetype-C1wEJnPI.js → limetype-CIkoDD1B.js} +1 -1
  218. package/dist/esm/loader.js +1 -1
  219. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  220. package/dist/lime-crm-building-blocks/{p-692084d2.entry.js → p-041f1094.entry.js} +1 -1
  221. package/dist/lime-crm-building-blocks/{p-3c437049.entry.js → p-096ea04d.entry.js} +1 -1
  222. package/dist/lime-crm-building-blocks/{p-7f5c97fe.entry.js → p-0d6d8b72.entry.js} +1 -1
  223. package/dist/lime-crm-building-blocks/{p-dc1d543d.entry.js → p-16fad0a8.entry.js} +1 -1
  224. package/dist/lime-crm-building-blocks/{p-56bb13b2.entry.js → p-191e4dcd.entry.js} +1 -1
  225. package/dist/lime-crm-building-blocks/{p-8ed7b025.entry.js → p-1a076d37.entry.js} +1 -1
  226. package/dist/lime-crm-building-blocks/{p-81655182.entry.js → p-201498a9.entry.js} +1 -1
  227. package/dist/lime-crm-building-blocks/{p-c7c5991f.entry.js → p-26e25dbd.entry.js} +1 -1
  228. package/dist/lime-crm-building-blocks/{p-24337de2.entry.js → p-29dd2424.entry.js} +1 -1
  229. package/dist/lime-crm-building-blocks/{p-563d69ff.entry.js → p-30f6d7ea.entry.js} +1 -1
  230. package/dist/lime-crm-building-blocks/{p-99464fa7.entry.js → p-340250da.entry.js} +1 -1
  231. package/dist/lime-crm-building-blocks/{p-18ce3ce5.entry.js → p-3f2f1826.entry.js} +1 -1
  232. package/dist/lime-crm-building-blocks/{p-4c10bea0.entry.js → p-46225433.entry.js} +1 -1
  233. package/dist/lime-crm-building-blocks/{p-68a951f5.entry.js → p-4cd99453.entry.js} +1 -1
  234. package/dist/lime-crm-building-blocks/{p-464b02c2.entry.js → p-52d8f7c2.entry.js} +1 -1
  235. package/dist/lime-crm-building-blocks/p-555da984.entry.js +1 -0
  236. package/dist/lime-crm-building-blocks/{p-efb70fbb.entry.js → p-6299c46b.entry.js} +1 -1
  237. package/dist/lime-crm-building-blocks/{p-b16bbda2.entry.js → p-69cf07ba.entry.js} +1 -1
  238. package/dist/lime-crm-building-blocks/{p-47a7b3fd.entry.js → p-6c4521a0.entry.js} +1 -1
  239. package/dist/lime-crm-building-blocks/{p-8d5311e4.entry.js → p-6f0a5401.entry.js} +1 -1
  240. package/dist/lime-crm-building-blocks/{p-7d969bbe.entry.js → p-71e1c5f0.entry.js} +1 -1
  241. package/dist/lime-crm-building-blocks/p-759d0fc2.entry.js +1 -0
  242. package/dist/lime-crm-building-blocks/{p-5eef1781.entry.js → p-7aaf805d.entry.js} +1 -1
  243. package/dist/lime-crm-building-blocks/{p-8d14a58a.entry.js → p-8c3970ed.entry.js} +1 -1
  244. package/dist/lime-crm-building-blocks/{p-efab4f7e.entry.js → p-92014310.entry.js} +1 -1
  245. package/dist/lime-crm-building-blocks/{p-a5850f04.entry.js → p-9909b0bf.entry.js} +1 -1
  246. package/dist/lime-crm-building-blocks/{p-6cf0a1cd.entry.js → p-991783f8.entry.js} +1 -1
  247. package/dist/lime-crm-building-blocks/{p-DzXJyKRS.js → p-B5QzrGTX.js} +1 -1
  248. package/dist/lime-crm-building-blocks/{p-D3UYWGdn.js → p-BneXZK-Q.js} +1 -1
  249. package/dist/lime-crm-building-blocks/{p-BbFGcMnU.js → p-DK4A47Sj.js} +1 -1
  250. package/dist/lime-crm-building-blocks/{p-y_s8hZmV.js → p-DjwVpKf5.js} +1 -1
  251. package/dist/lime-crm-building-blocks/{p-5a718d20.entry.js → p-a21d6f7e.entry.js} +1 -1
  252. package/dist/lime-crm-building-blocks/{p-43af24b5.entry.js → p-a2c8e1af.entry.js} +1 -1
  253. package/dist/lime-crm-building-blocks/p-a8684418.entry.js +1 -0
  254. package/dist/lime-crm-building-blocks/{p-0ba1294a.entry.js → p-b264b37d.entry.js} +1 -1
  255. package/dist/lime-crm-building-blocks/{p-ecd0280d.entry.js → p-b431df3c.entry.js} +1 -1
  256. package/dist/lime-crm-building-blocks/{p-22296e19.entry.js → p-b4b103c1.entry.js} +1 -1
  257. package/dist/lime-crm-building-blocks/{p-0fac2307.entry.js → p-b7d917ed.entry.js} +1 -1
  258. package/dist/lime-crm-building-blocks/p-c0d39ae4.entry.js +1 -0
  259. package/dist/lime-crm-building-blocks/{p-8238723b.entry.js → p-c4c3f054.entry.js} +1 -1
  260. package/dist/lime-crm-building-blocks/{p-072756ea.entry.js → p-c6cc1438.entry.js} +1 -1
  261. package/dist/lime-crm-building-blocks/{p-bd264cfa.entry.js → p-c72d3231.entry.js} +1 -1
  262. package/dist/lime-crm-building-blocks/{p-a6103d04.entry.js → p-c7dbd961.entry.js} +1 -1
  263. package/dist/lime-crm-building-blocks/{p-b01f2045.entry.js → p-c8cf6e4d.entry.js} +1 -1
  264. package/dist/lime-crm-building-blocks/{p-1dfdf045.entry.js → p-cea4fe16.entry.js} +1 -1
  265. package/dist/lime-crm-building-blocks/p-d6ac6cd3.entry.js +1 -0
  266. package/dist/lime-crm-building-blocks/{p-7a4704dc.entry.js → p-d8835b8c.entry.js} +1 -1
  267. package/dist/lime-crm-building-blocks/{p-603ab702.entry.js → p-e1223704.entry.js} +1 -1
  268. package/dist/lime-crm-building-blocks/{p-49bc396e.entry.js → p-e174dccd.entry.js} +1 -1
  269. package/dist/lime-crm-building-blocks/{p-725e6748.entry.js → p-ec22438d.entry.js} +1 -1
  270. package/dist/lime-crm-building-blocks/{p-dc3a86f3.entry.js → p-efd62913.entry.js} +1 -1
  271. package/dist/lime-crm-building-blocks/{p-9639c6ee.entry.js → p-f22e2539.entry.js} +1 -1
  272. package/dist/lime-crm-building-blocks/{p-3996a598.entry.js → p-f58d25e5.entry.js} +1 -1
  273. package/dist/lime-crm-building-blocks/{p-16fa6f3e.entry.js → p-fac7ff61.entry.js} +1 -1
  274. package/dist/lime-crm-building-blocks/{p-5006c5ea.entry.js → p-fb23df8e.entry.js} +1 -1
  275. package/dist/lime-crm-building-blocks/{p-7b9359cc.entry.js → p-ff686a4e.entry.js} +1 -1
  276. package/dist/types/components/info-tile/info-tile.d.ts +50 -1
  277. package/dist/types/components/rule-editor/value-comparison-editor/value-comparison-editor-metadata.d.ts +12 -0
  278. package/dist/types/components/rule-editor/value-comparison-editor/value-comparison-editor.d.ts +45 -0
  279. package/dist/types/components.d.ts +116 -0
  280. package/package.json +4 -4
  281. package/dist/lime-crm-building-blocks/p-07ef2fd0.entry.js +0 -1
  282. package/dist/lime-crm-building-blocks/p-6fc4e731.entry.js +0 -1
  283. package/dist/lime-crm-building-blocks/p-898b097e.entry.js +0 -1
  284. package/dist/lime-crm-building-blocks/p-ec335be5.entry.js +0 -1
  285. /package/dist/lime-crm-building-blocks/{p-CqRNpSRV.js → p-BVxuJgRM.js} +0 -0
@@ -1 +1 @@
1
- import{r as t,h as e,g as i}from"./p-DYpn0EkA.js";import{b as r,n as s,l as o,d as n,L as a,r as l}from"./p-CqRNpSRV.js";import{a as h}from"./p-BbFGcMnU.js";class c{constructor(t){this.getState=t,this.contextType="info-tile"}getContext(){const{limetype:t,filterId:e,filterName:i,aggregateOperator:r,propertyName:s,value:o,label:n}=this.getState();if(!t||!e)return console.debug("InfoTileContextProvider: No limetype or filterId available"),null;const a={widgetType:"info-tile",limetype:t,filterId:e};return i&&(a.filterName=i),a.aggregateOperator=r,s&&(a.propertyName=s),void 0!==o&&(a.value=o),n&&(a.label=n),{data:a,purpose:"Shows an aggregated value from a filter. Clicking navigates to the explorer with that filter applied."}}}class u{constructor(t,e=[]){this.platform=t,this.filters=e}async load(t,e){let i;return i=this.isObjectIdentifier(e)?await this.loadLimeObjectInfoTile(t,e):await this.loadBasicInfoTile(t),i}async loadBasicInfoTile(t){const e=this.getFilter(t.filter);if(!e)throw new Error(`Filter "${t.filter}" not found`);return(await this.query.execute({limetype:e.limetype,responseFormat:{aggregates:{infotiles:{value:{op:t.operator,key:t.name}}}},filter:e.filter})).aggregates.infotiles[0].value}async loadLimeObjectInfoTile(t,e){await this.objectRepository.loadObject(e.limetype,e.id,{properties:[t]});const i=this.objectRepository.getObject(e.limetype,e.id);return null==i?void 0:i.getValue([t.name,t.key].join("."))}isObjectIdentifier(t){return Boolean((null==t?void 0:t.limetype)&&(null==t?void 0:t.id))}getFilter(t){return this.filters.find((e=>e.id===t))}get query(){return this.platform.get(r.Query)}get objectRepository(){return this.platform.get(r.LimeObjectRepository)}}function f(t,e){return t&&(t[e]||t.en||t.en_us)||""}function d(t,e=[]){const{path:i,query:r}=function(t,e=[]){if(!t)return{path:"#"};const i=["explorer",t.limetype,t.id].join("/"),r=function(t,e){const i=[...e,t].filter((t=>void 0!==t));if(0!==i.length)return 1===i.length?i[0]:{op:s.AND,exp:i}}(t.filter,e);return r?{path:i,query:{filter:r}}:{path:i}}(t,e);return r?`${i}?${Object.entries(r).map((([t,e])=>`${t}=${encodeURIComponent(JSON.stringify(e))}`)).join("&")}`:i}class p{constructor(t){this.locale=t}format(t){let e=String(t);return"number"==typeof t?e=new Intl.NumberFormat(this.locale).format(t):new Date(t).getTime()&&(e=new Intl.DateTimeFormat(this.locale).format(new Date(t))),{value:e}}}class v{constructor(t){this.locale=t}format(t,e){const i=new Date(t);return{prefix:this.formatAffix("prefix",i,e),value:this.formatValue(i,e),suffix:this.formatAffix("suffix",i,e)}}formatValue(t,e){const i=Object.assign({},e.options);if(e.prefix)for(const t of e.prefix)delete i[t];if(e.suffix)for(const t of e.suffix)delete i[t];return new Intl.DateTimeFormat(this.locale,i).format(t)}formatAffix(t,e,i){const r=Object.assign({},i.options);for(const e of Object.keys(r))"hour12"!==e&&((i[t]||[]).includes(e)||delete r[e]);if(0!==Object.values(r).filter(Boolean).length)return new Intl.DateTimeFormat(this.locale,r).format(e)}}class g{constructor(t){this.locale=t}format(t,e){var i,r;const s=new Intl.NumberFormat(this.locale,e.options),o=s.formatToParts(t);let n="",a="",l="";for(const t of o)(null===(i=e.prefix)||void 0===i?void 0:i.includes(t.type))?n+=t.value:(null===(r=e.suffix)||void 0===r?void 0:r.includes(t.type))?l+=t.value:a+=t.value;return a||(a=s.format(t),n="",l=""),{prefix:n,value:a,suffix:l}}}class m{constructor(t){this.locale=t}format(t,e){const i=new Intl.RelativeTimeFormat(this.locale,e.options),{value:r,unit:s}=this.getRelativeTime(t),o=i.formatToParts(r,s);let n="",a="",l="";for(const t of o)"literal"!==t.type||a?"literal"===t.type&&a?l+=t.value:a+=t.value:n+=t.value;return a||(a=n||l,n="",l=""),{prefix:n,value:a,suffix:l}}getRelativeTime(t){const e=new Date(t),i=new Date,r=e.getTime()-i.getTime(),s=[{unit:"year",value:31536e6},{unit:"month",value:2592e6},{unit:"week",value:6048e5},{unit:"day",value:864e5},{unit:"hour",value:36e5},{unit:"minute",value:6e4},{unit:"second",value:1e3}];for(const t of s){const e=r/t.value;if(Math.abs(e)>=1)return{value:Math.round(e),unit:t.unit}}return{value:0,unit:"second"}}}class b{constructor(t){this.locale=t}createFormatter(t,e){return"number"===(null==t?void 0:t.type)&&"number"==typeof e?new g(this.locale):"date"===(null==t?void 0:t.type)&&"string"==typeof e?new v(this.locale):"relative-date"===(null==t?void 0:t.type)&&"string"==typeof e?new m(this.locale):new p(this.locale)}}var y=function(t,e,i,r){var s,o=arguments.length,n=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,i,r);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(n=(o<3?s(n):o>3?s(e,i,n):s(e,i))||n);return o>3&&n&&Object.defineProperty(e,i,n),n};const w=class{constructor(e){t(this,e),this.aggregateOperator=l.Count,this.loading=!1,this.error=!1}connectedCallback(){this.registerContextProvider()}disconnectedCallback(){var t;null===(t=this.unregisterContextProvider)||void 0===t||t.call(this)}componentWillLoad(){this.loadInfoTileValue()}watchFilterId(){this.loadInfoTileValue()}watchPropertyName(){this.loadInfoTileValue()}watchAggregateOperator(){this.loadInfoTileValue()}async loadInfoTileValue(){if(this.loading=!0,this.error=!1,this.getFilter()){try{const t={key:this.getKey(),name:this.propertyName,operator:this.aggregateOperator,filter:this.filterId};this.value=await this.loader.load(t,this.context)}catch(t){console.error(t),this.error=!0}this.loading=!1}else this.error=!0}getKey(){return Math.random().toString(36).slice(2)}render(){var t,i;const r=this.getFilter(),s=this.getFormattedValue(),o={disabled:this.disabled,icon:this.icon,prefix:(null===(t=null==s?void 0:s.prefix)||void 0===t?void 0:t.trim())||this.prefix,suffix:(null===(i=null==s?void 0:s.suffix)||void 0===i?void 0:i.trim())||this.suffix},n=Object.assign(Object.assign({},o),{icon:"error",prefix:"ERROR",loading:!0,label:this.getLabel(r)}),a=Object.assign(Object.assign({},o),{label:this.getLabel(r),link:this.getLink(r),loading:this.loading,value:null==s?void 0:s.value.trim()});return e("limel-info-tile",Object.assign({key:"0b1ada2299bec6b79e903f3612e3c1cfbbf31827",class:{error:!r||this.error}},!r||this.error?n:a))}getFormattedValue(){if(!this.value&&0!==this.value)return{value:""};try{return this.getFormatter(this.value).format(this.value,this.format)}catch(t){return new p(this.language).format(this.value)}}getLabel(t){return t?"string"==typeof this.label?this.translator.get(this.label):f(this.label&&"object"==typeof this.label?this.label:t.name,this.language):"No filter set is selected"}getLink(t){const e=h({targetLimetype:t?this.limetypes[t.limetype]:void 0,currentLimetype:this.context.limetype?this.limetypes[this.context.limetype]:void 0,contextLimetypeName:this.context.limetype,contextId:this.context.id,propertyName:this.propertyName});return{href:d(t,e&&this.context.id?[{key:e,op:s.EQUALS,exp:this.context.id}]:[])}}getFilter(){return function(t,e){if(t&&e)return t.find((t=>t.id===e))}(this.filters,this.filterId)}getFormatter(t){return new b(this.language).createFormatter(this.format,t)}get translator(){return this.platform.get(r.Translate)}get language(){return this.platform.get(r.Application).getLanguage()}get loader(){return new u(this.platform,this.filters)}registerContextProvider(){const t=this.platform.get(r.AIContextRegistry);if(!(null==t?void 0:t.register))return;const e=new c((()=>{const t=this.getFilter();return{limetype:null==t?void 0:t.limetype,filterId:this.filterId,filterName:t?f(t.name,this.language):void 0,aggregateOperator:this.aggregateOperator,propertyName:this.propertyName,value:this.value,label:this.getLabel(t)}}));this.unregisterContextProvider=t.register(e,this.host)}get host(){return i(this)}static get watchers(){return{filterId:[{watchFilterId:0}],propertyName:[{watchPropertyName:0}],aggregateOperator:[{watchAggregateOperator:0}]}}};y([o({})],w.prototype,"config",void 0),y([n()],w.prototype,"filters",void 0),y([a()],w.prototype,"limetypes",void 0),w.style=":host(limebb-info-tile){display:block;overflow:visible !important;background-color:transparent !important}limel-info-tile.error{--info-tile-icon-color:rgb(var(--color-red-dark));border:1px dashed rgb(var(--contrast-500));border-radius:var(--info-tile-border-radius, 1rem)}";export{w as limebb_info_tile}
1
+ import{r as t,h as e,g as i}from"./p-DYpn0EkA.js";import{b as r,n as s,l as o,d as n,L as a,r as l}from"./p-BVxuJgRM.js";import{a as h}from"./p-DK4A47Sj.js";class u{constructor(t){this.getState=t,this.contextType="info-tile"}getContext(){const{limetype:t,filterId:e,filterName:i,aggregateOperator:r,propertyName:s,value:o,label:n}=this.getState();if(!t||!e)return console.debug("InfoTileContextProvider: No limetype or filterId available"),null;const a={widgetType:"info-tile",limetype:t,filterId:e};return i&&(a.filterName=i),a.aggregateOperator=r,s&&(a.propertyName=s),void 0!==o&&(a.value=o),n&&(a.label=n),{data:a,purpose:"Shows an aggregated value from a filter. Clicking navigates to the explorer with that filter applied."}}}class c{constructor(t,e=[]){this.platform=t,this.filters=e}async load(t,e){let i;return i=this.isObjectIdentifier(e)?await this.loadLimeObjectInfoTile(t,e):await this.loadBasicInfoTile(t),i}async loadBasicInfoTile(t){const e=this.getFilter(t.filter);if(!e)throw new Error(`Filter "${t.filter}" not found`);return(await this.query.execute({limetype:e.limetype,responseFormat:{aggregates:{infotiles:{value:{op:t.operator,key:t.name}}}},filter:e.filter})).aggregates.infotiles[0].value}async loadLimeObjectInfoTile(t,e){await this.objectRepository.loadObject(e.limetype,e.id,{properties:[t]});const i=this.objectRepository.getObject(e.limetype,e.id);return null==i?void 0:i.getValue([t.name,t.key].join("."))}isObjectIdentifier(t){return Boolean((null==t?void 0:t.limetype)&&(null==t?void 0:t.id))}getFilter(t){return this.filters.find((e=>e.id===t))}get query(){return this.platform.get(r.Query)}get objectRepository(){return this.platform.get(r.LimeObjectRepository)}}function f(t,e){return t&&(t[e]||t.en||t.en_us)||""}function d(t,e=[]){const{path:i,query:r}=function(t,e=[]){if(!t)return{path:"#"};const i=["explorer",t.limetype,t.id].join("/"),r=function(t,e){const i=[...e,t].filter((t=>void 0!==t));if(0!==i.length)return 1===i.length?i[0]:{op:s.AND,exp:i}}(t.filter,e);return r?{path:i,query:{filter:r}}:{path:i}}(t,e);return r?`${i}?${Object.entries(r).map((([t,e])=>`${t}=${encodeURIComponent(JSON.stringify(e))}`)).join("&")}`:i}class p{constructor(t){this.locale=t}format(t){let e=String(t);return"number"==typeof t?e=new Intl.NumberFormat(this.locale).format(t):new Date(t).getTime()&&(e=new Intl.DateTimeFormat(this.locale).format(new Date(t))),{value:e}}}class v{constructor(t){this.locale=t}format(t,e){const i=new Date(t);return{prefix:this.formatAffix("prefix",i,e),value:this.formatValue(i,e),suffix:this.formatAffix("suffix",i,e)}}formatValue(t,e){const i=Object.assign({},e.options);if(e.prefix)for(const t of e.prefix)delete i[t];if(e.suffix)for(const t of e.suffix)delete i[t];return new Intl.DateTimeFormat(this.locale,i).format(t)}formatAffix(t,e,i){const r=Object.assign({},i.options);for(const e of Object.keys(r))"hour12"!==e&&((i[t]||[]).includes(e)||delete r[e]);if(0!==Object.values(r).filter(Boolean).length)return new Intl.DateTimeFormat(this.locale,r).format(e)}}class g{constructor(t){this.locale=t}format(t,e){var i,r;const s=new Intl.NumberFormat(this.locale,e.options),o=s.formatToParts(t);let n="",a="",l="";for(const t of o)(null===(i=e.prefix)||void 0===i?void 0:i.includes(t.type))?n+=t.value:(null===(r=e.suffix)||void 0===r?void 0:r.includes(t.type))?l+=t.value:a+=t.value;return a||(a=s.format(t),n="",l=""),{prefix:n,value:a,suffix:l}}}class m{constructor(t){this.locale=t}format(t,e){const i=new Intl.RelativeTimeFormat(this.locale,e.options),{value:r,unit:s}=this.getRelativeTime(t),o=i.formatToParts(r,s);let n="",a="",l="";for(const t of o)"literal"!==t.type||a?"literal"===t.type&&a?l+=t.value:a+=t.value:n+=t.value;return a||(a=n||l,n="",l=""),{prefix:n,value:a,suffix:l}}getRelativeTime(t){const e=new Date(t),i=new Date,r=e.getTime()-i.getTime(),s=[{unit:"year",value:31536e6},{unit:"month",value:2592e6},{unit:"week",value:6048e5},{unit:"day",value:864e5},{unit:"hour",value:36e5},{unit:"minute",value:6e4},{unit:"second",value:1e3}];for(const t of s){const e=r/t.value;if(Math.abs(e)>=1)return{value:Math.round(e),unit:t.unit}}return{value:0,unit:"second"}}}class b{constructor(t){this.locale=t}createFormatter(t,e){return"number"===(null==t?void 0:t.type)&&"number"==typeof e?new g(this.locale):"date"===(null==t?void 0:t.type)&&"string"==typeof e?new v(this.locale):"relative-date"===(null==t?void 0:t.type)&&"string"==typeof e?new m(this.locale):new p(this.locale)}}var y=function(t,e,i,r){var s,o=arguments.length,n=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,i,r);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(n=(o<3?s(n):o>3?s(e,i,n):s(e,i))||n);return o>3&&n&&Object.defineProperty(e,i,n),n};const w=class{constructor(e){t(this,e),this.aggregateOperator=l.Count,this.loading=!1,this.error=!1}get hostElement(){return this.host}connectedCallback(){this.registerContextProvider()}disconnectedCallback(){var t;null===(t=this.unregisterContextProvider)||void 0===t||t.call(this)}componentWillLoad(){this.loadInfoTileValue()}watchFilterId(){this.loadInfoTileValue()}watchPropertyName(){this.loadInfoTileValue()}watchAggregateOperator(){this.loadInfoTileValue()}async loadInfoTileValue(){if(this.loading=!0,this.error=!1,this.getFilter()){try{const t={key:this.getKey(),name:this.propertyName,operator:this.aggregateOperator,filter:this.filterId};this.value=await this.loader.load(t,this.context)}catch(t){console.error(t),this.error=!0}this.loading=!1}else this.error=!0}getKey(){return Math.random().toString(36).slice(2)}render(){var t,i;const r=this.getFilter(),s=this.getFormattedValue(),o={disabled:this.disabled,icon:this.icon,prefix:(null===(t=null==s?void 0:s.prefix)||void 0===t?void 0:t.trim())||this.prefix,suffix:(null===(i=null==s?void 0:s.suffix)||void 0===i?void 0:i.trim())||this.suffix,reducedPresence:this.shouldReducePresence()},n=Object.assign(Object.assign({},o),{icon:"error",prefix:"ERROR",loading:!0,label:this.getLabel(r)}),a=Object.assign(Object.assign({},o),{label:this.getLabel(r),link:this.getLink(r),loading:this.loading,value:null==s?void 0:s.value.trim()});return e("limel-info-tile",Object.assign({key:"f5680e93f15afe32e8abdcd05b89f12708b8edf5",class:{error:!r||this.error}},!r||this.error?n:a))}shouldReducePresence(){if(this.reducedPresence)return!0;if(!this.reducedPresenceRule||this.loading)return!1;try{return this.ruleRegistry.compile(this.reducedPresenceRule)(this.ruleRegistry.scope({host:this.hostElement,with:{scalarValue:this.value}}))}catch(t){return!1}}getFormattedValue(){if(!this.value&&0!==this.value)return{value:""};try{return this.getFormatter(this.value).format(this.value,this.format)}catch(t){return new p(this.language).format(this.value)}}getLabel(t){return t?"string"==typeof this.label?this.translator.get(this.label):f(this.label&&"object"==typeof this.label?this.label:t.name,this.language):"No filter set is selected"}getLink(t){const e=h({targetLimetype:t?this.limetypes[t.limetype]:void 0,currentLimetype:this.context.limetype?this.limetypes[this.context.limetype]:void 0,contextLimetypeName:this.context.limetype,contextId:this.context.id,propertyName:this.propertyName});return{href:d(t,e&&this.context.id?[{key:e,op:s.EQUALS,exp:this.context.id}]:[])}}getFilter(){return function(t,e){if(t&&e)return t.find((t=>t.id===e))}(this.filters,this.filterId)}getFormatter(t){return new b(this.language).createFormatter(this.format,t)}get translator(){return this.platform.get(r.Translate)}get ruleRegistry(){return this.platform.get(r.RuleRegistry)}get language(){return this.platform.get(r.Application).getLanguage()}get loader(){return new c(this.platform,this.filters)}registerContextProvider(){const t=this.platform.get(r.AIContextRegistry);if(!(null==t?void 0:t.register))return;const e=new u((()=>{const t=this.getFilter();return{limetype:null==t?void 0:t.limetype,filterId:this.filterId,filterName:t?f(t.name,this.language):void 0,aggregateOperator:this.aggregateOperator,propertyName:this.propertyName,value:this.value,label:this.getLabel(t)}}));this.unregisterContextProvider=t.register(e,this.hostElement)}get host(){return i(this)}static get watchers(){return{filterId:[{watchFilterId:0}],propertyName:[{watchPropertyName:0}],aggregateOperator:[{watchAggregateOperator:0}]}}};y([o({})],w.prototype,"config",void 0),y([n()],w.prototype,"filters",void 0),y([a()],w.prototype,"limetypes",void 0),w.style=":host(limebb-info-tile){display:block;overflow:visible !important;background-color:transparent !important}limel-info-tile.error{--info-tile-icon-color:rgb(var(--color-red-dark));border:1px dashed rgb(var(--contrast-500));border-radius:var(--info-tile-border-radius, 1rem)}";export{w as limebb_info_tile}
@@ -1,4 +1,4 @@
1
- import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform, AggregateOperator } from '@limetech/lime-web-components';
1
+ import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform, AggregateOperator, Rule } from '@limetech/lime-web-components';
2
2
  import { IconName } from '@limetech/lime-elements';
3
3
  import { DateTimeFormat, NumberFormat, RelativeDateTimeFormat } from './format';
4
4
  /**
@@ -14,12 +14,22 @@ import { DateTimeFormat, NumberFormat, RelativeDateTimeFormat } from './format';
14
14
  * @exampleComponent limebb-example-info-tile-unit-format
15
15
  * @exampleComponent limebb-example-info-tile-date-format
16
16
  * @exampleComponent limebb-example-info-tile-relative-date-format
17
+ * @exampleComponent limebb-example-info-tile-reduce-presence
17
18
  * @beta
18
19
  */
19
20
  export declare class InfoTile implements LimeWebComponent {
20
21
  platform: LimeWebComponentPlatform;
21
22
  context: LimeWebComponentContext;
22
23
  private host;
24
+ /**
25
+ * The host cast to a plain `HTMLElement` (intersected with
26
+ * `LimeWebComponent` for the context registry). The cast is needed
27
+ * because this component declares a `prefix` prop, which collides with
28
+ * the native `HTMLElement.prefix` attribute (`string | undefined` vs
29
+ * `string | null`), leaving `HTMLLimebbInfoTileElement` and `HTMLElement`
30
+ * mutually unassignable.
31
+ */
32
+ private get hostElement();
23
33
  /**
24
34
  * ID of the filter set to use
25
35
  */
@@ -53,6 +63,35 @@ export declare class InfoTile implements LimeWebComponent {
53
63
  */
54
64
  aggregateOperator: AggregateOperator;
55
65
  format?: NumberFormat | DateTimeFormat | RelativeDateTimeFormat;
66
+ /**
67
+ * When `true`, the info tile is rendered with a reduced visual
68
+ * presence (lower saturation and opacity) so it draws less
69
+ * attention. Use this for tiles whose values are not currently
70
+ * noteworthy — for example, a counter that is zero or a metric that
71
+ * sits within an expected range — so the user is not overwhelmed by
72
+ * a dashboard full of equally-loud tiles.
73
+ *
74
+ * The actual styling lives on `limel-info-tile`; this component
75
+ * just forwards the boolean. Set this directly when the consumer
76
+ * already knows the answer. When the answer depends on the tile's
77
+ * value, set {@link reducedPresenceRule} instead and the tile
78
+ * will compute the boolean itself.
79
+ */
80
+ reducedPresence?: boolean;
81
+ /**
82
+ * Rule that drives `reducedPresence` from the tile's loaded value.
83
+ * When set, the tile evaluates it against its `value` after each load
84
+ * and dims itself when the rule is `true`. The {@link reducedPresence}
85
+ * prop still takes effect on top — if either says "dim", the tile dims.
86
+ *
87
+ * Any rule the `RuleRegistry` can compile works. The tile evaluates
88
+ * it against a scope anchored on its host, with the tile's loaded
89
+ * value supplied as `scalarValue`. So primitives reading
90
+ * `scalarValue` — such as `limetech.value-comparison` — see the
91
+ * figure on screen, while any other context the primitive reads
92
+ * resolves from the DOM.
93
+ */
94
+ reducedPresenceRule?: Rule;
56
95
  /**
57
96
  * Only used to trigger a re-render when a config is saved in Lime Admin
58
97
  */
@@ -72,12 +111,22 @@ export declare class InfoTile implements LimeWebComponent {
72
111
  private loadInfoTileValue;
73
112
  private getKey;
74
113
  render(): any;
114
+ /**
115
+ * Effective `reducedPresence` for this render. The boolean prop
116
+ * wins if it's set; otherwise the rule is evaluated against the
117
+ * current value. The rule is skipped while loading so the tile
118
+ * doesn't flicker between dimmed and full-presence on its first
119
+ * paint — the load completes within a frame or two and the next
120
+ * render picks up the real value.
121
+ */
122
+ private shouldReducePresence;
75
123
  private getFormattedValue;
76
124
  private getLabel;
77
125
  private getLink;
78
126
  private getFilter;
79
127
  private getFormatter;
80
128
  private get translator();
129
+ private get ruleRegistry();
81
130
  private get language();
82
131
  private get loader();
83
132
  private registerContextProvider;
@@ -0,0 +1,12 @@
1
+ import { RuleRegistry } from '@limetech/lime-web-components';
2
+ /**
3
+ * Attach `limebb-value-comparison-editor` as the args editor for the
4
+ * `limetech.value-comparison` primitive, so the rule editor renders an
5
+ * operator and operand instead of a raw JSON field. The primitive itself
6
+ * is defined in limeclient.js; this only fills in the `configComponent`
7
+ * that a non-component library cannot reference.
8
+ *
9
+ * @param registry - the platform's rule registry.
10
+ */
11
+ export declare const attachValueComparisonEditorMetadata: (registry: RuleRegistry) => void;
12
+ //# sourceMappingURL=value-comparison-editor-metadata.d.ts.map
@@ -0,0 +1,45 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { Operator } from '@limetech/lime-web-components';
3
+ import { FormComponent } from '@limetech/lime-elements';
4
+ /**
5
+ * The scalar types the editor emits. A wider set is accepted by the
6
+ * `limetech.value-comparison` primitive, but the editor only needs to
7
+ * distinguish numeric ordering from the case-insensitive string ordering
8
+ * that also sorts ISO date strings correctly.
9
+ */
10
+ export type ValueComparisonValueType = 'number' | 'string';
11
+ export interface ValueComparisonEditorValue {
12
+ operator?: Operator;
13
+ operand?: string | number;
14
+ valueType?: ValueComparisonValueType;
15
+ }
16
+ /**
17
+ * Args editor for the `limetech.value-comparison` rule primitive: an
18
+ * operator from the match-filter {@link Operator} vocabulary plus the value
19
+ * to compare against. The operand is emitted as a number when it parses as
20
+ * one and as a string otherwise; the `valueType` follows from it so the
21
+ * primitive orders numerically for numbers and lexically for strings (ISO
22
+ * date strings sort correctly that way).
23
+ *
24
+ * Emptiness is a separate concern handled by the `limetech.value-is-empty`
25
+ * primitive, so this editor offers comparison operators only.
26
+ *
27
+ * @alpha
28
+ * @private
29
+ */
30
+ export declare class ValueComparisonEditor implements FormComponent<ValueComparisonEditorValue> {
31
+ /**
32
+ * @inheritdoc
33
+ */
34
+ value: ValueComparisonEditorValue;
35
+ /**
36
+ * @inheritdoc
37
+ */
38
+ change: EventEmitter<ValueComparisonEditorValue>;
39
+ render(): any;
40
+ private renderOperandInput;
41
+ private handleOperatorChange;
42
+ private handleOperandChange;
43
+ private withOperand;
44
+ }
45
+ //# sourceMappingURL=value-comparison-editor.d.ts.map
@@ -33,6 +33,7 @@ import { NotificationItem } from "./components/notification-list/notification-it
33
33
  import { RuleArgFilterEditorValue } from "./components/rule-editor/rule-arg-filter-editor/rule-arg-filter-editor";
34
34
  import { TriggerMap } from "./components/text-editor/text-editor.types";
35
35
  import { EnhancedEditorMetadata } from "./components/text-editor/uploader/building-blocks-upload-handler";
36
+ import { ValueComparisonEditorValue } from "./components/rule-editor/value-comparison-editor/value-comparison-editor";
36
37
  export { AlertType } from "./components/alert-dialog/alert-dialog.types";
37
38
  export { AggregateOperator, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, Rule, RuleRef } from "@limetech/lime-web-components";
38
39
  export { BrowserItem } from "./components/browser/browser-item.types";
@@ -61,6 +62,7 @@ export { NotificationItem } from "./components/notification-list/notification-it
61
62
  export { RuleArgFilterEditorValue } from "./components/rule-editor/rule-arg-filter-editor/rule-arg-filter-editor";
62
63
  export { TriggerMap } from "./components/text-editor/text-editor.types";
63
64
  export { EnhancedEditorMetadata } from "./components/text-editor/uploader/building-blocks-upload-handler";
65
+ export { ValueComparisonEditorValue } from "./components/rule-editor/value-comparison-editor/value-comparison-editor";
64
66
  export namespace Components {
65
67
  /**
66
68
  * An alert dialog interrupts the user flow. It can be used when an explicit
@@ -1069,6 +1071,7 @@ export namespace Components {
1069
1071
  * @exampleComponent limebb-example-info-tile-unit-format
1070
1072
  * @exampleComponent limebb-example-info-tile-date-format
1071
1073
  * @exampleComponent limebb-example-info-tile-relative-date-format
1074
+ * @exampleComponent limebb-example-info-tile-reduce-presence
1072
1075
  * @beta
1073
1076
  */
1074
1077
  interface LimebbInfoTile {
@@ -1110,6 +1113,14 @@ export namespace Components {
1110
1113
  * Name of the property to use when aggregating
1111
1114
  */
1112
1115
  "propertyName": string;
1116
+ /**
1117
+ * When `true`, the info tile is rendered with a reduced visual presence (lower saturation and opacity) so it draws less attention. Use this for tiles whose values are not currently noteworthy — for example, a counter that is zero or a metric that sits within an expected range — so the user is not overwhelmed by a dashboard full of equally-loud tiles. The actual styling lives on `limel-info-tile`; this component just forwards the boolean. Set this directly when the consumer already knows the answer. When the answer depends on the tile's value, set {@link reducedPresenceRule} instead and the tile will compute the boolean itself.
1118
+ */
1119
+ "reducedPresence"?: boolean;
1120
+ /**
1121
+ * Rule that drives `reducedPresence` from the tile's loaded value. When set, the tile evaluates it against its `value` after each load and dims itself when the rule is `true`. The {@link reducedPresence} prop still takes effect on top — if either says "dim", the tile dims. Any rule the `RuleRegistry` can compile works. The tile evaluates it against a scope anchored on its host, with the tile's loaded value supplied as `scalarValue`. So primitives reading `scalarValue` — such as `limetech.value-comparison` — see the figure on screen, while any other context the primitive reads resolves from the DOM.
1122
+ */
1123
+ "reducedPresenceRule"?: Rule;
1113
1124
  /**
1114
1125
  * A string of text that is visually placed after the value.
1115
1126
  */
@@ -2689,6 +2700,26 @@ export namespace Components {
2689
2700
  */
2690
2701
  interface LimebbTypingIndicator {
2691
2702
  }
2703
+ /**
2704
+ * Args editor for the `limetech.value-comparison` rule primitive: an
2705
+ * operator from the match-filter {@link Operator} vocabulary plus the value
2706
+ * to compare against. The operand is emitted as a number when it parses as
2707
+ * one and as a string otherwise; the `valueType` follows from it so the
2708
+ * primitive orders numerically for numbers and lexically for strings (ISO
2709
+ * date strings sort correctly that way).
2710
+ * Emptiness is a separate concern handled by the `limetech.value-is-empty`
2711
+ * primitive, so this editor offers comparison operators only.
2712
+ * @alpha
2713
+ * @private
2714
+ */
2715
+ interface LimebbValueComparisonEditor {
2716
+ /**
2717
+ * The value of the current property
2718
+ * @inheritdoc
2719
+ * @default {}
2720
+ */
2721
+ "value": ValueComparisonEditorValue;
2722
+ }
2692
2723
  }
2693
2724
  export interface LimebbAlertDialogCustomEvent<T> extends CustomEvent<T> {
2694
2725
  detail: T;
@@ -2882,6 +2913,10 @@ export interface LimebbTextEditorPickerCustomEvent<T> extends CustomEvent<T> {
2882
2913
  detail: T;
2883
2914
  target: HTMLLimebbTextEditorPickerElement;
2884
2915
  }
2916
+ export interface LimebbValueComparisonEditorCustomEvent<T> extends CustomEvent<T> {
2917
+ detail: T;
2918
+ target: HTMLLimebbValueComparisonEditorElement;
2919
+ }
2885
2920
  declare global {
2886
2921
  interface HTMLLimebbAlertDialogElementEventMap {
2887
2922
  "dismiss": void;
@@ -3504,6 +3539,7 @@ declare global {
3504
3539
  * @exampleComponent limebb-example-info-tile-unit-format
3505
3540
  * @exampleComponent limebb-example-info-tile-date-format
3506
3541
  * @exampleComponent limebb-example-info-tile-relative-date-format
3542
+ * @exampleComponent limebb-example-info-tile-reduce-presence
3507
3543
  * @beta
3508
3544
  */
3509
3545
  interface HTMLLimebbInfoTileElement extends Components.LimebbInfoTile, HTMLStencilElement {
@@ -4670,6 +4706,35 @@ declare global {
4670
4706
  prototype: HTMLLimebbTypingIndicatorElement;
4671
4707
  new (): HTMLLimebbTypingIndicatorElement;
4672
4708
  };
4709
+ interface HTMLLimebbValueComparisonEditorElementEventMap {
4710
+ "change": ValueComparisonEditorValue;
4711
+ }
4712
+ /**
4713
+ * Args editor for the `limetech.value-comparison` rule primitive: an
4714
+ * operator from the match-filter {@link Operator} vocabulary plus the value
4715
+ * to compare against. The operand is emitted as a number when it parses as
4716
+ * one and as a string otherwise; the `valueType` follows from it so the
4717
+ * primitive orders numerically for numbers and lexically for strings (ISO
4718
+ * date strings sort correctly that way).
4719
+ * Emptiness is a separate concern handled by the `limetech.value-is-empty`
4720
+ * primitive, so this editor offers comparison operators only.
4721
+ * @alpha
4722
+ * @private
4723
+ */
4724
+ interface HTMLLimebbValueComparisonEditorElement extends Components.LimebbValueComparisonEditor, HTMLStencilElement {
4725
+ addEventListener<K extends keyof HTMLLimebbValueComparisonEditorElementEventMap>(type: K, listener: (this: HTMLLimebbValueComparisonEditorElement, ev: LimebbValueComparisonEditorCustomEvent<HTMLLimebbValueComparisonEditorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
4726
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4727
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4728
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
4729
+ removeEventListener<K extends keyof HTMLLimebbValueComparisonEditorElementEventMap>(type: K, listener: (this: HTMLLimebbValueComparisonEditorElement, ev: LimebbValueComparisonEditorCustomEvent<HTMLLimebbValueComparisonEditorElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
4730
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4731
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4732
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
4733
+ }
4734
+ var HTMLLimebbValueComparisonEditorElement: {
4735
+ prototype: HTMLLimebbValueComparisonEditorElement;
4736
+ new (): HTMLLimebbValueComparisonEditorElement;
4737
+ };
4673
4738
  interface HTMLElementTagNameMap {
4674
4739
  "limebb-alert-dialog": HTMLLimebbAlertDialogElement;
4675
4740
  "limebb-browser": HTMLLimebbBrowserElement;
@@ -4739,6 +4804,7 @@ declare global {
4739
4804
  "limebb-text-editor-picker": HTMLLimebbTextEditorPickerElement;
4740
4805
  "limebb-trend-indicator": HTMLLimebbTrendIndicatorElement;
4741
4806
  "limebb-typing-indicator": HTMLLimebbTypingIndicatorElement;
4807
+ "limebb-value-comparison-editor": HTMLLimebbValueComparisonEditorElement;
4742
4808
  }
4743
4809
  }
4744
4810
  declare namespace LocalJSX {
@@ -5823,6 +5889,7 @@ declare namespace LocalJSX {
5823
5889
  * @exampleComponent limebb-example-info-tile-unit-format
5824
5890
  * @exampleComponent limebb-example-info-tile-date-format
5825
5891
  * @exampleComponent limebb-example-info-tile-relative-date-format
5892
+ * @exampleComponent limebb-example-info-tile-reduce-presence
5826
5893
  * @beta
5827
5894
  */
5828
5895
  interface LimebbInfoTile {
@@ -5864,6 +5931,14 @@ declare namespace LocalJSX {
5864
5931
  * Name of the property to use when aggregating
5865
5932
  */
5866
5933
  "propertyName"?: string;
5934
+ /**
5935
+ * When `true`, the info tile is rendered with a reduced visual presence (lower saturation and opacity) so it draws less attention. Use this for tiles whose values are not currently noteworthy — for example, a counter that is zero or a metric that sits within an expected range — so the user is not overwhelmed by a dashboard full of equally-loud tiles. The actual styling lives on `limel-info-tile`; this component just forwards the boolean. Set this directly when the consumer already knows the answer. When the answer depends on the tile's value, set {@link reducedPresenceRule} instead and the tile will compute the boolean itself.
5936
+ */
5937
+ "reducedPresence"?: boolean;
5938
+ /**
5939
+ * Rule that drives `reducedPresence` from the tile's loaded value. When set, the tile evaluates it against its `value` after each load and dims itself when the rule is `true`. The {@link reducedPresence} prop still takes effect on top — if either says "dim", the tile dims. Any rule the `RuleRegistry` can compile works. The tile evaluates it against a scope anchored on its host, with the tile's loaded value supplied as `scalarValue`. So primitives reading `scalarValue` — such as `limetech.value-comparison` — see the figure on screen, while any other context the primitive reads resolves from the DOM.
5940
+ */
5941
+ "reducedPresenceRule"?: Rule;
5867
5942
  /**
5868
5943
  * A string of text that is visually placed after the value.
5869
5944
  */
@@ -7587,6 +7662,31 @@ declare namespace LocalJSX {
7587
7662
  */
7588
7663
  interface LimebbTypingIndicator {
7589
7664
  }
7665
+ /**
7666
+ * Args editor for the `limetech.value-comparison` rule primitive: an
7667
+ * operator from the match-filter {@link Operator} vocabulary plus the value
7668
+ * to compare against. The operand is emitted as a number when it parses as
7669
+ * one and as a string otherwise; the `valueType` follows from it so the
7670
+ * primitive orders numerically for numbers and lexically for strings (ISO
7671
+ * date strings sort correctly that way).
7672
+ * Emptiness is a separate concern handled by the `limetech.value-is-empty`
7673
+ * primitive, so this editor offers comparison operators only.
7674
+ * @alpha
7675
+ * @private
7676
+ */
7677
+ interface LimebbValueComparisonEditor {
7678
+ /**
7679
+ * The event to emit when the value of the current property has changed
7680
+ * @inheritdoc
7681
+ */
7682
+ "onChange"?: (event: LimebbValueComparisonEditorCustomEvent<ValueComparisonEditorValue>) => void;
7683
+ /**
7684
+ * The value of the current property
7685
+ * @inheritdoc
7686
+ * @default {}
7687
+ */
7688
+ "value"?: ValueComparisonEditorValue;
7689
+ }
7590
7690
 
7591
7691
  interface LimebbAlertDialogAttributes {
7592
7692
  "type": AlertType;
@@ -7734,6 +7834,7 @@ declare namespace LocalJSX {
7734
7834
  "suffix": string;
7735
7835
  "propertyName": string;
7736
7836
  "aggregateOperator": AggregateOperator;
7837
+ "reducedPresence": boolean;
7737
7838
  }
7738
7839
  interface LimebbInfoTileFormatAttributes {
7739
7840
  "type": 'number' | 'date' | 'none';
@@ -7994,6 +8095,7 @@ declare namespace LocalJSX {
7994
8095
  "limebb-text-editor-picker": Omit<LimebbTextEditorPicker, keyof LimebbTextEditorPickerAttributes> & { [K in keyof LimebbTextEditorPicker & keyof LimebbTextEditorPickerAttributes]?: LimebbTextEditorPicker[K] } & { [K in keyof LimebbTextEditorPicker & keyof LimebbTextEditorPickerAttributes as `attr:${K}`]?: LimebbTextEditorPickerAttributes[K] } & { [K in keyof LimebbTextEditorPicker & keyof LimebbTextEditorPickerAttributes as `prop:${K}`]?: LimebbTextEditorPicker[K] };
7995
8096
  "limebb-trend-indicator": Omit<LimebbTrendIndicator, keyof LimebbTrendIndicatorAttributes> & { [K in keyof LimebbTrendIndicator & keyof LimebbTrendIndicatorAttributes]?: LimebbTrendIndicator[K] } & { [K in keyof LimebbTrendIndicator & keyof LimebbTrendIndicatorAttributes as `attr:${K}`]?: LimebbTrendIndicatorAttributes[K] } & { [K in keyof LimebbTrendIndicator & keyof LimebbTrendIndicatorAttributes as `prop:${K}`]?: LimebbTrendIndicator[K] };
7996
8097
  "limebb-typing-indicator": LimebbTypingIndicator;
8098
+ "limebb-value-comparison-editor": LimebbValueComparisonEditor;
7997
8099
  }
7998
8100
  }
7999
8101
  export { LocalJSX as JSX };
@@ -8348,6 +8450,7 @@ declare module "@stencil/core" {
8348
8450
  * @exampleComponent limebb-example-info-tile-unit-format
8349
8451
  * @exampleComponent limebb-example-info-tile-date-format
8350
8452
  * @exampleComponent limebb-example-info-tile-relative-date-format
8453
+ * @exampleComponent limebb-example-info-tile-reduce-presence
8351
8454
  * @beta
8352
8455
  */
8353
8456
  "limebb-info-tile": LocalJSX.IntrinsicElements["limebb-info-tile"] & JSXBase.HTMLAttributes<HTMLLimebbInfoTileElement>;
@@ -8910,6 +9013,19 @@ declare module "@stencil/core" {
8910
9013
  * @private
8911
9014
  */
8912
9015
  "limebb-typing-indicator": LocalJSX.IntrinsicElements["limebb-typing-indicator"] & JSXBase.HTMLAttributes<HTMLLimebbTypingIndicatorElement>;
9016
+ /**
9017
+ * Args editor for the `limetech.value-comparison` rule primitive: an
9018
+ * operator from the match-filter {@link Operator} vocabulary plus the value
9019
+ * to compare against. The operand is emitted as a number when it parses as
9020
+ * one and as a string otherwise; the `valueType` follows from it so the
9021
+ * primitive orders numerically for numbers and lexically for strings (ISO
9022
+ * date strings sort correctly that way).
9023
+ * Emptiness is a separate concern handled by the `limetech.value-is-empty`
9024
+ * primitive, so this editor offers comparison operators only.
9025
+ * @alpha
9026
+ * @private
9027
+ */
9028
+ "limebb-value-comparison-editor": LocalJSX.IntrinsicElements["limebb-value-comparison-editor"] & JSXBase.HTMLAttributes<HTMLLimebbValueComparisonEditorElement>;
8913
9029
  }
8914
9030
  }
8915
9031
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-crm-building-blocks",
3
- "version": "1.134.0",
3
+ "version": "1.135.1",
4
4
  "description": "A home for shared components meant for use with Lime CRM",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -35,10 +35,10 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@limetech/eslint-config": "^4.0.1",
38
- "@limetech/lime-elements": "^39.32.1",
39
- "@limetech/lime-web-components": "^6.24.0",
38
+ "@limetech/lime-elements": "^39.33.1",
39
+ "@limetech/lime-web-components": "^6.25.0",
40
40
  "@lundalogik/lime-icons8": "^2.41.0",
41
- "@lundalogik/limeclient.js": "^1.105.1",
41
+ "@lundalogik/limeclient.js": "^1.107.0",
42
42
  "@stencil/core": "^4.43.4",
43
43
  "@stencil/sass": "^3.1.9",
44
44
  "@types/jest": "^29.5.14",
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as e}from"./p-DYpn0EkA.js";import{b as s}from"./p-CqRNpSRV.js";const h=class{constructor(e){t(this,e),this.change=i(this,"change"),this.disabled=!1,this.readonly=!1,this.invalid=!1,this.required=!1,this.type="datetime",this.shouldEmitValueAsString=!0,this.handleChange=t=>{if(!t.detail)return;t.stopPropagation();const i=(e=t.detail,"datetime"===(s=this.type)||"time"===s?e:new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())));var e,s;this.change.emit(this.shouldEmitValueAsString?i.toISOString():i)},this.formatter=t=>this.dateTimeFormatter.format(t,r[this.type]||this.type)}render(){return this.language||(this.language=this.getAppLanguage()),this.value&&(this.shouldEmitValueAsString="string"==typeof this.value),e("limel-date-picker",{key:"03fcd4817bc780ed9869e07351b2fc20008af09d",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})}parseDateValue(){const t=this.value;if(t)return this.dateTimeFormatter.parse(t,r[this.type]||this.type)}get dateTimeFormatter(){return this.platform.get(s.DateTimeFormatter)}getAppLanguage(){const t=this.platform.get(s.Translate),i=this.platform.get(s.Application);let e;var h;return e="function"==typeof(null==(h=t)?void 0:h.getLanguage)?t.getLanguage():i.getLanguage(),n(e)?e:"en"}},r={datetime:"time",time:"timeofday"},a=new Set(["da","de","en","fi","fr","nb","no","nl","sv"]),n=t=>a.has(t);export{h as limebb_date_picker}
@@ -1 +0,0 @@
1
- import{r as t,c as e}from"./p-DYpn0EkA.js";import{H as o,b as c}from"./p-CqRNpSRV.js";import{H as i}from"./p-BWMpG2bS.js";let s=class{constructor(t){this.itemId=t}};s=function(t,e,o,c){var i,s=arguments.length,l=s<3?e:null===c?c=Object.getOwnPropertyDescriptor(e,o):c;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,e,o,c);else for(var n=t.length-1;n>=0;n--)(i=t[n])&&(l=(s<3?i(l):s>3?i(e,o,l):i(e,o))||l);return s>3&&l&&Object.defineProperty(e,o,l),l}([o({id:"limebb-feed.highlight-item"})],s);const l="limetech.limeobject-matches-filter",n=class{constructor(o){t(this,o),this.loaded=e(this,"loaded")}connectedCallback(){}async componentWillLoad(){const t=new i;var e;this.platform.register(i.SERVICE_NAME,t),this.commandBus.register(s,t),(e=this.platform.get(c.RuleRegistry)).listPrimitives().some((t=>t.id===l))&&e.attachMetadata(l,{configComponent:{name:"limebb-rule-arg-filter-editor"}}),this.loaded.emit()}componentWillUpdate(){}disconnectedCallback(){}get commandBus(){return this.platform.get(c.CommandBus)}};export{n as limebb_loader}
@@ -1 +0,0 @@
1
- import{r as t,h as e,H as s,g as i}from"./p-DYpn0EkA.js";import{b as o}from"./p-CqRNpSRV.js";const h=class{constructor(e){t(this,e),this.shouldRender=!1}componentWillLoad(){this.compileAndEvaluate()}onRuleChange(){this.compileAndEvaluate()}onScopeChange(){this.compileAndEvaluate()}render(){return e(s,{key:"8fe8b9fad90211b80b4672563f6d599ce1cb11c3",hidden:!this.shouldRender},e("slot",{key:"f434d25308b85fd084d369ccf2b0e22bd3513210"}))}get ruleRegistry(){return this.platform.get(o.RuleRegistry)}compileAndEvaluate(){var t;if(this.rule)try{const e=this.ruleRegistry.compile(this.rule),s=null!==(t=this.scope)&&void 0!==t?t:this.ruleRegistry.scope({host:this.host});this.shouldRender=e(s)}catch(t){console.warn("rule-gate failed to compile rule; hiding slot",{rule:this.rule,error:t}),this.shouldRender=!1}else this.shouldRender=!0}get host(){return i(this)}static get watchers(){return{rule:[{onRuleChange:0}],scope:[{onScopeChange:0}]}}};h.style=":host{display:block}:host([hidden]){display:none}";export{h as limebb_rule_gate}
@@ -1 +0,0 @@
1
- import{r as t,c as e,h as i,H as r}from"./p-DYpn0EkA.js";import{b as s}from"./p-CqRNpSRV.js";import{g as o}from"./p-BbFGcMnU.js";import{i as n}from"./p-CkTg5UPD.js";import{b as a}from"./p-CKEnwX6j.js";import{i as l,a as h,b as d}from"./p-BgAfMcRA.js";import"./p-CtcTT7BK.js";function m(t){return"string"==typeof t||!h(t)&&l(t)&&"[object String]"==d(t)}const c=class{constructor(i){t(this,i),this.change=e(this,"change"),this.label="Sort Order",this.items=[],this.handleItemChange=t=>e=>{e.stopPropagation();const i=[...this.items];null===e.detail?i.splice(t,1):i[t]=e.detail,this.items=i,this.emitChange()},this.handleAddSortField=()=>{this.items=[...this.items,{"":"ASC"}],this.emitChange()}}componentWillLoad(){this.value&&this.value.length>0&&(this.items=[...this.value])}handleValueChange(t){t&&(t.length!==this.items.length||!t.every(((t,e)=>{const i=this.items[e];if(!i)return!1;const r=Object.keys(t)[0],s=Object.keys(i)[0];return r===s&&t[r]===i[s]})))&&(this.items=t.length>0?[...t]:[])}render(){return i(r,{key:"59e3bb0334e5528fc8a0f8747086348d1a195c82"},this.renderEmptyState(),this.renderOrderByEditor())}renderEmptyState(){return this.limetype?null:i("div",{class:"empty-state"},i("p",null,"Select a limetype to configure sorting"))}renderOrderByEditor(){return this.limetype?[this.renderHeader(),this.renderOrderByList(),this.renderActions()]:null}renderHeader(){return i("limel-header",{class:"is-narrow",heading:this.label,icon:"sorting_arrows"})}renderOrderByList(){return 0===this.items.length?null:i("div",{class:"order-by-list"},this.items.map(((t,e)=>this.renderItem(t,e))))}renderActions(){return i("limel-button",{label:"Add Sort Field",icon:"plus_math",onClick:this.handleAddSortField})}renderItem(t,e){const r=Object.keys(t)[0]||"";return i("limebb-lime-query-order-by-item",{key:`${r}-${e}`,class:"order-by-item",platform:this.platform,context:this.context,limetype:this.limetype,item:t,onItemChange:this.handleItemChange(e)})}emitChange(){this.change.emit(this.items)}static get watchers(){return{value:[{handleValueChange:0}]}}};c.style=":host(limebb-lime-query-order-by-editor){display:flex;flex-direction:column;gap:1rem;padding:1rem 0}.header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.header h4{margin:0;font-size:1rem;font-weight:600;color:rgb(var(--contrast-1000))}.order-by-list{display:flex;flex-direction:column;gap:1rem;border:1px solid rgb(var(--contrast-300));border-radius:0.25rem;background-color:rgb(var(--contrast-50));min-height:4rem}.order-by-item{padding:0.5rem;border-radius:0.25rem;transition:background-color 0.2s}.order-by-item:hover{background-color:rgb(var(--contrast-100))}.actions{display:flex;width:100%}.summary{display:flex;justify-content:space-between;align-items:center;padding-top:0.5rem;border-top:1px solid rgb(var(--contrast-300))}.summary .count{font-size:0.875rem;font-weight:500;color:rgb(var(--contrast-900))}limel-header.is-narrow{--header-top-right-left-border-radius:0;width:calc(100% + var(--limebb-lime-query-builder-visual-mode-padding) * 2);margin-left:calc(var(--limebb-lime-query-builder-visual-mode-padding) * -1)}.empty-state{padding:0 2rem;text-align:center;color:rgb(var(--contrast-700))}";const u=["string","text","phone","integer","decimal","percent","time","date","year","quarter","month","yesno","link","user","xml","option","set","file","system"],p=u.filter((t=>"system"!==t));p.push("belongsto","hasone","hasmany","hasandbelongstomany");const b=class{constructor(i){t(this,i),this.change=e(this,"change"),this.propertyFields=[],this.fieldName="limetype",this.handleChange=t=>{t.stopPropagation();let e="";t.detail&&"value"in t.detail&&(e=t.detail.value),this.change.emit(e||void 0)}}componentWillLoad(){const t=this.platform.get(s.Application).getLanguage();this.collator=new Intl.Collator(t,{numeric:!0,sensitivity:"base"})}componentShouldUpdate(t,e,i){var r,s,o,n;return"formInfo"!==i||(o=null===(r=null==t?void 0:t.schema)||void 0===r?void 0:r.oneOf,n=null===(s=null==e?void 0:e.schema)||void 0===s?void 0:s.oneOf,!a(o,n))}render(){var t;const e=this.getLimeTypes().map(g);e.sort(((t,e)=>this.collator.compare(t.text,e.text)));let r=e.find((t=>t.value===this.value)),s=this.invalid;return this.value&&!r&&(s=!0,e.unshift({text:(null===(t=this.limeTypeRepository.getLimeType(this.value))||void 0===t?void 0:t.localname.singular)||this.value,value:this.value}),r=e[0]),e.unshift({text:"",value:""}),i("limel-select",{key:"85956ae62a4975a7706b4a561b1e321078e0dc2a",label:this.label,options:e,value:r,required:this.required,helperText:this.helperText,invalid:s,disabled:this.disabled||this.readonly,onChange:this.handleChange})}componentWillRender(){this.updatePropertyFields(this.value||"")}getLimeTypes(){var t,e;let i=this.limetypes;return(null===(e=null===(t=this.formInfo)||void 0===t?void 0:t.schema)||void 0===e?void 0:e.oneOf)&&(i=this.formInfo.schema.oneOf.map((t=>t.const)).filter(m)),i?i.map((t=>this.limeTypeRepository.getLimeType(t))).filter(n):this.limeTypeRepository.getLimeTypes()}updatePropertyFields(t){for(const e of this.propertyFields)e.limetype=t,e.allowedPropertyTypes===u&&(e.allowedPropertyTypes=p)}get limeTypeRepository(){return this.platform.get(s.LimeTypeRepository)}},g=t=>({text:t.localname.singular,value:t.name,icon:o(t)});export{c as limebb_lime_query_order_by_editor,b as limebb_limetype_field}