@luzmo/analytics-components-kit 1.0.8-beta.1 → 1.0.8-beta.2

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 (516) hide show
  1. package/README.md +14 -1
  2. package/components/ai-chat/index.cjs +1 -1
  3. package/components/ai-chat/index.js +2 -2
  4. package/components/{ai-chat-Bo0ELL9Z.cjs → ai-chat-D1Rzwdxy.cjs} +1 -1
  5. package/components/{ai-chat-hOxsY5sO.js → ai-chat-Dy_utMXO.js} +1 -1
  6. package/components/ai-interaction-textarea/index.cjs +1 -1
  7. package/components/ai-interaction-textarea/index.js +1 -1
  8. package/components/{ai-interaction-textarea-DvILxmFe.cjs → ai-interaction-textarea-CJO50_1F.cjs} +1 -1
  9. package/components/{ai-interaction-textarea-r77TFOk6.js → ai-interaction-textarea-DMT8RNUP.js} +2 -2
  10. package/components/{area-chart-positioning.config-BqKl3pFu.cjs → area-chart-positioning.config-BstzDLRL.cjs} +1 -1
  11. package/components/{area-chart-positioning.config-Br2P8CiM.js → area-chart-positioning.config-DeMlkQZO.js} +1 -1
  12. package/components/{bar-chart-positioning.config-BIIRV0eK.js → bar-chart-positioning.config-Cw4xXpaU.js} +1 -1
  13. package/components/{bar-chart-positioning.config-CuZ6-d9P.cjs → bar-chart-positioning.config-DDKGGZhU.cjs} +1 -1
  14. package/components/{base-store-DmDe0dTU.js → base-store-BhGpnbqi.js} +0 -8
  15. package/components/{base-store-DHC2m2Os.cjs → base-store-D5cDq6d4.cjs} +1 -1
  16. package/components/{box-plot-positioning.config-AHLRC1d-.js → box-plot-positioning.config-BQf8CX15.js} +1 -1
  17. package/components/{box-plot-positioning.config-DAYgLURB.cjs → box-plot-positioning.config-Cni8SYCB.cjs} +1 -1
  18. package/components/{bubble-chart-positioning.config-0rqhisQ0.cjs → bubble-chart-positioning.config-1Q2GxFJ4.cjs} +1 -1
  19. package/components/{bubble-chart-positioning.config-55OuqSo_.js → bubble-chart-positioning.config-BYeXJRKW.js} +1 -1
  20. package/components/{bullet-chart-positioning.config-CIkbLbi3.js → bullet-chart-positioning.config-D-fuuO8D.js} +1 -1
  21. package/components/{bullet-chart-positioning.config-COKnJxPm.cjs → bullet-chart-positioning.config-NSHvsWAf.cjs} +1 -1
  22. package/components/{choropleth-map-positioning.config-C9QGy6XL.js → choropleth-map-positioning.config-Bk2lcbUF.js} +1 -1
  23. package/components/{choropleth-map-positioning.config-0EBrFMj-.cjs → choropleth-map-positioning.config-DZCuGwit.cjs} +1 -1
  24. package/components/{circle-pack-chart-positioning.config-BtQ9KsU9.cjs → circle-pack-chart-positioning.config-CuESD4oH.cjs} +1 -1
  25. package/components/{circle-pack-chart-positioning.config-vl4eZHhs.js → circle-pack-chart-positioning.config-pvlFSoeh.js} +1 -1
  26. package/components/{circular-gauge-positioning.config-B-65zgBL.js → circular-gauge-positioning.config-BI5_9VzK.js} +1 -1
  27. package/components/{circular-gauge-positioning.config-BjDwC0zc.cjs → circular-gauge-positioning.config-DIYxTFVO.cjs} +1 -1
  28. package/components/{column-chart-positioning.config-CDISLkz9.js → column-chart-positioning.config-CoekgrWc.js} +1 -1
  29. package/components/{column-chart-positioning.config-hIAFqQkL.cjs → column-chart-positioning.config-F5liDplz.cjs} +1 -1
  30. package/components/{combination-chart-positioning.config-CFo18WDh.cjs → combination-chart-positioning.config-BIqhiqPc.cjs} +1 -1
  31. package/components/{combination-chart-positioning.config-C0immu_Z.js → combination-chart-positioning.config-gfmXofUL.js} +1 -1
  32. package/components/{conditional-number-positioning.config-Bw0gHZ2o.cjs → conditional-number-positioning.config-7xN8yNaC.cjs} +1 -1
  33. package/components/{conditional-number-positioning.config-BfOZxdI3.js → conditional-number-positioning.config-DoA_qMvA.js} +1 -1
  34. package/components/{data-broker-Bdv5V8Yp.js → data-broker-B0uUO5er.js} +4 -0
  35. package/components/{data-broker-DWEXs6-2.cjs → data-broker-CyMYR6w1.cjs} +1 -1
  36. package/components/data-field-panel/index.cjs +1 -1
  37. package/components/data-field-panel/index.js +1 -1
  38. package/components/{data-field-panel-bka3sr4V.cjs → data-field-panel-B9aYsBfe.cjs} +1 -1
  39. package/components/{data-field-panel-Y8MKxsTL.js → data-field-panel-COHppDw6.js} +2 -2
  40. package/components/data-fields-select/index.cjs +1 -1
  41. package/components/data-fields-select/index.js +1 -1
  42. package/components/data-fields-select-BMDWXAMz.cjs +41 -0
  43. package/components/{data-fields-select-2P9sGs_9.js → data-fields-select-CvdABHum.js} +1 -1
  44. package/components/dataset-selector-list/index.cjs +1 -1
  45. package/components/dataset-selector-list/index.js +1 -1
  46. package/components/{dataset-selector-list-DhiiMGU8.cjs → dataset-selector-list-CekhYtbU.cjs} +1 -1
  47. package/components/{dataset-selector-list-qeYvQkeD.js → dataset-selector-list-yU9o-gBK.js} +1 -1
  48. package/components/dataset-selector-row/index.cjs +1 -1
  49. package/components/dataset-selector-row/index.js +1 -1
  50. package/components/{dataset-selector-row-Cau2IKg2.cjs → dataset-selector-row-Cte3skmf.cjs} +1 -1
  51. package/components/{dataset-selector-row-C8_Hnlp5.js → dataset-selector-row-eb2fUxMB.js} +1 -1
  52. package/components/display-settings/index.cjs +1 -1
  53. package/components/display-settings/index.js +1 -1
  54. package/components/{display-settings-C088VTeJ.cjs → display-settings-B_sY5MXH.cjs} +1 -1
  55. package/components/{display-settings-BShiJjYL.js → display-settings-DpPSk_da.js} +1 -1
  56. package/components/{donut-chart-positioning.config-BPY9_d1a.js → donut-chart-positioning.config-B-CWvQDP.js} +1 -1
  57. package/components/{donut-chart-positioning.config-D1CzQ5Xn.cjs → donut-chart-positioning.config-DsHR-HET.cjs} +1 -1
  58. package/components/{evolution-number-positioning.config-DLO4M9Cs.cjs → evolution-number-positioning.config-DWJlecZ8.cjs} +1 -1
  59. package/components/{evolution-number-positioning.config-Cylb9kiq.js → evolution-number-positioning.config-DogBtixy.js} +1 -1
  60. package/components/filter-expression-picker/index.cjs +1 -1
  61. package/components/filter-expression-picker/index.js +1 -1
  62. package/components/{filter-expression-picker-CGgLtygy.cjs → filter-expression-picker-Dtd04YHa.cjs} +1 -1
  63. package/components/{filter-expression-picker-DC_fSNw3.js → filter-expression-picker-vZcmpdhp.js} +1 -1
  64. package/components/filter-item/filter-item.d.ts +4 -0
  65. package/components/filter-item/index.cjs +1 -1
  66. package/components/filter-item/index.js +1 -1
  67. package/components/{filter-item-xi4ViBw6.js → filter-item-DhWm1nZ2.js} +26 -11
  68. package/components/filter-item-QGXrunyl.cjs +71 -0
  69. package/components/filter-value-picker/index.cjs +1 -1
  70. package/components/filter-value-picker/index.js +1 -1
  71. package/components/{filter-value-picker-CaMy7sgw.js → filter-value-picker-DL-XI9zN.js} +3 -3
  72. package/components/{filter-value-picker-BhZ1btu2.cjs → filter-value-picker-DUPgUphE.cjs} +1 -1
  73. package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +2 -1
  74. package/components/filter-value-picker-datetime/index.cjs +1 -1
  75. package/components/filter-value-picker-datetime/index.js +1 -1
  76. package/components/{filter-value-picker-datetime-DeXo9m9J.cjs → filter-value-picker-datetime-BYosmOVo.cjs} +1 -1
  77. package/components/{filter-value-picker-datetime-swmPuya2.js → filter-value-picker-datetime-DrtBsmhk.js} +1 -1
  78. package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +16 -0
  79. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  80. package/components/filter-value-picker-hierarchy/index.js +1 -1
  81. package/components/filter-value-picker-hierarchy-Co7tEAF0.cjs +48 -0
  82. package/components/{filter-value-picker-hierarchy-CUrCfFBg.js → filter-value-picker-hierarchy-D9HPNjXi.js} +119 -52
  83. package/components/filter-value-picker-numeric/index.cjs +1 -1
  84. package/components/filter-value-picker-numeric/index.js +1 -1
  85. package/components/{filter-value-picker-numeric-LHFsFwHY.cjs → filter-value-picker-numeric-BCaSriJT.cjs} +1 -1
  86. package/components/{filter-value-picker-numeric-_7THOfQ3.js → filter-value-picker-numeric-CLRBOcom.js} +2 -2
  87. package/components/filters/index.cjs +1 -1
  88. package/components/filters/index.js +1 -1
  89. package/components/filters-DPh6G5_6.cjs +153 -0
  90. package/components/{filters-CGlwSB1c.js → filters-hIID3Ol5.js} +172 -169
  91. package/components/formula/index.cjs +1 -1
  92. package/components/formula/index.js +1 -1
  93. package/components/{formula-Cs6dyuWv.js → formula-D6fZk242.js} +2 -2
  94. package/components/{formula-fK-POHy0.cjs → formula-DJa0m0vt.cjs} +1 -1
  95. package/components/{formula-codemirror-DQjUbRXS.js → formula-codemirror-CS38irmY.js} +2 -2
  96. package/components/{formula-codemirror-DWNgYsVG.cjs → formula-codemirror-ClMjdWte.cjs} +1 -1
  97. package/components/{formula-display-store-B7NE3yk2.js → formula-display-store-BVCcrqMB.js} +2 -2
  98. package/components/{formula-display-store-CIaihdJt.cjs → formula-display-store-riWDbPmO.cjs} +1 -1
  99. package/components/formula-editor/index.cjs +1 -1
  100. package/components/formula-editor/index.js +3 -3
  101. package/components/{formula-editor-RrAmSugR.js → formula-editor-C63ifj9i.js} +4 -4
  102. package/components/{formula-editor-DHau0kyj.cjs → formula-editor-KuJjGn6h.cjs} +1 -1
  103. package/components/formula-field/index.cjs +1 -1
  104. package/components/formula-field/index.js +1 -1
  105. package/components/{formula-field-YNbqmroG.cjs → formula-field-BIseRR26.cjs} +1 -1
  106. package/components/{formula-field-BU-tU8RC.js → formula-field-CZu-WBKI.js} +1 -1
  107. package/components/{formula-input-base-DbJu89ug.cjs → formula-input-base-B1D56Klw.cjs} +1 -1
  108. package/components/{formula-input-base-BL7QCVYc.js → formula-input-base-DhhV4mbQ.js} +1 -1
  109. package/components/{funnel-chart-positioning.config-si2pX2gx.js → funnel-chart-positioning.config-D7871iXX.js} +1 -1
  110. package/components/{funnel-chart-positioning.config-BBNWT_VE.cjs → funnel-chart-positioning.config-DswPJ8VG.cjs} +1 -1
  111. package/components/{groupings-Xmt8wNT9.js → groupings-BwzDflId.js} +1 -1
  112. package/components/{groupings-4QHaRJAm.cjs → groupings-Dt2yC9fH.cjs} +1 -1
  113. package/components/{heat-map-positioning.config-DI5FunDJ.cjs → heat-map-positioning.config-C9xyxr1p.cjs} +1 -1
  114. package/components/{heat-map-positioning.config-DOlrArXK.js → heat-map-positioning.config-sZTsAUnf.js} +1 -1
  115. package/components/{heat-table-positioning.config-iu4AP8qY.cjs → heat-table-positioning.config-B5XgRMIn.cjs} +1 -1
  116. package/components/{heat-table-positioning.config-COaenQ4o.js → heat-table-positioning.config-DSsD8apM.js} +1 -1
  117. package/components/{hexbin-map-positioning.config-BhuH9uzL.js → hexbin-map-positioning.config-Dc9wAdAv.js} +1 -1
  118. package/components/{marker-map-positioning.config-Bt-iQQTT.cjs → hexbin-map-positioning.config-Dq2TuFz1.cjs} +1 -1
  119. package/components/index.cjs +1 -1
  120. package/components/index.js +38 -38
  121. package/components/interactive-viz-item/index.cjs +1 -1
  122. package/components/interactive-viz-item/index.js +1 -1
  123. package/components/{interactive-viz-item-Ckksv6BC.cjs → interactive-viz-item-Bn9IhEvD.cjs} +1 -1
  124. package/components/{interactive-viz-item-diknEJmH.js → interactive-viz-item-CXHq9Csp.js} +3 -3
  125. package/components/item-grid/index.cjs +1 -1
  126. package/components/item-grid/index.js +1 -1
  127. package/components/{item-grid-Dv_KLkHv.cjs → item-grid-B8tT6ztQ.cjs} +2 -2
  128. package/components/{item-grid-BxeW2lFX.js → item-grid-D7b0blK6.js} +47 -47
  129. package/components/item-option/index.cjs +1 -1
  130. package/components/item-option/index.js +1 -1
  131. package/components/{item-option-n8o2amMX.js → item-option-Dc4GNRMW.js} +120 -126
  132. package/components/item-option-dwknAAj9.cjs +269 -0
  133. package/components/item-option-panel/index.cjs +1 -1
  134. package/components/item-option-panel/index.js +1 -1
  135. package/components/{item-option-panel-h1z2MCbr.js → item-option-panel-DIU-3auc.js} +1 -1
  136. package/components/{item-option-panel-m9BDbDRw.cjs → item-option-panel-Dv6v7RzM.cjs} +1 -1
  137. package/components/item-slot-drop/index.cjs +1 -1
  138. package/components/item-slot-drop/index.js +1 -1
  139. package/components/{item-slot-drop-iXidsCW1.js → item-slot-drop-BL7DOudd.js} +12 -12
  140. package/components/{item-slot-drop-CViqm_N2.cjs → item-slot-drop-Ds06u_vn.cjs} +1 -1
  141. package/components/item-slot-drop-panel/index.cjs +1 -1
  142. package/components/item-slot-drop-panel/index.js +1 -1
  143. package/components/{item-slot-drop-panel-BjOPdyYH.cjs → item-slot-drop-panel-D_EFyM9J.cjs} +1 -1
  144. package/components/{item-slot-drop-panel-DwNCcxm1.js → item-slot-drop-panel-DkHylw7i.js} +37 -37
  145. package/components/item-slot-picker/index.cjs +1 -1
  146. package/components/item-slot-picker/index.js +1 -1
  147. package/components/{item-slot-picker-D8e1NtDd.cjs → item-slot-picker-BbpPIoIq.cjs} +3 -3
  148. package/components/{item-slot-picker-DpnpGTvR.js → item-slot-picker-CywUgvNX.js} +15 -15
  149. package/components/item-slot-picker-panel/index.cjs +1 -1
  150. package/components/item-slot-picker-panel/index.js +1 -1
  151. package/components/{item-slot-picker-panel-l53YLi4e.js → item-slot-picker-panel-Bi8xZaYc.js} +2 -2
  152. package/components/{item-slot-picker-panel-DyP6Uls5.cjs → item-slot-picker-panel-DQLwQXdI.cjs} +1 -1
  153. package/components/{line-chart-positioning.config-BAt_nsVA.cjs → line-chart-positioning.config-CCsZMpp-.cjs} +1 -1
  154. package/components/{line-chart-positioning.config-A4TQKtrY.js → line-chart-positioning.config-q_XJiQBO.js} +1 -1
  155. package/components/{load-data-fields-for-datasets-BNnr8x3m.js → load-data-fields-for-datasets-B3XcFFfg.js} +1 -1
  156. package/components/{load-data-fields-for-datasets-CW4Voiex.cjs → load-data-fields-for-datasets-rL24A68g.cjs} +1 -1
  157. package/components/{hexbin-map-positioning.config-CZGNbr60.cjs → marker-map-positioning.config-B4GDDPUn.cjs} +1 -1
  158. package/components/{marker-map-positioning.config-B-EQ3Kdq.js → marker-map-positioning.config-qEo6YbOG.js} +1 -1
  159. package/components/{ohlc-chart-positioning.config-Shmm9MJf.js → ohlc-chart-positioning.config-CU7qaa8y.js} +1 -1
  160. package/components/{ohlc-chart-positioning.config-COj7yt6H.cjs → ohlc-chart-positioning.config-TquTA1gZ.cjs} +1 -1
  161. package/components/{parallel-coordinates-plot-positioning.config-ClvpDIFu.cjs → parallel-coordinates-plot-positioning.config-C8_F3uzs.cjs} +1 -1
  162. package/components/{parallel-coordinates-plot-positioning.config-C05rBaKD.js → parallel-coordinates-plot-positioning.config-DuQWnPKv.js} +1 -1
  163. package/components/{pivot-table-positioning.config-BGlPvMyz.js → pivot-table-positioning.config-B6ra1dbJ.js} +1 -1
  164. package/components/{pivot-table-positioning.config-CDJ5gAfT.cjs → pivot-table-positioning.config-DhtDGn-Z.cjs} +1 -1
  165. package/components/{pyramid-chart-positioning.config-DvhVY2uQ.cjs → pyramid-chart-positioning.config-5bWhJBP_.cjs} +1 -1
  166. package/components/{pyramid-chart-positioning.config-BcqgH441.js → pyramid-chart-positioning.config-C_KASxlG.js} +1 -1
  167. package/components/{radar-chart-positioning.config-COMI8Da1.cjs → radar-chart-positioning.config-D2NVgsg1.cjs} +1 -1
  168. package/components/{radar-chart-positioning.config-C9tXOa0G.js → radar-chart-positioning.config-l6ioKbxT.js} +1 -1
  169. package/components/{route-map-positioning.config-Bi8-Dmc4.cjs → route-map-positioning.config-5Xju6VM-.cjs} +1 -1
  170. package/components/{route-map-positioning.config-BUIlsZig.js → route-map-positioning.config-HDuhd3TI.js} +1 -1
  171. package/components/{sankey-diagram-positioning.config-DUAsNKP9.js → sankey-diagram-positioning.config-BKeksOQ2.js} +1 -1
  172. package/components/{sankey-diagram-positioning.config-DgZpfj7d.cjs → sankey-diagram-positioning.config-BXseVUED.cjs} +1 -1
  173. package/components/{scatter-plot-positioning.config-8c9ToDBN.cjs → scatter-plot-positioning.config-Ci_UFZZ7.cjs} +1 -1
  174. package/components/{scatter-plot-positioning.config-D6dyNojk.js → scatter-plot-positioning.config-MFGPELRh.js} +1 -1
  175. package/components/set-nested-value-B-4IelRl.cjs +20 -0
  176. package/components/set-nested-value-V1TdquO3.js +33 -0
  177. package/components/{slicer-filter-positioning.config-CqPOeeeg.cjs → slicer-filter-positioning.config-C2w10p-X.cjs} +1 -1
  178. package/components/{slicer-filter-positioning.config-BnxE_Ac2.js → slicer-filter-positioning.config-CKyzt_nF.js} +1 -1
  179. package/components/slot-menu/index.cjs +1 -1
  180. package/components/slot-menu/index.js +1 -1
  181. package/components/slot-menu-7Lsnn5mp.cjs +71 -0
  182. package/components/{slot-menu-BsaFfMfl.js → slot-menu-JcmVjv2g.js} +15 -12
  183. package/components/{speedometer-chart-positioning.config-B6ydcNl1.js → speedometer-chart-positioning.config-BEWibjyH.js} +1 -1
  184. package/components/{speedometer-chart-positioning.config-CWVs9wdL.cjs → speedometer-chart-positioning.config-Df5CIOwp.cjs} +1 -1
  185. package/components/{spike-map-positioning.config-CzTPhLvN.cjs → spike-map-positioning.config-C6aRn7nn.cjs} +1 -1
  186. package/components/{spike-map-positioning.config-BUDKv3D-.js → spike-map-positioning.config-CdT1dVMG.js} +1 -1
  187. package/components/{strip-plot-positioning.config-d8qB2u-P.js → strip-plot-positioning.config-B8vN0A44.js} +1 -1
  188. package/components/{strip-plot-positioning.config-C6-0AgIF.cjs → strip-plot-positioning.config-DXJci5zk.cjs} +1 -1
  189. package/components/{sunburst-chart-positioning.config-DcYT58kl.js → sunburst-chart-positioning.config-D-qWT3sC.js} +1 -1
  190. package/components/{sunburst-chart-positioning.config-D_APT9mf.cjs → sunburst-chart-positioning.config-XfxGkqp6.cjs} +1 -1
  191. package/components/{symbol-map-positioning.config-CWkkURYU.cjs → symbol-map-positioning.config-BB8-Feba.cjs} +1 -1
  192. package/components/{symbol-map-positioning.config-D12TczYa.js → symbol-map-positioning.config-CAC8XCec.js} +1 -1
  193. package/components/{treemap-chart-positioning.config-BmxLpNn2.js → treemap-chart-positioning.config-CJKe5rf1.js} +1 -1
  194. package/components/{treemap-chart-positioning.config-BS-BO3sD.cjs → treemap-chart-positioning.config-Daf9Kk3k.cjs} +1 -1
  195. package/components/utils/store.cjs +1 -1
  196. package/components/utils/store.js +59 -58
  197. package/components/{utils-DUeh8VMp.js → utils-BMmRy1Nn.js} +1 -1
  198. package/components/{utils-pKA3Rwn3.cjs → utils-D9CBsoMV.cjs} +1 -1
  199. package/components/utils.cjs +1 -1
  200. package/components/utils.js +2 -2
  201. package/components/{venn-diagram-positioning.config-B-4Uoe_o.js → venn-diagram-positioning.config-8pfbiReM.js} +1 -1
  202. package/components/{venn-diagram-positioning.config-D4Zhdh2X.cjs → venn-diagram-positioning.config-DqxSgLGR.cjs} +1 -1
  203. package/components/{wordcloud-chart-positioning.config-DTEauH2w.cjs → wordcloud-chart-positioning.config-Cb7lzr9N.cjs} +1 -1
  204. package/components/{wordcloud-chart-positioning.config-Cr9lzAHP.js → wordcloud-chart-positioning.config-DUazjx5M.js} +1 -1
  205. package/custom-elements.json +21 -1
  206. package/package.json +2 -2
  207. package/react/package.json +2 -2
  208. package/utils/data-broker/index.d.ts +20 -14
  209. package/utils/set-nested-value.d.ts +6 -0
  210. package/utils/store/base-store.d.ts +0 -4
  211. package/angular/README.md +0 -40
  212. package/angular/components/ai-chat-empty-state.ts +0 -98
  213. package/angular/components/ai-chat.ts +0 -412
  214. package/angular/components/ai-interaction-textarea.ts +0 -263
  215. package/angular/components/data-field-level.ts +0 -130
  216. package/angular/components/data-field-panel.ts +0 -256
  217. package/angular/components/data-field.ts +0 -130
  218. package/angular/components/data-fields-select.ts +0 -212
  219. package/angular/components/dataset-icon.ts +0 -83
  220. package/angular/components/dataset-selector-list.ts +0 -140
  221. package/angular/components/dataset-selector-row.ts +0 -157
  222. package/angular/components/display-settings-binning.ts +0 -92
  223. package/angular/components/display-settings-datetime.ts +0 -100
  224. package/angular/components/display-settings-grand-totals.ts +0 -92
  225. package/angular/components/display-settings-numeric.ts +0 -113
  226. package/angular/components/display-settings-period-over-period.ts +0 -107
  227. package/angular/components/display-settings.ts +0 -227
  228. package/angular/components/filter-expression-picker.ts +0 -168
  229. package/angular/components/filter-item.ts +0 -175
  230. package/angular/components/filter-parameter-picker.ts +0 -155
  231. package/angular/components/filter-value-picker-datetime.ts +0 -125
  232. package/angular/components/filter-value-picker-hierarchy.ts +0 -146
  233. package/angular/components/filter-value-picker-numeric.ts +0 -146
  234. package/angular/components/filter-value-picker.ts +0 -160
  235. package/angular/components/filters.ts +0 -209
  236. package/angular/components/formula-editor.ts +0 -229
  237. package/angular/components/formula-field.ts +0 -198
  238. package/angular/components/formula.ts +0 -170
  239. package/angular/components/interactive-viz-item.ts +0 -186
  240. package/angular/components/item-grid-item-actions-menu.ts +0 -113
  241. package/angular/components/item-grid.ts +0 -242
  242. package/angular/components/item-option-action-button-group.ts +0 -105
  243. package/angular/components/item-option-color-palette-picker.ts +0 -126
  244. package/angular/components/item-option-color-picker.ts +0 -134
  245. package/angular/components/item-option-color-range.ts +0 -168
  246. package/angular/components/item-option-guidelines.ts +0 -84
  247. package/angular/components/item-option-multi-language-field.ts +0 -133
  248. package/angular/components/item-option-number-field.ts +0 -161
  249. package/angular/components/item-option-panel.ts +0 -149
  250. package/angular/components/item-option-picker.ts +0 -120
  251. package/angular/components/item-option-position-picker.ts +0 -98
  252. package/angular/components/item-option-positions-number-field.ts +0 -140
  253. package/angular/components/item-option-radio-button-group.ts +0 -119
  254. package/angular/components/item-option-slider.ts +0 -126
  255. package/angular/components/item-option-switch.ts +0 -98
  256. package/angular/components/item-option-text-field.ts +0 -112
  257. package/angular/components/item-option.ts +0 -163
  258. package/angular/components/item-slot-drop-panel.ts +0 -236
  259. package/angular/components/item-slot-drop.ts +0 -231
  260. package/angular/components/item-slot-picker-panel.ts +0 -299
  261. package/angular/components/item-slot-picker.ts +0 -241
  262. package/angular/components/slot-menu-list.ts +0 -121
  263. package/angular/components/slot-menu.ts +0 -304
  264. package/angular/components/viz-item-menu.ts +0 -118
  265. package/angular/esm/components/ai-chat-empty-state.d.ts +0 -39
  266. package/angular/esm/components/ai-chat-empty-state.js +0 -99
  267. package/angular/esm/components/ai-chat.d.ts +0 -137
  268. package/angular/esm/components/ai-chat.js +0 -423
  269. package/angular/esm/components/ai-interaction-textarea.d.ts +0 -99
  270. package/angular/esm/components/ai-interaction-textarea.js +0 -281
  271. package/angular/esm/components/data-field-level.d.ts +0 -50
  272. package/angular/esm/components/data-field-level.js +0 -129
  273. package/angular/esm/components/data-field-panel.d.ts +0 -86
  274. package/angular/esm/components/data-field-panel.js +0 -268
  275. package/angular/esm/components/data-field.d.ts +0 -50
  276. package/angular/esm/components/data-field.js +0 -129
  277. package/angular/esm/components/data-fields-select.d.ts +0 -81
  278. package/angular/esm/components/data-fields-select.js +0 -227
  279. package/angular/esm/components/dataset-icon.d.ts +0 -34
  280. package/angular/esm/components/dataset-icon.js +0 -86
  281. package/angular/esm/components/dataset-selector-list.d.ts +0 -53
  282. package/angular/esm/components/dataset-selector-list.js +0 -147
  283. package/angular/esm/components/dataset-selector-row.d.ts +0 -58
  284. package/angular/esm/components/dataset-selector-row.js +0 -161
  285. package/angular/esm/components/display-settings-binning.d.ts +0 -37
  286. package/angular/esm/components/display-settings-binning.js +0 -91
  287. package/angular/esm/components/display-settings-datetime.d.ts +0 -40
  288. package/angular/esm/components/display-settings-datetime.js +0 -99
  289. package/angular/esm/components/display-settings-grand-totals.d.ts +0 -37
  290. package/angular/esm/components/display-settings-grand-totals.js +0 -91
  291. package/angular/esm/components/display-settings-numeric.d.ts +0 -45
  292. package/angular/esm/components/display-settings-numeric.js +0 -115
  293. package/angular/esm/components/display-settings-period-over-period.d.ts +0 -44
  294. package/angular/esm/components/display-settings-period-over-period.js +0 -107
  295. package/angular/esm/components/display-settings.d.ts +0 -83
  296. package/angular/esm/components/display-settings.js +0 -231
  297. package/angular/esm/components/filter-expression-picker.d.ts +0 -64
  298. package/angular/esm/components/filter-expression-picker.js +0 -179
  299. package/angular/esm/components/filter-item.d.ts +0 -63
  300. package/angular/esm/components/filter-item.js +0 -187
  301. package/angular/esm/components/filter-parameter-picker.d.ts +0 -56
  302. package/angular/esm/components/filter-parameter-picker.js +0 -151
  303. package/angular/esm/components/filter-value-picker-datetime.d.ts +0 -47
  304. package/angular/esm/components/filter-value-picker-datetime.js +0 -131
  305. package/angular/esm/components/filter-value-picker-hierarchy.d.ts +0 -53
  306. package/angular/esm/components/filter-value-picker-hierarchy.js +0 -155
  307. package/angular/esm/components/filter-value-picker-numeric.d.ts +0 -53
  308. package/angular/esm/components/filter-value-picker-numeric.js +0 -155
  309. package/angular/esm/components/filter-value-picker.d.ts +0 -57
  310. package/angular/esm/components/filter-value-picker.js +0 -171
  311. package/angular/esm/components/filters.d.ts +0 -75
  312. package/angular/esm/components/filters.js +0 -215
  313. package/angular/esm/components/formula-editor.d.ts +0 -78
  314. package/angular/esm/components/formula-editor.js +0 -236
  315. package/angular/esm/components/formula-field.d.ts +0 -70
  316. package/angular/esm/components/formula-field.js +0 -209
  317. package/angular/esm/components/formula.d.ts +0 -60
  318. package/angular/esm/components/formula.js +0 -177
  319. package/angular/esm/components/interactive-viz-item.d.ts +0 -63
  320. package/angular/esm/components/interactive-viz-item.js +0 -188
  321. package/angular/esm/components/item-grid-item-actions-menu.d.ts +0 -45
  322. package/angular/esm/components/item-grid-item-actions-menu.js +0 -115
  323. package/angular/esm/components/item-grid.d.ts +0 -80
  324. package/angular/esm/components/item-grid.js +0 -245
  325. package/angular/esm/components/item-option-action-button-group.d.ts +0 -41
  326. package/angular/esm/components/item-option-action-button-group.js +0 -107
  327. package/angular/esm/components/item-option-color-palette-picker.d.ts +0 -48
  328. package/angular/esm/components/item-option-color-palette-picker.js +0 -131
  329. package/angular/esm/components/item-option-color-picker.d.ts +0 -51
  330. package/angular/esm/components/item-option-color-picker.js +0 -139
  331. package/angular/esm/components/item-option-color-range.d.ts +0 -66
  332. package/angular/esm/components/item-option-color-range.js +0 -179
  333. package/angular/esm/components/item-option-guidelines.d.ts +0 -34
  334. package/angular/esm/components/item-option-guidelines.js +0 -83
  335. package/angular/esm/components/item-option-multi-language-field.d.ts +0 -50
  336. package/angular/esm/components/item-option-multi-language-field.js +0 -139
  337. package/angular/esm/components/item-option-number-field.d.ts +0 -58
  338. package/angular/esm/components/item-option-number-field.js +0 -171
  339. package/angular/esm/components/item-option-panel.d.ts +0 -54
  340. package/angular/esm/components/item-option-panel.js +0 -155
  341. package/angular/esm/components/item-option-picker.d.ts +0 -46
  342. package/angular/esm/components/item-option-picker.js +0 -123
  343. package/angular/esm/components/item-option-position-picker.d.ts +0 -39
  344. package/angular/esm/components/item-option-position-picker.js +0 -99
  345. package/angular/esm/components/item-option-positions-number-field.d.ts +0 -54
  346. package/angular/esm/components/item-option-positions-number-field.js +0 -147
  347. package/angular/esm/components/item-option-radio-button-group.d.ts +0 -45
  348. package/angular/esm/components/item-option-radio-button-group.js +0 -123
  349. package/angular/esm/components/item-option-slider.d.ts +0 -46
  350. package/angular/esm/components/item-option-slider.js +0 -131
  351. package/angular/esm/components/item-option-switch.d.ts +0 -40
  352. package/angular/esm/components/item-option-switch.js +0 -99
  353. package/angular/esm/components/item-option-text-field.d.ts +0 -44
  354. package/angular/esm/components/item-option-text-field.js +0 -115
  355. package/angular/esm/components/item-option.d.ts +0 -58
  356. package/angular/esm/components/item-option.js +0 -171
  357. package/angular/esm/components/item-slot-drop-panel.d.ts +0 -82
  358. package/angular/esm/components/item-slot-drop-panel.js +0 -249
  359. package/angular/esm/components/item-slot-drop.d.ts +0 -77
  360. package/angular/esm/components/item-slot-drop.js +0 -227
  361. package/angular/esm/components/item-slot-picker-panel.d.ts +0 -97
  362. package/angular/esm/components/item-slot-picker-panel.js +0 -309
  363. package/angular/esm/components/item-slot-picker.d.ts +0 -86
  364. package/angular/esm/components/item-slot-picker.js +0 -259
  365. package/angular/esm/components/slot-menu-list.d.ts +0 -46
  366. package/angular/esm/components/slot-menu-list.js +0 -123
  367. package/angular/esm/components/slot-menu.d.ts +0 -104
  368. package/angular/esm/components/slot-menu.js +0 -300
  369. package/angular/esm/components/viz-item-menu.d.ts +0 -42
  370. package/angular/esm/components/viz-item-menu.js +0 -111
  371. package/angular/esm/index.d.ts +0 -109
  372. package/angular/esm/index.js +0 -217
  373. package/angular/index.ts +0 -223
  374. package/angular/package.json +0 -40
  375. package/angular/tsconfig.json +0 -36
  376. package/angular/type-fallbacks.d.ts +0 -0
  377. package/angular/utils/ai-prompt/attachments.d.ts +0 -10
  378. package/angular/utils/ai-prompt/dictation.d.ts +0 -50
  379. package/angular/utils/ai-prompt/image-upload.d.ts +0 -12
  380. package/angular/utils/ai-prompt/index.d.ts +0 -6
  381. package/angular/utils/ai-prompt/tests/dictation.test.d.ts +0 -1
  382. package/angular/utils/ai-prompt/tests/image-upload.test.d.ts +0 -1
  383. package/angular/utils/base/base.d.ts +0 -16
  384. package/angular/utils/base/focus-visible.d.ts +0 -29
  385. package/angular/utils/base/focusable.d.ts +0 -58
  386. package/angular/utils/base/index.d.ts +0 -5
  387. package/angular/utils/base/localized-mixin.d.ts +0 -22
  388. package/angular/utils/base/sized-mixin.d.ts +0 -17
  389. package/angular/utils/color/color-palettes.d.ts +0 -17
  390. package/angular/utils/color/extrapolate-color.d.ts +0 -1
  391. package/angular/utils/data/load-data-fields-for-datasets.d.ts +0 -22
  392. package/angular/utils/data-broker/index.d.ts +0 -257
  393. package/angular/utils/data-field-types/calculate-data-field-icon.d.ts +0 -12
  394. package/angular/utils/data-field-types/default-acceptable-data-field-types.d.ts +0 -1
  395. package/angular/utils/data-field-types/tests/calculate-data-field-icon.test.d.ts +0 -1
  396. package/angular/utils/drag/draggable.d.ts +0 -13
  397. package/angular/utils/drag/pragmatic-element-adapter.d.ts +0 -2
  398. package/angular/utils/drag/tests/pragmatic-element-adapter.first-import.test.d.ts +0 -1
  399. package/angular/utils/drag/tests/pragmatic-element-adapter.test.d.ts +0 -1
  400. package/angular/utils/filters/expressions.d.ts +0 -15
  401. package/angular/utils/filters/index.d.ts +0 -1
  402. package/angular/utils/formatter/calculate-duration.d.ts +0 -2
  403. package/angular/utils/formatter/decompose-numeric-format.d.ts +0 -11
  404. package/angular/utils/formatter/default-local-formats.d.ts +0 -20
  405. package/angular/utils/formatter/formats/cs.d.ts +0 -20
  406. package/angular/utils/formatter/formats/da.d.ts +0 -20
  407. package/angular/utils/formatter/formats/de.d.ts +0 -21
  408. package/angular/utils/formatter/formats/en-GB.d.ts +0 -21
  409. package/angular/utils/formatter/formats/en-US.d.ts +0 -1
  410. package/angular/utils/formatter/formats/en.d.ts +0 -1
  411. package/angular/utils/formatter/formats/es.d.ts +0 -54
  412. package/angular/utils/formatter/formats/fi.d.ts +0 -20
  413. package/angular/utils/formatter/formats/fr.d.ts +0 -54
  414. package/angular/utils/formatter/formats/he.d.ts +0 -20
  415. package/angular/utils/formatter/formats/hu.d.ts +0 -20
  416. package/angular/utils/formatter/formats/it.d.ts +0 -54
  417. package/angular/utils/formatter/formats/ja.d.ts +0 -20
  418. package/angular/utils/formatter/formats/ko.d.ts +0 -20
  419. package/angular/utils/formatter/formats/mk.d.ts +0 -20
  420. package/angular/utils/formatter/formats/nl.d.ts +0 -21
  421. package/angular/utils/formatter/formats/no.d.ts +0 -21
  422. package/angular/utils/formatter/formats/pl.d.ts +0 -20
  423. package/angular/utils/formatter/formats/pt.d.ts +0 -20
  424. package/angular/utils/formatter/formats/ru.d.ts +0 -20
  425. package/angular/utils/formatter/formats/sv.d.ts +0 -20
  426. package/angular/utils/formatter/formats/tr.d.ts +0 -21
  427. package/angular/utils/formatter/formats/zh-CN.d.ts +0 -20
  428. package/angular/utils/formatter/formats/zh-TW.d.ts +0 -20
  429. package/angular/utils/formatter/formatter.d.ts +0 -9
  430. package/angular/utils/formatter/get-dataset-name.d.ts +0 -2
  431. package/angular/utils/formatter/localize.d.ts +0 -3
  432. package/angular/utils/formatter/smart-datetime-formats.const.d.ts +0 -36
  433. package/angular/utils/formatter/tests/calculate-duration.test.d.ts +0 -1
  434. package/angular/utils/formatter/tests/decompose-numeric-format.test.d.ts +0 -1
  435. package/angular/utils/formatter/tests/default-local-formats.test.d.ts +0 -1
  436. package/angular/utils/formatter/tests/formatter.test.d.ts +0 -1
  437. package/angular/utils/formatter/tests/localize.test.d.ts +0 -1
  438. package/angular/utils/formula/base/formula-base.d.ts +0 -117
  439. package/angular/utils/formula/base/formula-input-base.d.ts +0 -62
  440. package/angular/utils/formula/codemirror/actions.d.ts +0 -47
  441. package/angular/utils/formula/codemirror/drop-cursor.d.ts +0 -15
  442. package/angular/utils/formula/codemirror/icon-element.d.ts +0 -7
  443. package/angular/utils/formula/codemirror/parser.d.ts +0 -16
  444. package/angular/utils/formula/codemirror/tests/actions.test.d.ts +0 -1
  445. package/angular/utils/formula/codemirror/theme.d.ts +0 -20
  446. package/angular/utils/formula/codemirror/widget.d.ts +0 -18
  447. package/angular/utils/formula/config/aggregations.d.ts +0 -9
  448. package/angular/utils/formula/config/build-datasets.d.ts +0 -10
  449. package/angular/utils/formula/config/expression-helpers.d.ts +0 -42
  450. package/angular/utils/formula/config/functions.d.ts +0 -3
  451. package/angular/utils/formula/config/groupings.d.ts +0 -9
  452. package/angular/utils/formula/config/regex.d.ts +0 -39
  453. package/angular/utils/formula/config/resolve-column-presentation.d.ts +0 -19
  454. package/angular/utils/formula/config/tests/build-datasets.test.d.ts +0 -1
  455. package/angular/utils/formula/config/validate-expression.d.ts +0 -19
  456. package/angular/utils/formula/load-formula-codemirror.d.ts +0 -4
  457. package/angular/utils/formula/render-explanation-tooltip.d.ts +0 -7
  458. package/angular/utils/formula/store/formula-display-store.d.ts +0 -93
  459. package/angular/utils/formula/store/formula-editor-context.d.ts +0 -8
  460. package/angular/utils/formula/store/formula-editor-store.d.ts +0 -46
  461. package/angular/utils/formula/store/tests/formula-editor-store.test.d.ts +0 -1
  462. package/angular/utils/formula/tests/validate-expression.test.d.ts +0 -1
  463. package/angular/utils/get-css-variable.d.ts +0 -1
  464. package/angular/utils/index.d.ts +0 -10
  465. package/angular/utils/localize/set-locale.d.ts +0 -7
  466. package/angular/utils/map-tile-providers/index.d.ts +0 -93
  467. package/angular/utils/slot-content/ad-hoc-slot-content.d.ts +0 -7
  468. package/angular/utils/slot-content/render-calculation-label.d.ts +0 -7
  469. package/angular/utils/slot-content/tests/ad-hoc-slot-content.test.d.ts +0 -1
  470. package/angular/utils/slot-state/slot-context.d.ts +0 -4
  471. package/angular/utils/slot-state/slot-store.d.ts +0 -39
  472. package/angular/utils/store/base-store.d.ts +0 -162
  473. package/angular/utils/store/dashboard-store.d.ts +0 -49
  474. package/angular/utils/store/index.d.ts +0 -135
  475. package/angular/utils/store/item-store.d.ts +0 -33
  476. package/angular/utils/store/store-registry.d.ts +0 -170
  477. package/angular/utils/store/tests/dashboard-store.test.d.ts +0 -1
  478. package/angular/utils/store/tests/item-store.test.d.ts +0 -1
  479. package/angular/utils/store/tests/store-registry.test.d.ts +0 -1
  480. package/angular/utils/store/types.d.ts +0 -270
  481. package/angular/utils/switch-item/index.d.ts +0 -34
  482. package/angular/utils/switch-item/slot-role-classification.d.ts +0 -31
  483. package/angular/utils/switch-item/stories/switch-item.stories.d.ts +0 -17
  484. package/angular/utils/switch-item/tests/slot-role-classification.test.d.ts +0 -1
  485. package/angular/utils/switch-item/tests/switch-item.test.d.ts +0 -1
  486. package/angular/utils/themes/bliss.d.ts +0 -2
  487. package/angular/utils/themes/classic-dark.d.ts +0 -2
  488. package/angular/utils/themes/classic.d.ts +0 -2
  489. package/angular/utils/themes/default-dark.d.ts +0 -2
  490. package/angular/utils/themes/default.d.ts +0 -2
  491. package/angular/utils/themes/index.d.ts +0 -4
  492. package/angular/utils/themes/orion.d.ts +0 -2
  493. package/angular/utils/themes/pinky.d.ts +0 -2
  494. package/angular/utils/themes/radiant.d.ts +0 -2
  495. package/angular/utils/themes/royale.d.ts +0 -2
  496. package/angular/utils/themes/seasonal.d.ts +0 -2
  497. package/angular/utils/themes/urban.d.ts +0 -2
  498. package/angular/utils/themes/vivid.d.ts +0 -2
  499. package/angular/utils/time/formats.const.d.ts +0 -4
  500. package/angular/utils/time/period-over-period-condition.const.d.ts +0 -8
  501. package/angular/utils/time/periods.const.d.ts +0 -15
  502. package/angular/utils/timezone/datetime-timezone.d.ts +0 -25
  503. package/angular/utils/timezone/tests/datetime-timezone.test.d.ts +0 -1
  504. package/angular/utils/transformations/convert-data-field-to-slot-content.d.ts +0 -9
  505. package/angular/utils/transformations/convert-datasets-to-data-fields.d.ts +0 -30
  506. package/angular/utils/transformations/tests/convert-data-field-to-slot-content.test.d.ts +0 -1
  507. package/angular/utils/transformations/tests/convert-datasets-to-data-fields.test.d.ts +0 -1
  508. package/angular/utils/types/tests/type-check.test.d.ts +0 -1
  509. package/angular/utils/types/type-check.d.ts +0 -28
  510. package/components/data-fields-select-CAyr7ju6.cjs +0 -41
  511. package/components/filter-item-DMerwomA.cjs +0 -71
  512. package/components/filter-value-picker-hierarchy-DxluZMYy.cjs +0 -47
  513. package/components/filters-qljuVmv3.cjs +0 -153
  514. package/components/item-option-B8J9IqkK.cjs +0 -269
  515. package/components/slot-menu-11KQJc_U.cjs +0 -71
  516. /package/{angular/utils/ai-prompt/tests/attachments.test.d.ts → utils/tests/set-nested-value.test.d.ts} +0 -0
@@ -1,198 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
- import '@luzmo/analytics-components-kit/formula-field';
3
- import type { LuzmoFormulaField as LuzmoFormulaFieldHostElement } from '@luzmo/analytics-components-kit/formula-field';
4
-
5
- @Component({
6
- selector: 'luzmo-formula-field',
7
- exportAs: 'luzmoFormulaField',
8
- standalone: true,
9
- changeDetection: ChangeDetectionStrategy.OnPush,
10
- template: '<ng-content />'
11
- })
12
- /**
13
- * Angular wrapper component for <luzmo-formula-field>
14
- */
15
- export class LuzmoFormulaField implements OnChanges {
16
- private readonly elementRef = inject<ElementRef<LuzmoFormulaFieldHostElement>>(ElementRef);
17
- private readonly renderer = inject<Renderer2>(Renderer2);
18
- private readonly destroyRef = inject<DestroyRef>(DestroyRef);
19
- private readonly host = this.elementRef.nativeElement;
20
- private readonly listenerCleanup: Array<() => void> = [];
21
-
22
- /** The underlying custom element instance. Use to call imperative methods. */
23
- get nativeElement(): LuzmoFormulaFieldHostElement {
24
- return this.host;
25
- }
26
-
27
- /** Renders the field display-only (no editing). */
28
- @Input({ alias: 'readonly', transform: booleanAttribute })
29
- readonly?: boolean;
30
-
31
- /** Placeholder text shown in the editable input when the expression is empty. */
32
- @Input({ alias: 'placeholder' })
33
- placeholder?: string;
34
-
35
- /** Number of text lines the input is sized to start with. Defaults to 3. */
36
- @Input({ alias: 'rows' })
37
- rows?: number;
38
-
39
- /** Maximum number of text lines before a scrollbar appears (only when `grows`). */
40
- @Input({ alias: 'maxRows' })
41
- maxRows?: number;
42
-
43
- /** Whether the input grows in height with its content (up to `maxRows` if set). */
44
- @Input({ alias: 'grows', transform: booleanAttribute })
45
- grows?: boolean;
46
-
47
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
48
- @Input({ alias: 'language' })
49
- language?: string;
50
-
51
- /** The formula expression (function syntax), e.g. `SUM({datasetId:columnId})`. */
52
- @Input({ alias: 'expression' })
53
- expression?: string;
54
-
55
- /** Datasets and their data fields, provided directly (takes preference over `datasetIds`). */
56
- @Input({ alias: 'datasetsDataFields' })
57
- datasetsDataFields?: unknown;
58
-
59
- /** Dataset ids to fetch from the Luzmo API (auth attributes optional for public datasets). */
60
- @Input({ alias: 'datasetIds' })
61
- datasetIds?: string[];
62
-
63
- /** Base URL of the Luzmo API used to fetch datasets by id. */
64
- @Input({ alias: 'apiUrl' })
65
- apiUrl?: string;
66
-
67
- /** Luzmo API authorization key, used with `authToken` to fetch datasets by id. */
68
- @Input({ alias: 'authKey' })
69
- authKey?: string;
70
-
71
- /** Luzmo API authorization token, used with `authKey` to fetch datasets by id. */
72
- @Input({ alias: 'authToken' })
73
- authToken?: string;
74
-
75
- /** Whether aggregation functions are offered (in the autocompletion, and - for the editor - via the aggregations list and pills). Defaults to `true`. Note: as a boolean attribute defaulting to `true` it cannot be turned off via markup (an absent attribute keeps the default); set the `.showAggregations` property to `false` to disable. */
76
- @Input({ alias: 'showAggregations', transform: booleanAttribute })
77
- showAggregations?: boolean;
78
-
79
- /** Language used for data labels (column / dataset names). */
80
- @Input({ alias: 'contentLanguage' })
81
- contentLanguage?: string;
82
-
83
- /** When true, aggregations render as multi-stage nested widgets. */
84
- @Input({ alias: 'multiStageAggregation', transform: booleanAttribute })
85
- multiStageAggregation?: boolean;
86
-
87
- /** When true, aggregations can be nested inside other aggregations. */
88
- @Input({ alias: 'nestedAggregation', transform: booleanAttribute })
89
- nestedAggregation?: boolean;
90
-
91
- /** The size of the element */
92
- @Input({ alias: 'size' })
93
- size?: 's' | 'm' | 'l' | 'xl';
94
-
95
- /** Fired (debounced) when the expression changes (only when not readonly). */
96
- readonly luzmoExpressionChanged = output<CustomEvent<unknown>>({ alias: 'luzmoExpressionChanged' });
97
-
98
- /** Fired when fetching datasets by id fails. */
99
- readonly luzmoDatasetsError = output<CustomEvent<unknown>>({ alias: 'luzmoDatasetsError' });
100
-
101
- constructor() {
102
- this.bindEvents();
103
- this.destroyRef.onDestroy(() => {
104
- for (const cleanup of this.listenerCleanup) {
105
- cleanup();
106
- }
107
- });
108
- }
109
-
110
- ngOnChanges(changes: SimpleChanges): void {
111
- for (const key of Object.keys(changes)) {
112
- switch (key) {
113
- case 'readonly':
114
- this.setHostProperty('readonly', changes['readonly'].currentValue);
115
- break;
116
- case 'placeholder':
117
- this.setHostProperty('placeholder', changes['placeholder'].currentValue);
118
- break;
119
- case 'rows':
120
- this.setHostProperty('rows', changes['rows'].currentValue);
121
- break;
122
- case 'maxRows':
123
- this.setHostProperty('maxRows', changes['maxRows'].currentValue);
124
- break;
125
- case 'grows':
126
- this.setHostProperty('grows', changes['grows'].currentValue);
127
- break;
128
- case 'language':
129
- this.setHostProperty('language', changes['language'].currentValue);
130
- break;
131
- case 'expression':
132
- this.setHostProperty('expression', changes['expression'].currentValue);
133
- break;
134
- case 'datasetsDataFields':
135
- this.setHostProperty('datasetsDataFields', changes['datasetsDataFields'].currentValue);
136
- break;
137
- case 'datasetIds':
138
- this.setHostProperty('datasetIds', changes['datasetIds'].currentValue);
139
- break;
140
- case 'apiUrl':
141
- this.setHostProperty('apiUrl', changes['apiUrl'].currentValue);
142
- break;
143
- case 'authKey':
144
- this.setHostProperty('authKey', changes['authKey'].currentValue);
145
- break;
146
- case 'authToken':
147
- this.setHostProperty('authToken', changes['authToken'].currentValue);
148
- break;
149
- case 'showAggregations':
150
- this.setHostProperty('showAggregations', changes['showAggregations'].currentValue);
151
- break;
152
- case 'contentLanguage':
153
- this.setHostProperty('contentLanguage', changes['contentLanguage'].currentValue);
154
- break;
155
- case 'multiStageAggregation':
156
- this.setHostProperty('multiStageAggregation', changes['multiStageAggregation'].currentValue);
157
- break;
158
- case 'nestedAggregation':
159
- this.setHostProperty('nestedAggregation', changes['nestedAggregation'].currentValue);
160
- break;
161
- case 'size':
162
- this.setHostProperty('size', changes['size'].currentValue);
163
- break;
164
- default:
165
- break;
166
- }
167
- }
168
- }
169
-
170
- /**
171
- * Forward a wrapper @Input to the underlying host element via Renderer2 so
172
- * the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
173
- * Unlike a "skip undefined" guard, this lets consumers reset values back to
174
- * undefined / null by clearing their bindings.
175
- */
176
- private setHostProperty(key: string, value: unknown): void {
177
- this.renderer.setProperty(this.host, key, value);
178
- }
179
-
180
- private bindEvents(): void {
181
- this.listenerCleanup.push(
182
- this.renderer.listen(this.host, 'luzmo-expression-changed', (event: Event) => {
183
- const typed = event as CustomEvent<unknown>;
184
- this.luzmoExpressionChanged.emit(typed);
185
- })
186
- );
187
-
188
- this.listenerCleanup.push(
189
- this.renderer.listen(this.host, 'luzmo-datasets-error', (event: Event) => {
190
- const typed = event as CustomEvent<unknown>;
191
- this.luzmoDatasetsError.emit(typed);
192
- })
193
- );
194
- }
195
- }
196
-
197
- /** The underlying custom element type for LuzmoFormulaField */
198
- export type LuzmoFormulaFieldElement = LuzmoFormulaFieldHostElement;
@@ -1,170 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
- import '@luzmo/analytics-components-kit/formula';
3
- import type { LuzmoFormula as LuzmoFormulaHostElement } from '@luzmo/analytics-components-kit/formula';
4
-
5
- @Component({
6
- selector: 'luzmo-formula',
7
- exportAs: 'luzmoFormula',
8
- standalone: true,
9
- changeDetection: ChangeDetectionStrategy.OnPush,
10
- template: '<ng-content />'
11
- })
12
- /**
13
- * Angular wrapper component for <luzmo-formula>
14
- */
15
- export class LuzmoFormula implements OnChanges {
16
- private readonly elementRef = inject<ElementRef<LuzmoFormulaHostElement>>(ElementRef);
17
- private readonly renderer = inject<Renderer2>(Renderer2);
18
- private readonly destroyRef = inject<DestroyRef>(DestroyRef);
19
- private readonly host = this.elementRef.nativeElement;
20
- private readonly listenerCleanup: Array<() => void> = [];
21
-
22
- /** The underlying custom element instance. Use to call imperative methods. */
23
- get nativeElement(): LuzmoFormulaHostElement {
24
- return this.host;
25
- }
26
-
27
- /** Rendering mode. `rich` (default) renders read-only column / aggregation pills; `text` renders plain text with an inline type icon per column. Both are always read-only. */
28
- @Input({ alias: 'display' })
29
- display?: 'rich' | 'text';
30
-
31
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
32
- @Input({ alias: 'language' })
33
- language?: string;
34
-
35
- /** The formula expression (function syntax), e.g. `SUM({datasetId:columnId})`. */
36
- @Input({ alias: 'expression' })
37
- expression?: string;
38
-
39
- /** Datasets and their data fields, provided directly (takes preference over `datasetIds`). */
40
- @Input({ alias: 'datasetsDataFields' })
41
- datasetsDataFields?: unknown;
42
-
43
- /** Dataset ids to fetch from the Luzmo API (auth attributes optional for public datasets). */
44
- @Input({ alias: 'datasetIds' })
45
- datasetIds?: string[];
46
-
47
- /** Base URL of the Luzmo API used to fetch datasets by id. */
48
- @Input({ alias: 'apiUrl' })
49
- apiUrl?: string;
50
-
51
- /** Luzmo API authorization key, used with `authToken` to fetch datasets by id. */
52
- @Input({ alias: 'authKey' })
53
- authKey?: string;
54
-
55
- /** Luzmo API authorization token, used with `authKey` to fetch datasets by id. */
56
- @Input({ alias: 'authToken' })
57
- authToken?: string;
58
-
59
- /** Whether aggregation functions are offered (in the autocompletion, and - for the editor - via the aggregations list and pills). Defaults to `true`. Note: as a boolean attribute defaulting to `true` it cannot be turned off via markup (an absent attribute keeps the default); set the `.showAggregations` property to `false` to disable. */
60
- @Input({ alias: 'showAggregations', transform: booleanAttribute })
61
- showAggregations?: boolean;
62
-
63
- /** Language used for data labels (column / dataset names). */
64
- @Input({ alias: 'contentLanguage' })
65
- contentLanguage?: string;
66
-
67
- /** When true, aggregations render as multi-stage nested widgets. */
68
- @Input({ alias: 'multiStageAggregation', transform: booleanAttribute })
69
- multiStageAggregation?: boolean;
70
-
71
- /** When true, aggregations can be nested inside other aggregations. */
72
- @Input({ alias: 'nestedAggregation', transform: booleanAttribute })
73
- nestedAggregation?: boolean;
74
-
75
- /** The size of the element */
76
- @Input({ alias: 'size' })
77
- size?: 's' | 'm' | 'l' | 'xl';
78
-
79
- /** Fired (debounced) when the formula expression changes; `detail.expression` holds the new expression. */
80
- readonly luzmoExpressionChanged = output<CustomEvent<unknown>>({ alias: 'luzmoExpressionChanged' });
81
-
82
- /** Fired when fetching datasets by id fails. */
83
- readonly luzmoDatasetsError = output<CustomEvent<unknown>>({ alias: 'luzmoDatasetsError' });
84
-
85
- constructor() {
86
- this.bindEvents();
87
- this.destroyRef.onDestroy(() => {
88
- for (const cleanup of this.listenerCleanup) {
89
- cleanup();
90
- }
91
- });
92
- }
93
-
94
- ngOnChanges(changes: SimpleChanges): void {
95
- for (const key of Object.keys(changes)) {
96
- switch (key) {
97
- case 'display':
98
- this.setHostProperty('display', changes['display'].currentValue);
99
- break;
100
- case 'language':
101
- this.setHostProperty('language', changes['language'].currentValue);
102
- break;
103
- case 'expression':
104
- this.setHostProperty('expression', changes['expression'].currentValue);
105
- break;
106
- case 'datasetsDataFields':
107
- this.setHostProperty('datasetsDataFields', changes['datasetsDataFields'].currentValue);
108
- break;
109
- case 'datasetIds':
110
- this.setHostProperty('datasetIds', changes['datasetIds'].currentValue);
111
- break;
112
- case 'apiUrl':
113
- this.setHostProperty('apiUrl', changes['apiUrl'].currentValue);
114
- break;
115
- case 'authKey':
116
- this.setHostProperty('authKey', changes['authKey'].currentValue);
117
- break;
118
- case 'authToken':
119
- this.setHostProperty('authToken', changes['authToken'].currentValue);
120
- break;
121
- case 'showAggregations':
122
- this.setHostProperty('showAggregations', changes['showAggregations'].currentValue);
123
- break;
124
- case 'contentLanguage':
125
- this.setHostProperty('contentLanguage', changes['contentLanguage'].currentValue);
126
- break;
127
- case 'multiStageAggregation':
128
- this.setHostProperty('multiStageAggregation', changes['multiStageAggregation'].currentValue);
129
- break;
130
- case 'nestedAggregation':
131
- this.setHostProperty('nestedAggregation', changes['nestedAggregation'].currentValue);
132
- break;
133
- case 'size':
134
- this.setHostProperty('size', changes['size'].currentValue);
135
- break;
136
- default:
137
- break;
138
- }
139
- }
140
- }
141
-
142
- /**
143
- * Forward a wrapper @Input to the underlying host element via Renderer2 so
144
- * the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
145
- * Unlike a "skip undefined" guard, this lets consumers reset values back to
146
- * undefined / null by clearing their bindings.
147
- */
148
- private setHostProperty(key: string, value: unknown): void {
149
- this.renderer.setProperty(this.host, key, value);
150
- }
151
-
152
- private bindEvents(): void {
153
- this.listenerCleanup.push(
154
- this.renderer.listen(this.host, 'luzmo-expression-changed', (event: Event) => {
155
- const typed = event as CustomEvent<unknown>;
156
- this.luzmoExpressionChanged.emit(typed);
157
- })
158
- );
159
-
160
- this.listenerCleanup.push(
161
- this.renderer.listen(this.host, 'luzmo-datasets-error', (event: Event) => {
162
- const typed = event as CustomEvent<unknown>;
163
- this.luzmoDatasetsError.emit(typed);
164
- })
165
- );
166
- }
167
- }
168
-
169
- /** The underlying custom element type for LuzmoFormula */
170
- export type LuzmoFormulaElement = LuzmoFormulaHostElement;
@@ -1,186 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
- import '@luzmo/analytics-components-kit/interactive-viz-item';
3
- import type { LuzmoInteractiveVizItem as LuzmoInteractiveVizItemHostElement, ChartFeedback, FlexChartConfig, InteractiveVizItemChartChangedEventDetail, InteractiveVizItemChartOptionsChangedEventDetail, InteractiveVizItemFeedbackChangedEventDetail } from '@luzmo/analytics-components-kit/interactive-viz-item';
4
- export type { ChartActionDescriptor, ChartActionType, ChartFeedback, ChartFeedbackRating, ChartMutationRequest, ChartOption, FlexChartConfig, InteractiveVizItemChartChangedEventDetail, InteractiveVizItemChartOptionsChangedEventDetail, InteractiveVizItemFeedbackChangedEventDetail, NormalizedChartConfig, Ranking, Sort } from '@luzmo/analytics-components-kit/interactive-viz-item';
5
-
6
- @Component({
7
- selector: 'luzmo-interactive-viz-item',
8
- exportAs: 'luzmoInteractiveVizItem',
9
- standalone: true,
10
- changeDetection: ChangeDetectionStrategy.OnPush,
11
- template: '<ng-content />'
12
- })
13
- /**
14
- * Angular wrapper component for <luzmo-interactive-viz-item>
15
- *
16
- * @slot chart-actions-extra - Host-injected actions rendered at the end of the inline actions bar (e.g. copy-to-dashboard).
17
- * @csspart container - The viz item container.
18
- * @csspart chart-container - The embedded chart wrapper.
19
- * @csspart config-panel - The expandable configuration panel.
20
- */
21
- export class LuzmoInteractiveVizItem implements OnChanges {
22
- private readonly elementRef = inject<ElementRef<LuzmoInteractiveVizItemHostElement>>(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(): LuzmoInteractiveVizItemHostElement {
30
- return this.host;
31
- }
32
-
33
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
34
- @Input({ alias: 'language' })
35
- language?: string;
36
-
37
- /** Loose chart config (type, options, slots, filters); slots may use the keyed-object form. */
38
- @Input({ alias: 'chart' })
39
- chart?: FlexChartConfig | null;
40
-
41
- /** Current feedback (drives the thumbs up/down selection). */
42
- @Input({ alias: 'feedback' })
43
- feedback?: ChartFeedback | null;
44
-
45
- /** Message id from the backend. Feedback is only shown when set. */
46
- @Input({ alias: 'messageId' })
47
- messageId?: string;
48
-
49
- /** Auth key for the embedded chart and config panels. */
50
- @Input({ alias: 'authKey' })
51
- authKey?: string;
52
-
53
- /** Auth token for the embedded chart and config panels. */
54
- @Input({ alias: 'authToken' })
55
- authToken?: string;
56
-
57
- /** API URL for the embedded chart and config panels. */
58
- @Input({ alias: 'apiUrl' })
59
- apiUrl?: string;
60
-
61
- /** App server URL for the embedded chart (assets, thumbnails). */
62
- @Input({ alias: 'appServer' })
63
- appServer?: string;
64
-
65
- /** Content language for chart data and dataset metadata. Defaults to the UI `language`. */
66
- @Input({ alias: 'contentLanguage' })
67
- contentLanguage?: string;
68
-
69
- /** When present, hides the inline chart actions (ranking, display mode). */
70
- @Input({ alias: 'hideActions', transform: booleanAttribute })
71
- hideActions?: boolean;
72
-
73
- /** When present, hides the feedback bar. */
74
- @Input({ alias: 'hideFeedback', transform: booleanAttribute })
75
- hideFeedback?: boolean;
76
-
77
- /** When present, hides the config-panel toggle and the panel itself. */
78
- @Input({ alias: 'hideConfigPanel', transform: booleanAttribute })
79
- hideConfigPanel?: boolean;
80
-
81
- /** The size of the element */
82
- @Input({ alias: 'size' })
83
- size?: 's' | 'm' | 'l' | 'xl';
84
-
85
- /** Fired when the inline actions (ranking, sort, display mode) change the chart options. */
86
- readonly luzmoChartOptionsChanged = output<CustomEvent<InteractiveVizItemChartOptionsChangedEventDetail>>({ alias: 'luzmoChartOptionsChanged' });
87
-
88
- /** Fired when the config panel changes slots, filters, or options (full chart). */
89
- readonly luzmoChartChanged = output<CustomEvent<InteractiveVizItemChartChangedEventDetail>>({ alias: 'luzmoChartChanged' });
90
-
91
- /** Fired when the user changes the thumbs up/down rating. */
92
- readonly luzmoFeedbackChanged = output<CustomEvent<InteractiveVizItemFeedbackChangedEventDetail>>({ alias: 'luzmoFeedbackChanged' });
93
-
94
- constructor() {
95
- this.bindEvents();
96
- this.destroyRef.onDestroy(() => {
97
- for (const cleanup of this.listenerCleanup) {
98
- cleanup();
99
- }
100
- });
101
- }
102
-
103
- ngOnChanges(changes: SimpleChanges): void {
104
- for (const key of Object.keys(changes)) {
105
- switch (key) {
106
- case 'language':
107
- this.setHostProperty('language', changes['language'].currentValue);
108
- break;
109
- case 'chart':
110
- this.setHostProperty('chart', changes['chart'].currentValue);
111
- break;
112
- case 'feedback':
113
- this.setHostProperty('feedback', changes['feedback'].currentValue);
114
- break;
115
- case 'messageId':
116
- this.setHostProperty('messageId', changes['messageId'].currentValue);
117
- break;
118
- case 'authKey':
119
- this.setHostProperty('authKey', changes['authKey'].currentValue);
120
- break;
121
- case 'authToken':
122
- this.setHostProperty('authToken', changes['authToken'].currentValue);
123
- break;
124
- case 'apiUrl':
125
- this.setHostProperty('apiUrl', changes['apiUrl'].currentValue);
126
- break;
127
- case 'appServer':
128
- this.setHostProperty('appServer', changes['appServer'].currentValue);
129
- break;
130
- case 'contentLanguage':
131
- this.setHostProperty('contentLanguage', changes['contentLanguage'].currentValue);
132
- break;
133
- case 'hideActions':
134
- this.setHostProperty('hideActions', changes['hideActions'].currentValue);
135
- break;
136
- case 'hideFeedback':
137
- this.setHostProperty('hideFeedback', changes['hideFeedback'].currentValue);
138
- break;
139
- case 'hideConfigPanel':
140
- this.setHostProperty('hideConfigPanel', changes['hideConfigPanel'].currentValue);
141
- break;
142
- case 'size':
143
- this.setHostProperty('size', changes['size'].currentValue);
144
- break;
145
- default:
146
- break;
147
- }
148
- }
149
- }
150
-
151
- /**
152
- * Forward a wrapper @Input to the underlying host element via Renderer2 so
153
- * the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
154
- * Unlike a "skip undefined" guard, this lets consumers reset values back to
155
- * undefined / null by clearing their bindings.
156
- */
157
- private setHostProperty(key: string, value: unknown): void {
158
- this.renderer.setProperty(this.host, key, value);
159
- }
160
-
161
- private bindEvents(): void {
162
- this.listenerCleanup.push(
163
- this.renderer.listen(this.host, 'luzmo-chart-options-changed', (event: Event) => {
164
- const typed = event as CustomEvent<InteractiveVizItemChartOptionsChangedEventDetail>;
165
- this.luzmoChartOptionsChanged.emit(typed);
166
- })
167
- );
168
-
169
- this.listenerCleanup.push(
170
- this.renderer.listen(this.host, 'luzmo-chart-changed', (event: Event) => {
171
- const typed = event as CustomEvent<InteractiveVizItemChartChangedEventDetail>;
172
- this.luzmoChartChanged.emit(typed);
173
- })
174
- );
175
-
176
- this.listenerCleanup.push(
177
- this.renderer.listen(this.host, 'luzmo-feedback-changed', (event: Event) => {
178
- const typed = event as CustomEvent<InteractiveVizItemFeedbackChangedEventDetail>;
179
- this.luzmoFeedbackChanged.emit(typed);
180
- })
181
- );
182
- }
183
- }
184
-
185
- /** The underlying custom element type for LuzmoInteractiveVizItem */
186
- export type LuzmoInteractiveVizItemElement = LuzmoInteractiveVizItemHostElement;
@@ -1,113 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
2
- import '@luzmo/analytics-components-kit/item-grid';
3
- import type { LuzmoItemGridItemActionsMenu as LuzmoItemGridItemActionsMenuHostElement, ActionGroup } from '@luzmo/analytics-components-kit/item-grid';
4
- export type { Action, ActionGroup, AddGridItemInput, ClonedItemPositioning, DefaultActionType, GridItemActionEventDetail, GridItemData, GridItemPatch, GridItemPosition, GridItemPositionPatch, GridItemRenderer, GridItemSizePatch, GridItemStatesChangedEventDetail, GridLifecycleEventDetail, InputActionGroup, ItemStates } from '@luzmo/analytics-components-kit/item-grid';
5
- import type { Placement } from '@luzmo/lucero';
6
-
7
- @Component({
8
- selector: 'luzmo-item-grid-item-actions-menu',
9
- exportAs: 'luzmoItemGridItemActionsMenu',
10
- standalone: true,
11
- changeDetection: ChangeDetectionStrategy.OnPush,
12
- template: '<ng-content />'
13
- })
14
- /**
15
- * Angular wrapper component for <luzmo-item-grid-item-actions-menu>
16
- */
17
- export class LuzmoItemGridItemActionsMenu implements OnChanges {
18
- private readonly elementRef = inject<ElementRef<LuzmoItemGridItemActionsMenuHostElement>>(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(): LuzmoItemGridItemActionsMenuHostElement {
26
- return this.host;
27
- }
28
-
29
- /** The preferred placement of the menu */
30
- @Input({ alias: 'placement' })
31
- placement?: Placement;
32
-
33
- /** The Actions to display in the menu */
34
- @Input({ alias: 'actions' })
35
- actions?: ActionGroup[];
36
-
37
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
38
- @Input({ alias: 'language' })
39
- language?: string;
40
-
41
- /** Disable this control. It will not receive focus or events */
42
- @Input({ alias: 'disabled', transform: booleanAttribute })
43
- disabled?: boolean;
44
-
45
- /** When this control is rendered, focus it automatically */
46
- @Input({ alias: 'autofocus', transform: booleanAttribute })
47
- autofocus?: boolean;
48
-
49
- /** The tab index to apply to this control. See general documentation about the tabindex HTML property */
50
- @Input({ alias: 'tabIndex' })
51
- tabIndex?: number;
52
-
53
- /** Fired when the user clicks an action in the menu; `detail` holds the action key, type, and active state. */
54
- readonly luzmoItemGridItemAction = output<CustomEvent<unknown>>({ alias: 'luzmoItemGridItemAction' });
55
-
56
- constructor() {
57
- this.bindEvents();
58
- this.destroyRef.onDestroy(() => {
59
- for (const cleanup of this.listenerCleanup) {
60
- cleanup();
61
- }
62
- });
63
- }
64
-
65
- ngOnChanges(changes: SimpleChanges): void {
66
- for (const key of Object.keys(changes)) {
67
- switch (key) {
68
- case 'placement':
69
- this.setHostProperty('placement', changes['placement'].currentValue);
70
- break;
71
- case 'actions':
72
- this.setHostProperty('actions', changes['actions'].currentValue);
73
- break;
74
- case 'language':
75
- this.setHostProperty('language', changes['language'].currentValue);
76
- break;
77
- case 'disabled':
78
- this.setHostProperty('disabled', changes['disabled'].currentValue);
79
- break;
80
- case 'autofocus':
81
- this.setHostProperty('autofocus', changes['autofocus'].currentValue);
82
- break;
83
- case 'tabIndex':
84
- this.setHostProperty('tabIndex', changes['tabIndex'].currentValue);
85
- break;
86
- default:
87
- break;
88
- }
89
- }
90
- }
91
-
92
- /**
93
- * Forward a wrapper @Input to the underlying host element via Renderer2 so
94
- * the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
95
- * Unlike a "skip undefined" guard, this lets consumers reset values back to
96
- * undefined / null by clearing their bindings.
97
- */
98
- private setHostProperty(key: string, value: unknown): void {
99
- this.renderer.setProperty(this.host, key, value);
100
- }
101
-
102
- private bindEvents(): void {
103
- this.listenerCleanup.push(
104
- this.renderer.listen(this.host, 'luzmo-item-grid-item-action', (event: Event) => {
105
- const typed = event as CustomEvent<unknown>;
106
- this.luzmoItemGridItemAction.emit(typed);
107
- })
108
- );
109
- }
110
- }
111
-
112
- /** The underlying custom element type for LuzmoItemGridItemActionsMenu */
113
- export type LuzmoItemGridItemActionsMenuElement = LuzmoItemGridItemActionsMenuHostElement;