@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
@@ -17,15 +17,17 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("@luzmo/icons"),v=require("../index-cfj52IbK.cjs"),_=require("../localize-r7ALOUy_.cjs"),y=require("../set-locale-BRRalqne.cjs"),i=require("lit"),d=require("lit/decorators.js"),z=require("lit/directives/repeat.js"),D=":host{box-sizing:border-box;display:flex;flex-direction:column;height:100%;font-family:var(--luzmo-dataset-selector-list-font-family, var(--dataset-selector-list-font-family))}:host .dataset-selector-list{display:flex;flex-direction:column;gap:var(--luzmo-dataset-selector-list-gap, var(--dataset-selector-list-gap));height:100%;background:var(--luzmo-dataset-selector-list-background, var(--dataset-selector-list-background));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))}: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));margin:0;outline:none;padding:var(--luzmo-dataset-selector-list-input-padding, var(--dataset-selector-list-input-padding));width:100%;box-sizing:border-box}:host .search-input::placeholder{color:var(--luzmo-font-color-tertiary, #999)}:host .datasets-scroll-container{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:var(--luzmo-dataset-selector-list-scrollbar-thumb-background, var(--dataset-selector-list-scrollbar-thumb-background)) var(--luzmo-dataset-selector-list-scrollbar-track-background, var(--dataset-selector-list-scrollbar-track-background))}: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-list{display:flex;flex-direction:column}:host .available-dataset-item{padding:var(--luzmo-dataset-selector-list-item-padding, var(--dataset-selector-list-item-padding));display:flex;flex-direction:row;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));transition:background-color .15s ease}: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{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px}:host .available-dataset-item .dataset-icon luzmo-icon{display:flex}:host .available-dataset-item .dataset-icon-img{width:16px;height:16px;object-fit:contain}:host .available-dataset-item .dataset-name{flex:1;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));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .no-datasets-found{display:flex;align-items:center;justify-content:center;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)}:host .loader{display:flex;align-items:center;justify-content:center;padding:var(--luzmo-spacing-5, 1.25rem) 0}: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:spin .8s linear infinite}@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, rgba(0,0,0,.05));--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-scrollbar-width: 6px;--dataset-selector-list-scrollbar-track-background: var( --luzmo-background-color-highlight );--dataset-selector-list-scrollbar-track-border-radius: var( --luzmo-border-radius-s );--dataset-selector-list-scrollbar-thumb-background: var( --luzmo-border-color-full );--dataset-selector-list-scrollbar-thumb-border-radius: var( --luzmo-border-radius-s );--dataset-selector-list-scrollbar-thumb-hover-background: var( --luzmo-border-color-full-hover );--dataset-selector-list-loader-size: 24px;--dataset-selector-list-loader-color: var(--luzmo-primary);--dataset-selector-list-no-datasets-color: var(--luzmo-font-color-tertiary);--dataset-selector-list-no-datasets-font-size: var(--luzmo-font-size-s)}";var k=Object.defineProperty,w=Object.getOwnPropertyDescriptor,c=(g,t,e,s)=>{for(var a=s>1?void 0:s?w(t,e):t,r=g.length-1,l;r>=0;r--)(l=g[r])&&(a=(s?l(t,e,a):l(a))||a);return s&&a&&k(t,e,a),a};const m=7,L=600,x=5,b=class b extends i.LitElement{constructor(){super(...arguments),this._selectedDatasets=new Set,this.showSearch=!0,this.searchPlaceholder="Search datasets...",this.noDatasetsMessage="No datasets found",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}set selectedDatasets(t){this._selectedDatasets=t,this._shouldLoadMoreDatasetsForViewport()&&this._loadAvailableDatasets({append:!0})}get selectedDatasets(){return this._selectedDatasets}connectedCallback(){var t;(t=super.connectedCallback)==null||t.call(this),this._configureBroker(),this._waitForContainerHeightAndLoad()}_configureBroker(){(this.authKey||this.authToken||this.apiUrl)&&v.dataBroker.configure({authKey:this.authKey,authToken:this.authToken,apiUrl:this.apiUrl})}_waitForContainerHeightAndLoad(){requestAnimationFrame(()=>{this._loadAvailableDatasets({append:!1})})}_calculateOptimalQueryLimit(){var n;if(this._calculatedQueryLimit!==null)return this._calculatedQueryLimit;const t=(n=this.shadowRoot)==null?void 0:n.querySelector(".dataset-selector-list");if(!t)return m;const e=getComputedStyle(t),s=t.clientHeight,a=Number.parseFloat(e.height),r=Math.max(s,a);if(r<=0)return m;const h=Math.floor(r/24),u=Math.max(h+x,m);return this._calculatedQueryLimit=u,u}get _filteredDatasets(){return this._selectedDatasets.size===0?this._availableDatasets:this._availableDatasets.filter(e=>!this._selectedDatasets.has(e.id))}_handleSearchInput(t){const e=t.target;this._searchValue=e.value,this._searchDebounceTimer!==null&&clearTimeout(this._searchDebounceTimer),this._searchDebounceTimer=window.setTimeout(()=>{this._loadAvailableDatasets({append:!1})},L)}_handleScroll(t){const e=t.target,s=e.scrollTop,a=e.scrollHeight,r=e.clientHeight;s+r>=a-50&&!this._status.allDatasetsLoaded&&!this._status.busy&&this._loadAvailableDatasets({append:!0})}async _loadAvailableDatasets({append:t}){t||(this._calculatedQueryLimit=null,this._hasLoadedEmptyPage=!1),this._status={...this._status,busy:!0,allDatasetsLoaded:t?this._status.allDatasetsLoaded:!1,paging:t};const e=this._generateQuery(t),s=JSON.stringify(e),a=this._queryCache.has(s);try{let r;a?r=this._queryCache.get(s):(r=await v.dataBroker.fetchApi("/securable",{action:"get",version:"0.1.0",find:e}),this._queryCache.set(s,r)),this._onDatasetsLoaded(t,r),this._shouldLoadMoreDatasetsForViewport()&&await this._loadAvailableDatasets({append:!0})}catch(r){console.error("Error loading datasets:",r),this._status={...this._status,busy:!1,paging:!1,error:!0}}finally{this._status={...this._status,busy:!1,paging:!1}}}_generateQuery(t){const e=this._calculateOptimalQueryLimit();t?this._currentOffset+=e:this._currentOffset=0;const s=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:e,offset:this._currentOffset,...s,...this.flagOpendata?{public:null}:{}}}_onDatasetsLoaded(t,{rows:e,count:s}){let a;if(t){const u=new Set(this._availableDatasets.map(p=>p.id)),n=e.filter(p=>!u.has(p.id));a=[...this._availableDatasets,...n]}else a=e||[];t&&e.length===0?this._hasLoadedEmptyPage=!0:e.length>0&&(this._hasLoadedEmptyPage=!1);const r=a.reduce((u,n)=>(u.some(p=>p.id===n.id)||u.push(n),u),[]),l=a.length,h=this._hasLoadedEmptyPage||l>=s;this._status={...this._status,allDatasetsLoaded:h},this._availableDatasets=r}_shouldLoadMoreDatasetsForViewport(){var n;if(this._status.allDatasetsLoaded||this._hasLoadedEmptyPage||this._status.busy)return!1;const t=(n=this.shadowRoot)==null?void 0:n.querySelector(".datasets-scroll-container");if(!t)return!1;const e=t.clientHeight,a=Math.ceil(e/24),l=Math.ceil(a*1.5);return this._filteredDatasets.length<l}_getDatasetName(t){const e=y.getLocale();return _.localize(t.name,e)||t.id||"Unknown Dataset"}_selectDataset(t){this.dispatchEvent(new CustomEvent("dataset-selected",{detail:t,bubbles:!0,composed:!0}))}_handleDatasetClick(t){const e=t.currentTarget.dataset.datasetId,s=this._filteredDatasets.find(a=>a.id===e);s&&this._selectDataset(s)}_handleDatasetKeydown(t){if(t.key==="Enter"||t.key===" "){t.preventDefault();const e=t.currentTarget.dataset.datasetId,s=this._filteredDatasets.find(a=>a.id===e);s&&this._selectDataset(s)}}_renderLoader(){return i.html`
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../index-cfj52IbK.cjs"),v=require("../localize-r7ALOUy_.cjs"),_=require("../set-locale-BRRalqne.cjs"),l=require("lit"),i=require("lit/decorators.js"),y=require("lit/directives/repeat.js");require("../dataset-icon/index.cjs");const z=":host{box-sizing:border-box;display:flex;flex-direction:column;height:100%;font-family:var(--luzmo-dataset-selector-list-font-family, var(--dataset-selector-list-font-family))}:host .dataset-selector-list{display:flex;flex-direction:column;gap:var(--luzmo-dataset-selector-list-gap, var(--dataset-selector-list-gap));height:100%;background:var(--luzmo-dataset-selector-list-background, var(--dataset-selector-list-background));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))}: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));margin:0;outline:none;padding:var(--luzmo-dataset-selector-list-input-padding, var(--dataset-selector-list-input-padding));width:100%;box-sizing:border-box}:host .search-input::placeholder{color:var(--luzmo-font-color-tertiary, #999)}:host .datasets-scroll-container{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:var(--luzmo-dataset-selector-list-scrollbar-thumb-background, var(--dataset-selector-list-scrollbar-thumb-background)) var(--luzmo-dataset-selector-list-scrollbar-track-background, var(--dataset-selector-list-scrollbar-track-background))}: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-list{display:flex;flex-direction:column}:host .available-dataset-item{padding:var(--luzmo-dataset-selector-list-item-padding, var(--dataset-selector-list-item-padding));display:flex;flex-direction:row;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));transition:background-color .15s ease}: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{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px}:host .available-dataset-item .dataset-icon luzmo-icon{display:flex}:host .available-dataset-item .dataset-icon-img{width:16px;height:16px;object-fit:contain}:host .available-dataset-item .dataset-name{flex:1;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));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .no-datasets-found{display:flex;align-items:center;justify-content:center;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)}:host .loader{display:flex;align-items:center;justify-content:center;padding:var(--luzmo-spacing-5, 1.25rem) 0}: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:spin .8s linear infinite}@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, rgba(0,0,0,.05));--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-scrollbar-width: 6px;--dataset-selector-list-scrollbar-track-background: var( --luzmo-background-color-highlight );--dataset-selector-list-scrollbar-track-border-radius: var( --luzmo-border-radius-s );--dataset-selector-list-scrollbar-thumb-background: var( --luzmo-border-color-full );--dataset-selector-list-scrollbar-thumb-border-radius: var( --luzmo-border-radius-s );--dataset-selector-list-scrollbar-thumb-hover-background: var( --luzmo-border-color-full-hover );--dataset-selector-list-loader-size: 24px;--dataset-selector-list-loader-color: var(--luzmo-primary);--dataset-selector-list-no-datasets-color: var(--luzmo-font-color-tertiary);--dataset-selector-list-no-datasets-font-size: var(--luzmo-font-size-s)}";var D=Object.defineProperty,k=Object.getOwnPropertyDescriptor,d=(g,t,e,s)=>{for(var a=s>1?void 0:s?k(t,e):t,r=g.length-1,c;r>=0;r--)(c=g[r])&&(a=(s?c(t,e,a):c(a))||a);return s&&a&&D(t,e,a),a};const m=7,w=600,L=5,b=class b extends l.LitElement{constructor(){super(...arguments),this._selectedDatasets=new Set,this.showSearch=!0,this.searchPlaceholder="Search datasets...",this.noDatasetsMessage="No datasets found",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}set selectedDatasets(t){this._selectedDatasets=t,this._shouldLoadMoreDatasetsForViewport()&&this._loadAvailableDatasets({append:!0})}get selectedDatasets(){return this._selectedDatasets}connectedCallback(){var t;(t=super.connectedCallback)==null||t.call(this),this._configureBroker(),this._waitForContainerHeightAndLoad()}_configureBroker(){(this.authKey||this.authToken||this.apiUrl)&&f.dataBroker.configure({authKey:this.authKey,authToken:this.authToken,apiUrl:this.apiUrl})}_waitForContainerHeightAndLoad(){requestAnimationFrame(()=>{this._loadAvailableDatasets({append:!1})})}_calculateOptimalQueryLimit(){var n;if(this._calculatedQueryLimit!==null)return this._calculatedQueryLimit;const t=(n=this.shadowRoot)==null?void 0:n.querySelector(".dataset-selector-list");if(!t)return m;const e=getComputedStyle(t),s=t.clientHeight,a=Number.parseFloat(e.height),r=Math.max(s,a);if(r<=0)return m;const p=Math.floor(r/24),u=Math.max(p+L,m);return this._calculatedQueryLimit=u,u}get _filteredDatasets(){return this._selectedDatasets.size===0?this._availableDatasets:this._availableDatasets.filter(e=>!this._selectedDatasets.has(e.id))}_handleSearchInput(t){const e=t.target;this._searchValue=e.value,this._searchDebounceTimer!==null&&clearTimeout(this._searchDebounceTimer),this._searchDebounceTimer=window.setTimeout(()=>{this._loadAvailableDatasets({append:!1})},w)}_handleScroll(t){const e=t.target,s=e.scrollTop,a=e.scrollHeight,r=e.clientHeight;s+r>=a-50&&!this._status.allDatasetsLoaded&&!this._status.busy&&this._loadAvailableDatasets({append:!0})}async _loadAvailableDatasets({append:t}){t||(this._calculatedQueryLimit=null,this._hasLoadedEmptyPage=!1),this._status={...this._status,busy:!0,allDatasetsLoaded:t?this._status.allDatasetsLoaded:!1,paging:t};const e=this._generateQuery(t),s=JSON.stringify(e),a=this._queryCache.has(s);try{let r;a?r=this._queryCache.get(s):(r=await f.dataBroker.fetchApi("/securable",{action:"get",version:"0.1.0",find:e}),this._queryCache.set(s,r)),this._onDatasetsLoaded(t,r),this._shouldLoadMoreDatasetsForViewport()&&await this._loadAvailableDatasets({append:!0})}catch(r){console.error("Error loading datasets:",r),this._status={...this._status,busy:!1,paging:!1,error:!0}}finally{this._status={...this._status,busy:!1,paging:!1}}}_generateQuery(t){const e=this._calculateOptimalQueryLimit();t?this._currentOffset+=e:this._currentOffset=0;const s=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:e,offset:this._currentOffset,...s,...this.flagOpendata?{public:null}:{}}}_onDatasetsLoaded(t,{rows:e,count:s}){let a;if(t){const u=new Set(this._availableDatasets.map(h=>h.id)),n=e.filter(h=>!u.has(h.id));a=[...this._availableDatasets,...n]}else a=e||[];t&&e.length===0?this._hasLoadedEmptyPage=!0:e.length>0&&(this._hasLoadedEmptyPage=!1);const r=a.reduce((u,n)=>(u.some(h=>h.id===n.id)||u.push(n),u),[]),c=a.length,p=this._hasLoadedEmptyPage||c>=s;this._status={...this._status,allDatasetsLoaded:p},this._availableDatasets=r}_shouldLoadMoreDatasetsForViewport(){var n;if(this._status.allDatasetsLoaded||this._hasLoadedEmptyPage||this._status.busy)return!1;const t=(n=this.shadowRoot)==null?void 0:n.querySelector(".datasets-scroll-container");if(!t)return!1;const e=t.clientHeight,a=Math.ceil(e/24),c=Math.ceil(a*1.5);return this._filteredDatasets.length<c}_getDatasetName(t){const e=_.getLocale();return v.localize(t.name,e)||t.id||"Unknown Dataset"}_selectDataset(t){this.dispatchEvent(new CustomEvent("dataset-selected",{detail:t,bubbles:!0,composed:!0}))}_handleDatasetClick(t){const e=t.currentTarget.dataset.datasetId,s=this._filteredDatasets.find(a=>a.id===e);s&&this._selectDataset(s)}_handleDatasetKeydown(t){if(t.key==="Enter"||t.key===" "){t.preventDefault();const e=t.currentTarget.dataset.datasetId,s=this._filteredDatasets.find(a=>a.id===e);s&&this._selectDataset(s)}}_renderLoader(){return l.html`
21
21
  <div class="loader">
22
22
  <div class="spinner"></div>
23
23
  </div>
24
- `}_renderDatasetIcon(t){var s,a,r,l;const e=(l=(r=(a=(s=t.account)==null?void 0:s.plugin)==null?void 0:a.thumbnails)==null?void 0:r[0])==null?void 0:l.url;if(e){const h=`${this.appServer}/${e}`;return i.html`<img
25
- src=${h}
26
- alt=${t.name}
27
- class="dataset-icon-img"
28
- />`}return i.html`${f.luzmoIcon(f.luzmoTable)}`}_renderSearchInput(){return this.showSearch?i.html`
24
+ `}_renderDatasetIcon(t){return l.html`
25
+ <luzmo-dataset-icon
26
+ .datasetInfo=${t}
27
+ size="16px"
28
+ app-url=${this.appServer}
29
+ ></luzmo-dataset-icon>
30
+ `}_renderSearchInput(){return this.showSearch?l.html`
29
31
  <input
30
32
  name="dataset-search"
31
33
  type="text"
@@ -36,13 +38,13 @@
36
38
  @input=${this._handleSearchInput}
37
39
  class="search-input"
38
40
  />
39
- `:i.nothing}_renderDatasetList(){return this._filteredDatasets.length===0?this._status.busy&&!this._status.paging?this._renderLoader():i.html`
41
+ `:l.nothing}_renderDatasetList(){return this._filteredDatasets.length===0?this._status.busy&&!this._status.paging?this._renderLoader():l.html`
40
42
  <div class="no-datasets-found">${this.noDatasetsMessage}</div>
41
- `:i.html`
43
+ `:l.html`
42
44
  <div class="datasets-scroll-container" @scroll=${this._handleScroll}>
43
- ${this._status.busy&&!this._status.paging?this._renderLoader():i.nothing}
45
+ ${this._status.busy&&!this._status.paging?this._renderLoader():l.nothing}
44
46
  <div class="datasets-list">
45
- ${z.repeat(this._filteredDatasets,t=>t.id,t=>i.html`
47
+ ${y.repeat(this._filteredDatasets,t=>t.id,t=>l.html`
46
48
  <div
47
49
  class="available-dataset-item"
48
50
  data-dataset-id=${t.id}
@@ -62,11 +64,11 @@
62
64
  </span>
63
65
  </div>
64
66
  `)}
65
- ${this._status.paging?this._renderLoader():i.nothing}
67
+ ${this._status.paging?this._renderLoader():l.nothing}
66
68
  </div>
67
69
  </div>
68
- `}render(){return i.html`
70
+ `}render(){return l.html`
69
71
  <div class="dataset-selector-list">
70
72
  ${this._renderSearchInput()} ${this._renderDatasetList()}
71
73
  </div>
72
- `}};b.styles=i.unsafeCSS(D);let o=b;c([d.property({type:Object,attribute:!1})],o.prototype,"selectedDatasets",1);c([d.property({type:Boolean,attribute:"show-search"})],o.prototype,"showSearch",2);c([d.property({type:String,attribute:"search-placeholder"})],o.prototype,"searchPlaceholder",2);c([d.property({type:String,attribute:"no-datasets-message"})],o.prototype,"noDatasetsMessage",2);c([d.property({type:String,attribute:"auth-key"})],o.prototype,"authKey",2);c([d.property({type:String,attribute:"auth-token"})],o.prototype,"authToken",2);c([d.property({type:String,attribute:"api-url"})],o.prototype,"apiUrl",2);c([d.property({type:String,attribute:"app-server"})],o.prototype,"appServer",2);c([d.property({type:Boolean,attribute:"flag-opendata"})],o.prototype,"flagOpendata",2);c([d.state()],o.prototype,"_availableDatasets",2);c([d.state()],o.prototype,"_status",2);c([d.state()],o.prototype,"_searchValue",2);customElements.get("luzmo-dataset-selector-list")||customElements.define("luzmo-dataset-selector-list",o);exports.LuzmoDatasetSelectorList=o;
74
+ `}};b.styles=l.unsafeCSS(z);let o=b;d([i.property({type:Object,attribute:!1})],o.prototype,"selectedDatasets",1);d([i.property({type:Boolean,attribute:"show-search"})],o.prototype,"showSearch",2);d([i.property({type:String,attribute:"search-placeholder"})],o.prototype,"searchPlaceholder",2);d([i.property({type:String,attribute:"no-datasets-message"})],o.prototype,"noDatasetsMessage",2);d([i.property({type:String,attribute:"auth-key"})],o.prototype,"authKey",2);d([i.property({type:String,attribute:"auth-token"})],o.prototype,"authToken",2);d([i.property({type:String,attribute:"api-url"})],o.prototype,"apiUrl",2);d([i.property({type:String,attribute:"app-server"})],o.prototype,"appServer",2);d([i.property({type:Boolean,attribute:"flag-opendata"})],o.prototype,"flagOpendata",2);d([i.state()],o.prototype,"_availableDatasets",2);d([i.state()],o.prototype,"_status",2);d([i.state()],o.prototype,"_searchValue",2);customElements.get("luzmo-dataset-selector-list")||customElements.define("luzmo-dataset-selector-list",o);exports.LuzmoDatasetSelectorList=o;
@@ -17,26 +17,26 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- import { luzmoIcon as _, luzmoTable as y } from "@luzmo/icons";
21
20
  import { d as v } from "../index-BPN3bG9X.js";
22
- import { l as x } from "../localize-BX7q0S0M.js";
23
- import { g as k } from "../set-locale-B-Tz2sdI.js";
24
- import { LitElement as w, unsafeCSS as D, html as u, nothing as b } from "lit";
21
+ import { l as _ } from "../localize-BX7q0S0M.js";
22
+ import { g as y } from "../set-locale-B-Tz2sdI.js";
23
+ import { LitElement as x, unsafeCSS as k, html as u, nothing as b } from "lit";
25
24
  import { property as n, state as f } from "lit/decorators.js";
26
- import { repeat as L } from "lit/directives/repeat.js";
25
+ import { repeat as w } from "lit/directives/repeat.js";
26
+ import "../dataset-icon/index.js";
27
27
  (function() {
28
28
  if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
29
29
  const t = document.createElement("style");
30
30
  t.setAttribute("data-luzmo-vars", ""), t.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(t);
31
31
  }
32
32
  })();
33
- const S = ":host{box-sizing:border-box;display:flex;flex-direction:column;height:100%;font-family:var(--luzmo-dataset-selector-list-font-family, var(--dataset-selector-list-font-family))}:host .dataset-selector-list{display:flex;flex-direction:column;gap:var(--luzmo-dataset-selector-list-gap, var(--dataset-selector-list-gap));height:100%;background:var(--luzmo-dataset-selector-list-background, var(--dataset-selector-list-background));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))}: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));margin:0;outline:none;padding:var(--luzmo-dataset-selector-list-input-padding, var(--dataset-selector-list-input-padding));width:100%;box-sizing:border-box}:host .search-input::placeholder{color:var(--luzmo-font-color-tertiary, #999)}:host .datasets-scroll-container{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:var(--luzmo-dataset-selector-list-scrollbar-thumb-background, var(--dataset-selector-list-scrollbar-thumb-background)) var(--luzmo-dataset-selector-list-scrollbar-track-background, var(--dataset-selector-list-scrollbar-track-background))}: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-list{display:flex;flex-direction:column}:host .available-dataset-item{padding:var(--luzmo-dataset-selector-list-item-padding, var(--dataset-selector-list-item-padding));display:flex;flex-direction:row;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));transition:background-color .15s ease}: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{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px}:host .available-dataset-item .dataset-icon luzmo-icon{display:flex}:host .available-dataset-item .dataset-icon-img{width:16px;height:16px;object-fit:contain}:host .available-dataset-item .dataset-name{flex:1;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));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .no-datasets-found{display:flex;align-items:center;justify-content:center;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)}:host .loader{display:flex;align-items:center;justify-content:center;padding:var(--luzmo-spacing-5, 1.25rem) 0}: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:spin .8s linear infinite}@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, rgba(0,0,0,.05));--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-scrollbar-width: 6px;--dataset-selector-list-scrollbar-track-background: var( --luzmo-background-color-highlight );--dataset-selector-list-scrollbar-track-border-radius: var( --luzmo-border-radius-s );--dataset-selector-list-scrollbar-thumb-background: var( --luzmo-border-color-full );--dataset-selector-list-scrollbar-thumb-border-radius: var( --luzmo-border-radius-s );--dataset-selector-list-scrollbar-thumb-hover-background: var( --luzmo-border-color-full-hover );--dataset-selector-list-loader-size: 24px;--dataset-selector-list-loader-color: var(--luzmo-primary);--dataset-selector-list-no-datasets-color: var(--luzmo-font-color-tertiary);--dataset-selector-list-no-datasets-font-size: var(--luzmo-font-size-s)}";
34
- var T = Object.defineProperty, C = Object.getOwnPropertyDescriptor, i = (p, t, e, o) => {
35
- for (var a = o > 1 ? void 0 : o ? C(t, e) : t, s = p.length - 1, l; s >= 0; s--)
36
- (l = p[s]) && (a = (o ? l(t, e, a) : l(a)) || a);
37
- return o && a && T(t, e, a), a;
33
+ const D = ":host{box-sizing:border-box;display:flex;flex-direction:column;height:100%;font-family:var(--luzmo-dataset-selector-list-font-family, var(--dataset-selector-list-font-family))}:host .dataset-selector-list{display:flex;flex-direction:column;gap:var(--luzmo-dataset-selector-list-gap, var(--dataset-selector-list-gap));height:100%;background:var(--luzmo-dataset-selector-list-background, var(--dataset-selector-list-background));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))}: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));margin:0;outline:none;padding:var(--luzmo-dataset-selector-list-input-padding, var(--dataset-selector-list-input-padding));width:100%;box-sizing:border-box}:host .search-input::placeholder{color:var(--luzmo-font-color-tertiary, #999)}:host .datasets-scroll-container{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:var(--luzmo-dataset-selector-list-scrollbar-thumb-background, var(--dataset-selector-list-scrollbar-thumb-background)) var(--luzmo-dataset-selector-list-scrollbar-track-background, var(--dataset-selector-list-scrollbar-track-background))}: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-list{display:flex;flex-direction:column}:host .available-dataset-item{padding:var(--luzmo-dataset-selector-list-item-padding, var(--dataset-selector-list-item-padding));display:flex;flex-direction:row;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));transition:background-color .15s ease}: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{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px}:host .available-dataset-item .dataset-icon luzmo-icon{display:flex}:host .available-dataset-item .dataset-icon-img{width:16px;height:16px;object-fit:contain}:host .available-dataset-item .dataset-name{flex:1;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));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .no-datasets-found{display:flex;align-items:center;justify-content:center;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)}:host .loader{display:flex;align-items:center;justify-content:center;padding:var(--luzmo-spacing-5, 1.25rem) 0}: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:spin .8s linear infinite}@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, rgba(0,0,0,.05));--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-scrollbar-width: 6px;--dataset-selector-list-scrollbar-track-background: var( --luzmo-background-color-highlight );--dataset-selector-list-scrollbar-track-border-radius: var( --luzmo-border-radius-s );--dataset-selector-list-scrollbar-thumb-background: var( --luzmo-border-color-full );--dataset-selector-list-scrollbar-thumb-border-radius: var( --luzmo-border-radius-s );--dataset-selector-list-scrollbar-thumb-hover-background: var( --luzmo-border-color-full-hover );--dataset-selector-list-loader-size: 24px;--dataset-selector-list-loader-color: var(--luzmo-primary);--dataset-selector-list-no-datasets-color: var(--luzmo-font-color-tertiary);--dataset-selector-list-no-datasets-font-size: var(--luzmo-font-size-s)}";
34
+ var L = Object.defineProperty, S = Object.getOwnPropertyDescriptor, l = (p, t, e, o) => {
35
+ for (var a = o > 1 ? void 0 : o ? S(t, e) : t, s = p.length - 1, i; s >= 0; s--)
36
+ (i = p[s]) && (a = (o ? i(t, e, a) : i(a)) || a);
37
+ return o && a && L(t, e, a), a;
38
38
  };
39
- const g = 7, E = 600, I = 5, z = class z extends w {
39
+ const g = 7, C = 600, E = 5, z = class z extends x {
40
40
  constructor() {
41
41
  super(...arguments), this._selectedDatasets = /* @__PURE__ */ new Set(), this.showSearch = !0, this.searchPlaceholder = "Search datasets...", this.noDatasetsMessage = "No datasets found", this.authKey = "", this.authToken = "", this.apiUrl = "https://api.luzmo.com", this.appServer = "https://app.luzmo.com", this.flagOpendata = !1, this._availableDatasets = [], this._status = {
42
42
  allDatasetsLoaded: !1,
@@ -79,8 +79,8 @@ const g = 7, E = 600, I = 5, z = class z extends w {
79
79
  const e = getComputedStyle(t), o = t.clientHeight, a = Number.parseFloat(e.height), s = Math.max(o, a);
80
80
  if (s <= 0)
81
81
  return g;
82
- const h = Math.floor(s / 24), c = Math.max(
83
- h + I,
82
+ const m = Math.floor(s / 24), c = Math.max(
83
+ m + E,
84
84
  g
85
85
  );
86
86
  return this._calculatedQueryLimit = c, c;
@@ -94,7 +94,7 @@ const g = 7, E = 600, I = 5, z = class z extends w {
94
94
  const e = t.target;
95
95
  this._searchValue = e.value, this._searchDebounceTimer !== null && clearTimeout(this._searchDebounceTimer), this._searchDebounceTimer = window.setTimeout(() => {
96
96
  this._loadAvailableDatasets({ append: !1 });
97
- }, E);
97
+ }, C);
98
98
  }
99
99
  _handleScroll(t) {
100
100
  const e = t.target, o = e.scrollTop, a = e.scrollHeight, s = e.clientHeight;
@@ -180,15 +180,15 @@ const g = 7, E = 600, I = 5, z = class z extends w {
180
180
  _onDatasetsLoaded(t, { rows: e, count: o }) {
181
181
  let a;
182
182
  if (t) {
183
- const c = new Set(this._availableDatasets.map((m) => m.id)), d = e.filter((m) => !c.has(m.id));
183
+ const c = new Set(this._availableDatasets.map((h) => h.id)), d = e.filter((h) => !c.has(h.id));
184
184
  a = [...this._availableDatasets, ...d];
185
185
  } else
186
186
  a = e || [];
187
187
  t && e.length === 0 ? this._hasLoadedEmptyPage = !0 : e.length > 0 && (this._hasLoadedEmptyPage = !1);
188
- const s = a.reduce((c, d) => (c.some((m) => m.id === d.id) || c.push(d), c), []), l = a.length, h = this._hasLoadedEmptyPage || l >= o;
188
+ const s = a.reduce((c, d) => (c.some((h) => h.id === d.id) || c.push(d), c), []), i = a.length, m = this._hasLoadedEmptyPage || i >= o;
189
189
  this._status = {
190
190
  ...this._status,
191
- allDatasetsLoaded: h
191
+ allDatasetsLoaded: m
192
192
  }, this._availableDatasets = s;
193
193
  }
194
194
  _shouldLoadMoreDatasetsForViewport() {
@@ -198,12 +198,12 @@ const g = 7, E = 600, I = 5, z = class z extends w {
198
198
  const t = (d = this.shadowRoot) == null ? void 0 : d.querySelector(".datasets-scroll-container");
199
199
  if (!t)
200
200
  return !1;
201
- const e = t.clientHeight, a = Math.ceil(e / 24), l = Math.ceil(a * 1.5);
202
- return this._filteredDatasets.length < l;
201
+ const e = t.clientHeight, a = Math.ceil(e / 24), i = Math.ceil(a * 1.5);
202
+ return this._filteredDatasets.length < i;
203
203
  }
204
204
  _getDatasetName(t) {
205
- const e = k();
206
- return x(t.name, e) || t.id || "Unknown Dataset";
205
+ const e = y();
206
+ return _(t.name, e) || t.id || "Unknown Dataset";
207
207
  }
208
208
  _selectDataset(t) {
209
209
  this.dispatchEvent(
@@ -233,17 +233,13 @@ const g = 7, E = 600, I = 5, z = class z extends w {
233
233
  `;
234
234
  }
235
235
  _renderDatasetIcon(t) {
236
- var o, a, s, l;
237
- const e = (l = (s = (a = (o = t.account) == null ? void 0 : o.plugin) == null ? void 0 : a.thumbnails) == null ? void 0 : s[0]) == null ? void 0 : l.url;
238
- if (e) {
239
- const h = `${this.appServer}/${e}`;
240
- return u`<img
241
- src=${h}
242
- alt=${t.name}
243
- class="dataset-icon-img"
244
- />`;
245
- }
246
- return u`${_(y)}`;
236
+ return u`
237
+ <luzmo-dataset-icon
238
+ .datasetInfo=${t}
239
+ size="16px"
240
+ app-url=${this.appServer}
241
+ ></luzmo-dataset-icon>
242
+ `;
247
243
  }
248
244
  _renderSearchInput() {
249
245
  return this.showSearch ? u`
@@ -266,7 +262,7 @@ const g = 7, E = 600, I = 5, z = class z extends w {
266
262
  <div class="datasets-scroll-container" @scroll=${this._handleScroll}>
267
263
  ${this._status.busy && !this._status.paging ? this._renderLoader() : b}
268
264
  <div class="datasets-list">
269
- ${L(
265
+ ${w(
270
266
  this._filteredDatasets,
271
267
  (t) => t.id,
272
268
  (t) => u`
@@ -303,42 +299,42 @@ const g = 7, E = 600, I = 5, z = class z extends w {
303
299
  `;
304
300
  }
305
301
  };
306
- z.styles = D(S);
302
+ z.styles = k(D);
307
303
  let r = z;
308
- i([
304
+ l([
309
305
  n({ type: Object, attribute: !1 })
310
306
  ], r.prototype, "selectedDatasets", 1);
311
- i([
307
+ l([
312
308
  n({ type: Boolean, attribute: "show-search" })
313
309
  ], r.prototype, "showSearch", 2);
314
- i([
310
+ l([
315
311
  n({ type: String, attribute: "search-placeholder" })
316
312
  ], r.prototype, "searchPlaceholder", 2);
317
- i([
313
+ l([
318
314
  n({ type: String, attribute: "no-datasets-message" })
319
315
  ], r.prototype, "noDatasetsMessage", 2);
320
- i([
316
+ l([
321
317
  n({ type: String, attribute: "auth-key" })
322
318
  ], r.prototype, "authKey", 2);
323
- i([
319
+ l([
324
320
  n({ type: String, attribute: "auth-token" })
325
321
  ], r.prototype, "authToken", 2);
326
- i([
322
+ l([
327
323
  n({ type: String, attribute: "api-url" })
328
324
  ], r.prototype, "apiUrl", 2);
329
- i([
325
+ l([
330
326
  n({ type: String, attribute: "app-server" })
331
327
  ], r.prototype, "appServer", 2);
332
- i([
328
+ l([
333
329
  n({ type: Boolean, attribute: "flag-opendata" })
334
330
  ], r.prototype, "flagOpendata", 2);
335
- i([
331
+ l([
336
332
  f()
337
333
  ], r.prototype, "_availableDatasets", 2);
338
- i([
334
+ l([
339
335
  f()
340
336
  ], r.prototype, "_status", 2);
341
- i([
337
+ l([
342
338
  f()
343
339
  ], r.prototype, "_searchValue", 2);
344
340
  customElements.get("luzmo-dataset-selector-list") || customElements.define("luzmo-dataset-selector-list", r);
@@ -3,12 +3,16 @@ import '@luzmo/lucero/popover';
3
3
  import '@luzmo/lucero/tooltip';
4
4
  import { LitElement, TemplateResult } from 'lit';
5
5
  import { Dataset } from '../../types';
6
+ import '../dataset-icon';
7
+ import '../dataset-selector-list';
6
8
  /**
7
9
  * @element luzmo-dataset-selector-row
8
10
  * @summary A row component for selecting and managing datasets with pills and overlay
9
11
  * @fires dataset-selected - Fired when a dataset is selected
10
12
  * @fires dataset-removed - Fired when a dataset is removed
11
13
  *
14
+ * @attr {boolean} disabled - When true, disables all interactions with the component
15
+ *
12
16
  * @cssprop --dataset-selector-row-gap - Gap between elements
13
17
  * @cssprop --dataset-selector-row-min-height - Minimum height of the row
14
18
  * @cssprop --dataset-selector-row-font-size - Font size of the row
@@ -59,6 +63,10 @@ export declare class LuzmoDatasetSelectorRow extends LitElement {
59
63
  * When true, restricts results to public datasets (opendata parity)
60
64
  */
61
65
  flagOpendata: boolean;
66
+ /**
67
+ * When true, disables all interactions with the component
68
+ */
69
+ disabled: boolean;
62
70
  private _overlayOpen;
63
71
  private get _hasSelectedDatasets();
64
72
  private get _selectedDatasetIds();
@@ -0,0 +1,82 @@
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 c=require("@luzmo/icons");require("@luzmo/lucero/overlay");require("@luzmo/lucero/popover");require("@luzmo/lucero/tooltip");const h=require("../localize-r7ALOUy_.cjs"),v=require("../set-locale-BRRalqne.cjs"),d=require("lit"),a=require("lit/decorators.js"),b=require("lit/directives/repeat.js");require("../dataset-icon/index.cjs");require("../dataset-selector-list/index.cjs");const m=":host{box-sizing:border-box;display:flex;flex-direction:row;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));flex-wrap:wrap;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))}:host[disabled]{cursor:not-allowed;opacity:.6}:host .add-dataset-button{display:inline-flex;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;font-family:inherit;outline:none;justify-content:center;transition:all .15s ease}: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-hover-border-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));border-color:var(--luzmo-dataset-selector-row-button-border-color, var(--dataset-selector-row-button-border-color))}: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;display:flex;flex-direction:row;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));align-items:center;cursor:pointer;transition:all .15s ease}: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-hover-border-color))}:host .removable-pill:hover .dataset-icon{display:none}:host .removable-pill:hover .close-icon{display:inline-block;color:var(--luzmo-dataset-selector-row-pill-close-color, var(--dataset-selector-row-pill-close-color))}:host .removable-pill .close-icon{width:var(--luzmo-dataset-selector-row-pill-close-size, var(--dataset-selector-row-pill-close-size));display:none;flex-shrink:0}:host .removable-pill .dataset-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;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))}: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{flex:1;overflow:hidden;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))}: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);--dataset-selector-row-font-family: var(--luzmo-font-family);--dataset-selector-row-button-gap: var(--luzmo-spacing-1);--dataset-selector-row-button-min-width: 1.75rem;--dataset-selector-row-button-height: 1.75rem;--dataset-selector-row-button-border-radius: .5rem;--dataset-selector-row-button-border-color: var(--luzmo-border-color);--dataset-selector-row-button-background: var(--luzmo-background-color-alt-1, rgba(248, 248, 248, 1));--dataset-selector-row-button-color: var(--luzmo-font-color-tertiary, rgba(165, 165, 165, 1));--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, rgba(248, 248, 248, 1));--dataset-selector-row-button-hover-border-color: var(--luzmo-border-color-hover);--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, rgba(248, 248, 248, 1));--dataset-selector-row-pill-hover-background: var(--luzmo-background-color-highlight, rgba(248, 248, 248, 1));--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}";var w=Object.defineProperty,l=(u,e,t,s)=>{for(var r=void 0,i=u.length-1,p;i>=0;i--)(p=u[i])&&(r=p(e,t,r)||r);return r&&w(e,t,r),r};const n=class n extends d.LitElement{constructor(){super(...arguments),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}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){var r;const t=e.detail;if(!this._selectedDatasetIds.has(t.id)){const i=[...this.selectedDatasets,t];this.selectedDatasets=i,this.dispatchEvent(new CustomEvent("dataset-selected",{detail:t,bubbles:!0,composed:!0}))}const s=(r=this.shadowRoot)==null?void 0:r.getElementById("add-dataset-button");s&&s.click(),this._overlayOpen=!1}_handleDatasetRemoved(e){if(this.disabled)return;const t=this.selectedDatasets.filter(s=>s.id!==e.id);this.selectedDatasets=t,this.dispatchEvent(new CustomEvent("dataset-removed",{detail:e,bubbles:!0,composed:!0}))}_getDatasetName(e){const t=v.getLocale();return h.localize(e.name,t)||e.id||"Unknown Dataset"}_renderDatasetIcon(e){return d.html`
21
+ <luzmo-dataset-icon
22
+ .datasetInfo=${e}
23
+ size="16px"
24
+ app-url=${this.appServer}
25
+ ></luzmo-dataset-icon>
26
+ `}_renderAddButton(){return d.html`
27
+ <button
28
+ id="add-dataset-button"
29
+ type="button"
30
+ class="add-dataset-button ${this._hasSelectedDatasets?"icon-only":""}"
31
+ ?disabled=${this.disabled}
32
+ @click=${this._handleAddDatasetClick}
33
+ >
34
+ ${c.luzmoIcon(c.luzmoPlus)}
35
+ ${this._hasSelectedDatasets?d.nothing:this.buttonLabel}
36
+ </button>
37
+ `}_renderDatasetPill(e){return d.html`
38
+ <div class="removable-pill" @click=${this._createDatasetRemovedHandler(e)}>
39
+ <div class="dataset-icon">
40
+ ${this._renderDatasetIcon(e)}
41
+ </div>
42
+ <span class="close-icon">${c.luzmoIcon(c.luzmoClose16)}</span>
43
+ <span
44
+ class="dataset-name text-truncate"
45
+ title=${this._getDatasetName(e)}
46
+ >
47
+ ${this._getDatasetName(e)}
48
+ </span>
49
+ <luzmo-tooltip
50
+ self-managed
51
+ placement="top"
52
+ show-only-if-truncated
53
+ truncated-element-selector=".dataset-name"
54
+ >
55
+ ${this._getDatasetName(e)}
56
+ </luzmo-tooltip>
57
+ </div>
58
+ `}_handleOverlayOpened(){this._overlayOpen=!0,requestAnimationFrame(()=>{var s,r;const e=(s=this.shadowRoot)==null?void 0:s.querySelector("luzmo-dataset-selector-list"),t=(r=e==null?void 0:e.shadowRoot)==null?void 0:r.querySelector(".search-input");t&&t.focus()})}_handleOverlayClosed(){this._overlayOpen=!1}_createDatasetRemovedHandler(e){return()=>this._handleDatasetRemoved(e)}_renderOverlay(){return d.html`
59
+ <luzmo-overlay
60
+ id="dataset-overlay"
61
+ trigger="add-dataset-button@click"
62
+ placement="top-start"
63
+ @luzmo-opened=${this._handleOverlayOpened}
64
+ @luzmo-closed=${this._handleOverlayClosed}
65
+ >
66
+ <luzmo-popover style="position: relative">
67
+ <luzmo-dataset-selector-list
68
+ .selectedDatasets=${this._selectedDatasetIds}
69
+ auth-key=${this.authKey}
70
+ auth-token=${this.authToken}
71
+ api-url=${this.apiUrl}
72
+ app-server=${this.appServer}
73
+ ?flag-opendata=${this.flagOpendata}
74
+ @dataset-selected=${this._handleDatasetSelected}
75
+ ></luzmo-dataset-selector-list>
76
+ </luzmo-popover>
77
+ </luzmo-overlay>
78
+ `}render(){return d.html`
79
+ ${this._renderAddButton()}
80
+ ${b.repeat(this.selectedDatasets,e=>e.id,e=>this._renderDatasetPill(e))}
81
+ ${this._renderOverlay()}
82
+ `}};n.styles=d.unsafeCSS(m),n.tagName="luzmo-dataset-selector-row";let o=n;l([a.property({type:Array})],o.prototype,"selectedDatasets");l([a.property({type:String,attribute:"button-label"})],o.prototype,"buttonLabel");l([a.property({type:String,attribute:"auth-key"})],o.prototype,"authKey");l([a.property({type:String,attribute:"auth-token"})],o.prototype,"authToken");l([a.property({type:String,attribute:"api-url"})],o.prototype,"apiUrl");l([a.property({type:String,attribute:"app-server"})],o.prototype,"appServer");l([a.property({type:Boolean,attribute:"flag-opendata"})],o.prototype,"flagOpendata");l([a.property({type:Boolean,reflect:!0,attribute:"disabled"})],o.prototype,"disabled");l([a.state()],o.prototype,"_overlayOpen");customElements.get("luzmo-dataset-selector-row")||customElements.define("luzmo-dataset-selector-row",o);exports.LuzmoDatasetSelectorRow=o;
@@ -1,7 +1,7 @@
1
1
  import { LuzmoDatasetSelectorRow } from './dataset-selector-row';
2
- export { LuzmoDatasetSelectorRow } from './dataset-selector-row';
3
2
  declare global {
4
3
  interface HTMLElementTagNameMap {
5
4
  'luzmo-dataset-selector-row': LuzmoDatasetSelectorRow;
6
5
  }
7
6
  }
7
+ export { LuzmoDatasetSelectorRow } from './dataset-selector-row';