@limetech/lime-crm-building-blocks 2.0.3 → 2.1.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 (271) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/condition-tree-translate-B_qIQz9s.js +27 -0
  3. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  4. package/dist/cjs/limebb-alert-dialog.cjs.entry.js +1 -1
  5. package/dist/cjs/limebb-browser.cjs.entry.js +2 -2
  6. package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +12 -5
  7. package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
  8. package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +2 -2
  11. package/dist/cjs/limebb-condition-tree-editor.cjs.entry.js +90 -0
  12. package/dist/cjs/limebb-condition-tree.cjs.entry.js +882 -0
  13. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-date-range.cjs.entry.js +1 -1
  17. package/dist/cjs/limebb-document-chips.cjs.entry.js +1 -1
  18. package/dist/cjs/limebb-document-item.cjs.entry.js +2 -2
  19. package/dist/cjs/limebb-document-picker.cjs.entry.js +1 -1
  20. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +1 -1
  21. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  22. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  23. package/dist/cjs/limebb-filter-chip_6.cjs.entry.js +7 -7
  24. package/dist/cjs/limebb-icon-picker.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
  26. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  27. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  28. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  29. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +1 -1
  30. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +2 -2
  31. package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +2 -2
  33. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +1 -1
  34. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +1 -1
  35. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  36. package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
  37. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  38. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +2 -2
  39. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  40. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  41. package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +2 -2
  42. package/dist/cjs/limebb-rule-editor.cjs.entry.js +4 -4
  43. package/dist/cjs/limebb-rule-gate.cjs.entry.js +1 -1
  44. package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
  45. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  46. package/dist/cjs/limebb-value-comparison-editor.cjs.entry.js +1 -1
  47. package/dist/cjs/loader.cjs.js +1 -1
  48. package/dist/collection/collection-manifest.json +3 -1
  49. package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
  50. package/dist/collection/components/browser/browser.js +2 -2
  51. package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
  52. package/dist/collection/components/chat-list/chat-item/chat-item.css +4 -1
  53. package/dist/collection/components/chat-list/chat-item/chat-item.js +9 -2
  54. package/dist/collection/components/chat-list/chat-list.js +1 -1
  55. package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
  56. package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
  57. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
  58. package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
  59. package/dist/collection/components/condition-tree/condition-tree-combinators.js +78 -0
  60. package/dist/collection/components/condition-tree/condition-tree-editor/condition-tree-editor.css +17 -0
  61. package/dist/collection/components/condition-tree/condition-tree-editor/condition-tree-editor.js +333 -0
  62. package/dist/collection/components/condition-tree/condition-tree-nodes.js +218 -0
  63. package/dist/collection/components/condition-tree/condition-tree-open-state.js +127 -0
  64. package/dist/collection/components/condition-tree/condition-tree-translate.js +22 -0
  65. package/dist/collection/components/condition-tree/condition-tree-view-context.js +22 -0
  66. package/dist/collection/components/condition-tree/condition-tree.css +132 -0
  67. package/dist/collection/components/condition-tree/condition-tree.js +461 -0
  68. package/dist/collection/components/condition-tree/condition-tree.types.js +1 -0
  69. package/dist/collection/components/condition-tree/group-node-view.js +153 -0
  70. package/dist/collection/components/condition-tree/leaf-node-view.js +74 -0
  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/filter-chip/filter-chip.js +2 -2
  82. package/dist/collection/components/filter-condition-picker/filter-condition-picker.js +1 -1
  83. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  84. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  85. package/dist/collection/components/info-tile/info-tile.js +1 -1
  86. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  87. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  88. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +1 -1
  89. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +2 -2
  90. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
  91. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  92. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  93. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  94. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  95. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  96. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  97. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  98. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  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/group-node-view.js +3 -3
  103. package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +2 -2
  104. package/dist/collection/components/rule-editor/rule-editor.js +1 -1
  105. package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.js +1 -1
  106. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  107. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  108. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  109. package/dist/collection/components/text-editor/text-editor.js +1 -1
  110. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  111. package/dist/components/chat-icon-list.js +1 -1
  112. package/dist/components/chat-item.js +1 -1
  113. package/dist/components/condition-tree-editor.js +1 -0
  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/filter-chip.js +1 -1
  120. package/dist/components/filter-condition-picker.js +1 -1
  121. package/dist/components/kanban-group.js +1 -1
  122. package/dist/components/kanban-item.js +1 -1
  123. package/dist/components/lime-query-filter-comparison-editor.js +1 -1
  124. package/dist/components/lime-query-filter-comparison.js +1 -1
  125. package/dist/components/lime-query-filter-expression.js +1 -1
  126. package/dist/components/limebb-alert-dialog.js +1 -1
  127. package/dist/components/limebb-browser.js +1 -1
  128. package/dist/components/limebb-chat-list.js +1 -1
  129. package/dist/components/limebb-color-palette-picker.js +1 -1
  130. package/dist/components/limebb-color-palette-swatches.js +1 -1
  131. package/dist/components/limebb-composer-toolbar.js +1 -1
  132. package/dist/components/limebb-condition-tree-editor.d.ts +11 -0
  133. package/dist/components/limebb-condition-tree-editor.js +1 -0
  134. package/dist/components/limebb-condition-tree.d.ts +11 -0
  135. package/dist/components/limebb-condition-tree.js +1 -0
  136. package/dist/components/limebb-dashboard-widget.js +1 -1
  137. package/dist/components/limebb-date-range.js +1 -1
  138. package/dist/components/limebb-document-chips.js +1 -1
  139. package/dist/components/limebb-document-picker.js +1 -1
  140. package/dist/components/limebb-feed.js +1 -1
  141. package/dist/components/limebb-icon-picker.js +1 -1
  142. package/dist/components/limebb-info-tile-format.js +1 -1
  143. package/dist/components/limebb-info-tile.js +1 -1
  144. package/dist/components/limebb-lime-query-builder.js +1 -1
  145. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  146. package/dist/components/limebb-locale-picker.js +1 -1
  147. package/dist/components/limebb-mention-group-counter.js +1 -1
  148. package/dist/components/limebb-rule-editor.js +1 -1
  149. package/dist/components/limebb-rule-gate.js +1 -1
  150. package/dist/components/limebb-text-editor.js +1 -1
  151. package/dist/components/limebb-trend-indicator.js +1 -1
  152. package/dist/components/limebb-value-comparison-editor.js +1 -1
  153. package/dist/components/limetype-field.js +1 -1
  154. package/dist/components/live-docs-info.js +1 -1
  155. package/dist/components/notification-item.js +1 -1
  156. package/dist/components/order-by-editor.js +1 -1
  157. package/dist/components/order-by-item.js +1 -1
  158. package/dist/components/percentage-visualizer.js +1 -1
  159. package/dist/components/response-format-item.js +1 -1
  160. package/dist/components/rule-chip-popover.js +1 -1
  161. package/dist/components/summary-popover.js +1 -1
  162. package/dist/components/typing-indicator.js +1 -1
  163. package/dist/esm/condition-tree-translate-CBeXbZ_z.js +25 -0
  164. package/dist/esm/lime-crm-building-blocks.js +1 -1
  165. package/dist/esm/limebb-alert-dialog.entry.js +1 -1
  166. package/dist/esm/limebb-browser.entry.js +2 -2
  167. package/dist/esm/limebb-chat-icon-list_3.entry.js +12 -5
  168. package/dist/esm/limebb-chat-list.entry.js +1 -1
  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-composer-toolbar.entry.js +2 -2
  172. package/dist/esm/limebb-condition-tree-editor.entry.js +88 -0
  173. package/dist/esm/limebb-condition-tree.entry.js +880 -0
  174. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  175. package/dist/esm/limebb-dashboard-widget.entry.js +1 -1
  176. package/dist/esm/limebb-date-picker.entry.js +1 -1
  177. package/dist/esm/limebb-date-range.entry.js +1 -1
  178. package/dist/esm/limebb-document-chips.entry.js +1 -1
  179. package/dist/esm/limebb-document-item.entry.js +2 -2
  180. package/dist/esm/limebb-document-picker.entry.js +1 -1
  181. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +1 -1
  182. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  183. package/dist/esm/limebb-feed.entry.js +1 -1
  184. package/dist/esm/limebb-filter-chip_6.entry.js +7 -7
  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 +1 -1
  188. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  189. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  190. package/dist/esm/limebb-lime-query-builder.entry.js +1 -1
  191. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +2 -2
  192. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +2 -2
  193. package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
  194. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +1 -1
  195. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +1 -1
  196. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  197. package/dist/esm/limebb-locale-picker.entry.js +1 -1
  198. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  199. package/dist/esm/limebb-navigation-button_2.entry.js +2 -2
  200. package/dist/esm/limebb-notification-item.entry.js +1 -1
  201. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  202. package/dist/esm/limebb-rule-chip-popover.entry.js +2 -2
  203. package/dist/esm/limebb-rule-editor.entry.js +4 -4
  204. package/dist/esm/limebb-rule-gate.entry.js +1 -1
  205. package/dist/esm/limebb-text-editor.entry.js +1 -1
  206. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  207. package/dist/esm/limebb-value-comparison-editor.entry.js +1 -1
  208. package/dist/esm/loader.js +1 -1
  209. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  210. package/dist/lime-crm-building-blocks/{p-73f23d08.entry.js → p-031b1648.entry.js} +1 -1
  211. package/dist/lime-crm-building-blocks/{p-d8d32cb1.entry.js → p-0f74d662.entry.js} +1 -1
  212. package/dist/lime-crm-building-blocks/{p-242ed59b.entry.js → p-11b41423.entry.js} +1 -1
  213. package/dist/lime-crm-building-blocks/p-1578c8f0.entry.js +1 -0
  214. package/dist/lime-crm-building-blocks/{p-7a9d7d87.entry.js → p-1731f5c3.entry.js} +1 -1
  215. package/dist/lime-crm-building-blocks/{p-956e466d.entry.js → p-17588c29.entry.js} +1 -1
  216. package/dist/lime-crm-building-blocks/{p-7cd8dffd.entry.js → p-1fac8130.entry.js} +1 -1
  217. package/dist/lime-crm-building-blocks/{p-f1060c88.entry.js → p-2984005d.entry.js} +1 -1
  218. package/dist/lime-crm-building-blocks/{p-080a1166.entry.js → p-2baab674.entry.js} +1 -1
  219. package/dist/lime-crm-building-blocks/{p-02fba38e.entry.js → p-2f8540ab.entry.js} +1 -1
  220. package/dist/lime-crm-building-blocks/{p-848462ee.entry.js → p-318369ae.entry.js} +1 -1
  221. package/dist/lime-crm-building-blocks/{p-ac13feb9.entry.js → p-3c72400d.entry.js} +1 -1
  222. package/dist/lime-crm-building-blocks/{p-79bb58b0.entry.js → p-3fe4f3f4.entry.js} +1 -1
  223. package/dist/lime-crm-building-blocks/{p-f9b1cd5e.entry.js → p-4274cbe3.entry.js} +1 -1
  224. package/dist/lime-crm-building-blocks/p-4594c2b1.entry.js +1 -0
  225. package/dist/lime-crm-building-blocks/{p-abe751c0.entry.js → p-51eb53ee.entry.js} +1 -1
  226. package/dist/lime-crm-building-blocks/{p-78118c62.entry.js → p-5b000748.entry.js} +1 -1
  227. package/dist/lime-crm-building-blocks/{p-7ccca5e4.entry.js → p-5b80d92a.entry.js} +1 -1
  228. package/dist/lime-crm-building-blocks/p-705c53c0.entry.js +1 -0
  229. package/dist/lime-crm-building-blocks/{p-170ab4be.entry.js → p-76064593.entry.js} +1 -1
  230. package/dist/lime-crm-building-blocks/{p-4f0939e6.entry.js → p-761deada.entry.js} +1 -1
  231. package/dist/lime-crm-building-blocks/{p-d071bd2d.entry.js → p-9099b440.entry.js} +1 -1
  232. package/dist/lime-crm-building-blocks/{p-e910963c.entry.js → p-92403251.entry.js} +1 -1
  233. package/dist/lime-crm-building-blocks/{p-584a48e4.entry.js → p-9907deb1.entry.js} +1 -1
  234. package/dist/lime-crm-building-blocks/{p-5268fc02.entry.js → p-99556fc0.entry.js} +1 -1
  235. package/dist/lime-crm-building-blocks/p-BxCq236x.js +1 -0
  236. package/dist/lime-crm-building-blocks/{p-3c3009e3.entry.js → p-a0dee52a.entry.js} +1 -1
  237. package/dist/lime-crm-building-blocks/{p-40cb2c7c.entry.js → p-b373c60f.entry.js} +1 -1
  238. package/dist/lime-crm-building-blocks/{p-bd89279d.entry.js → p-b46722c8.entry.js} +1 -1
  239. package/dist/lime-crm-building-blocks/{p-56d125c7.entry.js → p-b48c23f4.entry.js} +1 -1
  240. package/dist/lime-crm-building-blocks/{p-43dfbefb.entry.js → p-b8d74591.entry.js} +1 -1
  241. package/dist/lime-crm-building-blocks/{p-10da40f8.entry.js → p-c2899d68.entry.js} +1 -1
  242. package/dist/lime-crm-building-blocks/{p-d23f4604.entry.js → p-c4e40c2c.entry.js} +1 -1
  243. package/dist/lime-crm-building-blocks/{p-6951dcf7.entry.js → p-c7daffb6.entry.js} +1 -1
  244. package/dist/lime-crm-building-blocks/{p-10310a64.entry.js → p-cede8095.entry.js} +1 -1
  245. package/dist/lime-crm-building-blocks/{p-ad661a38.entry.js → p-d0c75083.entry.js} +1 -1
  246. package/dist/lime-crm-building-blocks/{p-8fdf6a09.entry.js → p-d82a2424.entry.js} +1 -1
  247. package/dist/lime-crm-building-blocks/{p-e5028d83.entry.js → p-e1f35866.entry.js} +1 -1
  248. package/dist/lime-crm-building-blocks/p-e6605577.entry.js +1 -0
  249. package/dist/lime-crm-building-blocks/p-e8a7a94c.entry.js +1 -0
  250. package/dist/lime-crm-building-blocks/{p-6d8efe87.entry.js → p-edfaf566.entry.js} +1 -1
  251. package/dist/lime-crm-building-blocks/{p-ee7bd504.entry.js → p-eedbf69a.entry.js} +1 -1
  252. package/dist/lime-crm-building-blocks/p-fb45e6d5.entry.js +1 -0
  253. package/dist/lime-crm-building-blocks/{p-d816fcc8.entry.js → p-fec173db.entry.js} +1 -1
  254. package/dist/types/components/chat-list/chat-item/chat-item.d.ts +1 -0
  255. package/dist/types/components/condition-tree/condition-tree-combinators.d.ts +47 -0
  256. package/dist/types/components/condition-tree/condition-tree-editor/condition-tree-editor.d.ts +84 -0
  257. package/dist/types/components/condition-tree/condition-tree-nodes.d.ts +130 -0
  258. package/dist/types/components/condition-tree/condition-tree-open-state.d.ts +76 -0
  259. package/dist/types/components/condition-tree/condition-tree-translate.d.ts +11 -0
  260. package/dist/types/components/condition-tree/condition-tree-view-context.d.ts +48 -0
  261. package/dist/types/components/condition-tree/condition-tree.d.ts +177 -0
  262. package/dist/types/components/condition-tree/condition-tree.types.d.ts +323 -0
  263. package/dist/types/components/condition-tree/group-node-view.d.ts +30 -0
  264. package/dist/types/components/condition-tree/leaf-node-view.d.ts +21 -0
  265. package/dist/types/components.d.ts +348 -4
  266. package/dist/types/interface.d.ts +1 -0
  267. package/package.json +3 -3
  268. package/dist/lime-crm-building-blocks/p-29262c17.entry.js +0 -1
  269. package/dist/lime-crm-building-blocks/p-63e7c191.entry.js +0 -1
  270. package/dist/lime-crm-building-blocks/p-a17d6dac.entry.js +0 -1
  271. package/dist/lime-crm-building-blocks/p-c85ff45b.entry.js +0 -1
@@ -0,0 +1,153 @@
1
+ import { h } from "@stencil/core";
2
+ import { COMBINATOR_PRESENTATION } from "./condition-tree-combinators";
3
+ import { pathKey } from "./condition-tree-nodes";
4
+ import { handleDelete, IssuesView, } from "./condition-tree-view-context";
5
+ import { LeafView } from "./leaf-node-view";
6
+ /**
7
+ * Render one of the consumer's nodes, whichever kind the adapter says it is.
8
+ *
9
+ * It lives beside `GroupView` because a group is what holds nodes of either
10
+ * kind: the recursion is the group's, and keeping the choice here is what lets
11
+ * a group draw a group without two modules importing each other.
12
+ * @param props
13
+ */
14
+ export const NodeView = (props) => {
15
+ const { description } = props;
16
+ if (description.kind === 'group') {
17
+ return (h(GroupView, { description: description, path: props.path, ctx: props.ctx }));
18
+ }
19
+ return (h(LeafView, { node: props.node, description: description, path: props.path, ctx: props.ctx }));
20
+ };
21
+ /**
22
+ * A box holding a combinator, the conditions joined by it, and the two buttons
23
+ * that grow it.
24
+ * @param props
25
+ */
26
+ export const GroupView = (props) => {
27
+ const { description, path, ctx, placeholder } = props;
28
+ const presentation = COMBINATOR_PRESENTATION[description.combinator];
29
+ const delimiter = ctx.translate(presentation.delimiterKey, presentation.delimiter);
30
+ // The marker between two rows reads as the join itself: "&", "or", and
31
+ // for the negated combinators the same joins prefixed with "not".
32
+ const marker = presentation.negated
33
+ ? `${ctx.translate('webclient.delimiter.not', 'not')} ${delimiter}`
34
+ : delimiter;
35
+ return (h("div", { class: "group", key: pathKey(path), "data-combinator": description.combinator, style: { '--group-rail-color': presentation.color } }, h("div", { class: "group-header" }, renderCombinator(description, path, ctx), renderDeleteGroup(path, ctx, placeholder)), h(IssuesView, { issues: description.issues }), h("ul", { class: "rows" }, description.children.map((child, index) => {
36
+ const childDescription = ctx.walker.describe(child);
37
+ return (h("li", { class: {
38
+ row: true,
39
+ 'row--group': childDescription.kind === 'group',
40
+ }, "data-marker": marker, key: pathKey([...path, index]) }, h(NodeView, { node: child, description: childDescription, path: [...path, index], ctx: ctx })));
41
+ }), renderAddCondition(path, marker, ctx)), renderAddGroup(path, ctx)));
42
+ };
43
+ /**
44
+ * The "+" that turns a noun into an action.
45
+ *
46
+ * The chips and buttons that grow the tree read as "+ Condition" and
47
+ * "+ Group": a sighted reader takes the glyph as the verb, so the label only
48
+ * has to carry the noun. A screen reader cannot — an icon without a `title`
49
+ * is hidden from it entirely, leaving nothing but a bare "Condition". The
50
+ * title supplies the missing verb, and lime-elements composes the two into
51
+ * "Add Condition" for assistive technology and for the tooltip alike.
52
+ *
53
+ * This is why the translated strings behind these are nouns, and must stay
54
+ * nouns: the verb lives here.
55
+ * @param ctx
56
+ * @param color
57
+ */
58
+ function addIcon(ctx, color) {
59
+ return {
60
+ name: 'plus_math',
61
+ title: ctx.translate('webclient.add', 'Add'),
62
+ color: color,
63
+ };
64
+ }
65
+ /**
66
+ * The combinators to list, which is what the consumer offers — plus the one the
67
+ * group already uses, when that is not among them. A group saved before the
68
+ * consumer narrowed the list has to keep saying what it does, rather than
69
+ * misrepresenting itself as using one of the offered ones.
70
+ * @param ctx
71
+ * @param current
72
+ */
73
+ function combinatorOptions(ctx, current) {
74
+ const combinators = [...ctx.combinators];
75
+ if (current && !combinators.includes(current)) {
76
+ combinators.push(current);
77
+ }
78
+ return combinators.map((combinator) => {
79
+ const presentation = COMBINATOR_PRESENTATION[combinator];
80
+ return {
81
+ value: combinator,
82
+ text: ctx.translate(presentation.labelKey, presentation.label),
83
+ secondaryText: ctx.translate(presentation.descriptionKey, presentation.description),
84
+ icon: {
85
+ name: presentation.iconName,
86
+ color: presentation.color,
87
+ },
88
+ };
89
+ });
90
+ }
91
+ /**
92
+ * The dropdown that says how a group joins what is inside it.
93
+ *
94
+ * A group holding fewer than two things has nothing to join yet, so choosing
95
+ * between "All of the following" and "Any of the following" would change
96
+ * nothing, and the dropdown is left out until there is a second thing for it to
97
+ * act on. A negating combinator is the exception: "None of the following" says
98
+ * something about a lone condition that "All of the following" does not, so
99
+ * leaving it out would leave out the negation with it.
100
+ * @param description
101
+ * @param path
102
+ * @param ctx
103
+ */
104
+ function renderCombinator(description, path, ctx) {
105
+ const joins = description.children.length > 1;
106
+ if (!joins && !COMBINATOR_PRESENTATION[description.combinator].negated) {
107
+ return null;
108
+ }
109
+ const options = combinatorOptions(ctx, description.combinator);
110
+ // No label: every option is a full sentence about the group ("All of the
111
+ // following"), so a label above it could only name the same thing twice.
112
+ // The accessible name comes from the selected option for the same reason.
113
+ return (h("limel-select", { class: "combinator", value: options.find((option) => option.value === description.combinator), options: options, disabled: ctx.disabled, readonly: ctx.readonly, onChange: handleCombinator(path, ctx) }));
114
+ }
115
+ function renderDeleteGroup(path, ctx, placeholder) {
116
+ if (ctx.readonly) {
117
+ return null;
118
+ }
119
+ return (h("limel-icon-button", { class: "delete-group", icon: "trash", label: ctx.translate('webclient.delete-group', 'Delete this group'), disabled: ctx.disabled || !!placeholder, onClick: handleDelete(path, ctx) }));
120
+ }
121
+ function renderAddCondition(path, marker, ctx) {
122
+ var _a;
123
+ if (ctx.readonly) {
124
+ return null;
125
+ }
126
+ const offersChoice = !!((_a = ctx.addOptions) === null || _a === void 0 ? void 0 : _a.length);
127
+ const chip = (h("limel-chip", { slot: offersChoice ? 'trigger' : undefined, class: "add-condition", text: ctx.translate('webclient.condition', 'Condition'), disabled: ctx.disabled, icon: addIcon(ctx), onClick: offersChoice ? undefined : handleAddLeaf(path, ctx) }));
128
+ // A row of its own rather than a bare chip, so that the join between it
129
+ // and the condition before it is drawn by the same rule that joins any two
130
+ // rows: the button is where the next condition goes, and it reads as part
131
+ // of the sequence — "Won or 100000 or + Condition".
132
+ return (h("li", { class: "row", "data-marker": marker, key: `${pathKey(path)}.add` }, offersChoice ? (h("limel-menu", { class: "add-condition-menu", items: ctx.addOptions, openDirection: "bottom-start", onSelect: handleAddLeafPick(path, ctx) }, chip)) : (chip)));
133
+ }
134
+ function renderAddGroup(path, ctx) {
135
+ if (ctx.readonly) {
136
+ return null;
137
+ }
138
+ return (h("limel-chip", { class: "add-group", size: "small", text: ctx.translate('webclient.group', 'Group'), disabled: ctx.disabled, icon: addIcon(ctx, 'var(--group-rail-color)'), onClick: handleAddGroup(path, ctx) }));
139
+ }
140
+ const handleCombinator = (path, ctx) => (event) => {
141
+ var _a;
142
+ event.stopPropagation();
143
+ const combinator = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.value;
144
+ if (combinator) {
145
+ ctx.onCombinator(path, combinator);
146
+ }
147
+ };
148
+ const handleAddLeaf = (path, ctx) => () => ctx.onAddLeaf(path);
149
+ const handleAddLeafPick = (path, ctx) => (event) => {
150
+ event.stopPropagation();
151
+ ctx.onAddLeaf(path, event.detail);
152
+ };
153
+ const handleAddGroup = (path, ctx) => () => ctx.onAddGroup(path);
@@ -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: 'e802e0966c7e9dd815138e182a5b3f32ebf996f5', 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: 'ddb6bfa10b864382a7665b684cf9e17d267ec44e', 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: 'ace888b8a47767e769649edc8d2fbcdd9d2d2122', name: "content" })];
20
+ return [this.renderHeader(), h("slot", { key: '4497bb532e24e290fa028aa7cfb4aae3b0291e67', 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: '039dfc9f9b07b6fd38d1f3f2aa5c1e685461674c', 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: 'f5ce6d27a29c906bbc64b7c5cfcf519b0f1158e5', 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: '00028334111fe7a09a9289e202b45be6d5ed7446', class: "date-pickers" }, this.renderStartDatePicker(), this.renderEndDatePicker()));
36
+ return (h("div", { key: '853dfd7dcedfcb12b98fe955ca5bca276588a73b', 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: 'f700aef00561de51cdf54b55a798104a30119d62', role: "list", "aria-label": this.accessibleLabel }, this.files.map((file) => this.renderFile(file))));
47
+ return (h(Host, { key: 'fcf23fcc6fcf10a3789b9948c05b19777b355dcd', 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: '49f52a175a08604a8706bb4554eec3b3c5b15063', id: String(this.item.file.id), class: {
81
+ return (h(Host, { key: 'afd416e95a36e5a8058803ffeb0f8bd407ae554c', 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: '7de1a510b5f3f79474250330b4a56e3981cb062e', image: image, clickable: isUnavailable ? false : true, onClick: this.handleDocumentItemClick, onKeyDown: this.handleKeyDown }, h("div", { key: '6cec2ca349fa18bf55f27caabdbe1c6697c1e101', 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: '1b09733a5d914894e4a6738f2559bc49e31a8fe7', image: image, clickable: isUnavailable ? false : true, onClick: this.handleDocumentItemClick, onKeyDown: this.handleKeyDown }, h("div", { key: '08d41d019a71a7f22f983564e01f8bbb1a0f9e8e', 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: '70119759f1b873d79c3696587577f255b8ab68bd' }, h("limel-notched-outline", { key: '5519120a64714e1f73659f8fd8b0e5345c7ab383', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, hasFloatingLabel: true }, h("limel-masonry-layout", { key: 'b7e789a30ec25f41844acf0f20856f6388e95edd', 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: 'e58dfffa3b749e61c224cfec83683cb36f9379b8' }, h("limel-notched-outline", { key: '3a947d03ae67f61ab4733691580168684c5e1237', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, hasFloatingLabel: true }, h("limel-masonry-layout", { key: '2d5ae17e9b06a11ace7ed8cf874bf1268e12f25a', 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: 'b98d9a84dffdef4094c98b8754ccf667ed4c351c', id: this.item.id, class: {
220
+ return (h(Host, { key: '159d6710975ec865ecfe453f6a3b1b5039c8a7eb', 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: '50fc63981154a244baf2f0900becb542474aa53a' }, this.description);
11
+ return h("span", { key: '38bbb5b63a9d33bbc842da679927866ee9b3577e' }, 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: 'e5cda3589de738a405de6ab330a67b74105de616', role: "log", "aria-busy": this.loading ? 'true' : 'false', style: {
106
+ return (h(Host, { key: '0dff076891048a9906d911a4cdf01569246a2f4f', 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: 'eeba853d755bbcdecf5a9f513aa27b0a61a34fdd' }, this.renderLabel(), h("button", { key: '29c8b277683ff63ab48b53bce5993449bcb122cd', 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: '19163bcefc8db240b65bd76d7cc878a4b6f1e575', elementId: chipId, label: this.label || this.getFilterLabel(), helperLabel: helperLabel })));
105
+ return (h(Host, { key: '40c32811f9e3d59c87be6b6f2919c145927de940' }, this.renderLabel(), h("button", { key: '09fd4082e3639c3f3728a8826f868d36d306dda5', 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: 'd663140a04031caf0bd042c6865a7c3a04ea7d6e', 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: '95aab902a6db4a854ebffc8016ea244f388a3fa0' }, h("limel-select", { key: '3b1284518a4641a207fb5c90d718deef837d436e', class: "condition", label: this.accessibleLabel, disabled: this.disabled, options: items, value: selected, onChange: this.handleChange })));
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 })));
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: '168a8a3a57fc46a46bf00545c9771ce2b3cfac03', 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: '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" }));
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: '71fd85af5cbbb2376dd0ad87e9433872af1d9d23', value: buttons.filter(this.isValidButton), onChange: this.handleChangeType }),
95
+ h("limel-button-group", { key: 'a1b6fe1abc7d2eabf434d520a535c9cc5b654947', 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: '802c93fade2b3aff10e53c1a970798b994bff2d2', class: { error: !filter || this.error } }, props)));
119
+ return (h("limel-info-tile", Object.assign({ key: '90fac1e41e9277f860172473ddc9820ef0726bb5', 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: 'b00741bf0f2c617453ce53ce2e6ec852472f20dc' }, this.renderHelp(), this.renderGroupHeading(), this.renderGroupSummary(), this.renderItems()));
30
+ return (h(Host, { key: 'acab4646021a4518fd57e70ee1e2bcb994f34190' }, 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: '282342e6a11234154e4cbcc8df113aafd5cd9cd2', id: this.item.id.toString(), class: {
58
+ return (h(Host, { key: '1e627d02a5ea18353d1de4461374042b95becf8e', 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: '528f313843bb6e8e779fc3a5603c10769cbd183b' }, this.renderPropertySelector(), this.renderConditionPicker(), this.renderValueInput()));
55
+ return (h(Host, { key: 'a27a20dd478b56fbc3e6fb522d2c3425deb5f5fd' }, 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: '3e312a0124577ab70c6ab46074f7a34e0b87decc' }, this.renderHeader(), h("limel-popover", { key: '37b5e3b58ef4a20950b1f6fc24075388b4bdc932', open: this.isOpen, openDirection: "bottom-start", onClose: this.handleClose }, h("limebb-filter-chip", { key: 'd34fc11734714a8b83ef7c014fd9468522e8ffbf', slot: "trigger", platform: this.platform, label: hasKey
58
+ 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
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: 'abaa2fbbdf8ab350f1da21412b82405d02f1546f', 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: 'f4a6bec2cf702a9017ca5d68892e23d15b5fafd8', 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: '6b7013b523d0313f053f5a057db99d23e5c35041', "data-op": combinator, style: {
93
+ return (h(Host, { key: 'b7f3b3eb41704303f507f15f1abe8b8d55dcd3e5', "data-op": combinator, style: {
94
94
  '--limebb-query-filter-group-color-code': OP_STYLE[combinator].color,
95
- } }, h("div", { key: '03bea15e4967f91d1e46a961aba64c04b1aff530', class: "group" }, h("div", { key: '26ca358c38a27e2fc24ac1b176ce338f885f2a31', class: "group-header" }, h("limel-select", { key: '46403ec7c67766ac4eb08b03eaac1eafeb92c0ff', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: 'cfdb09d1656dc4a87a40c6d1cf5e5a4e0c2aeba0', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: '55bb718c9ece64898a41bf95ff301bbeade8a4cd', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: '34c653a547ce2406938eece661c5d468c84871f3', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: 'b27939aced4774b9b738e81d07a7ed4b040f3b77', class: "add-group", size: "small", text: "Group", icon: {
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: {
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: '38ddcfda3b05cd9bc0c510f55d2712472ee2886f', class: "expression" }, this.label && h("limel-header", { key: '5b05cbb7bbd7fb1940c0d7c27b4578f6551833a8', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '4057437167e652f31aa02148e511cfe9a9b26ccb', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
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 })));
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: 'd03160151a6467401424351f0bf7d05211800bf0' }, this.renderHeader(), this.renderContent()));
175
+ return (h(Host, { key: 'e54021c7869117146034f25a431324e20597056e' }, 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: 'f8edf793b05904933998d41dff2680737671754b', class: "response-format-builder" }, this.label && h("h1", { key: '2e6aaf2a0b9fa285920ba71fdc7ef50a1967948b', class: "builder-label" }, this.label), this.helperText && (h("p", { key: '99528513c236f945e8584cb30cc9880eaf049d2d', class: "builder-helper-text" }, this.helperText)), this.visualModeEnabled && (h("div", { key: 'afdb567755d27858daab5490bf22b5c349d4fa0e', 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: '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()))));
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: '4c17fbdd5760fcb83fef57f7204df42c91f70f7f', 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: '886b6adf250756fd5170f144e6ff055e70554902', 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: '5eaad5237f6ccce6d93610bf4987cce10c06abaf' }, this.renderEmptyState(), this.renderOrderByEditor()));
72
+ return (h(Host, { key: '2b90c0e70b2ec2e55809cecd5141cc52acc400de' }, 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: 'fc238e47f9189531ac39969dcabfefaa41602a4b' }, h("limebb-property-selector", { key: '02ed1accd1f1febc05f300a72734150ef415cad8', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: 'd994587df98e632f12b489b732d3d7436860dac7', class: "control-buttons" }, h("limel-icon-button", { key: 'aeca1aceb371f3bf6c392a8e0ce903905d929c33', icon: direction === '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'
42
42
  ? 'sort_ascending'
43
- : 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: '389a10fe59b9b06e6b9251a8bee5a1a06dbf1961', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
43
+ : 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: 'dd0d19ac87d87e54726ab3c6eaabb2a139018c2b', 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: '3e3956bb95dc04ffa6bac42f242b81ccc876d100', class: "property-controls" }, h("div", { key: '65591fe8a50e6e80fa3c40c7fb5b9a53b13b8a55', class: "property-path" }, h("limebb-property-selector", { key: 'd41140ae568023f30e7047d3dcbc70a53a7503a4', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: 'e8bd2fd1c560c6f67ae99bafd3832d9199b1f939', class: "input-grid" }, this.renderAliasInput()), h("div", { key: '5b61d939884ef26c0e83d70c22c7d42635d26aa0', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: '19dc494a85c9df10b8953380b9f3eb3dda7050ce', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: 'da3b889129de1e1dba5bf431b68edb5b786dfee6', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
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 })),
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: '6cca6e4ef0c666b5e8b98f3520e610dd22f0e1e6', class: "header" }, h("limel-icon", { key: 'a5fcd50b843f593695fdb0d58ff676be2f381f98', name: "not_showing_video_frames" }), h("h2", { key: 'fa42a948053ef5cf2d100054300e788097f0f46d' }, "Viewing this file type requires ", h("em", { key: '3319e03d3747ef71f16aa63fa94a9640142bc08c' }, "Live Docs"))),
9
- h("p", { key: 'a9aaf3ecc5a63eb37c2242d38b0138b36cb9e4d7' }, h("em", { key: 'be00747c7b6692b534446cbcd2d8e935a08f6558' }, "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: '25535725cb312328f40b8d39a165ae43bf00980d', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
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")),
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: 'cb38c95a546757f47d376def9d3cf2f5d8176cf9', 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: '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 }));
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: '478562eb1347b383b23e73f28f0143fceec96b7a', id: this.item.id, class: {
59
+ return (h(Host, { key: 'bbb6c49c020641fc39bb494bc34429ff9e1d9c87', 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: '235b934d22f3b44c3cd1f15be75080e797367c8c', class: this.getContainerClassList(), style: {
111
+ return (h(Host, { key: '7f00bb913adfb9481e60e6004e4d73a07d46294c', 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: '29e9cb044645d10cc1892f72a032f9484726caff', 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: '917a08e65845ec178c8cefbcfc4bb202b3b7fca0', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
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()));
116
116
  }
117
117
  renderVisualization() {
118
118
  if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {