@luzmo/analytics-components-kit 1.0.1-alpha.84 → 1.0.1-alpha.86

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 (39) hide show
  1. package/angular/README.md +1 -0
  2. package/angular/components/ai-interaction-textarea.component.ts +2 -0
  3. package/angular/components/dataset-icon.component.ts +21 -0
  4. package/angular/components/dataset-selector-row.component.ts +2 -0
  5. package/angular/components/droppable-slot.component.ts +2 -2
  6. package/angular/esm/components/ai-interaction-textarea.component.d.ts +2 -1
  7. package/angular/esm/components/ai-interaction-textarea.component.js +7 -2
  8. package/angular/esm/components/dataset-icon.component.d.ts +9 -0
  9. package/angular/esm/components/dataset-icon.component.js +36 -0
  10. package/angular/esm/components/dataset-selector-row.component.d.ts +2 -1
  11. package/angular/esm/components/dataset-selector-row.component.js +7 -2
  12. package/angular/esm/components/droppable-slot.component.d.ts +2 -2
  13. package/angular/esm/index.d.ts +3 -1
  14. package/angular/esm/index.js +3 -0
  15. package/angular/esm/types.d.ts +15 -1
  16. package/angular/index.ts +3 -0
  17. package/angular/types.ts +15 -2
  18. package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +7 -1
  19. package/components/ai-interaction-textarea/index.cjs +54 -0
  20. package/components/ai-interaction-textarea/index.d.ts +1 -1
  21. package/components/ai-interaction-textarea/index.js +165 -0
  22. package/components/dataset-icon/dataset-icon.d.ts +45 -0
  23. package/components/dataset-icon/index.cjs +60 -0
  24. package/components/dataset-icon/index.d.ts +7 -0
  25. package/components/dataset-icon/index.js +167 -0
  26. package/components/dataset-selector-list/dataset-selector-list.d.ts +1 -0
  27. package/components/dataset-selector-list/index.cjs +15 -13
  28. package/components/dataset-selector-list/index.js +42 -46
  29. package/components/dataset-selector-row/dataset-selector-row.d.ts +8 -0
  30. package/components/dataset-selector-row/index.cjs +82 -0
  31. package/components/dataset-selector-row/index.d.ts +1 -1
  32. package/components/dataset-selector-row/index.js +215 -0
  33. package/components/droppable-slot/droppable-slot.d.ts +2 -2
  34. package/components/index.cjs +1 -60
  35. package/components/index.js +104 -281
  36. package/custom-elements.json +156 -2
  37. package/index.d.ts +2 -0
  38. package/package.json +10 -5
  39. package/types.d.ts +15 -1
@@ -0,0 +1,165 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ import { localized as d } from "@lit/localize";
21
+ import { luzmoIcon as m, luzmoArrowRight as b } from "@luzmo/icons";
22
+ import { unsafeCSS as p, LitElement as h, html as z } from "lit";
23
+ import { property as i, state as s } from "lit/decorators.js";
24
+ import { classMap as x } from "lit/directives/class-map.js";
25
+ import "../dataset-selector-row/index.js";
26
+ (function() {
27
+ if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
28
+ const o = document.createElement("style");
29
+ o.setAttribute("data-luzmo-vars", ""), o.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-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(o);
30
+ }
31
+ })();
32
+ const g = ":host{box-sizing:border-box;display:flex;flex-direction:column;background-color:var(--luzmo-ai-interaction-textarea-background-color, var(--ai-interaction-textarea-background-color));border:1px solid var(--luzmo-ai-interaction-textarea-border-color, var(--ai-interaction-textarea-border-color));border-radius:var(--luzmo-ai-interaction-textarea-border-radius, var(--ai-interaction-textarea-border-radius));padding:var(--luzmo-ai-interaction-textarea-padding, var(--ai-interaction-textarea-padding));gap:var(--luzmo-ai-interaction-textarea-gap, var(--ai-interaction-textarea-gap));font-family:var(--luzmo-ai-interaction-textarea-font-family, var(--ai-interaction-textarea-font-family));font-size:var(--luzmo-ai-interaction-textarea-font-size, var(--ai-interaction-textarea-font-size))}:host:has(textarea:focus){border-color:var(--luzmo-ai-interaction-textarea-focus-border-color, var(--ai-interaction-textarea-focus-border-color));box-shadow:var(--luzmo-ai-interaction-textarea-focus-box-shadow, var(--ai-interaction-textarea-focus-box-shadow))}:host .content-wrapper{display:flex;flex-direction:column;gap:var(--luzmo-ai-interaction-textarea-gap, var(--ai-interaction-textarea-gap))}:host .content-wrapper.disabled{opacity:.6;pointer-events:none;cursor:not-allowed}:host .content-wrapper.disabled *{pointer-events:none}:host textarea{background-color:var(--luzmo-ai-interaction-textarea-textarea-background, var(--ai-interaction-textarea-textarea-background));border:none;resize:none;outline:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;vertical-align:middle;padding:0;min-height:3rem;color:var(--luzmo-ai-interaction-textarea-textarea-color, var(--ai-interaction-textarea-textarea-color));font-family:var(--luzmo-ai-interaction-textarea-font-family, var(--ai-interaction-textarea-font-family));font-size:var(--luzmo-ai-interaction-textarea-font-size, var(--ai-interaction-textarea-font-size));line-height:1.5}:host textarea::placeholder{color:var(--luzmo-ai-interaction-textarea-textarea-placeholder-color, var(--ai-interaction-textarea-textarea-placeholder-color))}:host .button-container{text-align:var(--luzmo-ai-interaction-textarea-button-container-text-align, var(--ai-interaction-textarea-button-container-text-align))}:host .button-container button{padding:var(--luzmo-ai-interaction-textarea-button-padding, var(--ai-interaction-textarea-button-padding));min-width:var(--luzmo-ai-interaction-textarea-button-min-width, var(--ai-interaction-textarea-button-min-width));min-height:var(--luzmo-ai-interaction-textarea-button-min-height, var(--ai-interaction-textarea-button-min-height));border:none;border-radius:var(--luzmo-ai-interaction-textarea-button-border-radius, var(--ai-interaction-textarea-button-border-radius));font-size:var(--luzmo-ai-interaction-textarea-button-font-size, var(--ai-interaction-textarea-button-font-size));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}:host .button-container button:disabled{opacity:.6;cursor:not-allowed}:host .button-container button.disabled{opacity:.6;cursor:not-allowed}:host .button-container button svg{display:flex;align-items:center;justify-content:center}:host .button-container button.btn-primary{background-color:var(--luzmo-ai-interaction-textarea-button-background-color, var(--ai-interaction-textarea-button-background-color));color:var(--luzmo-ai-interaction-textarea-button-color, var(--ai-interaction-textarea-button-color))}:host .button-container button.btn-primary:hover:not(:disabled):not(.disabled){background-color:var(--luzmo-ai-interaction-textarea-button-background-color-hover, var(--ai-interaction-textarea-button-background-color-hover))}:host .button-container button.btn-primary:disabled,:host .button-container button.btn-primary.disabled{background-color:var(--luzmo-ai-interaction-textarea-button-background-color-disabled, var(--ai-interaction-textarea-button-background-color-disabled));opacity:.6}:host{--ai-interaction-textarea-background-color: var(--luzmo-background-color-alt-2);--ai-interaction-textarea-border-color: var(--luzmo-border-color);--ai-interaction-textarea-border-radius: .5rem;--ai-interaction-textarea-padding: .75rem;--ai-interaction-textarea-gap: 1rem;--ai-interaction-textarea-focus-border-color: var(--luzmo-primary);--ai-interaction-textarea-focus-box-shadow: 0 0 1rem 0 var(--luzmo-primary-50);--ai-interaction-textarea-font-family: var(--luzmo-font-family);--ai-interaction-textarea-font-size: .875rem;--ai-interaction-textarea-textarea-background: transparent;--ai-interaction-textarea-textarea-color: var(--luzmo-font-color);--ai-interaction-textarea-textarea-placeholder-color: var(--luzmo-font-color-extra-dimmed);--ai-interaction-textarea-button-container-text-align: right;--ai-interaction-textarea-button-padding: 0;--ai-interaction-textarea-button-min-width: 2rem;--ai-interaction-textarea-button-min-height: 1.875rem;--ai-interaction-textarea-button-border-radius: .5rem;--ai-interaction-textarea-button-font-size: 1rem;--ai-interaction-textarea-button-background-color: var(--luzmo-primary);--ai-interaction-textarea-button-background-color-hover: var(--luzmo-primary-hover);--ai-interaction-textarea-button-background-color-disabled: var(--luzmo-primary);--ai-interaction-textarea-button-color: var(--luzmo-primary-inverse-color)}";
33
+ var f = Object.defineProperty, v = Object.getOwnPropertyDescriptor, a = (t, o, r, l) => {
34
+ for (var n = l > 1 ? void 0 : l ? v(o, r) : o, c = t.length - 1, u; c >= 0; c--)
35
+ (u = t[c]) && (n = (l ? u(o, r, n) : u(n)) || n);
36
+ return l && n && f(o, r, n), n;
37
+ };
38
+ let e = class extends h {
39
+ constructor() {
40
+ super(...arguments), this.placeholder = "Type your prompt here...", this.selectedDatasets = [], this.authKey = "", this.authToken = "", this.apiUrl = "https://api.luzmo.com", this.appServer = "https://app.luzmo.com", this.flagOpendata = !1, this.disabled = !1, this._promptValue = "", this._isPromptValid = !1;
41
+ }
42
+ get _buttonDisabled() {
43
+ return this.disabled || this.selectedDatasets.length === 0 || !this._isPromptValid;
44
+ }
45
+ _autoResizeTextarea(t) {
46
+ t.style.height = "auto";
47
+ const o = 2 * 1.5 * 16, r = 8 * 1.5 * 16, l = Math.max(o, Math.min(t.scrollHeight, r));
48
+ t.style.height = `${l}px`;
49
+ }
50
+ _handlePromptInput(t) {
51
+ const o = t.target;
52
+ this._promptValue = o.value, this._isPromptValid = o.value.trim().length > 0, this._autoResizeTextarea(o), o.scrollTo({ top: o.scrollHeight });
53
+ }
54
+ _handleKeyDown(t) {
55
+ t.key === "Enter" && !t.shiftKey && (t.preventDefault(), this._submitPrompt());
56
+ }
57
+ _submitPrompt() {
58
+ if (this._buttonDisabled)
59
+ return;
60
+ const t = this._promptValue.trim();
61
+ this.dispatchEvent(
62
+ new CustomEvent("prompt-submitted", {
63
+ detail: {
64
+ prompt: t,
65
+ selectedDatasets: this.selectedDatasets
66
+ },
67
+ bubbles: !0,
68
+ composed: !0
69
+ })
70
+ );
71
+ }
72
+ _handleDatasetSelected(t) {
73
+ const o = t.detail;
74
+ this.selectedDatasets.some((r) => r.id === o.id) || (this.selectedDatasets = [...this.selectedDatasets, o]);
75
+ }
76
+ _handleDatasetRemoved(t) {
77
+ const o = t.detail;
78
+ this.selectedDatasets = this.selectedDatasets.filter((r) => r.id !== o.id);
79
+ }
80
+ firstUpdated() {
81
+ var o;
82
+ const t = (o = this.shadowRoot) == null ? void 0 : o.querySelector("textarea");
83
+ t && this._autoResizeTextarea(t);
84
+ }
85
+ render() {
86
+ const t = {
87
+ "content-wrapper": !0,
88
+ disabled: this.disabled
89
+ };
90
+ return z`
91
+ <div class=${x(t)}>
92
+ <luzmo-dataset-selector-row
93
+ .selectedDatasets=${this.selectedDatasets}
94
+ auth-key=${this.authKey}
95
+ auth-token=${this.authToken}
96
+ api-url=${this.apiUrl}
97
+ app-server=${this.appServer}
98
+ ?flag-opendata=${this.flagOpendata}
99
+ ?disabled=${this.disabled}
100
+ @dataset-selected=${this._handleDatasetSelected}
101
+ @dataset-removed=${this._handleDatasetRemoved}
102
+ ></luzmo-dataset-selector-row>
103
+
104
+ <textarea
105
+ ?autofocus=${!this.disabled}
106
+ ?disabled=${this.disabled}
107
+ .placeholder=${this.placeholder}
108
+ .value=${this._promptValue}
109
+ @input=${this._handlePromptInput}
110
+ @keydown=${this._handleKeyDown}
111
+ rows="2"
112
+ ></textarea>
113
+
114
+ <div class="button-container">
115
+ <button
116
+ class="btn btn-primary"
117
+ ?disabled=${this._buttonDisabled}
118
+ @click=${this._submitPrompt}
119
+ >
120
+ ${m(b)}
121
+ </button>
122
+ </div>
123
+ </div>
124
+ `;
125
+ }
126
+ };
127
+ e.styles = p(g);
128
+ e.tagName = "luzmo-ai-interaction-textarea";
129
+ a([
130
+ i({ type: String })
131
+ ], e.prototype, "placeholder", 2);
132
+ a([
133
+ i({ type: Array })
134
+ ], e.prototype, "selectedDatasets", 2);
135
+ a([
136
+ i({ type: String, attribute: "auth-key" })
137
+ ], e.prototype, "authKey", 2);
138
+ a([
139
+ i({ type: String, attribute: "auth-token" })
140
+ ], e.prototype, "authToken", 2);
141
+ a([
142
+ i({ type: String, attribute: "api-url" })
143
+ ], e.prototype, "apiUrl", 2);
144
+ a([
145
+ i({ type: String, attribute: "app-server" })
146
+ ], e.prototype, "appServer", 2);
147
+ a([
148
+ i({ type: Boolean, attribute: "flag-opendata" })
149
+ ], e.prototype, "flagOpendata", 2);
150
+ a([
151
+ i({ type: Boolean, reflect: !0, attribute: "disabled" })
152
+ ], e.prototype, "disabled", 2);
153
+ a([
154
+ s()
155
+ ], e.prototype, "_promptValue", 2);
156
+ a([
157
+ s()
158
+ ], e.prototype, "_isPromptValid", 2);
159
+ e = a([
160
+ d()
161
+ ], e);
162
+ customElements.get("luzmo-ai-interaction-textarea") || customElements.define("luzmo-ai-interaction-textarea", e);
163
+ export {
164
+ e as LuzmoAiInteractionTextarea
165
+ };
@@ -0,0 +1,45 @@
1
+ import { LitElement, PropertyValues, TemplateResult } from 'lit';
2
+ import { DatasetIcon } from 'src/types';
3
+ /**
4
+ * Thumbnail size options
5
+ */
6
+ export type ThumbnailSize = '32px' | '64px';
7
+ /**
8
+ * Partial record type for thumbnails
9
+ */
10
+ export type PartialRecord<K extends keyof any, T> = {
11
+ [P in K]?: T;
12
+ };
13
+ /**
14
+ * Public connectors list - these are well-known connectors that may have CSS-based icons
15
+ * This list should match the one from @shared-lib
16
+ */
17
+ export declare const publicConnectors: readonly ["amazonathena", "asana", "bigquery", "citybikes", "clickhouse", "demodataplugin", "elasticsearch", "exact", "exactonline", "exactonlinenl", "google", "googleanalytics", "googleanalyticsv4", "googledrive", "hubspot", "mailchimp", "mariadb", "mongodb", "mysql", "oracle", "panoply", "pipedrive", "pipelinedb", "postgresql", "presto", "redshift", "salesforce", "saphana", "snowflake", "sqlserver", "stardog", "synapse", "teamleader", "trino", "typeform", "zendesk"];
18
+ /**
19
+ * @element luzmo-dataset-icon
20
+ * @summary Displays an icon for a dataset based on its type, thumbnails, and connector
21
+ */
22
+ export declare class LuzmoDatasetIcon extends LitElement {
23
+ static styles: import("lit").CSSResult;
24
+ static tagName: string;
25
+ /**
26
+ * The dataset information containing subtype and thumbnail data
27
+ */
28
+ datasetInfo?: DatasetIcon;
29
+ /**
30
+ * The size of the icon
31
+ * @default '32px'
32
+ */
33
+ size: '16px' | '24px' | '32px' | '48px' | '64px';
34
+ /**
35
+ * The base URL for the application (used for thumbnail URLs)
36
+ */
37
+ appUrl: string;
38
+ private _subtype;
39
+ private _isPublicConnector;
40
+ private _thumbnails;
41
+ private readonly thumbnailSizeMap;
42
+ protected willUpdate(changedProperties: PropertyValues): void;
43
+ private _updateDatasetProperties;
44
+ protected render(): TemplateResult;
45
+ }
@@ -0,0 +1,60 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@luzmo/icons"),i=require("lit"),u=require("lit/decorators.js"),g=".dataset-icon{display:flex;justify-content:center;align-items:center}.dataset-icon .public-connector{overflow:hidden}.dataset-icon .public-connector img{display:block;object-fit:cover}.dataset-icon [class*=public-connector-]{width:100%;height:100%;background-size:cover;background-repeat:no-repeat;background-position:center}.dataset-icon .public-connector-16,.dataset-icon .public-connector-24,.dataset-icon .public-connector-32{background-image:var(--connector-sprite-64x64)}.dataset-icon .public-connector-48,.dataset-icon .public-connector-64{background-image:var(--connector-sprite-96x96)}.dataset-icon .text-primary{color:var(--luzmo-primary, #007bff);display:flex;align-items:center;justify-content:center}.dataset-icon .text-primary.upload-icon,.dataset-icon .text-primary.plugin-icon{width:100%;height:100%}.public-connector-16.amazonathena{background-position:0 0}.public-connector-16.asana{background-position:0 -16px}.public-connector-16.bigquery{background-position:0 -32px}.public-connector-16.citybikes{background-position:0 -48px}.public-connector-16.clickhouse{background-position:0 -64px}.public-connector-16.demodataplugin{background-position:0 -80px}.public-connector-16.elasticsearch{background-position:0 -96px}.public-connector-16.exactonline,.public-connector-16.exactonlinenl{background-position:0 -112px}.public-connector-16.google{background-position:0 -128px}.public-connector-16.googleanalytics,.public-connector-16.googleanalyticsv4{background-position:0 -144px}.public-connector-16.googledrive{background-position:0 -160px}.public-connector-16.hubspot{background-position:0 -176px}.public-connector-16.lobbipad{background-position:0 -192px}.public-connector-16.mailchimp{background-position:0 -208px}.public-connector-16.mariadb{background-position:0 -224px}.public-connector-16.mongodb{background-position:0 -240px}.public-connector-16.mysql{background-position:0 -256px}.public-connector-16.oracle{background-position:0 -272px}.public-connector-16.panoply{background-position:0 -288px}.public-connector-16.pipedrive{background-position:0 -304px}.public-connector-16.pipelinedb{background-position:0 -320px}.public-connector-16.postgresql{background-position:0 -336px}.public-connector-16.presto{background-position:0 -352px}.public-connector-16.redshift{background-position:0 -368px}.public-connector-16.salesforce{background-position:0 -384px}.public-connector-16.saphana{background-position:0 -400px}.public-connector-16.snowflake{background-position:0 -416px}.public-connector-16.sqlserver{background-position:0 -432px}.public-connector-16.stardog{background-position:0 -448px}.public-connector-16.synapse{background-position:0 -464px}.public-connector-16.teamleader{background-position:0 -480px}.public-connector-16.trino{background-position:0 -496px}.public-connector-16.typeform{background-position:0 -512px}.public-connector-16.zendesk{background-position:0 -528px}.public-connector-24.amazonathena{background-position:0 0}.public-connector-24.asana{background-position:0 -24px}.public-connector-24.bigquery{background-position:0 -48px}.public-connector-24.citybikes{background-position:0 -72px}.public-connector-24.clickhouse{background-position:0 -96px}.public-connector-24.demodataplugin{background-position:0 -120px}.public-connector-24.elasticsearch{background-position:0 -144px}.public-connector-24.exactonline,.public-connector-24.exactonlinenl{background-position:0 -168px}.public-connector-24.google{background-position:0 -192px}.public-connector-24.googleanalytics,.public-connector-24.googleanalyticsv4{background-position:0 -216px}.public-connector-24.googledrive{background-position:0 -240px}.public-connector-24.hubspot{background-position:0 -264px}.public-connector-24.lobbipad{background-position:0 -288px}.public-connector-24.mailchimp{background-position:0 -312px}.public-connector-24.mariadb{background-position:0 -336px}.public-connector-24.mongodb{background-position:0 -360px}.public-connector-24.mysql{background-position:0 -384px}.public-connector-24.oracle{background-position:0 -408px}.public-connector-24.panoply{background-position:0 -432px}.public-connector-24.pipedrive{background-position:0 -456px}.public-connector-24.pipelinedb{background-position:0 -480px}.public-connector-24.postgresql{background-position:0 -504px}.public-connector-24.presto{background-position:0 -528px}.public-connector-24.redshift{background-position:0 -552px}.public-connector-24.salesforce{background-position:0 -576px}.public-connector-24.saphana{background-position:0 -600px}.public-connector-24.snowflake{background-position:0 -624px}.public-connector-24.sqlserver{background-position:0 -648px}.public-connector-24.stardog{background-position:0 -672px}.public-connector-24.synapse{background-position:0 -696px}.public-connector-24.teamleader{background-position:0 -720px}.public-connector-24.trino{background-position:0 -744px}.public-connector-24.typeform{background-position:0 -768px}.public-connector-24.zendesk{background-position:0 -792px}.public-connector-32.amazonathena{background-position:0 0}.public-connector-32.asana{background-position:0 -32px}.public-connector-32.bigquery{background-position:0 -64px}.public-connector-32.citybikes{background-position:0 -96px}.public-connector-32.clickhouse{background-position:0 -128px}.public-connector-32.demodataplugin{background-position:0 -160px}.public-connector-32.elasticsearch{background-position:0 -192px}.public-connector-32.exactonline,.public-connector-32.exactonlinenl{background-position:0 -224px}.public-connector-32.google{background-position:0 -256px}.public-connector-32.googleanalytics,.public-connector-32.googleanalyticsv4{background-position:0 -288px}.public-connector-32.googledrive{background-position:0 -320px}.public-connector-32.hubspot{background-position:0 -352px}.public-connector-32.lobbipad{background-position:0 -384px}.public-connector-32.mailchimp{background-position:0 -416px}.public-connector-32.mariadb{background-position:0 -448px}.public-connector-32.mongodb{background-position:0 -480px}.public-connector-32.mysql{background-position:0 -512px}.public-connector-32.oracle{background-position:0 -544px}.public-connector-32.panoply{background-position:0 -576px}.public-connector-32.pipedrive{background-position:0 -608px}.public-connector-32.pipelinedb{background-position:0 -640px}.public-connector-32.postgresql{background-position:0 -672px}.public-connector-32.presto{background-position:0 -704px}.public-connector-32.redshift{background-position:0 -736px}.public-connector-32.salesforce{background-position:0 -768px}.public-connector-32.saphana{background-position:0 -800px}.public-connector-32.snowflake{background-position:0 -832px}.public-connector-32.sqlserver{background-position:0 -864px}.public-connector-32.stardog{background-position:0 -896px}.public-connector-32.synapse{background-position:0 -928px}.public-connector-32.teamleader{background-position:0 -960px}.public-connector-32.trino{background-position:0 -992px}.public-connector-32.typeform{background-position:0 -1024px}.public-connector-32.zendesk{background-position:0 -1056px}.public-connector-48.amazonathena{background-position:0 0}.public-connector-48.asana{background-position:0 -48px}.public-connector-48.bigquery{background-position:0 -96px}.public-connector-48.citybikes{background-position:0 -144px}.public-connector-48.clickhouse{background-position:0 -192px}.public-connector-48.demodataplugin{background-position:0 -240px}.public-connector-48.elasticsearch{background-position:0 -288px}.public-connector-48.exactonline,.public-connector-48.exactonlinenl{background-position:0 -336px}.public-connector-48.google{background-position:0 -384px}.public-connector-48.googleanalytics,.public-connector-48.googleanalyticsv4{background-position:0 -432px}.public-connector-48.googledrive{background-position:0 -480px}.public-connector-48.hubspot{background-position:0 -528px}.public-connector-48.lobbipad{background-position:0 -576px}.public-connector-48.mailchimp{background-position:0 -624px}.public-connector-48.mariadb{background-position:0 -672px}.public-connector-48.mongodb{background-position:0 -720px}.public-connector-48.mysql{background-position:0 -768px}.public-connector-48.oracle{background-position:0 -816px}.public-connector-48.panoply{background-position:0 -864px}.public-connector-48.pipedrive{background-position:0 -912px}.public-connector-48.pipelinedb{background-position:0 -960px}.public-connector-48.postgresql{background-position:0 -1008px}.public-connector-48.presto{background-position:0 -1056px}.public-connector-48.redshift{background-position:0 -1104px}.public-connector-48.salesforce{background-position:0 -1152px}.public-connector-48.saphana{background-position:0 -1200px}.public-connector-48.snowflake{background-position:0 -1248px}.public-connector-48.sqlserver{background-position:0 -1296px}.public-connector-48.stardog{background-position:0 -1344px}.public-connector-48.synapse{background-position:0 -1392px}.public-connector-48.teamleader{background-position:0 -1440px}.public-connector-48.trino{background-position:0 -1488px}.public-connector-48.typeform{background-position:0 -1536px}.public-connector-48.zendesk{background-position:0 -1584px}.public-connector-64.amazonathena{background-position:0 0}.public-connector-64.asana{background-position:0 -64px}.public-connector-64.bigquery{background-position:0 -128px}.public-connector-64.citybikes{background-position:0 -192px}.public-connector-64.clickhouse{background-position:0 -256px}.public-connector-64.demodataplugin{background-position:0 -320px}.public-connector-64.elasticsearch{background-position:0 -384px}.public-connector-64.exactonline,.public-connector-64.exactonlinenl{background-position:0 -448px}.public-connector-64.google{background-position:0 -512px}.public-connector-64.googleanalytics,.public-connector-64.googleanalyticsv4{background-position:0 -576px}.public-connector-64.googledrive{background-position:0 -640px}.public-connector-64.hubspot{background-position:0 -704px}.public-connector-64.lobbipad{background-position:0 -768px}.public-connector-64.mailchimp{background-position:0 -832px}.public-connector-64.mariadb{background-position:0 -896px}.public-connector-64.mongodb{background-position:0 -960px}.public-connector-64.mysql{background-position:0 -1024px}.public-connector-64.oracle{background-position:0 -1088px}.public-connector-64.panoply{background-position:0 -1152px}.public-connector-64.pipedrive{background-position:0 -1216px}.public-connector-64.pipelinedb{background-position:0 -1280px}.public-connector-64.postgresql{background-position:0 -1344px}.public-connector-64.presto{background-position:0 -1408px}.public-connector-64.redshift{background-position:0 -1472px}.public-connector-64.salesforce{background-position:0 -1536px}.public-connector-64.saphana{background-position:0 -1600px}.public-connector-64.snowflake{background-position:0 -1664px}.public-connector-64.sqlserver{background-position:0 -1728px}.public-connector-64.stardog{background-position:0 -1792px}.public-connector-64.synapse{background-position:0 -1856px}.public-connector-64.teamleader{background-position:0 -1920px}.public-connector-64.trino{background-position:0 -1984px}.public-connector-64.typeform{background-position:0 -2048px}.public-connector-64.zendesk{background-position:0 -2112px}";var x=Object.defineProperty,l=(r,o,n,b)=>{for(var c=void 0,p=r.length-1,e;p>=0;p--)(e=r[p])&&(c=e(o,n,c)||c);return c&&x(o,n,c),c};const k=["amazonathena","asana","bigquery","citybikes","clickhouse","demodataplugin","elasticsearch","exact","exactonline","exactonlinenl","google","googleanalytics","googleanalyticsv4","googledrive","hubspot","mailchimp","mariadb","mongodb","mysql","oracle","panoply","pipedrive","pipelinedb","postgresql","presto","redshift","salesforce","saphana","snowflake","sqlserver","stardog","synapse","teamleader","trino","typeform","zendesk"];function h(r){const o={};return r.forEach(n=>{(n.size==="32px"||n.size==="64px")&&(o[n.size]=n.url)}),o}const a=class a extends i.LitElement{constructor(){super(...arguments),this.size="32px",this.appUrl="",this._subtype="",this._isPublicConnector=!1,this._thumbnails={},this.thumbnailSizeMap={"16px":"32px","24px":"32px","32px":"32px","48px":"64px","64px":"64px"}}willUpdate(o){(o.has("datasetInfo")||o.has("size"))&&this._updateDatasetProperties()}_updateDatasetProperties(){var o,n;if(!this.datasetInfo){this._subtype="",this._isPublicConnector=!1,this._thumbnails={};return}this._subtype=this.datasetInfo.subtype||"",this._isPublicConnector=this.datasetInfo.subtype!=="api"&&this.datasetInfo.subtype!=="upload"&&k.includes(this.datasetInfo.subtype),this._thumbnails=(n=(o=this.datasetInfo.account)==null?void 0:o.plugin)!=null&&n.thumbnails?h(this.datasetInfo.account.plugin.thumbnails):{}}render(){if(!this.datasetInfo)return i.html``;const o=this.thumbnailSizeMap[this.size],n=!!this._thumbnails[o],b=this.size.slice(0,-2),c=this.appUrl?`${this.appUrl}/assets/images/connectors/sprites/all-connectors.64x64.png`:"",p=this.appUrl?`${this.appUrl}/assets/images/connectors/sprites/all-connectors.96x96.png`:"";if(this._subtype!=="upload"&&n){const e=this._thumbnails[o],d=e?`${this.appUrl}/${e}`:"";return i.html`
21
+ <div
22
+ class="position-relative dataset-icon d-flex justify-content-center"
23
+ style="width: ${this.size}; height: ${this.size};"
24
+ >
25
+ <div class="public-connector">
26
+ <img
27
+ src=${d}
28
+ style="width: ${this.size}; height: ${this.size};"
29
+ alt="Dataset icon"
30
+ />
31
+ </div>
32
+ </div>
33
+ `}return this._isPublicConnector&&this._subtype!=="upload"&&!n?i.html`
34
+ <div
35
+ class="position-relative dataset-icon d-flex justify-content-center"
36
+ style="width: ${this.size}; height: ${this.size}; --connector-sprite-64x64: url('${c}'); --connector-sprite-96x96: url('${p}');"
37
+ >
38
+ <div
39
+ class="public-connector-${b} ${this._subtype}"
40
+ ></div>
41
+ </div>
42
+ `:!this._isPublicConnector&&this._subtype==="upload"?i.html`
43
+ <div
44
+ class="position-relative dataset-icon d-flex justify-content-center"
45
+ style="width: ${this.size}; height: ${this.size};"
46
+ >
47
+ <div class="text-primary d-flex align-items-center" style="font-size: ${this.size};">
48
+ ${s.luzmoIcon(s.luzmoFileUploadOutline)}
49
+ </div>
50
+ </div>
51
+ `:!this._isPublicConnector&&this._subtype!=="upload"&&!n?i.html`
52
+ <div
53
+ class="position-relative dataset-icon d-flex justify-content-center"
54
+ style="width: ${this.size}; height: ${this.size};"
55
+ >
56
+ <div class="text-primary ${this._subtype}" style="font-size: ${this.size};">
57
+ ${s.luzmoIcon(s.luzmoPlugin)}
58
+ </div>
59
+ </div>
60
+ `:i.html``}};a.styles=i.unsafeCSS(g),a.tagName="luzmo-dataset-icon";let t=a;l([u.property({type:Object,attribute:"dataset"})],t.prototype,"datasetInfo");l([u.property({type:String,reflect:!0})],t.prototype,"size");l([u.property({type:String,attribute:"app-url"})],t.prototype,"appUrl");customElements.get("luzmo-dataset-icon")||customElements.define("luzmo-dataset-icon",t);exports.LuzmoDatasetIcon=t;
@@ -0,0 +1,7 @@
1
+ import { LuzmoDatasetIcon } from './dataset-icon';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-dataset-icon': LuzmoDatasetIcon;
5
+ }
6
+ }
7
+ export { LuzmoDatasetIcon } from './dataset-icon';
@@ -0,0 +1,167 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ import { luzmoIcon as b, luzmoFileUploadOutline as g, luzmoPlugin as x } from "@luzmo/icons";
21
+ import { LitElement as m, unsafeCSS as k, html as i } from "lit";
22
+ import { property as s } from "lit/decorators.js";
23
+ (function() {
24
+ if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
25
+ const o = document.createElement("style");
26
+ o.setAttribute("data-luzmo-vars", ""), o.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-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(o);
27
+ }
28
+ })();
29
+ const h = ".dataset-icon{display:flex;justify-content:center;align-items:center}.dataset-icon .public-connector{overflow:hidden}.dataset-icon .public-connector img{display:block;object-fit:cover}.dataset-icon [class*=public-connector-]{width:100%;height:100%;background-size:cover;background-repeat:no-repeat;background-position:center}.dataset-icon .public-connector-16,.dataset-icon .public-connector-24,.dataset-icon .public-connector-32{background-image:var(--connector-sprite-64x64)}.dataset-icon .public-connector-48,.dataset-icon .public-connector-64{background-image:var(--connector-sprite-96x96)}.dataset-icon .text-primary{color:var(--luzmo-primary, #007bff);display:flex;align-items:center;justify-content:center}.dataset-icon .text-primary.upload-icon,.dataset-icon .text-primary.plugin-icon{width:100%;height:100%}.public-connector-16.amazonathena{background-position:0 0}.public-connector-16.asana{background-position:0 -16px}.public-connector-16.bigquery{background-position:0 -32px}.public-connector-16.citybikes{background-position:0 -48px}.public-connector-16.clickhouse{background-position:0 -64px}.public-connector-16.demodataplugin{background-position:0 -80px}.public-connector-16.elasticsearch{background-position:0 -96px}.public-connector-16.exactonline,.public-connector-16.exactonlinenl{background-position:0 -112px}.public-connector-16.google{background-position:0 -128px}.public-connector-16.googleanalytics,.public-connector-16.googleanalyticsv4{background-position:0 -144px}.public-connector-16.googledrive{background-position:0 -160px}.public-connector-16.hubspot{background-position:0 -176px}.public-connector-16.lobbipad{background-position:0 -192px}.public-connector-16.mailchimp{background-position:0 -208px}.public-connector-16.mariadb{background-position:0 -224px}.public-connector-16.mongodb{background-position:0 -240px}.public-connector-16.mysql{background-position:0 -256px}.public-connector-16.oracle{background-position:0 -272px}.public-connector-16.panoply{background-position:0 -288px}.public-connector-16.pipedrive{background-position:0 -304px}.public-connector-16.pipelinedb{background-position:0 -320px}.public-connector-16.postgresql{background-position:0 -336px}.public-connector-16.presto{background-position:0 -352px}.public-connector-16.redshift{background-position:0 -368px}.public-connector-16.salesforce{background-position:0 -384px}.public-connector-16.saphana{background-position:0 -400px}.public-connector-16.snowflake{background-position:0 -416px}.public-connector-16.sqlserver{background-position:0 -432px}.public-connector-16.stardog{background-position:0 -448px}.public-connector-16.synapse{background-position:0 -464px}.public-connector-16.teamleader{background-position:0 -480px}.public-connector-16.trino{background-position:0 -496px}.public-connector-16.typeform{background-position:0 -512px}.public-connector-16.zendesk{background-position:0 -528px}.public-connector-24.amazonathena{background-position:0 0}.public-connector-24.asana{background-position:0 -24px}.public-connector-24.bigquery{background-position:0 -48px}.public-connector-24.citybikes{background-position:0 -72px}.public-connector-24.clickhouse{background-position:0 -96px}.public-connector-24.demodataplugin{background-position:0 -120px}.public-connector-24.elasticsearch{background-position:0 -144px}.public-connector-24.exactonline,.public-connector-24.exactonlinenl{background-position:0 -168px}.public-connector-24.google{background-position:0 -192px}.public-connector-24.googleanalytics,.public-connector-24.googleanalyticsv4{background-position:0 -216px}.public-connector-24.googledrive{background-position:0 -240px}.public-connector-24.hubspot{background-position:0 -264px}.public-connector-24.lobbipad{background-position:0 -288px}.public-connector-24.mailchimp{background-position:0 -312px}.public-connector-24.mariadb{background-position:0 -336px}.public-connector-24.mongodb{background-position:0 -360px}.public-connector-24.mysql{background-position:0 -384px}.public-connector-24.oracle{background-position:0 -408px}.public-connector-24.panoply{background-position:0 -432px}.public-connector-24.pipedrive{background-position:0 -456px}.public-connector-24.pipelinedb{background-position:0 -480px}.public-connector-24.postgresql{background-position:0 -504px}.public-connector-24.presto{background-position:0 -528px}.public-connector-24.redshift{background-position:0 -552px}.public-connector-24.salesforce{background-position:0 -576px}.public-connector-24.saphana{background-position:0 -600px}.public-connector-24.snowflake{background-position:0 -624px}.public-connector-24.sqlserver{background-position:0 -648px}.public-connector-24.stardog{background-position:0 -672px}.public-connector-24.synapse{background-position:0 -696px}.public-connector-24.teamleader{background-position:0 -720px}.public-connector-24.trino{background-position:0 -744px}.public-connector-24.typeform{background-position:0 -768px}.public-connector-24.zendesk{background-position:0 -792px}.public-connector-32.amazonathena{background-position:0 0}.public-connector-32.asana{background-position:0 -32px}.public-connector-32.bigquery{background-position:0 -64px}.public-connector-32.citybikes{background-position:0 -96px}.public-connector-32.clickhouse{background-position:0 -128px}.public-connector-32.demodataplugin{background-position:0 -160px}.public-connector-32.elasticsearch{background-position:0 -192px}.public-connector-32.exactonline,.public-connector-32.exactonlinenl{background-position:0 -224px}.public-connector-32.google{background-position:0 -256px}.public-connector-32.googleanalytics,.public-connector-32.googleanalyticsv4{background-position:0 -288px}.public-connector-32.googledrive{background-position:0 -320px}.public-connector-32.hubspot{background-position:0 -352px}.public-connector-32.lobbipad{background-position:0 -384px}.public-connector-32.mailchimp{background-position:0 -416px}.public-connector-32.mariadb{background-position:0 -448px}.public-connector-32.mongodb{background-position:0 -480px}.public-connector-32.mysql{background-position:0 -512px}.public-connector-32.oracle{background-position:0 -544px}.public-connector-32.panoply{background-position:0 -576px}.public-connector-32.pipedrive{background-position:0 -608px}.public-connector-32.pipelinedb{background-position:0 -640px}.public-connector-32.postgresql{background-position:0 -672px}.public-connector-32.presto{background-position:0 -704px}.public-connector-32.redshift{background-position:0 -736px}.public-connector-32.salesforce{background-position:0 -768px}.public-connector-32.saphana{background-position:0 -800px}.public-connector-32.snowflake{background-position:0 -832px}.public-connector-32.sqlserver{background-position:0 -864px}.public-connector-32.stardog{background-position:0 -896px}.public-connector-32.synapse{background-position:0 -928px}.public-connector-32.teamleader{background-position:0 -960px}.public-connector-32.trino{background-position:0 -992px}.public-connector-32.typeform{background-position:0 -1024px}.public-connector-32.zendesk{background-position:0 -1056px}.public-connector-48.amazonathena{background-position:0 0}.public-connector-48.asana{background-position:0 -48px}.public-connector-48.bigquery{background-position:0 -96px}.public-connector-48.citybikes{background-position:0 -144px}.public-connector-48.clickhouse{background-position:0 -192px}.public-connector-48.demodataplugin{background-position:0 -240px}.public-connector-48.elasticsearch{background-position:0 -288px}.public-connector-48.exactonline,.public-connector-48.exactonlinenl{background-position:0 -336px}.public-connector-48.google{background-position:0 -384px}.public-connector-48.googleanalytics,.public-connector-48.googleanalyticsv4{background-position:0 -432px}.public-connector-48.googledrive{background-position:0 -480px}.public-connector-48.hubspot{background-position:0 -528px}.public-connector-48.lobbipad{background-position:0 -576px}.public-connector-48.mailchimp{background-position:0 -624px}.public-connector-48.mariadb{background-position:0 -672px}.public-connector-48.mongodb{background-position:0 -720px}.public-connector-48.mysql{background-position:0 -768px}.public-connector-48.oracle{background-position:0 -816px}.public-connector-48.panoply{background-position:0 -864px}.public-connector-48.pipedrive{background-position:0 -912px}.public-connector-48.pipelinedb{background-position:0 -960px}.public-connector-48.postgresql{background-position:0 -1008px}.public-connector-48.presto{background-position:0 -1056px}.public-connector-48.redshift{background-position:0 -1104px}.public-connector-48.salesforce{background-position:0 -1152px}.public-connector-48.saphana{background-position:0 -1200px}.public-connector-48.snowflake{background-position:0 -1248px}.public-connector-48.sqlserver{background-position:0 -1296px}.public-connector-48.stardog{background-position:0 -1344px}.public-connector-48.synapse{background-position:0 -1392px}.public-connector-48.teamleader{background-position:0 -1440px}.public-connector-48.trino{background-position:0 -1488px}.public-connector-48.typeform{background-position:0 -1536px}.public-connector-48.zendesk{background-position:0 -1584px}.public-connector-64.amazonathena{background-position:0 0}.public-connector-64.asana{background-position:0 -64px}.public-connector-64.bigquery{background-position:0 -128px}.public-connector-64.citybikes{background-position:0 -192px}.public-connector-64.clickhouse{background-position:0 -256px}.public-connector-64.demodataplugin{background-position:0 -320px}.public-connector-64.elasticsearch{background-position:0 -384px}.public-connector-64.exactonline,.public-connector-64.exactonlinenl{background-position:0 -448px}.public-connector-64.google{background-position:0 -512px}.public-connector-64.googleanalytics,.public-connector-64.googleanalyticsv4{background-position:0 -576px}.public-connector-64.googledrive{background-position:0 -640px}.public-connector-64.hubspot{background-position:0 -704px}.public-connector-64.lobbipad{background-position:0 -768px}.public-connector-64.mailchimp{background-position:0 -832px}.public-connector-64.mariadb{background-position:0 -896px}.public-connector-64.mongodb{background-position:0 -960px}.public-connector-64.mysql{background-position:0 -1024px}.public-connector-64.oracle{background-position:0 -1088px}.public-connector-64.panoply{background-position:0 -1152px}.public-connector-64.pipedrive{background-position:0 -1216px}.public-connector-64.pipelinedb{background-position:0 -1280px}.public-connector-64.postgresql{background-position:0 -1344px}.public-connector-64.presto{background-position:0 -1408px}.public-connector-64.redshift{background-position:0 -1472px}.public-connector-64.salesforce{background-position:0 -1536px}.public-connector-64.saphana{background-position:0 -1600px}.public-connector-64.snowflake{background-position:0 -1664px}.public-connector-64.sqlserver{background-position:0 -1728px}.public-connector-64.stardog{background-position:0 -1792px}.public-connector-64.synapse{background-position:0 -1856px}.public-connector-64.teamleader{background-position:0 -1920px}.public-connector-64.trino{background-position:0 -1984px}.public-connector-64.typeform{background-position:0 -2048px}.public-connector-64.zendesk{background-position:0 -2112px}";
30
+ var z = Object.defineProperty, u = (e, o, n, a) => {
31
+ for (var c = void 0, r = e.length - 1, p; r >= 0; r--)
32
+ (p = e[r]) && (c = p(o, n, c) || c);
33
+ return c && z(o, n, c), c;
34
+ };
35
+ const f = [
36
+ "amazonathena",
37
+ "asana",
38
+ "bigquery",
39
+ "citybikes",
40
+ "clickhouse",
41
+ "demodataplugin",
42
+ "elasticsearch",
43
+ "exact",
44
+ "exactonline",
45
+ "exactonlinenl",
46
+ "google",
47
+ "googleanalytics",
48
+ "googleanalyticsv4",
49
+ "googledrive",
50
+ "hubspot",
51
+ "mailchimp",
52
+ "mariadb",
53
+ "mongodb",
54
+ "mysql",
55
+ "oracle",
56
+ "panoply",
57
+ "pipedrive",
58
+ "pipelinedb",
59
+ "postgresql",
60
+ "presto",
61
+ "redshift",
62
+ "salesforce",
63
+ "saphana",
64
+ "snowflake",
65
+ "sqlserver",
66
+ "stardog",
67
+ "synapse",
68
+ "teamleader",
69
+ "trino",
70
+ "typeform",
71
+ "zendesk"
72
+ ];
73
+ function y(e) {
74
+ const o = {};
75
+ return e.forEach((n) => {
76
+ (n.size === "32px" || n.size === "64px") && (o[n.size] = n.url);
77
+ }), o;
78
+ }
79
+ const l = class l extends m {
80
+ constructor() {
81
+ super(...arguments), this.size = "32px", this.appUrl = "", this._subtype = "", this._isPublicConnector = !1, this._thumbnails = {}, this.thumbnailSizeMap = {
82
+ "16px": "32px",
83
+ "24px": "32px",
84
+ "32px": "32px",
85
+ "48px": "64px",
86
+ "64px": "64px"
87
+ };
88
+ }
89
+ willUpdate(o) {
90
+ (o.has("datasetInfo") || o.has("size")) && this._updateDatasetProperties();
91
+ }
92
+ _updateDatasetProperties() {
93
+ var o, n;
94
+ if (!this.datasetInfo) {
95
+ this._subtype = "", this._isPublicConnector = !1, this._thumbnails = {};
96
+ return;
97
+ }
98
+ this._subtype = this.datasetInfo.subtype || "", this._isPublicConnector = this.datasetInfo.subtype !== "api" && this.datasetInfo.subtype !== "upload" && f.includes(
99
+ this.datasetInfo.subtype
100
+ ), this._thumbnails = (n = (o = this.datasetInfo.account) == null ? void 0 : o.plugin) != null && n.thumbnails ? y(this.datasetInfo.account.plugin.thumbnails) : {};
101
+ }
102
+ render() {
103
+ if (!this.datasetInfo)
104
+ return i``;
105
+ const o = this.thumbnailSizeMap[this.size], n = !!this._thumbnails[o], a = this.size.slice(0, -2), c = this.appUrl ? `${this.appUrl}/assets/images/connectors/sprites/all-connectors.64x64.png` : "", r = this.appUrl ? `${this.appUrl}/assets/images/connectors/sprites/all-connectors.96x96.png` : "";
106
+ if (this._subtype !== "upload" && n) {
107
+ const p = this._thumbnails[o], d = p ? `${this.appUrl}/${p}` : "";
108
+ return i`
109
+ <div
110
+ class="position-relative dataset-icon d-flex justify-content-center"
111
+ style="width: ${this.size}; height: ${this.size};"
112
+ >
113
+ <div class="public-connector">
114
+ <img
115
+ src=${d}
116
+ style="width: ${this.size}; height: ${this.size};"
117
+ alt="Dataset icon"
118
+ />
119
+ </div>
120
+ </div>
121
+ `;
122
+ }
123
+ return this._isPublicConnector && this._subtype !== "upload" && !n ? i`
124
+ <div
125
+ class="position-relative dataset-icon d-flex justify-content-center"
126
+ style="width: ${this.size}; height: ${this.size}; --connector-sprite-64x64: url('${c}'); --connector-sprite-96x96: url('${r}');"
127
+ >
128
+ <div
129
+ class="public-connector-${a} ${this._subtype}"
130
+ ></div>
131
+ </div>
132
+ ` : !this._isPublicConnector && this._subtype === "upload" ? i`
133
+ <div
134
+ class="position-relative dataset-icon d-flex justify-content-center"
135
+ style="width: ${this.size}; height: ${this.size};"
136
+ >
137
+ <div class="text-primary d-flex align-items-center" style="font-size: ${this.size};">
138
+ ${b(g)}
139
+ </div>
140
+ </div>
141
+ ` : !this._isPublicConnector && this._subtype !== "upload" && !n ? i`
142
+ <div
143
+ class="position-relative dataset-icon d-flex justify-content-center"
144
+ style="width: ${this.size}; height: ${this.size};"
145
+ >
146
+ <div class="text-primary ${this._subtype}" style="font-size: ${this.size};">
147
+ ${b(x)}
148
+ </div>
149
+ </div>
150
+ ` : i``;
151
+ }
152
+ };
153
+ l.styles = k(h), l.tagName = "luzmo-dataset-icon";
154
+ let t = l;
155
+ u([
156
+ s({ type: Object, attribute: "dataset" })
157
+ ], t.prototype, "datasetInfo");
158
+ u([
159
+ s({ type: String, reflect: !0 })
160
+ ], t.prototype, "size");
161
+ u([
162
+ s({ type: String, attribute: "app-url" })
163
+ ], t.prototype, "appUrl");
164
+ customElements.get("luzmo-dataset-icon") || customElements.define("luzmo-dataset-icon", t);
165
+ export {
166
+ t as LuzmoDatasetIcon
167
+ };
@@ -1,4 +1,5 @@
1
1
  import { LitElement, TemplateResult } from 'lit';
2
+ import '../dataset-icon';
2
3
  /**
3
4
  * @element luzmo-dataset-selector-list
4
5
  * @summary A list component for selecting datasets with search and infinite scroll