@limetech/lime-crm-building-blocks 2.0.4 → 2.2.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 (288) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/condition-tree-translate-B_qIQz9s.js +27 -0
  3. package/dist/cjs/index.cjs.js +6 -0
  4. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  5. package/dist/cjs/limebb-alert-dialog.cjs.entry.js +1 -1
  6. package/dist/cjs/limebb-browser.cjs.entry.js +2 -2
  7. package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +4 -4
  8. package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
  9. package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +1 -1
  11. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +2 -2
  12. package/dist/cjs/limebb-condition-tree-editor.cjs.entry.js +90 -0
  13. package/dist/cjs/limebb-condition-tree.cjs.entry.js +882 -0
  14. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  17. package/dist/cjs/limebb-date-range.cjs.entry.js +1 -1
  18. package/dist/cjs/limebb-document-chips.cjs.entry.js +1 -1
  19. package/dist/cjs/limebb-document-item.cjs.entry.js +2 -2
  20. package/dist/cjs/limebb-document-picker.cjs.entry.js +1 -1
  21. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +1 -1
  22. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  23. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  24. package/dist/cjs/limebb-filter-chip_6.cjs.entry.js +7 -7
  25. package/dist/cjs/limebb-icon-picker.cjs.entry.js +1 -1
  26. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
  27. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  28. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  29. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  30. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +1 -1
  31. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +2 -2
  33. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +2 -2
  34. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +1 -1
  35. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +1 -1
  36. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  37. package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
  38. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  39. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +2 -2
  40. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  41. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  42. package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +2 -2
  43. package/dist/cjs/limebb-rule-editor.cjs.entry.js +162 -22
  44. package/dist/cjs/limebb-rule-gate.cjs.entry.js +1 -1
  45. package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
  46. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  47. package/dist/cjs/limebb-value-comparison-editor.cjs.entry.js +1 -1
  48. package/dist/cjs/loader.cjs.js +1 -1
  49. package/dist/cjs/rule-editor-modes-Dc6rnwD2.js +76 -0
  50. package/dist/collection/collection-manifest.json +3 -1
  51. package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
  52. package/dist/collection/components/browser/browser.js +2 -2
  53. package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
  54. package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
  55. package/dist/collection/components/chat-list/chat-list.js +1 -1
  56. package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
  57. package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
  58. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
  59. package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
  60. package/dist/collection/components/condition-tree/condition-tree-combinators.js +78 -0
  61. package/dist/collection/components/condition-tree/condition-tree-editor/condition-tree-editor.css +17 -0
  62. package/dist/collection/components/condition-tree/condition-tree-editor/condition-tree-editor.js +333 -0
  63. package/dist/collection/components/condition-tree/condition-tree-nodes.js +218 -0
  64. package/dist/collection/components/condition-tree/condition-tree-open-state.js +127 -0
  65. package/dist/collection/components/condition-tree/condition-tree-translate.js +22 -0
  66. package/dist/collection/components/condition-tree/condition-tree-view-context.js +22 -0
  67. package/dist/collection/components/condition-tree/condition-tree.css +132 -0
  68. package/dist/collection/components/condition-tree/condition-tree.js +461 -0
  69. package/dist/collection/components/condition-tree/condition-tree.types.js +1 -0
  70. package/dist/collection/components/condition-tree/group-node-view.js +153 -0
  71. package/dist/collection/components/condition-tree/leaf-node-view.js +74 -0
  72. package/dist/collection/components/currency-picker/currency-picker.js +1 -1
  73. package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
  74. package/dist/collection/components/date-picker/date-picker.js +1 -1
  75. package/dist/collection/components/date-range/date-range.js +1 -1
  76. package/dist/collection/components/document-chips/document-chips.js +1 -1
  77. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  78. package/dist/collection/components/document-picker/document-picker.js +1 -1
  79. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  80. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  81. package/dist/collection/components/feed/feed.js +1 -1
  82. package/dist/collection/components/filter-chip/filter-chip.js +2 -2
  83. package/dist/collection/components/filter-condition-picker/filter-condition-picker.js +1 -1
  84. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  85. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  86. package/dist/collection/components/info-tile/info-tile.js +1 -1
  87. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  88. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  89. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +1 -1
  90. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +2 -2
  91. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
  92. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  93. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  94. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  95. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  96. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  97. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  98. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  99. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  100. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  101. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  102. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  103. package/dist/collection/components/rule-editor/group-node-view.js +3 -3
  104. package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +2 -2
  105. package/dist/collection/components/rule-editor/rule-editor-mode-view.js +32 -0
  106. package/dist/collection/components/rule-editor/rule-editor-modes.js +68 -0
  107. package/dist/collection/components/rule-editor/rule-editor.css +153 -12
  108. package/dist/collection/components/rule-editor/rule-editor.js +201 -19
  109. package/dist/collection/components/rule-editor/rule-editor.types.js +1 -0
  110. package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.js +1 -1
  111. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  112. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  113. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  114. package/dist/collection/components/text-editor/text-editor.js +1 -1
  115. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  116. package/dist/collection/index.js +2 -0
  117. package/dist/components/chat-icon-list.js +1 -1
  118. package/dist/components/chat-item.js +1 -1
  119. package/dist/components/condition-tree-editor.js +1 -0
  120. package/dist/components/currency-picker.js +1 -1
  121. package/dist/components/date-picker.js +1 -1
  122. package/dist/components/document-item.js +1 -1
  123. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  124. package/dist/components/feed-timeline-item.js +1 -1
  125. package/dist/components/filter-chip.js +1 -1
  126. package/dist/components/filter-condition-picker.js +1 -1
  127. package/dist/components/index.js +1 -1
  128. package/dist/components/kanban-group.js +1 -1
  129. package/dist/components/kanban-item.js +1 -1
  130. package/dist/components/lime-query-filter-comparison-editor.js +1 -1
  131. package/dist/components/lime-query-filter-comparison.js +1 -1
  132. package/dist/components/lime-query-filter-expression.js +1 -1
  133. package/dist/components/limebb-alert-dialog.js +1 -1
  134. package/dist/components/limebb-browser.js +1 -1
  135. package/dist/components/limebb-chat-list.js +1 -1
  136. package/dist/components/limebb-color-palette-picker.js +1 -1
  137. package/dist/components/limebb-color-palette-swatches.js +1 -1
  138. package/dist/components/limebb-composer-toolbar.js +1 -1
  139. package/dist/components/limebb-condition-tree-editor.d.ts +11 -0
  140. package/dist/components/limebb-condition-tree-editor.js +1 -0
  141. package/dist/components/limebb-condition-tree.d.ts +11 -0
  142. package/dist/components/limebb-condition-tree.js +1 -0
  143. package/dist/components/limebb-dashboard-widget.js +1 -1
  144. package/dist/components/limebb-date-range.js +1 -1
  145. package/dist/components/limebb-document-chips.js +1 -1
  146. package/dist/components/limebb-document-picker.js +1 -1
  147. package/dist/components/limebb-feed.js +1 -1
  148. package/dist/components/limebb-icon-picker.js +1 -1
  149. package/dist/components/limebb-info-tile-format.js +1 -1
  150. package/dist/components/limebb-info-tile.js +1 -1
  151. package/dist/components/limebb-lime-query-builder.js +1 -1
  152. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  153. package/dist/components/limebb-locale-picker.js +1 -1
  154. package/dist/components/limebb-mention-group-counter.js +1 -1
  155. package/dist/components/limebb-rule-editor.js +1 -1
  156. package/dist/components/limebb-rule-gate.js +1 -1
  157. package/dist/components/limebb-text-editor.js +1 -1
  158. package/dist/components/limebb-trend-indicator.js +1 -1
  159. package/dist/components/limebb-value-comparison-editor.js +1 -1
  160. package/dist/components/limetype-field.js +1 -1
  161. package/dist/components/live-docs-info.js +1 -1
  162. package/dist/components/notification-item.js +1 -1
  163. package/dist/components/order-by-editor.js +1 -1
  164. package/dist/components/order-by-item.js +1 -1
  165. package/dist/components/percentage-visualizer.js +1 -1
  166. package/dist/components/response-format-item.js +1 -1
  167. package/dist/components/rule-chip-popover.js +1 -1
  168. package/dist/components/rule-editor-modes.js +1 -0
  169. package/dist/components/summary-popover.js +1 -1
  170. package/dist/components/typing-indicator.js +1 -1
  171. package/dist/esm/condition-tree-translate-CBeXbZ_z.js +25 -0
  172. package/dist/esm/index.js +1 -0
  173. package/dist/esm/lime-crm-building-blocks.js +1 -1
  174. package/dist/esm/limebb-alert-dialog.entry.js +1 -1
  175. package/dist/esm/limebb-browser.entry.js +2 -2
  176. package/dist/esm/limebb-chat-icon-list_3.entry.js +4 -4
  177. package/dist/esm/limebb-chat-list.entry.js +1 -1
  178. package/dist/esm/limebb-color-palette-picker.entry.js +1 -1
  179. package/dist/esm/limebb-color-palette-swatches.entry.js +1 -1
  180. package/dist/esm/limebb-composer-toolbar.entry.js +2 -2
  181. package/dist/esm/limebb-condition-tree-editor.entry.js +88 -0
  182. package/dist/esm/limebb-condition-tree.entry.js +880 -0
  183. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  184. package/dist/esm/limebb-dashboard-widget.entry.js +1 -1
  185. package/dist/esm/limebb-date-picker.entry.js +1 -1
  186. package/dist/esm/limebb-date-range.entry.js +1 -1
  187. package/dist/esm/limebb-document-chips.entry.js +1 -1
  188. package/dist/esm/limebb-document-item.entry.js +2 -2
  189. package/dist/esm/limebb-document-picker.entry.js +1 -1
  190. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +1 -1
  191. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  192. package/dist/esm/limebb-feed.entry.js +1 -1
  193. package/dist/esm/limebb-filter-chip_6.entry.js +7 -7
  194. package/dist/esm/limebb-icon-picker.entry.js +1 -1
  195. package/dist/esm/limebb-info-tile-format.entry.js +1 -1
  196. package/dist/esm/limebb-info-tile.entry.js +1 -1
  197. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  198. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  199. package/dist/esm/limebb-lime-query-builder.entry.js +1 -1
  200. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +2 -2
  201. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +2 -2
  202. package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
  203. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +1 -1
  204. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +1 -1
  205. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  206. package/dist/esm/limebb-locale-picker.entry.js +1 -1
  207. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  208. package/dist/esm/limebb-navigation-button_2.entry.js +2 -2
  209. package/dist/esm/limebb-notification-item.entry.js +1 -1
  210. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  211. package/dist/esm/limebb-rule-chip-popover.entry.js +2 -2
  212. package/dist/esm/limebb-rule-editor.entry.js +163 -23
  213. package/dist/esm/limebb-rule-gate.entry.js +1 -1
  214. package/dist/esm/limebb-text-editor.entry.js +1 -1
  215. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  216. package/dist/esm/limebb-value-comparison-editor.entry.js +1 -1
  217. package/dist/esm/loader.js +1 -1
  218. package/dist/esm/rule-editor-modes-BCglve2Z.js +70 -0
  219. package/dist/lime-crm-building-blocks/index.esm.js +1 -1
  220. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  221. package/dist/lime-crm-building-blocks/{p-2f8540ab.entry.js → p-02fba38e.entry.js} +1 -1
  222. package/dist/lime-crm-building-blocks/{p-76151fce.entry.js → p-0445035f.entry.js} +1 -1
  223. package/dist/lime-crm-building-blocks/{p-4f0a4893.entry.js → p-0a05b3e9.entry.js} +1 -1
  224. package/dist/lime-crm-building-blocks/p-0dd64440.entry.js +1 -0
  225. package/dist/lime-crm-building-blocks/p-1578c8f0.entry.js +1 -0
  226. package/dist/lime-crm-building-blocks/{p-76064593.entry.js → p-170ab4be.entry.js} +1 -1
  227. package/dist/lime-crm-building-blocks/{p-542047c4.entry.js → p-27b9c824.entry.js} +1 -1
  228. package/dist/lime-crm-building-blocks/{p-2628fe8e.entry.js → p-2d1c7b6f.entry.js} +1 -1
  229. package/dist/lime-crm-building-blocks/{p-c2c181f1.entry.js → p-3fd84800.entry.js} +1 -1
  230. package/dist/lime-crm-building-blocks/{p-c7daffb6.entry.js → p-45dd8663.entry.js} +1 -1
  231. package/dist/lime-crm-building-blocks/{p-cede8095.entry.js → p-4e4d096c.entry.js} +1 -1
  232. package/dist/lime-crm-building-blocks/{p-51eb53ee.entry.js → p-54735042.entry.js} +1 -1
  233. package/dist/lime-crm-building-blocks/{p-c2899d68.entry.js → p-568c4e76.entry.js} +1 -1
  234. package/dist/lime-crm-building-blocks/{p-9907deb1.entry.js → p-584a48e4.entry.js} +1 -1
  235. package/dist/lime-crm-building-blocks/{p-ac4bddfc.entry.js → p-5b97d4f4.entry.js} +1 -1
  236. package/dist/lime-crm-building-blocks/p-615770be.entry.js +1 -0
  237. package/dist/lime-crm-building-blocks/{p-edfaf566.entry.js → p-6d8efe87.entry.js} +1 -1
  238. package/dist/lime-crm-building-blocks/p-705c53c0.entry.js +1 -0
  239. package/dist/lime-crm-building-blocks/{p-031b1648.entry.js → p-73f23d08.entry.js} +1 -1
  240. package/dist/lime-crm-building-blocks/{p-2baab674.entry.js → p-7c5ecffe.entry.js} +1 -1
  241. package/dist/lime-crm-building-blocks/{p-1fac8130.entry.js → p-7cd8dffd.entry.js} +1 -1
  242. package/dist/lime-crm-building-blocks/p-93af3e81.entry.js +1 -0
  243. package/dist/lime-crm-building-blocks/{p-247fcace.entry.js → p-97e2e5c9.entry.js} +1 -1
  244. package/dist/lime-crm-building-blocks/p-BCglve2Z.js +1 -0
  245. package/dist/lime-crm-building-blocks/p-BxCq236x.js +1 -0
  246. package/dist/lime-crm-building-blocks/p-a2b9c410.entry.js +1 -0
  247. package/dist/lime-crm-building-blocks/{p-f9f7020f.entry.js → p-a716b3a8.entry.js} +1 -1
  248. package/dist/lime-crm-building-blocks/p-b3529254.entry.js +1 -0
  249. package/dist/lime-crm-building-blocks/{p-2bfd351d.entry.js → p-b48d7d23.entry.js} +1 -1
  250. package/dist/lime-crm-building-blocks/{p-b373c60f.entry.js → p-b6807166.entry.js} +1 -1
  251. package/dist/lime-crm-building-blocks/{p-318369ae.entry.js → p-b6c2d93b.entry.js} +1 -1
  252. package/dist/lime-crm-building-blocks/{p-d82a2424.entry.js → p-c46802cd.entry.js} +1 -1
  253. package/dist/lime-crm-building-blocks/{p-9099b440.entry.js → p-c635f826.entry.js} +1 -1
  254. package/dist/lime-crm-building-blocks/{p-fec173db.entry.js → p-d816fcc8.entry.js} +1 -1
  255. package/dist/lime-crm-building-blocks/{p-4594c2b1.entry.js → p-d8ce3497.entry.js} +1 -1
  256. package/dist/lime-crm-building-blocks/{p-0f74d662.entry.js → p-d8d32cb1.entry.js} +1 -1
  257. package/dist/lime-crm-building-blocks/{p-99556fc0.entry.js → p-de7724f0.entry.js} +1 -1
  258. package/dist/lime-crm-building-blocks/{p-92403251.entry.js → p-e910963c.entry.js} +1 -1
  259. package/dist/lime-crm-building-blocks/{p-4274cbe3.entry.js → p-ea6ab8b0.entry.js} +1 -1
  260. package/dist/lime-crm-building-blocks/{p-eedbf69a.entry.js → p-ee7bd504.entry.js} +1 -1
  261. package/dist/lime-crm-building-blocks/{p-e1f35866.entry.js → p-f024c185.entry.js} +1 -1
  262. package/dist/lime-crm-building-blocks/{p-7bb2788b.entry.js → p-f102f169.entry.js} +1 -1
  263. package/dist/lime-crm-building-blocks/{p-2984005d.entry.js → p-f1060c88.entry.js} +1 -1
  264. package/dist/lime-crm-building-blocks/{p-17588c29.entry.js → p-f3905fa2.entry.js} +1 -1
  265. package/dist/lime-crm-building-blocks/{p-ac97c7cc.entry.js → p-fc372344.entry.js} +1 -1
  266. package/dist/types/components/condition-tree/condition-tree-combinators.d.ts +47 -0
  267. package/dist/types/components/condition-tree/condition-tree-editor/condition-tree-editor.d.ts +84 -0
  268. package/dist/types/components/condition-tree/condition-tree-nodes.d.ts +130 -0
  269. package/dist/types/components/condition-tree/condition-tree-open-state.d.ts +76 -0
  270. package/dist/types/components/condition-tree/condition-tree-translate.d.ts +11 -0
  271. package/dist/types/components/condition-tree/condition-tree-view-context.d.ts +48 -0
  272. package/dist/types/components/condition-tree/condition-tree.d.ts +177 -0
  273. package/dist/types/components/condition-tree/condition-tree.types.d.ts +323 -0
  274. package/dist/types/components/condition-tree/group-node-view.d.ts +30 -0
  275. package/dist/types/components/condition-tree/leaf-node-view.d.ts +21 -0
  276. package/dist/types/components/rule-editor/rule-editor-mode-view.d.ts +22 -0
  277. package/dist/types/components/rule-editor/rule-editor-modes.d.ts +43 -0
  278. package/dist/types/components/rule-editor/rule-editor.d.ts +129 -5
  279. package/dist/types/components/rule-editor/rule-editor.types.d.ts +16 -0
  280. package/dist/types/components.d.ts +412 -4
  281. package/dist/types/index.d.ts +2 -0
  282. package/dist/types/interface.d.ts +2 -0
  283. package/package.json +3 -3
  284. package/dist/lime-crm-building-blocks/p-1e83a491.entry.js +0 -1
  285. package/dist/lime-crm-building-blocks/p-73f79d42.entry.js +0 -1
  286. package/dist/lime-crm-building-blocks/p-761deada.entry.js +0 -1
  287. package/dist/lime-crm-building-blocks/p-b8d74591.entry.js +0 -1
  288. package/dist/lime-crm-building-blocks/p-e8a7a94c.entry.js +0 -1
@@ -0,0 +1,74 @@
1
+ import { h } from "@stencil/core";
2
+ import { pathKey } from "./condition-tree-nodes";
3
+ import { handleDelete, IssuesView, } from "./condition-tree-view-context";
4
+ /**
5
+ * One condition: a chip that summarizes it, and the editor it opens.
6
+ * @param props
7
+ */
8
+ export const LeafView = (props) => {
9
+ const { node, description, path, ctx } = props;
10
+ const isOpen = ctx.openNode === node;
11
+ return [
12
+ h("limel-popover", { class: "leaf", key: pathKey(path), open: isOpen, openDirection: "bottom-start", onClose: handleClose(ctx) }, h(ChipView, { node: node, description: description, path: path, ctx: ctx }), h("limebb-condition-tree-editor", { platform: ctx.platform, context: ctx.context, open: isOpen, editor: description.editor, value: node, heading: description.chip.label, negated: ctx.negatable ? description.negated : undefined, readonly: ctx.readonly, disabled: ctx.disabled, onNegateChange: handleNegate(path, ctx), onConditionChange: handleConditionChange(path, ctx) })),
13
+ h(IssuesView, { issues: description.issues }),
14
+ ];
15
+ };
16
+ /**
17
+ * The chip that summarizes a condition: `limebb-filter-chip` unless the
18
+ * condition named another component, and either way the control the tree
19
+ * drives — it selects, locks and removes it the same way.
20
+ *
21
+ * The built-in chip is written out as itself rather than reached through the
22
+ * same tag name as the rest, so that the build sees it: a tag that only ever
23
+ * appears as a string is not counted as a dependency, and the chip would then
24
+ * never be defined for a consumer importing one component at a time.
25
+ * @param props
26
+ */
27
+ const ChipView = (props) => {
28
+ const { component } = props.description.chip;
29
+ if (!component) {
30
+ return h("limebb-filter-chip", Object.assign({}, drivenProps(props)));
31
+ }
32
+ const Chip = component.name;
33
+ return h(Chip, Object.assign({}, component.props, drivenProps(props)));
34
+ };
35
+ /**
36
+ * What the tree tells a chip, whichever chip it is. Spread after the
37
+ * descriptor's own props, so that a chip cannot opt out of the tree's state.
38
+ * @param props
39
+ */
40
+ function drivenProps(props) {
41
+ const { node, description, path, ctx } = props;
42
+ const { chip } = description;
43
+ return {
44
+ slot: 'trigger',
45
+ platform: ctx.platform,
46
+ label: chip.label,
47
+ value: chip.value,
48
+ icon: chip.icon,
49
+ invalid: chip.invalid,
50
+ selected: ctx.openNode === node,
51
+ readonly: ctx.readonly,
52
+ disabled: ctx.disabled,
53
+ removable: !ctx.readonly,
54
+ onClick: handleOpen(node, description, ctx),
55
+ onRemove: handleDelete(path, ctx),
56
+ };
57
+ }
58
+ const handleOpen = (node, description, ctx) => () => {
59
+ if (description.editor && !ctx.disabled) {
60
+ ctx.onOpen(node);
61
+ }
62
+ };
63
+ const handleClose = (ctx) => (event) => {
64
+ event.stopPropagation();
65
+ ctx.onOpen(null);
66
+ };
67
+ const handleNegate = (path, ctx) => (event) => {
68
+ event.stopPropagation();
69
+ ctx.onNegate(path, event.detail);
70
+ };
71
+ const handleConditionChange = (path, ctx) => (event) => {
72
+ event.stopPropagation();
73
+ ctx.onConditionChange(path, event.detail);
74
+ };
@@ -84,7 +84,7 @@ export class CurrencyPicker {
84
84
  };
85
85
  }
86
86
  render() {
87
- return (h("limel-picker", { key: '440abdeca704fe5bc9a39f124da4f7574bcecab9', 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 }));
87
+ return (h("limel-picker", { key: 'e1c19958d4a1e01b3e4457df228f3385afc7c2dc', 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 }));
88
88
  }
89
89
  getCurrencyName(code) {
90
90
  var _a;
@@ -17,7 +17,7 @@ export class DashboardComponent {
17
17
  };
18
18
  }
19
19
  render() {
20
- return [this.renderHeader(), h("slot", { key: '1b4ddb2d28859e7dfcb7456dd953fe4ec0608485', name: "content" })];
20
+ return [this.renderHeader(), h("slot", { key: 'ba53d5b138de483e0e00338af99323ae0985be08', name: "content" })];
21
21
  }
22
22
  static get is() { return "limebb-dashboard-widget"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -66,7 +66,7 @@ export class DatePicker {
66
66
  if (this.value) {
67
67
  this.shouldEmitValueAsString = typeof this.value === 'string';
68
68
  }
69
- return (h("limel-date-picker", { key: 'f29365e693c294470bdb73027ffcb7ff4da75561', 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 }));
69
+ return (h("limel-date-picker", { key: 'f7862d367f9cbf03a57d5da9e668daddc782d09f', 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 }));
70
70
  }
71
71
  parseDateValue() {
72
72
  const value = this.value;
@@ -33,7 +33,7 @@ export class DateRange {
33
33
  this.originalEndTime = this.endTime;
34
34
  }
35
35
  render() {
36
- return (h("div", { key: 'd413c4c15eb1e8108ac288f66ed00a4beb333b05', class: "date-pickers" }, this.renderStartDatePicker(), this.renderEndDatePicker()));
36
+ return (h("div", { key: '164c0dd19a89356dcd9186768033d7974006dcb5', class: "date-pickers" }, this.renderStartDatePicker(), this.renderEndDatePicker()));
37
37
  }
38
38
  renderStartDatePicker() {
39
39
  if (!this.originalStartTime) {
@@ -44,7 +44,7 @@ export class DocumentChips {
44
44
  this.revokeAllBlobUrls();
45
45
  }
46
46
  render() {
47
- return (h(Host, { key: '1a43fcc1f27d924fdd305623f0bfd3d619538cf8', role: "list", "aria-label": this.accessibleLabel }, this.files.map((file) => this.renderFile(file))));
47
+ return (h(Host, { key: '2e28ebeac60bd5da2ee8123d3b9d842184574cf4', role: "list", "aria-label": this.accessibleLabel }, this.files.map((file) => this.renderFile(file))));
48
48
  }
49
49
  renderFile(file) {
50
50
  const isReady = !file.uploadState || file.uploadState === 'done';
@@ -78,10 +78,10 @@ export class DocumentItemComponent {
78
78
  render() {
79
79
  const isUnavailable = this.isUnavailable();
80
80
  const image = this.getImage();
81
- return (h(Host, { key: '17dba7d2442c10d8e9437800a7497017377df77d', id: String(this.item.file.id), class: {
81
+ return (h(Host, { key: '2dc84cd76b18d18e88773d95360fce70fd3f889e', id: String(this.item.file.id), class: {
82
82
  'has-image': !!image,
83
83
  'has-error': !!this.item.hasError,
84
- }, 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: 'c4a0d6277fd0143ae65960595baf5b070cb89b81', image: image, clickable: isUnavailable ? false : true, onClick: this.handleDocumentItemClick, onKeyDown: this.handleKeyDown }, h("div", { key: 'e7c810c05827c06deefc8beada24961fbce939a4', slot: "component" }, this.renderFileSize(), this.renderBooleanInput())), this.renderHelp()));
84
+ }, 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: '07cb1a3f10d57810f818d7391052f81a0d37a0a5', image: image, clickable: isUnavailable ? false : true, onClick: this.handleDocumentItemClick, onKeyDown: this.handleKeyDown }, h("div", { key: 'bded9a7c6cd9427125286dbce6b5e4b24153cae1', slot: "component" }, this.renderFileSize(), this.renderBooleanInput())), this.renderHelp()));
85
85
  }
86
86
  renderBooleanInput() {
87
87
  const id = this.getControlId();
@@ -76,7 +76,7 @@ export class DocumentPicker {
76
76
  this.labelId = createRandomString();
77
77
  }
78
78
  render() {
79
- return (h(Host, { key: '3ce85e7bfd097f5ac5d5d8893e8d5d7af006451e' }, h("limel-notched-outline", { key: 'ad352fdcb6db4837c3e4c110b28f252aa66f9318', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, hasFloatingLabel: true }, h("limel-masonry-layout", { key: '069c6ac1e7fc08101cc00090677bda5afdc5767d', 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()));
79
+ return (h(Host, { key: '8138e0b7f0293f202538badd54b36cd8aae6b803' }, h("limel-notched-outline", { key: '78d990077f20983a0b650e5fb09b0d6e464b4af9', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, hasFloatingLabel: true }, h("limel-masonry-layout", { key: 'ba2cac65bb707cd2b81a434ced3e00f440d84e58', 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()));
80
80
  }
81
81
  renderItems() {
82
82
  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 })));
@@ -217,7 +217,7 @@ export class FeedTimelineItem {
217
217
  render() {
218
218
  var _a, _b;
219
219
  const helperTextId = `helper-text-${this.item.id}`;
220
- return (h(Host, { key: '4ffd858265d6e6755d606338e719d10e99dac01d', id: this.item.id, class: {
220
+ return (h(Host, { key: '8348e3e4331d6e82b450f018901cc7de3b599954', id: this.item.id, class: {
221
221
  'has-unpromoted-actions': !!((_a = this.item.unpromotedActions) === null || _a === void 0 ? void 0 : _a.length),
222
222
  'has-author-picture': !!((_b = this.item.author) === null || _b === void 0 ? void 0 : _b.picture),
223
223
  'shows-less': !this.showMore,
@@ -8,7 +8,7 @@ import { h } from "@stencil/core";
8
8
  */
9
9
  export class FeedItemThumbnailFileInfo {
10
10
  render() {
11
- return h("span", { key: 'c7c4301197703efea3e8dec588504537c9a75191' }, this.description);
11
+ return h("span", { key: '7290a59bad25cf3b5a0859438745867bb62837cc' }, this.description);
12
12
  }
13
13
  static get is() { return "limebb-feed-item-thumbnail-file-info"; }
14
14
  static get encapsulation() { return "shadow"; }
@@ -103,7 +103,7 @@ export class Feed {
103
103
  this.highlighter.unregisterFeed(this.feedItemElement);
104
104
  }
105
105
  render() {
106
- return (h(Host, { key: '0817cbfa83d79a060590f19d36302cbd1496362e', role: "log", "aria-busy": this.loading ? 'true' : 'false', style: {
106
+ return (h(Host, { key: '67cdc2679d56efee3433fbfa23f434fa284163fa', role: "log", "aria-busy": this.loading ? 'true' : 'false', style: {
107
107
  '--limebb-feed-highlight-duration': `${ITEM_HIGHLIGHT_DURATION}ms`,
108
108
  } }, this.renderLoadMore(), this.renderEmptyFeedMessage(), this.renderSpinner(), this.renderFeedItems()));
109
109
  }
@@ -102,8 +102,8 @@ export class FilterChip {
102
102
  const items = this.getDisplayItems();
103
103
  const conjunction = this.getConjunctionText();
104
104
  const helperLabel = this.getHelperLabel(items, conjunction);
105
- return (h(Host, { key: 'fdfcc6a5986a914c8911ba5ca0bbdaec789cc6d2' }, this.renderLabel(), h("button", { key: '3c67dbe8db99bfd0ed5045101341d1e3bff86aae', class: { chip: true }, type: "button", id: chipId, "aria-label": [this.label, helperLabel].filter(Boolean).join(', ') ||
106
- 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: '83078abe6d159717b4cbfa741ade580da26ef45e', elementId: chipId, label: this.label || this.getFilterLabel(), helperLabel: helperLabel })));
105
+ return (h(Host, { key: '1528a86d1e7f7f1749cc895787bca1e77c8678aa' }, this.renderLabel(), h("button", { key: '07dc7184d0a53472ed0d595a07941077aabaa5c0', class: { chip: true }, type: "button", id: chipId, "aria-label": [this.label, helperLabel].filter(Boolean).join(', ') ||
106
+ 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: '665f0b32f7ccdc27b72a56bee9d39e83fb3945b7', elementId: chipId, label: this.label || this.getFilterLabel(), helperLabel: helperLabel })));
107
107
  }
108
108
  /**
109
109
  * `aria-pressed` only makes sense for an interactive toggle. A readonly
@@ -43,7 +43,7 @@ export class FilterConditionPicker {
43
43
  render() {
44
44
  const items = this.buildItems();
45
45
  const selected = this.selectedOption(items);
46
- return (h(Host, { key: 'c629888b9c66c56c57df4fe48e6d32eb256130dd' }, h("limel-select", { key: 'd1fad416311f4e43307a54c10cb121df03535f70', class: "condition", label: this.accessibleLabel, disabled: this.disabled, options: items, value: selected, onChange: this.handleChange })));
46
+ 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 })));
47
47
  }
48
48
  buildItems() {
49
49
  var _a;
@@ -35,7 +35,7 @@ export class IconPicker {
35
35
  icon: this.value,
36
36
  };
37
37
  }
38
- return (h("limel-picker", { key: '13d7e33ced5fe7d00bba385ae9a5fd35146a138a', 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" }));
38
+ 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" }));
39
39
  }
40
40
  static get is() { return "limebb-icon-picker"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -92,7 +92,7 @@ export class InfoTileAdminConfig {
92
92
  },
93
93
  ];
94
94
  return [
95
- h("limel-button-group", { key: 'a1b6fe1abc7d2eabf434d520a535c9cc5b654947', value: buttons.filter(this.isValidButton), onChange: this.handleChangeType }),
95
+ h("limel-button-group", { key: '68999f607fd66a5a451929d6720200734c6505ea', value: buttons.filter(this.isValidButton), onChange: this.handleChangeType }),
96
96
  this.renderFormatConfig(),
97
97
  ];
98
98
  }
@@ -116,7 +116,7 @@ export class InfoTile {
116
116
  const errorProps = Object.assign(Object.assign({}, baseProps), { icon: 'error', prefix: 'ERROR', loading: true, label: this.getLabel(filter) });
117
117
  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() });
118
118
  const props = !filter || this.error ? errorProps : normalProps;
119
- return (h("limel-info-tile", Object.assign({ key: '90fac1e41e9277f860172473ddc9820ef0726bb5', class: { error: !filter || this.error } }, props)));
119
+ return (h("limel-info-tile", Object.assign({ key: '802c93fade2b3aff10e53c1a970798b994bff2d2', class: { error: !filter || this.error } }, props)));
120
120
  }
121
121
  /**
122
122
  * Effective `reducedPresence` for this render. The boolean prop
@@ -27,7 +27,7 @@ export class KanbanGroup {
27
27
  };
28
28
  }
29
29
  render() {
30
- return (h(Host, { key: 'acab4646021a4518fd57e70ee1e2bcb994f34190' }, this.renderHelp(), this.renderGroupHeading(), this.renderGroupSummary(), this.renderItems()));
30
+ return (h(Host, { key: 'b00741bf0f2c617453ce53ce2e6ec852472f20dc' }, this.renderHelp(), this.renderGroupHeading(), this.renderGroupSummary(), this.renderItems()));
31
31
  }
32
32
  renderGroupSummary() {
33
33
  if (!this.summary || !this.totalCount) {
@@ -55,7 +55,7 @@ export class KanbanItemComponent {
55
55
  }
56
56
  render() {
57
57
  var _a, _b;
58
- return (h(Host, { key: '1e627d02a5ea18353d1de4461374042b95becf8e', id: this.item.id.toString(), class: {
58
+ return (h(Host, { key: 'cc405f1c7ffd4e8a72158f53863b604e38df882e', 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: {
@@ -52,7 +52,7 @@ export class LimeQueryFilterComparisonEditorComponent {
52
52
  (_a = this.propertySelectorEl) === null || _a === void 0 ? void 0 : _a.focus();
53
53
  }
54
54
  render() {
55
- return (h(Host, { key: 'a27a20dd478b56fbc3e6fb522d2c3425deb5f5fd' }, this.renderPropertySelector(), this.renderConditionPicker(), this.renderValueInput()));
55
+ return (h(Host, { key: '98144a439c21e88ba452732933dd155afa7f90d8' }, this.renderPropertySelector(), this.renderConditionPicker(), this.renderValueInput()));
56
56
  }
57
57
  renderPropertySelector() {
58
58
  return (h("limebb-property-selector", { ref: (el) => (this.propertySelectorEl = el), class: "property", label: "Property", platform: this.platform, context: this.context, limetype: this.limetype, value: this.expression.key, required: true, onChange: this.handlePropertyChange }));
@@ -55,11 +55,11 @@ export class LimeQueryFilterComparisonComponent {
55
55
  const propertyType = hasKey
56
56
  ? this.getPropertyType(this.expression.key)
57
57
  : undefined;
58
- return (h(Host, { key: '54b482576ee33c6c518260d6b77713a72f2d48aa' }, this.renderHeader(), h("limel-popover", { key: 'd855e96cea9718ddcb594abfdb494ba6fdde6a7a', open: this.isOpen, openDirection: "bottom-start", onClose: this.handleClose }, h("limebb-filter-chip", { key: 'ed8308562d2744ec4a365692e14b6d5be7583e92', slot: "trigger", platform: this.platform, label: hasKey
58
+ return (h(Host, { key: 'ebffd40bd7fe14023be8081b21a164fba7ff7d78' }, this.renderHeader(), h("limel-popover", { key: '1e6b11ad372ae6fe98d69d3da739f0f61c2e2015', open: this.isOpen, openDirection: "bottom-start", onClose: this.handleClose }, h("limebb-filter-chip", { key: '1017d1ff6512104d073430d7d233b3bfe14c1edd', slot: "trigger", platform: this.platform, label: hasKey
59
59
  ? this.getPropertyLabel(this.expression.key)
60
60
  : undefined, condition: hasKey
61
61
  ? operatorToCondition(this.expression.op)
62
- : 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: 'f4a6bec2cf702a9017ca5d68892e23d15b5fafd8', platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, propertyType: propertyType, onExpressionChange: this.handleEditorChange }))));
62
+ : 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: '802cd50b41afc9a3155d50cf8a28d7544cd673c1', platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, propertyType: propertyType, onExpressionChange: this.handleEditorChange }))));
63
63
  }
64
64
  getPropertyLabel(key) {
65
65
  return this.resolveProperty(key).labels.join(' › ');
@@ -90,9 +90,9 @@ export class LimeQueryFilterGroupComponent {
90
90
  const combinator = getCombinator(this.expression);
91
91
  const inner = getInnerAndOr(this.expression);
92
92
  const selected = COMBINATOR_OPTIONS.find((o) => o.value === combinator);
93
- return (h(Host, { key: 'b7f3b3eb41704303f507f15f1abe8b8d55dcd3e5', "data-op": combinator, style: {
93
+ return (h(Host, { key: 'f41c27e721c5241f03ebc380fc0bee1bc6488ba8', "data-op": combinator, style: {
94
94
  '--limebb-query-filter-group-color-code': OP_STYLE[combinator].color,
95
- } }, h("div", { key: 'd59371d752ab125116f9a630f3ae2599e9fea544', class: "group" }, h("div", { key: '81783273de40a45e93d6ab286d8cd649af71bfb2', class: "group-header" }, h("limel-select", { key: 'bb59cac3599d64c8414e4055d6c99994ac0ad8d3', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: '42730af9a81f8381f042819ab8b3130b186a5c02', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: 'a2ec4a8190cd7cbf7b0903efc7f430785828620c', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: 'd5db97c8b9466d70b805e2a4b7f05dcb483bb456', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: '9efbb513dd412c0c6c3e03a5d672a5851a1f9c44', class: "add-group", size: "small", text: "Group", icon: {
95
+ } }, h("div", { key: '6dee3189e64ff49cc6b4234fcacabbcc592c56a7', class: "group" }, h("div", { key: 'c92e073de445fcefa48e8d90eeaa0357f2fbc9ea', class: "group-header" }, h("limel-select", { key: 'd0de8053b240e5d40b2f9d1de2defdb5257383b6', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: '44b099283399ab33a906f0e7acc940dc39041b10', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: 'a8d06013ab21aa149ea1dcf2293ffbb5d0d13e61', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: 'f2866e974c93a0633b487d9943e63b929d67a7be', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: 'defd0ab0875920887391c2114139b92a63d10650', class: "add-group", size: "small", text: "Group", icon: {
96
96
  name: 'plus_math',
97
97
  title: 'Add',
98
98
  color: 'var(--group-rail-color)',
@@ -35,7 +35,7 @@ export class LimeQueryFilterNotComponent {
35
35
  };
36
36
  }
37
37
  render() {
38
- return (h("div", { key: 'd1a30b2a3c64c7cbc84253025f2e4649dcf4153b', class: "expression" }, this.label && h("limel-header", { key: '3df0ccac15c96772c75d8eef228d21c01a63a4f9', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '785ad1ccfe9ff3ca1478284bc182b9e35119d2d1', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
38
+ return (h("div", { key: '7e9bac8c51b903d1a569d1272167870701412729', class: "expression" }, this.label && h("limel-header", { key: 'aa5d7a0d55a5b2754e02c58dc5c08614b8a0808b', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '573b8435f73b10bf1eb04ced205af5c4b295a01d', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
39
39
  }
40
40
  static get is() { return "limebb-lime-query-filter-not"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -172,7 +172,7 @@ export class LimeQueryBuilder {
172
172
  }
173
173
  }
174
174
  render() {
175
- return (h(Host, { key: 'e54021c7869117146034f25a431324e20597056e' }, this.renderHeader(), this.renderContent()));
175
+ return (h(Host, { key: '0f28a00b055f7e9094dd26cf733acba1158dda45' }, this.renderHeader(), this.renderContent()));
176
176
  }
177
177
  renderContent() {
178
178
  const visualModeSupported = this.checkVisualModeSupport();
@@ -154,7 +154,7 @@ export class LimeQueryResponseFormatBuilder {
154
154
  }
155
155
  render() {
156
156
  const visualModeSupported = this.checkVisualModeSupport();
157
- return (h("div", { key: 'd7d9d356f4114a00ce2da4d264afd42e4e264305', class: "response-format-builder" }, this.label && h("h1", { key: '75e33850df5f60a23e1abf5ad286011579f74a39', class: "builder-label" }, this.label), this.helperText && (h("p", { key: 'bd05cdf895e58a328ec8cd8a7f0c0cf85e5f5cfa', class: "builder-helper-text" }, this.helperText)), this.visualModeEnabled && (h("div", { key: 'a054eb5039b8606b3f0a84f2ceeca09360dfb407', class: "mode-controls" }, this.renderModeSwitch(visualModeSupported))), !this.visualModeEnabled || this.mode === 'code' ? (h("div", { class: "code-mode" }, this.renderCodeEditor(visualModeSupported))) : (h("div", { class: "visual-mode" }, this.renderVisualMode()))));
157
+ return (h("div", { key: '4c041be9c674f687bb3d03c3b8c1377a1d2ec6ee', class: "response-format-builder" }, this.label && h("h1", { key: 'ba7ea3457146bae1e97f252ac041aba21a02c27f', class: "builder-label" }, this.label), this.helperText && (h("p", { key: '9c6d9c8a355f24fa89aadd7eb8f138997bc790c0', class: "builder-helper-text" }, this.helperText)), this.visualModeEnabled && (h("div", { key: '9b62a2ab35e98ac15b53af561a51262495689392', class: "mode-controls" }, this.renderModeSwitch(visualModeSupported))), !this.visualModeEnabled || this.mode === 'code' ? (h("div", { class: "code-mode" }, this.renderCodeEditor(visualModeSupported))) : (h("div", { class: "visual-mode" }, this.renderVisualMode()))));
158
158
  }
159
159
  renderModeSwitch(support) {
160
160
  const visualDisabled = !support.visualModeSupported;
@@ -78,7 +78,7 @@ export class LimetypeField {
78
78
  value: '',
79
79
  };
80
80
  options.unshift(emptyOption);
81
- return (h("limel-select", { key: '886b6adf250756fd5170f144e6ff055e70554902', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
81
+ return (h("limel-select", { key: 'c649a9e99ec7af2055df7f1cd82cdd87f19ddde7', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
82
82
  }
83
83
  componentWillRender() {
84
84
  this.updatePropertyFields(this.value || '');
@@ -69,7 +69,7 @@ export class OrderByEditor {
69
69
  }
70
70
  }
71
71
  render() {
72
- return (h(Host, { key: '2b90c0e70b2ec2e55809cecd5141cc52acc400de' }, this.renderEmptyState(), this.renderOrderByEditor()));
72
+ return (h(Host, { key: 'f5426a11ccbc3f0e4159b50dea245f8da07f669c' }, this.renderEmptyState(), this.renderOrderByEditor()));
73
73
  }
74
74
  renderEmptyState() {
75
75
  if (this.limetype) {
@@ -38,9 +38,9 @@ export class OrderByItemComponent {
38
38
  render() {
39
39
  const propertyPath = Object.keys(this.item)[0] || '';
40
40
  const direction = this.item[propertyPath] || 'ASC';
41
- return (h(Host, { key: '4ec4f928349ded79f56f9d42b1e8d53ad9675137' }, h("limebb-property-selector", { key: '362b2433069693fa205c6bb21afa3a24e8b5cce7', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: '55166696ea90d0b0ab17a975094e29f9d80b023f', class: "control-buttons" }, h("limel-icon-button", { key: 'f765b98654ee3494b5272f0c6d0a7b46c65b1784', icon: direction === 'ASC'
41
+ return (h(Host, { key: 'f3c2d3fa47d0e5e11ff2c9d8372ff5a625814462' }, h("limebb-property-selector", { key: 'f6290981aa40a2807722d82e23a893c8511e7892', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: '365c64b46f428ff6e97cd2682688991bde32ce60', class: "control-buttons" }, h("limel-icon-button", { key: 'b3a8eb5d27dee271a4b989c57d925dc4023b88c0', icon: direction === 'ASC'
42
42
  ? 'sort_ascending'
43
- : 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: 'dd0d19ac87d87e54726ab3c6eaabb2a139018c2b', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
43
+ : 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: '12ce082489ae86a246b84a7a8091ce382bf2acbd', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
44
44
  }
45
45
  static get is() { return "limebb-lime-query-order-by-item"; }
46
46
  static get encapsulation() { return "shadow"; }
@@ -66,7 +66,7 @@ export class ResponseFormatItem {
66
66
  }
67
67
  render() {
68
68
  return [
69
- h("div", { key: '2d8b5ee0be1363c842ec9736e519c86f7c5a18ad', class: "property-controls" }, h("div", { key: '5e7660c639be3c9cc3fb9f631596725cf82100f4', class: "property-path" }, h("limebb-property-selector", { key: '37e0cdbf668822fc81b5f3757e2f0b6490d93d66', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: 'd9ecb4c65edb493bcdda29345f7022ea2052f0f2', class: "input-grid" }, this.renderAliasInput()), h("div", { key: '8f28f44f05fb86e253a9300dd24cfee624ce51c2', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: 'b7a864258edb9b60c6923de28ab5ab14c4560af4', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: '252ca2b654a4ac6d0164491b3832f319e0f5b4f1', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
69
+ h("div", { key: '313244ac97300ccce92dae6a4df928543546352e', class: "property-controls" }, h("div", { key: '3173914b62fe297a78d61b2caa0c556b25763e21', class: "property-path" }, h("limebb-property-selector", { key: 'ab640577df46b04c03ccd85bb8aafa902a3cd15f', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: '69ca13975174e89a52991b6c023779a19041c355', class: "input-grid" }, this.renderAliasInput()), h("div", { key: 'd2cdec55803d8bdb08977193c94a773509ac29b3', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: '32cdad6b755992ad207dd8bf7bfb3dc99a289663', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: 'cfb3aaea2911a34842f3f8ab652e4cdd5a0bedb6', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
70
70
  ];
71
71
  }
72
72
  renderAliasButton() {
@@ -5,8 +5,8 @@ import { h } from "@stencil/core";
5
5
  export class LiveDocsInfo {
6
6
  render() {
7
7
  return [
8
- h("div", { key: 'd2ea1778cadfbc6fd49462c01f8a9270ef56efaf', class: "header" }, h("limel-icon", { key: '01bc415dd69465151055bc4857e3a7599b689410', name: "not_showing_video_frames" }), h("h2", { key: 'c82a9d19536dae0043a3e9e4a776887e9c08db94' }, "Viewing this file type requires ", h("em", { key: '8b96bcd7af47cfe3216def1555e786533058d373' }, "Live Docs"))),
9
- h("p", { key: '0ae3052d9eca68ebd55ff11dcbe9ee31cacd277e' }, h("em", { key: '0a2139446396da9434df0095c29d9a2cb89eb783' }, "Live Docs"), " not only enables you to view many file formats such as Microsoft Office documents, but it also empowers you to edit them right in the CRM. No need to download anything on your device!", h("a", { key: 'f2741e5944d54106f77081de5ead60aa98955342', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
8
+ h("div", { key: '189796d67448366e2af26362a29463afff7079a1', class: "header" }, h("limel-icon", { key: 'ffcee585bc30f862066e8dce49ad3330bca13afd', name: "not_showing_video_frames" }), h("h2", { key: '90c5c00930a425a39a144aec4232b76517184b2a' }, "Viewing this file type requires ", h("em", { key: 'c05d9ed5568c1a6cd393aa95e654ea19bf5c133a' }, "Live Docs"))),
9
+ h("p", { key: '09d96468c886fa0dcfe8b9b9a3df79c3f5c87f78' }, h("em", { key: 'c232fdf6277bbe910d23cebf18afadcd2118f43d' }, "Live Docs"), " not only enables you to view many file formats such as Microsoft Office documents, but it also empowers you to edit them right in the CRM. No need to download anything on your device!", h("a", { key: 'dbb74111b5995c013235ea585fa56fd41049540a', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
10
10
  ];
11
11
  }
12
12
  static get is() { return "limebb-live-docs-info"; }
@@ -53,7 +53,7 @@ export class LocalePicker {
53
53
  const value = this.value;
54
54
  selectedOptions = options.find((option) => option.value === value);
55
55
  }
56
- return (h("limel-select", { key: '49bd99f0f1ce3285f5a841bebbcac0968dcc4e46', value: selectedOptions, options: sortBy(options, 'text'), helperText: this.helperText, label: this.label, required: this.required, disabled: this.disabled, readonly: this.readonly, onChange: this.handleChange, multiple: this.multipleChoice }));
56
+ return (h("limel-select", { key: 'a5dddeb9a8703c4c3f49d2aa8f6ca177765f9620', value: selectedOptions, options: sortBy(options, 'text'), helperText: this.helperText, label: this.label, required: this.required, disabled: this.disabled, readonly: this.readonly, onChange: this.handleChange, multiple: this.multipleChoice }));
57
57
  }
58
58
  static get is() { return "limebb-locale-picker"; }
59
59
  static get encapsulation() { return "shadow"; }
@@ -56,7 +56,7 @@ export class NotificationListItem {
56
56
  }
57
57
  render() {
58
58
  var _a, _b;
59
- return (h(Host, { key: 'bbb6c49c020641fc39bb494bc34429ff9e1d9c87', id: this.item.id, class: {
59
+ return (h(Host, { key: '112cc269de3b604b8ab58f407fe450c86c5f0c98', id: this.item.id, class: {
60
60
  'is-clickable': this.isItemClickable(),
61
61
  'is-read': !!((_a = this.item) === null || _a === void 0 ? void 0 : _a.read),
62
62
  'is-selected': !!((_b = this.item) === null || _b === void 0 ? void 0 : _b.selected),
@@ -108,11 +108,11 @@ export class PercentageVisualizer {
108
108
  render() {
109
109
  const normalizedValue = this.getNormalizedValue();
110
110
  const zeroPoint = this.getZeroPointPosition();
111
- return (h(Host, { key: '7f00bb913adfb9481e60e6004e4d73a07d46294c', class: this.getContainerClassList(), style: {
111
+ return (h(Host, { key: 'd98b9a92c8e20ee71c9cd4b0004cc92e71e3d681', class: this.getContainerClassList(), style: {
112
112
  '--limebb-percentage-visualizer-zero-point-position': `${zeroPoint}%`,
113
113
  '--limebb-percentage-visualizer-width': `${Math.abs(normalizedValue)}%`,
114
114
  '--limebb-percentage-visualizer-rotate': `${normalizedValue >= 0 ? '0deg' : '180deg'}`,
115
- } }, h("limel-notched-outline", { key: 'f36be4b22847a53b81d7916f1434f665a4684a3b', tabIndex: 0, role: "meter", "aria-valuemin": this.rangeMin, "aria-valuemax": this.rangeMax, "aria-valuenow": this.numValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-controls": this.helperTextId }, h("div", { key: 'f91d23c1cc413cfd2848a3754b76f361881bab90', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
115
+ } }, h("limel-notched-outline", { key: '777218ebb6358304826eda6e09e797bddb70b03c', tabIndex: 0, role: "meter", "aria-valuemin": this.rangeMin, "aria-valuemax": this.rangeMax, "aria-valuenow": this.numValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-controls": this.helperTextId }, h("div", { key: '7b454018e8b772564797b31031584dc20e8bc05b', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
116
116
  }
117
117
  renderVisualization() {
118
118
  if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {
@@ -33,11 +33,11 @@ function combinatorOptions(ctx) {
33
33
  return [
34
34
  {
35
35
  value: 'all',
36
- text: ctx.translator.get('webclient.rule-editor.combinator.all'),
36
+ text: ctx.translator.get('webclient.combinator.all'),
37
37
  },
38
38
  {
39
39
  value: 'any',
40
- text: ctx.translator.get('webclient.rule-editor.combinator.any'),
40
+ text: ctx.translator.get('webclient.combinator.any'),
41
41
  },
42
42
  ];
43
43
  }
@@ -45,7 +45,7 @@ function renderMutableGroupActions(node, path, isNegated, ctx) {
45
45
  if (!ctx.isMutable) {
46
46
  return null;
47
47
  }
48
- return (h("div", { class: "rule-node__header-actions" }, h("limel-switch", { class: "rule-node__negate-switch", label: ctx.translator.get('webclient.rule-editor.negate'), value: isNegated, onChange: negateGroupHandler(node, path, ctx) }), h("limel-icon-button", { icon: "trash", label: ctx.translator.get('webclient.rule-editor.delete'), onClick: () => ctx.onDelete(path) })));
48
+ return (h("div", { class: "rule-node__header-actions" }, h("limel-switch", { class: "rule-node__negate-switch", label: ctx.translator.get('webclient.negate'), value: isNegated, onChange: negateGroupHandler(node, path, ctx) }), h("limel-icon-button", { icon: "trash", label: ctx.translator.get('webclient.rule-editor.delete'), onClick: () => ctx.onDelete(path) })));
49
49
  }
50
50
  function renderNestedGroups(nestedGroups, groupBasePath, ctx) {
51
51
  if (nestedGroups.length === 0) {
@@ -45,7 +45,7 @@ export class RuleChipPopover {
45
45
  };
46
46
  }
47
47
  render() {
48
- return (h("div", { key: '8bad60ba81cd77526779921e975f9d0f4d8bb0d7', class: "popover" }, this.renderHeader(), this.renderBody()));
48
+ return (h("div", { key: 'abb754c8d327cc82b5d4e7e44154e937c3aeb0d2', class: "popover" }, this.renderHeader(), this.renderBody()));
49
49
  }
50
50
  renderHeader() {
51
51
  var _a, _b, _c, _d;
@@ -58,7 +58,7 @@ export class RuleChipPopover {
58
58
  if (!this.isMutable) {
59
59
  return null;
60
60
  }
61
- return (h("div", { slot: "actions", class: "popover__header-actions" }, h("limel-switch", { class: "popover__negate-switch", label: this.translator.get('webclient.rule-editor.negate'), value: this.isNegated, onChange: this.handleNegateChange }), h("limel-icon-button", { class: "popover__delete-button", icon: "trash", label: this.translator.get('webclient.rule-editor.delete'), onClick: this.handleDelete })));
61
+ return (h("div", { slot: "actions", class: "popover__header-actions" }, h("limel-switch", { class: "popover__negate-switch", label: this.translator.get('webclient.negate'), value: this.isNegated, onChange: this.handleNegateChange }), h("limel-icon-button", { class: "popover__delete-button", icon: "trash", label: this.translator.get('webclient.rule-editor.delete'), onClick: this.handleDelete })));
62
62
  }
63
63
  get translator() {
64
64
  return this.platform.get(PlatformServiceName.Translate);
@@ -0,0 +1,32 @@
1
+ import { h } from "@stencil/core";
2
+ /**
3
+ * The shared string each mode is labelled from. Adverbs answering "when
4
+ * does this apply?", so they carry no rule-editor namespace and are
5
+ * spelled out here rather than built from the mode id — a key a
6
+ * translation extractor can find, and a human can grep for.
7
+ */
8
+ const MODE_LABEL_KEYS = {
9
+ never: 'webclient.never',
10
+ always: 'webclient.always',
11
+ conditional: 'webclient.conditionally',
12
+ };
13
+ /**
14
+ * The segmented control that picks how the rule is written.
15
+ *
16
+ * `limel-button-group` renders radio inputs in one group, so at most
17
+ * one mode is ever selected. None is selected when `selected` is a mode
18
+ * the caller does not offer — a stored condition tree under a setting
19
+ * that offers only the unconditional modes.
20
+ * @param props
21
+ */
22
+ export const RuleModeView = (props) => {
23
+ const { modes, selected, disabled, translator, onModeChange } = props;
24
+ return (h("limel-button-group", { value: modes.map((mode) => ({
25
+ id: mode,
26
+ title: translator.get(MODE_LABEL_KEYS[mode]),
27
+ selected: mode === selected,
28
+ })), disabled: disabled, onChange: (event) => {
29
+ event.stopPropagation();
30
+ onModeChange(event.detail.id);
31
+ } }));
32
+ };
@@ -0,0 +1,68 @@
1
+ /**
2
+ * The id of the platform's "no condition" rule primitive. It reads
3
+ * nothing and always holds, which makes it the literal the
4
+ * unconditional modes are written with. Build those through
5
+ * {@link RULE_ALWAYS} and {@link RULE_NEVER} rather than from the id.
6
+ *
7
+ * @internal
8
+ */
9
+ export const ALWAYS_PRIMITIVE_ID = 'limetech.always';
10
+ /**
11
+ * The rule that always holds.
12
+ *
13
+ * @alpha
14
+ */
15
+ export const RULE_ALWAYS = Object.freeze({
16
+ type: 'ref',
17
+ id: ALWAYS_PRIMITIVE_ID,
18
+ });
19
+ /**
20
+ * The rule that never holds.
21
+ *
22
+ * @alpha
23
+ */
24
+ export const RULE_NEVER = Object.freeze({
25
+ type: 'not',
26
+ rule: RULE_ALWAYS,
27
+ });
28
+ /**
29
+ * The rule a mode writes. `conditional` writes no rule of its own —
30
+ * its rule is whatever tree the author builds.
31
+ * @param mode
32
+ * @alpha
33
+ */
34
+ export function ruleForMode(mode) {
35
+ if (mode === 'always') {
36
+ return RULE_ALWAYS;
37
+ }
38
+ if (mode === 'never') {
39
+ return RULE_NEVER;
40
+ }
41
+ return undefined;
42
+ }
43
+ /**
44
+ * The mode a rule reads back as, or `undefined` when there is no rule.
45
+ *
46
+ * The match is structural: only the two sentinels read back as an
47
+ * unconditional mode, and everything else — a group, a ref, a negation
48
+ * of anything but the always primitive — reads back as `conditional`.
49
+ * So a rule authored elsewhere as `all(always)` is `conditional` with
50
+ * one condition in it, even though it holds just as unconditionally.
51
+ * @param rule
52
+ * @alpha
53
+ */
54
+ export function ruleMode(rule) {
55
+ if (!rule) {
56
+ return undefined;
57
+ }
58
+ if (isAlways(rule)) {
59
+ return 'always';
60
+ }
61
+ if (rule.type === 'not' && isAlways(rule.rule)) {
62
+ return 'never';
63
+ }
64
+ return 'conditional';
65
+ }
66
+ function isAlways(rule) {
67
+ return rule.type === 'ref' && rule.id === ALWAYS_PRIMITIVE_ID;
68
+ }