@luzmo/analytics-components-kit 1.0.1-alpha.145 → 1.0.1-alpha.147

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 (162) hide show
  1. package/components/ai-chat/ai-chat.d.ts +6 -0
  2. package/components/ai-chat/index.cjs +1 -1
  3. package/components/ai-chat/index.js +5 -5
  4. package/components/ai-chat/request-contract.d.ts +1 -0
  5. package/components/{ai-chat-DreqkkBA.js → ai-chat-C2NIaBZt.js} +8 -6
  6. package/components/{ai-chat-BGgOjOjv.cjs → ai-chat-DRFkGM62.cjs} +3 -2
  7. package/components/ai-interaction-textarea/index.cjs +1 -1
  8. package/components/ai-interaction-textarea/index.js +3 -3
  9. package/components/data-fields-select/index.cjs +1 -1
  10. package/components/data-fields-select/index.js +3 -3
  11. package/components/{data-fields-select-CHOKEMb2.js → data-fields-select-CT_nHj54.js} +1 -1
  12. package/components/{data-fields-select-_WjjNpcl.cjs → data-fields-select-cqu8GYXD.cjs} +1 -1
  13. package/components/dataset-selector-list/index.cjs +1 -1
  14. package/components/dataset-selector-list/index.js +2 -2
  15. package/components/{dataset-selector-list-DYsi3LBF.cjs → dataset-selector-list-BWe9GmlS.cjs} +1 -1
  16. package/components/{dataset-selector-list-C5FvwP-r.js → dataset-selector-list-CA7bLSQv.js} +1 -1
  17. package/components/dataset-selector-row/index.cjs +1 -1
  18. package/components/dataset-selector-row/index.js +3 -3
  19. package/components/{dataset-selector-row-Qwz9WmR4.cjs → dataset-selector-row-DvzyItQS.cjs} +1 -1
  20. package/components/{dataset-selector-row-BKIFTyJl.js → dataset-selector-row-a5GXd9bd.js} +1 -1
  21. package/components/de-Bf2VFw-x.cjs +20 -0
  22. package/components/{de-DOhCpte6.js → de-DvNwu9VQ.js} +2 -2
  23. package/components/display-settings/index.cjs +1 -1
  24. package/components/display-settings/index.js +2 -2
  25. package/components/display-settings-binning/index.cjs +1 -1
  26. package/components/display-settings-binning/index.js +3 -3
  27. package/components/{display-settings-binning-B58LCqmn.js → display-settings-binning-C2r57Fry.js} +1 -1
  28. package/components/{display-settings-binning-Bte25mmH.cjs → display-settings-binning-CnJWueZx.cjs} +1 -1
  29. package/components/display-settings-datetime/index.cjs +1 -1
  30. package/components/display-settings-datetime/index.js +3 -3
  31. package/components/{display-settings-datetime-DAL8zjtk.cjs → display-settings-datetime-C6_LixJp.cjs} +1 -1
  32. package/components/{display-settings-datetime-DxSNsem7.js → display-settings-datetime-qmiiKrhJ.js} +1 -1
  33. package/components/display-settings-grand-totals/index.cjs +1 -1
  34. package/components/display-settings-grand-totals/index.js +3 -3
  35. package/components/{display-settings-grand-totals-Poa2qL3U.js → display-settings-grand-totals-BwiU3Vh8.js} +1 -1
  36. package/components/{display-settings-grand-totals-NWow1vhX.cjs → display-settings-grand-totals-hWqhOTEC.cjs} +1 -1
  37. package/components/display-settings-numeric/index.cjs +1 -1
  38. package/components/display-settings-numeric/index.js +3 -3
  39. package/components/{display-settings-numeric-CTaS1NhY.js → display-settings-numeric-B5uxkOuA.js} +1 -1
  40. package/components/{display-settings-numeric-eG0gr9Jn.cjs → display-settings-numeric-CBpDIbbq.cjs} +1 -1
  41. package/components/display-settings-period-over-period/index.cjs +1 -1
  42. package/components/display-settings-period-over-period/index.js +3 -3
  43. package/components/{display-settings-period-over-period-DjB0K-Zj.cjs → display-settings-period-over-period-B6tX8meQ.cjs} +1 -1
  44. package/components/{display-settings-period-over-period-D9r-6vbW.js → display-settings-period-over-period-CcYF-Mes.js} +1 -1
  45. package/components/draggable-data-field/index.cjs +1 -1
  46. package/components/draggable-data-field/index.js +3 -3
  47. package/components/{draggable-data-field-BIWzuhyP.js → draggable-data-field-BGzTMUzr.js} +1 -1
  48. package/components/{draggable-data-field-Cez4-c6O.cjs → draggable-data-field-Du-icp82.cjs} +1 -1
  49. package/components/draggable-data-field-level/index.cjs +1 -1
  50. package/components/draggable-data-field-level/index.js +2 -2
  51. package/components/draggable-data-fields-panel/index.cjs +1 -1
  52. package/components/draggable-data-fields-panel/index.js +4 -4
  53. package/components/{draggable-data-fields-panel-B0DzaGsv.cjs → draggable-data-fields-panel-Bv-gHe79.cjs} +1 -1
  54. package/components/{draggable-data-fields-panel-C3IwyVQh.js → draggable-data-fields-panel-DDE9erKq.js} +1 -1
  55. package/components/droppable-slot/index.cjs +1 -1
  56. package/components/droppable-slot/index.js +3 -3
  57. package/components/{droppable-slot-BEKnuzJd.js → droppable-slot-9CuoBcbh.js} +1 -1
  58. package/components/{droppable-slot-CHtF9RZo.cjs → droppable-slot-DccN0H1v.cjs} +1 -1
  59. package/components/edit-filters/index.cjs +1 -1
  60. package/components/edit-filters/index.js +10 -10
  61. package/components/{edit-filters-CoVNGAfA.cjs → edit-filters-Bl_Irma5.cjs} +1 -1
  62. package/components/{edit-filters-BHiGSnrn.js → edit-filters-DMH_g3eh.js} +1 -1
  63. package/components/edit-item/index.cjs +1 -1
  64. package/components/edit-item/index.js +2 -2
  65. package/components/edit-option/index.cjs +1 -1
  66. package/components/edit-option/index.js +2 -2
  67. package/components/edit-option-action-button-group/index.cjs +1 -1
  68. package/components/edit-option-action-button-group/index.js +2 -2
  69. package/components/edit-option-color-palette-picker/index.cjs +1 -1
  70. package/components/edit-option-color-palette-picker/index.js +2 -2
  71. package/components/edit-option-color-picker/index.cjs +1 -1
  72. package/components/edit-option-color-picker/index.js +2 -2
  73. package/components/edit-option-color-range/index.cjs +1 -1
  74. package/components/edit-option-color-range/index.js +2 -2
  75. package/components/edit-option-multi-language-field/index.cjs +1 -1
  76. package/components/edit-option-multi-language-field/index.js +2 -2
  77. package/components/edit-option-number-field/index.cjs +1 -1
  78. package/components/edit-option-number-field/index.js +2 -2
  79. package/components/edit-option-picker/index.cjs +1 -1
  80. package/components/edit-option-picker/index.js +2 -2
  81. package/components/edit-option-position-picker/index.cjs +1 -1
  82. package/components/edit-option-position-picker/index.js +2 -2
  83. package/components/edit-option-positions-number-field/index.cjs +1 -1
  84. package/components/edit-option-positions-number-field/index.js +2 -2
  85. package/components/edit-option-radio-button-group/index.cjs +1 -1
  86. package/components/edit-option-radio-button-group/index.js +2 -2
  87. package/components/edit-option-slider/index.cjs +1 -1
  88. package/components/edit-option-slider/index.js +2 -2
  89. package/components/edit-option-switch/index.cjs +1 -1
  90. package/components/edit-option-switch/index.js +2 -2
  91. package/components/edit-option-text-field/index.cjs +1 -1
  92. package/components/edit-option-text-field/index.js +2 -2
  93. package/components/{es-CjgYaJJY.js → es-CHCcffu5.js} +2 -3
  94. package/components/es-mqakqfBn.cjs +20 -0
  95. package/components/filter-expression-picker/index.cjs +1 -1
  96. package/components/filter-expression-picker/index.js +3 -3
  97. package/components/{filter-expression-picker-Dc3K44W0.cjs → filter-expression-picker-jVPy4hoa.cjs} +1 -1
  98. package/components/{filter-expression-picker-Bbu8Bd25.js → filter-expression-picker-jsFVpFSa.js} +1 -1
  99. package/components/filter-item/index.cjs +1 -1
  100. package/components/filter-item/index.js +9 -9
  101. package/components/{filter-item-DmzZL5Wr.js → filter-item-CHA0kiOl.js} +2 -2
  102. package/components/{filter-item-C7i8LLr-.cjs → filter-item-TEM132hc.cjs} +1 -1
  103. package/components/filter-value-picker/index.cjs +1 -1
  104. package/components/filter-value-picker/index.js +6 -6
  105. package/components/{filter-value-picker-Vq-PfjoU.js → filter-value-picker-CC1KB3EX.js} +1 -1
  106. package/components/{filter-value-picker-CwQLOgTl.cjs → filter-value-picker-Crzom8wH.cjs} +1 -1
  107. package/components/filter-value-picker-datetime/index.cjs +1 -1
  108. package/components/filter-value-picker-datetime/index.js +3 -3
  109. package/components/{filter-value-picker-datetime-Cf60JAgg.js → filter-value-picker-datetime--nJbTOa9.js} +1 -1
  110. package/components/{filter-value-picker-datetime-By3czRqA.cjs → filter-value-picker-datetime-C9LXVlCP.cjs} +1 -1
  111. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  112. package/components/filter-value-picker-hierarchy/index.js +3 -3
  113. package/components/{filter-value-picker-hierarchy-CpvItjbb.cjs → filter-value-picker-hierarchy-CfaoAjt6.cjs} +1 -1
  114. package/components/{filter-value-picker-hierarchy-CL1YmeY9.js → filter-value-picker-hierarchy-DtX9lkDz.js} +1 -1
  115. package/components/filter-value-picker-numeric/index.cjs +1 -1
  116. package/components/filter-value-picker-numeric/index.js +3 -3
  117. package/components/{filter-value-picker-numeric-CDUGCKAy.js → filter-value-picker-numeric-BWPRd3Tt.js} +1 -1
  118. package/components/{filter-value-picker-numeric-Dq143AGo.cjs → filter-value-picker-numeric-B_z8opAd.cjs} +1 -1
  119. package/components/{fr-x3aFvlKk.js → fr-DHdsJZjA.js} +2 -2
  120. package/components/fr-bekEvx07.cjs +20 -0
  121. package/components/grid/index.cjs +1 -1
  122. package/components/grid/index.js +3 -3
  123. package/components/{grid-DN9I7DDY.js → grid-BchmSCUT.js} +1 -1
  124. package/components/{grid-By5MAIqI.cjs → grid-NxMxZ8L7.cjs} +1 -1
  125. package/components/index.cjs +1 -1
  126. package/components/index.js +26 -26
  127. package/components/item-data-drop-panel/index.cjs +1 -1
  128. package/components/item-data-drop-panel/index.js +4 -4
  129. package/components/{item-data-drop-panel-hXvAIkBq.js → item-data-drop-panel-BgQiFBID.js} +1 -1
  130. package/components/{item-data-drop-panel-jxlsaggu.cjs → item-data-drop-panel-DgwTr9fZ.cjs} +1 -1
  131. package/components/item-data-picker-panel/index.cjs +1 -1
  132. package/components/item-data-picker-panel/index.js +5 -5
  133. package/components/{item-data-picker-panel-C7wyaWko.js → item-data-picker-panel-BY8jVlsO.js} +1 -1
  134. package/components/{item-data-picker-panel-sWJGFZ7e.cjs → item-data-picker-panel-D2cWbl99.cjs} +1 -1
  135. package/components/{localized-mixin-BhUvOsd7.cjs → localized-mixin-DD2Hm1jz.cjs} +1 -1
  136. package/components/{localized-mixin-HngLqDZn.js → localized-mixin-rjHF23Hg.js} +1 -1
  137. package/components/{nl-Cv7QXh6s.js → nl-BiJX3XhO.js} +2 -2
  138. package/components/nl-DQy1RZ0M.cjs +20 -0
  139. package/components/{set-locale-CdlBx8s9.cjs → set-locale-C9s0jVjQ.cjs} +1 -1
  140. package/components/{set-locale-C3o6ooUV.js → set-locale-CgsoV0B9.js} +4 -4
  141. package/components/slot-contents-picker/index.cjs +1 -1
  142. package/components/slot-contents-picker/index.js +4 -4
  143. package/components/{slot-contents-picker-vO7GDwhF.cjs → slot-contents-picker-CmG--h6p.cjs} +11 -1
  144. package/components/{slot-contents-picker-G3JVFgG1.js → slot-contents-picker-DOyN6E7t.js} +11 -1
  145. package/components/slot-menu/index.cjs +1 -1
  146. package/components/slot-menu/index.js +2 -2
  147. package/components/slot-menu-list/index.cjs +1 -1
  148. package/components/slot-menu-list/index.js +2 -2
  149. package/components/utils/base.cjs +1 -1
  150. package/components/utils/base.js +2 -2
  151. package/components/utils.cjs +1 -1
  152. package/components/utils.js +1 -1
  153. package/components/viz-item-menu/index.cjs +1 -1
  154. package/components/viz-item-menu/index.js +3 -3
  155. package/components/{viz-item-menu-CGhptlJg.cjs → viz-item-menu-BWKYWbgZ.cjs} +1 -1
  156. package/components/{viz-item-menu-BX_S-XUm.js → viz-item-menu-Jqo0-TiF.js} +1 -1
  157. package/custom-elements.json +19 -0
  158. package/package.json +2 -2
  159. package/components/de-DR0saUbU.cjs +0 -20
  160. package/components/es-D8zLt69A.cjs +0 -20
  161. package/components/fr-DKJHfJgy.cjs +0 -20
  162. package/components/nl-DtxDWOXH.cjs +0 -20
@@ -92,6 +92,12 @@ export declare class LuzmoAiChat extends LuzmoElement {
92
92
  * @default '0.1.0'
93
93
  */
94
94
  apiVersion: string;
95
+ /**
96
+ * When true, uses NDJSON streaming for AI responses.
97
+ * When false, uses a single JSON response.
98
+ * @default true
99
+ */
100
+ stream: boolean;
95
101
  /**
96
102
  * Loading message shown while generating and before progress steps are available.
97
103
  * Only effective in external request mode; in internal mode, progress steps
@@ -17,4 +17,4 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../base-C_azywlB.cjs`),require(`../focus-visible-3ACCHno4.cjs`),require(`../set-locale-CdlBx8s9.cjs`),require(`../localized-mixin-BhUvOsd7.cjs`);const e=require(`../ai-chat-BGgOjOjv.cjs`);require(`../dataset-icon-C0cID-ra.cjs`),require(`../data-broker-BUIUM5hr.cjs`),require(`../dataset-selector-list-DYsi3LBF.cjs`),require(`../dataset-selector-row-Qwz9WmR4.cjs`),require(`../ai-interaction-textarea-CcgFeoIg.cjs`),exports.LuzmoAiChat=e.t,exports.buildAiMessageRequest=e.n,exports.createInitialProgress=e.r,exports.fetchStreamingResponse=e.i,exports.hasProgressChunk=e.a,exports.readNdjsonStream=e.o;
20
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../base-C_azywlB.cjs`),require(`../focus-visible-3ACCHno4.cjs`),require(`../set-locale-C9s0jVjQ.cjs`),require(`../localized-mixin-DD2Hm1jz.cjs`);const e=require(`../ai-chat-DRFkGM62.cjs`);require(`../dataset-icon-C0cID-ra.cjs`),require(`../data-broker-BUIUM5hr.cjs`),require(`../dataset-selector-list-BWe9GmlS.cjs`),require(`../dataset-selector-row-DvzyItQS.cjs`),require(`../ai-interaction-textarea-CcgFeoIg.cjs`),exports.LuzmoAiChat=e.t,exports.buildAiMessageRequest=e.n,exports.createInitialProgress=e.r,exports.fetchStreamingResponse=e.i,exports.hasProgressChunk=e.a,exports.readNdjsonStream=e.o;
@@ -25,12 +25,12 @@
25
25
  })();
26
26
  import "../base-rg2x95aL.js";
27
27
  import "../focus-visible-D1pJhWEh.js";
28
- import "../set-locale-C3o6ooUV.js";
29
- import "../localized-mixin-HngLqDZn.js";
30
- import { a as hasProgressChunk, i as fetchStreamingResponse, n as buildAiMessageRequest, o as readNdjsonStream, r as createInitialProgress, t as LuzmoAiChat } from "../ai-chat-DreqkkBA.js";
28
+ import "../set-locale-CgsoV0B9.js";
29
+ import "../localized-mixin-rjHF23Hg.js";
30
+ import { a as hasProgressChunk, i as fetchStreamingResponse, n as buildAiMessageRequest, o as readNdjsonStream, r as createInitialProgress, t as LuzmoAiChat } from "../ai-chat-C2NIaBZt.js";
31
31
  import "../dataset-icon-DhF21dXC.js";
32
32
  import "../data-broker-cLR-t5LM.js";
33
- import "../dataset-selector-list-C5FvwP-r.js";
34
- import "../dataset-selector-row-BKIFTyJl.js";
33
+ import "../dataset-selector-list-CA7bLSQv.js";
34
+ import "../dataset-selector-row-a5GXd9bd.js";
35
35
  import "../ai-interaction-textarea-B5UE7CIq.js";
36
36
  export { LuzmoAiChat, buildAiMessageRequest, createInitialProgress, fetchStreamingResponse, hasProgressChunk, readNdjsonStream };
@@ -28,6 +28,7 @@ export interface BuildAiMessageRequestOptions {
28
28
  chart: LuzmoChart | null;
29
29
  modelPreference: 'performance' | 'quality';
30
30
  apiVersion?: string;
31
+ stream?: boolean;
31
32
  }
32
33
  export interface LuzmoPromptSubmittedEventDetail {
33
34
  prompt: string;
@@ -631,9 +631,9 @@ async function readNdjsonStream(e, t) {
631
631
  n.releaseLock();
632
632
  }
633
633
  }
634
- var ai_chat_module_default = ":host{box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex}:host .chat-container{background:var(--luzmo-ai-chat-background,var(--ai-chat-background));border-radius:var(--luzmo-ai-chat-border-radius,var(--ai-chat-border-radius));width:100%;height:100%;min-height:0;padding:var(--luzmo-ai-chat-padding,var(--ai-chat-padding));gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));border:var(--luzmo-ai-chat-border,var(--ai-chat-border));box-shadow:var(--luzmo-ai-chat-box-shadow,var(--ai-chat-box-shadow));box-sizing:border-box;flex-direction:column;flex:1;display:flex;overflow:hidden}:host .chat-messages-container{gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}:host luzmo-chat-message{--luzmo-primary:rgba(var(--luzmo-primary-rgb),.08);--chat-message-primary-text-color:var(--luzmo-font-color);--chat-message-primary-border-color:transparent}:host luzmo-chat-message.error{color:var(--luzmo-ai-chat-error-message-color,var(--ai-chat-error-message-color))}:host luzmo-ai-interaction-textarea{flex-grow:0;flex-shrink:0}:host luzmo-progress-steps{padding:0 .25rem}:host .loading-message{color:var(--luzmo-font-color);align-items:center;gap:.5rem;display:flex}:host .loading-message svg{color:var(--luzmo-ai-chat-loading-message-color,var(--ai-chat-loading-message-color));font-size:var(--luzmo-ai-chat-loading-message-icon-font-size,var(--ai-chat-loading-message-icon-font-size,1rem));justify-content:center;align-items:center;display:flex}:host .loading-message svg.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:host{--ai-chat-background:var(--luzmo-background-color);--ai-chat-border-radius:0;--ai-chat-padding:0;--ai-chat-gap:1rem;--ai-chat-max-height:none;--ai-chat-messages-flex:1;--ai-chat-border:none;--ai-chat-box-shadow:none;--ai-chat-loading-message-color:var(--luzmo-primary);--ai-chat-error-message-color:var(--luzmo-danger,#dc3545)}";
634
+ var ai_chat_module_default = ":host{box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex}:host .chat-container{background:var(--luzmo-ai-chat-background,var(--ai-chat-background));border-radius:var(--luzmo-ai-chat-border-radius,var(--ai-chat-border-radius));width:100%;height:100%;min-height:0;padding:var(--luzmo-ai-chat-padding,var(--ai-chat-padding));gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));border:var(--luzmo-ai-chat-border,var(--ai-chat-border));box-shadow:var(--luzmo-ai-chat-box-shadow,var(--ai-chat-box-shadow));box-sizing:border-box;flex-direction:column;flex:1;display:flex;overflow:hidden}:host .chat-messages-container{gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}:host .chat-messages-container::-webkit-scrollbar{width:var(--luzmo-ai-chat-scrollbar-width,var(--ai-chat-scrollbar-width))}:host .chat-messages-container::-webkit-scrollbar-track{background:var(--luzmo-ai-chat-scrollbar-track-background,var(--ai-chat-scrollbar-track-background));border-radius:var(--luzmo-ai-chat-scrollbar-track-border-radius,var(--ai-chat-scrollbar-track-border-radius))}:host .chat-messages-container::-webkit-scrollbar-thumb{background:var(--luzmo-ai-chat-scrollbar-thumb-background,var(--ai-chat-scrollbar-thumb-background));border-radius:var(--luzmo-ai-chat-scrollbar-thumb-border-radius,var(--ai-chat-scrollbar-thumb-border-radius))}:host .chat-messages-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-ai-chat-scrollbar-thumb-hover-background,var(--ai-chat-scrollbar-thumb-hover-background))}:host .chat-messages-container{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-ai-chat-scrollbar-thumb-background,var(--ai-chat-scrollbar-thumb-background,var(--luzmo-scrollbar-thumb-background)))var(--luzmo-ai-chat-scrollbar-track-background,var(--ai-chat-scrollbar-track-background,var(--luzmo-scrollbar-track-background)))}:host luzmo-chat-message{--luzmo-primary:rgba(var(--luzmo-primary-rgb),.08);--chat-message-primary-text-color:var(--luzmo-font-color);--chat-message-primary-border-color:transparent}:host luzmo-chat-message.error{color:var(--luzmo-ai-chat-error-message-color,var(--ai-chat-error-message-color))}:host luzmo-ai-interaction-textarea{flex-grow:0;flex-shrink:0}:host luzmo-progress-steps{padding:0 .25rem}:host .loading-message{color:var(--luzmo-font-color);align-items:center;gap:.5rem;display:flex}:host .loading-message svg{color:var(--luzmo-ai-chat-loading-message-color,var(--ai-chat-loading-message-color));font-size:var(--luzmo-ai-chat-loading-message-icon-font-size,var(--ai-chat-loading-message-icon-font-size,1rem));justify-content:center;align-items:center;display:flex}:host .loading-message svg.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:host{--ai-chat-background:var(--luzmo-background-color);--ai-chat-border-radius:0;--ai-chat-padding:0;--ai-chat-gap:1rem;--ai-chat-max-height:none;--ai-chat-messages-flex:1;--ai-chat-border:none;--ai-chat-box-shadow:none;--ai-chat-loading-message-color:var(--luzmo-primary);--ai-chat-error-message-color:var(--luzmo-danger,#dc3545);--ai-chat-scrollbar-width:var(--luzmo-scrollbar-size);--ai-chat-scrollbar-track-background:var(--luzmo-scrollbar-track-background);--ai-chat-scrollbar-track-border-radius:var(--luzmo-scrollbar-track-border-radius);--ai-chat-scrollbar-thumb-background:var(--luzmo-scrollbar-thumb-background);--ai-chat-scrollbar-thumb-border-radius:var(--luzmo-scrollbar-thumb-border-radius);--ai-chat-scrollbar-thumb-hover-background:var(--luzmo-scrollbar-thumb-hover-background)}";
635
635
  function buildAiMessageRequest(e) {
636
- let { prompt: t, datasetIds: n, authKey: r, authToken: i, conversationId: a, chart: o, modelPreference: s, apiVersion: c = "0.1.0" } = e;
636
+ let { prompt: t, datasetIds: n, authKey: r, authToken: i, conversationId: a, chart: o, modelPreference: s, apiVersion: c = "0.1.0", stream: l = !0 } = e;
637
637
  return {
638
638
  key: r,
639
639
  token: i,
@@ -648,7 +648,7 @@ function buildAiMessageRequest(e) {
648
648
  },
649
649
  options: {
650
650
  available_datasets: n,
651
- stream: !0,
651
+ stream: l,
652
652
  ...n.length > 0 ? { dataset_id: n[0] } : {},
653
653
  ...o && o.type !== "placeholder" ? { chart: {
654
654
  ...o,
@@ -663,7 +663,7 @@ function buildAiMessageRequest(e) {
663
663
  }
664
664
  var LuzmoAiChat = class extends LuzmoElement {
665
665
  constructor(...e) {
666
- super(...e), this.messages = [], this.selectedDatasets = [], this.placeholder = "Describe your change", this.disabled = !1, this.showAssistantContextMenu = !1, this.authKey = "", this.authToken = "", this.apiUrl = "https://api.luzmo.com", this.appServer = "https://app.luzmo.com", this.flagOpendata = !1, this.hideDatasetButton = !1, this.modelPreference = "performance", this.requestMode = "internal", this.isGenerating = !1, this.conversationId = null, this.chart = null, this.apiVersion = "0.1.0", this.loadingMessage = null, this.initialPrompt = null, this.progress = null, this.progressCollapsed = !1, this._progress = null, this._progressCollapsed = !1, this._isGeneratingInternal = !1, this._textareaValue = "", this._abortController = null, this._inflightAiMessage = null, this._lastProcessedInitialPrompt = null, this._receivedProgress = !1;
666
+ super(...e), this.messages = [], this.selectedDatasets = [], this.placeholder = "Describe your change", this.disabled = !1, this.showAssistantContextMenu = !1, this.authKey = "", this.authToken = "", this.apiUrl = "https://api.luzmo.com", this.appServer = "https://app.luzmo.com", this.flagOpendata = !1, this.hideDatasetButton = !1, this.modelPreference = "performance", this.requestMode = "internal", this.isGenerating = !1, this.conversationId = null, this.chart = null, this.apiVersion = "0.1.0", this.stream = !0, this.loadingMessage = null, this.initialPrompt = null, this.progress = null, this.progressCollapsed = !1, this._progress = null, this._progressCollapsed = !1, this._isGeneratingInternal = !1, this._textareaValue = "", this._abortController = null, this._inflightAiMessage = null, this._lastProcessedInitialPrompt = null, this._receivedProgress = !1;
667
667
  }
668
668
  static {
669
669
  this.styles = unsafeCSS(ai_chat_module_default);
@@ -683,7 +683,8 @@ var LuzmoAiChat = class extends LuzmoElement {
683
683
  conversationId: this.conversationId,
684
684
  chart: this.chart,
685
685
  modelPreference: this.modelPreference,
686
- apiVersion: this.apiVersion
686
+ apiVersion: this.apiVersion,
687
+ stream: this.stream
687
688
  });
688
689
  }
689
690
  _finalizeInflightMessage() {
@@ -941,6 +942,7 @@ var LuzmoAiChat = class extends LuzmoElement {
941
942
  <luzmo-progress-steps
942
943
  .progress=${e.progress}
943
944
  collapsed
945
+ no-animate
944
946
  size="s"
945
947
  ></luzmo-progress-steps>
946
948
  ` : nothing;
@@ -1086,7 +1088,7 @@ __decorate([property({ type: Array })], LuzmoAiChat.prototype, "messages", void
1086
1088
  })], LuzmoAiChat.prototype, "chart", void 0), __decorate([property({
1087
1089
  type: String,
1088
1090
  attribute: "api-version"
1089
- })], LuzmoAiChat.prototype, "apiVersion", void 0), __decorate([property({
1091
+ })], LuzmoAiChat.prototype, "apiVersion", void 0), __decorate([property({ converter: { fromAttribute: (e) => e !== "false" && e !== null } })], LuzmoAiChat.prototype, "stream", void 0), __decorate([property({
1090
1092
  type: String,
1091
1093
  attribute: "loading-message"
1092
1094
  })], LuzmoAiChat.prototype, "loadingMessage", void 0), __decorate([property({
@@ -19,7 +19,7 @@
19
19
  * */
20
20
  const e=require(`./chunk-350yNsax.cjs`),t=require(`./base-C_azywlB.cjs`),n=require(`./decorate-Dq4-zbi1.cjs`);let r=require(`@lit/localize/lit-localize`),i=require(`@luzmo/icons`);require(`@luzmo/lucero/chat-message`),require(`@luzmo/lucero/progress-steps`);let a=require(`lit`),o=require(`lit/decorators.js`),s=require(`lit/directives/unsafe-html.js`);var{entries:c,setPrototypeOf:l,isFrozen:u,getPrototypeOf:d,getOwnPropertyDescriptor:ee}=Object,{freeze:f,seal:p,create:te}=Object,{apply:m,construct:h}=typeof Reflect<`u`&&Reflect;f||=function(e){return e},p||=function(e){return e},m||=function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return e.apply(t,r)},h||=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new e(...n)};var ne=x(Array.prototype.forEach),re=x(Array.prototype.lastIndexOf),ie=x(Array.prototype.pop),g=x(Array.prototype.push),ae=x(Array.prototype.splice),oe=x(String.prototype.toLowerCase),se=x(String.prototype.toString),ce=x(String.prototype.match),_=x(String.prototype.replace),le=x(String.prototype.indexOf),ue=x(String.prototype.trim),v=x(Object.prototype.hasOwnProperty),y=x(RegExp.prototype.test),b=de(TypeError);function x(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return m(e,t,r)}}function de(e){return function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return h(e,n)}}function S(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:oe;l&&l(e,null);let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(u(t)||(t[r]=e),i=e)}e[i]=!0}return e}function fe(e){for(let t=0;t<e.length;t++)v(e,t)||(e[t]=null);return e}function C(e){let t=te(null);for(let[n,r]of c(e))v(e,n)&&(Array.isArray(r)?t[n]=fe(r):r&&typeof r==`object`&&r.constructor===Object?t[n]=C(r):t[n]=r);return t}function w(e,t){for(;e!==null;){let n=ee(e,t);if(n){if(n.get)return x(n.get);if(typeof n.value==`function`)return x(n.value)}e=d(e)}function n(){return null}return n}var pe=f(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),me=f(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),he=f([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),ge=f([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),_e=f(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),ve=f([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),ye=f([`#text`]),be=f(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns.slot`.split(`.`)),xe=f(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Se=f(`accent.accentunder.align.bevelled.close.columnsalign.columnlines.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lspace.lquote.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),T=f([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Ce=p(/\{\{[\w\W]*|[\w\W]*\}\}/gm),E=p(/<%[\w\W]*|[\w\W]*%>/gm),D=p(/\$\{[\w\W]*/gm),O=p(/^data-[\-\w.\u00B7-\uFFFF]+$/),we=p(/^aria-[\-\w]+$/),Te=p(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Ee=p(/^(?:\w+script|data):/i),De=p(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Oe=p(/^html$/i),ke=p(/^[a-z][.\w]*(-[.\w]+)+$/i),Ae=Object.freeze({__proto__:null,ARIA_ATTR:we,ATTR_WHITESPACE:De,CUSTOM_ELEMENT:ke,DATA_ATTR:O,DOCTYPE_NAME:Oe,ERB_EXPR:E,IS_ALLOWED_URI:Te,IS_SCRIPT_OR_DATA:Ee,MUSTACHE_EXPR:Ce,TMPLIT_EXPR:D}),k={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},je=function(){return typeof window>`u`?null:window},Me=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},Ne=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function Pe(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:je(),t=e=>Pe(e);if(t.version=`3.3.1`,t.removed=[],!e||!e.document||e.document.nodeType!==k.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e,r=n,i=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:o,Node:s,Element:l,NodeFilter:u,NamedNodeMap:d=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:ee,DOMParser:p,trustedTypes:m}=e,h=l.prototype,x=w(h,`cloneNode`),de=w(h,`remove`),fe=w(h,`nextSibling`),Ce=w(h,`childNodes`),E=w(h,`parentNode`);if(typeof o==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let D,O=``,{implementation:we,createNodeIterator:Ee,createDocumentFragment:De,getElementsByTagName:ke}=n,{importNode:Fe}=r,A=Ne();t.isSupported=typeof c==`function`&&typeof E==`function`&&we&&we.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:j,ERB_EXPR:M,TMPLIT_EXPR:N,DATA_ATTR:Ie,ARIA_ATTR:Le,IS_SCRIPT_OR_DATA:P,ATTR_WHITESPACE:Re,CUSTOM_ELEMENT:ze}=Ae,{IS_ALLOWED_URI:Be}=Ae,F=null,Ve=S({},[...pe,...me,...he,..._e,...ye]),I=null,He=S({},[...be,...xe,...Se,...T]),L=Object.seal(te(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),R=null,Ue=null,z=Object.seal(te(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),We=!0,Ge=!0,Ke=!1,qe=!0,B=!1,Je=!0,V=!1,Ye=!1,Xe=!1,H=!1,Ze=!1,Qe=!1,$e=!0,et=!1,tt=!0,U=!1,W={},G=null,nt=S({},[`annotation-xml`,`audio`,`colgroup`,`desc`,`foreignobject`,`head`,`iframe`,`math`,`mi`,`mn`,`mo`,`ms`,`mtext`,`noembed`,`noframes`,`noscript`,`plaintext`,`script`,`style`,`svg`,`template`,`thead`,`title`,`video`,`xmp`]),rt=null,it=S({},[`audio`,`video`,`img`,`source`,`image`,`track`]),at=null,ot=S({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),st=`http://www.w3.org/1998/Math/MathML`,ct=`http://www.w3.org/2000/svg`,K=`http://www.w3.org/1999/xhtml`,q=K,lt=!1,ut=null,dt=S({},[st,ct,K],se),ft=S({},[`mi`,`mo`,`mn`,`ms`,`mtext`]),pt=S({},[`annotation-xml`]),mt=S({},[`title`,`style`,`font`,`a`,`script`]),J=null,ht=[`application/xhtml+xml`,`text/html`],Y=null,X=null,gt=n.createElement(`form`),_t=function(e){return e instanceof RegExp||e instanceof Function},vt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(X&&X===e)){if((!e||typeof e!=`object`)&&(e={}),e=C(e),J=ht.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,Y=J===`application/xhtml+xml`?se:oe,F=v(e,`ALLOWED_TAGS`)?S({},e.ALLOWED_TAGS,Y):Ve,I=v(e,`ALLOWED_ATTR`)?S({},e.ALLOWED_ATTR,Y):He,ut=v(e,`ALLOWED_NAMESPACES`)?S({},e.ALLOWED_NAMESPACES,se):dt,at=v(e,`ADD_URI_SAFE_ATTR`)?S(C(ot),e.ADD_URI_SAFE_ATTR,Y):ot,rt=v(e,`ADD_DATA_URI_TAGS`)?S(C(it),e.ADD_DATA_URI_TAGS,Y):it,G=v(e,`FORBID_CONTENTS`)?S({},e.FORBID_CONTENTS,Y):nt,R=v(e,`FORBID_TAGS`)?S({},e.FORBID_TAGS,Y):C({}),Ue=v(e,`FORBID_ATTR`)?S({},e.FORBID_ATTR,Y):C({}),W=v(e,`USE_PROFILES`)?e.USE_PROFILES:!1,We=e.ALLOW_ARIA_ATTR!==!1,Ge=e.ALLOW_DATA_ATTR!==!1,Ke=e.ALLOW_UNKNOWN_PROTOCOLS||!1,qe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,B=e.SAFE_FOR_TEMPLATES||!1,Je=e.SAFE_FOR_XML!==!1,V=e.WHOLE_DOCUMENT||!1,H=e.RETURN_DOM||!1,Ze=e.RETURN_DOM_FRAGMENT||!1,Qe=e.RETURN_TRUSTED_TYPE||!1,Xe=e.FORCE_BODY||!1,$e=e.SANITIZE_DOM!==!1,et=e.SANITIZE_NAMED_PROPS||!1,tt=e.KEEP_CONTENT!==!1,U=e.IN_PLACE||!1,Be=e.ALLOWED_URI_REGEXP||Te,q=e.NAMESPACE||K,ft=e.MATHML_TEXT_INTEGRATION_POINTS||ft,pt=e.HTML_INTEGRATION_POINTS||pt,L=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&_t(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(L.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&_t(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(L.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements==`boolean`&&(L.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),B&&(Ge=!1),Ze&&(H=!0),W&&(F=S({},ye),I=[],W.html===!0&&(S(F,pe),S(I,be)),W.svg===!0&&(S(F,me),S(I,xe),S(I,T)),W.svgFilters===!0&&(S(F,he),S(I,xe),S(I,T)),W.mathMl===!0&&(S(F,_e),S(I,Se),S(I,T))),e.ADD_TAGS&&(typeof e.ADD_TAGS==`function`?z.tagCheck=e.ADD_TAGS:(F===Ve&&(F=C(F)),S(F,e.ADD_TAGS,Y))),e.ADD_ATTR&&(typeof e.ADD_ATTR==`function`?z.attributeCheck=e.ADD_ATTR:(I===He&&(I=C(I)),S(I,e.ADD_ATTR,Y))),e.ADD_URI_SAFE_ATTR&&S(at,e.ADD_URI_SAFE_ATTR,Y),e.FORBID_CONTENTS&&(G===nt&&(G=C(G)),S(G,e.FORBID_CONTENTS,Y)),e.ADD_FORBID_CONTENTS&&(G===nt&&(G=C(G)),S(G,e.ADD_FORBID_CONTENTS,Y)),tt&&(F[`#text`]=!0),V&&S(F,[`html`,`head`,`body`]),F.table&&(S(F,[`tbody`]),delete R.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw b(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw b(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);D=e.TRUSTED_TYPES_POLICY,O=D.createHTML(``)}else D===void 0&&(D=Me(m,i)),D!==null&&typeof O==`string`&&(O=D.createHTML(``));f&&f(e),X=e}},yt=S({},[...me,...he,...ge]),bt=S({},[..._e,...ve]),xt=function(e){let t=E(e);(!t||!t.tagName)&&(t={namespaceURI:q,tagName:`template`});let n=oe(e.tagName),r=oe(t.tagName);return ut[e.namespaceURI]?e.namespaceURI===ct?t.namespaceURI===K?n===`svg`:t.namespaceURI===st?n===`svg`&&(r===`annotation-xml`||ft[r]):!!yt[n]:e.namespaceURI===st?t.namespaceURI===K?n===`math`:t.namespaceURI===ct?n===`math`&&pt[r]:!!bt[n]:e.namespaceURI===K?t.namespaceURI===ct&&!pt[r]||t.namespaceURI===st&&!ft[r]?!1:!bt[n]&&(mt[n]||!yt[n]):!!(J===`application/xhtml+xml`&&ut[e.namespaceURI]):!1},Z=function(e){g(t.removed,{element:e});try{E(e).removeChild(e)}catch{de(e)}},Q=function(e,n){try{g(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{g(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(H||Ze)try{Z(n)}catch{}else try{n.setAttribute(e,``)}catch{}},St=function(e){let t=null,r=null;if(Xe)e=`<remove></remove>`+e;else{let t=ce(e,/^[\r\n\t ]+/);r=t&&t[0]}J===`application/xhtml+xml`&&q===K&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=D?D.createHTML(e):e;if(q===K)try{t=new p().parseFromString(i,J)}catch{}if(!t||!t.documentElement){t=we.createDocument(q,`template`,null);try{t.documentElement.innerHTML=lt?O:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),q===K?ke.call(t,V?`html`:`body`)[0]:V?t.documentElement:a},Ct=function(e){return Ee.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},wt=function(e){return e instanceof ee&&(typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||!(e.attributes instanceof d)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`)},Tt=function(e){return typeof s==`function`&&e instanceof s};function $(e,n,r){ne(e,e=>{e.call(t,n,r,X)})}let Et=function(e){let n=null;if($(A.beforeSanitizeElements,e,null),wt(e))return Z(e),!0;let r=Y(e.nodeName);if($(A.uponSanitizeElement,e,{tagName:r,allowedTags:F}),Je&&e.hasChildNodes()&&!Tt(e.firstElementChild)&&y(/<[/\w!]/g,e.innerHTML)&&y(/<[/\w!]/g,e.textContent)||e.nodeType===k.progressingInstruction||Je&&e.nodeType===k.comment&&y(/<[/\w]/g,e.data))return Z(e),!0;if(!(z.tagCheck instanceof Function&&z.tagCheck(r))&&(!F[r]||R[r])){if(!R[r]&&Ot(r)&&(L.tagNameCheck instanceof RegExp&&y(L.tagNameCheck,r)||L.tagNameCheck instanceof Function&&L.tagNameCheck(r)))return!1;if(tt&&!G[r]){let t=E(e)||e.parentNode,n=Ce(e)||e.childNodes;if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=x(n[i],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,fe(e))}}}return Z(e),!0}return e instanceof l&&!xt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&y(/<\/no(script|embed|frames)/i,e.innerHTML)?(Z(e),!0):(B&&e.nodeType===k.text&&(n=e.textContent,ne([j,M,N],e=>{n=_(n,e,` `)}),e.textContent!==n&&(g(t.removed,{element:e.cloneNode()}),e.textContent=n)),$(A.afterSanitizeElements,e,null),!1)},Dt=function(e,t,r){if($e&&(t===`id`||t===`name`)&&(r in n||r in gt))return!1;if(!(Ge&&!Ue[t]&&y(Ie,t))&&!(We&&y(Le,t))&&!(z.attributeCheck instanceof Function&&z.attributeCheck(t,e))){if(!I[t]||Ue[t]){if(!(Ot(e)&&(L.tagNameCheck instanceof RegExp&&y(L.tagNameCheck,e)||L.tagNameCheck instanceof Function&&L.tagNameCheck(e))&&(L.attributeNameCheck instanceof RegExp&&y(L.attributeNameCheck,t)||L.attributeNameCheck instanceof Function&&L.attributeNameCheck(t,e))||t===`is`&&L.allowCustomizedBuiltInElements&&(L.tagNameCheck instanceof RegExp&&y(L.tagNameCheck,r)||L.tagNameCheck instanceof Function&&L.tagNameCheck(r))))return!1}else if(!at[t]&&!y(Be,_(r,Re,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&le(r,`data:`)===0&&rt[e])&&!(Ke&&!y(P,_(r,Re,``)))&&r)return!1}return!0},Ot=function(e){return e!==`annotation-xml`&&ce(e,ze)},kt=function(e){$(A.beforeSanitizeAttributes,e,null);let{attributes:n}=e;if(!n||wt(e))return;let r={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:I,forceKeepAttr:void 0},i=n.length;for(;i--;){let{name:a,namespaceURI:o,value:s}=n[i],c=Y(a),l=s,u=a===`value`?l:ue(l);if(r.attrName=c,r.attrValue=u,r.keepAttr=!0,r.forceKeepAttr=void 0,$(A.uponSanitizeAttribute,e,r),u=r.attrValue,et&&(c===`id`||c===`name`)&&(Q(a,e),u=`user-content-`+u),Je&&y(/((--!?|])>)|<\/(style|title|textarea)/i,u)){Q(a,e);continue}if(c===`attributename`&&ce(u,`href`)){Q(a,e);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){Q(a,e);continue}if(!qe&&y(/\/>/i,u)){Q(a,e);continue}B&&ne([j,M,N],e=>{u=_(u,e,` `)});let d=Y(e.nodeName);if(!Dt(d,c,u)){Q(a,e);continue}if(D&&typeof m==`object`&&typeof m.getAttributeType==`function`&&!o)switch(m.getAttributeType(d,c)){case`TrustedHTML`:u=D.createHTML(u);break;case`TrustedScriptURL`:u=D.createScriptURL(u);break}if(u!==l)try{o?e.setAttributeNS(o,a,u):e.setAttribute(a,u),wt(e)?Z(e):ie(t.removed)}catch{Q(a,e)}}$(A.afterSanitizeAttributes,e,null)},At=function e(t){let n=null,r=Ct(t);for($(A.beforeSanitizeShadowDOM,t,null);n=r.nextNode();)$(A.uponSanitizeShadowNode,n,null),Et(n),kt(n),n.content instanceof a&&e(n.content);$(A.afterSanitizeShadowDOM,t,null)};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,o=null,c=null,l=null;if(lt=!e,lt&&(e=`<!-->`),typeof e!=`string`&&!Tt(e))if(typeof e.toString==`function`){if(e=e.toString(),typeof e!=`string`)throw b(`dirty is not a string, aborting`)}else throw b(`toString is not a function`);if(!t.isSupported)return e;if(Ye||vt(n),t.removed=[],typeof e==`string`&&(U=!1),U){if(e.nodeName){let t=Y(e.nodeName);if(!F[t]||R[t])throw b(`root node is forbidden and cannot be sanitized in-place`)}}else if(e instanceof s)i=St(`<!---->`),o=i.ownerDocument.importNode(e,!0),o.nodeType===k.element&&o.nodeName===`BODY`||o.nodeName===`HTML`?i=o:i.appendChild(o);else{if(!H&&!B&&!V&&e.indexOf(`<`)===-1)return D&&Qe?D.createHTML(e):e;if(i=St(e),!i)return H?null:Qe?O:``}i&&Xe&&Z(i.firstChild);let u=Ct(U?e:i);for(;c=u.nextNode();)Et(c),kt(c),c.content instanceof a&&At(c.content);if(U)return e;if(H){if(Ze)for(l=De.call(i.ownerDocument);i.firstChild;)l.appendChild(i.firstChild);else l=i;return(I.shadowroot||I.shadowrootmode)&&(l=Fe.call(r,l,!0)),l}let d=V?i.outerHTML:i.innerHTML;return V&&F[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&y(Oe,i.ownerDocument.doctype.name)&&(d=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
21
21
  `+d),B&&ne([j,M,N],e=>{d=_(d,e,` `)}),D&&Qe?D.createHTML(d):d},t.setConfig=function(){vt(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),Ye=!0},t.clearConfig=function(){X=null,Ye=!1},t.isValidAttribute=function(e,t,n){return X||vt({}),Dt(Y(e),Y(t),n)},t.addHook=function(e,t){typeof t==`function`&&g(A[e],t)},t.removeHook=function(e,t){if(t!==void 0){let n=re(A[e],t);return n===-1?void 0:ae(A[e],n,1)[0]}return ie(A[e])},t.removeHooks=function(e){A[e]=[]},t.removeAllHooks=function(){A=Ne()},t}var Fe=Pe();function A(){return{id:`root`,step:`root`,status:`pending`,children:[{id:`client-init`,step:`iqInit`,status:`inProgress`,description:`Thinking`}]}}function j(e){let t=e.progress;return typeof t!=`object`||!t?!1:`id`in t&&`step`in t&&`status`in t}async function M(e){let t=await fetch(e.url,{method:`POST`,headers:{"Content-Type":`application/json`},mode:`cors`,body:JSON.stringify(e.body),signal:e.signal});if(!t.ok){let e=await t.json().catch(()=>null);throw Error(e?.message||`API request failed with status ${t.status}`)}if(!t.body)throw Error(`Response body is not readable`);return{body:t.body,conversationId:t.headers.get(`x-conversation-id`)}}async function N(e,t){let n=e.getReader(),r=new TextDecoder,i=``;try{for(;;){let{done:e,value:a}=await n.read();if(e)break;i+=r.decode(a,{stream:!0});let o=i.split(`
22
- `);i=o.pop()??``;for(let e of o)if(e.trim())try{t(JSON.parse(e))}catch{console.error(`Failed to parse NDJSON line:`,e)}}if(i+=r.decode(),i.trim())try{t(JSON.parse(i))}catch{console.error(`Failed to parse final NDJSON buffer:`,i)}}finally{n.releaseLock()}}var Ie=`:host{box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex}:host .chat-container{background:var(--luzmo-ai-chat-background,var(--ai-chat-background));border-radius:var(--luzmo-ai-chat-border-radius,var(--ai-chat-border-radius));width:100%;height:100%;min-height:0;padding:var(--luzmo-ai-chat-padding,var(--ai-chat-padding));gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));border:var(--luzmo-ai-chat-border,var(--ai-chat-border));box-shadow:var(--luzmo-ai-chat-box-shadow,var(--ai-chat-box-shadow));box-sizing:border-box;flex-direction:column;flex:1;display:flex;overflow:hidden}:host .chat-messages-container{gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}:host luzmo-chat-message{--luzmo-primary:rgba(var(--luzmo-primary-rgb),.08);--chat-message-primary-text-color:var(--luzmo-font-color);--chat-message-primary-border-color:transparent}:host luzmo-chat-message.error{color:var(--luzmo-ai-chat-error-message-color,var(--ai-chat-error-message-color))}:host luzmo-ai-interaction-textarea{flex-grow:0;flex-shrink:0}:host luzmo-progress-steps{padding:0 .25rem}:host .loading-message{color:var(--luzmo-font-color);align-items:center;gap:.5rem;display:flex}:host .loading-message svg{color:var(--luzmo-ai-chat-loading-message-color,var(--ai-chat-loading-message-color));font-size:var(--luzmo-ai-chat-loading-message-icon-font-size,var(--ai-chat-loading-message-icon-font-size,1rem));justify-content:center;align-items:center;display:flex}:host .loading-message svg.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:host{--ai-chat-background:var(--luzmo-background-color);--ai-chat-border-radius:0;--ai-chat-padding:0;--ai-chat-gap:1rem;--ai-chat-max-height:none;--ai-chat-messages-flex:1;--ai-chat-border:none;--ai-chat-box-shadow:none;--ai-chat-loading-message-color:var(--luzmo-primary);--ai-chat-error-message-color:var(--luzmo-danger,#dc3545)}`;function Le(e){let{prompt:t,datasetIds:n,authKey:r,authToken:i,conversationId:a,chart:o,modelPreference:s,apiVersion:c=`0.1.0`}=e;return{key:r,token:i,action:`create`,version:c,properties:{content:{role:`user`,content:t},...a?{conversation_id:a}:{}},options:{available_datasets:n,stream:!0,...n.length>0?{dataset_id:n[0]}:{},...o&&o.type!==`placeholder`?{chart:{...o,version:o.version||``,title:o.title||o.options.title,filters:o.filterGroups||[],aichartId:o.aichartId||``}}:{},model_preference:s}}}var P=class extends t.i{constructor(...e){super(...e),this.messages=[],this.selectedDatasets=[],this.placeholder=`Describe your change`,this.disabled=!1,this.showAssistantContextMenu=!1,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.flagOpendata=!1,this.hideDatasetButton=!1,this.modelPreference=`performance`,this.requestMode=`internal`,this.isGenerating=!1,this.conversationId=null,this.chart=null,this.apiVersion=`0.1.0`,this.loadingMessage=null,this.initialPrompt=null,this.progress=null,this.progressCollapsed=!1,this._progress=null,this._progressCollapsed=!1,this._isGeneratingInternal=!1,this._textareaValue=``,this._abortController=null,this._inflightAiMessage=null,this._lastProcessedInitialPrompt=null,this._receivedProgress=!1}static{this.styles=(0,a.unsafeCSS)(Ie)}static{this.tagName=`luzmo-ai-chat`}_generateMessageId(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}_buildRequestBody(e,t){return Le({prompt:e,datasetIds:t,authKey:this.authKey,authToken:this.authToken,conversationId:this.conversationId,chart:this.chart,modelPreference:this.modelPreference,apiVersion:this.apiVersion})}_finalizeInflightMessage(){this._inflightAiMessage&&=(this._progress&&this._receivedProgress&&(this._inflightAiMessage.progress=structuredClone(this._progress),this._updateMessage(this._inflightAiMessage)),this._progress=null,this._progressCollapsed=!1,this._receivedProgress=!1,null)}async _sendStreamingMessage(e,t){this._abortController&&(this._abortController.abort(),this._inflightAiMessage&&!this._inflightAiMessage.message&&(this.messages=this.messages.filter(e=>e.id!==this._inflightAiMessage.id))),this._finalizeInflightMessage(),this._inflightAiMessage=t;let n=new AbortController;this._abortController=n,this._progress=A(),this._progressCollapsed=!1,this._receivedProgress=!1;let r=!1;try{let{body:i,conversationId:a}=await M({url:`${this.apiUrl}/${this.apiVersion}/aimessage`,body:e,signal:n.signal});a&&(this.conversationId=a),await N(i,e=>this._processStreamChunk(e,t)),r=!0}finally{this._abortController===n&&(r?this._finalizeInflightMessage():this._inflightAiMessage=null,this._isGeneratingInternal=!1,this._abortController=null)}}_processStreamChunk(e,t){if(j(e)&&(this._receivedProgress=!0,this._progress=e.progress),e.error){t.message=e.error,t.isError=!0,this._updateMessage(t),this._progress=null,this._progressCollapsed=!1,this.dispatchEvent(new CustomEvent(`luzmo-response-received`,{detail:{message:t,done:!0},bubbles:!0,composed:!0}));return}let n=e.chart??e.generatedChart;if(n){let r={...e,generatedChart:n,conversationId:this.conversationId};this.dispatchEvent(new CustomEvent(`luzmo-chart-generated`,{detail:{aiSampleChart:r},bubbles:!0,composed:!0}));let i=typeof e.chunk==`string`&&e.chunk||typeof e.message==`string`&&e.message;i&&(t.message=(t.message||``)+i),this._updateMessage(t),(e.done||`question`in e)&&(this._progressCollapsed=!0,t.message&&this.dispatchEvent(new CustomEvent(`luzmo-response-received`,{detail:{message:t,done:!0},bubbles:!0,composed:!0})));return}let r=typeof e.chunk==`string`&&e.chunk||typeof e.message==`string`&&e.message||``;r&&(this._progressCollapsed||=!0,t.message=(t.message||``)+r,this._updateMessage(t));let i=e.done||`question`in e;i&&(this._progressCollapsed=!0),(r||i&&t.message)&&this.dispatchEvent(new CustomEvent(`luzmo-response-received`,{detail:{message:t,done:!!i},bubbles:!0,composed:!0}))}_addUserMessage(e,t){let n={id:this._generateMessageId(),type:`user`,message:e};this.messages=[...this.messages,n],this._textareaValue=``,this.dispatchEvent(new CustomEvent(`luzmo-message-sent`,{detail:{message:n,selectedDatasets:t},bubbles:!0,composed:!0}))}_updateMessage(e){this.messages=this.messages.map(t=>t.id===e.id?{...e}:t)}_prepareForAIResponse(){this._isGeneratingInternal=!0;let e={id:this._generateMessageId(),type:`ai`,message:``};return this.messages=[...this.messages,e],e}_handleAPIError(e,t){console.error(`AI Chart Generation Error:`,e),this._progress=null,this._progressCollapsed=!1;let n=(0,r.msg)(`Something went wrong. Please try again.`,{desc:`Generic error message shown in ai chat when the API request fails`});if(t)t.message=n,t.isError=!0,delete t.progress,this._updateMessage(t);else{let e={id:this._generateMessageId(),type:`ai`,message:n,isError:!0};this.messages=[...this.messages,e],t=e}this.dispatchEvent(new CustomEvent(`luzmo-response-received`,{detail:{message:t,error:e},bubbles:!0,composed:!0}))}_handleDatasetSelected(e){let t=e.detail;this.selectedDatasets.some(e=>e.id===t.id)||(this.selectedDatasets=[...this.selectedDatasets,t],this._emitDatasetsChanged())}_handleDatasetRemoved(e){let t=e.detail;this.selectedDatasets=this.selectedDatasets.filter(e=>e.id!==t.id),this._emitDatasetsChanged()}_emitDatasetsChanged(){this.dispatchEvent(new CustomEvent(`luzmo-datasets-changed`,{detail:{selectedDatasets:this.selectedDatasets},bubbles:!0,composed:!0}))}async _handlePromptSubmitted(e){let{prompt:t,selectedDatasets:n}=e.detail,r=n.map(e=>e.id),i=this._buildRequestBody(t,r);if(this._addUserMessage(t,n),this.requestMode===`external`){let e={prompt:t,selectedDatasets:n,datasetIds:r,request:i,url:`${this.apiUrl}/${this.apiVersion}/aimessage`};this.dispatchEvent(new CustomEvent(`luzmo-prompt-submitted`,{detail:e,bubbles:!0,composed:!0}));return}let a=this._prepareForAIResponse();try{await this._sendStreamingMessage(i,a)}catch(e){e.name!==`AbortError`&&this._handleAPIError(e,a)}}async _processInitialPrompt(){if(!this.initialPrompt||this.initialPrompt===this._lastProcessedInitialPrompt)return;this._lastProcessedInitialPrompt=this.initialPrompt;let e=this.selectedDatasets.map(e=>e.id),t=this._buildRequestBody(this.initialPrompt,e),n=`${this.apiUrl}/${this.apiVersion}/aimessage`;if(this.requestMode===`external`){let r={prompt:this.initialPrompt,selectedDatasets:this.selectedDatasets,datasetIds:e,request:t,url:n};this.dispatchEvent(new CustomEvent(`luzmo-prompt-submitted`,{detail:r,bubbles:!0,composed:!0}));return}let r=this._prepareForAIResponse();try{await this._sendStreamingMessage(t,r)}catch(e){e.name!==`AbortError`&&this._handleAPIError(e,r)}}disconnectedCallback(){super.disconnectedCallback(),this._abortController?.abort(),this._abortController=null,this._finalizeInflightMessage(),this._isGeneratingInternal=!1}_scrollToBottom(){let e=this.shadowRoot?.querySelector(`.chat-messages-container`);e&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight})})}updated(e){super.updated?.(e),(e.has(`messages`)||e.has(`_progress`)||e.has(`progress`))&&this.updateComplete.then(()=>this._scrollToBottom()),this.initialPrompt&&this.initialPrompt!==this._lastProcessedInitialPrompt?this._processInitialPrompt():this.initialPrompt||(this._lastProcessedInitialPrompt=null)}_sanitizeMessage(e){return Fe.sanitize(e,{ALLOWED_TAGS:[`p`,`br`,`strong`,`em`,`b`,`i`,`u`,`s`,`code`,`pre`,`blockquote`,`ul`,`ol`,`li`,`a`],ALLOWED_ATTR:[`href`,`title`,`target`,`rel`],ALLOW_DATA_ATTR:!1,FORBID_TAGS:[`script`,`iframe`,`object`,`embed`,`form`,`input`,`button`],FORBID_ATTR:[`onerror`,`onload`,`onclick`,`onmouseover`,`onfocus`,`onblur`]})}_renderProgress(){let e=this.requestMode===`external`?this.progress:this._progress,t=this.requestMode===`external`?this.progressCollapsed:this._progressCollapsed;return e?.children?.length?a.html`
22
+ `);i=o.pop()??``;for(let e of o)if(e.trim())try{t(JSON.parse(e))}catch{console.error(`Failed to parse NDJSON line:`,e)}}if(i+=r.decode(),i.trim())try{t(JSON.parse(i))}catch{console.error(`Failed to parse final NDJSON buffer:`,i)}}finally{n.releaseLock()}}var Ie=`:host{box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex}:host .chat-container{background:var(--luzmo-ai-chat-background,var(--ai-chat-background));border-radius:var(--luzmo-ai-chat-border-radius,var(--ai-chat-border-radius));width:100%;height:100%;min-height:0;padding:var(--luzmo-ai-chat-padding,var(--ai-chat-padding));gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));border:var(--luzmo-ai-chat-border,var(--ai-chat-border));box-shadow:var(--luzmo-ai-chat-box-shadow,var(--ai-chat-box-shadow));box-sizing:border-box;flex-direction:column;flex:1;display:flex;overflow:hidden}:host .chat-messages-container{gap:var(--luzmo-ai-chat-gap,var(--ai-chat-gap));flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}:host .chat-messages-container::-webkit-scrollbar{width:var(--luzmo-ai-chat-scrollbar-width,var(--ai-chat-scrollbar-width))}:host .chat-messages-container::-webkit-scrollbar-track{background:var(--luzmo-ai-chat-scrollbar-track-background,var(--ai-chat-scrollbar-track-background));border-radius:var(--luzmo-ai-chat-scrollbar-track-border-radius,var(--ai-chat-scrollbar-track-border-radius))}:host .chat-messages-container::-webkit-scrollbar-thumb{background:var(--luzmo-ai-chat-scrollbar-thumb-background,var(--ai-chat-scrollbar-thumb-background));border-radius:var(--luzmo-ai-chat-scrollbar-thumb-border-radius,var(--ai-chat-scrollbar-thumb-border-radius))}:host .chat-messages-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-ai-chat-scrollbar-thumb-hover-background,var(--ai-chat-scrollbar-thumb-hover-background))}:host .chat-messages-container{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-ai-chat-scrollbar-thumb-background,var(--ai-chat-scrollbar-thumb-background,var(--luzmo-scrollbar-thumb-background)))var(--luzmo-ai-chat-scrollbar-track-background,var(--ai-chat-scrollbar-track-background,var(--luzmo-scrollbar-track-background)))}:host luzmo-chat-message{--luzmo-primary:rgba(var(--luzmo-primary-rgb),.08);--chat-message-primary-text-color:var(--luzmo-font-color);--chat-message-primary-border-color:transparent}:host luzmo-chat-message.error{color:var(--luzmo-ai-chat-error-message-color,var(--ai-chat-error-message-color))}:host luzmo-ai-interaction-textarea{flex-grow:0;flex-shrink:0}:host luzmo-progress-steps{padding:0 .25rem}:host .loading-message{color:var(--luzmo-font-color);align-items:center;gap:.5rem;display:flex}:host .loading-message svg{color:var(--luzmo-ai-chat-loading-message-color,var(--ai-chat-loading-message-color));font-size:var(--luzmo-ai-chat-loading-message-icon-font-size,var(--ai-chat-loading-message-icon-font-size,1rem));justify-content:center;align-items:center;display:flex}:host .loading-message svg.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:host{--ai-chat-background:var(--luzmo-background-color);--ai-chat-border-radius:0;--ai-chat-padding:0;--ai-chat-gap:1rem;--ai-chat-max-height:none;--ai-chat-messages-flex:1;--ai-chat-border:none;--ai-chat-box-shadow:none;--ai-chat-loading-message-color:var(--luzmo-primary);--ai-chat-error-message-color:var(--luzmo-danger,#dc3545);--ai-chat-scrollbar-width:var(--luzmo-scrollbar-size);--ai-chat-scrollbar-track-background:var(--luzmo-scrollbar-track-background);--ai-chat-scrollbar-track-border-radius:var(--luzmo-scrollbar-track-border-radius);--ai-chat-scrollbar-thumb-background:var(--luzmo-scrollbar-thumb-background);--ai-chat-scrollbar-thumb-border-radius:var(--luzmo-scrollbar-thumb-border-radius);--ai-chat-scrollbar-thumb-hover-background:var(--luzmo-scrollbar-thumb-hover-background)}`;function Le(e){let{prompt:t,datasetIds:n,authKey:r,authToken:i,conversationId:a,chart:o,modelPreference:s,apiVersion:c=`0.1.0`,stream:l=!0}=e;return{key:r,token:i,action:`create`,version:c,properties:{content:{role:`user`,content:t},...a?{conversation_id:a}:{}},options:{available_datasets:n,stream:l,...n.length>0?{dataset_id:n[0]}:{},...o&&o.type!==`placeholder`?{chart:{...o,version:o.version||``,title:o.title||o.options.title,filters:o.filterGroups||[],aichartId:o.aichartId||``}}:{},model_preference:s}}}var P=class extends t.i{constructor(...e){super(...e),this.messages=[],this.selectedDatasets=[],this.placeholder=`Describe your change`,this.disabled=!1,this.showAssistantContextMenu=!1,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.flagOpendata=!1,this.hideDatasetButton=!1,this.modelPreference=`performance`,this.requestMode=`internal`,this.isGenerating=!1,this.conversationId=null,this.chart=null,this.apiVersion=`0.1.0`,this.stream=!0,this.loadingMessage=null,this.initialPrompt=null,this.progress=null,this.progressCollapsed=!1,this._progress=null,this._progressCollapsed=!1,this._isGeneratingInternal=!1,this._textareaValue=``,this._abortController=null,this._inflightAiMessage=null,this._lastProcessedInitialPrompt=null,this._receivedProgress=!1}static{this.styles=(0,a.unsafeCSS)(Ie)}static{this.tagName=`luzmo-ai-chat`}_generateMessageId(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}_buildRequestBody(e,t){return Le({prompt:e,datasetIds:t,authKey:this.authKey,authToken:this.authToken,conversationId:this.conversationId,chart:this.chart,modelPreference:this.modelPreference,apiVersion:this.apiVersion,stream:this.stream})}_finalizeInflightMessage(){this._inflightAiMessage&&=(this._progress&&this._receivedProgress&&(this._inflightAiMessage.progress=structuredClone(this._progress),this._updateMessage(this._inflightAiMessage)),this._progress=null,this._progressCollapsed=!1,this._receivedProgress=!1,null)}async _sendStreamingMessage(e,t){this._abortController&&(this._abortController.abort(),this._inflightAiMessage&&!this._inflightAiMessage.message&&(this.messages=this.messages.filter(e=>e.id!==this._inflightAiMessage.id))),this._finalizeInflightMessage(),this._inflightAiMessage=t;let n=new AbortController;this._abortController=n,this._progress=A(),this._progressCollapsed=!1,this._receivedProgress=!1;let r=!1;try{let{body:i,conversationId:a}=await M({url:`${this.apiUrl}/${this.apiVersion}/aimessage`,body:e,signal:n.signal});a&&(this.conversationId=a),await N(i,e=>this._processStreamChunk(e,t)),r=!0}finally{this._abortController===n&&(r?this._finalizeInflightMessage():this._inflightAiMessage=null,this._isGeneratingInternal=!1,this._abortController=null)}}_processStreamChunk(e,t){if(j(e)&&(this._receivedProgress=!0,this._progress=e.progress),e.error){t.message=e.error,t.isError=!0,this._updateMessage(t),this._progress=null,this._progressCollapsed=!1,this.dispatchEvent(new CustomEvent(`luzmo-response-received`,{detail:{message:t,done:!0},bubbles:!0,composed:!0}));return}let n=e.chart??e.generatedChart;if(n){let r={...e,generatedChart:n,conversationId:this.conversationId};this.dispatchEvent(new CustomEvent(`luzmo-chart-generated`,{detail:{aiSampleChart:r},bubbles:!0,composed:!0}));let i=typeof e.chunk==`string`&&e.chunk||typeof e.message==`string`&&e.message;i&&(t.message=(t.message||``)+i),this._updateMessage(t),(e.done||`question`in e)&&(this._progressCollapsed=!0,t.message&&this.dispatchEvent(new CustomEvent(`luzmo-response-received`,{detail:{message:t,done:!0},bubbles:!0,composed:!0})));return}let r=typeof e.chunk==`string`&&e.chunk||typeof e.message==`string`&&e.message||``;r&&(this._progressCollapsed||=!0,t.message=(t.message||``)+r,this._updateMessage(t));let i=e.done||`question`in e;i&&(this._progressCollapsed=!0),(r||i&&t.message)&&this.dispatchEvent(new CustomEvent(`luzmo-response-received`,{detail:{message:t,done:!!i},bubbles:!0,composed:!0}))}_addUserMessage(e,t){let n={id:this._generateMessageId(),type:`user`,message:e};this.messages=[...this.messages,n],this._textareaValue=``,this.dispatchEvent(new CustomEvent(`luzmo-message-sent`,{detail:{message:n,selectedDatasets:t},bubbles:!0,composed:!0}))}_updateMessage(e){this.messages=this.messages.map(t=>t.id===e.id?{...e}:t)}_prepareForAIResponse(){this._isGeneratingInternal=!0;let e={id:this._generateMessageId(),type:`ai`,message:``};return this.messages=[...this.messages,e],e}_handleAPIError(e,t){console.error(`AI Chart Generation Error:`,e),this._progress=null,this._progressCollapsed=!1;let n=(0,r.msg)(`Something went wrong. Please try again.`,{desc:`Generic error message shown in ai chat when the API request fails`});if(t)t.message=n,t.isError=!0,delete t.progress,this._updateMessage(t);else{let e={id:this._generateMessageId(),type:`ai`,message:n,isError:!0};this.messages=[...this.messages,e],t=e}this.dispatchEvent(new CustomEvent(`luzmo-response-received`,{detail:{message:t,error:e},bubbles:!0,composed:!0}))}_handleDatasetSelected(e){let t=e.detail;this.selectedDatasets.some(e=>e.id===t.id)||(this.selectedDatasets=[...this.selectedDatasets,t],this._emitDatasetsChanged())}_handleDatasetRemoved(e){let t=e.detail;this.selectedDatasets=this.selectedDatasets.filter(e=>e.id!==t.id),this._emitDatasetsChanged()}_emitDatasetsChanged(){this.dispatchEvent(new CustomEvent(`luzmo-datasets-changed`,{detail:{selectedDatasets:this.selectedDatasets},bubbles:!0,composed:!0}))}async _handlePromptSubmitted(e){let{prompt:t,selectedDatasets:n}=e.detail,r=n.map(e=>e.id),i=this._buildRequestBody(t,r);if(this._addUserMessage(t,n),this.requestMode===`external`){let e={prompt:t,selectedDatasets:n,datasetIds:r,request:i,url:`${this.apiUrl}/${this.apiVersion}/aimessage`};this.dispatchEvent(new CustomEvent(`luzmo-prompt-submitted`,{detail:e,bubbles:!0,composed:!0}));return}let a=this._prepareForAIResponse();try{await this._sendStreamingMessage(i,a)}catch(e){e.name!==`AbortError`&&this._handleAPIError(e,a)}}async _processInitialPrompt(){if(!this.initialPrompt||this.initialPrompt===this._lastProcessedInitialPrompt)return;this._lastProcessedInitialPrompt=this.initialPrompt;let e=this.selectedDatasets.map(e=>e.id),t=this._buildRequestBody(this.initialPrompt,e),n=`${this.apiUrl}/${this.apiVersion}/aimessage`;if(this.requestMode===`external`){let r={prompt:this.initialPrompt,selectedDatasets:this.selectedDatasets,datasetIds:e,request:t,url:n};this.dispatchEvent(new CustomEvent(`luzmo-prompt-submitted`,{detail:r,bubbles:!0,composed:!0}));return}let r=this._prepareForAIResponse();try{await this._sendStreamingMessage(t,r)}catch(e){e.name!==`AbortError`&&this._handleAPIError(e,r)}}disconnectedCallback(){super.disconnectedCallback(),this._abortController?.abort(),this._abortController=null,this._finalizeInflightMessage(),this._isGeneratingInternal=!1}_scrollToBottom(){let e=this.shadowRoot?.querySelector(`.chat-messages-container`);e&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight})})}updated(e){super.updated?.(e),(e.has(`messages`)||e.has(`_progress`)||e.has(`progress`))&&this.updateComplete.then(()=>this._scrollToBottom()),this.initialPrompt&&this.initialPrompt!==this._lastProcessedInitialPrompt?this._processInitialPrompt():this.initialPrompt||(this._lastProcessedInitialPrompt=null)}_sanitizeMessage(e){return Fe.sanitize(e,{ALLOWED_TAGS:[`p`,`br`,`strong`,`em`,`b`,`i`,`u`,`s`,`code`,`pre`,`blockquote`,`ul`,`ol`,`li`,`a`],ALLOWED_ATTR:[`href`,`title`,`target`,`rel`],ALLOW_DATA_ATTR:!1,FORBID_TAGS:[`script`,`iframe`,`object`,`embed`,`form`,`input`,`button`],FORBID_ATTR:[`onerror`,`onload`,`onclick`,`onmouseover`,`onfocus`,`onblur`]})}_renderProgress(){let e=this.requestMode===`external`?this.progress:this._progress,t=this.requestMode===`external`?this.progressCollapsed:this._progressCollapsed;return e?.children?.length?a.html`
23
23
  <luzmo-progress-steps
24
24
  .progress=${e}
25
25
  ?collapsed=${t}
@@ -29,6 +29,7 @@ const e=require(`./chunk-350yNsax.cjs`),t=require(`./base-C_azywlB.cjs`),n=requi
29
29
  <luzmo-progress-steps
30
30
  .progress=${e.progress}
31
31
  collapsed
32
+ no-animate
32
33
  size="s"
33
34
  ></luzmo-progress-steps>
34
35
  `:a.nothing;return e.type===`user`?a.html`
@@ -110,4 +111,4 @@ const e=require(`./chunk-350yNsax.cjs`),t=require(`./base-C_azywlB.cjs`),n=requi
110
111
  @dataset-removed=${this._handleDatasetRemoved}
111
112
  ></luzmo-ai-interaction-textarea>
112
113
  </div>
113
- `}};n.t([(0,o.property)({type:Array})],P.prototype,`messages`,void 0),n.t([(0,o.property)({type:Array,attribute:`selected-datasets`})],P.prototype,`selectedDatasets`,void 0),n.t([(0,o.property)({type:String})],P.prototype,`placeholder`,void 0),n.t([(0,o.property)({type:Boolean,reflect:!0})],P.prototype,`disabled`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`show-assistant-context-menu`})],P.prototype,`showAssistantContextMenu`,void 0),n.t([(0,o.property)({type:String,attribute:`auth-key`})],P.prototype,`authKey`,void 0),n.t([(0,o.property)({type:String,attribute:`auth-token`})],P.prototype,`authToken`,void 0),n.t([(0,o.property)({type:String,attribute:`api-url`})],P.prototype,`apiUrl`,void 0),n.t([(0,o.property)({type:String,attribute:`app-server`})],P.prototype,`appServer`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`flag-opendata`})],P.prototype,`flagOpendata`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`hide-dataset-button`})],P.prototype,`hideDatasetButton`,void 0),n.t([(0,o.property)({type:String,attribute:`model-preference`})],P.prototype,`modelPreference`,void 0),n.t([(0,o.property)({type:String,attribute:`request-mode`})],P.prototype,`requestMode`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`is-generating`})],P.prototype,`isGenerating`,void 0),n.t([(0,o.property)({type:String,attribute:`conversation-id`})],P.prototype,`conversationId`,void 0),n.t([(0,o.property)({type:Object,attribute:`chart`})],P.prototype,`chart`,void 0),n.t([(0,o.property)({type:String,attribute:`api-version`})],P.prototype,`apiVersion`,void 0),n.t([(0,o.property)({type:String,attribute:`loading-message`})],P.prototype,`loadingMessage`,void 0),n.t([(0,o.property)({type:String,attribute:`initial-prompt`})],P.prototype,`initialPrompt`,void 0),n.t([(0,o.property)({type:Object})],P.prototype,`progress`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`progress-collapsed`})],P.prototype,`progressCollapsed`,void 0),n.t([(0,o.state)()],P.prototype,`_progress`,void 0),n.t([(0,o.state)()],P.prototype,`_progressCollapsed`,void 0),n.t([(0,o.state)()],P.prototype,`_isGeneratingInternal`,void 0),n.t([(0,o.state)()],P.prototype,`_textareaValue`,void 0),customElements.get(`luzmo-ai-chat`)||customElements.define(`luzmo-ai-chat`,P),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return P}});
114
+ `}};n.t([(0,o.property)({type:Array})],P.prototype,`messages`,void 0),n.t([(0,o.property)({type:Array,attribute:`selected-datasets`})],P.prototype,`selectedDatasets`,void 0),n.t([(0,o.property)({type:String})],P.prototype,`placeholder`,void 0),n.t([(0,o.property)({type:Boolean,reflect:!0})],P.prototype,`disabled`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`show-assistant-context-menu`})],P.prototype,`showAssistantContextMenu`,void 0),n.t([(0,o.property)({type:String,attribute:`auth-key`})],P.prototype,`authKey`,void 0),n.t([(0,o.property)({type:String,attribute:`auth-token`})],P.prototype,`authToken`,void 0),n.t([(0,o.property)({type:String,attribute:`api-url`})],P.prototype,`apiUrl`,void 0),n.t([(0,o.property)({type:String,attribute:`app-server`})],P.prototype,`appServer`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`flag-opendata`})],P.prototype,`flagOpendata`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`hide-dataset-button`})],P.prototype,`hideDatasetButton`,void 0),n.t([(0,o.property)({type:String,attribute:`model-preference`})],P.prototype,`modelPreference`,void 0),n.t([(0,o.property)({type:String,attribute:`request-mode`})],P.prototype,`requestMode`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`is-generating`})],P.prototype,`isGenerating`,void 0),n.t([(0,o.property)({type:String,attribute:`conversation-id`})],P.prototype,`conversationId`,void 0),n.t([(0,o.property)({type:Object,attribute:`chart`})],P.prototype,`chart`,void 0),n.t([(0,o.property)({type:String,attribute:`api-version`})],P.prototype,`apiVersion`,void 0),n.t([(0,o.property)({converter:{fromAttribute:e=>e!==`false`&&e!==null}})],P.prototype,`stream`,void 0),n.t([(0,o.property)({type:String,attribute:`loading-message`})],P.prototype,`loadingMessage`,void 0),n.t([(0,o.property)({type:String,attribute:`initial-prompt`})],P.prototype,`initialPrompt`,void 0),n.t([(0,o.property)({type:Object})],P.prototype,`progress`,void 0),n.t([(0,o.property)({type:Boolean,attribute:`progress-collapsed`})],P.prototype,`progressCollapsed`,void 0),n.t([(0,o.state)()],P.prototype,`_progress`,void 0),n.t([(0,o.state)()],P.prototype,`_progressCollapsed`,void 0),n.t([(0,o.state)()],P.prototype,`_isGeneratingInternal`,void 0),n.t([(0,o.state)()],P.prototype,`_textareaValue`,void 0),customElements.get(`luzmo-ai-chat`)||customElements.define(`luzmo-ai-chat`,P),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return P}});
@@ -17,4 +17,4 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../set-locale-CdlBx8s9.cjs`),require(`../dataset-icon-C0cID-ra.cjs`),require(`../data-broker-BUIUM5hr.cjs`),require(`../dataset-selector-list-DYsi3LBF.cjs`),require(`../dataset-selector-row-Qwz9WmR4.cjs`);const e=require(`../ai-interaction-textarea-CcgFeoIg.cjs`);Object.defineProperty(exports,`LuzmoAiInteractionTextarea`,{enumerable:!0,get:function(){return e.t}});
20
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../set-locale-C9s0jVjQ.cjs`),require(`../dataset-icon-C0cID-ra.cjs`),require(`../data-broker-BUIUM5hr.cjs`),require(`../dataset-selector-list-BWe9GmlS.cjs`),require(`../dataset-selector-row-DvzyItQS.cjs`);const e=require(`../ai-interaction-textarea-CcgFeoIg.cjs`);Object.defineProperty(exports,`LuzmoAiInteractionTextarea`,{enumerable:!0,get:function(){return e.t}});
@@ -23,10 +23,10 @@
23
23
  e.setAttribute("data-luzmo-vars", ""), e.textContent = "html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: rgb(140, 140, 140);--luzmo-border-color-full-down: rgb(110, 110, 110);--luzmo-border-color-full-focus: rgb(140, 140, 140);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: #f0f0fc;--luzmo-background-color-down: #f1f1ff;--luzmo-background-color-focus: #f0f0fc;--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: rgb(225, 225, 225);--luzmo-background-color-highlight-down: rgb(215, 215, 215);--luzmo-background-color-highlight-focus: rgb(225, 225, 225);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: #333;--luzmo-font-color-down: #111;--luzmo-font-color-focus: #333;--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-width: thin;--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba(var(--luzmo-border-color-rgb), 0.4);--luzmo-primary: #4434ff;--luzmo-primary-hover: #4234e4;--luzmo-primary-down: #392cc7;--luzmo-primary-focus: #4234e4;--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: #e309e3;--luzmo-secondary-down: #c711c7;--luzmo-secondary-focus: #e309e3;--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-secondary-outline: rgba(255, 0, 255, 0.2);--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: #b3241f;--luzmo-negative-color-down: #9f231f;--luzmo-negative-color-focus: #b3241f;--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: rgb(17, 128, 86);--luzmo-positive-color-down: rgb(16, 105, 71);--luzmo-positive-color-focus: rgb(17, 128, 86);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: rgb(70, 70, 70);--luzmo-selected-color-down: rgb(40, 40, 40);--luzmo-selected-color-focus: rgb(70, 70, 70);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: rgb(0, 0, 0);--luzmo-selected-color-hard-down: rgb(0, 0, 0);--luzmo-selected-color-hard-focus: rgb(0, 0, 0);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}", document.head.appendChild(e);
24
24
  }
25
25
  })();
26
- import "../set-locale-C3o6ooUV.js";
26
+ import "../set-locale-CgsoV0B9.js";
27
27
  import "../dataset-icon-DhF21dXC.js";
28
28
  import "../data-broker-cLR-t5LM.js";
29
- import "../dataset-selector-list-C5FvwP-r.js";
30
- import "../dataset-selector-row-BKIFTyJl.js";
29
+ import "../dataset-selector-list-CA7bLSQv.js";
30
+ import "../dataset-selector-row-a5GXd9bd.js";
31
31
  import { t as LuzmoAiInteractionTextarea } from "../ai-interaction-textarea-B5UE7CIq.js";
32
32
  export { LuzmoAiInteractionTextarea };
@@ -17,4 +17,4 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../set-locale-CdlBx8s9.cjs`),require(`../localized-mixin-BhUvOsd7.cjs`),require(`../periods.const-CX2ZWWrf.cjs`),require(`../calculate-data-field-icon-BhiGlh0u.cjs`);const e=require(`../data-fields-select-_WjjNpcl.cjs`);Object.defineProperty(exports,`LuzmoDataFieldsSelect`,{enumerable:!0,get:function(){return e.t}});
20
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../set-locale-C9s0jVjQ.cjs`),require(`../localized-mixin-DD2Hm1jz.cjs`),require(`../periods.const-CX2ZWWrf.cjs`),require(`../calculate-data-field-icon-BhiGlh0u.cjs`);const e=require(`../data-fields-select-cqu8GYXD.cjs`);Object.defineProperty(exports,`LuzmoDataFieldsSelect`,{enumerable:!0,get:function(){return e.t}});
@@ -23,9 +23,9 @@
23
23
  e.setAttribute("data-luzmo-vars", ""), e.textContent = "html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: rgb(140, 140, 140);--luzmo-border-color-full-down: rgb(110, 110, 110);--luzmo-border-color-full-focus: rgb(140, 140, 140);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: #f0f0fc;--luzmo-background-color-down: #f1f1ff;--luzmo-background-color-focus: #f0f0fc;--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: rgb(225, 225, 225);--luzmo-background-color-highlight-down: rgb(215, 215, 215);--luzmo-background-color-highlight-focus: rgb(225, 225, 225);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: #333;--luzmo-font-color-down: #111;--luzmo-font-color-focus: #333;--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-width: thin;--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba(var(--luzmo-border-color-rgb), 0.4);--luzmo-primary: #4434ff;--luzmo-primary-hover: #4234e4;--luzmo-primary-down: #392cc7;--luzmo-primary-focus: #4234e4;--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: #e309e3;--luzmo-secondary-down: #c711c7;--luzmo-secondary-focus: #e309e3;--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-secondary-outline: rgba(255, 0, 255, 0.2);--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: #b3241f;--luzmo-negative-color-down: #9f231f;--luzmo-negative-color-focus: #b3241f;--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: rgb(17, 128, 86);--luzmo-positive-color-down: rgb(16, 105, 71);--luzmo-positive-color-focus: rgb(17, 128, 86);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: rgb(70, 70, 70);--luzmo-selected-color-down: rgb(40, 40, 40);--luzmo-selected-color-focus: rgb(70, 70, 70);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: rgb(0, 0, 0);--luzmo-selected-color-hard-down: rgb(0, 0, 0);--luzmo-selected-color-hard-focus: rgb(0, 0, 0);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}", document.head.appendChild(e);
24
24
  }
25
25
  })();
26
- import "../set-locale-C3o6ooUV.js";
27
- import "../localized-mixin-HngLqDZn.js";
26
+ import "../set-locale-CgsoV0B9.js";
27
+ import "../localized-mixin-rjHF23Hg.js";
28
28
  import "../periods.const-Ch6SfeaG.js";
29
29
  import "../calculate-data-field-icon-CY7Y6fn1.js";
30
- import { t as LuzmoDataFieldsSelect } from "../data-fields-select-CHOKEMb2.js";
30
+ import { t as LuzmoDataFieldsSelect } from "../data-fields-select-CT_nHj54.js";
31
31
  export { LuzmoDataFieldsSelect };
@@ -18,7 +18,7 @@
18
18
  * SOFTWARE.
19
19
  * */
20
20
  import { t as __decorate } from "./decorate-Da6S_xrw.js";
21
- import { t as LocalizedMixin } from "./localized-mixin-HngLqDZn.js";
21
+ import { t as LocalizedMixin } from "./localized-mixin-rjHF23Hg.js";
22
22
  import { t as localize } from "./localize-Dlt3EN5i.js";
23
23
  import { n as DATETIME_LEVELS } from "./periods.const-Ch6SfeaG.js";
24
24
  import { t as calculateDataFieldIcon } from "./calculate-data-field-icon-CY7Y6fn1.js";
@@ -17,7 +17,7 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- const e=require(`./chunk-350yNsax.cjs`),t=require(`./decorate-Dq4-zbi1.cjs`),n=require(`./localized-mixin-BhUvOsd7.cjs`),r=require(`./localize-BBuZJf_h.cjs`),i=require(`./periods.const-CX2ZWWrf.cjs`),a=require(`./calculate-data-field-icon-BhiGlh0u.cjs`),o=require(`./convert-datasets-to-data-fields-BV57XueO.cjs`);let s=require(`@luzmo/icons`),c=require(`lit`),l=require(`lit/decorators.js`),u=require(`@lit/localize`);require(`@luzmo/lucero/select`);let d=require(`@luzmo/lucero/utils`);var f=`:host{font-family:var(--luzmo-font-family)}`,p=`::level::`,m=(e,t)=>`${e}${p}${t}`,h=e=>{let t=e.indexOf(p);return t===-1?null:{columnId:e.slice(0,t),level:Number(e.slice(t+9))}},g=class extends n.t((0,d.SizedMixin)(d.LuzmoElement,{validSizes:Object.values(d.ElementSizes)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.icons=`menu-only`,this.allowEmpty=!1,this.selects=`single`,this.value=[],this.retrieving=!1,this.invalid=!1,this.clearable=!1,this.pending=!1,this.disabled=!1,this.search=`auto`,this.placement=`bottom-start`,this.datasetsDataFields=[],this._dataFieldsSelected=[]}static get styles(){return[(0,c.unsafeCSS)(f)]}_isAdHocFormula(e){return`formula`in e&&typeof e.formula==`string`}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-data-fields-selected`,{bubbles:!0,composed:!0,cancelable:!0,detail:{dataFields:this._dataFieldsSelected}}))}_toDataFieldData(e,t,n=!1){return n?o.r(t,e,{includeHidden:!0}):o.n(t,e,{includeHidden:!0})}_toAdHocFormulaFieldData(e,t){return{datasetId:t,formula:e.formula,type:e.type,name:e.label??{en:`Ad-hoc formula`},subtype:e.subtype??void 0,format:e.format}}_findFormulaMatch(e,t,n){for(let r of e)if(this._isAdHocFormula(r)){if(r.formula===t)return this._toAdHocFormulaFieldData(r,n)}else if(r.id===t)return this._toDataFieldData(r,n,!0);return null}_resolveDataFieldFromValue(e,t){let n=h(e),r=n?n.columnId:e;for(let i of t){let t=i.columns??[],a=i.formulas??[],o=t.find(e=>e.id===r);if(o){let e=this._toDataFieldData(o,i.id,!1);if(e&&n&&(e.level=n.level,this._isExpandableHierarchy(o))){let t=o.hierarchyLevels?.find(e=>e.level===n.level);t&&(e.name=t.name)}return e}let s=this._findFormulaMatch(a,e,i.id);if(s)return s}return null}setDataField(e){let t=e?.detail?.value??[];this._dataFieldsSelected=[];for(let e of t){let t=this._resolveDataFieldFromValue(e,this.datasetsDataFields);t&&this._dataFieldsSelected.push(t)}this.value=t,this._sendChangeEvent()}_findDataFieldsInDatasetsDataFields(e){this._dataFieldsSelected=[];for(let t of e){let e=this._resolveDataFieldFromValue(t,this.datasetsDataFields);e&&this._dataFieldsSelected.push(e)}}willUpdate(e){super.willUpdate(e);let t=e.has(`value`),n=e.has(`datasetsDataFields`);if((t||n)&&(this._findDataFieldsInDatasetsDataFields(this.value),this._dataFieldsSelected.length===0&&!this.allowEmpty&&!this.retrieving)){for(let e of this.datasetsDataFields)if(e?.columns?.length>0){let t=this._toDataFieldData(e.columns[0],e.id,!1);this._dataFieldsSelected=t?[t]:[];break}else{let t=e?.formulas?.find(e=>!this._isAdHocFormula(e));if(t&&!this._isAdHocFormula(t)){let n=this._toDataFieldData(t,e.id,!0);this._dataFieldsSelected=n?[n]:[];break}}this.value=this._dataFieldsSelected.map(e=>{if(`columnId`in e&&e.columnId)return e.columnId;if(`formulaId`in e&&e.formulaId)return e.formulaId;if(`formula`in e&&e.formula)return e.formula}).filter(e=>typeof e==`string`&&e.length>0),this._sendChangeEvent()}}_buildDatetimeChildren(e){let t=[],n=Math.min(Math.max(e.lowestLevel??1,1),i.n.length),r=Math.min(Math.max(e.highestLevel??1,1),i.n.length);for(let a=r;a<=n;a++)t.push({value:m(e.id,a),label:i.n[a-1]?.i18n()??``});return t}_buildHierarchyChildren(e){let t=[],n=e.hierarchyLevels??[];for(let i of n)i.level<1||t.push({value:m(e.id,i.level),label:r.t(i.name??{},this.contentLanguage)??``});return t}_isExpandableDatetime(e){let t=e.type;return(t===`datetime`||t===`array[datetime]`)&&typeof e.lowestLevel==`number`}_isExpandableHierarchy(e){return Array.isArray(e.hierarchyLevels)&&e.hierarchyLevels.length>2&&e.hierarchy_enabled===!0}render(){let e=[],t=this.icons!==`none`;for(let n of this.datasetsDataFields??[]){let i=n?.columns??[],o=n?.formulas??[];for(let n of i){let i={value:n.id,label:r.t(n?.name??{},this.contentLanguage)??``};t&&(i.icon=a.t(n,this.size)),this._isExpandableDatetime(n)?i.children=this._buildDatetimeChildren(n):this._isExpandableHierarchy(n)&&(i.children=this._buildHierarchyChildren(n)),e.push(i)}for(let n of o)if(this._isAdHocFormula(n)){let i=n.label?r.t(n.label,this.contentLanguage):(0,u.msg)(`Ad-hoc formula`),a={value:n.formula,label:i??(0,u.msg)(`Ad-hoc formula`)};t&&(a.icon=s.luzmoFormula),e.push(a)}else{let i={value:n.id,label:r.t(n?.name??{},this.contentLanguage)??``};t&&(i.icon=a.t(n,this.size)),e.push(i)}}let n=(0,u.msg)(`Select...`),i=this.pending?``:this.label||this.placeholder||n,o=this.pending||this.value.length===0?[]:this.value,l=this.icons===`none`||this.icons===`menu-only`?`none`:void 0;return c.html`<luzmo-select
20
+ const e=require(`./chunk-350yNsax.cjs`),t=require(`./decorate-Dq4-zbi1.cjs`),n=require(`./localized-mixin-DD2Hm1jz.cjs`),r=require(`./localize-BBuZJf_h.cjs`),i=require(`./periods.const-CX2ZWWrf.cjs`),a=require(`./calculate-data-field-icon-BhiGlh0u.cjs`),o=require(`./convert-datasets-to-data-fields-BV57XueO.cjs`);let s=require(`@luzmo/icons`),c=require(`lit`),l=require(`lit/decorators.js`),u=require(`@lit/localize`);require(`@luzmo/lucero/select`);let d=require(`@luzmo/lucero/utils`);var f=`:host{font-family:var(--luzmo-font-family)}`,p=`::level::`,m=(e,t)=>`${e}${p}${t}`,h=e=>{let t=e.indexOf(p);return t===-1?null:{columnId:e.slice(0,t),level:Number(e.slice(t+9))}},g=class extends n.t((0,d.SizedMixin)(d.LuzmoElement,{validSizes:Object.values(d.ElementSizes)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.icons=`menu-only`,this.allowEmpty=!1,this.selects=`single`,this.value=[],this.retrieving=!1,this.invalid=!1,this.clearable=!1,this.pending=!1,this.disabled=!1,this.search=`auto`,this.placement=`bottom-start`,this.datasetsDataFields=[],this._dataFieldsSelected=[]}static get styles(){return[(0,c.unsafeCSS)(f)]}_isAdHocFormula(e){return`formula`in e&&typeof e.formula==`string`}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-data-fields-selected`,{bubbles:!0,composed:!0,cancelable:!0,detail:{dataFields:this._dataFieldsSelected}}))}_toDataFieldData(e,t,n=!1){return n?o.r(t,e,{includeHidden:!0}):o.n(t,e,{includeHidden:!0})}_toAdHocFormulaFieldData(e,t){return{datasetId:t,formula:e.formula,type:e.type,name:e.label??{en:`Ad-hoc formula`},subtype:e.subtype??void 0,format:e.format}}_findFormulaMatch(e,t,n){for(let r of e)if(this._isAdHocFormula(r)){if(r.formula===t)return this._toAdHocFormulaFieldData(r,n)}else if(r.id===t)return this._toDataFieldData(r,n,!0);return null}_resolveDataFieldFromValue(e,t){let n=h(e),r=n?n.columnId:e;for(let i of t){let t=i.columns??[],a=i.formulas??[],o=t.find(e=>e.id===r);if(o){let e=this._toDataFieldData(o,i.id,!1);if(e&&n&&(e.level=n.level,this._isExpandableHierarchy(o))){let t=o.hierarchyLevels?.find(e=>e.level===n.level);t&&(e.name=t.name)}return e}let s=this._findFormulaMatch(a,e,i.id);if(s)return s}return null}setDataField(e){let t=e?.detail?.value??[];this._dataFieldsSelected=[];for(let e of t){let t=this._resolveDataFieldFromValue(e,this.datasetsDataFields);t&&this._dataFieldsSelected.push(t)}this.value=t,this._sendChangeEvent()}_findDataFieldsInDatasetsDataFields(e){this._dataFieldsSelected=[];for(let t of e){let e=this._resolveDataFieldFromValue(t,this.datasetsDataFields);e&&this._dataFieldsSelected.push(e)}}willUpdate(e){super.willUpdate(e);let t=e.has(`value`),n=e.has(`datasetsDataFields`);if((t||n)&&(this._findDataFieldsInDatasetsDataFields(this.value),this._dataFieldsSelected.length===0&&!this.allowEmpty&&!this.retrieving)){for(let e of this.datasetsDataFields)if(e?.columns?.length>0){let t=this._toDataFieldData(e.columns[0],e.id,!1);this._dataFieldsSelected=t?[t]:[];break}else{let t=e?.formulas?.find(e=>!this._isAdHocFormula(e));if(t&&!this._isAdHocFormula(t)){let n=this._toDataFieldData(t,e.id,!0);this._dataFieldsSelected=n?[n]:[];break}}this.value=this._dataFieldsSelected.map(e=>{if(`columnId`in e&&e.columnId)return e.columnId;if(`formulaId`in e&&e.formulaId)return e.formulaId;if(`formula`in e&&e.formula)return e.formula}).filter(e=>typeof e==`string`&&e.length>0),this._sendChangeEvent()}}_buildDatetimeChildren(e){let t=[],n=Math.min(Math.max(e.lowestLevel??1,1),i.n.length),r=Math.min(Math.max(e.highestLevel??1,1),i.n.length);for(let a=r;a<=n;a++)t.push({value:m(e.id,a),label:i.n[a-1]?.i18n()??``});return t}_buildHierarchyChildren(e){let t=[],n=e.hierarchyLevels??[];for(let i of n)i.level<1||t.push({value:m(e.id,i.level),label:r.t(i.name??{},this.contentLanguage)??``});return t}_isExpandableDatetime(e){let t=e.type;return(t===`datetime`||t===`array[datetime]`)&&typeof e.lowestLevel==`number`}_isExpandableHierarchy(e){return Array.isArray(e.hierarchyLevels)&&e.hierarchyLevels.length>2&&e.hierarchy_enabled===!0}render(){let e=[],t=this.icons!==`none`;for(let n of this.datasetsDataFields??[]){let i=n?.columns??[],o=n?.formulas??[];for(let n of i){let i={value:n.id,label:r.t(n?.name??{},this.contentLanguage)??``};t&&(i.icon=a.t(n,this.size)),this._isExpandableDatetime(n)?i.children=this._buildDatetimeChildren(n):this._isExpandableHierarchy(n)&&(i.children=this._buildHierarchyChildren(n)),e.push(i)}for(let n of o)if(this._isAdHocFormula(n)){let i=n.label?r.t(n.label,this.contentLanguage):(0,u.msg)(`Ad-hoc formula`),a={value:n.formula,label:i??(0,u.msg)(`Ad-hoc formula`)};t&&(a.icon=s.luzmoFormula),e.push(a)}else{let i={value:n.id,label:r.t(n?.name??{},this.contentLanguage)??``};t&&(i.icon=a.t(n,this.size)),e.push(i)}}let n=(0,u.msg)(`Select...`),i=this.pending?``:this.label||this.placeholder||n,o=this.pending||this.value.length===0?[]:this.value,l=this.icons===`none`||this.icons===`menu-only`?`none`:void 0;return c.html`<luzmo-select
21
21
  id="data-fields"
22
22
  .size=${this.size}
23
23
  .label=${i}
@@ -17,4 +17,4 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../set-locale-CdlBx8s9.cjs`),require(`../dataset-icon-C0cID-ra.cjs`),require(`../data-broker-BUIUM5hr.cjs`);const e=require(`../dataset-selector-list-DYsi3LBF.cjs`);exports.LuzmoDatasetSelectorList=e.t;
20
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../set-locale-C9s0jVjQ.cjs`),require(`../dataset-icon-C0cID-ra.cjs`),require(`../data-broker-BUIUM5hr.cjs`);const e=require(`../dataset-selector-list-BWe9GmlS.cjs`);exports.LuzmoDatasetSelectorList=e.t;
@@ -23,8 +23,8 @@
23
23
  e.setAttribute("data-luzmo-vars", ""), e.textContent = "html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: rgb(140, 140, 140);--luzmo-border-color-full-down: rgb(110, 110, 110);--luzmo-border-color-full-focus: rgb(140, 140, 140);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: #f0f0fc;--luzmo-background-color-down: #f1f1ff;--luzmo-background-color-focus: #f0f0fc;--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: rgb(225, 225, 225);--luzmo-background-color-highlight-down: rgb(215, 215, 215);--luzmo-background-color-highlight-focus: rgb(225, 225, 225);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: #333;--luzmo-font-color-down: #111;--luzmo-font-color-focus: #333;--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-width: thin;--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba(var(--luzmo-border-color-rgb), 0.4);--luzmo-primary: #4434ff;--luzmo-primary-hover: #4234e4;--luzmo-primary-down: #392cc7;--luzmo-primary-focus: #4234e4;--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: #e309e3;--luzmo-secondary-down: #c711c7;--luzmo-secondary-focus: #e309e3;--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-secondary-outline: rgba(255, 0, 255, 0.2);--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: #b3241f;--luzmo-negative-color-down: #9f231f;--luzmo-negative-color-focus: #b3241f;--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: rgb(17, 128, 86);--luzmo-positive-color-down: rgb(16, 105, 71);--luzmo-positive-color-focus: rgb(17, 128, 86);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: rgb(70, 70, 70);--luzmo-selected-color-down: rgb(40, 40, 40);--luzmo-selected-color-focus: rgb(70, 70, 70);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: rgb(0, 0, 0);--luzmo-selected-color-hard-down: rgb(0, 0, 0);--luzmo-selected-color-hard-focus: rgb(0, 0, 0);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}", document.head.appendChild(e);
24
24
  }
25
25
  })();
26
- import "../set-locale-C3o6ooUV.js";
26
+ import "../set-locale-CgsoV0B9.js";
27
27
  import "../dataset-icon-DhF21dXC.js";
28
28
  import "../data-broker-cLR-t5LM.js";
29
- import { t as LuzmoDatasetSelectorList } from "../dataset-selector-list-C5FvwP-r.js";
29
+ import { t as LuzmoDatasetSelectorList } from "../dataset-selector-list-CA7bLSQv.js";
30
30
  export { LuzmoDatasetSelectorList };
@@ -17,7 +17,7 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- const e=require(`./chunk-350yNsax.cjs`),t=require(`./decorate-Dq4-zbi1.cjs`),n=require(`./set-locale-CdlBx8s9.cjs`),r=require(`./localize-BBuZJf_h.cjs`),i=require(`./data-broker-BUIUM5hr.cjs`);let a=require(`lit`),o=require(`lit/decorators.js`),s=require(`lit/directives/repeat.js`);var c=`:host{box-sizing:border-box;height:100%;font-family:var(--luzmo-dataset-selector-list-font-family,var(--dataset-selector-list-font-family));color:var(--luzmo-dataset-selector-list-color);flex-direction:column;display:flex}:host .dataset-selector-list{gap:var(--luzmo-dataset-selector-list-gap,var(--dataset-selector-list-gap));background:var(--luzmo-dataset-selector-list-background,var(--dataset-selector-list-background));height:100%;padding:var(--luzmo-dataset-selector-list-padding,var(--dataset-selector-list-padding));border-radius:var(--luzmo-dataset-selector-list-border-radius,var(--dataset-selector-list-border-radius));flex-direction:column;display:flex}:host .search-input{background-color:var(--luzmo-dataset-selector-list-input-background,var(--dataset-selector-list-input-background));border:none;border-bottom:1px solid var(--luzmo-dataset-selector-list-input-border-color,var(--dataset-selector-list-input-border-color));color:var(--luzmo-dataset-selector-list-input-color,var(--dataset-selector-list-input-color));line-height:var(--luzmo-dataset-selector-list-input-line-height,var(--dataset-selector-list-input-line-height));font-size:var(--luzmo-dataset-selector-list-input-font-size,var(--dataset-selector-list-input-font-size));padding:var(--luzmo-dataset-selector-list-input-padding,var(--dataset-selector-list-input-padding));box-sizing:border-box;outline:none;width:100%;margin:0}:host .search-input::placeholder{color:var(--luzmo-font-color-tertiary,#999)}:host .datasets-scroll-container{flex:1;min-height:0;overflow:hidden auto}:host .datasets-scroll-container::-webkit-scrollbar{width:var(--luzmo-dataset-selector-list-scrollbar-width,var(--dataset-selector-list-scrollbar-width))}:host .datasets-scroll-container::-webkit-scrollbar-track{background:var(--luzmo-dataset-selector-list-scrollbar-track-background,var(--dataset-selector-list-scrollbar-track-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-track-border-radius,var(--dataset-selector-list-scrollbar-track-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-background,var(--dataset-selector-list-scrollbar-thumb-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-thumb-border-radius,var(--dataset-selector-list-scrollbar-thumb-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-hover-background,var(--dataset-selector-list-scrollbar-thumb-hover-background))}:host .datasets-scroll-container{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-dataset-selector-list-scrollbar-thumb-background,var(--dataset-selector-list-scrollbar-thumb-background,var(--luzmo-scrollbar-thumb-background)))var(--luzmo-dataset-selector-list-scrollbar-track-background,var(--dataset-selector-list-scrollbar-track-background,var(--luzmo-scrollbar-track-background)))}:host .datasets-list{flex-direction:column;display:flex}:host .available-dataset-item{padding:var(--luzmo-dataset-selector-list-item-padding,var(--dataset-selector-list-item-padding));color:var(--luzmo-dataset-selector-available-dataset-color,var(--dataset-selector-available-dataset-color));align-items:center;gap:var(--luzmo-dataset-selector-list-item-gap,var(--dataset-selector-list-item-gap));cursor:pointer;border-radius:var(--luzmo-dataset-selector-list-item-border-radius,var(--dataset-selector-list-item-border-radius));flex-direction:row;transition:background-color .15s;display:flex}:host .available-dataset-item:hover{background-color:var(--luzmo-dataset-selector-list-item-hover-background,var(--dataset-selector-list-item-hover-background))}:host .available-dataset-item:focus{outline:none}:host .available-dataset-item .dataset-icon{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:flex}:host .available-dataset-item .dataset-icon luzmo-icon{display:flex}:host .available-dataset-item .dataset-icon-img{object-fit:contain;width:16px;height:16px}:host .available-dataset-item .dataset-name{line-height:var(--luzmo-dataset-selector-list-item-line-height,var(--dataset-selector-list-item-line-height));font-size:var(--luzmo-dataset-selector-list-item-font-size,var(--dataset-selector-list-item-font-size));text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}:host .available-dataset-item .dataset-name .dataset-name-search-highlight{background:var(--luzmo-dataset-selector-list-search-highlight-background,var(--dataset-selector-list-search-highlight-background));color:var(--luzmo-dataset-selector-list-search-highlight-color,var(--dataset-selector-list-search-highlight-color));border-radius:var(--luzmo-border-radius-s);padding:0}:host .no-datasets-found{height:50%;color:var(--luzmo-dataset-selector-list-no-datasets-color,var(--dataset-selector-list-no-datasets-color));font-size:var(--luzmo-dataset-selector-list-no-datasets-font-size,var(--dataset-selector-list-no-datasets-font-size));text-align:center;padding:var(--luzmo-spacing-4,1rem);justify-content:center;align-items:center;display:flex}:host .loader{padding:var(--luzmo-spacing-5,1.25rem)0;justify-content:center;align-items:center;display:flex}:host .loader .spinner{width:var(--luzmo-dataset-selector-list-loader-size,var(--dataset-selector-list-loader-size));height:var(--luzmo-dataset-selector-list-loader-size,var(--dataset-selector-list-loader-size));border:2px solid var(--luzmo-border-color-light,#e0e0e0);border-top-color:var(--luzmo-dataset-selector-list-loader-color,var(--dataset-selector-list-loader-color));border-radius:50%;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:host{--dataset-selector-list-background:var(--luzmo-background-color);--dataset-selector-list-padding:0;--dataset-selector-list-gap:var(--luzmo-spacing-2);--dataset-selector-list-border-radius:var(--luzmo-border-radius-m);--dataset-selector-list-font-family:var(--luzmo-font-family);--dataset-selector-list-input-background:var(--luzmo-background-color);--dataset-selector-list-input-border-color:var(--luzmo-border-color-light,#0000000d);--dataset-selector-list-input-color:var(--luzmo-font-color);--dataset-selector-list-input-padding:0 var(--luzmo-spacing-4)var(--luzmo-spacing-2);--dataset-selector-list-input-font-size:var(--luzmo-font-size-s);--dataset-selector-list-input-line-height:1.5rem;--dataset-selector-list-item-padding:var(--luzmo-spacing-1)var(--luzmo-spacing-4);--dataset-selector-list-item-gap:var(--luzmo-spacing-3);--dataset-selector-list-item-hover-background:var(--luzmo-background-color-highlight);--dataset-selector-list-item-font-size:var(--luzmo-font-size-s);--dataset-selector-list-item-line-height:1.5rem;--dataset-selector-list-item-border-radius:var(--luzmo-border-radius-s);--dataset-selector-list-search-highlight-background:rgba(var(--luzmo-primary-rgb),.15);--dataset-selector-list-search-highlight-color:var(--luzmo-primary);--dataset-selector-list-scrollbar-width:var(--luzmo-scrollbar-size);--dataset-selector-list-scrollbar-track-background:var(--luzmo-scrollbar-track-background);--dataset-selector-list-scrollbar-track-border-radius:var(--luzmo-scrollbar-track-border-radius);--dataset-selector-list-scrollbar-thumb-background:var(--luzmo-scrollbar-thumb-background);--dataset-selector-list-scrollbar-thumb-border-radius:var(--luzmo-scrollbar-thumb-border-radius);--dataset-selector-list-scrollbar-thumb-hover-background:var(--luzmo-scrollbar-thumb-hover-background);--dataset-selector-list-loader-size:24px;--dataset-selector-list-loader-color:var(--luzmo-primary);--dataset-selector-list-no-datasets-color:var(--luzmo-font-color);--dataset-selector-list-no-datasets-font-size:var(--luzmo-font-size-s);--dataset-selector-available-dataset-color:var(--luzmo-font-color)}`,l=7,u=600,d=5,f=class extends a.LitElement{constructor(...e){super(...e),this._selectedDatasets=new Set,this.showSearch=!0,this.searchPlaceholder=`Search datasets...`,this.noDatasetsMessage=`No datasets found`,this.highlightSearchMatches=!0,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.flagOpendata=!1,this._availableDatasets=[],this._status={allDatasetsLoaded:!1,paging:!1,busy:!0,error:!1},this._searchValue=``,this._currentOffset=0,this._searchDebounceTimer=null,this._queryCache=new Map,this._calculatedQueryLimit=null,this._hasLoadedEmptyPage=!1}static{this.styles=(0,a.unsafeCSS)(c)}set selectedDatasets(e){this._selectedDatasets=e,this._shouldLoadMoreDatasetsForViewport()&&this._loadAvailableDatasets({append:!0})}get selectedDatasets(){return this._selectedDatasets}connectedCallback(){super.connectedCallback?.(),this._configureBroker(),this._waitForContainerHeightAndLoad()}_configureBroker(){(this.authKey||this.authToken||this.apiUrl)&&i.t.configure({authKey:this.authKey,authToken:this.authToken,apiUrl:this.apiUrl})}_waitForContainerHeightAndLoad(){requestAnimationFrame(()=>{this._loadAvailableDatasets({append:!1})})}_calculateOptimalQueryLimit(){if(this._calculatedQueryLimit!==null)return this._calculatedQueryLimit;let e=this.shadowRoot?.querySelector(`.dataset-selector-list`);if(!e)return l;let t=getComputedStyle(e),n=e.clientHeight,r=Number.parseFloat(t.height),i=Math.max(n,r);if(i<=0)return l;let a=Math.floor(i/24),o=Math.max(a+d,l);return this._calculatedQueryLimit=o,o}get _filteredDatasets(){return this._selectedDatasets.size===0?this._availableDatasets:this._availableDatasets.filter(e=>!this._selectedDatasets.has(e.id))}_handleSearchInput(e){this._searchValue=e.target.value,this._searchDebounceTimer!==null&&clearTimeout(this._searchDebounceTimer),this._searchDebounceTimer=window.setTimeout(()=>{this._loadAvailableDatasets({append:!1})},u)}_handleScroll(e){let t=e.target,n=t.scrollTop,r=t.scrollHeight;n+t.clientHeight>=r-50&&!this._status.allDatasetsLoaded&&!this._status.busy&&this._loadAvailableDatasets({append:!0})}async _loadAvailableDatasets({append:e}){e||(this._calculatedQueryLimit=null,this._hasLoadedEmptyPage=!1),this._status={...this._status,busy:!0,allDatasetsLoaded:e?this._status.allDatasetsLoaded:!1,paging:e};let t=this._generateQuery(e),n=JSON.stringify(t),r=this._queryCache.has(n);try{let a;r?a=this._queryCache.get(n):(a=await i.t.fetchApi(`/securable`,{action:`get`,version:`0.1.0`,find:t}),this._queryCache.set(n,a)),this._onDatasetsLoaded(e,a),this._shouldLoadMoreDatasetsForViewport()&&await this._loadAvailableDatasets({append:!0})}catch(e){console.error(`Error loading datasets:`,e),this._status={...this._status,busy:!1,paging:!1,error:!0}}finally{this._status={...this._status,busy:!1,paging:!1}}}_generateQuery(e){let t=this._calculateOptimalQueryLimit();e?this._currentOffset+=t:this._currentOffset=0;let n=this._searchValue?{search:{match_types:[`name`,`description`],keyphrase:this._searchValue,securable_types:`dataset`},order:[[`name`,`asc`]]}:{order:[[`updated_at`,`desc`]]};return{attributes:[`id`,`updated_at`,`name`,`subtype`],include:[{model:`Collection`,attributes:[`id`,`favorite`],where:{favorite:!0}},{model:`Account`,attributes:[`id`,`provider`,`name`],include:[{model:`Plugin`,attributes:[`id`],include:[{model:`Thumbnail`,where:{size:`32px`}}]}]}],where:{type:`dataset`},limit:t,offset:this._currentOffset,...n,...this.flagOpendata?{public:null}:{}}}_onDatasetsLoaded(e,{rows:t,count:n}){let r;if(e){let e=new Set(this._availableDatasets.map(e=>e.id)),n=t.filter(t=>!e.has(t.id));r=[...this._availableDatasets,...n]}else r=t||[];e&&t.length===0?this._hasLoadedEmptyPage=!0:t.length>0&&(this._hasLoadedEmptyPage=!1);let i=r.reduce((e,t)=>(e.some(e=>e.id===t.id)||e.push(t),e),[]),a=r.length,o=this._hasLoadedEmptyPage||a>=n;this._status={...this._status,allDatasetsLoaded:o},this._availableDatasets=i}_shouldLoadMoreDatasetsForViewport(){if(this._status.allDatasetsLoaded||this._hasLoadedEmptyPage||this._status.busy)return!1;let e=this.shadowRoot?.querySelector(`.datasets-scroll-container`);if(!e)return!1;let t=e.clientHeight,n=Math.ceil(t/24),r=Math.ceil(n*1.5);return this._filteredDatasets.length<r}_getDatasetName(e){let t=n.t();return r.t(e.name,t)||e.id||`Unknown Dataset`}_escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}_renderHighlightedDatasetName(e){let t=this._getDatasetName(e),n=this._searchValue.trim();if(!this.highlightSearchMatches||!n)return t;let r=this._escapeRegExp(n),i=RegExp(`(${r})`,`gi`),o=t.split(i),s=n.toLowerCase();return o.length===1?t:a.html`${o.map(e=>e.toLowerCase()===s?a.html`<span class="dataset-name-search-highlight">${e}</span>`:e)}`}_selectDataset(e){this.dispatchEvent(new CustomEvent(`dataset-selected`,{detail:e,bubbles:!0,composed:!0}))}_handleDatasetClick(e){let t=e.currentTarget.dataset.datasetId,n=this._filteredDatasets.find(e=>e.id===t);n&&this._selectDataset(n)}_handleDatasetKeydown(e){if(e.key===`Enter`||e.key===` `){e.preventDefault();let t=e.currentTarget.dataset.datasetId,n=this._filteredDatasets.find(e=>e.id===t);n&&this._selectDataset(n)}}_renderLoader(){return a.html`
20
+ const e=require(`./chunk-350yNsax.cjs`),t=require(`./decorate-Dq4-zbi1.cjs`),n=require(`./set-locale-C9s0jVjQ.cjs`),r=require(`./localize-BBuZJf_h.cjs`),i=require(`./data-broker-BUIUM5hr.cjs`);let a=require(`lit`),o=require(`lit/decorators.js`),s=require(`lit/directives/repeat.js`);var c=`:host{box-sizing:border-box;height:100%;font-family:var(--luzmo-dataset-selector-list-font-family,var(--dataset-selector-list-font-family));color:var(--luzmo-dataset-selector-list-color);flex-direction:column;display:flex}:host .dataset-selector-list{gap:var(--luzmo-dataset-selector-list-gap,var(--dataset-selector-list-gap));background:var(--luzmo-dataset-selector-list-background,var(--dataset-selector-list-background));height:100%;padding:var(--luzmo-dataset-selector-list-padding,var(--dataset-selector-list-padding));border-radius:var(--luzmo-dataset-selector-list-border-radius,var(--dataset-selector-list-border-radius));flex-direction:column;display:flex}:host .search-input{background-color:var(--luzmo-dataset-selector-list-input-background,var(--dataset-selector-list-input-background));border:none;border-bottom:1px solid var(--luzmo-dataset-selector-list-input-border-color,var(--dataset-selector-list-input-border-color));color:var(--luzmo-dataset-selector-list-input-color,var(--dataset-selector-list-input-color));line-height:var(--luzmo-dataset-selector-list-input-line-height,var(--dataset-selector-list-input-line-height));font-size:var(--luzmo-dataset-selector-list-input-font-size,var(--dataset-selector-list-input-font-size));padding:var(--luzmo-dataset-selector-list-input-padding,var(--dataset-selector-list-input-padding));box-sizing:border-box;outline:none;width:100%;margin:0}:host .search-input::placeholder{color:var(--luzmo-font-color-tertiary,#999)}:host .datasets-scroll-container{flex:1;min-height:0;overflow:hidden auto}:host .datasets-scroll-container::-webkit-scrollbar{width:var(--luzmo-dataset-selector-list-scrollbar-width,var(--dataset-selector-list-scrollbar-width))}:host .datasets-scroll-container::-webkit-scrollbar-track{background:var(--luzmo-dataset-selector-list-scrollbar-track-background,var(--dataset-selector-list-scrollbar-track-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-track-border-radius,var(--dataset-selector-list-scrollbar-track-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-background,var(--dataset-selector-list-scrollbar-thumb-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-thumb-border-radius,var(--dataset-selector-list-scrollbar-thumb-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-hover-background,var(--dataset-selector-list-scrollbar-thumb-hover-background))}:host .datasets-scroll-container{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-dataset-selector-list-scrollbar-thumb-background,var(--dataset-selector-list-scrollbar-thumb-background,var(--luzmo-scrollbar-thumb-background)))var(--luzmo-dataset-selector-list-scrollbar-track-background,var(--dataset-selector-list-scrollbar-track-background,var(--luzmo-scrollbar-track-background)))}:host .datasets-list{flex-direction:column;display:flex}:host .available-dataset-item{padding:var(--luzmo-dataset-selector-list-item-padding,var(--dataset-selector-list-item-padding));color:var(--luzmo-dataset-selector-available-dataset-color,var(--dataset-selector-available-dataset-color));align-items:center;gap:var(--luzmo-dataset-selector-list-item-gap,var(--dataset-selector-list-item-gap));cursor:pointer;border-radius:var(--luzmo-dataset-selector-list-item-border-radius,var(--dataset-selector-list-item-border-radius));flex-direction:row;transition:background-color .15s;display:flex}:host .available-dataset-item:hover{background-color:var(--luzmo-dataset-selector-list-item-hover-background,var(--dataset-selector-list-item-hover-background))}:host .available-dataset-item:focus{outline:none}:host .available-dataset-item .dataset-icon{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:flex}:host .available-dataset-item .dataset-icon luzmo-icon{display:flex}:host .available-dataset-item .dataset-icon-img{object-fit:contain;width:16px;height:16px}:host .available-dataset-item .dataset-name{line-height:var(--luzmo-dataset-selector-list-item-line-height,var(--dataset-selector-list-item-line-height));font-size:var(--luzmo-dataset-selector-list-item-font-size,var(--dataset-selector-list-item-font-size));text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}:host .available-dataset-item .dataset-name .dataset-name-search-highlight{background:var(--luzmo-dataset-selector-list-search-highlight-background,var(--dataset-selector-list-search-highlight-background));color:var(--luzmo-dataset-selector-list-search-highlight-color,var(--dataset-selector-list-search-highlight-color));border-radius:var(--luzmo-border-radius-s);padding:0}:host .no-datasets-found{height:50%;color:var(--luzmo-dataset-selector-list-no-datasets-color,var(--dataset-selector-list-no-datasets-color));font-size:var(--luzmo-dataset-selector-list-no-datasets-font-size,var(--dataset-selector-list-no-datasets-font-size));text-align:center;padding:var(--luzmo-spacing-4,1rem);justify-content:center;align-items:center;display:flex}:host .loader{padding:var(--luzmo-spacing-5,1.25rem)0;justify-content:center;align-items:center;display:flex}:host .loader .spinner{width:var(--luzmo-dataset-selector-list-loader-size,var(--dataset-selector-list-loader-size));height:var(--luzmo-dataset-selector-list-loader-size,var(--dataset-selector-list-loader-size));border:2px solid var(--luzmo-border-color-light,#e0e0e0);border-top-color:var(--luzmo-dataset-selector-list-loader-color,var(--dataset-selector-list-loader-color));border-radius:50%;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:host{--dataset-selector-list-background:var(--luzmo-background-color);--dataset-selector-list-padding:0;--dataset-selector-list-gap:var(--luzmo-spacing-2);--dataset-selector-list-border-radius:var(--luzmo-border-radius-m);--dataset-selector-list-font-family:var(--luzmo-font-family);--dataset-selector-list-input-background:var(--luzmo-background-color);--dataset-selector-list-input-border-color:var(--luzmo-border-color-light,#0000000d);--dataset-selector-list-input-color:var(--luzmo-font-color);--dataset-selector-list-input-padding:0 var(--luzmo-spacing-4)var(--luzmo-spacing-2);--dataset-selector-list-input-font-size:var(--luzmo-font-size-s);--dataset-selector-list-input-line-height:1.5rem;--dataset-selector-list-item-padding:var(--luzmo-spacing-1)var(--luzmo-spacing-4);--dataset-selector-list-item-gap:var(--luzmo-spacing-3);--dataset-selector-list-item-hover-background:var(--luzmo-background-color-highlight);--dataset-selector-list-item-font-size:var(--luzmo-font-size-s);--dataset-selector-list-item-line-height:1.5rem;--dataset-selector-list-item-border-radius:var(--luzmo-border-radius-s);--dataset-selector-list-search-highlight-background:rgba(var(--luzmo-primary-rgb),.15);--dataset-selector-list-search-highlight-color:var(--luzmo-primary);--dataset-selector-list-scrollbar-width:var(--luzmo-scrollbar-size);--dataset-selector-list-scrollbar-track-background:var(--luzmo-scrollbar-track-background);--dataset-selector-list-scrollbar-track-border-radius:var(--luzmo-scrollbar-track-border-radius);--dataset-selector-list-scrollbar-thumb-background:var(--luzmo-scrollbar-thumb-background);--dataset-selector-list-scrollbar-thumb-border-radius:var(--luzmo-scrollbar-thumb-border-radius);--dataset-selector-list-scrollbar-thumb-hover-background:var(--luzmo-scrollbar-thumb-hover-background);--dataset-selector-list-loader-size:24px;--dataset-selector-list-loader-color:var(--luzmo-primary);--dataset-selector-list-no-datasets-color:var(--luzmo-font-color);--dataset-selector-list-no-datasets-font-size:var(--luzmo-font-size-s);--dataset-selector-available-dataset-color:var(--luzmo-font-color)}`,l=7,u=600,d=5,f=class extends a.LitElement{constructor(...e){super(...e),this._selectedDatasets=new Set,this.showSearch=!0,this.searchPlaceholder=`Search datasets...`,this.noDatasetsMessage=`No datasets found`,this.highlightSearchMatches=!0,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.flagOpendata=!1,this._availableDatasets=[],this._status={allDatasetsLoaded:!1,paging:!1,busy:!0,error:!1},this._searchValue=``,this._currentOffset=0,this._searchDebounceTimer=null,this._queryCache=new Map,this._calculatedQueryLimit=null,this._hasLoadedEmptyPage=!1}static{this.styles=(0,a.unsafeCSS)(c)}set selectedDatasets(e){this._selectedDatasets=e,this._shouldLoadMoreDatasetsForViewport()&&this._loadAvailableDatasets({append:!0})}get selectedDatasets(){return this._selectedDatasets}connectedCallback(){super.connectedCallback?.(),this._configureBroker(),this._waitForContainerHeightAndLoad()}_configureBroker(){(this.authKey||this.authToken||this.apiUrl)&&i.t.configure({authKey:this.authKey,authToken:this.authToken,apiUrl:this.apiUrl})}_waitForContainerHeightAndLoad(){requestAnimationFrame(()=>{this._loadAvailableDatasets({append:!1})})}_calculateOptimalQueryLimit(){if(this._calculatedQueryLimit!==null)return this._calculatedQueryLimit;let e=this.shadowRoot?.querySelector(`.dataset-selector-list`);if(!e)return l;let t=getComputedStyle(e),n=e.clientHeight,r=Number.parseFloat(t.height),i=Math.max(n,r);if(i<=0)return l;let a=Math.floor(i/24),o=Math.max(a+d,l);return this._calculatedQueryLimit=o,o}get _filteredDatasets(){return this._selectedDatasets.size===0?this._availableDatasets:this._availableDatasets.filter(e=>!this._selectedDatasets.has(e.id))}_handleSearchInput(e){this._searchValue=e.target.value,this._searchDebounceTimer!==null&&clearTimeout(this._searchDebounceTimer),this._searchDebounceTimer=window.setTimeout(()=>{this._loadAvailableDatasets({append:!1})},u)}_handleScroll(e){let t=e.target,n=t.scrollTop,r=t.scrollHeight;n+t.clientHeight>=r-50&&!this._status.allDatasetsLoaded&&!this._status.busy&&this._loadAvailableDatasets({append:!0})}async _loadAvailableDatasets({append:e}){e||(this._calculatedQueryLimit=null,this._hasLoadedEmptyPage=!1),this._status={...this._status,busy:!0,allDatasetsLoaded:e?this._status.allDatasetsLoaded:!1,paging:e};let t=this._generateQuery(e),n=JSON.stringify(t),r=this._queryCache.has(n);try{let a;r?a=this._queryCache.get(n):(a=await i.t.fetchApi(`/securable`,{action:`get`,version:`0.1.0`,find:t}),this._queryCache.set(n,a)),this._onDatasetsLoaded(e,a),this._shouldLoadMoreDatasetsForViewport()&&await this._loadAvailableDatasets({append:!0})}catch(e){console.error(`Error loading datasets:`,e),this._status={...this._status,busy:!1,paging:!1,error:!0}}finally{this._status={...this._status,busy:!1,paging:!1}}}_generateQuery(e){let t=this._calculateOptimalQueryLimit();e?this._currentOffset+=t:this._currentOffset=0;let n=this._searchValue?{search:{match_types:[`name`,`description`],keyphrase:this._searchValue,securable_types:`dataset`},order:[[`name`,`asc`]]}:{order:[[`updated_at`,`desc`]]};return{attributes:[`id`,`updated_at`,`name`,`subtype`],include:[{model:`Collection`,attributes:[`id`,`favorite`],where:{favorite:!0}},{model:`Account`,attributes:[`id`,`provider`,`name`],include:[{model:`Plugin`,attributes:[`id`],include:[{model:`Thumbnail`,where:{size:`32px`}}]}]}],where:{type:`dataset`},limit:t,offset:this._currentOffset,...n,...this.flagOpendata?{public:null}:{}}}_onDatasetsLoaded(e,{rows:t,count:n}){let r;if(e){let e=new Set(this._availableDatasets.map(e=>e.id)),n=t.filter(t=>!e.has(t.id));r=[...this._availableDatasets,...n]}else r=t||[];e&&t.length===0?this._hasLoadedEmptyPage=!0:t.length>0&&(this._hasLoadedEmptyPage=!1);let i=r.reduce((e,t)=>(e.some(e=>e.id===t.id)||e.push(t),e),[]),a=r.length,o=this._hasLoadedEmptyPage||a>=n;this._status={...this._status,allDatasetsLoaded:o},this._availableDatasets=i}_shouldLoadMoreDatasetsForViewport(){if(this._status.allDatasetsLoaded||this._hasLoadedEmptyPage||this._status.busy)return!1;let e=this.shadowRoot?.querySelector(`.datasets-scroll-container`);if(!e)return!1;let t=e.clientHeight,n=Math.ceil(t/24),r=Math.ceil(n*1.5);return this._filteredDatasets.length<r}_getDatasetName(e){let t=n.t();return r.t(e.name,t)||e.id||`Unknown Dataset`}_escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}_renderHighlightedDatasetName(e){let t=this._getDatasetName(e),n=this._searchValue.trim();if(!this.highlightSearchMatches||!n)return t;let r=this._escapeRegExp(n),i=RegExp(`(${r})`,`gi`),o=t.split(i),s=n.toLowerCase();return o.length===1?t:a.html`${o.map(e=>e.toLowerCase()===s?a.html`<span class="dataset-name-search-highlight">${e}</span>`:e)}`}_selectDataset(e){this.dispatchEvent(new CustomEvent(`dataset-selected`,{detail:e,bubbles:!0,composed:!0}))}_handleDatasetClick(e){let t=e.currentTarget.dataset.datasetId,n=this._filteredDatasets.find(e=>e.id===t);n&&this._selectDataset(n)}_handleDatasetKeydown(e){if(e.key===`Enter`||e.key===` `){e.preventDefault();let t=e.currentTarget.dataset.datasetId,n=this._filteredDatasets.find(e=>e.id===t);n&&this._selectDataset(n)}}_renderLoader(){return a.html`
21
21
  <div class="loader">
22
22
  <div class="spinner"></div>
23
23
  </div>
@@ -18,7 +18,7 @@
18
18
  * SOFTWARE.
19
19
  * */
20
20
  import { t as __decorate } from "./decorate-Da6S_xrw.js";
21
- import { t as getLocale } from "./set-locale-C3o6ooUV.js";
21
+ import { t as getLocale } from "./set-locale-CgsoV0B9.js";
22
22
  import { t as localize } from "./localize-Dlt3EN5i.js";
23
23
  import { t as dataBroker } from "./data-broker-cLR-t5LM.js";
24
24
  import { LitElement, html, nothing, unsafeCSS } from "lit";
@@ -17,4 +17,4 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../set-locale-CdlBx8s9.cjs`),require(`../dataset-icon-C0cID-ra.cjs`),require(`../data-broker-BUIUM5hr.cjs`),require(`../dataset-selector-list-DYsi3LBF.cjs`);const e=require(`../dataset-selector-row-Qwz9WmR4.cjs`);exports.LuzmoDatasetSelectorRow=e.t;
20
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../set-locale-C9s0jVjQ.cjs`),require(`../dataset-icon-C0cID-ra.cjs`),require(`../data-broker-BUIUM5hr.cjs`),require(`../dataset-selector-list-BWe9GmlS.cjs`);const e=require(`../dataset-selector-row-DvzyItQS.cjs`);exports.LuzmoDatasetSelectorRow=e.t;
@@ -23,9 +23,9 @@
23
23
  e.setAttribute("data-luzmo-vars", ""), e.textContent = "html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: rgb(140, 140, 140);--luzmo-border-color-full-down: rgb(110, 110, 110);--luzmo-border-color-full-focus: rgb(140, 140, 140);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: #f0f0fc;--luzmo-background-color-down: #f1f1ff;--luzmo-background-color-focus: #f0f0fc;--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: rgb(225, 225, 225);--luzmo-background-color-highlight-down: rgb(215, 215, 215);--luzmo-background-color-highlight-focus: rgb(225, 225, 225);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: #333;--luzmo-font-color-down: #111;--luzmo-font-color-focus: #333;--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-width: thin;--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba(var(--luzmo-border-color-rgb), 0.4);--luzmo-primary: #4434ff;--luzmo-primary-hover: #4234e4;--luzmo-primary-down: #392cc7;--luzmo-primary-focus: #4234e4;--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: #e309e3;--luzmo-secondary-down: #c711c7;--luzmo-secondary-focus: #e309e3;--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-secondary-outline: rgba(255, 0, 255, 0.2);--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: #b3241f;--luzmo-negative-color-down: #9f231f;--luzmo-negative-color-focus: #b3241f;--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: rgb(17, 128, 86);--luzmo-positive-color-down: rgb(16, 105, 71);--luzmo-positive-color-focus: rgb(17, 128, 86);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: rgb(70, 70, 70);--luzmo-selected-color-down: rgb(40, 40, 40);--luzmo-selected-color-focus: rgb(70, 70, 70);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: rgb(0, 0, 0);--luzmo-selected-color-hard-down: rgb(0, 0, 0);--luzmo-selected-color-hard-focus: rgb(0, 0, 0);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}", document.head.appendChild(e);
24
24
  }
25
25
  })();
26
- import "../set-locale-C3o6ooUV.js";
26
+ import "../set-locale-CgsoV0B9.js";
27
27
  import "../dataset-icon-DhF21dXC.js";
28
28
  import "../data-broker-cLR-t5LM.js";
29
- import "../dataset-selector-list-C5FvwP-r.js";
30
- import { t as LuzmoDatasetSelectorRow } from "../dataset-selector-row-BKIFTyJl.js";
29
+ import "../dataset-selector-list-CA7bLSQv.js";
30
+ import { t as LuzmoDatasetSelectorRow } from "../dataset-selector-row-a5GXd9bd.js";
31
31
  export { LuzmoDatasetSelectorRow };
@@ -17,7 +17,7 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- const e=require(`./chunk-350yNsax.cjs`),t=require(`./decorate-Dq4-zbi1.cjs`),n=require(`./set-locale-CdlBx8s9.cjs`),r=require(`./localize-BBuZJf_h.cjs`);let i=require(`@luzmo/icons`),a=require(`lit`),o=require(`lit/decorators.js`),s=require(`@luzmo/lucero/overlay`);require(`@luzmo/lucero/popover`),require(`@luzmo/lucero/tooltip`);let c=require(`lit/directives/repeat.js`);var l=`:host{box-sizing:border-box;gap:var(--luzmo-dataset-selector-row-gap,var(--dataset-selector-row-gap));min-height:var(--luzmo-dataset-selector-row-min-height,var(--dataset-selector-row-min-height));font-size:var(--luzmo-dataset-selector-row-font-size,var(--dataset-selector-row-font-size));color:var(--luzmo-dataset-selector-row-color,var(--dataset-selector-row-color));font-family:var(--luzmo-dataset-selector-row-font-family,var(--dataset-selector-row-font-family));flex-flow:wrap;display:flex}:host[disabled]{cursor:not-allowed;opacity:.6}:host .add-dataset-button{align-items:center;gap:var(--luzmo-dataset-selector-row-button-gap,var(--dataset-selector-row-button-gap));min-width:var(--luzmo-dataset-selector-row-button-min-width,var(--dataset-selector-row-button-min-width));height:var(--luzmo-dataset-selector-row-button-height,var(--dataset-selector-row-button-height));border-radius:var(--luzmo-dataset-selector-row-button-border-radius,var(--dataset-selector-row-button-border-radius));border:1px solid var(--luzmo-dataset-selector-row-button-border-color,var(--dataset-selector-row-button-border-color));background-color:var(--luzmo-dataset-selector-row-button-background,var(--dataset-selector-row-button-background));color:var(--luzmo-dataset-selector-row-button-color,var(--dataset-selector-row-button-color));padding:var(--luzmo-dataset-selector-row-button-padding,var(--dataset-selector-row-button-padding));cursor:pointer;font-size:inherit;outline:none;justify-content:center;font-family:inherit;transition:all .15s;display:inline-flex}:host .add-dataset-button:hover{background-color:var(--luzmo-dataset-selector-row-button-hover-background,var(--dataset-selector-row-button-hover-background));border-color:var(--luzmo-dataset-selector-row-button-hover-border-color,var(--dataset-selector-row-button-border-color));color:var(--luzmo-dataset-selector-row-hover-color,var(--dataset-selector-row-hover-color))}:host .add-dataset-button:focus{outline:none}:host .add-dataset-button svg{font-size:var(--luzmo-dataset-selector-row-button-icon-size,var(--dataset-selector-row-button-icon-size));color:var(--luzmo-dataset-selector-row-button-icon-color,var(--dataset-selector-row-button-icon-color))}:host .add-dataset-button.icon-only{padding:var(--luzmo-dataset-selector-row-button-icon-only-padding,var(--dataset-selector-row-button-icon-only-padding))}:host .add-dataset-button:disabled{cursor:not-allowed;opacity:.6}:host .add-dataset-button:disabled:hover{background-color:var(--luzmo-dataset-selector-row-button-background,var(--dataset-selector-row-button-background))}:host[disabled] .removable-pill{cursor:not-allowed}:host[disabled] .removable-pill:hover{background-color:var(--luzmo-dataset-selector-row-pill-background,var(--dataset-selector-row-pill-background));border-color:var(--luzmo-dataset-selector-row-pill-border-color,var(--dataset-selector-row-pill-border-color))}:host[disabled] .removable-pill:hover .dataset-icon{display:flex}:host[disabled] .removable-pill:hover .close-icon{display:none}:host .removable-pill{box-sizing:border-box;max-width:var(--luzmo-dataset-selector-row-pill-max-width,var(--dataset-selector-row-pill-max-width));height:var(--luzmo-dataset-selector-row-pill-height,var(--dataset-selector-row-pill-height));padding:var(--luzmo-dataset-selector-row-pill-padding,var(--dataset-selector-row-pill-padding));gap:var(--luzmo-dataset-selector-row-pill-gap,var(--dataset-selector-row-pill-gap));border-radius:var(--luzmo-dataset-selector-row-pill-border-radius,var(--dataset-selector-row-pill-border-radius));border:1px solid var(--luzmo-dataset-selector-row-pill-border-color,var(--dataset-selector-row-pill-border-color));background-color:var(--luzmo-dataset-selector-row-pill-background,var(--dataset-selector-row-pill-background));cursor:pointer;flex-direction:row;align-items:center;transition:all .15s;display:flex}:host .removable-pill:hover{background-color:var(--luzmo-dataset-selector-row-pill-hover-background,var(--dataset-selector-row-pill-hover-background));border-color:var(--luzmo-dataset-selector-row-pill-hover-border-color,var(--dataset-selector-row-pill-border-color))}:host .removable-pill:hover .dataset-icon{display:none}:host .removable-pill:hover .close-icon{color:var(--luzmo-dataset-selector-row-pill-close-color,var(--dataset-selector-row-pill-close-color));display:inline-flex}:host .removable-pill .close-icon{width:var(--luzmo-dataset-selector-row-pill-close-size,var(--dataset-selector-row-pill-close-size));flex-shrink:0;display:none}:host .removable-pill .dataset-icon{width:var(--luzmo-dataset-selector-row-pill-icon-size,var(--dataset-selector-row-pill-icon-size));height:var(--luzmo-dataset-selector-row-pill-icon-size,var(--dataset-selector-row-pill-icon-size));flex-shrink:0;justify-content:center;align-items:center;display:flex}:host .removable-pill .dataset-icon luzmo-icon{display:flex}:host .removable-pill .dataset-icon-img{width:var(--luzmo-dataset-selector-row-pill-icon-size,var(--dataset-selector-row-pill-icon-size));height:var(--luzmo-dataset-selector-row-pill-icon-size,var(--dataset-selector-row-pill-icon-size));object-fit:contain}:host .removable-pill .dataset-name{text-overflow:ellipsis;white-space:nowrap;font-size:inherit;line-height:var(--luzmo-dataset-selector-row-pill-text-line-height,var(--dataset-selector-row-pill-text-line-height));flex:1;overflow:hidden}:host luzmo-popover{width:var(--luzmo-dataset-selector-row-popover-width,var(--dataset-selector-row-popover-width));height:var(--luzmo-dataset-selector-row-popover-height,var(--dataset-selector-row-popover-height))}:host{--dataset-selector-row-gap:var(--luzmo-spacing-2);--dataset-selector-row-min-height:1.75rem;--dataset-selector-row-font-size:.75rem;--dataset-selector-row-color:var(--luzmo-font-color-dimmed);--dataset-selector-row-hover-color:var(--luzmo-font-color);--dataset-selector-row-font-family:var(--luzmo-font-family);--dataset-selector-row-button-gap:var(--luzmo-spacing-2);--dataset-selector-row-button-min-width:1.75rem;--dataset-selector-row-button-height:1.75rem;--dataset-selector-row-button-border-radius:.375rem;--dataset-selector-row-button-border-color:var(--luzmo-border-color);--dataset-selector-row-button-background:var(--luzmo-background-color,#f8f8f8);--dataset-selector-row-button-color:var(--luzmo-font-color-tertiary,#a5a5a5);--dataset-selector-row-button-padding:.25rem .375rem;--dataset-selector-row-button-icon-only-padding:.25rem;--dataset-selector-row-button-icon-size:.875rem;--dataset-selector-row-button-icon-color:var(--luzmo-font-color-tertiary);--dataset-selector-row-button-hover-background:var(--luzmo-background-color-highlight,#f8f8f8);--dataset-selector-row-button-focus-outline-color:var(--luzmo-primary);--dataset-selector-row-pill-max-width:10rem;--dataset-selector-row-pill-height:1.75rem;--dataset-selector-row-pill-padding:.125rem .5rem;--dataset-selector-row-pill-gap:var(--luzmo-spacing-2);--dataset-selector-row-pill-border-radius:.5rem;--dataset-selector-row-pill-border-color:var(--luzmo-border-color);--dataset-selector-row-pill-background:var(--luzmo-background-color-alt-1,#f8f8f8);--dataset-selector-row-pill-hover-background:var(--luzmo-background-color-highlight,#f8f8f8);--dataset-selector-row-pill-hover-border-color:var(--luzmo-border-color-hover);--dataset-selector-row-pill-icon-size:1rem;--dataset-selector-row-pill-close-size:1rem;--dataset-selector-row-pill-close-color:var(--luzmo-danger,#dc3545);--dataset-selector-row-pill-text-line-height:1.2;--dataset-selector-row-popover-width:23.75rem;--dataset-selector-row-popover-height:15rem}`,u=class extends a.LitElement{constructor(...e){super(...e),this.selectedDatasets=[],this.buttonLabel=`Add dataset`,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.flagOpendata=!1,this.disabled=!1,this._overlayOpen=!1}static{this.styles=(0,a.unsafeCSS)(l)}static{this.tagName=`luzmo-dataset-selector-row`}get _hasSelectedDatasets(){return this.selectedDatasets.length>0}get _selectedDatasetIds(){return new Set(this.selectedDatasets.map(e=>e.id))}_handleAddDatasetClick(){this.disabled||(this._overlayOpen=!this._overlayOpen)}_handleDatasetSelected(e){let t=e.detail;this._selectedDatasetIds.has(t.id)||(this.selectedDatasets=[...this.selectedDatasets,t],this.dispatchEvent(new CustomEvent(`dataset-selected`,{detail:t,bubbles:!0,composed:!0})));let n=this.shadowRoot?.getElementById(`add-dataset-button`);n&&n.click(),this._overlayOpen=!1}_handleDatasetRemoved(e){this.disabled||(this.selectedDatasets=this.selectedDatasets.filter(t=>t.id!==e.id),this.dispatchEvent(new CustomEvent(`dataset-removed`,{detail:e,bubbles:!0,composed:!0})))}_getDatasetName(e){let t=n.t();return r.t(e.name,t)||e.id||`Unknown Dataset`}_renderDatasetIcon(e){return a.html`
20
+ const e=require(`./chunk-350yNsax.cjs`),t=require(`./decorate-Dq4-zbi1.cjs`),n=require(`./set-locale-C9s0jVjQ.cjs`),r=require(`./localize-BBuZJf_h.cjs`);let i=require(`@luzmo/icons`),a=require(`lit`),o=require(`lit/decorators.js`),s=require(`@luzmo/lucero/overlay`);require(`@luzmo/lucero/popover`),require(`@luzmo/lucero/tooltip`);let c=require(`lit/directives/repeat.js`);var l=`:host{box-sizing:border-box;gap:var(--luzmo-dataset-selector-row-gap,var(--dataset-selector-row-gap));min-height:var(--luzmo-dataset-selector-row-min-height,var(--dataset-selector-row-min-height));font-size:var(--luzmo-dataset-selector-row-font-size,var(--dataset-selector-row-font-size));color:var(--luzmo-dataset-selector-row-color,var(--dataset-selector-row-color));font-family:var(--luzmo-dataset-selector-row-font-family,var(--dataset-selector-row-font-family));flex-flow:wrap;display:flex}:host[disabled]{cursor:not-allowed;opacity:.6}:host .add-dataset-button{align-items:center;gap:var(--luzmo-dataset-selector-row-button-gap,var(--dataset-selector-row-button-gap));min-width:var(--luzmo-dataset-selector-row-button-min-width,var(--dataset-selector-row-button-min-width));height:var(--luzmo-dataset-selector-row-button-height,var(--dataset-selector-row-button-height));border-radius:var(--luzmo-dataset-selector-row-button-border-radius,var(--dataset-selector-row-button-border-radius));border:1px solid var(--luzmo-dataset-selector-row-button-border-color,var(--dataset-selector-row-button-border-color));background-color:var(--luzmo-dataset-selector-row-button-background,var(--dataset-selector-row-button-background));color:var(--luzmo-dataset-selector-row-button-color,var(--dataset-selector-row-button-color));padding:var(--luzmo-dataset-selector-row-button-padding,var(--dataset-selector-row-button-padding));cursor:pointer;font-size:inherit;outline:none;justify-content:center;font-family:inherit;transition:all .15s;display:inline-flex}:host .add-dataset-button:hover{background-color:var(--luzmo-dataset-selector-row-button-hover-background,var(--dataset-selector-row-button-hover-background));border-color:var(--luzmo-dataset-selector-row-button-hover-border-color,var(--dataset-selector-row-button-border-color));color:var(--luzmo-dataset-selector-row-hover-color,var(--dataset-selector-row-hover-color))}:host .add-dataset-button:focus{outline:none}:host .add-dataset-button svg{font-size:var(--luzmo-dataset-selector-row-button-icon-size,var(--dataset-selector-row-button-icon-size));color:var(--luzmo-dataset-selector-row-button-icon-color,var(--dataset-selector-row-button-icon-color))}:host .add-dataset-button.icon-only{padding:var(--luzmo-dataset-selector-row-button-icon-only-padding,var(--dataset-selector-row-button-icon-only-padding))}:host .add-dataset-button:disabled{cursor:not-allowed;opacity:.6}:host .add-dataset-button:disabled:hover{background-color:var(--luzmo-dataset-selector-row-button-background,var(--dataset-selector-row-button-background))}:host[disabled] .removable-pill{cursor:not-allowed}:host[disabled] .removable-pill:hover{background-color:var(--luzmo-dataset-selector-row-pill-background,var(--dataset-selector-row-pill-background));border-color:var(--luzmo-dataset-selector-row-pill-border-color,var(--dataset-selector-row-pill-border-color))}:host[disabled] .removable-pill:hover .dataset-icon{display:flex}:host[disabled] .removable-pill:hover .close-icon{display:none}:host .removable-pill{box-sizing:border-box;max-width:var(--luzmo-dataset-selector-row-pill-max-width,var(--dataset-selector-row-pill-max-width));height:var(--luzmo-dataset-selector-row-pill-height,var(--dataset-selector-row-pill-height));padding:var(--luzmo-dataset-selector-row-pill-padding,var(--dataset-selector-row-pill-padding));gap:var(--luzmo-dataset-selector-row-pill-gap,var(--dataset-selector-row-pill-gap));border-radius:var(--luzmo-dataset-selector-row-pill-border-radius,var(--dataset-selector-row-pill-border-radius));border:1px solid var(--luzmo-dataset-selector-row-pill-border-color,var(--dataset-selector-row-pill-border-color));background-color:var(--luzmo-dataset-selector-row-pill-background,var(--dataset-selector-row-pill-background));cursor:pointer;flex-direction:row;align-items:center;transition:all .15s;display:flex}:host .removable-pill:hover{background-color:var(--luzmo-dataset-selector-row-pill-hover-background,var(--dataset-selector-row-pill-hover-background));border-color:var(--luzmo-dataset-selector-row-pill-hover-border-color,var(--dataset-selector-row-pill-border-color))}:host .removable-pill:hover .dataset-icon{display:none}:host .removable-pill:hover .close-icon{color:var(--luzmo-dataset-selector-row-pill-close-color,var(--dataset-selector-row-pill-close-color));display:inline-flex}:host .removable-pill .close-icon{width:var(--luzmo-dataset-selector-row-pill-close-size,var(--dataset-selector-row-pill-close-size));flex-shrink:0;display:none}:host .removable-pill .dataset-icon{width:var(--luzmo-dataset-selector-row-pill-icon-size,var(--dataset-selector-row-pill-icon-size));height:var(--luzmo-dataset-selector-row-pill-icon-size,var(--dataset-selector-row-pill-icon-size));flex-shrink:0;justify-content:center;align-items:center;display:flex}:host .removable-pill .dataset-icon luzmo-icon{display:flex}:host .removable-pill .dataset-icon-img{width:var(--luzmo-dataset-selector-row-pill-icon-size,var(--dataset-selector-row-pill-icon-size));height:var(--luzmo-dataset-selector-row-pill-icon-size,var(--dataset-selector-row-pill-icon-size));object-fit:contain}:host .removable-pill .dataset-name{text-overflow:ellipsis;white-space:nowrap;font-size:inherit;line-height:var(--luzmo-dataset-selector-row-pill-text-line-height,var(--dataset-selector-row-pill-text-line-height));flex:1;overflow:hidden}:host luzmo-popover{width:var(--luzmo-dataset-selector-row-popover-width,var(--dataset-selector-row-popover-width));height:var(--luzmo-dataset-selector-row-popover-height,var(--dataset-selector-row-popover-height))}:host{--dataset-selector-row-gap:var(--luzmo-spacing-2);--dataset-selector-row-min-height:1.75rem;--dataset-selector-row-font-size:.75rem;--dataset-selector-row-color:var(--luzmo-font-color-dimmed);--dataset-selector-row-hover-color:var(--luzmo-font-color);--dataset-selector-row-font-family:var(--luzmo-font-family);--dataset-selector-row-button-gap:var(--luzmo-spacing-2);--dataset-selector-row-button-min-width:1.75rem;--dataset-selector-row-button-height:1.75rem;--dataset-selector-row-button-border-radius:.375rem;--dataset-selector-row-button-border-color:var(--luzmo-border-color);--dataset-selector-row-button-background:var(--luzmo-background-color,#f8f8f8);--dataset-selector-row-button-color:var(--luzmo-font-color-tertiary,#a5a5a5);--dataset-selector-row-button-padding:.25rem .375rem;--dataset-selector-row-button-icon-only-padding:.25rem;--dataset-selector-row-button-icon-size:.875rem;--dataset-selector-row-button-icon-color:var(--luzmo-font-color-tertiary);--dataset-selector-row-button-hover-background:var(--luzmo-background-color-highlight,#f8f8f8);--dataset-selector-row-button-focus-outline-color:var(--luzmo-primary);--dataset-selector-row-pill-max-width:10rem;--dataset-selector-row-pill-height:1.75rem;--dataset-selector-row-pill-padding:.125rem .5rem;--dataset-selector-row-pill-gap:var(--luzmo-spacing-2);--dataset-selector-row-pill-border-radius:.5rem;--dataset-selector-row-pill-border-color:var(--luzmo-border-color);--dataset-selector-row-pill-background:var(--luzmo-background-color-alt-1,#f8f8f8);--dataset-selector-row-pill-hover-background:var(--luzmo-background-color-highlight,#f8f8f8);--dataset-selector-row-pill-hover-border-color:var(--luzmo-border-color-hover);--dataset-selector-row-pill-icon-size:1rem;--dataset-selector-row-pill-close-size:1rem;--dataset-selector-row-pill-close-color:var(--luzmo-danger,#dc3545);--dataset-selector-row-pill-text-line-height:1.2;--dataset-selector-row-popover-width:23.75rem;--dataset-selector-row-popover-height:15rem}`,u=class extends a.LitElement{constructor(...e){super(...e),this.selectedDatasets=[],this.buttonLabel=`Add dataset`,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.flagOpendata=!1,this.disabled=!1,this._overlayOpen=!1}static{this.styles=(0,a.unsafeCSS)(l)}static{this.tagName=`luzmo-dataset-selector-row`}get _hasSelectedDatasets(){return this.selectedDatasets.length>0}get _selectedDatasetIds(){return new Set(this.selectedDatasets.map(e=>e.id))}_handleAddDatasetClick(){this.disabled||(this._overlayOpen=!this._overlayOpen)}_handleDatasetSelected(e){let t=e.detail;this._selectedDatasetIds.has(t.id)||(this.selectedDatasets=[...this.selectedDatasets,t],this.dispatchEvent(new CustomEvent(`dataset-selected`,{detail:t,bubbles:!0,composed:!0})));let n=this.shadowRoot?.getElementById(`add-dataset-button`);n&&n.click(),this._overlayOpen=!1}_handleDatasetRemoved(e){this.disabled||(this.selectedDatasets=this.selectedDatasets.filter(t=>t.id!==e.id),this.dispatchEvent(new CustomEvent(`dataset-removed`,{detail:e,bubbles:!0,composed:!0})))}_getDatasetName(e){let t=n.t();return r.t(e.name,t)||e.id||`Unknown Dataset`}_renderDatasetIcon(e){return a.html`
21
21
  <luzmo-dataset-icon
22
22
  .datasetInfo=${e}
23
23
  size="16px"
@@ -18,7 +18,7 @@
18
18
  * SOFTWARE.
19
19
  * */
20
20
  import { t as __decorate } from "./decorate-Da6S_xrw.js";
21
- import { t as getLocale } from "./set-locale-C3o6ooUV.js";
21
+ import { t as getLocale } from "./set-locale-CgsoV0B9.js";
22
22
  import { t as localize } from "./localize-Dlt3EN5i.js";
23
23
  import { luzmoClose12, luzmoIcon, luzmoPlus } from "@luzmo/icons";
24
24
  import { LitElement, html, nothing, unsafeCSS } from "lit";