@luzmo/analytics-components-kit 1.0.1-alpha.85 → 1.0.1-alpha.87

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 (54) 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/esm/components/ai-interaction-textarea.component.d.ts +2 -1
  6. package/angular/esm/components/ai-interaction-textarea.component.js +7 -2
  7. package/angular/esm/components/dataset-icon.component.d.ts +9 -0
  8. package/angular/esm/components/dataset-icon.component.js +36 -0
  9. package/angular/esm/components/dataset-selector-row.component.d.ts +2 -1
  10. package/angular/esm/components/dataset-selector-row.component.js +7 -2
  11. package/angular/esm/index.d.ts +3 -1
  12. package/angular/esm/index.js +3 -0
  13. package/angular/esm/types.d.ts +14 -0
  14. package/angular/index.ts +3 -0
  15. package/angular/types.ts +13 -0
  16. package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +7 -1
  17. package/components/ai-interaction-textarea/index.cjs +32 -28
  18. package/components/ai-interaction-textarea/index.js +60 -48
  19. package/components/dataset-icon/dataset-icon.d.ts +45 -0
  20. package/components/dataset-icon/index.cjs +60 -0
  21. package/components/dataset-icon/index.d.ts +7 -0
  22. package/components/dataset-icon/index.js +166 -0
  23. package/components/dataset-selector-list/dataset-selector-list.d.ts +1 -0
  24. package/components/dataset-selector-list/index.cjs +10 -8
  25. package/components/dataset-selector-list/index.js +55 -58
  26. package/components/dataset-selector-row/dataset-selector-row.d.ts +7 -0
  27. package/components/dataset-selector-row/index.cjs +21 -18
  28. package/components/dataset-selector-row/index.js +61 -57
  29. package/components/display-settings-binning/index.js +1 -1
  30. package/components/display-settings-datetime/index.js +1 -1
  31. package/components/display-settings-grand-totals/index.js +1 -1
  32. package/components/display-settings-numeric/index.js +1 -1
  33. package/components/display-settings-period-over-period/index.js +1 -1
  34. package/components/draggable-data-item/index.js +1 -1
  35. package/components/droppable-slot/index.js +1 -1
  36. package/components/filter-data-item-picker/index.js +1 -1
  37. package/components/filter-expression-picker/index.js +1 -1
  38. package/components/filter-item/index.js +2 -2
  39. package/components/filter-value-picker/index.js +1 -1
  40. package/components/filter-value-picker-datetime/index.js +1 -1
  41. package/components/filter-value-picker-hierarchy/index.js +1 -1
  42. package/components/filter-value-picker-numeric/index.js +1 -1
  43. package/components/grid/index.js +1 -1
  44. package/components/{index-BDFBUGBc.js → index-DdyZ2g5L.js} +1 -1
  45. package/components/index.cjs +1 -1
  46. package/components/index.js +90 -88
  47. package/components/{set-locale-nv7fWEtl.js → set-locale-hKTMz37h.js} +6 -1
  48. package/components/slot-contents-picker/index.js +1 -1
  49. package/components/slot-menu/index.cjs +1 -1
  50. package/components/slot-menu/index.js +1 -1
  51. package/custom-elements.json +154 -0
  52. package/index.d.ts +1 -0
  53. package/package.json +8 -3
  54. package/types.d.ts +14 -0
@@ -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-D1Y5TRsH.cjs"),_=require("../localize-C4zNlrwK.cjs"),y=require("../set-locale-BRRalqne.cjs"),l=require("lit"),i=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}:host .datasets-scroll-container::-webkit-scrollbar{width:var(--luzmo-dataset-selector-list-scrollbar-width, var(--dataset-selector-list-scrollbar-width))}:host .datasets-scroll-container::-webkit-scrollbar-track{background:var(--luzmo-dataset-selector-list-scrollbar-track-background, var(--dataset-selector-list-scrollbar-track-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-track-border-radius, var(--dataset-selector-list-scrollbar-track-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-background, var(--dataset-selector-list-scrollbar-thumb-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-thumb-border-radius, var(--dataset-selector-list-scrollbar-thumb-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-hover-background, var(--dataset-selector-list-scrollbar-thumb-hover-background))}:host .datasets-scroll-container{scrollbar-width: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-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,d=(g,t,e,a)=>{for(var s=a>1?void 0:a?w(t,e):t,r=g.length-1,c;r>=0;r--)(c=g[r])&&(s=(a?c(t,e,s):c(s))||s);return a&&s&&k(t,e,s),s};const m=7,L=600,x=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(){super.connectedCallback?.(),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(){if(this._calculatedQueryLimit!==null)return this._calculatedQueryLimit;const t=this.shadowRoot?.querySelector(".dataset-selector-list");if(!t)return m;const e=getComputedStyle(t),a=t.clientHeight,s=Number.parseFloat(e.height),r=Math.max(a,s);if(r<=0)return m;const h=Math.floor(r/24),n=Math.max(h+x,m);return this._calculatedQueryLimit=n,n}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,a=e.scrollTop,s=e.scrollHeight,r=e.clientHeight;a+r>=s-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),a=JSON.stringify(e),s=this._queryCache.has(a);try{let r;s?r=this._queryCache.get(a):(r=await v.dataBroker.fetchApi("/securable",{action:"get",version:"0.1.0",find:e}),this._queryCache.set(a,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 a=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,...a,...this.flagOpendata?{public:null}:{}}}_onDatasetsLoaded(t,{rows:e,count:a}){let s;if(t){const n=new Set(this._availableDatasets.map(u=>u.id)),p=e.filter(u=>!n.has(u.id));s=[...this._availableDatasets,...p]}else s=e||[];t&&e.length===0?this._hasLoadedEmptyPage=!0:e.length>0&&(this._hasLoadedEmptyPage=!1);const r=s.reduce((n,p)=>(n.some(u=>u.id===p.id)||n.push(p),n),[]),c=s.length,h=this._hasLoadedEmptyPage||c>=a;this._status={...this._status,allDatasetsLoaded:h},this._availableDatasets=r}_shouldLoadMoreDatasetsForViewport(){if(this._status.allDatasetsLoaded||this._hasLoadedEmptyPage||this._status.busy)return!1;const t=this.shadowRoot?.querySelector(".datasets-scroll-container");if(!t)return!1;const e=t.clientHeight,s=Math.ceil(e/24),c=Math.ceil(s*1.5);return this._filteredDatasets.length<c}_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,a=this._filteredDatasets.find(s=>s.id===e);a&&this._selectDataset(a)}_handleDatasetKeydown(t){if(t.key==="Enter"||t.key===" "){t.preventDefault();const e=t.currentTarget.dataset.datasetId,a=this._filteredDatasets.find(s=>s.id===e);a&&this._selectDataset(a)}}_renderLoader(){return l.html`
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../index-D1Y5TRsH.cjs"),v=require("../localize-C4zNlrwK.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}:host .datasets-scroll-container::-webkit-scrollbar{width:var(--luzmo-dataset-selector-list-scrollbar-width, var(--dataset-selector-list-scrollbar-width))}:host .datasets-scroll-container::-webkit-scrollbar-track{background:var(--luzmo-dataset-selector-list-scrollbar-track-background, var(--dataset-selector-list-scrollbar-track-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-track-border-radius, var(--dataset-selector-list-scrollbar-track-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-background, var(--dataset-selector-list-scrollbar-thumb-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-thumb-border-radius, var(--dataset-selector-list-scrollbar-thumb-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-hover-background, var(--dataset-selector-list-scrollbar-thumb-hover-background))}:host .datasets-scroll-container{scrollbar-width: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-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(){super.connectedCallback?.(),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(){if(this._calculatedQueryLimit!==null)return this._calculatedQueryLimit;const t=this.shadowRoot?.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),n=Math.max(h+L,m);return this._calculatedQueryLimit=n,n}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 n=new Set(this._availableDatasets.map(u=>u.id)),p=e.filter(u=>!n.has(u.id));a=[...this._availableDatasets,...p]}else a=e||[];t&&e.length===0?this._hasLoadedEmptyPage=!0:e.length>0&&(this._hasLoadedEmptyPage=!1);const r=a.reduce((n,p)=>(n.some(u=>u.id===p.id)||n.push(p),n),[]),c=a.length,h=this._hasLoadedEmptyPage||c>=s;this._status={...this._status,allDatasetsLoaded:h},this._availableDatasets=r}_shouldLoadMoreDatasetsForViewport(){if(this._status.allDatasetsLoaded||this._hasLoadedEmptyPage||this._status.busy)return!1;const t=this.shadowRoot?.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){const e=t.account?.plugin?.thumbnails?.[0]?.url;if(e){const a=`${this.appServer}/${e}`;return l.html`<img
25
- src=${a}
26
- alt=${t.name}
27
- class="dataset-icon-img"
28
- />`}return l.html`${f.luzmoIcon(f.luzmoTable)}`}_renderSearchInput(){return this.showSearch?l.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"
@@ -42,7 +44,7 @@
42
44
  <div class="datasets-scroll-container" @scroll=${this._handleScroll}>
43
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=>l.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}
@@ -69,4 +71,4 @@
69
71
  <div class="dataset-selector-list">
70
72
  ${this._renderSearchInput()} ${this._renderDatasetList()}
71
73
  </div>
72
- `}};b.styles=l.unsafeCSS(D);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;
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-BGb_wRRW.js";
22
- import { l as x } from "../localize-CcDpq940.js";
23
- import { g as k } from "../set-locale-nv7fWEtl.js";
24
- import { LitElement as w, unsafeCSS as D, html as n, nothing as b } from "lit";
25
- import { property as d, state as f } from "lit/decorators.js";
26
- import { repeat as L } from "lit/directives/repeat.js";
21
+ import { l as _ } from "../localize-CcDpq940.js";
22
+ import { g as y } from "../set-locale-hKTMz37h.js";
23
+ import { LitElement as x, unsafeCSS as k, html as n, nothing as b } from "lit";
24
+ import { property as c, state as f } from "lit/decorators.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}:host .datasets-scroll-container::-webkit-scrollbar{width:var(--luzmo-dataset-selector-list-scrollbar-width, var(--dataset-selector-list-scrollbar-width))}:host .datasets-scroll-container::-webkit-scrollbar-track{background:var(--luzmo-dataset-selector-list-scrollbar-track-background, var(--dataset-selector-list-scrollbar-track-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-track-border-radius, var(--dataset-selector-list-scrollbar-track-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-background, var(--dataset-selector-list-scrollbar-thumb-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-thumb-border-radius, var(--dataset-selector-list-scrollbar-thumb-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-hover-background, var(--dataset-selector-list-scrollbar-thumb-hover-background))}:host .datasets-scroll-container{scrollbar-width: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-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, l = (p, t, e, a) => {
35
- for (var o = a > 1 ? void 0 : a ? C(t, e) : t, s = p.length - 1, i; s >= 0; s--)
36
- (i = p[s]) && (o = (a ? i(t, e, o) : i(o)) || o);
37
- return a && o && T(t, e, o), o;
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}:host .datasets-scroll-container::-webkit-scrollbar{width:var(--luzmo-dataset-selector-list-scrollbar-width, var(--dataset-selector-list-scrollbar-width))}:host .datasets-scroll-container::-webkit-scrollbar-track{background:var(--luzmo-dataset-selector-list-scrollbar-track-background, var(--dataset-selector-list-scrollbar-track-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-track-border-radius, var(--dataset-selector-list-scrollbar-track-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-background, var(--dataset-selector-list-scrollbar-thumb-background));border-radius:var(--luzmo-dataset-selector-list-scrollbar-thumb-border-radius, var(--dataset-selector-list-scrollbar-thumb-border-radius))}:host .datasets-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--luzmo-dataset-selector-list-scrollbar-thumb-hover-background, var(--dataset-selector-list-scrollbar-thumb-hover-background))}:host .datasets-scroll-container{scrollbar-width: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-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,
@@ -74,14 +74,14 @@ const g = 7, E = 600, I = 5, z = class z extends w {
74
74
  );
75
75
  if (!t)
76
76
  return g;
77
- const e = getComputedStyle(t), a = t.clientHeight, o = Number.parseFloat(e.height), s = Math.max(a, o);
77
+ const e = getComputedStyle(t), o = t.clientHeight, a = Number.parseFloat(e.height), s = Math.max(o, a);
78
78
  if (s <= 0)
79
79
  return g;
80
- const h = Math.floor(s / 24), c = Math.max(
81
- h + I,
80
+ const h = Math.floor(s / 24), d = Math.max(
81
+ h + E,
82
82
  g
83
83
  );
84
- return this._calculatedQueryLimit = c, c;
84
+ return this._calculatedQueryLimit = d, d;
85
85
  }
86
86
  get _filteredDatasets() {
87
87
  return this._selectedDatasets.size === 0 ? this._availableDatasets : this._availableDatasets.filter(
@@ -92,11 +92,11 @@ const g = 7, E = 600, I = 5, z = class z extends w {
92
92
  const e = t.target;
93
93
  this._searchValue = e.value, this._searchDebounceTimer !== null && clearTimeout(this._searchDebounceTimer), this._searchDebounceTimer = window.setTimeout(() => {
94
94
  this._loadAvailableDatasets({ append: !1 });
95
- }, E);
95
+ }, C);
96
96
  }
97
97
  _handleScroll(t) {
98
- const e = t.target, a = e.scrollTop, o = e.scrollHeight, s = e.clientHeight;
99
- a + s >= o - 50 && !this._status.allDatasetsLoaded && !this._status.busy && this._loadAvailableDatasets({ append: !0 });
98
+ const e = t.target, o = e.scrollTop, a = e.scrollHeight, s = e.clientHeight;
99
+ o + s >= a - 50 && !this._status.allDatasetsLoaded && !this._status.busy && this._loadAvailableDatasets({ append: !0 });
100
100
  }
101
101
  async _loadAvailableDatasets({
102
102
  append: t
@@ -107,14 +107,14 @@ const g = 7, E = 600, I = 5, z = class z extends w {
107
107
  allDatasetsLoaded: t ? this._status.allDatasetsLoaded : !1,
108
108
  paging: t
109
109
  };
110
- const e = this._generateQuery(t), a = JSON.stringify(e), o = this._queryCache.has(a);
110
+ const e = this._generateQuery(t), o = JSON.stringify(e), a = this._queryCache.has(o);
111
111
  try {
112
112
  let s;
113
- o ? s = this._queryCache.get(a) : (s = await v.fetchApi("/securable", {
113
+ a ? s = this._queryCache.get(o) : (s = await v.fetchApi("/securable", {
114
114
  action: "get",
115
115
  version: "0.1.0",
116
116
  find: e
117
- }), this._queryCache.set(a, s)), this._onDatasetsLoaded(t, s), this._shouldLoadMoreDatasetsForViewport() && await this._loadAvailableDatasets({ append: !0 });
117
+ }), this._queryCache.set(o, s)), this._onDatasetsLoaded(t, s), this._shouldLoadMoreDatasetsForViewport() && await this._loadAvailableDatasets({ append: !0 });
118
118
  } catch (s) {
119
119
  console.error("Error loading datasets:", s), this._status = {
120
120
  ...this._status,
@@ -133,7 +133,7 @@ const g = 7, E = 600, I = 5, z = class z extends w {
133
133
  _generateQuery(t) {
134
134
  const e = this._calculateOptimalQueryLimit();
135
135
  t ? this._currentOffset += e : this._currentOffset = 0;
136
- const a = this._searchValue ? {
136
+ const o = this._searchValue ? {
137
137
  search: {
138
138
  match_types: ["name", "description"],
139
139
  keyphrase: this._searchValue,
@@ -171,19 +171,19 @@ const g = 7, E = 600, I = 5, z = class z extends w {
171
171
  where: { type: "dataset" },
172
172
  limit: e,
173
173
  offset: this._currentOffset,
174
- ...a,
174
+ ...o,
175
175
  ...this.flagOpendata ? { public: null } : {}
176
176
  };
177
177
  }
178
- _onDatasetsLoaded(t, { rows: e, count: a }) {
179
- let o;
178
+ _onDatasetsLoaded(t, { rows: e, count: o }) {
179
+ let a;
180
180
  if (t) {
181
- const c = new Set(this._availableDatasets.map((u) => u.id)), m = e.filter((u) => !c.has(u.id));
182
- o = [...this._availableDatasets, ...m];
181
+ const d = new Set(this._availableDatasets.map((u) => u.id)), m = e.filter((u) => !d.has(u.id));
182
+ a = [...this._availableDatasets, ...m];
183
183
  } else
184
- o = e || [];
184
+ a = e || [];
185
185
  t && e.length === 0 ? this._hasLoadedEmptyPage = !0 : e.length > 0 && (this._hasLoadedEmptyPage = !1);
186
- const s = o.reduce((c, m) => (c.some((u) => u.id === m.id) || c.push(m), c), []), i = o.length, h = this._hasLoadedEmptyPage || i >= a;
186
+ const s = a.reduce((d, m) => (d.some((u) => u.id === m.id) || d.push(m), d), []), i = a.length, h = this._hasLoadedEmptyPage || i >= o;
187
187
  this._status = {
188
188
  ...this._status,
189
189
  allDatasetsLoaded: h
@@ -195,12 +195,12 @@ const g = 7, E = 600, I = 5, z = class z extends w {
195
195
  const t = this.shadowRoot?.querySelector(".datasets-scroll-container");
196
196
  if (!t)
197
197
  return !1;
198
- const e = t.clientHeight, o = Math.ceil(e / 24), i = Math.ceil(o * 1.5);
198
+ const e = t.clientHeight, a = Math.ceil(e / 24), i = Math.ceil(a * 1.5);
199
199
  return this._filteredDatasets.length < i;
200
200
  }
201
201
  _getDatasetName(t) {
202
- const e = k();
203
- return x(t.name, e) || t.id || "Unknown Dataset";
202
+ const e = y();
203
+ return _(t.name, e) || t.id || "Unknown Dataset";
204
204
  }
205
205
  _selectDataset(t) {
206
206
  this.dispatchEvent(
@@ -212,14 +212,14 @@ const g = 7, E = 600, I = 5, z = class z extends w {
212
212
  );
213
213
  }
214
214
  _handleDatasetClick(t) {
215
- const e = t.currentTarget.dataset.datasetId, a = this._filteredDatasets.find((o) => o.id === e);
216
- a && this._selectDataset(a);
215
+ const e = t.currentTarget.dataset.datasetId, o = this._filteredDatasets.find((a) => a.id === e);
216
+ o && this._selectDataset(o);
217
217
  }
218
218
  _handleDatasetKeydown(t) {
219
219
  if (t.key === "Enter" || t.key === " ") {
220
220
  t.preventDefault();
221
- const e = t.currentTarget.dataset.datasetId, a = this._filteredDatasets.find((o) => o.id === e);
222
- a && this._selectDataset(a);
221
+ const e = t.currentTarget.dataset.datasetId, o = this._filteredDatasets.find((a) => a.id === e);
222
+ o && this._selectDataset(o);
223
223
  }
224
224
  }
225
225
  _renderLoader() {
@@ -230,16 +230,13 @@ const g = 7, E = 600, I = 5, z = class z extends w {
230
230
  `;
231
231
  }
232
232
  _renderDatasetIcon(t) {
233
- const e = t.account?.plugin?.thumbnails?.[0]?.url;
234
- if (e) {
235
- const a = `${this.appServer}/${e}`;
236
- return n`<img
237
- src=${a}
238
- alt=${t.name}
239
- class="dataset-icon-img"
240
- />`;
241
- }
242
- return n`${_(y)}`;
233
+ return n`
234
+ <luzmo-dataset-icon
235
+ .datasetInfo=${t}
236
+ size="16px"
237
+ app-url=${this.appServer}
238
+ ></luzmo-dataset-icon>
239
+ `;
243
240
  }
244
241
  _renderSearchInput() {
245
242
  return this.showSearch ? n`
@@ -262,7 +259,7 @@ const g = 7, E = 600, I = 5, z = class z extends w {
262
259
  <div class="datasets-scroll-container" @scroll=${this._handleScroll}>
263
260
  ${this._status.busy && !this._status.paging ? this._renderLoader() : b}
264
261
  <div class="datasets-list">
265
- ${L(
262
+ ${w(
266
263
  this._filteredDatasets,
267
264
  (t) => t.id,
268
265
  (t) => n`
@@ -299,34 +296,34 @@ const g = 7, E = 600, I = 5, z = class z extends w {
299
296
  `;
300
297
  }
301
298
  };
302
- z.styles = D(S);
299
+ z.styles = k(D);
303
300
  let r = z;
304
301
  l([
305
- d({ type: Object, attribute: !1 })
302
+ c({ type: Object, attribute: !1 })
306
303
  ], r.prototype, "selectedDatasets", 1);
307
304
  l([
308
- d({ type: Boolean, attribute: "show-search" })
305
+ c({ type: Boolean, attribute: "show-search" })
309
306
  ], r.prototype, "showSearch", 2);
310
307
  l([
311
- d({ type: String, attribute: "search-placeholder" })
308
+ c({ type: String, attribute: "search-placeholder" })
312
309
  ], r.prototype, "searchPlaceholder", 2);
313
310
  l([
314
- d({ type: String, attribute: "no-datasets-message" })
311
+ c({ type: String, attribute: "no-datasets-message" })
315
312
  ], r.prototype, "noDatasetsMessage", 2);
316
313
  l([
317
- d({ type: String, attribute: "auth-key" })
314
+ c({ type: String, attribute: "auth-key" })
318
315
  ], r.prototype, "authKey", 2);
319
316
  l([
320
- d({ type: String, attribute: "auth-token" })
317
+ c({ type: String, attribute: "auth-token" })
321
318
  ], r.prototype, "authToken", 2);
322
319
  l([
323
- d({ type: String, attribute: "api-url" })
320
+ c({ type: String, attribute: "api-url" })
324
321
  ], r.prototype, "apiUrl", 2);
325
322
  l([
326
- d({ type: String, attribute: "app-server" })
323
+ c({ type: String, attribute: "app-server" })
327
324
  ], r.prototype, "appServer", 2);
328
325
  l([
329
- d({ type: Boolean, attribute: "flag-opendata" })
326
+ c({ type: Boolean, attribute: "flag-opendata" })
330
327
  ], r.prototype, "flagOpendata", 2);
331
328
  l([
332
329
  f()
@@ -3,6 +3,7 @@ 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';
6
7
  import '../dataset-selector-list';
7
8
  /**
8
9
  * @element luzmo-dataset-selector-row
@@ -10,6 +11,8 @@ import '../dataset-selector-list';
10
11
  * @fires dataset-selected - Fired when a dataset is selected
11
12
  * @fires dataset-removed - Fired when a dataset is removed
12
13
  *
14
+ * @attr {boolean} disabled - When true, disables all interactions with the component
15
+ *
13
16
  * @cssprop --dataset-selector-row-gap - Gap between elements
14
17
  * @cssprop --dataset-selector-row-min-height - Minimum height of the row
15
18
  * @cssprop --dataset-selector-row-font-size - Font size of the row
@@ -60,6 +63,10 @@ export declare class LuzmoDatasetSelectorRow extends LitElement {
60
63
  * When true, restricts results to public datasets (opendata parity)
61
64
  */
62
65
  flagOpendata: boolean;
66
+ /**
67
+ * When true, disables all interactions with the component
68
+ */
69
+ disabled: boolean;
63
70
  private _overlayOpen;
64
71
  private get _hasSelectedDatasets();
65
72
  private get _selectedDatasetIds();
@@ -17,31 +17,34 @@
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 d=require("@luzmo/icons");require("@luzmo/lucero/overlay");require("@luzmo/lucero/popover");require("@luzmo/lucero/tooltip");const h=require("../localize-C4zNlrwK.cjs"),m=require("../set-locale-BRRalqne.cjs"),a=require("lit"),s=require("lit/decorators.js"),v=require("lit/directives/repeat.js");require("../dataset-selector-list/index.cjs");const b=":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 .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 .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);--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);--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);--dataset-selector-row-pill-hover-background: var(--luzmo-background-color-highlight);--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,i=(u,t,e,l)=>{for(var r=void 0,c=u.length-1,p;c>=0;c--)(p=u[c])&&(r=p(t,e,r)||r);return r&&w(t,e,r),r};const n=class n extends a.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._overlayOpen=!1}get _hasSelectedDatasets(){return this.selectedDatasets.length>0}get _selectedDatasetIds(){return new Set(this.selectedDatasets.map(t=>t.id))}_handleAddDatasetClick(){this._overlayOpen=!this._overlayOpen}_handleDatasetSelected(t){const e=t.detail;if(!this._selectedDatasetIds.has(e.id)){const r=[...this.selectedDatasets,e];this.selectedDatasets=r,this.dispatchEvent(new CustomEvent("dataset-selected",{detail:e,bubbles:!0,composed:!0}))}const l=this.shadowRoot?.getElementById("add-dataset-button");l&&l.click(),this._overlayOpen=!1}_handleDatasetRemoved(t){const e=this.selectedDatasets.filter(l=>l.id!==t.id);this.selectedDatasets=e,this.dispatchEvent(new CustomEvent("dataset-removed",{detail:t,bubbles:!0,composed:!0}))}_getDatasetName(t){const e=m.getLocale();return h.localize(t.name,e)||t.id||"Unknown Dataset"}_renderDatasetIcon(t){const e=t.account?.plugin?.thumbnails,l=e&&e.length>0?e[0]?.url:null;if(l){const r=`${this.appServer}/${l}`;return a.html`<img
21
- src=${r}
22
- alt=${this._getDatasetName(t)}
23
- class="dataset-icon-img"
24
- />`}return a.html`${d.luzmoIcon(d.luzmoTable)}`}_renderAddButton(){return a.html`
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@luzmo/icons");require("@luzmo/lucero/overlay");require("@luzmo/lucero/popover");require("@luzmo/lucero/tooltip");const h=require("../localize-C4zNlrwK.cjs"),v=require("../set-locale-BRRalqne.cjs"),s=require("lit"),r=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,a=(u,e,t,d)=>{for(var l=void 0,n=u.length-1,p;n>=0;n--)(p=u[n])&&(l=p(e,t,l)||l);return l&&w(e,t,l),l};const c=class c extends s.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){const t=e.detail;if(!this._selectedDatasetIds.has(t.id)){const l=[...this.selectedDatasets,t];this.selectedDatasets=l,this.dispatchEvent(new CustomEvent("dataset-selected",{detail:t,bubbles:!0,composed:!0}))}const d=this.shadowRoot?.getElementById("add-dataset-button");d&&d.click(),this._overlayOpen=!1}_handleDatasetRemoved(e){if(this.disabled)return;const t=this.selectedDatasets.filter(d=>d.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 s.html`
21
+ <luzmo-dataset-icon
22
+ .datasetInfo=${e}
23
+ size="16px"
24
+ app-url=${this.appServer}
25
+ ></luzmo-dataset-icon>
26
+ `}_renderAddButton(){return s.html`
25
27
  <button
26
28
  id="add-dataset-button"
27
29
  type="button"
28
30
  class="add-dataset-button ${this._hasSelectedDatasets?"icon-only":""}"
31
+ ?disabled=${this.disabled}
29
32
  @click=${this._handleAddDatasetClick}
30
33
  >
31
- ${d.luzmoIcon(d.luzmoPlus)}
32
- ${this._hasSelectedDatasets?a.nothing:this.buttonLabel}
34
+ ${i.luzmoIcon(i.luzmoPlus)}
35
+ ${this._hasSelectedDatasets?s.nothing:this.buttonLabel}
33
36
  </button>
34
- `}_renderDatasetPill(t){return a.html`
35
- <div class="removable-pill" @click=${this._createDatasetRemovedHandler(t)}>
37
+ `}_renderDatasetPill(e){return s.html`
38
+ <div class="removable-pill" @click=${this._createDatasetRemovedHandler(e)}>
36
39
  <div class="dataset-icon">
37
- ${this._renderDatasetIcon(t)}
40
+ ${this._renderDatasetIcon(e)}
38
41
  </div>
39
- <span class="close-icon">${d.luzmoIcon(d.luzmoClose16)}</span>
42
+ <span class="close-icon">${i.luzmoIcon(i.luzmoClose)}</span>
40
43
  <span
41
44
  class="dataset-name text-truncate"
42
- title=${this._getDatasetName(t)}
45
+ title=${this._getDatasetName(e)}
43
46
  >
44
- ${this._getDatasetName(t)}
47
+ ${this._getDatasetName(e)}
45
48
  </span>
46
49
  <luzmo-tooltip
47
50
  self-managed
@@ -49,10 +52,10 @@
49
52
  show-only-if-truncated
50
53
  truncated-element-selector=".dataset-name"
51
54
  >
52
- ${this._getDatasetName(t)}
55
+ ${this._getDatasetName(e)}
53
56
  </luzmo-tooltip>
54
57
  </div>
55
- `}_handleOverlayOpened(){this._overlayOpen=!0,requestAnimationFrame(()=>{const e=this.shadowRoot?.querySelector("luzmo-dataset-selector-list")?.shadowRoot?.querySelector(".search-input");e&&e.focus()})}_handleOverlayClosed(){this._overlayOpen=!1}_createDatasetRemovedHandler(t){return()=>this._handleDatasetRemoved(t)}_renderOverlay(){return a.html`
58
+ `}_handleOverlayOpened(){this._overlayOpen=!0,requestAnimationFrame(()=>{const t=this.shadowRoot?.querySelector("luzmo-dataset-selector-list")?.shadowRoot?.querySelector(".search-input");t&&t.focus()})}_handleOverlayClosed(){this._overlayOpen=!1}_createDatasetRemovedHandler(e){return()=>this._handleDatasetRemoved(e)}_renderOverlay(){return s.html`
56
59
  <luzmo-overlay
57
60
  id="dataset-overlay"
58
61
  trigger="add-dataset-button@click"
@@ -72,8 +75,8 @@
72
75
  ></luzmo-dataset-selector-list>
73
76
  </luzmo-popover>
74
77
  </luzmo-overlay>
75
- `}render(){return a.html`
78
+ `}render(){return s.html`
76
79
  ${this._renderAddButton()}
77
- ${v.repeat(this.selectedDatasets,t=>t.id,t=>this._renderDatasetPill(t))}
80
+ ${b.repeat(this.selectedDatasets,e=>e.id,e=>this._renderDatasetPill(e))}
78
81
  ${this._renderOverlay()}
79
- `}};n.styles=a.unsafeCSS(b),n.tagName="luzmo-dataset-selector-row";let o=n;i([s.property({type:Array})],o.prototype,"selectedDatasets");i([s.property({type:String,attribute:"button-label"})],o.prototype,"buttonLabel");i([s.property({type:String,attribute:"auth-key"})],o.prototype,"authKey");i([s.property({type:String,attribute:"auth-token"})],o.prototype,"authToken");i([s.property({type:String,attribute:"api-url"})],o.prototype,"apiUrl");i([s.property({type:String,attribute:"app-server"})],o.prototype,"appServer");i([s.property({type:Boolean,attribute:"flag-opendata"})],o.prototype,"flagOpendata");i([s.state()],o.prototype,"_overlayOpen");customElements.get("luzmo-dataset-selector-row")||customElements.define("luzmo-dataset-selector-row",o);exports.LuzmoDatasetSelectorRow=o;
82
+ `}};c.styles=s.unsafeCSS(m),c.tagName="luzmo-dataset-selector-row";let o=c;a([r.property({type:Array})],o.prototype,"selectedDatasets");a([r.property({type:String,attribute:"button-label"})],o.prototype,"buttonLabel");a([r.property({type:String,attribute:"auth-key"})],o.prototype,"authKey");a([r.property({type:String,attribute:"auth-token"})],o.prototype,"authToken");a([r.property({type:String,attribute:"api-url"})],o.prototype,"apiUrl");a([r.property({type:String,attribute:"app-server"})],o.prototype,"appServer");a([r.property({type:Boolean,attribute:"flag-opendata"})],o.prototype,"flagOpendata");a([r.property({type:Boolean,reflect:!0,attribute:"disabled"})],o.prototype,"disabled");a([r.state()],o.prototype,"_overlayOpen");customElements.get("luzmo-dataset-selector-row")||customElements.define("luzmo-dataset-selector-row",o);exports.LuzmoDatasetSelectorRow=o;