@luzmo/analytics-components-kit 1.0.8-beta.6 → 1.0.8-beta.7

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 (314) hide show
  1. package/components/index.cjs +1 -1
  2. package/components/index.js +1 -1
  3. package/components/viz-item-menu/index.cjs +1 -1
  4. package/components/viz-item-menu/index.js +1 -1
  5. package/components/viz-item-menu/viz-item-menu.d.ts +3 -0
  6. package/components/{viz-item-menu-Ht6bklNL.js → viz-item-menu-B7yRaSAU.js} +1 -1
  7. package/components/{viz-item-menu-XHh4qhtn.cjs → viz-item-menu-hLdU-02Q.cjs} +1 -1
  8. package/custom-elements.json +14 -0
  9. package/package.json +1 -1
  10. package/react/package.json +2 -2
  11. package/angular/README.md +0 -40
  12. package/angular/components/ai-chat-empty-state.ts +0 -98
  13. package/angular/components/ai-chat.ts +0 -440
  14. package/angular/components/ai-interaction-textarea.ts +0 -283
  15. package/angular/components/data-field-level.ts +0 -130
  16. package/angular/components/data-field-panel.ts +0 -256
  17. package/angular/components/data-field.ts +0 -130
  18. package/angular/components/data-fields-select.ts +0 -212
  19. package/angular/components/dataset-icon.ts +0 -83
  20. package/angular/components/dataset-selector-list.ts +0 -147
  21. package/angular/components/dataset-selector-row.ts +0 -198
  22. package/angular/components/display-settings-binning.ts +0 -92
  23. package/angular/components/display-settings-datetime.ts +0 -100
  24. package/angular/components/display-settings-grand-totals.ts +0 -92
  25. package/angular/components/display-settings-numeric.ts +0 -113
  26. package/angular/components/display-settings-period-over-period.ts +0 -107
  27. package/angular/components/display-settings.ts +0 -227
  28. package/angular/components/filter-expression-picker.ts +0 -168
  29. package/angular/components/filter-item.ts +0 -175
  30. package/angular/components/filter-parameter-picker.ts +0 -155
  31. package/angular/components/filter-value-picker-datetime.ts +0 -125
  32. package/angular/components/filter-value-picker-hierarchy.ts +0 -146
  33. package/angular/components/filter-value-picker-numeric.ts +0 -146
  34. package/angular/components/filter-value-picker.ts +0 -160
  35. package/angular/components/filters.ts +0 -209
  36. package/angular/components/formula-editor.ts +0 -229
  37. package/angular/components/formula-field.ts +0 -198
  38. package/angular/components/formula.ts +0 -170
  39. package/angular/components/interactive-viz-item.ts +0 -186
  40. package/angular/components/item-grid-item-actions-menu.ts +0 -113
  41. package/angular/components/item-grid.ts +0 -242
  42. package/angular/components/item-option-action-button-group.ts +0 -105
  43. package/angular/components/item-option-color-palette-picker.ts +0 -126
  44. package/angular/components/item-option-color-picker.ts +0 -134
  45. package/angular/components/item-option-color-range.ts +0 -168
  46. package/angular/components/item-option-guidelines.ts +0 -84
  47. package/angular/components/item-option-multi-language-field.ts +0 -133
  48. package/angular/components/item-option-number-field.ts +0 -161
  49. package/angular/components/item-option-panel.ts +0 -149
  50. package/angular/components/item-option-picker.ts +0 -120
  51. package/angular/components/item-option-position-picker.ts +0 -98
  52. package/angular/components/item-option-positions-number-field.ts +0 -140
  53. package/angular/components/item-option-radio-button-group.ts +0 -119
  54. package/angular/components/item-option-slider.ts +0 -126
  55. package/angular/components/item-option-switch.ts +0 -98
  56. package/angular/components/item-option-text-field.ts +0 -112
  57. package/angular/components/item-option.ts +0 -163
  58. package/angular/components/item-slot-drop-panel.ts +0 -236
  59. package/angular/components/item-slot-drop.ts +0 -231
  60. package/angular/components/item-slot-picker-panel.ts +0 -299
  61. package/angular/components/item-slot-picker.ts +0 -241
  62. package/angular/components/slot-menu-list.ts +0 -121
  63. package/angular/components/slot-menu.ts +0 -304
  64. package/angular/components/viz-item-menu.ts +0 -118
  65. package/angular/esm/components/ai-chat-empty-state.d.ts +0 -39
  66. package/angular/esm/components/ai-chat-empty-state.js +0 -99
  67. package/angular/esm/components/ai-chat.d.ts +0 -147
  68. package/angular/esm/components/ai-chat.js +0 -455
  69. package/angular/esm/components/ai-interaction-textarea.d.ts +0 -106
  70. package/angular/esm/components/ai-interaction-textarea.js +0 -305
  71. package/angular/esm/components/data-field-level.d.ts +0 -50
  72. package/angular/esm/components/data-field-level.js +0 -129
  73. package/angular/esm/components/data-field-panel.d.ts +0 -86
  74. package/angular/esm/components/data-field-panel.js +0 -268
  75. package/angular/esm/components/data-field.d.ts +0 -50
  76. package/angular/esm/components/data-field.js +0 -129
  77. package/angular/esm/components/data-fields-select.d.ts +0 -81
  78. package/angular/esm/components/data-fields-select.js +0 -227
  79. package/angular/esm/components/dataset-icon.d.ts +0 -34
  80. package/angular/esm/components/dataset-icon.js +0 -86
  81. package/angular/esm/components/dataset-selector-list.d.ts +0 -56
  82. package/angular/esm/components/dataset-selector-list.js +0 -155
  83. package/angular/esm/components/dataset-selector-row.d.ts +0 -70
  84. package/angular/esm/components/dataset-selector-row.js +0 -197
  85. package/angular/esm/components/display-settings-binning.d.ts +0 -37
  86. package/angular/esm/components/display-settings-binning.js +0 -91
  87. package/angular/esm/components/display-settings-datetime.d.ts +0 -40
  88. package/angular/esm/components/display-settings-datetime.js +0 -99
  89. package/angular/esm/components/display-settings-grand-totals.d.ts +0 -37
  90. package/angular/esm/components/display-settings-grand-totals.js +0 -91
  91. package/angular/esm/components/display-settings-numeric.d.ts +0 -45
  92. package/angular/esm/components/display-settings-numeric.js +0 -115
  93. package/angular/esm/components/display-settings-period-over-period.d.ts +0 -44
  94. package/angular/esm/components/display-settings-period-over-period.js +0 -107
  95. package/angular/esm/components/display-settings.d.ts +0 -83
  96. package/angular/esm/components/display-settings.js +0 -231
  97. package/angular/esm/components/filter-expression-picker.d.ts +0 -64
  98. package/angular/esm/components/filter-expression-picker.js +0 -179
  99. package/angular/esm/components/filter-item.d.ts +0 -63
  100. package/angular/esm/components/filter-item.js +0 -187
  101. package/angular/esm/components/filter-parameter-picker.d.ts +0 -56
  102. package/angular/esm/components/filter-parameter-picker.js +0 -151
  103. package/angular/esm/components/filter-value-picker-datetime.d.ts +0 -47
  104. package/angular/esm/components/filter-value-picker-datetime.js +0 -131
  105. package/angular/esm/components/filter-value-picker-hierarchy.d.ts +0 -53
  106. package/angular/esm/components/filter-value-picker-hierarchy.js +0 -155
  107. package/angular/esm/components/filter-value-picker-numeric.d.ts +0 -53
  108. package/angular/esm/components/filter-value-picker-numeric.js +0 -155
  109. package/angular/esm/components/filter-value-picker.d.ts +0 -57
  110. package/angular/esm/components/filter-value-picker.js +0 -171
  111. package/angular/esm/components/filters.d.ts +0 -75
  112. package/angular/esm/components/filters.js +0 -215
  113. package/angular/esm/components/formula-editor.d.ts +0 -78
  114. package/angular/esm/components/formula-editor.js +0 -236
  115. package/angular/esm/components/formula-field.d.ts +0 -70
  116. package/angular/esm/components/formula-field.js +0 -209
  117. package/angular/esm/components/formula.d.ts +0 -60
  118. package/angular/esm/components/formula.js +0 -177
  119. package/angular/esm/components/interactive-viz-item.d.ts +0 -63
  120. package/angular/esm/components/interactive-viz-item.js +0 -188
  121. package/angular/esm/components/item-grid-item-actions-menu.d.ts +0 -45
  122. package/angular/esm/components/item-grid-item-actions-menu.js +0 -115
  123. package/angular/esm/components/item-grid.d.ts +0 -80
  124. package/angular/esm/components/item-grid.js +0 -245
  125. package/angular/esm/components/item-option-action-button-group.d.ts +0 -41
  126. package/angular/esm/components/item-option-action-button-group.js +0 -107
  127. package/angular/esm/components/item-option-color-palette-picker.d.ts +0 -48
  128. package/angular/esm/components/item-option-color-palette-picker.js +0 -131
  129. package/angular/esm/components/item-option-color-picker.d.ts +0 -51
  130. package/angular/esm/components/item-option-color-picker.js +0 -139
  131. package/angular/esm/components/item-option-color-range.d.ts +0 -66
  132. package/angular/esm/components/item-option-color-range.js +0 -179
  133. package/angular/esm/components/item-option-guidelines.d.ts +0 -34
  134. package/angular/esm/components/item-option-guidelines.js +0 -83
  135. package/angular/esm/components/item-option-multi-language-field.d.ts +0 -50
  136. package/angular/esm/components/item-option-multi-language-field.js +0 -139
  137. package/angular/esm/components/item-option-number-field.d.ts +0 -58
  138. package/angular/esm/components/item-option-number-field.js +0 -171
  139. package/angular/esm/components/item-option-panel.d.ts +0 -54
  140. package/angular/esm/components/item-option-panel.js +0 -155
  141. package/angular/esm/components/item-option-picker.d.ts +0 -46
  142. package/angular/esm/components/item-option-picker.js +0 -123
  143. package/angular/esm/components/item-option-position-picker.d.ts +0 -39
  144. package/angular/esm/components/item-option-position-picker.js +0 -99
  145. package/angular/esm/components/item-option-positions-number-field.d.ts +0 -54
  146. package/angular/esm/components/item-option-positions-number-field.js +0 -147
  147. package/angular/esm/components/item-option-radio-button-group.d.ts +0 -45
  148. package/angular/esm/components/item-option-radio-button-group.js +0 -123
  149. package/angular/esm/components/item-option-slider.d.ts +0 -46
  150. package/angular/esm/components/item-option-slider.js +0 -131
  151. package/angular/esm/components/item-option-switch.d.ts +0 -40
  152. package/angular/esm/components/item-option-switch.js +0 -99
  153. package/angular/esm/components/item-option-text-field.d.ts +0 -44
  154. package/angular/esm/components/item-option-text-field.js +0 -115
  155. package/angular/esm/components/item-option.d.ts +0 -58
  156. package/angular/esm/components/item-option.js +0 -171
  157. package/angular/esm/components/item-slot-drop-panel.d.ts +0 -82
  158. package/angular/esm/components/item-slot-drop-panel.js +0 -249
  159. package/angular/esm/components/item-slot-drop.d.ts +0 -77
  160. package/angular/esm/components/item-slot-drop.js +0 -227
  161. package/angular/esm/components/item-slot-picker-panel.d.ts +0 -97
  162. package/angular/esm/components/item-slot-picker-panel.js +0 -309
  163. package/angular/esm/components/item-slot-picker.d.ts +0 -86
  164. package/angular/esm/components/item-slot-picker.js +0 -259
  165. package/angular/esm/components/slot-menu-list.d.ts +0 -46
  166. package/angular/esm/components/slot-menu-list.js +0 -123
  167. package/angular/esm/components/slot-menu.d.ts +0 -104
  168. package/angular/esm/components/slot-menu.js +0 -300
  169. package/angular/esm/components/viz-item-menu.d.ts +0 -42
  170. package/angular/esm/components/viz-item-menu.js +0 -111
  171. package/angular/esm/index.d.ts +0 -109
  172. package/angular/esm/index.js +0 -217
  173. package/angular/index.ts +0 -223
  174. package/angular/package.json +0 -40
  175. package/angular/tsconfig.json +0 -36
  176. package/angular/type-fallbacks.d.ts +0 -0
  177. package/angular/utils/ai-prompt/attachments.d.ts +0 -10
  178. package/angular/utils/ai-prompt/dictation.d.ts +0 -50
  179. package/angular/utils/ai-prompt/image-upload.d.ts +0 -12
  180. package/angular/utils/ai-prompt/index.d.ts +0 -6
  181. package/angular/utils/ai-prompt/tests/attachments.test.d.ts +0 -1
  182. package/angular/utils/ai-prompt/tests/dictation.test.d.ts +0 -1
  183. package/angular/utils/ai-prompt/tests/image-upload.test.d.ts +0 -1
  184. package/angular/utils/base/base.d.ts +0 -16
  185. package/angular/utils/base/focus-visible.d.ts +0 -29
  186. package/angular/utils/base/focusable.d.ts +0 -58
  187. package/angular/utils/base/index.d.ts +0 -5
  188. package/angular/utils/base/localized-mixin.d.ts +0 -22
  189. package/angular/utils/base/sized-mixin.d.ts +0 -17
  190. package/angular/utils/color/color-palettes.d.ts +0 -17
  191. package/angular/utils/color/extrapolate-color.d.ts +0 -1
  192. package/angular/utils/data/load-data-fields-for-datasets.d.ts +0 -22
  193. package/angular/utils/data-broker/index.d.ts +0 -263
  194. package/angular/utils/data-field-types/calculate-data-field-icon.d.ts +0 -12
  195. package/angular/utils/data-field-types/default-acceptable-data-field-types.d.ts +0 -1
  196. package/angular/utils/data-field-types/tests/calculate-data-field-icon.test.d.ts +0 -1
  197. package/angular/utils/drag/draggable.d.ts +0 -13
  198. package/angular/utils/drag/pragmatic-element-adapter.d.ts +0 -2
  199. package/angular/utils/drag/tests/pragmatic-element-adapter.first-import.test.d.ts +0 -1
  200. package/angular/utils/drag/tests/pragmatic-element-adapter.test.d.ts +0 -1
  201. package/angular/utils/filters/expressions.d.ts +0 -15
  202. package/angular/utils/filters/index.d.ts +0 -1
  203. package/angular/utils/formatter/calculate-duration.d.ts +0 -2
  204. package/angular/utils/formatter/decompose-numeric-format.d.ts +0 -11
  205. package/angular/utils/formatter/default-local-formats.d.ts +0 -20
  206. package/angular/utils/formatter/formats/cs.d.ts +0 -20
  207. package/angular/utils/formatter/formats/da.d.ts +0 -20
  208. package/angular/utils/formatter/formats/de.d.ts +0 -21
  209. package/angular/utils/formatter/formats/en-GB.d.ts +0 -21
  210. package/angular/utils/formatter/formats/en-US.d.ts +0 -1
  211. package/angular/utils/formatter/formats/en.d.ts +0 -1
  212. package/angular/utils/formatter/formats/es.d.ts +0 -54
  213. package/angular/utils/formatter/formats/fi.d.ts +0 -20
  214. package/angular/utils/formatter/formats/fr.d.ts +0 -54
  215. package/angular/utils/formatter/formats/he.d.ts +0 -20
  216. package/angular/utils/formatter/formats/hu.d.ts +0 -20
  217. package/angular/utils/formatter/formats/it.d.ts +0 -54
  218. package/angular/utils/formatter/formats/ja.d.ts +0 -20
  219. package/angular/utils/formatter/formats/ko.d.ts +0 -20
  220. package/angular/utils/formatter/formats/mk.d.ts +0 -20
  221. package/angular/utils/formatter/formats/nl.d.ts +0 -21
  222. package/angular/utils/formatter/formats/no.d.ts +0 -21
  223. package/angular/utils/formatter/formats/pl.d.ts +0 -20
  224. package/angular/utils/formatter/formats/pt.d.ts +0 -20
  225. package/angular/utils/formatter/formats/ru.d.ts +0 -20
  226. package/angular/utils/formatter/formats/sv.d.ts +0 -20
  227. package/angular/utils/formatter/formats/tr.d.ts +0 -21
  228. package/angular/utils/formatter/formats/zh-CN.d.ts +0 -20
  229. package/angular/utils/formatter/formats/zh-TW.d.ts +0 -20
  230. package/angular/utils/formatter/formatter.d.ts +0 -9
  231. package/angular/utils/formatter/get-dataset-name.d.ts +0 -2
  232. package/angular/utils/formatter/get-localized-name.d.ts +0 -4
  233. package/angular/utils/formatter/localize.d.ts +0 -3
  234. package/angular/utils/formatter/smart-datetime-formats.const.d.ts +0 -36
  235. package/angular/utils/formatter/tests/calculate-duration.test.d.ts +0 -1
  236. package/angular/utils/formatter/tests/decompose-numeric-format.test.d.ts +0 -1
  237. package/angular/utils/formatter/tests/default-local-formats.test.d.ts +0 -1
  238. package/angular/utils/formatter/tests/formatter.test.d.ts +0 -1
  239. package/angular/utils/formatter/tests/get-localized-name.test.d.ts +0 -1
  240. package/angular/utils/formatter/tests/localize.test.d.ts +0 -1
  241. package/angular/utils/formula/base/formula-base.d.ts +0 -117
  242. package/angular/utils/formula/base/formula-input-base.d.ts +0 -62
  243. package/angular/utils/formula/codemirror/actions.d.ts +0 -47
  244. package/angular/utils/formula/codemirror/drop-cursor.d.ts +0 -15
  245. package/angular/utils/formula/codemirror/icon-element.d.ts +0 -7
  246. package/angular/utils/formula/codemirror/parser.d.ts +0 -16
  247. package/angular/utils/formula/codemirror/tests/actions.test.d.ts +0 -1
  248. package/angular/utils/formula/codemirror/theme.d.ts +0 -20
  249. package/angular/utils/formula/codemirror/widget.d.ts +0 -18
  250. package/angular/utils/formula/config/aggregations.d.ts +0 -9
  251. package/angular/utils/formula/config/build-datasets.d.ts +0 -10
  252. package/angular/utils/formula/config/expression-helpers.d.ts +0 -42
  253. package/angular/utils/formula/config/functions.d.ts +0 -3
  254. package/angular/utils/formula/config/groupings.d.ts +0 -9
  255. package/angular/utils/formula/config/regex.d.ts +0 -39
  256. package/angular/utils/formula/config/resolve-column-presentation.d.ts +0 -19
  257. package/angular/utils/formula/config/tests/build-datasets.test.d.ts +0 -1
  258. package/angular/utils/formula/config/validate-expression.d.ts +0 -19
  259. package/angular/utils/formula/load-formula-codemirror.d.ts +0 -4
  260. package/angular/utils/formula/render-explanation-tooltip.d.ts +0 -7
  261. package/angular/utils/formula/store/formula-display-store.d.ts +0 -93
  262. package/angular/utils/formula/store/formula-editor-context.d.ts +0 -8
  263. package/angular/utils/formula/store/formula-editor-store.d.ts +0 -46
  264. package/angular/utils/formula/store/tests/formula-editor-store.test.d.ts +0 -1
  265. package/angular/utils/formula/tests/validate-expression.test.d.ts +0 -1
  266. package/angular/utils/get-css-variable.d.ts +0 -1
  267. package/angular/utils/index.d.ts +0 -10
  268. package/angular/utils/localize/set-locale.d.ts +0 -7
  269. package/angular/utils/map-tile-providers/index.d.ts +0 -93
  270. package/angular/utils/set-nested-value.d.ts +0 -6
  271. package/angular/utils/slot-content/ad-hoc-slot-content.d.ts +0 -7
  272. package/angular/utils/slot-content/render-calculation-label.d.ts +0 -7
  273. package/angular/utils/slot-content/tests/ad-hoc-slot-content.test.d.ts +0 -1
  274. package/angular/utils/slot-state/slot-context.d.ts +0 -4
  275. package/angular/utils/slot-state/slot-store.d.ts +0 -39
  276. package/angular/utils/store/base-store.d.ts +0 -158
  277. package/angular/utils/store/dashboard-store.d.ts +0 -49
  278. package/angular/utils/store/index.d.ts +0 -135
  279. package/angular/utils/store/item-store.d.ts +0 -33
  280. package/angular/utils/store/store-registry.d.ts +0 -170
  281. package/angular/utils/store/tests/dashboard-store.test.d.ts +0 -1
  282. package/angular/utils/store/tests/item-store.test.d.ts +0 -1
  283. package/angular/utils/store/tests/store-registry.test.d.ts +0 -1
  284. package/angular/utils/store/types.d.ts +0 -270
  285. package/angular/utils/switch-item/index.d.ts +0 -34
  286. package/angular/utils/switch-item/slot-role-classification.d.ts +0 -31
  287. package/angular/utils/switch-item/stories/switch-item.stories.d.ts +0 -17
  288. package/angular/utils/switch-item/tests/slot-role-classification.test.d.ts +0 -1
  289. package/angular/utils/switch-item/tests/switch-item.test.d.ts +0 -1
  290. package/angular/utils/tests/set-nested-value.test.d.ts +0 -1
  291. package/angular/utils/themes/bliss.d.ts +0 -2
  292. package/angular/utils/themes/classic-dark.d.ts +0 -2
  293. package/angular/utils/themes/classic.d.ts +0 -2
  294. package/angular/utils/themes/default-dark.d.ts +0 -2
  295. package/angular/utils/themes/default.d.ts +0 -2
  296. package/angular/utils/themes/index.d.ts +0 -4
  297. package/angular/utils/themes/orion.d.ts +0 -2
  298. package/angular/utils/themes/pinky.d.ts +0 -2
  299. package/angular/utils/themes/radiant.d.ts +0 -2
  300. package/angular/utils/themes/royale.d.ts +0 -2
  301. package/angular/utils/themes/seasonal.d.ts +0 -2
  302. package/angular/utils/themes/urban.d.ts +0 -2
  303. package/angular/utils/themes/vivid.d.ts +0 -2
  304. package/angular/utils/time/formats.const.d.ts +0 -4
  305. package/angular/utils/time/period-over-period-condition.const.d.ts +0 -8
  306. package/angular/utils/time/periods.const.d.ts +0 -15
  307. package/angular/utils/timezone/datetime-timezone.d.ts +0 -25
  308. package/angular/utils/timezone/tests/datetime-timezone.test.d.ts +0 -1
  309. package/angular/utils/transformations/convert-data-field-to-slot-content.d.ts +0 -9
  310. package/angular/utils/transformations/convert-datasets-to-data-fields.d.ts +0 -30
  311. package/angular/utils/transformations/tests/convert-data-field-to-slot-content.test.d.ts +0 -1
  312. package/angular/utils/transformations/tests/convert-datasets-to-data-fields.test.d.ts +0 -1
  313. package/angular/utils/types/tests/type-check.test.d.ts +0 -1
  314. package/angular/utils/types/type-check.d.ts +0 -28
@@ -1,283 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
- import '@luzmo/analytics-components-kit/ai-interaction-textarea';
3
- import type { LuzmoAiInteractionTextarea as LuzmoAiInteractionTextareaHostElement, Agent, Dataset, PromptBoxFileIcons, PromptSubmittedEventDetail } from '@luzmo/analytics-components-kit/ai-interaction-textarea';
4
- export type { Agent, Dataset, PromptBoxAttachment, PromptBoxFileIcons, PromptSubmittedEventDetail } from '@luzmo/analytics-components-kit/ai-interaction-textarea';
5
-
6
- @Component({
7
- selector: 'luzmo-ai-interaction-textarea',
8
- exportAs: 'luzmoAiInteractionTextarea',
9
- standalone: true,
10
- changeDetection: ChangeDetectionStrategy.OnPush,
11
- template: '<ng-content />'
12
- })
13
- /**
14
- * Angular wrapper component for <luzmo-ai-interaction-textarea>
15
- */
16
- export class LuzmoAiInteractionTextarea implements OnChanges {
17
- private readonly elementRef = inject<ElementRef<LuzmoAiInteractionTextareaHostElement>>(ElementRef);
18
- private readonly renderer = inject<Renderer2>(Renderer2);
19
- private readonly destroyRef = inject<DestroyRef>(DestroyRef);
20
- private readonly host = this.elementRef.nativeElement;
21
- private readonly listenerCleanup: Array<() => void> = [];
22
-
23
- /** The underlying custom element instance. Use to call imperative methods. */
24
- get nativeElement(): LuzmoAiInteractionTextareaHostElement {
25
- return this.host;
26
- }
27
-
28
- /** Placeholder text for the textarea */
29
- @Input({ alias: 'placeholder' })
30
- placeholder?: string;
31
-
32
- /** Array of selected datasets */
33
- @Input({ alias: 'selectedDatasets' })
34
- selectedDatasets?: Dataset[];
35
-
36
- /** Auth key for DataBroker authentication */
37
- @Input({ alias: 'authKey' })
38
- authKey?: string;
39
-
40
- /** Auth token for DataBroker authentication */
41
- @Input({ alias: 'authToken' })
42
- authToken?: string;
43
-
44
- /** API URL for DataBroker */
45
- @Input({ alias: 'apiUrl' })
46
- apiUrl?: string;
47
-
48
- /** The URL of the app server for thumbnails and assets */
49
- @Input({ alias: 'appServer' })
50
- appServer?: string;
51
-
52
- /** When true, shows public datasets alongside the user's other datasets. */
53
- @Input({ alias: 'includePublicDatasets', transform: booleanAttribute })
54
- includePublicDatasets?: boolean;
55
-
56
- /** Alias for includePublicDatasets. */
57
- @Input({ alias: 'flagOpendata', transform: booleanAttribute })
58
- flagOpendata?: boolean;
59
-
60
- /** When true, disables the entire component (opacity 60%, no interactions) */
61
- @Input({ alias: 'disabled', transform: booleanAttribute })
62
- disabled?: boolean;
63
-
64
- /** When true, starts in compact single-line mode and auto-expands as needed */
65
- @Input({ alias: 'singleLine', transform: booleanAttribute })
66
- singleLine?: boolean;
67
-
68
- /** When true, hides the "+ Add dataset" button */
69
- @Input({ alias: 'hideDatasetButton', transform: booleanAttribute })
70
- hideDatasetButton?: boolean;
71
-
72
- /** When true, hides dataset-specific icons in selector tags and @ mention dataset headers */
73
- @Input({ alias: 'hideDatasetIcons', transform: booleanAttribute })
74
- hideDatasetIcons?: boolean;
75
-
76
- /** Maximum number of selected dataset tags shown before the overflow control. */
77
- @Input({ alias: 'maxVisibleSelectedDatasets' })
78
- maxVisibleSelectedDatasets?: number;
79
-
80
- /** The saved Agent the prompt is scoped to, or null */
81
- @Input({ alias: 'selectedAgent' })
82
- selectedAgent?: Agent | null;
83
-
84
- /** When true, hides the Agents section in the add dropdown and ignores `selectedAgent` for `require-dataset` and `prompt-submitted` */
85
- @Input({ alias: 'hideAgents', transform: booleanAttribute })
86
- hideAgents?: boolean;
87
-
88
- /** When true, disables the "+ Add dataset" button and disables dataset pill removal */
89
- @Input({ alias: 'disableDatasetModification', transform: booleanAttribute })
90
- disableDatasetModification?: boolean;
91
-
92
- /** When true, hides the dataset row entirely */
93
- @Input({ alias: 'hideSelectedDatasets', transform: booleanAttribute })
94
- hideSelectedDatasets?: boolean;
95
-
96
- /** When true, disables @ trigger mentions completely */
97
- @Input({ alias: 'disableColumnMentions', transform: booleanAttribute })
98
- disableColumnMentions?: boolean;
99
-
100
- /** When true, shows a spinning loader icon instead of the submit arrow */
101
- @Input({ alias: 'isGenerating', transform: booleanAttribute })
102
- isGenerating?: boolean;
103
-
104
- /** When true, shows a stop control while `is-generating` is true */
105
- @Input({ alias: 'stoppable', transform: booleanAttribute })
106
- stoppable?: boolean;
107
-
108
- /** The current value of the textarea (can be controlled from parent to clear or set text) */
109
- @Input({ alias: 'value' })
110
- value?: string;
111
-
112
- /** When true, retains the input value after submitting a prompt (default: false) When false (default), clears the textarea value after submission */
113
- @Input({ alias: 'retainOnSubmit', transform: booleanAttribute })
114
- retainOnSubmit?: boolean;
115
-
116
- /** When true, a selected agent or at least one selected dataset is required before the prompt can be submitted */
117
- @Input({ alias: 'requireDataset', transform: booleanAttribute })
118
- requireDataset?: boolean;
119
-
120
- /** When true, enables image attachments via paste or the file picker. */
121
- @Input({ alias: 'allowImages', transform: booleanAttribute })
122
- allowImages?: boolean;
123
-
124
- /** When true, shows Lucero's mic control; the `POST /aidictation` transcript is inserted, never auto-sent. */
125
- @Input({ alias: 'allowVoiceInput', transform: booleanAttribute })
126
- allowVoiceInput?: boolean;
127
-
128
- /** Accepted attachment MIME types or extensions. */
129
- @Input({ alias: 'acceptedFileTypes' })
130
- acceptedFileTypes?: string[];
131
-
132
- /** API version for built-in `POST /upload` and `POST /aidictation` (default `0.1.0`). */
133
- @Input({ alias: 'apiVersion' })
134
- apiVersion?: string;
135
-
136
- /** Optional override for eager image upload on attach; return one signed URL per file */
137
- @Input({ alias: 'uploadAttachments' })
138
- uploadAttachments?: unknown;
139
-
140
- /** Custom icons for non-image attachment tiles, keyed by extension. */
141
- @Input({ alias: 'fileIcons' })
142
- fileIcons?: PromptBoxFileIcons;
143
-
144
- /** Fired when a prompt is submitted with selected datasets */
145
- readonly promptSubmitted = output<CustomEvent<PromptSubmittedEventDetail>>({ alias: 'promptSubmitted' });
146
-
147
- /** Fired when a running prompt is stopped */
148
- readonly promptStopped = output<CustomEvent<void>>({ alias: 'promptStopped' });
149
-
150
- constructor() {
151
- this.bindEvents();
152
- this.destroyRef.onDestroy(() => {
153
- for (const cleanup of this.listenerCleanup) {
154
- cleanup();
155
- }
156
- });
157
- }
158
-
159
- ngOnChanges(changes: SimpleChanges): void {
160
- for (const key of Object.keys(changes)) {
161
- switch (key) {
162
- case 'placeholder':
163
- this.setHostProperty('placeholder', changes['placeholder'].currentValue);
164
- break;
165
- case 'selectedDatasets':
166
- this.setHostProperty('selectedDatasets', changes['selectedDatasets'].currentValue);
167
- break;
168
- case 'authKey':
169
- this.setHostProperty('authKey', changes['authKey'].currentValue);
170
- break;
171
- case 'authToken':
172
- this.setHostProperty('authToken', changes['authToken'].currentValue);
173
- break;
174
- case 'apiUrl':
175
- this.setHostProperty('apiUrl', changes['apiUrl'].currentValue);
176
- break;
177
- case 'appServer':
178
- this.setHostProperty('appServer', changes['appServer'].currentValue);
179
- break;
180
- case 'includePublicDatasets':
181
- this.setHostProperty('includePublicDatasets', changes['includePublicDatasets'].currentValue);
182
- break;
183
- case 'flagOpendata':
184
- this.setHostProperty('flagOpendata', changes['flagOpendata'].currentValue);
185
- break;
186
- case 'disabled':
187
- this.setHostProperty('disabled', changes['disabled'].currentValue);
188
- break;
189
- case 'singleLine':
190
- this.setHostProperty('singleLine', changes['singleLine'].currentValue);
191
- break;
192
- case 'hideDatasetButton':
193
- this.setHostProperty('hideDatasetButton', changes['hideDatasetButton'].currentValue);
194
- break;
195
- case 'hideDatasetIcons':
196
- this.setHostProperty('hideDatasetIcons', changes['hideDatasetIcons'].currentValue);
197
- break;
198
- case 'maxVisibleSelectedDatasets':
199
- this.setHostProperty('maxVisibleSelectedDatasets', changes['maxVisibleSelectedDatasets'].currentValue);
200
- break;
201
- case 'selectedAgent':
202
- this.setHostProperty('selectedAgent', changes['selectedAgent'].currentValue);
203
- break;
204
- case 'hideAgents':
205
- this.setHostProperty('hideAgents', changes['hideAgents'].currentValue);
206
- break;
207
- case 'disableDatasetModification':
208
- this.setHostProperty('disableDatasetModification', changes['disableDatasetModification'].currentValue);
209
- break;
210
- case 'hideSelectedDatasets':
211
- this.setHostProperty('hideSelectedDatasets', changes['hideSelectedDatasets'].currentValue);
212
- break;
213
- case 'disableColumnMentions':
214
- this.setHostProperty('disableColumnMentions', changes['disableColumnMentions'].currentValue);
215
- break;
216
- case 'isGenerating':
217
- this.setHostProperty('isGenerating', changes['isGenerating'].currentValue);
218
- break;
219
- case 'stoppable':
220
- this.setHostProperty('stoppable', changes['stoppable'].currentValue);
221
- break;
222
- case 'value':
223
- this.setHostProperty('value', changes['value'].currentValue);
224
- break;
225
- case 'retainOnSubmit':
226
- this.setHostProperty('retainOnSubmit', changes['retainOnSubmit'].currentValue);
227
- break;
228
- case 'requireDataset':
229
- this.setHostProperty('requireDataset', changes['requireDataset'].currentValue);
230
- break;
231
- case 'allowImages':
232
- this.setHostProperty('allowImages', changes['allowImages'].currentValue);
233
- break;
234
- case 'allowVoiceInput':
235
- this.setHostProperty('allowVoiceInput', changes['allowVoiceInput'].currentValue);
236
- break;
237
- case 'acceptedFileTypes':
238
- this.setHostProperty('acceptedFileTypes', changes['acceptedFileTypes'].currentValue);
239
- break;
240
- case 'apiVersion':
241
- this.setHostProperty('apiVersion', changes['apiVersion'].currentValue);
242
- break;
243
- case 'uploadAttachments':
244
- this.setHostProperty('uploadAttachments', changes['uploadAttachments'].currentValue);
245
- break;
246
- case 'fileIcons':
247
- this.setHostProperty('fileIcons', changes['fileIcons'].currentValue);
248
- break;
249
- default:
250
- break;
251
- }
252
- }
253
- }
254
-
255
- /**
256
- * Forward a wrapper @Input to the underlying host element via Renderer2 so
257
- * the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
258
- * Unlike a "skip undefined" guard, this lets consumers reset values back to
259
- * undefined / null by clearing their bindings.
260
- */
261
- private setHostProperty(key: string, value: unknown): void {
262
- this.renderer.setProperty(this.host, key, value);
263
- }
264
-
265
- private bindEvents(): void {
266
- this.listenerCleanup.push(
267
- this.renderer.listen(this.host, 'prompt-submitted', (event: Event) => {
268
- const typed = event as CustomEvent<PromptSubmittedEventDetail>;
269
- this.promptSubmitted.emit(typed);
270
- })
271
- );
272
-
273
- this.listenerCleanup.push(
274
- this.renderer.listen(this.host, 'prompt-stopped', (event: Event) => {
275
- const typed = event as CustomEvent<void>;
276
- this.promptStopped.emit(typed);
277
- })
278
- );
279
- }
280
- }
281
-
282
- /** The underlying custom element type for LuzmoAiInteractionTextarea */
283
- export type LuzmoAiInteractionTextareaElement = LuzmoAiInteractionTextareaHostElement;
@@ -1,130 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
- import '@luzmo/analytics-components-kit/data-field-level';
3
- import type { LuzmoDataFieldLevel as LuzmoDataFieldLevelHostElement, DataFieldDragStartedEventDetail, DataFieldDroppedEventDetail } from '@luzmo/analytics-components-kit/data-field-level';
4
- export type { DataFieldDragStartedEventDetail, DataFieldDroppedEventDetail } from '@luzmo/analytics-components-kit/data-field-level';
5
- import type { DatasetDataField } from '@luzmo/analytics-components-kit/types';
6
-
7
- @Component({
8
- selector: 'luzmo-data-field-level',
9
- exportAs: 'luzmoDataFieldLevel',
10
- standalone: true,
11
- changeDetection: ChangeDetectionStrategy.OnPush,
12
- template: '<ng-content />'
13
- })
14
- /**
15
- * Angular wrapper component for <luzmo-data-field-level>
16
- */
17
- export class LuzmoDataFieldLevel implements OnChanges {
18
- private readonly elementRef = inject<ElementRef<LuzmoDataFieldLevelHostElement>>(ElementRef);
19
- private readonly renderer = inject<Renderer2>(Renderer2);
20
- private readonly destroyRef = inject<DestroyRef>(DestroyRef);
21
- private readonly host = this.elementRef.nativeElement;
22
- private readonly listenerCleanup: Array<() => void> = [];
23
-
24
- /** The underlying custom element instance. Use to call imperative methods. */
25
- get nativeElement(): LuzmoDataFieldLevelHostElement {
26
- return this.host;
27
- }
28
-
29
- /** Visual treatment of the level: `highlight` to emphasize it, or `normal`. */
30
- @Input({ alias: 'variant' })
31
- variant?: 'highlight' | 'normal';
32
-
33
- /** Hides the data type icon shown before the level label. */
34
- @Input({ alias: 'hideTypeIcon', transform: booleanAttribute })
35
- hideTypeIcon?: boolean;
36
-
37
- /** Whether this is rendered as a nested sublevel row (indented under a parent field). */
38
- @Input({ alias: 'sublevel', transform: booleanAttribute })
39
- sublevel?: boolean;
40
-
41
- /** The language in which to display the level labels. */
42
- @Input({ alias: 'language' })
43
- language?: string;
44
-
45
- /** Whether the level is disabled (non-interactive and visually muted). */
46
- @Input({ alias: 'disabled', transform: booleanAttribute })
47
- disabled?: boolean;
48
-
49
- /** The dataset data field descriptor (column or formula field) this level represents. */
50
- @Input({ alias: 'data' })
51
- data?: DatasetDataField;
52
-
53
- /** The size of the element */
54
- @Input({ alias: 'size' })
55
- size?: 's' | 'm' | 'l' | 'xl';
56
-
57
- /** Announces that the data field has been dropped */
58
- readonly luzmoDataFieldDropped = output<CustomEvent<DataFieldDroppedEventDetail>>({ alias: 'luzmoDataFieldDropped' });
59
-
60
- /** Announces that the drag is started on the data field */
61
- readonly luzmoDataFieldDragStarted = output<CustomEvent<DataFieldDragStartedEventDetail>>({ alias: 'luzmoDataFieldDragStarted' });
62
-
63
- constructor() {
64
- this.bindEvents();
65
- this.destroyRef.onDestroy(() => {
66
- for (const cleanup of this.listenerCleanup) {
67
- cleanup();
68
- }
69
- });
70
- }
71
-
72
- ngOnChanges(changes: SimpleChanges): void {
73
- for (const key of Object.keys(changes)) {
74
- switch (key) {
75
- case 'variant':
76
- this.setHostProperty('variant', changes['variant'].currentValue);
77
- break;
78
- case 'hideTypeIcon':
79
- this.setHostProperty('hideTypeIcon', changes['hideTypeIcon'].currentValue);
80
- break;
81
- case 'sublevel':
82
- this.setHostProperty('sublevel', changes['sublevel'].currentValue);
83
- break;
84
- case 'language':
85
- this.setHostProperty('language', changes['language'].currentValue);
86
- break;
87
- case 'disabled':
88
- this.setHostProperty('disabled', changes['disabled'].currentValue);
89
- break;
90
- case 'data':
91
- this.setHostProperty('data', changes['data'].currentValue);
92
- break;
93
- case 'size':
94
- this.setHostProperty('size', changes['size'].currentValue);
95
- break;
96
- default:
97
- break;
98
- }
99
- }
100
- }
101
-
102
- /**
103
- * Forward a wrapper @Input to the underlying host element via Renderer2 so
104
- * the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
105
- * Unlike a "skip undefined" guard, this lets consumers reset values back to
106
- * undefined / null by clearing their bindings.
107
- */
108
- private setHostProperty(key: string, value: unknown): void {
109
- this.renderer.setProperty(this.host, key, value);
110
- }
111
-
112
- private bindEvents(): void {
113
- this.listenerCleanup.push(
114
- this.renderer.listen(this.host, 'luzmo-data-field-dropped', (event: Event) => {
115
- const typed = event as CustomEvent<DataFieldDroppedEventDetail>;
116
- this.luzmoDataFieldDropped.emit(typed);
117
- })
118
- );
119
-
120
- this.listenerCleanup.push(
121
- this.renderer.listen(this.host, 'luzmo-data-field-drag-started', (event: Event) => {
122
- const typed = event as CustomEvent<DataFieldDragStartedEventDetail>;
123
- this.luzmoDataFieldDragStarted.emit(typed);
124
- })
125
- );
126
- }
127
- }
128
-
129
- /** The underlying custom element type for LuzmoDataFieldLevel */
130
- export type LuzmoDataFieldLevelElement = LuzmoDataFieldLevelHostElement;
@@ -1,256 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
- import '@luzmo/analytics-components-kit/data-field-panel';
3
- import type { LuzmoDataFieldPanel as LuzmoDataFieldPanelHostElement, DataFieldDragStartedEventDetail, DataFieldDroppedEventDetail, DatasetChangedEventDetail, DatasetDataFields } from '@luzmo/analytics-components-kit/data-field-panel';
4
- export type { DataFieldDragStartedEventDetail, DataFieldDroppedEventDetail, DatasetChangedEventDetail, DatasetDataFields } from '@luzmo/analytics-components-kit/data-field-panel';
5
-
6
- @Component({
7
- selector: 'luzmo-data-field-panel',
8
- exportAs: 'luzmoDataFieldPanel',
9
- standalone: true,
10
- changeDetection: ChangeDetectionStrategy.OnPush,
11
- template: '<ng-content />'
12
- })
13
- /**
14
- * A panel component that displays a list of data fields from a dataset.
15
- * Optionally includes a dataset picker dropdown to switch between datasets.
16
- *
17
- * Data can be provided in two ways:
18
- * 1. `datasetsDataFields` - Direct data, takes preference when provided
19
- * 2. `datasetIds` + auth props - Fetches data automatically using the Luzmo API
20
- */
21
- export class LuzmoDataFieldPanel implements OnChanges {
22
- private readonly elementRef = inject<ElementRef<LuzmoDataFieldPanelHostElement>>(ElementRef);
23
- private readonly renderer = inject<Renderer2>(Renderer2);
24
- private readonly destroyRef = inject<DestroyRef>(DestroyRef);
25
- private readonly host = this.elementRef.nativeElement;
26
- private readonly listenerCleanup: Array<() => void> = [];
27
-
28
- /** The underlying custom element instance. Use to call imperative methods. */
29
- get nativeElement(): LuzmoDataFieldPanelHostElement {
30
- return this.host;
31
- }
32
-
33
- /** Array of dataset IDs to fetch and display. Used as an alternative to datasetsDataFields - when provided (and datasetsDataFields is empty), the component will fetch the dataset metadata automatically. Requires apiUrl, authKey, and authToken to be set. */
34
- @Input({ alias: 'datasetIds' })
35
- datasetIds?: string[];
36
-
37
- /** The datasets and their data fields (columns and formulas) to display. Takes preference over datasetIds when provided. */
38
- @Input({ alias: 'datasetsDataFields' })
39
- datasetsDataFields?: DatasetDataFields[];
40
-
41
- /** The currently selected dataset ID. If not provided, defaults to the first available dataset. */
42
- @Input({ alias: 'selectedDatasetId' })
43
- selectedDatasetId?: string;
44
-
45
- /** Whether to show the dataset picker dropdown. */
46
- @Input({ alias: 'datasetPicker', transform: booleanAttribute })
47
- datasetPicker?: boolean;
48
-
49
- /** Whether the panel is disabled. */
50
- @Input({ alias: 'disabled', transform: booleanAttribute })
51
- disabled?: boolean;
52
-
53
- /** Whether the panel is in a pending/loading state. When true, shows a loading indicator instead of data fields. */
54
- @Input({ alias: 'pending', transform: booleanAttribute })
55
- pending?: boolean;
56
-
57
- /** Visual variant for the draggable items. */
58
- @Input({ alias: 'dataFieldVariant' })
59
- dataFieldVariant?: 'highlight' | 'normal';
60
-
61
- /** Whether the search input should use quiet styling. */
62
- @Input({ alias: 'searchQuiet', transform: booleanAttribute })
63
- searchQuiet?: boolean;
64
-
65
- /** Whether to hide the type icons on data fields. */
66
- @Input({ alias: 'hideTypeIcon', transform: booleanAttribute })
67
- hideTypeIcon?: boolean;
68
-
69
- /** Whether to hide the sublevels (datetime levels, hierarchy levels) on data fields. */
70
- @Input({ alias: 'hideSublevels', transform: booleanAttribute })
71
- hideSublevels?: boolean;
72
-
73
- /** Placeholder text for the dataset picker. */
74
- @Input({ alias: 'datasetPickerPlaceholder' })
75
- datasetPickerPlaceholder?: string;
76
-
77
- /** The Luzmo API URL. Required when using datasetIds. */
78
- @Input({ alias: 'apiUrl' })
79
- apiUrl?: string;
80
-
81
- /** Authentication key for the Luzmo API. Required when using datasetIds. */
82
- @Input({ alias: 'authKey' })
83
- authKey?: string;
84
-
85
- /** Authentication token for the Luzmo API. Required when using datasetIds. */
86
- @Input({ alias: 'authToken' })
87
- authToken?: string;
88
-
89
- /** The search input container */
90
- @Input({ alias: 'search' })
91
- search?: 'on' | 'off' | 'auto';
92
-
93
- /** Placeholder text for the search input. */
94
- @Input({ alias: 'searchPlaceholder' })
95
- searchPlaceholder?: string;
96
-
97
- /** Threshold for auto-showing search (number of items). */
98
- @Input({ alias: 'searchThreshold' })
99
- searchThreshold?: number;
100
-
101
- /** The main container element */
102
- @Input({ alias: 'container' })
103
- container?: string;
104
-
105
- /** The scrollable list of data fields */
106
- @Input({ alias: 'dataFieldsList' })
107
- datafieldslist?: string;
108
-
109
- /** The pending state container with progress circle */
110
- @Input({ alias: 'pendingState' })
111
- pendingstate?: string;
112
-
113
- /** The empty state container when no data fields are available */
114
- @Input({ alias: 'emptyState' })
115
- emptystate?: string;
116
-
117
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
118
- @Input({ alias: 'language' })
119
- language?: string;
120
-
121
- /** The size of the element */
122
- @Input({ alias: 'size' })
123
- size?: 's' | 'm' | 'l' | 'xl';
124
-
125
- /** Announces that the selected dataset has changed */
126
- readonly luzmoDatasetChanged = output<CustomEvent<DatasetChangedEventDetail>>({ alias: 'luzmoDatasetChanged' });
127
-
128
- /** Announces that a data field has been dropped */
129
- readonly luzmoDataFieldDropped = output<CustomEvent<DataFieldDroppedEventDetail>>({ alias: 'luzmoDataFieldDropped' });
130
-
131
- /** Announces that a drag has started on a data field */
132
- readonly luzmoDataFieldDragStarted = output<CustomEvent<DataFieldDragStartedEventDetail>>({ alias: 'luzmoDataFieldDragStarted' });
133
-
134
- constructor() {
135
- this.bindEvents();
136
- this.destroyRef.onDestroy(() => {
137
- for (const cleanup of this.listenerCleanup) {
138
- cleanup();
139
- }
140
- });
141
- }
142
-
143
- ngOnChanges(changes: SimpleChanges): void {
144
- for (const key of Object.keys(changes)) {
145
- switch (key) {
146
- case 'datasetIds':
147
- this.setHostProperty('datasetIds', changes['datasetIds'].currentValue);
148
- break;
149
- case 'datasetsDataFields':
150
- this.setHostProperty('datasetsDataFields', changes['datasetsDataFields'].currentValue);
151
- break;
152
- case 'selectedDatasetId':
153
- this.setHostProperty('selectedDatasetId', changes['selectedDatasetId'].currentValue);
154
- break;
155
- case 'datasetPicker':
156
- this.setHostProperty('datasetPicker', changes['datasetPicker'].currentValue);
157
- break;
158
- case 'disabled':
159
- this.setHostProperty('disabled', changes['disabled'].currentValue);
160
- break;
161
- case 'pending':
162
- this.setHostProperty('pending', changes['pending'].currentValue);
163
- break;
164
- case 'dataFieldVariant':
165
- this.setHostProperty('dataFieldVariant', changes['dataFieldVariant'].currentValue);
166
- break;
167
- case 'searchQuiet':
168
- this.setHostProperty('searchQuiet', changes['searchQuiet'].currentValue);
169
- break;
170
- case 'hideTypeIcon':
171
- this.setHostProperty('hideTypeIcon', changes['hideTypeIcon'].currentValue);
172
- break;
173
- case 'hideSublevels':
174
- this.setHostProperty('hideSublevels', changes['hideSublevels'].currentValue);
175
- break;
176
- case 'datasetPickerPlaceholder':
177
- this.setHostProperty('datasetPickerPlaceholder', changes['datasetPickerPlaceholder'].currentValue);
178
- break;
179
- case 'apiUrl':
180
- this.setHostProperty('apiUrl', changes['apiUrl'].currentValue);
181
- break;
182
- case 'authKey':
183
- this.setHostProperty('authKey', changes['authKey'].currentValue);
184
- break;
185
- case 'authToken':
186
- this.setHostProperty('authToken', changes['authToken'].currentValue);
187
- break;
188
- case 'search':
189
- this.setHostProperty('search', changes['search'].currentValue);
190
- break;
191
- case 'searchPlaceholder':
192
- this.setHostProperty('searchPlaceholder', changes['searchPlaceholder'].currentValue);
193
- break;
194
- case 'searchThreshold':
195
- this.setHostProperty('searchThreshold', changes['searchThreshold'].currentValue);
196
- break;
197
- case 'container':
198
- this.setHostProperty('container', changes['container'].currentValue);
199
- break;
200
- case 'datafieldslist':
201
- this.setHostProperty('data-fields-list', changes['datafieldslist'].currentValue);
202
- break;
203
- case 'pendingstate':
204
- this.setHostProperty('pending-state', changes['pendingstate'].currentValue);
205
- break;
206
- case 'emptystate':
207
- this.setHostProperty('empty-state', changes['emptystate'].currentValue);
208
- break;
209
- case 'language':
210
- this.setHostProperty('language', changes['language'].currentValue);
211
- break;
212
- case 'size':
213
- this.setHostProperty('size', changes['size'].currentValue);
214
- break;
215
- default:
216
- break;
217
- }
218
- }
219
- }
220
-
221
- /**
222
- * Forward a wrapper @Input to the underlying host element via Renderer2 so
223
- * the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
224
- * Unlike a "skip undefined" guard, this lets consumers reset values back to
225
- * undefined / null by clearing their bindings.
226
- */
227
- private setHostProperty(key: string, value: unknown): void {
228
- this.renderer.setProperty(this.host, key, value);
229
- }
230
-
231
- private bindEvents(): void {
232
- this.listenerCleanup.push(
233
- this.renderer.listen(this.host, 'luzmo-dataset-changed', (event: Event) => {
234
- const typed = event as CustomEvent<DatasetChangedEventDetail>;
235
- this.luzmoDatasetChanged.emit(typed);
236
- })
237
- );
238
-
239
- this.listenerCleanup.push(
240
- this.renderer.listen(this.host, 'luzmo-data-field-dropped', (event: Event) => {
241
- const typed = event as CustomEvent<DataFieldDroppedEventDetail>;
242
- this.luzmoDataFieldDropped.emit(typed);
243
- })
244
- );
245
-
246
- this.listenerCleanup.push(
247
- this.renderer.listen(this.host, 'luzmo-data-field-drag-started', (event: Event) => {
248
- const typed = event as CustomEvent<DataFieldDragStartedEventDetail>;
249
- this.luzmoDataFieldDragStarted.emit(typed);
250
- })
251
- );
252
- }
253
- }
254
-
255
- /** The underlying custom element type for LuzmoDataFieldPanel */
256
- export type LuzmoDataFieldPanelElement = LuzmoDataFieldPanelHostElement;