@luzmo/analytics-components-kit 1.0.9-beta.7 → 1.0.9-beta.8

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 (514) hide show
  1. package/components/ai-chat/ai-chat-events.d.ts +139 -0
  2. package/components/ai-chat/ai-chat-request.d.ts +25 -0
  3. package/components/ai-chat/ai-chat.d.ts +356 -0
  4. package/components/ai-chat/ai-prompt-types.d.ts +133 -0
  5. package/components/ai-chat/empty-state/ai-chat-empty-state.d.ts +53 -0
  6. package/components/ai-chat/empty-state/index.d.ts +8 -0
  7. package/components/ai-chat/empty-state/types.d.ts +14 -0
  8. package/components/ai-chat/helpers/agent-config.d.ts +12 -0
  9. package/components/ai-chat/helpers/elicitation-template.d.ts +20 -0
  10. package/components/ai-chat/index.d.ts +24 -0
  11. package/components/ai-chat/session/ai-chat-session-controller.d.ts +60 -0
  12. package/components/ai-chat/session/ai-chat-session-types.d.ts +119 -0
  13. package/components/ai-chat/session/ai-chat-session.d.ts +119 -0
  14. package/components/ai-chat/session/index.d.ts +2 -0
  15. package/components/ai-chat/stream/chunk-extractors.d.ts +29 -0
  16. package/components/ai-chat/stream/index.d.ts +53 -0
  17. package/components/ai-chat/stream/progress.d.ts +3 -0
  18. package/components/ai-chat/stream/registry.d.ts +6 -0
  19. package/components/ai-chat/stream/stream-processor.d.ts +2 -0
  20. package/components/ai-chat/stream/transport.d.ts +26 -0
  21. package/components/ai-chat/stream/types.d.ts +59 -0
  22. package/components/ai-chat/types.d.ts +24 -0
  23. package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +239 -0
  24. package/components/ai-interaction-textarea/index.d.ts +10 -0
  25. package/components/ai-interaction-textarea/types.d.ts +12 -0
  26. package/components/data-field/data-field.d.ts +31 -0
  27. package/components/data-field/index.d.ts +9 -0
  28. package/components/data-field/types.d.ts +4 -0
  29. package/components/data-field-level/data-field-level.d.ts +40 -0
  30. package/components/data-field-level/helpers/generate-preview.d.ts +9 -0
  31. package/components/data-field-level/index.d.ts +8 -0
  32. package/components/data-field-panel/data-field-panel.d.ts +231 -0
  33. package/components/data-field-panel/index.d.ts +9 -0
  34. package/components/data-field-panel/types.d.ts +27 -0
  35. package/components/data-fields-select/data-fields-select.d.ts +137 -0
  36. package/components/data-fields-select/index.d.ts +9 -0
  37. package/components/data-fields-select/types.d.ts +4 -0
  38. package/components/dataset-icon/dataset-icon.d.ts +45 -0
  39. package/components/dataset-icon/index.d.ts +8 -0
  40. package/components/dataset-icon/types.d.ts +11 -0
  41. package/components/dataset-selector-list/dataset-selector-list.d.ts +106 -0
  42. package/components/dataset-selector-list/index.d.ts +8 -0
  43. package/components/dataset-selector-row/dataset-selector-row.d.ts +144 -0
  44. package/components/dataset-selector-row/index.d.ts +9 -0
  45. package/components/display-settings/display-settings.d.ts +117 -0
  46. package/components/display-settings/index.d.ts +8 -0
  47. package/components/display-settings/types.d.ts +9 -0
  48. package/components/display-settings-binning/display-settings-binning.d.ts +32 -0
  49. package/components/display-settings-binning/index.d.ts +8 -0
  50. package/components/display-settings-datetime/display-settings-datetime.d.ts +86 -0
  51. package/components/display-settings-datetime/index.d.ts +8 -0
  52. package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +29 -0
  53. package/components/display-settings-grand-totals/index.d.ts +8 -0
  54. package/components/display-settings-numeric/display-settings-numeric.d.ts +82 -0
  55. package/components/display-settings-numeric/helpers/constants.d.ts +19 -0
  56. package/components/display-settings-numeric/index.d.ts +8 -0
  57. package/components/display-settings-period-over-period/display-settings-period-over-period.d.ts +76 -0
  58. package/components/display-settings-period-over-period/helpers/constants.d.ts +44 -0
  59. package/components/display-settings-period-over-period/index.d.ts +8 -0
  60. package/components/filter-expression-picker/filter-expression-picker.d.ts +77 -0
  61. package/components/filter-expression-picker/index.d.ts +7 -0
  62. package/components/filter-item/filter-item.d.ts +142 -0
  63. package/components/filter-item/index.d.ts +8 -0
  64. package/components/filter-parameter-picker/filter-parameter-picker.d.ts +91 -0
  65. package/components/filter-parameter-picker/filter-parameter-picker.helpers.d.ts +8 -0
  66. package/components/filter-parameter-picker/index.d.ts +9 -0
  67. package/components/filter-parameter-picker/types.d.ts +4 -0
  68. package/components/filter-value-picker/filter-value-picker.d.ts +72 -0
  69. package/components/filter-value-picker/index.d.ts +7 -0
  70. package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +51 -0
  71. package/components/filter-value-picker-datetime/index.d.ts +7 -0
  72. package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +105 -0
  73. package/components/filter-value-picker-hierarchy/index.d.ts +7 -0
  74. package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +89 -0
  75. package/components/filter-value-picker-numeric/index.d.ts +7 -0
  76. package/components/filters/filters.d.ts +182 -0
  77. package/components/filters/index.d.ts +12 -0
  78. package/components/filters/transformations/clean-filters.d.ts +37 -0
  79. package/components/filters/transformations/filter-format.d.ts +54 -0
  80. package/components/filters/transformations/transform-filters.d.ts +52 -0
  81. package/components/filters/types.d.ts +65 -0
  82. package/components/formula/formula.d.ts +66 -0
  83. package/components/formula/index.d.ts +7 -0
  84. package/components/formula-codemirror/formula-codemirror.d.ts +79 -0
  85. package/components/formula-codemirror/index.d.ts +7 -0
  86. package/components/formula-codemirror/pills/formula-aggregation/formula-aggregation.d.ts +125 -0
  87. package/components/formula-codemirror/pills/formula-aggregation/index.d.ts +7 -0
  88. package/components/formula-codemirror/pills/formula-empty-argument-pill/formula-empty-argument-pill.d.ts +28 -0
  89. package/components/formula-codemirror/pills/formula-empty-argument-pill/index.d.ts +7 -0
  90. package/components/formula-codemirror/pills/formula-include-exclude-panel.d.ts +38 -0
  91. package/components/formula-draggable-field/formula-draggable-field.d.ts +53 -0
  92. package/components/formula-draggable-field/index.d.ts +8 -0
  93. package/components/formula-draggable-field/types.d.ts +24 -0
  94. package/components/formula-editor/formula-aggregations-list.d.ts +21 -0
  95. package/components/formula-editor/formula-datasets-list.d.ts +37 -0
  96. package/components/formula-editor/formula-description.d.ts +17 -0
  97. package/components/formula-editor/formula-editor.d.ts +85 -0
  98. package/components/formula-editor/formula-functions-list.d.ts +28 -0
  99. package/components/formula-editor/index.d.ts +12 -0
  100. package/components/formula-field/formula-field.d.ts +20 -0
  101. package/components/formula-field/index.d.ts +7 -0
  102. package/components/interactive-viz-item/helpers/chart-helpers.d.ts +7 -0
  103. package/components/interactive-viz-item/index.d.ts +10 -0
  104. package/components/interactive-viz-item/interactive-viz-item.d.ts +97 -0
  105. package/components/interactive-viz-item/load-config-panel.d.ts +2 -0
  106. package/components/interactive-viz-item/types.d.ts +117 -0
  107. package/components/item-grid/actions.d.ts +3 -0
  108. package/components/item-grid/helpers/grid-effects.d.ts +1 -0
  109. package/components/item-grid/helpers/grid-events.d.ts +56 -0
  110. package/components/item-grid/helpers/grid-interactions.d.ts +88 -0
  111. package/components/item-grid/helpers/grid-item-management.d.ts +30 -0
  112. package/components/item-grid/helpers/grid-item-popover.d.ts +21 -0
  113. package/components/item-grid/helpers/grid-items.d.ts +9 -0
  114. package/components/item-grid/helpers/grid-keyboard-updates.d.ts +18 -0
  115. package/components/item-grid/helpers/grid-keydown-event.d.ts +18 -0
  116. package/components/item-grid/helpers/grid-popover-cleanup.d.ts +4 -0
  117. package/components/item-grid/helpers/grid-rendering.d.ts +69 -0
  118. package/components/item-grid/helpers/grid-stack-lifecycle.d.ts +26 -0
  119. package/components/item-grid/helpers/grid-theme.d.ts +16 -0
  120. package/components/item-grid/helpers/grid-update-cycle.d.ts +22 -0
  121. package/components/item-grid/index.d.ts +12 -0
  122. package/components/item-grid/item-grid-item-actions-menu.d.ts +35 -0
  123. package/components/item-grid/item-grid.d.ts +251 -0
  124. package/components/item-grid/types.d.ts +57 -0
  125. package/components/item-menu/item-list/item-list.d.ts +37 -0
  126. package/components/item-option/helpers/control-markup.d.ts +14 -0
  127. package/components/item-option/helpers/control-templates/action-button-group-template.d.ts +2 -0
  128. package/components/item-option/helpers/control-templates/color-palette-picker-template.d.ts +2 -0
  129. package/components/item-option/helpers/control-templates/color-picker-template.d.ts +2 -0
  130. package/components/item-option/helpers/control-templates/color-range-template.d.ts +2 -0
  131. package/components/item-option/helpers/control-templates/guidelines-template.d.ts +3 -0
  132. package/components/item-option/helpers/control-templates/multi-language-field-template.d.ts +8 -0
  133. package/components/item-option/helpers/control-templates/number-field-template.d.ts +2 -0
  134. package/components/item-option/helpers/control-templates/picker-template.d.ts +2 -0
  135. package/components/item-option/helpers/control-templates/position-picker-template.d.ts +2 -0
  136. package/components/item-option/helpers/control-templates/positions-number-field-template.d.ts +2 -0
  137. package/components/item-option/helpers/control-templates/radio-button-group.d.ts +2 -0
  138. package/components/item-option/helpers/control-templates/slider-template.d.ts +2 -0
  139. package/components/item-option/helpers/control-templates/switch-template.d.ts +2 -0
  140. package/components/item-option/helpers/control-templates/text-field-template.d.ts +7 -0
  141. package/components/item-option/helpers/enum-values.d.ts +7 -0
  142. package/components/item-option/helpers/generate-callback.d.ts +1 -0
  143. package/components/item-option/helpers/get-control-by-key.d.ts +1 -0
  144. package/components/item-option/helpers/get-default-value.d.ts +1 -0
  145. package/components/item-option/helpers/get-enum-values.d.ts +1 -0
  146. package/components/item-option/helpers/get-extra-label-values.d.ts +7 -0
  147. package/components/item-option/helpers/get-value-by-key.d.ts +1 -0
  148. package/components/item-option/index.d.ts +8 -0
  149. package/components/item-option/item-option.d.ts +59 -0
  150. package/components/item-option/types.d.ts +8 -0
  151. package/components/item-option-action-button-group/index.d.ts +8 -0
  152. package/components/item-option-action-button-group/item-option-action-button-group.d.ts +36 -0
  153. package/components/item-option-base/item-option-base.d.ts +23 -0
  154. package/components/item-option-color-palette-picker/index.d.ts +8 -0
  155. package/components/item-option-color-palette-picker/item-option-color-palette-picker.d.ts +46 -0
  156. package/components/item-option-color-picker/index.d.ts +8 -0
  157. package/components/item-option-color-picker/item-option-color-picker.d.ts +33 -0
  158. package/components/item-option-color-range/index.d.ts +8 -0
  159. package/components/item-option-color-range/item-option-color-range.d.ts +99 -0
  160. package/components/item-option-guidelines/helpers/guidelines-value.d.ts +12 -0
  161. package/components/item-option-guidelines/index.d.ts +10 -0
  162. package/components/item-option-guidelines/item-option-guidelines.d.ts +74 -0
  163. package/components/item-option-guidelines/types.d.ts +25 -0
  164. package/components/item-option-multi-language-field/index.d.ts +8 -0
  165. package/components/item-option-multi-language-field/item-option-multi-language-field.d.ts +30 -0
  166. package/components/item-option-number-field/index.d.ts +8 -0
  167. package/components/item-option-number-field/item-option-number-field.d.ts +38 -0
  168. package/components/item-option-panel/index.d.ts +8 -0
  169. package/components/item-option-panel/item-option-panel.d.ts +77 -0
  170. package/components/item-option-picker/index.d.ts +8 -0
  171. package/components/item-option-picker/item-option-picker.d.ts +29 -0
  172. package/components/item-option-position-picker/index.d.ts +8 -0
  173. package/components/item-option-position-picker/item-option-position-picker.d.ts +22 -0
  174. package/components/item-option-positions-number-field/index.d.ts +8 -0
  175. package/components/item-option-positions-number-field/item-option-positions-number-field.d.ts +44 -0
  176. package/components/item-option-radio-button-group/index.d.ts +8 -0
  177. package/components/item-option-radio-button-group/item-option-radio-button-group.d.ts +29 -0
  178. package/components/item-option-slider/index.d.ts +8 -0
  179. package/components/item-option-slider/item-option-slider.d.ts +33 -0
  180. package/components/item-option-switch/index.d.ts +8 -0
  181. package/components/item-option-switch/item-option-switch.d.ts +19 -0
  182. package/components/item-option-text-field/index.d.ts +8 -0
  183. package/components/item-option-text-field/item-option-text-field.d.ts +25 -0
  184. package/components/item-slot-drop/index.d.ts +11 -0
  185. package/components/item-slot-drop/item-slot-drop.d.ts +113 -0
  186. package/components/item-slot-drop/types.d.ts +5 -0
  187. package/components/item-slot-drop-panel/index.d.ts +8 -0
  188. package/components/item-slot-drop-panel/item-slot-drop-panel.d.ts +180 -0
  189. package/components/item-slot-picker/index.d.ts +8 -0
  190. package/components/item-slot-picker/item-slot-picker.d.ts +149 -0
  191. package/components/item-slot-picker-panel/index.d.ts +9 -0
  192. package/components/item-slot-picker-panel/item-slot-picker-panel.d.ts +230 -0
  193. package/components/slot-menu/index.d.ts +10 -0
  194. package/components/slot-menu/slot-menu.d.ts +148 -0
  195. package/components/slot-menu/types.d.ts +24 -0
  196. package/components/slot-menu-list/index.d.ts +8 -0
  197. package/components/slot-menu-list/slot-menu-list.d.ts +47 -0
  198. package/components/viz-item-menu/index.d.ts +8 -0
  199. package/components/viz-item-menu/types.d.ts +9 -0
  200. package/components/viz-item-menu/viz-item-menu.d.ts +85 -0
  201. package/package.json +1 -1
  202. package/react/package.json +2 -2
  203. package/angular/README.md +0 -40
  204. package/angular/components/ai-chat-empty-state.ts +0 -105
  205. package/angular/components/ai-chat.ts +0 -447
  206. package/angular/components/ai-interaction-textarea.ts +0 -290
  207. package/angular/components/data-field-level.ts +0 -130
  208. package/angular/components/data-field-panel.ts +0 -256
  209. package/angular/components/data-field.ts +0 -130
  210. package/angular/components/data-fields-select.ts +0 -226
  211. package/angular/components/dataset-icon.ts +0 -83
  212. package/angular/components/dataset-selector-list.ts +0 -147
  213. package/angular/components/dataset-selector-row.ts +0 -205
  214. package/angular/components/display-settings-binning.ts +0 -92
  215. package/angular/components/display-settings-datetime.ts +0 -100
  216. package/angular/components/display-settings-grand-totals.ts +0 -92
  217. package/angular/components/display-settings-numeric.ts +0 -113
  218. package/angular/components/display-settings-period-over-period.ts +0 -121
  219. package/angular/components/display-settings.ts +0 -227
  220. package/angular/components/filter-expression-picker.ts +0 -168
  221. package/angular/components/filter-item.ts +0 -207
  222. package/angular/components/filter-parameter-picker.ts +0 -155
  223. package/angular/components/filter-value-picker-datetime.ts +0 -125
  224. package/angular/components/filter-value-picker-hierarchy.ts +0 -146
  225. package/angular/components/filter-value-picker-numeric.ts +0 -146
  226. package/angular/components/filter-value-picker.ts +0 -160
  227. package/angular/components/filters.ts +0 -241
  228. package/angular/components/formula-editor.ts +0 -229
  229. package/angular/components/formula-field.ts +0 -198
  230. package/angular/components/formula.ts +0 -170
  231. package/angular/components/interactive-viz-item.ts +0 -186
  232. package/angular/components/item-grid-item-actions-menu.ts +0 -113
  233. package/angular/components/item-grid.ts +0 -242
  234. package/angular/components/item-option-action-button-group.ts +0 -105
  235. package/angular/components/item-option-color-palette-picker.ts +0 -126
  236. package/angular/components/item-option-color-picker.ts +0 -134
  237. package/angular/components/item-option-color-range.ts +0 -168
  238. package/angular/components/item-option-guidelines.ts +0 -84
  239. package/angular/components/item-option-multi-language-field.ts +0 -133
  240. package/angular/components/item-option-number-field.ts +0 -161
  241. package/angular/components/item-option-panel.ts +0 -149
  242. package/angular/components/item-option-picker.ts +0 -120
  243. package/angular/components/item-option-position-picker.ts +0 -98
  244. package/angular/components/item-option-positions-number-field.ts +0 -140
  245. package/angular/components/item-option-radio-button-group.ts +0 -119
  246. package/angular/components/item-option-slider.ts +0 -126
  247. package/angular/components/item-option-switch.ts +0 -98
  248. package/angular/components/item-option-text-field.ts +0 -112
  249. package/angular/components/item-option.ts +0 -163
  250. package/angular/components/item-slot-drop-panel.ts +0 -236
  251. package/angular/components/item-slot-drop.ts +0 -231
  252. package/angular/components/item-slot-picker-panel.ts +0 -299
  253. package/angular/components/item-slot-picker.ts +0 -241
  254. package/angular/components/slot-menu-list.ts +0 -121
  255. package/angular/components/slot-menu.ts +0 -304
  256. package/angular/components/viz-item-menu.ts +0 -118
  257. package/angular/esm/components/ai-chat-empty-state.d.ts +0 -41
  258. package/angular/esm/components/ai-chat-empty-state.js +0 -107
  259. package/angular/esm/components/ai-chat.d.ts +0 -149
  260. package/angular/esm/components/ai-chat.js +0 -463
  261. package/angular/esm/components/ai-interaction-textarea.d.ts +0 -108
  262. package/angular/esm/components/ai-interaction-textarea.js +0 -313
  263. package/angular/esm/components/data-field-level.d.ts +0 -50
  264. package/angular/esm/components/data-field-level.js +0 -129
  265. package/angular/esm/components/data-field-panel.d.ts +0 -86
  266. package/angular/esm/components/data-field-panel.js +0 -268
  267. package/angular/esm/components/data-field.d.ts +0 -50
  268. package/angular/esm/components/data-field.js +0 -129
  269. package/angular/esm/components/data-fields-select.d.ts +0 -87
  270. package/angular/esm/components/data-fields-select.js +0 -243
  271. package/angular/esm/components/dataset-icon.d.ts +0 -34
  272. package/angular/esm/components/dataset-icon.js +0 -86
  273. package/angular/esm/components/dataset-selector-list.d.ts +0 -56
  274. package/angular/esm/components/dataset-selector-list.js +0 -155
  275. package/angular/esm/components/dataset-selector-row.d.ts +0 -72
  276. package/angular/esm/components/dataset-selector-row.js +0 -205
  277. package/angular/esm/components/display-settings-binning.d.ts +0 -37
  278. package/angular/esm/components/display-settings-binning.js +0 -91
  279. package/angular/esm/components/display-settings-datetime.d.ts +0 -40
  280. package/angular/esm/components/display-settings-datetime.js +0 -99
  281. package/angular/esm/components/display-settings-grand-totals.d.ts +0 -37
  282. package/angular/esm/components/display-settings-grand-totals.js +0 -91
  283. package/angular/esm/components/display-settings-numeric.d.ts +0 -45
  284. package/angular/esm/components/display-settings-numeric.js +0 -115
  285. package/angular/esm/components/display-settings-period-over-period.d.ts +0 -50
  286. package/angular/esm/components/display-settings-period-over-period.js +0 -123
  287. package/angular/esm/components/display-settings.d.ts +0 -83
  288. package/angular/esm/components/display-settings.js +0 -231
  289. package/angular/esm/components/filter-expression-picker.d.ts +0 -64
  290. package/angular/esm/components/filter-expression-picker.js +0 -179
  291. package/angular/esm/components/filter-item.d.ts +0 -74
  292. package/angular/esm/components/filter-item.js +0 -222
  293. package/angular/esm/components/filter-parameter-picker.d.ts +0 -56
  294. package/angular/esm/components/filter-parameter-picker.js +0 -151
  295. package/angular/esm/components/filter-value-picker-datetime.d.ts +0 -47
  296. package/angular/esm/components/filter-value-picker-datetime.js +0 -131
  297. package/angular/esm/components/filter-value-picker-hierarchy.d.ts +0 -53
  298. package/angular/esm/components/filter-value-picker-hierarchy.js +0 -155
  299. package/angular/esm/components/filter-value-picker-numeric.d.ts +0 -53
  300. package/angular/esm/components/filter-value-picker-numeric.js +0 -155
  301. package/angular/esm/components/filter-value-picker.d.ts +0 -57
  302. package/angular/esm/components/filter-value-picker.js +0 -171
  303. package/angular/esm/components/filters.d.ts +0 -85
  304. package/angular/esm/components/filters.js +0 -251
  305. package/angular/esm/components/formula-editor.d.ts +0 -78
  306. package/angular/esm/components/formula-editor.js +0 -236
  307. package/angular/esm/components/formula-field.d.ts +0 -70
  308. package/angular/esm/components/formula-field.js +0 -209
  309. package/angular/esm/components/formula.d.ts +0 -60
  310. package/angular/esm/components/formula.js +0 -177
  311. package/angular/esm/components/interactive-viz-item.d.ts +0 -63
  312. package/angular/esm/components/interactive-viz-item.js +0 -188
  313. package/angular/esm/components/item-grid-item-actions-menu.d.ts +0 -45
  314. package/angular/esm/components/item-grid-item-actions-menu.js +0 -115
  315. package/angular/esm/components/item-grid.d.ts +0 -80
  316. package/angular/esm/components/item-grid.js +0 -245
  317. package/angular/esm/components/item-option-action-button-group.d.ts +0 -41
  318. package/angular/esm/components/item-option-action-button-group.js +0 -107
  319. package/angular/esm/components/item-option-color-palette-picker.d.ts +0 -48
  320. package/angular/esm/components/item-option-color-palette-picker.js +0 -131
  321. package/angular/esm/components/item-option-color-picker.d.ts +0 -51
  322. package/angular/esm/components/item-option-color-picker.js +0 -139
  323. package/angular/esm/components/item-option-color-range.d.ts +0 -66
  324. package/angular/esm/components/item-option-color-range.js +0 -179
  325. package/angular/esm/components/item-option-guidelines.d.ts +0 -34
  326. package/angular/esm/components/item-option-guidelines.js +0 -83
  327. package/angular/esm/components/item-option-multi-language-field.d.ts +0 -50
  328. package/angular/esm/components/item-option-multi-language-field.js +0 -139
  329. package/angular/esm/components/item-option-number-field.d.ts +0 -58
  330. package/angular/esm/components/item-option-number-field.js +0 -171
  331. package/angular/esm/components/item-option-panel.d.ts +0 -54
  332. package/angular/esm/components/item-option-panel.js +0 -155
  333. package/angular/esm/components/item-option-picker.d.ts +0 -46
  334. package/angular/esm/components/item-option-picker.js +0 -123
  335. package/angular/esm/components/item-option-position-picker.d.ts +0 -39
  336. package/angular/esm/components/item-option-position-picker.js +0 -99
  337. package/angular/esm/components/item-option-positions-number-field.d.ts +0 -54
  338. package/angular/esm/components/item-option-positions-number-field.js +0 -147
  339. package/angular/esm/components/item-option-radio-button-group.d.ts +0 -45
  340. package/angular/esm/components/item-option-radio-button-group.js +0 -123
  341. package/angular/esm/components/item-option-slider.d.ts +0 -46
  342. package/angular/esm/components/item-option-slider.js +0 -131
  343. package/angular/esm/components/item-option-switch.d.ts +0 -40
  344. package/angular/esm/components/item-option-switch.js +0 -99
  345. package/angular/esm/components/item-option-text-field.d.ts +0 -44
  346. package/angular/esm/components/item-option-text-field.js +0 -115
  347. package/angular/esm/components/item-option.d.ts +0 -58
  348. package/angular/esm/components/item-option.js +0 -171
  349. package/angular/esm/components/item-slot-drop-panel.d.ts +0 -82
  350. package/angular/esm/components/item-slot-drop-panel.js +0 -249
  351. package/angular/esm/components/item-slot-drop.d.ts +0 -77
  352. package/angular/esm/components/item-slot-drop.js +0 -227
  353. package/angular/esm/components/item-slot-picker-panel.d.ts +0 -97
  354. package/angular/esm/components/item-slot-picker-panel.js +0 -309
  355. package/angular/esm/components/item-slot-picker.d.ts +0 -86
  356. package/angular/esm/components/item-slot-picker.js +0 -259
  357. package/angular/esm/components/slot-menu-list.d.ts +0 -46
  358. package/angular/esm/components/slot-menu-list.js +0 -123
  359. package/angular/esm/components/slot-menu.d.ts +0 -104
  360. package/angular/esm/components/slot-menu.js +0 -300
  361. package/angular/esm/components/viz-item-menu.d.ts +0 -42
  362. package/angular/esm/components/viz-item-menu.js +0 -111
  363. package/angular/esm/index.d.ts +0 -109
  364. package/angular/esm/index.js +0 -217
  365. package/angular/index.ts +0 -223
  366. package/angular/package.json +0 -40
  367. package/angular/tsconfig.json +0 -36
  368. package/angular/type-fallbacks.d.ts +0 -0
  369. package/angular/utils/ai-prompt/attachments.d.ts +0 -10
  370. package/angular/utils/ai-prompt/dictation.d.ts +0 -50
  371. package/angular/utils/ai-prompt/image-upload.d.ts +0 -12
  372. package/angular/utils/ai-prompt/index.d.ts +0 -6
  373. package/angular/utils/ai-prompt/tests/attachments.test.d.ts +0 -1
  374. package/angular/utils/ai-prompt/tests/dictation.test.d.ts +0 -1
  375. package/angular/utils/ai-prompt/tests/image-upload.test.d.ts +0 -1
  376. package/angular/utils/base/base.d.ts +0 -16
  377. package/angular/utils/base/focus-visible.d.ts +0 -29
  378. package/angular/utils/base/focusable.d.ts +0 -58
  379. package/angular/utils/base/index.d.ts +0 -5
  380. package/angular/utils/base/localized-mixin.d.ts +0 -22
  381. package/angular/utils/base/sized-mixin.d.ts +0 -17
  382. package/angular/utils/color/color-palettes.d.ts +0 -17
  383. package/angular/utils/color/extrapolate-color.d.ts +0 -1
  384. package/angular/utils/create-lazy-loader.d.ts +0 -5
  385. package/angular/utils/data/load-data-fields-for-datasets.d.ts +0 -22
  386. package/angular/utils/data-broker/index.d.ts +0 -263
  387. package/angular/utils/data-field-types/calculate-data-field-icon.d.ts +0 -12
  388. package/angular/utils/data-field-types/default-acceptable-data-field-types.d.ts +0 -1
  389. package/angular/utils/data-field-types/tests/calculate-data-field-icon.test.d.ts +0 -1
  390. package/angular/utils/drag/draggable.d.ts +0 -13
  391. package/angular/utils/drag/pragmatic-element-adapter.d.ts +0 -2
  392. package/angular/utils/drag/tests/pragmatic-element-adapter.first-import.test.d.ts +0 -1
  393. package/angular/utils/drag/tests/pragmatic-element-adapter.test.d.ts +0 -1
  394. package/angular/utils/filters/expressions.d.ts +0 -15
  395. package/angular/utils/filters/filter-text.d.ts +0 -64
  396. package/angular/utils/filters/index.d.ts +0 -2
  397. package/angular/utils/filters/presentation.d.ts +0 -4
  398. package/angular/utils/filters/tests/filter-text.test.d.ts +0 -1
  399. package/angular/utils/formatter/calculate-duration.d.ts +0 -2
  400. package/angular/utils/formatter/decompose-numeric-format.d.ts +0 -11
  401. package/angular/utils/formatter/default-local-formats.d.ts +0 -20
  402. package/angular/utils/formatter/formats/cs.d.ts +0 -20
  403. package/angular/utils/formatter/formats/da.d.ts +0 -20
  404. package/angular/utils/formatter/formats/de.d.ts +0 -21
  405. package/angular/utils/formatter/formats/en-GB.d.ts +0 -21
  406. package/angular/utils/formatter/formats/en-US.d.ts +0 -1
  407. package/angular/utils/formatter/formats/en.d.ts +0 -1
  408. package/angular/utils/formatter/formats/es.d.ts +0 -54
  409. package/angular/utils/formatter/formats/fi.d.ts +0 -20
  410. package/angular/utils/formatter/formats/fr.d.ts +0 -54
  411. package/angular/utils/formatter/formats/he.d.ts +0 -20
  412. package/angular/utils/formatter/formats/hu.d.ts +0 -20
  413. package/angular/utils/formatter/formats/it.d.ts +0 -54
  414. package/angular/utils/formatter/formats/ja.d.ts +0 -20
  415. package/angular/utils/formatter/formats/ko.d.ts +0 -20
  416. package/angular/utils/formatter/formats/mk.d.ts +0 -20
  417. package/angular/utils/formatter/formats/nl.d.ts +0 -21
  418. package/angular/utils/formatter/formats/no.d.ts +0 -21
  419. package/angular/utils/formatter/formats/pl.d.ts +0 -20
  420. package/angular/utils/formatter/formats/pt.d.ts +0 -20
  421. package/angular/utils/formatter/formats/ru.d.ts +0 -20
  422. package/angular/utils/formatter/formats/sv.d.ts +0 -20
  423. package/angular/utils/formatter/formats/tr.d.ts +0 -21
  424. package/angular/utils/formatter/formats/zh-CN.d.ts +0 -20
  425. package/angular/utils/formatter/formats/zh-TW.d.ts +0 -20
  426. package/angular/utils/formatter/formatter.d.ts +0 -9
  427. package/angular/utils/formatter/get-dataset-name.d.ts +0 -2
  428. package/angular/utils/formatter/get-localized-name.d.ts +0 -4
  429. package/angular/utils/formatter/localize.d.ts +0 -3
  430. package/angular/utils/formatter/localized-template.d.ts +0 -4
  431. package/angular/utils/formatter/smart-datetime-formats.const.d.ts +0 -36
  432. package/angular/utils/formatter/tests/calculate-duration.test.d.ts +0 -1
  433. package/angular/utils/formatter/tests/decompose-numeric-format.test.d.ts +0 -1
  434. package/angular/utils/formatter/tests/default-local-formats.test.d.ts +0 -1
  435. package/angular/utils/formatter/tests/formatter.test.d.ts +0 -1
  436. package/angular/utils/formatter/tests/get-localized-name.test.d.ts +0 -1
  437. package/angular/utils/formatter/tests/localize.test.d.ts +0 -1
  438. package/angular/utils/formatter/tests/localized-template.test.d.ts +0 -1
  439. package/angular/utils/formula/base/formula-base.d.ts +0 -117
  440. package/angular/utils/formula/base/formula-input-base.d.ts +0 -62
  441. package/angular/utils/formula/codemirror/actions.d.ts +0 -47
  442. package/angular/utils/formula/codemirror/drop-cursor.d.ts +0 -15
  443. package/angular/utils/formula/codemirror/icon-element.d.ts +0 -7
  444. package/angular/utils/formula/codemirror/parser.d.ts +0 -16
  445. package/angular/utils/formula/codemirror/tests/actions.test.d.ts +0 -1
  446. package/angular/utils/formula/codemirror/theme.d.ts +0 -20
  447. package/angular/utils/formula/codemirror/widget.d.ts +0 -18
  448. package/angular/utils/formula/config/aggregations.d.ts +0 -9
  449. package/angular/utils/formula/config/build-datasets.d.ts +0 -10
  450. package/angular/utils/formula/config/expression-helpers.d.ts +0 -42
  451. package/angular/utils/formula/config/functions.d.ts +0 -3
  452. package/angular/utils/formula/config/groupings.d.ts +0 -9
  453. package/angular/utils/formula/config/regex.d.ts +0 -39
  454. package/angular/utils/formula/config/resolve-column-presentation.d.ts +0 -19
  455. package/angular/utils/formula/config/tests/build-datasets.test.d.ts +0 -1
  456. package/angular/utils/formula/config/validate-expression.d.ts +0 -19
  457. package/angular/utils/formula/load-formula-codemirror.d.ts +0 -4
  458. package/angular/utils/formula/render-explanation-tooltip.d.ts +0 -7
  459. package/angular/utils/formula/store/formula-display-store.d.ts +0 -93
  460. package/angular/utils/formula/store/formula-editor-context.d.ts +0 -8
  461. package/angular/utils/formula/store/formula-editor-store.d.ts +0 -46
  462. package/angular/utils/formula/store/tests/formula-editor-store.test.d.ts +0 -1
  463. package/angular/utils/formula/tests/validate-expression.test.d.ts +0 -1
  464. package/angular/utils/get-css-variable.d.ts +0 -1
  465. package/angular/utils/index.d.ts +0 -10
  466. package/angular/utils/localize/set-locale.d.ts +0 -7
  467. package/angular/utils/map-tile-providers/index.d.ts +0 -93
  468. package/angular/utils/set-nested-value.d.ts +0 -6
  469. package/angular/utils/slot-content/ad-hoc-slot-content.d.ts +0 -7
  470. package/angular/utils/slot-content/render-calculation-label.d.ts +0 -7
  471. package/angular/utils/slot-content/tests/ad-hoc-slot-content.test.d.ts +0 -1
  472. package/angular/utils/slot-state/slot-context.d.ts +0 -4
  473. package/angular/utils/slot-state/slot-store.d.ts +0 -43
  474. package/angular/utils/slot-state/tests/slot-store.test.d.ts +0 -1
  475. package/angular/utils/store/base-store.d.ts +0 -158
  476. package/angular/utils/store/dashboard-store.d.ts +0 -49
  477. package/angular/utils/store/index.d.ts +0 -135
  478. package/angular/utils/store/item-store.d.ts +0 -33
  479. package/angular/utils/store/store-registry.d.ts +0 -170
  480. package/angular/utils/store/tests/dashboard-store.test.d.ts +0 -1
  481. package/angular/utils/store/tests/item-store.test.d.ts +0 -1
  482. package/angular/utils/store/tests/store-registry.test.d.ts +0 -1
  483. package/angular/utils/store/types.d.ts +0 -270
  484. package/angular/utils/switch-item/index.d.ts +0 -34
  485. package/angular/utils/switch-item/slot-role-classification.d.ts +0 -31
  486. package/angular/utils/switch-item/stories/switch-item.stories.d.ts +0 -17
  487. package/angular/utils/switch-item/tests/slot-role-classification.test.d.ts +0 -1
  488. package/angular/utils/switch-item/tests/switch-item.test.d.ts +0 -1
  489. package/angular/utils/tests/create-lazy-loader.test.d.ts +0 -1
  490. package/angular/utils/tests/set-nested-value.test.d.ts +0 -1
  491. package/angular/utils/themes/bliss.d.ts +0 -2
  492. package/angular/utils/themes/classic-dark.d.ts +0 -2
  493. package/angular/utils/themes/classic.d.ts +0 -2
  494. package/angular/utils/themes/default-dark.d.ts +0 -2
  495. package/angular/utils/themes/default.d.ts +0 -2
  496. package/angular/utils/themes/index.d.ts +0 -4
  497. package/angular/utils/themes/orion.d.ts +0 -2
  498. package/angular/utils/themes/pinky.d.ts +0 -2
  499. package/angular/utils/themes/radiant.d.ts +0 -2
  500. package/angular/utils/themes/royale.d.ts +0 -2
  501. package/angular/utils/themes/seasonal.d.ts +0 -2
  502. package/angular/utils/themes/urban.d.ts +0 -2
  503. package/angular/utils/themes/vivid.d.ts +0 -2
  504. package/angular/utils/time/formats.const.d.ts +0 -4
  505. package/angular/utils/time/period-over-period-condition.const.d.ts +0 -8
  506. package/angular/utils/time/periods.const.d.ts +0 -15
  507. package/angular/utils/timezone/datetime-timezone.d.ts +0 -25
  508. package/angular/utils/timezone/tests/datetime-timezone.test.d.ts +0 -1
  509. package/angular/utils/transformations/convert-data-field-to-slot-content.d.ts +0 -9
  510. package/angular/utils/transformations/convert-datasets-to-data-fields.d.ts +0 -30
  511. package/angular/utils/transformations/tests/convert-data-field-to-slot-content.test.d.ts +0 -1
  512. package/angular/utils/transformations/tests/convert-datasets-to-data-fields.test.d.ts +0 -1
  513. package/angular/utils/types/tests/type-check.test.d.ts +0 -1
  514. package/angular/utils/types/type-check.d.ts +0 -28
@@ -0,0 +1,37 @@
1
+ import type { CleanFilter, CleanFilterClauseGroup, FilterClause, FilterCondition, FilterGroup as EditFilterGroup } from '../types';
2
+ type UnknownRecord = Record<string, unknown>;
3
+ /**
4
+ * A value that names a column rather than holding a literal. Mirrors the shared
5
+ * `isFilterColumnParam`: a named source stands on its own, while a bare
6
+ * `expression` needs a dataset to be a reference rather than a value. A reference
7
+ * missing its dataset still matches, so that clean emit rejects it instead of
8
+ * passing the raw canonical object through as a value.
9
+ */
10
+ export declare function isFilterReference(value: unknown): value is UnknownRecord;
11
+ /**
12
+ * Clean reference -> canonical `parameters[0]`. `columnId` wins over an ad-hoc
13
+ * expression, and `columnExpression` becomes the canonical reference `expression`.
14
+ */
15
+ export declare function cleanReferenceToCanonical(reference: UnknownRecord, allowExpressionAlias?: boolean): UnknownRecord;
16
+ /**
17
+ * Canonical `parameters[0]` -> clean inlined reference. Nested references inside
18
+ * `discretization.over` and `aggregation` are converted too, `lowestLevel` and
19
+ * null-valued optional members are dropped, and a reference that cannot be
20
+ * expressed publicly throws rather than leaking canonical keys into clean output.
21
+ */
22
+ export declare function canonicalReferenceToClean(reference: UnknownRecord): UnknownRecord;
23
+ /** Clean leaf -> editor condition, restoring the canonical `parameters` tuple. */
24
+ export declare function cleanLeafToCondition(leaf: UnknownRecord, inheritedClause?: FilterClause): FilterCondition;
25
+ /**
26
+ * Editor condition -> clean leaf. Returns `null` only for a leaf with no
27
+ * expression, matching the canonical exporter's drop rule. Anything else that
28
+ * cannot be expressed cleanly throws, the way the shared normalizer does:
29
+ * dropping a live predicate would silently widen the rows the host applies.
30
+ */
31
+ export declare function conditionToCleanLeaf(condition: FilterCondition): CleanFilter | null;
32
+ /**
33
+ * Editor group -> clean clause groups. A group holding both clauses becomes one
34
+ * `where` group and one `having` group; neither reuses the original group id.
35
+ */
36
+ export declare function editGroupToCleanGroups(group: EditFilterGroup): CleanFilterClauseGroup[];
37
+ export {};
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Runtime recognition of the two filter encodings ACK accepts.
3
+ *
4
+ * Groups look the same in both: a lowercase `and` / `or` condition plus a
5
+ * `filters` array. Only the leaves differ, so detection is per leaf rather than
6
+ * per array, and a payload that mixes the two converts leaf by leaf.
7
+ */
8
+ /** Shared nesting limit, matching the platform-wide filter depth guard. */
9
+ export declare const MAX_FILTER_NESTING_DEPTH = 20;
10
+ /** Raised when a filter tree cannot be represented in the requested encoding. */
11
+ export declare class FilterUnrepresentableError extends Error {
12
+ constructor(message: string);
13
+ }
14
+ /** Format label for a filter payload. Diagnostics only; conversion never depends on it. */
15
+ export type DetectedFiltersFormat = 'empty' | 'canonical' | 'clean' | 'mixed' | 'unknown';
16
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
17
+ /**
18
+ * A group in either encoding, including a leftover uppercase condition. A group
19
+ * may omit `condition` entirely, which `toLogicalCondition` resolves to `and`;
20
+ * a condition that is present but not `and` / `or` is not a group.
21
+ */
22
+ export declare function isFilterGroupLike(value: unknown): value is Record<string, unknown>;
23
+ /** A leaf in either encoding. Groups are excluded by their `condition`. */
24
+ export declare function isFilterLeafLike(value: unknown): value is Record<string, unknown>;
25
+ export declare function hasCleanEncodingMarker(leaf: Record<string, unknown>): boolean;
26
+ /**
27
+ * Clean references name exactly one source. `columnExpression` is an alias that
28
+ * loses to `columnId` rather than competing with it, so the two together are one
29
+ * source; `columnId` with `formulaId` is genuinely ambiguous and is rejected.
30
+ *
31
+ * `allowExpressionAlias` covers a standalone reference object, where a bare
32
+ * `expression` is the ad-hoc column. On a flattened leaf `expression` is the
33
+ * filter operator instead, so callers there must leave it off.
34
+ */
35
+ export declare function hasExactlyOneReferenceSource(reference: Record<string, unknown>, allowExpressionAlias?: boolean): boolean;
36
+ /** A flattened leaf: a dataset, exactly one reference source, and no `parameters`. */
37
+ export declare function isCleanFilterLeaf(value: unknown): value is Record<string, unknown>;
38
+ /** A canonical leaf: an ordered `parameters` tuple and no clean inline key. */
39
+ export declare function isCanonicalFilterLeaf(value: unknown): value is Record<string, unknown>;
40
+ /**
41
+ * A leaf carrying both encodings is ambiguous about which operand is the
42
+ * predicate, so it is rejected rather than guessed.
43
+ */
44
+ export declare function assertLeafEncodingNotMixed(leaf: Record<string, unknown>): void;
45
+ /**
46
+ * A leaf that is clean-encoded but not a valid clean leaf. Called only once
47
+ * `isCleanFilterLeaf` has rejected it, so that an incomplete reference is
48
+ * reported rather than silently reinterpreted as an empty canonical leaf.
49
+ */
50
+ export declare function assertCleanLeafIsComplete(leaf: Record<string, unknown>): void;
51
+ export declare function isFilterClause(value: unknown): value is 'where' | 'having';
52
+ export declare function assertFilterNestingDepth(depth: number): void;
53
+ /** Classifies a filter payload for diagnostics. Never throws. */
54
+ export declare function detectFiltersFormat(input: unknown): DetectedFiltersFormat;
@@ -0,0 +1,52 @@
1
+ import type { ItemFilterGroup } from '@luzmo/dashboard-contents-types';
2
+ import type { CleanFilterClauseGroup, FilterGroup as EditFilterGroup, FiltersFormat, FiltersInput, FiltersOutput } from '../types';
3
+ export { detectFiltersFormat, FilterUnrepresentableError, MAX_FILTER_NESTING_DEPTH } from './filter-format';
4
+ export type { DetectedFiltersFormat } from './filter-format';
5
+ export interface TransformFiltersOptions {
6
+ /** `canonical` (default) emits `ItemFilterGroup[]`; `clean` emits `CleanFilterClauseGroup[]`. */
7
+ format?: FiltersFormat;
8
+ }
9
+ /**
10
+ * Normalize a group condition to the lowercase `'and' | 'or'` contract.
11
+ * Accepts legacy uppercase `'AND' | 'OR'` values.
12
+ */
13
+ export declare function toLogicalCondition(condition: string | undefined): ItemFilterGroup['condition'];
14
+ /**
15
+ * Transform EditFilterGroup from filters component into the format
16
+ * expected by luzmo-embed-viz-item (ItemFilterGroup[]), or into the clean
17
+ * clause groups published as `ItemFilterOutput` / `DashboardFilterOutput`.
18
+ *
19
+ * @param filters - Filter group in the internal/legacy filters format
20
+ * @param options - `format: 'clean'` opts into clean clause-group output
21
+ * @returns Filter groups in the requested public format
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const vizItemFilters = transformFilters(legacyFiltersGroup);
26
+ * vizItem.filters = vizItemFilters;
27
+ *
28
+ * const cleanFilters = transformFilters(legacyFiltersGroup, { format: 'clean' });
29
+ * ```
30
+ */
31
+ export declare function transformFilters(filters: EditFilterGroup | null | undefined): ItemFilterGroup[];
32
+ export declare function transformFilters(filters: EditFilterGroup | null | undefined, options: {
33
+ format: 'clean';
34
+ }): CleanFilterClauseGroup[];
35
+ export declare function transformFilters(filters: EditFilterGroup | null | undefined, options: {
36
+ format?: 'canonical';
37
+ }): ItemFilterGroup[];
38
+ export declare function transformFilters(filters: EditFilterGroup | null | undefined, options?: TransformFiltersOptions): FiltersOutput;
39
+ /**
40
+ * Transform filter groups from luzmo-embed-viz-item format into the format
41
+ * used internally by luzmo-filters.
42
+ *
43
+ * Accepts both halves of the public `ItemFilterOutput` / `DashboardFilterOutput`
44
+ * unions: canonical `ItemFilterGroup[]` and clean clause groups with flattened
45
+ * leaves. Nested `and` / `or` groups are preserved, never flattened.
46
+ *
47
+ * @param filters - Filter groups from viz-item filters property or getFilters()
48
+ * @returns FilterGroup array in the internal filters format
49
+ * @throws FilterUnrepresentableError when a leaf mixes both encodings, matches
50
+ * neither a complete clean nor a complete canonical encoding, or nesting is too deep
51
+ */
52
+ export declare function reverseTransformFilters(filters: FiltersInput | null | undefined): EditFilterGroup[];
@@ -0,0 +1,65 @@
1
+ import type { ItemFilterGroup, ItemFilterParameterDefinition, ItemFilterProperties } from '@luzmo/dashboard-contents-types';
2
+ import type { CleanFilter, CleanFilterClauseGroup, CleanFilterGroup, CleanRetrievedFilterGroup, DashboardFilterOutput, ItemFilterOutput } from '@luzmo/embed';
3
+ export type FilterParameterType = 'numeric' | 'datetime' | 'hierarchy' | 'array[numeric]' | 'array[datetime]' | 'array[hierarchy]';
4
+ export type FilterParameter = Omit<ItemFilterParameterDefinition, 'type'> & {
5
+ type: FilterParameterType;
6
+ };
7
+ export interface FilterParameterEventDetail {
8
+ parameter: FilterParameter;
9
+ }
10
+ export type { CleanFilter, CleanFilterClauseGroup, CleanFilterGroup, CleanRetrievedFilterGroup, DashboardFilterOutput, ItemFilterOutput };
11
+ /** Clause owned by a top-level clean filter group. Nested groups inherit it. */
12
+ export type FilterClause = 'where' | 'having';
13
+ /** Output format for `luzmo-filters-changed` and `transformFilters`. */
14
+ export type FiltersFormat = 'canonical' | 'clean';
15
+ /** Presentation of `luzmo-filters`. `rich` is the editor; `text` and `outline` are read-only views. */
16
+ export type FiltersDisplay = 'rich' | 'text' | 'outline';
17
+ /**
18
+ * Every filter array `luzmo-filters` and `reverseTransformFilters` accept: both
19
+ * halves of the public `ItemFilterOutput` / `DashboardFilterOutput` unions.
20
+ */
21
+ export type FiltersInput = ItemFilterOutput | DashboardFilterOutput;
22
+ /** Every filter array `luzmo-filters` and `transformFilters` can produce. */
23
+ export type FiltersOutput = ItemFilterGroup[] | CleanFilterClauseGroup[];
24
+ /**
25
+ * Detail of `luzmo-filters-changed`, discriminated by `format` so a consumer
26
+ * that never opts into clean output keeps the narrow `ItemFilterGroup[]` type.
27
+ */
28
+ export type FiltersChangedEventDetail = {
29
+ format: 'canonical';
30
+ filters: ItemFilterGroup[];
31
+ } | {
32
+ format: 'clean';
33
+ filters: CleanFilterClauseGroup[];
34
+ };
35
+ export interface FilterCondition {
36
+ expression?: string;
37
+ parameters?: unknown[];
38
+ /**
39
+ * Canonical leaf metadata, preserved across ingest, edit, and export so that
40
+ * `properties.type` (clause), `properties.ignore` (`ignoredItemIds`), and
41
+ * `properties.id` survive a round trip. Never part of clean output.
42
+ */
43
+ properties?: ItemFilterProperties;
44
+ }
45
+ /**
46
+ * Nested filter group used by the `luzmo-filters` editor.
47
+ *
48
+ * `condition` uses the same lowercase `'and' | 'or'` values as `ItemFilterGroup`.
49
+ * Nested groups live in `filters`; the public `ItemFilterGroup` shape uses `subGroups`.
50
+ *
51
+ * Every member below `filters` is optional metadata carried through from the
52
+ * ingested group. Only `id` and `clause` reach clean output; the rest stay internal.
53
+ */
54
+ export interface FilterGroup {
55
+ condition: ItemFilterGroup['condition'];
56
+ filters: (FilterCondition | FilterGroup)[];
57
+ id?: string;
58
+ clause?: FilterClause;
59
+ origin?: ItemFilterGroup['origin'];
60
+ datasetId?: string;
61
+ vizId?: string;
62
+ itemId?: string;
63
+ isDrilldown?: boolean;
64
+ type?: 'injected';
65
+ }
@@ -0,0 +1,66 @@
1
+ import '@luzmo/lucero/icon';
2
+ import '@luzmo/lucero/progress-circle';
3
+ import { type PropertyValues, type TemplateResult } from 'lit';
4
+ import { LuzmoFormulaBase } from '../../utils/formula/base/formula-base';
5
+ import { FormulaDisplayStore } from '../../utils/formula/store/formula-display-store';
6
+ /**
7
+ * @customElement luzmo-formula
8
+ * @description A read-only display of a formula. The default `display="rich"`
9
+ * renders the expression as inline column / aggregation pills (no CodeMirror);
10
+ * `display="text"` renders it as plain text with an inline column-type icon per
11
+ * column reference. Column references resolve to their names from the datasets
12
+ * provided via `datasetsDataFields` or fetched from the Luzmo API via
13
+ * `dataset-ids` (+ auth). To edit a formula use `luzmo-formula-field` (a single
14
+ * field) or `luzmo-formula-editor` (the full builder with lists).
15
+ *
16
+ * @fires {CustomEvent<ExpressionChangedEventDetail>} luzmo-expression-changed - Fired (debounced) when the formula expression changes; `detail.expression` holds the new expression.
17
+ * @fires {CustomEvent<DatasetsErrorEventDetail>} luzmo-datasets-error - Fired when fetching datasets by id fails.
18
+ */
19
+ export declare class LuzmoFormula extends LuzmoFormulaBase {
20
+ static styles: import("lit").CSSResult;
21
+ /**
22
+ * Rendering mode. `rich` (default) renders read-only column / aggregation
23
+ * pills; `text` renders plain text with an inline type icon per column. Both
24
+ * are always read-only.
25
+ */
26
+ display: 'rich' | 'text';
27
+ private readonly _groupingDataMap;
28
+ /** A display uses the lightweight, CodeMirror-free store. */
29
+ protected _createStore(): FormulaDisplayStore;
30
+ /** A display never loads (or needs) the CodeMirror input. */
31
+ protected _shouldLoadInput(): boolean;
32
+ /** A display is read-only and never emits expression changes. */
33
+ protected _canEmitExpression(): boolean;
34
+ /**
35
+ * Parses the expression into aggregation widgets for the `rich` mode so the
36
+ * recursive renderer can resolve nested content. The `text` mode renders the
37
+ * raw expression directly, so it needs no store transform.
38
+ */
39
+ protected _applyExternalExpression(): void;
40
+ protected willUpdate(changedProperties: PropertyValues): void;
41
+ protected render(): TemplateResult;
42
+ private _renderPillFormula;
43
+ /**
44
+ * Recursively renders an aggregation-widget-syntax string: column references
45
+ * become column pills, aggregation placeholders become read-only aggregation
46
+ * pills (with their nested content rendered recursively) and everything else
47
+ * (operators, parentheses, literals) renders as plain text.
48
+ */
49
+ private _renderPillNodes;
50
+ private _renderOperatorText;
51
+ /**
52
+ * Renders a column reference as an inline column pill (data-type icon +
53
+ * localized label). The markup + styles are duplicated here and in the
54
+ * CodeMirror column-pill widget; only the icon/label resolution is shared (via
55
+ * `resolveColumnPresentation`). While datasets are still loading and the column
56
+ * is unresolved, a spinner is shown instead of the (raw column id) label.
57
+ */
58
+ private _renderColumnPill;
59
+ private _renderAggregationPill;
60
+ /**
61
+ * Renders the expression as plain text, replacing every `{datasetId:columnId}`
62
+ * reference with an inline type icon + column name.
63
+ */
64
+ private _renderTextFormula;
65
+ private _renderColumnReference;
66
+ }
@@ -0,0 +1,7 @@
1
+ import { LuzmoFormula } from './formula';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-formula': LuzmoFormula;
5
+ }
6
+ }
7
+ export { LuzmoFormula } from './formula';
@@ -0,0 +1,79 @@
1
+ import { type Completion } from '@codemirror/autocomplete';
2
+ import { type PropertyValues, type TemplateResult } from 'lit';
3
+ import { LuzmoElement } from '../../utils/base';
4
+ import type { FormulaEditorStore } from '../../utils/formula/store/formula-editor-store';
5
+ import type { FormulaEditorDataset } from '../../types/formula.types';
6
+ import '@luzmo/lucero/progress-circle';
7
+ import './pills/formula-empty-argument-pill';
8
+ import './pills/formula-aggregation';
9
+ declare const LuzmoFormulaCodeMirror_base: (new (...args: any[]) => {
10
+ language: string;
11
+ }) & typeof LuzmoElement;
12
+ /**
13
+ * @customElement luzmo-formula-codemirror
14
+ * @description Internal CodeMirror-backed expression engine for the formula
15
+ * family. Renders columns, empty arguments and aggregation widgets as inline pills,
16
+ * supports drag-to-insert at the cursor and autocompletion. Used as the editing
17
+ * surface of `luzmo-formula-field` and `luzmo-formula-editor`, and inside nested
18
+ * aggregation widgets. Not part of the public API - prefer `luzmo-formula-field`
19
+ * / `luzmo-formula-editor`, which wire its store + autocompletion for you.
20
+ *
21
+ * @fires {CustomEvent<{ content: string }>} luzmo-input-content-changed - Fired when the editor content changes.
22
+ * @fires {CustomEvent<void>} luzmo-input-focused - Fired when the editor gains focus.
23
+ */
24
+ export declare class LuzmoFormulaCodeMirror extends LuzmoFormulaCodeMirror_base {
25
+ static styles: import("lit").CSSResult;
26
+ /** The shared formula editor store. */
27
+ store?: FormulaEditorStore;
28
+ /** Id of the aggregation widget this input belongs to, or null for the root editor. */
29
+ aggregationWidgetId: string | null;
30
+ /** Datasets used to render column pills. */
31
+ datasets: FormulaEditorDataset[];
32
+ contentLanguage: string;
33
+ placeholder: string;
34
+ readonly: boolean;
35
+ singleLine: boolean;
36
+ hasError: boolean;
37
+ editorHeight?: string;
38
+ /** Number of text lines the input is sized to start with. Defaults to 3. */
39
+ rows: number;
40
+ /** Maximum number of text lines before a scrollbar appears (only when `grows`). */
41
+ maxRows?: number;
42
+ /** Whether the input grows in height with its content (up to `maxRows` if set). */
43
+ grows: boolean;
44
+ /** The autocompletion options to offer. */
45
+ autoCompletionList: Completion[];
46
+ private _view?;
47
+ private _pendingContent;
48
+ private readonly _themeCompartment;
49
+ private readonly _readonlyCompartment;
50
+ get content(): string;
51
+ /** Replaces the whole editor content. */
52
+ setContent(content: string): void;
53
+ focusEditor(): void;
54
+ /** Forces the inline pill decorations to be recomputed. */
55
+ refresh(): void;
56
+ disconnectedCallback(): void;
57
+ /** Rebuilds pill decorations when the store signals a refresh (e.g. loading state changed). */
58
+ private _handleStoreRefresh;
59
+ protected firstUpdated(_changedProperties: PropertyValues): void;
60
+ protected updated(changedProperties: PropertyValues): void;
61
+ /**
62
+ * Read-only extensions, kept in a compartment so toggling `readonly` after the
63
+ * view is created can reconfigure them. `readOnly` blocks edits but the view
64
+ * stays focusable and keeps painting a blinking caret; `editable.of(false)`
65
+ * also drops the caret (and the contenteditable), which is what a read-only
66
+ * rendering should show.
67
+ */
68
+ private _readonlyExtensions;
69
+ private _buildDynamicTheme;
70
+ private _buildExtensions;
71
+ private _buildDecorations;
72
+ private _autoComplete;
73
+ private _cleanupDroppable;
74
+ private _attachDroppable;
75
+ private _canDrop;
76
+ private _handleDrop;
77
+ protected render(): TemplateResult;
78
+ }
79
+ export {};
@@ -0,0 +1,7 @@
1
+ import { LuzmoFormulaCodeMirror } from './formula-codemirror';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-formula-codemirror': LuzmoFormulaCodeMirror;
5
+ }
6
+ }
7
+ export { LuzmoFormulaCodeMirror } from './formula-codemirror';
@@ -0,0 +1,125 @@
1
+ import '@luzmo/lucero/icon';
2
+ import '@luzmo/lucero/overlay';
3
+ import '@luzmo/lucero/popover';
4
+ import '@luzmo/lucero/select';
5
+ import { type PropertyValues, type TemplateResult } from 'lit';
6
+ import { LuzmoElement } from '../../../../utils/base';
7
+ import type { FormulaEditorStore } from '../../../../utils/formula/store/formula-editor-store';
8
+ import { type AggregationWidgetConfig } from '../../../../types/formula.types';
9
+ declare const LuzmoFormulaAggregation_base: (new (...args: any[]) => {
10
+ language: string;
11
+ }) & typeof LuzmoElement;
12
+ /**
13
+ * @customElement luzmo-formula-aggregation
14
+ * @description A nested aggregation widget rendered inline inside the formula
15
+ * editor: an aggregation-function selector, a grouping-scope selector, a nested
16
+ * expression input and (for `GROUPINEX`) an include / exclude column panel.
17
+ */
18
+ export declare class LuzmoFormulaAggregation extends LuzmoFormulaAggregation_base {
19
+ static styles: import("lit").CSSResult;
20
+ /** Configuration for this aggregation widget (set by the CodeMirror widget). */
21
+ config: AggregationWidgetConfig['data'];
22
+ /** The shared formula editor store (set by the CodeMirror widget). */
23
+ store?: FormulaEditorStore;
24
+ private _nestedCodeMirror?;
25
+ private _groupingOverlay?;
26
+ private _functionSelect?;
27
+ /** The element the focus/blur listeners are currently bound to, for clean teardown. */
28
+ private _functionFocusTarget?;
29
+ /**
30
+ * Explicit page override for the grouping popover. When `null` the page is
31
+ * derived from the current grouping (include/exclude scope -> the detail page,
32
+ * any other scope -> the scope chooser). Deriving the page - rather than
33
+ * resetting a stored page on open/close - keeps the (still hidden) popover on
34
+ * the correct page, so reopening a configured include/exclude pill no longer
35
+ * flashes the scope chooser for a frame.
36
+ */
37
+ private _groupingPageOverride;
38
+ /** Autocompletion options offered while typing inside this aggregation's nested input. */
39
+ private _autoCompletionList;
40
+ /** Whether the CodeMirror-backed nested input module has finished loading. */
41
+ private _codeMirrorLoaded;
42
+ /**
43
+ * Whether the aggregation-function select currently holds keyboard-driven focus.
44
+ * The select's focusable button lives in its shadow DOM, so a pure CSS
45
+ * `:focus-visible` can't reach it from here; instead we read the browser's own
46
+ * `:focus-visible` verdict off the focused element so the focus ring only shows
47
+ * for keyboard users (not after a mouse switch).
48
+ */
49
+ private _functionKeyboardFocus;
50
+ private readonly _groupingTriggerId;
51
+ private readonly _aggregationDataMap;
52
+ private readonly _groupingDataMap;
53
+ connectedCallback(): void;
54
+ disconnectedCallback(): void;
55
+ /**
56
+ * Binds the keyboard-focus tracking to the `.function-select` element (not the
57
+ * host). The select swallows the bubbling focusin/focusout, so we use the
58
+ * capturing focus/blur events; and they must be bound to `.function-select`
59
+ * rather than the host so focus moving *within* the pill (e.g. Shift+Tab from
60
+ * the nested value input into the select) still crosses into the listener's
61
+ * subtree and is detected. Idempotent and safe to call before first render.
62
+ */
63
+ private _bindFunctionFocusListeners;
64
+ private _unbindFunctionFocusListeners;
65
+ private _handleFunctionFocus;
66
+ private _handleFunctionBlur;
67
+ private _handleWidgetsChanged;
68
+ /**
69
+ * Datasets reach the pill once (via `config.linkedDatasets`) when the widget
70
+ * is created. When the editor loads its datasets asynchronously the store is
71
+ * updated later, so this re-resolves the nested column labels and completions.
72
+ */
73
+ private _handleDatasetsRefresh;
74
+ /** The datasets to use for the nested input: the freshly loaded store ones take precedence. */
75
+ private get _linkedDatasets();
76
+ private _recomputeAutoCompletion;
77
+ private get _widget();
78
+ /** The grouping popover page: an explicit override (e.g. after pressing back), else derived from the grouping scope. */
79
+ private get _groupingPage();
80
+ protected willUpdate(changedProperties: PropertyValues): void;
81
+ /** Lazily loads the CodeMirror-backed input used for this aggregation's nested expression. */
82
+ private _ensureCodeMirrorLoaded;
83
+ protected firstUpdated(): void;
84
+ protected updated(_changedProperties: PropertyValues): void;
85
+ /**
86
+ * When this pill was just created via a list insert / autocomplete, move the
87
+ * cursor into its nested input so the user can immediately keep typing.
88
+ */
89
+ private _focusNestedIfPending;
90
+ private _updateWidget;
91
+ private _handleFunctionChange;
92
+ private _handleGroupingOptionClick;
93
+ private _handleGroupingBack;
94
+ private _handleGroupingMenuOpened;
95
+ private _handleGroupingMenuClosed;
96
+ /**
97
+ * Dismiss the grouping overlay on an outside pointerdown.
98
+ *
99
+ * The overlay is a `type="manual"` popover (see render) so the browser's native
100
+ * Popover-API light-dismiss never collapses it when a nested include / exclude
101
+ * select opens its own `auto` popover - the bug this works around. Manual
102
+ * overlays also opt out of the overlay stack's outside-pointer dismissal, so we
103
+ * reinstate it here. Clicks inside the popover - which include the DOM-nested
104
+ * include / exclude selects and their dropdowns - keep it open; a pointerdown on
105
+ * the trigger closes it (the click controller suppresses its own toggle while
106
+ * the overlay is already open). Escape still closes it through the stack's
107
+ * keydown handler, which does dismiss manual overlays.
108
+ */
109
+ private _handleDocumentPointerdown;
110
+ /**
111
+ * Whether a pointerdown landed inside the grouping popover content. The popover
112
+ * content is promoted to the top layer (native popover) but stays in the DOM
113
+ * tree, so we match the popover / panel by class along the composed path:
114
+ * after a nested select opens (and re-renders) an element reference can stop
115
+ * resolving, but the elements are still present in the click's composed path.
116
+ */
117
+ private _isPointerInsidePopover;
118
+ private _closeGroupingMenu;
119
+ private _handleNestedContentChanged;
120
+ private _handleIncludeExcludeChange;
121
+ private _renderGroupingTypesPage;
122
+ private _renderIncludeExcludePage;
123
+ protected render(): TemplateResult;
124
+ }
125
+ export {};
@@ -0,0 +1,7 @@
1
+ import { LuzmoFormulaAggregation } from './formula-aggregation';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-formula-aggregation': LuzmoFormulaAggregation;
5
+ }
6
+ }
7
+ export { LuzmoFormulaAggregation } from './formula-aggregation';
@@ -0,0 +1,28 @@
1
+ import { type PropertyValues, type TemplateResult } from 'lit';
2
+ import { LuzmoElement } from '../../../../utils/base';
3
+ import type { FormulaEditorStore } from '../../../../utils/formula/store/formula-editor-store';
4
+ declare const LuzmoFormulaEmptyArgumentPill_base: (new (...args: any[]) => {
5
+ language: string;
6
+ }) & typeof LuzmoElement;
7
+ /**
8
+ * @customElement luzmo-formula-empty-argument-pill
9
+ * @description An empty argument rendered inline inside the formula editor. Accepts
10
+ * dropped columns / functions / aggregations and lets the user type a literal value.
11
+ */
12
+ export declare class LuzmoFormulaEmptyArgumentPill extends LuzmoFormulaEmptyArgumentPill_base {
13
+ static styles: import("lit").CSSResult;
14
+ emptyArgumentId: string;
15
+ parentAggregationWidgetId: string | null;
16
+ store?: FormulaEditorStore;
17
+ private _cleanupDroppable;
18
+ connectedCallback(): void;
19
+ disconnectedCallback(): void;
20
+ protected firstUpdated(_changedProperties: PropertyValues): void;
21
+ private _attachDroppable;
22
+ private _canDrop;
23
+ private _handleDrop;
24
+ private _handleFocus;
25
+ private _handleInput;
26
+ protected render(): TemplateResult;
27
+ }
28
+ export {};
@@ -0,0 +1,7 @@
1
+ import { LuzmoFormulaEmptyArgumentPill } from './formula-empty-argument-pill';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-formula-empty-argument-pill': LuzmoFormulaEmptyArgumentPill;
5
+ }
6
+ }
7
+ export { LuzmoFormulaEmptyArgumentPill } from './formula-empty-argument-pill';
@@ -0,0 +1,38 @@
1
+ import '@luzmo/lucero/action-button';
2
+ import '@luzmo/lucero/field-label';
3
+ import '@luzmo/lucero/icon';
4
+ import '@luzmo/lucero/select';
5
+ import '@luzmo/lucero/tooltip';
6
+ import { type TemplateResult } from 'lit';
7
+ import { type ElementSize } from '../../../utils/base';
8
+ import type { FormulaEditorDataset } from '../../../types/formula.types';
9
+ export interface IncludeExcludePanelParams {
10
+ /** The linked datasets whose columns can be included / excluded. */
11
+ datasets: FormulaEditorDataset[];
12
+ /** Columns to always group by, as full `datasetId:columnId` references. */
13
+ includedColumns: string[];
14
+ /** Columns to never group by, as full `datasetId:columnId` references. */
15
+ excludedColumns: string[];
16
+ /** Language used to localize column names. */
17
+ contentLanguage: string;
18
+ /** Size of the surrounding editor. */
19
+ size?: ElementSize;
20
+ /** Renders the picker read-only (no adding, removing or moving). */
21
+ readonly?: boolean;
22
+ /** Shows a back button in the header to return to the grouping scope chooser. */
23
+ showBack?: boolean;
24
+ /** Called with the next included / excluded selection whenever it changes. */
25
+ onChange: (includedColumns: string[], excludedColumns: string[]) => void;
26
+ /** Called when the back button is activated. */
27
+ onBack: () => void;
28
+ }
29
+ /**
30
+ * Renders the included / excluded column picker for a `GROUPINEX` aggregation
31
+ * grouping. Replaces the former `luzmo-formula-include-exclude-panel` element:
32
+ * stateless markup driven by the aggregation pill, which owns the widget update.
33
+ *
34
+ * The root carries the `include-exclude-panel` class so the aggregation pill can
35
+ * detect pointerdowns inside the (DOM-nested) panel and keep its grouping
36
+ * popover open.
37
+ */
38
+ export declare function renderIncludeExcludePanel(params: IncludeExcludePanelParams): TemplateResult;
@@ -0,0 +1,53 @@
1
+ import type { Placement } from '@luzmo/lucero';
2
+ import '@luzmo/lucero/icon';
3
+ import '@luzmo/lucero/tooltip';
4
+ import { type PropertyValues, type TemplateResult } from 'lit';
5
+ import { LuzmoElement } from '../../utils/base';
6
+ declare const LuzmoFormulaDraggableField_base: typeof LuzmoElement & {
7
+ new (...args: any[]): import("../../utils/base/sized-mixin").SizedElementInterface;
8
+ prototype: import("../../utils/base/sized-mixin").SizedElementInterface;
9
+ };
10
+ /**
11
+ * @customElement luzmo-formula-draggable-field
12
+ * @description A draggable field that can be dragged onto a drop target or
13
+ * activated (double-click / keyboard) to insert its value. An optional icon can
14
+ * be slotted (slot name `icon`) after the drag handle. A tooltip is shown on
15
+ * hover / focus when either the `description` property is set or rich content is
16
+ * provided via the `tooltip` slot (the slot takes precedence); its position is
17
+ * controlled by `tooltip-placement`. The `highlight` variant background can be
18
+ * themed via `--luzmo-formula-draggable-field-background`.
19
+ *
20
+ * Slots: `icon` (optional icon after the drag handle), `tooltip` (optional rich
21
+ * tooltip content shown on hover / focus).
22
+ *
23
+ * @fires {CustomEvent<FormulaDraggableFieldActivateEventDetail>} luzmo-formula-draggable-field-activate - Fired on double-click or keyboard activation.
24
+ * @fires {CustomEvent<FormulaDraggableFieldDescribeEventDetail>} luzmo-formula-draggable-field-describe - Fired on hover / focus.
25
+ */
26
+ export declare class LuzmoFormulaDraggableField extends LuzmoFormulaDraggableField_base {
27
+ static styles: import("lit").CSSResult;
28
+ /** Free-form, consumer-defined category carried in the drag payload and events. */
29
+ kind: string;
30
+ /** Identifier carried in the drag payload and events. */
31
+ value: string;
32
+ label: string;
33
+ /** Optional explanation shown as a hover / focus tooltip on the field. */
34
+ description: string;
35
+ /** Placement of the hover / focus tooltip relative to the field. */
36
+ tooltipPlacement: Placement;
37
+ /** Visual variant: `default` (transparent) or `highlight` (filled background). */
38
+ variant: 'default' | 'highlight';
39
+ disabled: boolean;
40
+ private _hasIcon;
41
+ private _hasTooltipSlot;
42
+ private _cleanupDraggable;
43
+ private _handleIconSlotChange;
44
+ private _handleTooltipSlotChange;
45
+ disconnectedCallback(): void;
46
+ protected firstUpdated(_changedProperties: PropertyValues): void;
47
+ private _buildDragPreview;
48
+ private _handleClick;
49
+ private _activate;
50
+ private _describe;
51
+ protected render(): TemplateResult;
52
+ }
53
+ export {};
@@ -0,0 +1,8 @@
1
+ import { LuzmoFormulaDraggableField } from './formula-draggable-field';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-formula-draggable-field': LuzmoFormulaDraggableField;
5
+ }
6
+ }
7
+ export { LuzmoFormulaDraggableField } from './formula-draggable-field';
8
+ export type { FormulaDraggableFieldPayload, FormulaDraggableFieldActivateEventDetail, FormulaDraggableFieldDescribeEventDetail } from './types';