@paperless/core 2.0.1-beta.156 → 2.0.1-beta.158

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 (88) hide show
  1. package/CHANGELOG.md +229 -0
  2. package/dist/build/index.esm.js +1 -1
  3. package/dist/build/{p-24c7be42.js → p-16bb7274.js} +1 -1
  4. package/dist/build/p-59ab69e0.entry.js +2 -0
  5. package/dist/build/p-59ab69e0.entry.js.map +1 -0
  6. package/dist/{paperless/p-5b500894.entry.js → build/p-5ec4dcc5.entry.js} +2 -2
  7. package/dist/{paperless/p-c74c4740.entry.js → build/p-815ece67.entry.js} +2 -2
  8. package/dist/build/p-_CfQET1U.js +2 -0
  9. package/dist/build/p-_CfQET1U.js.map +1 -0
  10. package/dist/build/{p-dc5fab19.entry.js → p-baec5c22.entry.js} +2 -2
  11. package/dist/{paperless/p-dc5fab19.entry.js.map → build/p-baec5c22.entry.js.map} +1 -1
  12. package/dist/build/p-select.entry.esm.js.map +1 -1
  13. package/dist/build/p-table-column.entry.esm.js.map +1 -1
  14. package/dist/build/paperless.esm.js +1 -1
  15. package/dist/cjs/index.cjs.js +1 -1
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/cjs/p-empty-state_9.cjs.entry.js +1 -1
  18. package/dist/cjs/p-select.cjs.entry.js +2 -2
  19. package/dist/cjs/p-select.cjs.entry.js.map +1 -1
  20. package/dist/cjs/p-select.entry.cjs.js.map +1 -1
  21. package/dist/cjs/p-table-column.cjs.entry.js +2 -2
  22. package/dist/cjs/p-table-column.cjs.entry.js.map +1 -1
  23. package/dist/cjs/p-table-column.entry.cjs.js.map +1 -1
  24. package/dist/cjs/p-table.cjs.entry.js +1 -1
  25. package/dist/cjs/paperless.cjs.js +1 -1
  26. package/dist/cjs/{table-helpers-Bne0_01e.js → table-helpers-Dm9HGI12.js} +9 -5
  27. package/dist/cjs/table-helpers-Dm9HGI12.js.map +1 -0
  28. package/dist/collection/components/helpers/table/column/table-column.component.js +8 -8
  29. package/dist/collection/components/helpers/table/column/table-column.component.js.map +1 -1
  30. package/dist/collection/components/molecules/select/select.component.js +2 -2
  31. package/dist/collection/components/molecules/select/select.component.js.map +1 -1
  32. package/dist/collection/utils/table-helpers.js +7 -3
  33. package/dist/collection/utils/table-helpers.js.map +1 -1
  34. package/dist/components/index.js +1 -1
  35. package/dist/components/{p-Ds9vCh4D.js → p-Cz7DdDdd.js} +9 -5
  36. package/dist/components/p-Cz7DdDdd.js.map +1 -0
  37. package/dist/components/{p-C6mKH4oI.js → p-_sgEPMdz.js} +3 -3
  38. package/dist/components/{p-C6mKH4oI.js.map → p-_sgEPMdz.js.map} +1 -1
  39. package/dist/components/p-select.js +2 -2
  40. package/dist/components/p-select.js.map +1 -1
  41. package/dist/components/p-table-cell.js +1 -1
  42. package/dist/components/p-table-column.js +3 -3
  43. package/dist/components/p-table-column.js.map +1 -1
  44. package/dist/components/p-table.js +2 -2
  45. package/dist/esm/index.js +1 -1
  46. package/dist/esm/loader.js +1 -1
  47. package/dist/esm/p-empty-state_9.entry.js +1 -1
  48. package/dist/esm/p-select.entry.js +2 -2
  49. package/dist/esm/p-select.entry.js.map +1 -1
  50. package/dist/esm/p-table-column.entry.js +2 -2
  51. package/dist/esm/p-table-column.entry.js.map +1 -1
  52. package/dist/esm/p-table.entry.js +1 -1
  53. package/dist/esm/paperless.js +1 -1
  54. package/dist/esm/{table-helpers-DaUENiI5.js → table-helpers-DG43HEPx.js} +9 -5
  55. package/dist/esm/table-helpers-DG43HEPx.js.map +1 -0
  56. package/dist/index.html +1 -1
  57. package/dist/paperless/index.esm.js +1 -1
  58. package/dist/paperless/p-59ab69e0.entry.js +2 -0
  59. package/dist/paperless/p-59ab69e0.entry.js.map +1 -0
  60. package/dist/{build/p-5b500894.entry.js → paperless/p-5ec4dcc5.entry.js} +2 -2
  61. package/dist/{build/p-c74c4740.entry.js → paperless/p-815ece67.entry.js} +2 -2
  62. package/dist/paperless/p-_CfQET1U.js +2 -0
  63. package/dist/paperless/p-_CfQET1U.js.map +1 -0
  64. package/dist/paperless/{p-dc5fab19.entry.js → p-baec5c22.entry.js} +2 -2
  65. package/dist/{build/p-dc5fab19.entry.js.map → paperless/p-baec5c22.entry.js.map} +1 -1
  66. package/dist/paperless/p-select.entry.esm.js.map +1 -1
  67. package/dist/paperless/p-table-column.entry.esm.js.map +1 -1
  68. package/dist/paperless/paperless.esm.js +1 -1
  69. package/dist/sw.js +1 -1
  70. package/dist/sw.js.map +1 -1
  71. package/dist/types/components/helpers/table/column/table-column.component.d.ts +2 -2
  72. package/dist/types/components.d.ts +12 -8
  73. package/package.json +1 -1
  74. package/dist/build/p-4c81bb03.entry.js +0 -2
  75. package/dist/build/p-4c81bb03.entry.js.map +0 -1
  76. package/dist/build/p-BCrdDF_Y.js +0 -2
  77. package/dist/build/p-BCrdDF_Y.js.map +0 -1
  78. package/dist/cjs/table-helpers-Bne0_01e.js.map +0 -1
  79. package/dist/components/p-Ds9vCh4D.js.map +0 -1
  80. package/dist/esm/table-helpers-DaUENiI5.js.map +0 -1
  81. package/dist/paperless/p-4c81bb03.entry.js +0 -2
  82. package/dist/paperless/p-4c81bb03.entry.js.map +0 -1
  83. package/dist/paperless/p-BCrdDF_Y.js +0 -2
  84. package/dist/paperless/p-BCrdDF_Y.js.map +0 -1
  85. /package/dist/build/{p-5b500894.entry.js.map → p-5ec4dcc5.entry.js.map} +0 -0
  86. /package/dist/build/{p-c74c4740.entry.js.map → p-815ece67.entry.js.map} +0 -0
  87. /package/dist/paperless/{p-5b500894.entry.js.map → p-5ec4dcc5.entry.js.map} +0 -0
  88. /package/dist/paperless/{p-c74c4740.entry.js.map → p-815ece67.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{r as t,c as e,g as i,h as s,H as n}from"./p-DhGo7hbh.js";import{t as o}from"./p-DdQ-S2l7.js";import{f as a,g as r}from"./p-DiJj8rmO.js";import{f as h}from"./p-BCrdDF_Y.js";import{f as l}from"./p-B3sNjfzc.js";import{c}from"./p-CT54OXR2.js";import{d as u,a as f}from"./p-DOp5eUxu.js";import"./p-CBWjHURv.js";import"./p-ChV9xqsO.js";const d="*{box-sizing:border-box}.static{position:static!important}.fixed{position:fixed!important}.z-0{z-index:0!important}.my-16{margin-bottom:4rem!important;margin-top:4rem!important}.mb-8{margin-bottom:2rem!important}.flex{display:flex!important}.table{display:table!important}.hidden{display:none!important}.h-6{height:1.5rem!important}.w-6{width:1.5rem!important}.flex-1{flex:1 1 0%!important}.flex-shrink-0{flex-shrink:0!important}.resize{resize:both!important}.flex-col{flex-direction:column!important}.self-center{align-self:center!important}.rounded{border-radius:.25rem!important}.opacity-0{opacity:0!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}";const p=class{constructor(i){t(this,i);this.selectedRowsChange=e(this,"selectedRowsChange",3);this.rowClick=e(this,"rowClick",3);this.rowSelected=e(this,"rowSelected",3);this.rowDeselected=e(this,"rowDeselected",3);this.hasRendered=e(this,"hasRendered",3);this.quickFilter=e(this,"quickFilter",3);this.queryChange=e(this,"queryChange",3);this.filter=e(this,"filter",3);this.action=e(this,"action",3);this.pageChange=e(this,"pageChange",3);this.pageSizeChange=e(this,"pageSizeChange",3);this.export=e(this,"export",3);this.emptyStateActionClick=e(this,"emptyStateActionClick",3)}items;loading=false;headerLoading=false;footerLoading=false;amountOfLoadingRows=6;enableRowSelection=true;rowSelectionLimit;enableRowClick=true;selectedRows=[];enableFloatingMenu=true;floatingMenuAmountSelectedTemplate=t=>a((t===1?this._locales.floating_menu?.amount_selected:this._locales.floating_menu?.amount_selected_plural)?.replace("{{amount}}",t));selectedRowsChange;selectionKey;canSelectKey;rowClick;rowSelected;rowDeselected;hasRendered;enableHeader=true;quickFilters=[];activeQuickFilterIdentifier;enableSearch=true;query;enableFilter=true;enableFilterDesktop=true;selectedFiltersAmount;filterButtonTemplate;enableAction=false;actionButtonLoading=false;actionButtonEnabled=false;actionButtonIcon="pencil";actionButtonText;actionButtonTemplate;quickFilter;queryChange;filter;action;enableFooter=true;enablePaginationSize=true;enablePaginationPages=true;enableExport=true;page=1;total;pageChange;pageSize=u;pageSizeOptions=f;pageSizeChange;export;hideOnSinglePage=true;emptyStateHeader=()=>a(this._locales.empty_state?.no_filter.header);emptyStateContent=()=>a(this._locales.empty_state?.no_filter.content);emptyStateAction=()=>a(this._locales.empty_state?.no_filter.action);enableEmptyStateAction=true;emptyStateFilteredHeader=()=>a(this._locales.empty_state.filtered.header);emptyStateFilteredContent=()=>a(this._locales.empty_state.filtered.content);emptyStateActionClick;shadow=true;get _el(){return i(this)}_locales={};_columns=[];_items=[];_enableRowSelection=this.enableRowSelection;_rowSelectionLimit;_rowActionsFloatingAll=[];_rowActionsFloating=[];_rowActionsRow=[];_footerHidden=false;_ctrlDown=false;_hasCustomFilterSlot=false;_hasCustomActionsSlot=false;_floatingMenuShown=false;_resizeTimeout;componentWillLoad(){this._hasCustomFilterSlot=!!this._el.querySelector(':scope > [slot="custom-filter"]');this._hasCustomActionsSlot=!!this._el.querySelector(':scope > [slot="custom-actions"]');this._setRowSelectionData();this._setLocales();this._parseItems(this.items);this._generateColumns()}componentDidRender(){this.hasRendered.emit()}render(){return s(n,{key:"aff2178e8b10a013ad81a1531e0f8328d0a450f8",class:"z-0 flex flex-col"},s("p-table-container",{key:"964e4a949fbd872c56896182256297cfba9282e3"},this.enableHeader&&s("p-table-header",{key:"38dabb784a7bd800e5bda13ee20e2a39301d6101",class:"mb-8",quickFilters:this.quickFilters,activeQuickFilterIdentifier:this.activeQuickFilterIdentifier,onQuickFilter:({detail:t})=>this.quickFilter.emit(t),enableSearch:this.enableSearch,query:this.query,onQueryChange:({detail:t})=>this.queryChange.emit(t),enableFilter:this.enableFilter,enableFilterDesktop:this.enableFilterDesktop,selectedFiltersAmount:this.selectedFiltersAmount,filterButtonTemplate:this.filterButtonTemplate,onFilter:()=>this.filter.emit(),enableAction:this.enableAction,actionIcon:this.actionButtonIcon,actionText:this.actionButtonText,actionLoading:this.actionButtonLoading,canUseAction:this.actionButtonEnabled,actionButtonTemplate:this.actionButtonTemplate,onAction:()=>this.action.emit(),itemsSelectedAmount:this.selectedRows?.length,enableExport:this.enableExport,onExport:()=>this.export.emit(),loading:this.headerLoading},this._hasCustomFilterSlot&&s("slot",{key:"103f6b3de27b2701d1db6cc8893eb30e5be6b982",name:"custom-filter",slot:"custom-filter"}),this._hasCustomActionsSlot&&s("slot",{key:"12f0a5e6f9616366994a5b4e0723b2bd8de85597",name:"custom-actions",slot:"custom-actions"})),this._getHeader(),s("div",{key:"a611b876f701edfaf6edcc2ccb3e86190a017252",class:"flex flex-1 flex-col"},this._getRows()),this.enableFloatingMenu&&this._enableRowSelection?s("p-floating-menu-container",{usedInTable:true,class:h({hasFooter:this.enableFooter&&!this._footerHidden,active:!!this.selectedRows?.length,shown:this._floatingMenuShown}),amountSelectedTemplate:this.floatingMenuAmountSelectedTemplate,amount:this.selectedRows?.length,enableAmountSelected:!!this._rowActionsFloating?.length,onClose:()=>this._selectAllChange(null,false)},this._rowActionsFloating?.length&&this._rowActionsFloating.map((t=>s("p-floating-menu-item",{slot:"floating-menu-item",disabled:t.disabled,loading:t.loading,icon:t.icon,iconRotate:t.iconRotate,iconFlip:t.iconFlip,onClick:()=>!t.disabled&&!t.loading&&!!t.action&&t.type==="single"?t.action(this.selectedRows[0],false):t.action(this.selectedRows,true)},t.label)))):"",this.enableFooter&&s("p-table-footer",{key:"b9a6f34b4a447bcd60905d42db1583cb47806361",hideOnSinglePage:this.hideOnSinglePage,enablePaginationSize:this.enablePaginationSize,pageSize:this.pageSize,pageSizeOptions:this.pageSizeOptions,onPageSizeChange:({detail:t})=>this.pageSizeChange.emit(t),enablePaginationPages:this.enablePaginationPages,page:this.page,total:this.total,onPageChange:({detail:t})=>this.pageChange.emit(t),loading:this.footerLoading,onHiddenChange:({detail:t})=>this._footerHidden=t})))}async _setLocales(){this._locales=await r(this._el)}onTableDefinitionUpdated(){this._generateColumns()}keyDown({key:t}){if(t!=="Control"||this._ctrlDown===true){return}this._ctrlDown=true}keyUp({key:t}){if(t!=="Control"||this._ctrlDown===false){return}this._ctrlDown=false}visibilityChange(){if(document.visibilityState!=="hidden"||this._ctrlDown===false){return}this._ctrlDown=false}_parseItems(t){if(!t){this._items=[];return}if(Array.isArray(t)){this._items=t;return}this._items=JSON.parse(t)}_setRowSelectionData(){if(this._resizeTimeout){clearTimeout(this._resizeTimeout)}this._resizeTimeout=setTimeout((()=>{const t=l();const e=Array.from(this._el.querySelectorAll(":scope > p-table-row-action"));this._rowActionsRow=e.filter((t=>t.type==="both"||t.type==="single"));this._rowActionsFloatingAll=e.filter((e=>this.enableRowSelection&&(e.type==="both"||e.type==="multi")||t&&e.type==="single")).map((t=>{if(t.type==="single"){t.disabled=this.selectedRows?.length>1}return t}));let i=this.rowSelectionLimit;if(t&&this._rowActionsFloatingAll?.length&&(i!==undefined&&this.enableRowSelection||!this.enableRowSelection)){i=1}this._rowSelectionLimit=i;let s=this.enableRowSelection;if(t&&this._rowActionsFloatingAll?.length&&!s){s=true}this._enableRowSelection=s;if(this._floatingMenuShown){this._showFloatingMenu()}}),200)}_generateColumns(){const t=this._el.querySelectorAll("p-table-column");let e=Array.from(t);e=this._parseDefinitions(e);this._columns=e}_getHeader(){return s("p-table-row",{variant:"header"},this._columns.map(((t,e)=>s("p-table-cell",{definition:t,value:t.name,variant:"header",checkbox:e===0||t.hasCheckbox?this._getCheckbox(null,this.loading?"loading":"header"):null,index:e}))))}_getRows(){if(this.loading){return Array.from({length:this.amountOfLoadingRows},((t,e)=>s("p-table-row",{enableHover:this._enableRowSelection||this.enableRowClick},this._getLoadingColumns(e))))}if(!this._items.length){return this._getEmptyState()}return this._items.map(((t,e)=>s("p-table-row",{enableHover:this._enableRowSelection||this.enableRowClick,checked:this._selectionContains(e),onClick:t=>this._rowClick(t,e)},this._getRowColumns(t,e),this._getActions(t))))}_getActions(t){const e=this._rowActionsRow.filter((e=>e.showFunction?e.showFunction(t):true));if(e?.length&&!l()){return s("p-table-row-actions-container",{slot:"actions"},e.map((e=>s("p-tooltip",{strategy:"fixed",content:e.label},s("p-button",{"data-is-action":true,variant:"secondary",slot:"trigger",icon:e.icon,iconRotate:e.iconRotate,iconFlip:e.iconFlip,iconOnly:true,size:"sm",onClick:()=>typeof e.action==="function"&&e.action?.(t,false)})))))}return null}_getRowColumns(t,e){return this._columns.map(((i,n)=>s("p-table-cell",{definition:i,item:t,checkbox:n===0||i.hasCheckbox?this._getCheckbox(e):null,index:n,rowIndex:e})))}_getLoadingColumns(t){return this._columns.map(((e,i)=>s("p-table-cell",{definition:e,variant:"loading",checkbox:i===0||e.hasCheckbox?this._getCheckbox(t,"loading"):null,index:i,rowIndex:t})))}_getCheckbox(t,e="default"){if(!this._enableRowSelection||!this.selectionKey&&!this._rowActionsFloating?.length){return}if(e==="loading"){return s("p-loader",{variant:"ghost",class:"h-6 w-6 rounded"})}if(e==="header"){return s("p-checkbox",{class:c({"opacity-0":this._rowSelectionLimit!==undefined}),checked:this._selectionContainsAll(),indeterminate:this._selectionIndeterminate(),disabled:this._rowSelectionLimit!==undefined,onCheckedChange:t=>this._selectAllChange(t)})}const i=this._items[t];const n=this._selectionContains(t);return s("p-checkbox",{class:"flex-shrink-0",disabled:this.canSelectKey&&!i[this.canSelectKey]||this._rowSelectionLimit!==undefined&&!n&&this.selectedRows.length===this._rowSelectionLimit,checked:n,onCheckedChange:e=>this._checkboxChange(e,t)})}_getEmptyState(){if(this.query?.length||this.selectedFiltersAmount){return s("p-empty-state",{class:"my-16 self-center",illustration:"search",header:this.emptyStateFilteredHeader(),content:this.emptyStateFilteredContent()})}return s("p-empty-state",{class:"my-16 self-center",illustration:"table",header:this.emptyStateHeader(),content:this.emptyStateContent(),enableAction:this.enableEmptyStateAction,actionIcon:"plus",actionText:this.emptyStateAction()})}_selectAllChange(t,e){if(!this._enableRowSelection){return}const i=t?.detail??e??false;const s=e===undefined?i:e;if(s){const t=[];for(let e=0;e<this._items.length;e++){const i=this._items[e];if(this.canSelectKey&&!i[this.canSelectKey]){continue}if(this._selectionContains(e)){continue}t.push(i);this.rowSelected.emit(i);if(this._rowSelectionLimit!==undefined&&this.selectedRows.length+t.length===this._rowSelectionLimit){break}}this.selectedRows=[...this.selectedRows,...t];this.selectedRowsChange.emit(this.selectedRows);if(this.enableFloatingMenu&&!this._floatingMenuShown){this._showFloatingMenu()}return}for(let t=0;t<this.selectedRows.length;t++){const e=this.selectedRows[t];const i=this._items.find((i=>this._getSelectionValue(i,t)===this._getSelectionValue(e,t)));if(!i){continue}this.rowDeselected.emit(i)}this.selectedRows=[];this.selectedRowsChange.emit(this.selectedRows)}_checkboxChange({detail:t,target:e},i){if(!this._enableRowSelection){return}if(t&&this._rowSelectionLimit!==undefined&&this.selectedRows.length>=this._rowSelectionLimit){e.checked=false;return}const s=this._items[i];if(this.canSelectKey&&!s[this.canSelectKey]){e.checked=false;return}if(t){this.selectedRows=[...this.selectedRows,{...s,index:i}];this.selectedRowsChange.emit(this.selectedRows);this.rowSelected.emit(s);if(this.enableFloatingMenu&&!this._floatingMenuShown){this._showFloatingMenu()}return}const n=this._selectionContains(i,true);const o=[...this.selectedRows];o.splice(n,1);this.selectedRows=o;this.selectedRowsChange.emit(this.selectedRows);this.rowDeselected.emit(s)}_getSelectionValue(t,e){return this.selectionKey?t?.[this.selectionKey]||e:e}_selectionContains(t,e=false){const i=this.selectedRows.findIndex((e=>e.index===t));return!e?i>=0:i}_selectionContainsAll(){let t=true;if(!this._items?.length){return false}if(this._rowSelectionLimit!==undefined&&this.selectedRows.length===this._rowSelectionLimit){return true}for(let e=0;e<this._items?.length;e++){const i=this._selectionContains(e);if(!i){t=false;break}}return t}_selectionIndeterminate(){if(!this._items?.length||!this.selectedRows?.length){return false}if(this._rowSelectionLimit!==undefined&&this.selectedRows.length===this._rowSelectionLimit){return false}let t=0;for(let e=0;e<this._items?.length;e++){const i=this._selectionContains(e);if(i){t++}}return t>0&&t!==this._items.length}_rowClick(t,e){const i=t.target;if(i.tagName.toLowerCase()==="input"||i.type==="checkbox"){return}const s=this._findRow(t.target);const n=this._findRowAction(t.target);if(n){return}if(this.enableRowClick){const t=this._items[e];this.rowClick.emit({item:t,ctrlDown:this._ctrlDown});return}if(!this._enableRowSelection){return}const o=s?.querySelector('input[type="checkbox"]');if(!o){return}o.checked=!o.checked;this._checkboxChange(o,e)}_findRow(t){if(!t){return t}if(t?.tagName?.toLowerCase()==="p-table-row"){return t}return this._findRow(t?.parentElement)}_findRowAction(t){if(!t){return null}if(t.getAttribute("data-is-action")!==null&&t.getAttribute("data-is-action")!=="false"){return t}if(t?.tagName?.toLowerCase()==="p-table-row"){return null}return this._findRowAction(t?.parentElement)}_showFloatingMenu(){let t=this._rowActionsFloatingAll;if(this.rowSelectionLimit===1&&t.findIndex((t=>(t.type==="single"||t.type==="both")&&t.showFunction))>=0){t=t.filter((t=>t.type==="multi"||!t.showFunction||t.showFunction(this.selectedRows[0])))}this._rowActionsFloating=t;this._floatingMenuShown=true}_parseDefinitions(t){return t.map((t=>{t=this._parseDefinitionSizes(t);return t}))}_parseDefinitionSizes(t){const e=t;let i={default:"full"};if(typeof t.sizes==="string"&&!["auto","hidden","full"].includes(t.sizes)){t.sizes=JSON.parse(t.sizes)}for(const[t,s]of o.entries()){if(e.sizes==="auto"||e.sizes==="hidden"||e.sizes==="full"||typeof e.sizes==="number"){i[s]=e.sizes==="auto"?"full":e.sizes;continue}i[s]=e.sizes[s]??i[o[t-1]]}t.parsedSizes=i;return t}static get watchers(){return{items:["_parseItems"],enableRowSelection:["_setRowSelectionData"],rowSelectionLimit:["_setRowSelectionData"],selectedRows:["_setRowSelectionData"]}}};p.style=d;export{p as p_table};
2
- //# sourceMappingURL=p-c74c4740.entry.js.map
1
+ import{r as t,c as e,g as i,h as s,H as n}from"./p-DhGo7hbh.js";import{t as o}from"./p-DdQ-S2l7.js";import{f as a,g as r}from"./p-DiJj8rmO.js";import{f as h}from"./p-_CfQET1U.js";import{f as l}from"./p-B3sNjfzc.js";import{c}from"./p-CT54OXR2.js";import{d as u,a as f}from"./p-DOp5eUxu.js";import"./p-CBWjHURv.js";import"./p-ChV9xqsO.js";const d="*{box-sizing:border-box}.static{position:static!important}.fixed{position:fixed!important}.z-0{z-index:0!important}.my-16{margin-bottom:4rem!important;margin-top:4rem!important}.mb-8{margin-bottom:2rem!important}.flex{display:flex!important}.table{display:table!important}.hidden{display:none!important}.h-6{height:1.5rem!important}.w-6{width:1.5rem!important}.flex-1{flex:1 1 0%!important}.flex-shrink-0{flex-shrink:0!important}.resize{resize:both!important}.flex-col{flex-direction:column!important}.self-center{align-self:center!important}.rounded{border-radius:.25rem!important}.opacity-0{opacity:0!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}";const p=class{constructor(i){t(this,i);this.selectedRowsChange=e(this,"selectedRowsChange",3);this.rowClick=e(this,"rowClick",3);this.rowSelected=e(this,"rowSelected",3);this.rowDeselected=e(this,"rowDeselected",3);this.hasRendered=e(this,"hasRendered",3);this.quickFilter=e(this,"quickFilter",3);this.queryChange=e(this,"queryChange",3);this.filter=e(this,"filter",3);this.action=e(this,"action",3);this.pageChange=e(this,"pageChange",3);this.pageSizeChange=e(this,"pageSizeChange",3);this.export=e(this,"export",3);this.emptyStateActionClick=e(this,"emptyStateActionClick",3)}items;loading=false;headerLoading=false;footerLoading=false;amountOfLoadingRows=6;enableRowSelection=true;rowSelectionLimit;enableRowClick=true;selectedRows=[];enableFloatingMenu=true;floatingMenuAmountSelectedTemplate=t=>a((t===1?this._locales.floating_menu?.amount_selected:this._locales.floating_menu?.amount_selected_plural)?.replace("{{amount}}",t));selectedRowsChange;selectionKey;canSelectKey;rowClick;rowSelected;rowDeselected;hasRendered;enableHeader=true;quickFilters=[];activeQuickFilterIdentifier;enableSearch=true;query;enableFilter=true;enableFilterDesktop=true;selectedFiltersAmount;filterButtonTemplate;enableAction=false;actionButtonLoading=false;actionButtonEnabled=false;actionButtonIcon="pencil";actionButtonText;actionButtonTemplate;quickFilter;queryChange;filter;action;enableFooter=true;enablePaginationSize=true;enablePaginationPages=true;enableExport=true;page=1;total;pageChange;pageSize=u;pageSizeOptions=f;pageSizeChange;export;hideOnSinglePage=true;emptyStateHeader=()=>a(this._locales.empty_state?.no_filter.header);emptyStateContent=()=>a(this._locales.empty_state?.no_filter.content);emptyStateAction=()=>a(this._locales.empty_state?.no_filter.action);enableEmptyStateAction=true;emptyStateFilteredHeader=()=>a(this._locales.empty_state.filtered.header);emptyStateFilteredContent=()=>a(this._locales.empty_state.filtered.content);emptyStateActionClick;shadow=true;get _el(){return i(this)}_locales={};_columns=[];_items=[];_enableRowSelection=this.enableRowSelection;_rowSelectionLimit;_rowActionsFloatingAll=[];_rowActionsFloating=[];_rowActionsRow=[];_footerHidden=false;_ctrlDown=false;_hasCustomFilterSlot=false;_hasCustomActionsSlot=false;_floatingMenuShown=false;_resizeTimeout;componentWillLoad(){this._hasCustomFilterSlot=!!this._el.querySelector(':scope > [slot="custom-filter"]');this._hasCustomActionsSlot=!!this._el.querySelector(':scope > [slot="custom-actions"]');this._setRowSelectionData();this._setLocales();this._parseItems(this.items);this._generateColumns()}componentDidRender(){this.hasRendered.emit()}render(){return s(n,{key:"aff2178e8b10a013ad81a1531e0f8328d0a450f8",class:"z-0 flex flex-col"},s("p-table-container",{key:"964e4a949fbd872c56896182256297cfba9282e3"},this.enableHeader&&s("p-table-header",{key:"38dabb784a7bd800e5bda13ee20e2a39301d6101",class:"mb-8",quickFilters:this.quickFilters,activeQuickFilterIdentifier:this.activeQuickFilterIdentifier,onQuickFilter:({detail:t})=>this.quickFilter.emit(t),enableSearch:this.enableSearch,query:this.query,onQueryChange:({detail:t})=>this.queryChange.emit(t),enableFilter:this.enableFilter,enableFilterDesktop:this.enableFilterDesktop,selectedFiltersAmount:this.selectedFiltersAmount,filterButtonTemplate:this.filterButtonTemplate,onFilter:()=>this.filter.emit(),enableAction:this.enableAction,actionIcon:this.actionButtonIcon,actionText:this.actionButtonText,actionLoading:this.actionButtonLoading,canUseAction:this.actionButtonEnabled,actionButtonTemplate:this.actionButtonTemplate,onAction:()=>this.action.emit(),itemsSelectedAmount:this.selectedRows?.length,enableExport:this.enableExport,onExport:()=>this.export.emit(),loading:this.headerLoading},this._hasCustomFilterSlot&&s("slot",{key:"103f6b3de27b2701d1db6cc8893eb30e5be6b982",name:"custom-filter",slot:"custom-filter"}),this._hasCustomActionsSlot&&s("slot",{key:"12f0a5e6f9616366994a5b4e0723b2bd8de85597",name:"custom-actions",slot:"custom-actions"})),this._getHeader(),s("div",{key:"a611b876f701edfaf6edcc2ccb3e86190a017252",class:"flex flex-1 flex-col"},this._getRows()),this.enableFloatingMenu&&this._enableRowSelection?s("p-floating-menu-container",{usedInTable:true,class:h({hasFooter:this.enableFooter&&!this._footerHidden,active:!!this.selectedRows?.length,shown:this._floatingMenuShown}),amountSelectedTemplate:this.floatingMenuAmountSelectedTemplate,amount:this.selectedRows?.length,enableAmountSelected:!!this._rowActionsFloating?.length,onClose:()=>this._selectAllChange(null,false)},this._rowActionsFloating?.length&&this._rowActionsFloating.map((t=>s("p-floating-menu-item",{slot:"floating-menu-item",disabled:t.disabled,loading:t.loading,icon:t.icon,iconRotate:t.iconRotate,iconFlip:t.iconFlip,onClick:()=>!t.disabled&&!t.loading&&!!t.action&&t.type==="single"?t.action(this.selectedRows[0],false):t.action(this.selectedRows,true)},t.label)))):"",this.enableFooter&&s("p-table-footer",{key:"b9a6f34b4a447bcd60905d42db1583cb47806361",hideOnSinglePage:this.hideOnSinglePage,enablePaginationSize:this.enablePaginationSize,pageSize:this.pageSize,pageSizeOptions:this.pageSizeOptions,onPageSizeChange:({detail:t})=>this.pageSizeChange.emit(t),enablePaginationPages:this.enablePaginationPages,page:this.page,total:this.total,onPageChange:({detail:t})=>this.pageChange.emit(t),loading:this.footerLoading,onHiddenChange:({detail:t})=>this._footerHidden=t})))}async _setLocales(){this._locales=await r(this._el)}onTableDefinitionUpdated(){this._generateColumns()}keyDown({key:t}){if(t!=="Control"||this._ctrlDown===true){return}this._ctrlDown=true}keyUp({key:t}){if(t!=="Control"||this._ctrlDown===false){return}this._ctrlDown=false}visibilityChange(){if(document.visibilityState!=="hidden"||this._ctrlDown===false){return}this._ctrlDown=false}_parseItems(t){if(!t){this._items=[];return}if(Array.isArray(t)){this._items=t;return}this._items=JSON.parse(t)}_setRowSelectionData(){if(this._resizeTimeout){clearTimeout(this._resizeTimeout)}this._resizeTimeout=setTimeout((()=>{const t=l();const e=Array.from(this._el.querySelectorAll(":scope > p-table-row-action"));this._rowActionsRow=e.filter((t=>t.type==="both"||t.type==="single"));this._rowActionsFloatingAll=e.filter((e=>this.enableRowSelection&&(e.type==="both"||e.type==="multi")||t&&e.type==="single")).map((t=>{if(t.type==="single"){t.disabled=this.selectedRows?.length>1}return t}));let i=this.rowSelectionLimit;if(t&&this._rowActionsFloatingAll?.length&&(i!==undefined&&this.enableRowSelection||!this.enableRowSelection)){i=1}this._rowSelectionLimit=i;let s=this.enableRowSelection;if(t&&this._rowActionsFloatingAll?.length&&!s){s=true}this._enableRowSelection=s;if(this._floatingMenuShown){this._showFloatingMenu()}}),200)}_generateColumns(){const t=this._el.querySelectorAll("p-table-column");let e=Array.from(t);e=this._parseDefinitions(e);this._columns=e}_getHeader(){return s("p-table-row",{variant:"header"},this._columns.map(((t,e)=>s("p-table-cell",{definition:t,value:t.name,variant:"header",checkbox:e===0||t.hasCheckbox?this._getCheckbox(null,this.loading?"loading":"header"):null,index:e}))))}_getRows(){if(this.loading){return Array.from({length:this.amountOfLoadingRows},((t,e)=>s("p-table-row",{enableHover:this._enableRowSelection||this.enableRowClick},this._getLoadingColumns(e))))}if(!this._items.length){return this._getEmptyState()}return this._items.map(((t,e)=>s("p-table-row",{enableHover:this._enableRowSelection||this.enableRowClick,checked:this._selectionContains(e),onClick:t=>this._rowClick(t,e)},this._getRowColumns(t,e),this._getActions(t))))}_getActions(t){const e=this._rowActionsRow.filter((e=>e.showFunction?e.showFunction(t):true));if(e?.length&&!l()){return s("p-table-row-actions-container",{slot:"actions"},e.map((e=>s("p-tooltip",{strategy:"fixed",content:e.label},s("p-button",{"data-is-action":true,variant:"secondary",slot:"trigger",icon:e.icon,iconRotate:e.iconRotate,iconFlip:e.iconFlip,iconOnly:true,size:"sm",onClick:()=>typeof e.action==="function"&&e.action?.(t,false)})))))}return null}_getRowColumns(t,e){return this._columns.map(((i,n)=>s("p-table-cell",{definition:i,item:t,checkbox:n===0||i.hasCheckbox?this._getCheckbox(e):null,index:n,rowIndex:e})))}_getLoadingColumns(t){return this._columns.map(((e,i)=>s("p-table-cell",{definition:e,variant:"loading",checkbox:i===0||e.hasCheckbox?this._getCheckbox(t,"loading"):null,index:i,rowIndex:t})))}_getCheckbox(t,e="default"){if(!this._enableRowSelection||!this.selectionKey&&!this._rowActionsFloating?.length){return}if(e==="loading"){return s("p-loader",{variant:"ghost",class:"h-6 w-6 rounded"})}if(e==="header"){return s("p-checkbox",{class:c({"opacity-0":this._rowSelectionLimit!==undefined}),checked:this._selectionContainsAll(),indeterminate:this._selectionIndeterminate(),disabled:this._rowSelectionLimit!==undefined,onCheckedChange:t=>this._selectAllChange(t)})}const i=this._items[t];const n=this._selectionContains(t);return s("p-checkbox",{class:"flex-shrink-0",disabled:this.canSelectKey&&!i[this.canSelectKey]||this._rowSelectionLimit!==undefined&&!n&&this.selectedRows.length===this._rowSelectionLimit,checked:n,onCheckedChange:e=>this._checkboxChange(e,t)})}_getEmptyState(){if(this.query?.length||this.selectedFiltersAmount){return s("p-empty-state",{class:"my-16 self-center",illustration:"search",header:this.emptyStateFilteredHeader(),content:this.emptyStateFilteredContent()})}return s("p-empty-state",{class:"my-16 self-center",illustration:"table",header:this.emptyStateHeader(),content:this.emptyStateContent(),enableAction:this.enableEmptyStateAction,actionIcon:"plus",actionText:this.emptyStateAction()})}_selectAllChange(t,e){if(!this._enableRowSelection){return}const i=t?.detail??e??false;const s=e===undefined?i:e;if(s){const t=[];for(let e=0;e<this._items.length;e++){const i=this._items[e];if(this.canSelectKey&&!i[this.canSelectKey]){continue}if(this._selectionContains(e)){continue}t.push(i);this.rowSelected.emit(i);if(this._rowSelectionLimit!==undefined&&this.selectedRows.length+t.length===this._rowSelectionLimit){break}}this.selectedRows=[...this.selectedRows,...t];this.selectedRowsChange.emit(this.selectedRows);if(this.enableFloatingMenu&&!this._floatingMenuShown){this._showFloatingMenu()}return}for(let t=0;t<this.selectedRows.length;t++){const e=this.selectedRows[t];const i=this._items.find((i=>this._getSelectionValue(i,t)===this._getSelectionValue(e,t)));if(!i){continue}this.rowDeselected.emit(i)}this.selectedRows=[];this.selectedRowsChange.emit(this.selectedRows)}_checkboxChange({detail:t,target:e},i){if(!this._enableRowSelection){return}if(t&&this._rowSelectionLimit!==undefined&&this.selectedRows.length>=this._rowSelectionLimit){e.checked=false;return}const s=this._items[i];if(this.canSelectKey&&!s[this.canSelectKey]){e.checked=false;return}if(t){this.selectedRows=[...this.selectedRows,{...s,index:i}];this.selectedRowsChange.emit(this.selectedRows);this.rowSelected.emit(s);if(this.enableFloatingMenu&&!this._floatingMenuShown){this._showFloatingMenu()}return}const n=this._selectionContains(i,true);const o=[...this.selectedRows];o.splice(n,1);this.selectedRows=o;this.selectedRowsChange.emit(this.selectedRows);this.rowDeselected.emit(s)}_getSelectionValue(t,e){return this.selectionKey?t?.[this.selectionKey]||e:e}_selectionContains(t,e=false){const i=this.selectedRows.findIndex((e=>e.index===t));return!e?i>=0:i}_selectionContainsAll(){let t=true;if(!this._items?.length){return false}if(this._rowSelectionLimit!==undefined&&this.selectedRows.length===this._rowSelectionLimit){return true}for(let e=0;e<this._items?.length;e++){const i=this._selectionContains(e);if(!i){t=false;break}}return t}_selectionIndeterminate(){if(!this._items?.length||!this.selectedRows?.length){return false}if(this._rowSelectionLimit!==undefined&&this.selectedRows.length===this._rowSelectionLimit){return false}let t=0;for(let e=0;e<this._items?.length;e++){const i=this._selectionContains(e);if(i){t++}}return t>0&&t!==this._items.length}_rowClick(t,e){const i=t.target;if(i.tagName.toLowerCase()==="input"||i.type==="checkbox"){return}const s=this._findRow(t.target);const n=this._findRowAction(t.target);if(n){return}if(this.enableRowClick){const t=this._items[e];this.rowClick.emit({item:t,ctrlDown:this._ctrlDown});return}if(!this._enableRowSelection){return}const o=s?.querySelector('input[type="checkbox"]');if(!o){return}o.checked=!o.checked;this._checkboxChange(o,e)}_findRow(t){if(!t){return t}if(t?.tagName?.toLowerCase()==="p-table-row"){return t}return this._findRow(t?.parentElement)}_findRowAction(t){if(!t){return null}if(t.getAttribute("data-is-action")!==null&&t.getAttribute("data-is-action")!=="false"){return t}if(t?.tagName?.toLowerCase()==="p-table-row"){return null}return this._findRowAction(t?.parentElement)}_showFloatingMenu(){let t=this._rowActionsFloatingAll;if(this.rowSelectionLimit===1&&t.findIndex((t=>(t.type==="single"||t.type==="both")&&t.showFunction))>=0){t=t.filter((t=>t.type==="multi"||!t.showFunction||t.showFunction(this.selectedRows[0])))}this._rowActionsFloating=t;this._floatingMenuShown=true}_parseDefinitions(t){return t.map((t=>{t=this._parseDefinitionSizes(t);return t}))}_parseDefinitionSizes(t){const e=t;let i={default:"full"};if(typeof t.sizes==="string"&&!["auto","hidden","full"].includes(t.sizes)){t.sizes=JSON.parse(t.sizes)}for(const[t,s]of o.entries()){if(e.sizes==="auto"||e.sizes==="hidden"||e.sizes==="full"||typeof e.sizes==="number"){i[s]=e.sizes==="auto"?"full":e.sizes;continue}i[s]=e.sizes[s]??i[o[t-1]]}t.parsedSizes=i;return t}static get watchers(){return{items:["_parseItems"],enableRowSelection:["_setRowSelectionData"],rowSelectionLimit:["_setRowSelectionData"],selectedRows:["_setRowSelectionData"]}}};p.style=d;export{p as p_table};
2
+ //# sourceMappingURL=p-815ece67.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{c as e}from"./p-CBWjHURv.js";function t(e,t){return t in e}const n=(e,t)=>{const n=e?i(e,t):{};return{flex:true,"flex-shrink-0":true,"items-center":true,"gap-4":true,"justify-start":!e?.align||e?.align==="start","justify-center":e?.align==="center","justify-end":e?.align==="end","font-semibold":t!=="header"&&e?.variant==="subject","text-black-teal-400":t==="header","text-black-teal-300":t!=="header"&&e?.variant!=="subject"&&e?.variant!=="highlight","text-black-teal":t!=="header"&&(e?.variant==="subject"||e?.variant==="highlight"),...n}};const i=({sizes:e},n)=>{if(e==="auto"||!e){return{"w-auto":true}}if(e==="hidden"){return{hidden:true}}if(typeof e==="object"){e=e;const i={};let r;for(let u in e){if(!t(e,u)){continue}if(u==="default"){if(e.default==="hidden"){i["hidden"]=true;r=u;continue}i[`w-${e.default}/12`]=true;r=u;continue}const a=e[u];const o=r?e[r]:null;if(a!=="hidden"&&o&&o==="hidden"&&n!=="actions"){i[`${u}:flex`]=true}if(a==="hidden"&&n!=="actions"){i[`${u}:hidden`]=true;r=u;continue}if(a===12||a==="full"){i[`${u}:w-full`]=true}i[`${u}:w-${a}/12`]=true;r=u}return i}if(e===12||e==="full"){return{"w-full":true}}return{[`w-${e}/12`]:true}};const r=e(["sticky self-center"],{variants:{hasFooter:{true:"mt-4 -mb-5 bottom-11 z-[3]",false:"my-4 bottom-0"},active:{false:"pointer-events-none animate-floating-menu-container-out",true:"animate-floating-menu-container-in"},shown:{false:"hidden",true:"inline-block"}}});export{i as a,r as f,n as g,t as i};
2
+ //# sourceMappingURL=p-_CfQET1U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-_CfQET1U.js","sources":["src/types/table.ts","src/utils/table-helpers.ts"],"sourcesContent":["export type QuickFilterTextFunction = () => string;\n\nexport interface QuickFilter {\n\tidentifier: string;\n\ttext: string | QuickFilterTextFunction;\n\tcount?: number;\n\tdefault?: boolean;\n}\n\nexport interface RowClickEvent {\n\titem: any;\n\tctrlDown: boolean;\n}\n\nexport interface TableDefinitionData {\n\tvalue: any;\n\titem: any;\n\tindex: number;\n\trowIndex: number;\n}\n\nexport type TableDefinitionTemplateFunc = (data: TableDefinitionData) => any;\n\nexport interface TableColumnSizes {\n\tdefault: number | 'hidden' | 'full';\n\ttablet?: number | 'hidden' | 'full';\n\t'desktop-xs'?: number | 'hidden' | 'full';\n\t'desktop-sm'?: number | 'hidden' | 'full';\n\tdesktop?: number | 'hidden' | 'full';\n\t'desktop-lg'?: number | 'hidden' | 'full';\n\t'desktop-xl'?: number | 'hidden' | 'full';\n}\n\nexport type TableColumnSizesKey =\n\t| 'default'\n\t| 'tablet'\n\t| 'desktop-xs'\n\t| 'desktop-sm'\n\t| 'desktop'\n\t| 'desktop-lg'\n\t| 'desktop-xl';\n\nexport function isTableColumnSizesKey(\n\tx: TableColumnSizes,\n\tk: PropertyKey\n): k is keyof TableColumnSizes {\n\treturn k in x;\n}\n","import { cva } from 'class-variance-authority';\nimport { TableColumn } from '../components/helpers/table/column/table-column.component';\nimport {\n\tisTableColumnSizesKey,\n\tTableColumnSizes,\n\tTableColumnSizesKey,\n} from '../types';\n\nexport const getTableCellColumnClasses = (\n\tdefinition: any | TableColumn,\n\tvariant: 'default' | 'header' | 'loading'\n) => {\n\tconst sizes = definition ? getTableCellSizes(definition, variant) : {};\n\n\treturn {\n\t\tflex: true,\n\t\t'flex-shrink-0': true,\n\t\t'items-center': true,\n\t\t'gap-4': true,\n\t\t'justify-start': !definition?.align || definition?.align === 'start',\n\t\t'justify-center': definition?.align === 'center',\n\t\t'justify-end': definition?.align === 'end',\n\t\t'font-semibold': variant !== 'header' && definition?.variant === 'subject',\n\t\t'text-black-teal-400': variant === 'header',\n\t\t'text-black-teal-300':\n\t\t\tvariant !== 'header' &&\n\t\t\tdefinition?.variant !== 'subject' &&\n\t\t\tdefinition?.variant !== 'highlight',\n\t\t'text-black-teal':\n\t\t\tvariant !== 'header' &&\n\t\t\t(definition?.variant === 'subject' ||\n\t\t\t\tdefinition?.variant === 'highlight'),\n\t\t...sizes,\n\t};\n};\n\nexport const getTableCellSizes = (\n\t{\n\t\tsizes,\n\t}: {\n\t\tsizes: 'auto' | 'hidden' | 'full' | number | TableColumnSizes;\n\t} /* Table Definition */,\n\tvariant: 'default' | 'header' | 'loading' | 'actions'\n) => {\n\tif (sizes === 'auto' || !sizes) {\n\t\treturn {\n\t\t\t'w-auto': true,\n\t\t};\n\t}\n\n\tif (sizes === 'hidden') {\n\t\treturn {\n\t\t\thidden: true,\n\t\t};\n\t}\n\n\tif (typeof sizes === 'object') {\n\t\tsizes = sizes as TableColumnSizes;\n\t\tconst classes: any = {};\n\t\tlet previousSize: TableColumnSizesKey | undefined;\n\n\t\tfor (let size in sizes) {\n\t\t\tif (!isTableColumnSizesKey(sizes, size)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (size === 'default') {\n\t\t\t\tif (sizes.default === 'hidden') {\n\t\t\t\t\tclasses['hidden'] = true;\n\t\t\t\t\tpreviousSize = size;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tclasses[`w-${sizes.default}/12`] = true;\n\t\t\t\tpreviousSize = size;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst currentValue = sizes[size];\n\t\t\tconst previousValue = previousSize ? sizes[previousSize] : null;\n\t\t\tif (\n\t\t\t\tcurrentValue !== 'hidden' &&\n\t\t\t\tpreviousValue &&\n\t\t\t\tpreviousValue === 'hidden' &&\n\t\t\t\tvariant !== 'actions'\n\t\t\t) {\n\t\t\t\tclasses[`${size}:flex`] = true;\n\t\t\t}\n\n\t\t\tif (currentValue === 'hidden' && variant !== 'actions') {\n\t\t\t\tclasses[`${size}:hidden`] = true;\n\t\t\t\tpreviousSize = size;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (currentValue === 12 || currentValue === 'full') {\n\t\t\t\tclasses[`${size}:w-full`] = true;\n\t\t\t}\n\n\t\t\tclasses[`${size}:w-${currentValue}/12`] = true;\n\t\t\tpreviousSize = size;\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tif (sizes === 12 || sizes === 'full') {\n\t\treturn {\n\t\t\t'w-full': true,\n\t\t};\n\t}\n\n\t// is a number.\n\treturn {\n\t\t[`w-${sizes}/12`]: true,\n\t};\n};\n\nexport const floatingMenuContainerClass = cva(['sticky self-center'], {\n\tvariants: {\n\t\thasFooter: {\n\t\t\ttrue: 'mt-4 -mb-5 bottom-11 z-[3]',\n\t\t\tfalse: 'my-4 bottom-0',\n\t\t},\n\t\tactive: {\n\t\t\tfalse: 'pointer-events-none animate-floating-menu-container-out',\n\t\t\ttrue: 'animate-floating-menu-container-in',\n\t\t},\n\t\tshown: {\n\t\t\tfalse: 'hidden',\n\t\t\ttrue: 'inline-block',\n\t\t},\n\t},\n});\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as t,c as e,g as i,h as s}from"./p-DhGo7hbh.js";import{a as r}from"./p-BFSNj6hu.js";import{c as a}from"./p-CBWjHURv.js";import"./p-ChV9xqsO.js";const n="*{box-sizing:border-box}.pointer-events-none{pointer-events:none!important}.pointer-events-auto{pointer-events:auto!important}.static{position:static!important}.absolute{position:absolute!important}.relative{position:relative!important}.sticky{position:sticky!important}.top-0{top:0!important}.mb-3{margin-bottom:.75rem!important}.block{display:block!important}.flex{display:flex!important}.hidden{display:none!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.h-\\[1\\.625rem\\]{height:1.625rem!important}.h-full{height:100%!important}.w-6{width:1.5rem!important}.w-full{width:100%!important}.min-w-0{min-width:0!important}.flex-1{flex:1 1 0%!important}.cursor-pointer{cursor:pointer!important}.items-center{align-items:center!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.overflow-hidden{overflow:hidden!important}.text-ellipsis{text-overflow:ellipsis!important}.whitespace-nowrap{white-space:nowrap!important}.rounded{border-radius:.25rem!important}.rounded-lg{border-radius:.5rem!important}.bg-supportive-lilac-100{--tw-bg-opacity:1!important;background-color:rgb(246 239 255/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.text-center{text-align:center!important}.text-start{text-align:start!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-semibold{font-weight:600!important}.text-black-teal-100{--tw-text-opacity:1!important;color:rgb(205 212 211/var(--tw-text-opacity,1))!important}.text-black-teal-400{--tw-text-opacity:1!important;color:rgb(53 85 80/var(--tw-text-opacity,1))!important}.text-supportive-lilac{--tw-text-opacity:1!important;color:rgb(209 174 255/var(--tw-text-opacity,1))!important}.text-teal-800{--tw-text-opacity:1!important;color:rgb(2 102 92/var(--tw-text-opacity,1))!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:85.375rem){.container{max-width:85.375rem}}@media (min-width:90rem){.container{max-width:90rem}}@media (min-width:96rem){.container{max-width:96rem}}@media (min-width:105rem){.container{max-width:105rem}}@media (min-width:120rem){.container{max-width:120rem}}@media (min-width:160rem){.container{max-width:160rem}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.group\\/item:hover .group-hover\\/item\\:text-supportive-lilac-800{--tw-text-opacity:1!important;color:rgb(189 140 255/var(--tw-text-opacity,1))!important}";const o=a(["flex items-center gap-2","flex-1 min-w-0 h-full","pointer-events-none overflow-hidden"]);const h=a(["item group/item","pointer-events-auto cursor-pointer","flex h-[1.625rem] items-center gap-2","h-[1.625rem] px-2","text-sm font-semibold whitespace-nowrap","rounded-lg","bg-supportive-lilac-100"]);const l=a("block w-full overflow-hidden text-ellipsis whitespace-nowrap text-start",{variants:{variant:{placeholder:"text-black-teal-400",default:null}}});const m=class{constructor(i){t(this,i);this.queryChange=e(this,"queryChange",3);this.valueChange=e(this,"valueChange",3);this.selectAllChange=e(this,"selectAllChange",3);this.dropdownShown=e(this,"dropdownShown",3);this.add=e(this,"add",3);if(i.$hostElement$["s-ei"]){this._internals=i.$hostElement$["s-ei"]}else{this._internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this._internals}}items;multi;usePortal=false;strategy="absolute";icon;query;placeholder;autocompletePlaceholder="Search...";value;displayKey="text";dropdownDisplayKey;selectionDisplayKey;valueKey;avatarKey;iconKey;showIconOnSelectedItem;classKey="class";applyClassOnSelectedItem;avatarLettersKey;identifierKey;queryKey;autoSelectFirst=true;showChevron=true;maxDisplayedItems=10;enableAutocomplete=true;asyncFilter=false;loading=false;enableSelectAll=false;selectAllText="Select all";selectAllIcon;queryChange;valueChange;selectAllChange;dropdownShown;size="base";prefix;label;helper;required=true;error;disabled=false;showAddItem=false;addItemText="Add item";add;emptyStateText="No items available";get _el(){return i(this)}_showDropdown=false;_selectedItem=null;_allSelected=false;_amountHidden=0;_internals;_inputRef;autocompleteInputRef;_multiContainerRef;_resizeObserver;_resizeDebounceTimer;_checkSelectedItemsTimeout;get _items(){return this._getParsedItems()}get _displayValue(){const t=s("div",{class:l({variant:"placeholder"})},this.placeholder);if(!this._selectedItem){return t}if(this.multi){if(this._selectedItem?.length===0){return t}return s("div",{class:o(),ref:t=>this._multiContainerRef=t},this._selectedItem.map((t=>s("div",{class:h(),onClick:()=>this._selectValue(t)},t[this.selectionDisplayKey??this.displayKey],s("p-icon",{class:"text-xs text-supportive-lilac group-hover/item:text-supportive-lilac-800",variant:"negative"})))),s("div",{class:"extra pointer-events-none hidden text-sm text-black-teal-100"},"+",this._amountHidden))}return this._getDisplay(this._selectedItem,true)}get _identifierKey(){return this.identifierKey??this.valueKey??"value"}formResetCallback(){this._selectValue(null)}formDisabledCallback(t){if(!this._internals.form){return}this.disabled=t}componentDidLoad(){if(!this.valueKey&&!this.identifierKey){throw new Error("You must provide a valueKey or identifierKey")}if(this.multi){this._setMultiContainerMaxWidth();this._resizeObserver=new ResizeObserver((()=>{if(this._resizeDebounceTimer){clearTimeout(this._resizeDebounceTimer);this._resizeDebounceTimer=null}this._resizeDebounceTimer=setTimeout((()=>{this._setMultiContainerMaxWidth();this._setCheckSelectedItemsTimeout()}),200)}));this._resizeObserver.observe(this._el)}if(this.value){this._valueChange();return}this.itemChanges()}componentDidRender(){if(this.multi){this._setMultiContainerMaxWidth()}}disconnectedCallback(){if(this.multi){this._resizeObserver.disconnect()}}render(){let t=this.icon;if(this._selectedItem&&!this.avatarKey&&!!this.iconKey&&this._selectedItem?.[this.iconKey]&&!this.showIconOnSelectedItem){t=this._selectedItem[this.iconKey]}if(this.avatarKey&&this._selectedItem?.[this.avatarKey]){t=null}if(this.error?.length){t="warning"}return s("p-dropdown",{key:"1d9a6331dd586fbaae253835ed53707dc4de4b8d",disableTriggerClick:true,calculateWidth:true,insideClick:true,scrollable:this.enableAutocomplete?"large":true,show:this._showDropdown,onIsOpen:t=>this._onDropdownOpen(t),usePortal:this.usePortal,strategy:this.strategy},s("p-field-container",{key:"80f65e4b733f4586e205e3812064dd53371c5c82",slot:"trigger",variant:"write",prefix:this.prefix,label:this.label,helper:this.helper,required:this.required,error:this.error,forceShowTooltip:!!this.error?.length&&!this._showDropdown},s("p-button",{key:"9fe31f3469128492ee3cf7cccd4f254b91a023de",class:"w-full",slot:"content",variant:"secondary",size:this.size,chevron:this.showChevron?this._showDropdown?"up":"down":false,disabled:this.disabled,active:this._showDropdown,error:!!this.error?.length,icon:t,onClick:t=>this._onClick(t)},s("div",{key:"7ae2af505698b7fd160e2df3c689e6a0e0f110a3",class:"relative min-w-0 flex-1",ref:t=>this._inputRef=t},this._displayValue))),this.loading?this._getLoadingItems():this._getItems(),this.showAddItem&&this._getAddItem())}documentClickHandler(t){if(!this._showDropdown||r(t,this._el)){return}this._showDropdown=false}_valueChange(){setTimeout((()=>{this._preselectItem();this._setCheckSelectedItemsTimeout()}))}itemChanges(){setTimeout((()=>this._preselectItem()))}_showDropdownChanges(){this.dropdownShown.emit({value:this._showDropdown,query:this.query})}multiChanges(){if(this._selectedItem&&!Array.isArray(this._selectedItem)){this._selectedItem=[]}}_preselectItem(){let t=typeof this.value==="string"&&this.multi?JSON.parse(this.value):this.value;if(this.multi){if(!Array.isArray(t)){this.value=[];this.valueChange.emit(this.value);return}this.value=t;if(!t.length){this._selectedItem=[];return}this._selectedItem=!!this.valueKey&&this.valueKey!=="false"?this._items.filter((e=>t.includes(e?.[this.valueKey]))):[...t];return}if(!this._selectedItem&&!t&&this.autoSelectFirst){t=this._items[0]}const e=typeof t==="object"&&t!==null?t[this._identifierKey]:t;const i=typeof e==="string"||typeof e==="number"?e:JSON.stringify(e);const s=this._selectedItem?this._selectedItem?.[this._identifierKey]:null;const r=typeof s==="string"||typeof s==="number"?s:JSON.stringify(s);if(this._selectedItem&&r===i){return}if(!this._items?.length&&t){this._selectValue(t,false);return}const a=this._getParsedItems(false);const n=a.find((t=>{const e=t?.[this._identifierKey];const s=typeof e==="string"||typeof e==="number"?e:JSON.stringify(e);return s===i}));this._selectValue(!!n?n:t,false)}_selectValue(t,e=true){let i=!!this.valueKey&&this.valueKey!=="false"&&t!==null?t?.[this.valueKey]:t;if(this.multi){if(!this._selectedItem||!Array.isArray(this._selectedItem)){this._selectedItem=[]}if(!this.value||!Array.isArray(this.value)){this.value=[]}const e=[...this._selectedItem];const s=[...this.value];const r=e.findIndex((e=>e[this._identifierKey]===t[this._identifierKey]));if(r===-1){e.push(t);s.push(i)}else{e.splice(r,1);s.splice(r,1)}this._selectedItem=e;this.value=s;this.valueChange.emit(s);return}this._selectedItem=t;this.value=i;this.valueChange.emit(i);this._onBlur(e)}_onClick(t){const e=t?.composedPath();for(const t of e){if(t.nodeName.toLowerCase()==="p-button"){break}if(t.classList.contains("item")){return}}this._showDropdown=!this._showDropdown}_onBlur(t=false){if(this.enableAutocomplete&&!t){return}this._showDropdown=false}_onAutoComplete(t){if(!this.enableAutocomplete){return}this._showDropdown=true;this.query=t.detail;this.queryChange.emit(t.detail)}_checkvalue(t,e){return e?.[t]?.toString()?.toLowerCase().indexOf(this.query?.toLowerCase())>=0}_getItems(){let t=this._items.map((t=>s("p-dropdown-menu-item",{useContainer:false,onClick:()=>this._selectValue(t),active:this.multi&&!!this._selectedItem&&Array.isArray(this._selectedItem)?this._selectedItem.findIndex((e=>e[this._identifierKey]===t[this._identifierKey]))>=0:t[this._identifierKey]===this._selectedItem?.[this._identifierKey],checkbox:this.multi?true:false,slot:"items"},this._getDisplay(t))));if(!this._items.length){t=[s("p",{class:"w-full p-2 text-center text-sm text-black-teal-400",slot:"items"},this.emptyStateText)]}if(this.enableSelectAll&&this._items.length){t.unshift(s("p-dropdown-menu-item",{slot:"items",useContainer:false,checkbox:true,onClick:()=>this._selectAllChange(),active:this._allSelected},this.selectAllIcon?.length?s("span",{class:"flex items-center gap-2"},s("div",{class:"flex w-6 justify-center text-lg"},s("p-icon",{variant:this.selectAllIcon}))," ",this.selectAllText):this.selectAllText))}if(this.enableAutocomplete){t.unshift(this._getAutoCompleteItem())}return t}_getAddItem(){return s("p-dropdown-menu-item",{onClick:()=>this.add.emit(),useContainer:false,slot:"items"},s("span",{class:"flex items-center gap-1 font-semibold text-teal-800"},this.addItemText,s("p-icon",{variant:"plus"})))}_getLoadingItems(){const t=[0,0,0].map((()=>s("p-dropdown-menu-item",{enableHover:false,slot:"items"},s("p-loader",{variant:"ghost",class:"h-6 w-full rounded"}))));if(this.enableAutocomplete){t.unshift(this._getAutoCompleteItem())}return t}_getAutoCompleteItem(){return s("div",{class:"sticky top-0 mb-3 h-8",slot:"items"},s("p-field",{class:"block",placeholder:this.autocompletePlaceholder,onValueChange:t=>this._onAutoComplete(t),onInputRefChange:t=>this.autocompleteInputRef=t.detail,value:this.query}))}_setMultiContainerMaxWidth(){if(!this._inputRef||!this._multiContainerRef){return}const t=this._inputRef.clientWidth-16;this._multiContainerRef.style.maxWidth=`${t>=16?t:16}px`}_setCheckSelectedItemsTimeout(){if(this._checkSelectedItemsTimeout){clearTimeout(this._checkSelectedItemsTimeout)}this._checkSelectedItemsTimeout=setTimeout((()=>this._checkSelectedItems()),50)}_checkSelectedItems(){if(!this._multiContainerRef){return}const t=this._multiContainerRef.getBoundingClientRect();const e=this._multiContainerRef.querySelectorAll(".item");let i=0;for(const s of e){s.classList.remove("hidden");s.classList.add("flex");const e=s.getBoundingClientRect();if(e.right>t.right){s.classList.remove("flex");s.classList.add("hidden");i++;continue}}this._amountHidden=i;const s=this._multiContainerRef.querySelector(".extra");if(!s){return}if(!s.classList.contains("hidden")){s.classList.add("hidden")}if(i>0){s.classList.remove("hidden")}}_onDropdownOpen(t){if(!t.detail||!this.autocompleteInputRef){return}this.autocompleteInputRef.focus()}_selectAllChange(){this._allSelected=!this._allSelected;this.selectAllChange.emit(this._allSelected)}_getDisplay(t,e=false){let i=s("div",{class:l({variant:"default"})},t[e?this.selectionDisplayKey??this.displayKey:this.displayKey]);if(this.avatarKey){i=s("span",{class:"flex items-center gap-2"},s("p-avatar",{size:"sm",src:t[this.avatarKey],letters:t[this.avatarLettersKey]}),s("div",{class:l({variant:"default"})},t[this.dropdownDisplayKey??this.displayKey]))}if(this.iconKey&&(!e||this.showIconOnSelectedItem)){i=s("span",{class:"flex items-center gap-2"},s("p-icon",{class:"black-teal-300",variant:t[this.iconKey]}),s("div",{class:l({variant:"default"})},t[this.dropdownDisplayKey??this.displayKey]))}if((!e||this.applyClassOnSelectedItem)&&!!t?.class?.length){return s("div",{class:t.class},i)}return i}_getParsedItems(t=true){if(!this.items||this.loading){return[]}let e=typeof this.items==="string"?JSON.parse(this.items):this.items;if(typeof e?.[0]==="string"){this.displayKey="text";this.valueKey="value";e=e.map((t=>({value:t,text:t})))}if(this.query?.length&&!this.asyncFilter){e=e.filter((t=>{if(this.queryKey){return this._checkvalue(this.queryKey,t)}return this._checkvalue(this._identifierKey,t)||this._checkvalue(this.displayKey,t)}))}if(!t){return e}return e?.slice(0,this.maxDisplayedItems)}static get formAssociated(){return true}static get watchers(){return{value:["_valueChange"],items:["itemChanges"],_showDropdown:["_showDropdownChanges"],multi:["multiChanges"]}}};m.style=n;export{m as p_select};
2
- //# sourceMappingURL=p-dc5fab19.entry.js.map
1
+ import{r as t,c as e,g as i,h as s}from"./p-DhGo7hbh.js";import{a as r}from"./p-BFSNj6hu.js";import{c as a}from"./p-CBWjHURv.js";import"./p-ChV9xqsO.js";const n="*{box-sizing:border-box}.pointer-events-none{pointer-events:none!important}.pointer-events-auto{pointer-events:auto!important}.static{position:static!important}.absolute{position:absolute!important}.relative{position:relative!important}.sticky{position:sticky!important}.top-0{top:0!important}.mb-3{margin-bottom:.75rem!important}.block{display:block!important}.flex{display:flex!important}.hidden{display:none!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.h-\\[1\\.625rem\\]{height:1.625rem!important}.h-full{height:100%!important}.w-6{width:1.5rem!important}.w-full{width:100%!important}.min-w-0{min-width:0!important}.flex-1{flex:1 1 0%!important}.cursor-pointer{cursor:pointer!important}.items-center{align-items:center!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.overflow-hidden{overflow:hidden!important}.text-ellipsis{text-overflow:ellipsis!important}.whitespace-nowrap{white-space:nowrap!important}.rounded{border-radius:.25rem!important}.rounded-lg{border-radius:.5rem!important}.bg-supportive-lilac-100{--tw-bg-opacity:1!important;background-color:rgb(246 239 255/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.text-center{text-align:center!important}.text-start{text-align:start!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-semibold{font-weight:600!important}.text-black-teal-100{--tw-text-opacity:1!important;color:rgb(205 212 211/var(--tw-text-opacity,1))!important}.text-black-teal-400{--tw-text-opacity:1!important;color:rgb(53 85 80/var(--tw-text-opacity,1))!important}.text-supportive-lilac{--tw-text-opacity:1!important;color:rgb(209 174 255/var(--tw-text-opacity,1))!important}.text-teal-800{--tw-text-opacity:1!important;color:rgb(2 102 92/var(--tw-text-opacity,1))!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:85.375rem){.container{max-width:85.375rem}}@media (min-width:90rem){.container{max-width:90rem}}@media (min-width:96rem){.container{max-width:96rem}}@media (min-width:105rem){.container{max-width:105rem}}@media (min-width:120rem){.container{max-width:120rem}}@media (min-width:160rem){.container{max-width:160rem}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.group\\/item:hover .group-hover\\/item\\:text-supportive-lilac-800{--tw-text-opacity:1!important;color:rgb(189 140 255/var(--tw-text-opacity,1))!important}";const o=a(["flex items-center gap-2","flex-1 min-w-0 h-full","pointer-events-none overflow-hidden"]);const h=a(["item group/item","pointer-events-auto cursor-pointer","flex h-[1.625rem] items-center gap-2","h-[1.625rem] px-2","text-sm font-semibold whitespace-nowrap","rounded-lg","bg-supportive-lilac-100"]);const l=a("block w-full overflow-hidden text-ellipsis whitespace-nowrap text-start",{variants:{variant:{placeholder:"text-black-teal-400",default:null}}});const m=class{constructor(i){t(this,i);this.queryChange=e(this,"queryChange",3);this.valueChange=e(this,"valueChange",3);this.selectAllChange=e(this,"selectAllChange",3);this.dropdownShown=e(this,"dropdownShown",3);this.add=e(this,"add",3);if(i.$hostElement$["s-ei"]){this._internals=i.$hostElement$["s-ei"]}else{this._internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this._internals}}items;multi;usePortal=false;strategy="absolute";icon;query;placeholder;autocompletePlaceholder="Search...";value;displayKey="text";dropdownDisplayKey;selectionDisplayKey;valueKey;avatarKey;iconKey;showIconOnSelectedItem;classKey="class";applyClassOnSelectedItem;avatarLettersKey;identifierKey;queryKey;autoSelectFirst=true;showChevron=true;maxDisplayedItems=10;enableAutocomplete=true;asyncFilter=false;loading=false;enableSelectAll=false;selectAllText="Select all";selectAllIcon;queryChange;valueChange;selectAllChange;dropdownShown;size="base";prefix;label;helper;required=true;error;disabled=false;showAddItem=false;addItemText="Add item";add;emptyStateText="No items available";get _el(){return i(this)}_showDropdown=false;_selectedItem=null;_allSelected=false;_amountHidden=0;_internals;_inputRef;autocompleteInputRef;_multiContainerRef;_resizeObserver;_resizeDebounceTimer;_checkSelectedItemsTimeout;get _items(){return this._getParsedItems()}get _displayValue(){const t=s("div",{class:l({variant:"placeholder"})},this.placeholder);if(!this._selectedItem){return t}if(this.multi){if(this._selectedItem?.length===0){return t}return s("div",{class:o(),ref:t=>this._multiContainerRef=t},this._selectedItem.map((t=>s("div",{class:h(),onClick:()=>this._selectValue(t)},t[this.selectionDisplayKey??this.displayKey],s("p-icon",{class:"text-xs text-supportive-lilac group-hover/item:text-supportive-lilac-800",variant:"negative"})))),s("div",{class:"extra pointer-events-none hidden text-sm text-black-teal-100"},"+",this._amountHidden))}return this._getDisplay(this._selectedItem,true)}get _identifierKey(){return this.identifierKey??this.valueKey??"value"}formResetCallback(){this._selectValue(null)}formDisabledCallback(t){if(!this._internals.form){return}this.disabled=t}componentDidLoad(){if(!this.valueKey&&!this.identifierKey){throw new Error("You must provide a valueKey or identifierKey")}if(this.multi){this._setMultiContainerMaxWidth();this._resizeObserver=new ResizeObserver((()=>{if(this._resizeDebounceTimer){clearTimeout(this._resizeDebounceTimer);this._resizeDebounceTimer=null}this._resizeDebounceTimer=setTimeout((()=>{this._setMultiContainerMaxWidth();this._setCheckSelectedItemsTimeout()}),200)}));this._resizeObserver.observe(this._el)}if(this.value){this._valueChange();return}this.itemChanges()}componentDidRender(){if(this.multi){this._setMultiContainerMaxWidth()}}disconnectedCallback(){if(this.multi){this._resizeObserver.disconnect()}}render(){let t=this.icon;if(this._selectedItem&&!this.avatarKey&&!!this.iconKey&&this._selectedItem?.[this.iconKey]&&!this.showIconOnSelectedItem){t=this._selectedItem[this.iconKey]}if(this.avatarKey&&this._selectedItem?.[this.avatarKey]){t=null}if(this.error?.length){t="warning"}return s("p-dropdown",{key:"1d9a6331dd586fbaae253835ed53707dc4de4b8d",disableTriggerClick:true,calculateWidth:true,insideClick:true,scrollable:this.enableAutocomplete?"large":true,show:this._showDropdown,onIsOpen:t=>this._onDropdownOpen(t),usePortal:this.usePortal,strategy:this.strategy},s("p-field-container",{key:"80f65e4b733f4586e205e3812064dd53371c5c82",slot:"trigger",variant:"write",prefix:this.prefix,label:this.label,helper:this.helper,required:this.required,error:this.error,forceShowTooltip:!!this.error?.length&&!this._showDropdown},s("p-button",{key:"9fe31f3469128492ee3cf7cccd4f254b91a023de",class:"w-full",slot:"content",variant:"secondary",size:this.size,chevron:this.showChevron?this._showDropdown?"up":"down":false,disabled:this.disabled,active:this._showDropdown,error:!!this.error?.length,icon:t,onClick:t=>this._onClick(t)},s("div",{key:"7ae2af505698b7fd160e2df3c689e6a0e0f110a3",class:"relative min-w-0 flex-1",ref:t=>this._inputRef=t},this._displayValue))),this.loading?this._getLoadingItems():this._getItems(),this.showAddItem&&this._getAddItem())}documentClickHandler(t){if(!this._showDropdown||r(t,this._el)){return}this._showDropdown=false}_valueChange(){setTimeout((()=>{this._preselectItem();this._setCheckSelectedItemsTimeout()}))}itemChanges(){setTimeout((()=>this._preselectItem()))}_showDropdownChanges(){this.dropdownShown.emit({value:this._showDropdown,query:this.query})}multiChanges(){if(this._selectedItem&&!Array.isArray(this._selectedItem)){this._selectedItem=[]}}_preselectItem(){let t=typeof this.value==="string"&&this.multi?JSON.parse(this.value):this.value;if(this.multi){if(!Array.isArray(t)){this.value=[];this.valueChange.emit(this.value);return}this.value=t;if(!t.length){this._selectedItem=[];return}this._selectedItem=!!this.valueKey&&this.valueKey!=="false"?this._items.filter((e=>t.includes(e?.[this.valueKey]))):[...t];return}if(!this._selectedItem&&!t&&this.autoSelectFirst){t=this._items[0]}const e=typeof t==="object"&&t!==null?t[this._identifierKey]:t;const i=typeof e==="string"||typeof e==="number"?e:JSON.stringify(e);const s=this._selectedItem?this._selectedItem?.[this._identifierKey]:null;const r=typeof s==="string"||typeof s==="number"?s:JSON.stringify(s);if(this._selectedItem&&r===i){return}if(!this._items?.length&&t){this._selectValue(t,false);return}const a=this._getParsedItems(false);const n=a.find((t=>{const e=t?.[this._identifierKey];const s=typeof e==="string"||typeof e==="number"?e:JSON.stringify(e);return s===i}));this._selectValue(!!n?n:t,false)}_selectValue(t,e=true){let i=!!this.valueKey&&this.valueKey!=="false"&&t!==null?t?.[this.valueKey]:t;if(this.multi){if(!this._selectedItem||!Array.isArray(this._selectedItem)){this._selectedItem=[]}if(!this.value||!Array.isArray(this.value)){this.value=[]}const e=[...this._selectedItem];const s=[...this.value];const r=e.findIndex((e=>e[this._identifierKey]===t[this._identifierKey]));if(r===-1){e.push(t);s.push(i)}else{e.splice(r,1);s.splice(r,1)}this._selectedItem=e;this.value=s;this.valueChange.emit(s);return}this._selectedItem=t;this.value=i;this.valueChange.emit(i);this._onBlur(e)}_onClick(t){const e=t?.composedPath();for(const t of e){if(t.nodeName.toLowerCase()==="p-button"){break}if(t.classList?.contains("item")){return}}this._showDropdown=!this._showDropdown}_onBlur(t=false){if(this.enableAutocomplete&&!t){return}this._showDropdown=false}_onAutoComplete(t){if(!this.enableAutocomplete){return}this._showDropdown=true;this.query=t.detail;this.queryChange.emit(t.detail)}_checkvalue(t,e){return e?.[t]?.toString()?.toLowerCase().indexOf(this.query?.toLowerCase())>=0}_getItems(){let t=this._items.map((t=>s("p-dropdown-menu-item",{useContainer:false,onClick:()=>this._selectValue(t),active:this.multi&&!!this._selectedItem&&Array.isArray(this._selectedItem)?this._selectedItem.findIndex((e=>e[this._identifierKey]===t[this._identifierKey]))>=0:t[this._identifierKey]===this._selectedItem?.[this._identifierKey],checkbox:this.multi?true:false,slot:"items"},this._getDisplay(t))));if(!this._items.length){t=[s("p",{class:"w-full p-2 text-center text-sm text-black-teal-400",slot:"items"},this.emptyStateText)]}if(this.enableSelectAll&&this._items.length){t.unshift(s("p-dropdown-menu-item",{slot:"items",useContainer:false,checkbox:true,onClick:()=>this._selectAllChange(),active:this._allSelected},this.selectAllIcon?.length?s("span",{class:"flex items-center gap-2"},s("div",{class:"flex w-6 justify-center text-lg"},s("p-icon",{variant:this.selectAllIcon}))," ",this.selectAllText):this.selectAllText))}if(this.enableAutocomplete){t.unshift(this._getAutoCompleteItem())}return t}_getAddItem(){return s("p-dropdown-menu-item",{onClick:()=>this.add.emit(),useContainer:false,slot:"items"},s("span",{class:"flex items-center gap-1 font-semibold text-teal-800"},this.addItemText,s("p-icon",{variant:"plus"})))}_getLoadingItems(){const t=[0,0,0].map((()=>s("p-dropdown-menu-item",{enableHover:false,slot:"items"},s("p-loader",{variant:"ghost",class:"h-6 w-full rounded"}))));if(this.enableAutocomplete){t.unshift(this._getAutoCompleteItem())}return t}_getAutoCompleteItem(){return s("div",{class:"sticky top-0 mb-3 h-8",slot:"items"},s("p-field",{class:"block",placeholder:this.autocompletePlaceholder,onValueChange:t=>this._onAutoComplete(t),onInputRefChange:t=>this.autocompleteInputRef=t.detail,value:this.query}))}_setMultiContainerMaxWidth(){if(!this._inputRef||!this._multiContainerRef){return}const t=this._inputRef.clientWidth-16;this._multiContainerRef.style.maxWidth=`${t>=16?t:16}px`}_setCheckSelectedItemsTimeout(){if(this._checkSelectedItemsTimeout){clearTimeout(this._checkSelectedItemsTimeout)}this._checkSelectedItemsTimeout=setTimeout((()=>this._checkSelectedItems()),50)}_checkSelectedItems(){if(!this._multiContainerRef){return}const t=this._multiContainerRef.getBoundingClientRect();const e=this._multiContainerRef.querySelectorAll(".item");let i=0;for(const s of e){s.classList.remove("hidden");s.classList.add("flex");const e=s.getBoundingClientRect();if(e.right>t.right){s.classList.remove("flex");s.classList.add("hidden");i++;continue}}this._amountHidden=i;const s=this._multiContainerRef.querySelector(".extra");if(!s){return}if(!s.classList.contains("hidden")){s.classList.add("hidden")}if(i>0){s.classList.remove("hidden")}}_onDropdownOpen(t){if(!t.detail||!this.autocompleteInputRef){return}setTimeout((()=>this.autocompleteInputRef.focus()),100)}_selectAllChange(){this._allSelected=!this._allSelected;this.selectAllChange.emit(this._allSelected)}_getDisplay(t,e=false){let i=s("div",{class:l({variant:"default"})},t[e?this.selectionDisplayKey??this.displayKey:this.displayKey]);if(this.avatarKey){i=s("span",{class:"flex items-center gap-2"},s("p-avatar",{size:"sm",src:t[this.avatarKey],letters:t[this.avatarLettersKey]}),s("div",{class:l({variant:"default"})},t[this.dropdownDisplayKey??this.displayKey]))}if(this.iconKey&&(!e||this.showIconOnSelectedItem)){i=s("span",{class:"flex items-center gap-2"},s("p-icon",{class:"black-teal-300",variant:t[this.iconKey]}),s("div",{class:l({variant:"default"})},t[this.dropdownDisplayKey??this.displayKey]))}if((!e||this.applyClassOnSelectedItem)&&!!t?.class?.length){return s("div",{class:t.class},i)}return i}_getParsedItems(t=true){if(!this.items||this.loading){return[]}let e=typeof this.items==="string"?JSON.parse(this.items):this.items;if(typeof e?.[0]==="string"){this.displayKey="text";this.valueKey="value";e=e.map((t=>({value:t,text:t})))}if(this.query?.length&&!this.asyncFilter){e=e.filter((t=>{if(this.queryKey){return this._checkvalue(this.queryKey,t)}return this._checkvalue(this._identifierKey,t)||this._checkvalue(this.displayKey,t)}))}if(!t){return e}return e?.slice(0,this.maxDisplayedItems)}static get formAssociated(){return true}static get watchers(){return{value:["_valueChange"],items:["itemChanges"],_showDropdown:["_showDropdownChanges"],multi:["multiChanges"]}}};m.style=n;export{m as p_select};
2
+ //# sourceMappingURL=p-baec5c22.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["selectComponentCss","multiContainer","cva","multiItem","textContainer","variants","variant","placeholder","default","Select","items","multi","usePortal","strategy","icon","query","autocompletePlaceholder","value","displayKey","dropdownDisplayKey","selectionDisplayKey","valueKey","avatarKey","iconKey","showIconOnSelectedItem","classKey","applyClassOnSelectedItem","avatarLettersKey","identifierKey","queryKey","autoSelectFirst","showChevron","maxDisplayedItems","enableAutocomplete","asyncFilter","loading","enableSelectAll","selectAllText","selectAllIcon","queryChange","valueChange","selectAllChange","dropdownShown","size","prefix","label","helper","required","error","disabled","showAddItem","addItemText","add","emptyStateText","_showDropdown","_selectedItem","_allSelected","_amountHidden","_internals","_inputRef","autocompleteInputRef","_multiContainerRef","_resizeObserver","_resizeDebounceTimer","_checkSelectedItemsTimeout","_items","this","_getParsedItems","_displayValue","h","class","length","ref","map","item","onClick","_selectValue","_getDisplay","_identifierKey","formResetCallback","formDisabledCallback","form","componentDidLoad","Error","_setMultiContainerMaxWidth","ResizeObserver","clearTimeout","setTimeout","_setCheckSelectedItemsTimeout","observe","_el","_valueChange","itemChanges","componentDidRender","disconnectedCallback","disconnect","render","buttonIcon","key","disableTriggerClick","calculateWidth","insideClick","scrollable","show","onIsOpen","ev","_onDropdownOpen","slot","forceShowTooltip","chevron","active","_onClick","_getLoadingItems","_getItems","_getAddItem","documentClickHandler","event","childOfComposed","_preselectItem","_showDropdownChanges","emit","multiChanges","Array","isArray","JSON","parse","filter","i","includes","identifier","parsedValue","stringify","currentValue","currentParsedValue","find","itemIdentifier","parsedItemIdentifier","forceBlur","selectedItem","valueArray","includesIndex","findIndex","push","splice","_onBlur","composed","composedPath","nodeName","toLowerCase","classList","contains","force","_onAutoComplete","detail","_checkvalue","toString","indexOf","useContainer","checkbox","unshift","_selectAllChange","_getAutoCompleteItem","enableHover","onValueChange","onInputRefChange","calced","clientWidth","style","maxWidth","_checkSelectedItems","containerRect","getBoundingClientRect","querySelectorAll","amountHidden","child","remove","childRect","right","extra","querySelector","focus","isSelection","content","src","letters","applyPagination","str","text","slice"],"sources":["src/components/molecules/select/select.component.css?tag=p-select","src/components/molecules/select/select.component.tsx"],"sourcesContent":[null,"import { Strategy } from '@floating-ui/dom';\nimport {\n\tAttachInternals,\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport { childOfComposed } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\nimport { cva } from 'class-variance-authority';\n\nconst multiContainer = cva([\n\t'flex items-center gap-2',\n\t'flex-1 min-w-0 h-full',\n\t'pointer-events-none overflow-hidden',\n]);\n\nconst multiItem = cva([\n\t'item group/item',\n\t'pointer-events-auto cursor-pointer',\n\t'flex h-[1.625rem] items-center gap-2',\n\t'h-[1.625rem] px-2',\n\t'text-sm font-semibold whitespace-nowrap',\n\t'rounded-lg',\n\t'bg-supportive-lilac-100',\n]);\n\nconst textContainer = cva(\n\t'block w-full overflow-hidden text-ellipsis whitespace-nowrap text-start',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tplaceholder: 'text-black-teal-400',\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t},\n\t}\n);\n\n@Component({\n\ttag: 'p-select',\n\tstyleUrl: 'select.component.css',\n\tformAssociated: true,\n})\nexport class Select {\n\t/**\n\t * The items to show in the dropdown\n\t */\n\t@Prop() items: string | any[];\n\n\t/**\n\t * Wether to enable multi select\n\t */\n\t@Prop({ reflect: true }) multi: boolean;\n\n\t/**\n\t * Wether to use a portal for the dropdown container of the select\n\t */\n\t@Prop() usePortal: boolean = false;\n\n\t/**\n\t * The strategy to use for the dropdown placement\n\t */\n\t@Prop() strategy: Strategy = 'absolute';\n\n\t/**\n\t * Icon of the select box\n\t */\n\t@Prop() icon: IconVariant;\n\n\t/**\n\t * The current query\n\t */\n\t@Prop() query: string;\n\n\t/**\n\t * The placeholder of the input\n\t */\n\t@Prop() placeholder: string;\n\n\t/**\n\t * The placeholder of the input used for auto complete\n\t */\n\t@Prop() autocompletePlaceholder: string = 'Search...';\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value: any;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() displayKey: string = 'text';\n\n\t/**\n\t * The key of the object to display in the dropdown (overwrites displayKey)\n\t */\n\t@Prop() dropdownDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to display in the input (overwrites displayKey)\n\t */\n\t@Prop() selectionDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to return\n\t */\n\t@Prop() valueKey: string;\n\n\t/**\n\t * The key of avatar within an item to show\n\t */\n\t@Prop() avatarKey: string;\n\n\t/**\n\t * The key of icon variant within an item to show\n\t */\n\t@Prop() iconKey: string;\n\n\t/**\n\t * Wether to apply the item's icon on the selected item display\n\t */\n\t@Prop() showIconOnSelectedItem: string;\n\n\t/**\n\t * The key of a class in an item to apply\n\t */\n\t@Prop() classKey: string = 'class';\n\n\t/**\n\t * Wether to apply the item's class also on the selected item\n\t */\n\t@Prop() applyClassOnSelectedItem: string;\n\n\t/**\n\t * The key of avatar letters within an item to show when the avatar url doesn't work\n\t */\n\t@Prop() avatarLettersKey: string;\n\n\t/**\n\t * The key to identify an object\n\t */\n\t@Prop() identifierKey: string;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() queryKey?: string;\n\n\t/**\n\t * Wether to automatically select the first item\n\t */\n\t@Prop() autoSelectFirst: boolean = true;\n\n\t/**\n\t * Wether to show the chevron or not\n\t */\n\t@Prop() showChevron: boolean = true;\n\n\t/**\n\t * The maximum amount of items to display\n\t */\n\t@Prop() maxDisplayedItems: number = 10;\n\n\t/**\n\t * Wether to enable autocomplete\n\t */\n\t@Prop() enableAutocomplete: boolean = true;\n\n\t/**\n\t * Wether the input uses async filtering\n\t */\n\t@Prop() asyncFilter: boolean = false;\n\n\t/**\n\t * Wether to show loading items\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * Wether to show the select all item with multi select\n\t */\n\t@Prop() enableSelectAll: boolean = false;\n\n\t/**\n\t * The text of the select all item\n\t */\n\t@Prop() selectAllText: string = 'Select all';\n\n\t/**\n\t * The icon to prefix for select all\n\t */\n\t@Prop() selectAllIcon: IconVariant | undefined;\n\n\t/**\n\t * Event when the query of the autocomplete changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tqueryChange: EventEmitter<string>;\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the select all item has been selected or not\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tselectAllChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the dropdown shows\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdropdownShown: EventEmitter<any>;\n\n\t/**\n\t * The size of the input group used by the select\n\t */\n\t@Prop() size: 'sm' | 'base' = 'base';\n\n\t/**\n\t * The prefix of the input group used by the select\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The label of the input group used by the select\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop() helper: string;\n\n\t/**\n\t * Wether the field is required\n\t */\n\t@Prop({ reflect: true }) required: boolean = true;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled used by the select\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * Wether to show a \"add\" item\n\t */\n\t@Prop() showAddItem: boolean = false;\n\n\t/**\n\t * The text to show when add item is being shown\n\t */\n\t@Prop() addItemText: string = 'Add item';\n\n\t/**\n\t * Event when the add item is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tadd: EventEmitter;\n\n\t/**\n\t * The text to show when items is empty\n\t */\n\t@Prop() emptyStateText: string = 'No items available';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _showDropdown: any = false;\n\t@State() private _selectedItem: any = null;\n\n\t@State() private _allSelected: boolean = false;\n\n\t@State() private _amountHidden = 0;\n\n\t@AttachInternals() _internals: ElementInternals;\n\n\tprivate _inputRef: HTMLDivElement;\n\tprivate autocompleteInputRef: HTMLInputElement | HTMLTextAreaElement;\n\tprivate _multiContainerRef: HTMLElement;\n\n\tprivate _resizeObserver: ResizeObserver;\n\tprivate _resizeDebounceTimer: NodeJS.Timeout | undefined;\n\tprivate _checkSelectedItemsTimeout: NodeJS.Timeout | undefined;\n\n\tget _items() {\n\t\treturn this._getParsedItems();\n\t}\n\n\tget _displayValue() {\n\t\tconst placeholder = (\n\t\t\t<div class={textContainer({ variant: 'placeholder' })}>\n\t\t\t\t{this.placeholder}\n\t\t\t</div>\n\t\t);\n\n\t\tif (!this._selectedItem) {\n\t\t\treturn placeholder;\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tif (this._selectedItem?.length === 0) {\n\t\t\t\treturn placeholder;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclass={multiContainer()}\n\t\t\t\t\tref={ref => (this._multiContainerRef = ref)}\n\t\t\t\t>\n\t\t\t\t\t{this._selectedItem.map(item => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={multiItem()}\n\t\t\t\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item[this.selectionDisplayKey ?? this.displayKey]}\n\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\tclass='text-xs text-supportive-lilac group-hover/item:text-supportive-lilac-800'\n\t\t\t\t\t\t\t\tvariant='negative'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\n\t\t\t\t\t<div class='extra pointer-events-none hidden text-sm text-black-teal-100'>\n\t\t\t\t\t\t+{this._amountHidden}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn this._getDisplay(this._selectedItem, true);\n\t}\n\n\tget _identifierKey() {\n\t\treturn this.identifierKey ?? this.valueKey ?? 'value';\n\t}\n\n\tformResetCallback() {\n\t\tthis._selectValue(null);\n\t}\n\n\tformDisabledCallback(disabled: boolean) {\n\t\tif (!this._internals.form) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.disabled = disabled;\n\t}\n\n\tcomponentDidLoad() {\n\t\tif (!this.valueKey && !this.identifierKey) {\n\t\t\tthrow new Error('You must provide a valueKey or identifierKey');\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\n\t\t\tthis._resizeObserver = new ResizeObserver(() => {\n\t\t\t\tif (this._resizeDebounceTimer) {\n\t\t\t\t\tclearTimeout(this._resizeDebounceTimer);\n\t\t\t\t\tthis._resizeDebounceTimer = null;\n\t\t\t\t}\n\n\t\t\t\tthis._resizeDebounceTimer = setTimeout(() => {\n\t\t\t\t\tthis._setMultiContainerMaxWidth();\n\t\t\t\t\tthis._setCheckSelectedItemsTimeout();\n\t\t\t\t}, 200);\n\t\t\t});\n\t\t\tthis._resizeObserver.observe(this._el);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\tthis._valueChange();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.itemChanges();\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tif (this.multi) {\n\t\t\tthis._resizeObserver.disconnect();\n\t\t}\n\t}\n\n\trender() {\n\t\tlet buttonIcon = this.icon;\n\n\t\tif (\n\t\t\tthis._selectedItem &&\n\t\t\t!this.avatarKey &&\n\t\t\t!!this.iconKey &&\n\t\t\tthis._selectedItem?.[this.iconKey] &&\n\t\t\t!this.showIconOnSelectedItem\n\t\t) {\n\t\t\tbuttonIcon = this._selectedItem[this.iconKey];\n\t\t}\n\n\t\tif (this.avatarKey && this._selectedItem?.[this.avatarKey]) {\n\t\t\tbuttonIcon = null;\n\t\t}\n\n\t\tif (this.error?.length) {\n\t\t\tbuttonIcon = 'warning';\n\t\t}\n\n\t\treturn (\n\t\t\t<p-dropdown\n\t\t\t\tdisableTriggerClick={true}\n\t\t\t\tcalculateWidth={true}\n\t\t\t\tinsideClick={true}\n\t\t\t\tscrollable={this.enableAutocomplete ? 'large' : true}\n\t\t\t\tshow={this._showDropdown}\n\t\t\t\tonIsOpen={ev => this._onDropdownOpen(ev)}\n\t\t\t\tusePortal={this.usePortal}\n\t\t\t\tstrategy={this.strategy}\n\t\t\t>\n\t\t\t\t<p-field-container\n\t\t\t\t\tslot='trigger'\n\t\t\t\t\tvariant='write'\n\t\t\t\t\tprefix={this.prefix}\n\t\t\t\t\tlabel={this.label}\n\t\t\t\t\thelper={this.helper}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\terror={this.error}\n\t\t\t\t\tforceShowTooltip={!!this.error?.length && !this._showDropdown}\n\t\t\t\t>\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tclass='w-full'\n\t\t\t\t\t\tslot='content'\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tchevron={\n\t\t\t\t\t\t\tthis.showChevron ? (this._showDropdown ? 'up' : 'down') : false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tactive={this._showDropdown}\n\t\t\t\t\t\terror={!!this.error?.length}\n\t\t\t\t\t\ticon={buttonIcon}\n\t\t\t\t\t\tonClick={ev => this._onClick(ev)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass='relative min-w-0 flex-1'\n\t\t\t\t\t\t\tref={ref => (this._inputRef = ref)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._displayValue}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</p-button>\n\t\t\t\t</p-field-container>\n\t\t\t\t{this.loading ? this._getLoadingItems() : this._getItems()}\n\t\t\t\t{this.showAddItem && this._getAddItem()}\n\t\t\t</p-dropdown>\n\t\t);\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler(event) {\n\t\tif (!this._showDropdown || childOfComposed(event, this._el)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\t@Watch('value')\n\tprivate _valueChange() {\n\t\tsetTimeout(() => {\n\t\t\tthis._preselectItem();\n\t\t\tthis._setCheckSelectedItemsTimeout();\n\t\t});\n\t}\n\n\t@Watch('items')\n\tpublic itemChanges() {\n\t\tsetTimeout(() => this._preselectItem());\n\t}\n\n\t@Watch('_showDropdown')\n\tpublic _showDropdownChanges() {\n\t\tthis.dropdownShown.emit({\n\t\t\tvalue: this._showDropdown,\n\t\t\tquery: this.query,\n\t\t});\n\t}\n\n\t@Watch('multi')\n\tpublic multiChanges() {\n\t\tif (this._selectedItem && !Array.isArray(this._selectedItem)) {\n\t\t\tthis._selectedItem = [];\n\t\t}\n\t}\n\n\tprivate _preselectItem() {\n\t\tlet value =\n\t\t\ttypeof this.value === 'string' && this.multi\n\t\t\t\t? JSON.parse(this.value)\n\t\t\t\t: this.value;\n\n\t\tif (this.multi) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis.value = [];\n\t\t\t\tthis.valueChange.emit(this.value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = value;\n\t\t\tif (!value.length) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._selectedItem =\n\t\t\t\t!!this.valueKey && this.valueKey !== 'false'\n\t\t\t\t\t? this._items.filter(i => value.includes(i?.[this.valueKey]))\n\t\t\t\t\t: [...value];\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._selectedItem && !value && this.autoSelectFirst) {\n\t\t\tvalue = this._items[0];\n\t\t}\n\n\t\tconst identifier =\n\t\t\ttypeof value === 'object' && value !== null\n\t\t\t\t? value[this._identifierKey]\n\t\t\t\t: value;\n\t\tconst parsedValue =\n\t\t\ttypeof identifier === 'string' || typeof identifier === 'number'\n\t\t\t\t? identifier\n\t\t\t\t: JSON.stringify(identifier);\n\n\t\tconst currentValue = this._selectedItem\n\t\t\t? this._selectedItem?.[this._identifierKey]\n\t\t\t: null;\n\t\tconst currentParsedValue =\n\t\t\ttypeof currentValue === 'string' || typeof currentValue === 'number'\n\t\t\t\t? currentValue\n\t\t\t\t: JSON.stringify(currentValue);\n\n\t\tif (this._selectedItem && currentParsedValue === parsedValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._items?.length && value) {\n\t\t\tthis._selectValue(value, false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst items = this._getParsedItems(false);\n\t\tconst item = items.find(i => {\n\t\t\tconst itemIdentifier = i?.[this._identifierKey];\n\t\t\tconst parsedItemIdentifier =\n\t\t\t\ttypeof itemIdentifier === 'string' || typeof itemIdentifier === 'number'\n\t\t\t\t\t? itemIdentifier\n\t\t\t\t\t: JSON.stringify(itemIdentifier);\n\n\t\t\treturn parsedItemIdentifier === parsedValue;\n\t\t});\n\n\t\tthis._selectValue(!!item ? item : value, false);\n\t}\n\n\tprivate _selectValue(item, forceBlur = true) {\n\t\tlet value =\n\t\t\t!!this.valueKey && this.valueKey !== 'false' && item !== null\n\t\t\t\t? item?.[this.valueKey]\n\t\t\t\t: item;\n\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem || !Array.isArray(this._selectedItem)) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t}\n\n\t\t\tif (!this.value || !Array.isArray(this.value)) {\n\t\t\t\tthis.value = [];\n\t\t\t}\n\n\t\t\tconst selectedItem = [...this._selectedItem];\n\t\t\tconst valueArray = [...this.value];\n\n\t\t\tconst includesIndex = selectedItem.findIndex(\n\t\t\t\ti => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t);\n\t\t\tif (includesIndex === -1) {\n\t\t\t\tselectedItem.push(item);\n\t\t\t\tvalueArray.push(value);\n\t\t\t} else {\n\t\t\t\tselectedItem.splice(includesIndex, 1);\n\t\t\t\tvalueArray.splice(includesIndex, 1);\n\t\t\t}\n\n\t\t\tthis._selectedItem = selectedItem;\n\t\t\tthis.value = valueArray;\n\t\t\tthis.valueChange.emit(valueArray);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectedItem = item;\n\t\tthis.value = value;\n\t\tthis.valueChange.emit(value);\n\n\t\tthis._onBlur(forceBlur);\n\t}\n\n\tprivate _onClick(event) {\n\t\tconst composed = event?.composedPath();\n\n\t\tfor (const item of composed) {\n\t\t\tif (item.nodeName.toLowerCase() === 'p-button') {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (item.classList.contains('item')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis._showDropdown = !this._showDropdown;\n\t}\n\n\tprivate _onBlur(force = false) {\n\t\tif (this.enableAutocomplete && !force) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onAutoComplete(ev) {\n\t\tif (!this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\n\t\tthis.query = ev.detail;\n\t\tthis.queryChange.emit(ev.detail);\n\t}\n\n\tprivate _checkvalue(key, item) {\n\t\treturn (\n\t\t\titem?.[key]\n\t\t\t\t?.toString()\n\t\t\t\t?.toLowerCase()\n\t\t\t\t.indexOf(this.query?.toLowerCase()) >= 0\n\t\t);\n\t}\n\n\tprivate _getItems() {\n\t\tlet items = this._items.map(item => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tuseContainer={false}\n\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\tactive={\n\t\t\t\t\tthis.multi &&\n\t\t\t\t\t!!this._selectedItem &&\n\t\t\t\t\tArray.isArray(this._selectedItem)\n\t\t\t\t\t\t? this._selectedItem.findIndex(\n\t\t\t\t\t\t\t\ti => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t\t\t\t ) >= 0\n\t\t\t\t\t\t: item[this._identifierKey] ===\n\t\t\t\t\t\t this._selectedItem?.[this._identifierKey]\n\t\t\t\t}\n\t\t\t\tcheckbox={this.multi ? true : false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t{this._getDisplay(item)}\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (!this._items.length) {\n\t\t\titems = [\n\t\t\t\t<p\n\t\t\t\t\tclass='w-full p-2 text-center text-sm text-black-teal-400'\n\t\t\t\t\tslot='items'\n\t\t\t\t>\n\t\t\t\t\t{this.emptyStateText}\n\t\t\t\t</p>,\n\t\t\t];\n\t\t}\n\n\t\tif (this.enableSelectAll && this._items.length) {\n\t\t\titems.unshift(\n\t\t\t\t<p-dropdown-menu-item\n\t\t\t\t\tslot='items'\n\t\t\t\t\tuseContainer={false}\n\t\t\t\t\tcheckbox\n\t\t\t\t\tonClick={() => this._selectAllChange()}\n\t\t\t\t\tactive={this._allSelected}\n\t\t\t\t>\n\t\t\t\t\t{this.selectAllIcon?.length ? (\n\t\t\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t\t\t<div class='flex w-6 justify-center text-lg'>\n\t\t\t\t\t\t\t\t<p-icon variant={this.selectAllIcon} />\n\t\t\t\t\t\t\t</div>{' '}\n\t\t\t\t\t\t\t{this.selectAllText}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tthis.selectAllText\n\t\t\t\t\t)}\n\t\t\t\t</p-dropdown-menu-item>\n\t\t\t);\n\t\t}\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAddItem() {\n\t\treturn (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tonClick={() => this.add.emit()}\n\t\t\t\tuseContainer={false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<span class='flex items-center gap-1 font-semibold text-teal-800'>\n\t\t\t\t\t{this.addItemText}\n\t\t\t\t\t<p-icon variant='plus' />\n\t\t\t\t</span>\n\t\t\t</p-dropdown-menu-item>\n\t\t);\n\t}\n\n\tprivate _getLoadingItems() {\n\t\tconst items = [0, 0, 0].map(() => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tenableHover={false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<p-loader\n\t\t\t\t\tvariant='ghost'\n\t\t\t\t\tclass='h-6 w-full rounded'\n\t\t\t\t/>\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAutoCompleteItem() {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclass='sticky top-0 mb-3 h-8'\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<p-field\n\t\t\t\t\tclass='block'\n\t\t\t\t\tplaceholder={this.autocompletePlaceholder}\n\t\t\t\t\tonValueChange={ev => this._onAutoComplete(ev)}\n\t\t\t\t\tonInputRefChange={ev => (this.autocompleteInputRef = ev.detail)}\n\t\t\t\t\tvalue={this.query}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _setMultiContainerMaxWidth() {\n\t\tif (!this._inputRef || !this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst calced = this._inputRef.clientWidth - 16;\n\t\tthis._multiContainerRef.style.maxWidth = `${calced >= 16 ? calced : 16}px`;\n\t}\n\n\tprivate _setCheckSelectedItemsTimeout() {\n\t\tif (this._checkSelectedItemsTimeout) {\n\t\t\tclearTimeout(this._checkSelectedItemsTimeout);\n\t\t}\n\n\t\tthis._checkSelectedItemsTimeout = setTimeout(\n\t\t\t() => this._checkSelectedItems(),\n\t\t\t50\n\t\t);\n\t}\n\n\tprivate _checkSelectedItems() {\n\t\tif (!this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst containerRect = this._multiContainerRef.getBoundingClientRect();\n\t\tconst items = this._multiContainerRef.querySelectorAll('.item');\n\n\t\tlet amountHidden = 0;\n\n\t\tfor (const child of items) {\n\t\t\tchild.classList.remove('hidden');\n\t\t\tchild.classList.add('flex');\n\n\t\t\tconst childRect = child.getBoundingClientRect();\n\t\t\tif (childRect.right > containerRect.right) {\n\t\t\t\tchild.classList.remove('flex');\n\t\t\t\tchild.classList.add('hidden');\n\t\t\t\tamountHidden++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tthis._amountHidden = amountHidden;\n\t\tconst extra = this._multiContainerRef.querySelector('.extra');\n\t\tif (!extra) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!extra.classList.contains('hidden')) {\n\t\t\textra.classList.add('hidden');\n\t\t}\n\n\t\tif (amountHidden > 0) {\n\t\t\textra.classList.remove('hidden');\n\t\t}\n\t}\n\n\tprivate _onDropdownOpen(ev) {\n\t\tif (!ev.detail || !this.autocompleteInputRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.autocompleteInputRef.focus();\n\t}\n\n\tprivate _selectAllChange() {\n\t\tthis._allSelected = !this._allSelected;\n\t\tthis.selectAllChange.emit(this._allSelected);\n\t}\n\n\tprivate _getDisplay(item, isSelection = false) {\n\t\tlet content = (\n\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t{\n\t\t\t\t\titem[\n\t\t\t\t\t\tisSelection\n\t\t\t\t\t\t\t? this.selectionDisplayKey ?? this.displayKey\n\t\t\t\t\t\t\t: this.displayKey\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t</div>\n\t\t);\n\n\t\tif (this.avatarKey) {\n\t\t\tcontent = (\n\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t<p-avatar\n\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\tsrc={item[this.avatarKey]}\n\t\t\t\t\t\tletters={item[this.avatarLettersKey]}\n\t\t\t\t\t></p-avatar>\n\t\t\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</div>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\tif (this.iconKey && (!isSelection || this.showIconOnSelectedItem)) {\n\t\t\tcontent = (\n\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t<p-icon\n\t\t\t\t\t\tclass='black-teal-300'\n\t\t\t\t\t\tvariant={item[this.iconKey] as IconVariant}\n\t\t\t\t\t/>\n\t\t\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</div>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(!isSelection || this.applyClassOnSelectedItem) &&\n\t\t\t!!item?.class?.length\n\t\t) {\n\t\t\treturn <div class={item.class}>{content}</div>;\n\t\t}\n\n\t\treturn content;\n\t}\n\n\tprivate _getParsedItems(applyPagination = true) {\n\t\tif (!this.items || this.loading) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet items =\n\t\t\ttypeof this.items === 'string' ? JSON.parse(this.items) : this.items;\n\n\t\tif (typeof items?.[0] === 'string') {\n\t\t\tthis.displayKey = 'text';\n\t\t\tthis.valueKey = 'value';\n\n\t\t\titems = items.map(str => ({\n\t\t\t\tvalue: str,\n\t\t\t\ttext: str,\n\t\t\t}));\n\t\t}\n\n\t\tif (this.query?.length && !this.asyncFilter) {\n\t\t\titems = items.filter(item => {\n\t\t\t\tif (this.queryKey) {\n\t\t\t\t\treturn this._checkvalue(this.queryKey, item);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tthis._checkvalue(this._identifierKey, item) ||\n\t\t\t\t\tthis._checkvalue(this.displayKey, item)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tif (!applyPagination) {\n\t\t\treturn items;\n\t\t}\n\n\t\treturn items?.slice(0, this.maxDisplayedItems);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["selectComponentCss","multiContainer","cva","multiItem","textContainer","variants","variant","placeholder","default","Select","items","multi","usePortal","strategy","icon","query","autocompletePlaceholder","value","displayKey","dropdownDisplayKey","selectionDisplayKey","valueKey","avatarKey","iconKey","showIconOnSelectedItem","classKey","applyClassOnSelectedItem","avatarLettersKey","identifierKey","queryKey","autoSelectFirst","showChevron","maxDisplayedItems","enableAutocomplete","asyncFilter","loading","enableSelectAll","selectAllText","selectAllIcon","queryChange","valueChange","selectAllChange","dropdownShown","size","prefix","label","helper","required","error","disabled","showAddItem","addItemText","add","emptyStateText","_showDropdown","_selectedItem","_allSelected","_amountHidden","_internals","_inputRef","autocompleteInputRef","_multiContainerRef","_resizeObserver","_resizeDebounceTimer","_checkSelectedItemsTimeout","_items","this","_getParsedItems","_displayValue","h","class","length","ref","map","item","onClick","_selectValue","_getDisplay","_identifierKey","formResetCallback","formDisabledCallback","form","componentDidLoad","Error","_setMultiContainerMaxWidth","ResizeObserver","clearTimeout","setTimeout","_setCheckSelectedItemsTimeout","observe","_el","_valueChange","itemChanges","componentDidRender","disconnectedCallback","disconnect","render","buttonIcon","key","disableTriggerClick","calculateWidth","insideClick","scrollable","show","onIsOpen","ev","_onDropdownOpen","slot","forceShowTooltip","chevron","active","_onClick","_getLoadingItems","_getItems","_getAddItem","documentClickHandler","event","childOfComposed","_preselectItem","_showDropdownChanges","emit","multiChanges","Array","isArray","JSON","parse","filter","i","includes","identifier","parsedValue","stringify","currentValue","currentParsedValue","find","itemIdentifier","parsedItemIdentifier","forceBlur","selectedItem","valueArray","includesIndex","findIndex","push","splice","_onBlur","composed","composedPath","nodeName","toLowerCase","classList","contains","force","_onAutoComplete","detail","_checkvalue","toString","indexOf","useContainer","checkbox","unshift","_selectAllChange","_getAutoCompleteItem","enableHover","onValueChange","onInputRefChange","calced","clientWidth","style","maxWidth","_checkSelectedItems","containerRect","getBoundingClientRect","querySelectorAll","amountHidden","child","remove","childRect","right","extra","querySelector","focus","isSelection","content","src","letters","applyPagination","str","text","slice"],"sources":["src/components/molecules/select/select.component.css?tag=p-select","src/components/molecules/select/select.component.tsx"],"sourcesContent":[null,"import { Strategy } from '@floating-ui/dom';\nimport {\n\tAttachInternals,\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport { childOfComposed } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\nimport { cva } from 'class-variance-authority';\n\nconst multiContainer = cva([\n\t'flex items-center gap-2',\n\t'flex-1 min-w-0 h-full',\n\t'pointer-events-none overflow-hidden',\n]);\n\nconst multiItem = cva([\n\t'item group/item',\n\t'pointer-events-auto cursor-pointer',\n\t'flex h-[1.625rem] items-center gap-2',\n\t'h-[1.625rem] px-2',\n\t'text-sm font-semibold whitespace-nowrap',\n\t'rounded-lg',\n\t'bg-supportive-lilac-100',\n]);\n\nconst textContainer = cva(\n\t'block w-full overflow-hidden text-ellipsis whitespace-nowrap text-start',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tplaceholder: 'text-black-teal-400',\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t},\n\t}\n);\n\n@Component({\n\ttag: 'p-select',\n\tstyleUrl: 'select.component.css',\n\tformAssociated: true,\n})\nexport class Select {\n\t/**\n\t * The items to show in the dropdown\n\t */\n\t@Prop() items: string | any[];\n\n\t/**\n\t * Wether to enable multi select\n\t */\n\t@Prop({ reflect: true }) multi: boolean;\n\n\t/**\n\t * Wether to use a portal for the dropdown container of the select\n\t */\n\t@Prop() usePortal: boolean = false;\n\n\t/**\n\t * The strategy to use for the dropdown placement\n\t */\n\t@Prop() strategy: Strategy = 'absolute';\n\n\t/**\n\t * Icon of the select box\n\t */\n\t@Prop() icon: IconVariant;\n\n\t/**\n\t * The current query\n\t */\n\t@Prop() query: string;\n\n\t/**\n\t * The placeholder of the input\n\t */\n\t@Prop() placeholder: string;\n\n\t/**\n\t * The placeholder of the input used for auto complete\n\t */\n\t@Prop() autocompletePlaceholder: string = 'Search...';\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value: any;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() displayKey: string = 'text';\n\n\t/**\n\t * The key of the object to display in the dropdown (overwrites displayKey)\n\t */\n\t@Prop() dropdownDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to display in the input (overwrites displayKey)\n\t */\n\t@Prop() selectionDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to return\n\t */\n\t@Prop() valueKey: string;\n\n\t/**\n\t * The key of avatar within an item to show\n\t */\n\t@Prop() avatarKey: string;\n\n\t/**\n\t * The key of icon variant within an item to show\n\t */\n\t@Prop() iconKey: string;\n\n\t/**\n\t * Wether to apply the item's icon on the selected item display\n\t */\n\t@Prop() showIconOnSelectedItem: string;\n\n\t/**\n\t * The key of a class in an item to apply\n\t */\n\t@Prop() classKey: string = 'class';\n\n\t/**\n\t * Wether to apply the item's class also on the selected item\n\t */\n\t@Prop() applyClassOnSelectedItem: string;\n\n\t/**\n\t * The key of avatar letters within an item to show when the avatar url doesn't work\n\t */\n\t@Prop() avatarLettersKey: string;\n\n\t/**\n\t * The key to identify an object\n\t */\n\t@Prop() identifierKey: string;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() queryKey?: string;\n\n\t/**\n\t * Wether to automatically select the first item\n\t */\n\t@Prop() autoSelectFirst: boolean = true;\n\n\t/**\n\t * Wether to show the chevron or not\n\t */\n\t@Prop() showChevron: boolean = true;\n\n\t/**\n\t * The maximum amount of items to display\n\t */\n\t@Prop() maxDisplayedItems: number = 10;\n\n\t/**\n\t * Wether to enable autocomplete\n\t */\n\t@Prop() enableAutocomplete: boolean = true;\n\n\t/**\n\t * Wether the input uses async filtering\n\t */\n\t@Prop() asyncFilter: boolean = false;\n\n\t/**\n\t * Wether to show loading items\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * Wether to show the select all item with multi select\n\t */\n\t@Prop() enableSelectAll: boolean = false;\n\n\t/**\n\t * The text of the select all item\n\t */\n\t@Prop() selectAllText: string = 'Select all';\n\n\t/**\n\t * The icon to prefix for select all\n\t */\n\t@Prop() selectAllIcon: IconVariant | undefined;\n\n\t/**\n\t * Event when the query of the autocomplete changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tqueryChange: EventEmitter<string>;\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the select all item has been selected or not\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tselectAllChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the dropdown shows\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdropdownShown: EventEmitter<any>;\n\n\t/**\n\t * The size of the input group used by the select\n\t */\n\t@Prop() size: 'sm' | 'base' = 'base';\n\n\t/**\n\t * The prefix of the input group used by the select\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The label of the input group used by the select\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop() helper: string;\n\n\t/**\n\t * Wether the field is required\n\t */\n\t@Prop({ reflect: true }) required: boolean = true;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled used by the select\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * Wether to show a \"add\" item\n\t */\n\t@Prop() showAddItem: boolean = false;\n\n\t/**\n\t * The text to show when add item is being shown\n\t */\n\t@Prop() addItemText: string = 'Add item';\n\n\t/**\n\t * Event when the add item is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tadd: EventEmitter;\n\n\t/**\n\t * The text to show when items is empty\n\t */\n\t@Prop() emptyStateText: string = 'No items available';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _showDropdown: any = false;\n\t@State() private _selectedItem: any = null;\n\n\t@State() private _allSelected: boolean = false;\n\n\t@State() private _amountHidden = 0;\n\n\t@AttachInternals() _internals: ElementInternals;\n\n\tprivate _inputRef: HTMLDivElement;\n\tprivate autocompleteInputRef: HTMLInputElement | HTMLTextAreaElement;\n\tprivate _multiContainerRef: HTMLElement;\n\n\tprivate _resizeObserver: ResizeObserver;\n\tprivate _resizeDebounceTimer: NodeJS.Timeout | undefined;\n\tprivate _checkSelectedItemsTimeout: NodeJS.Timeout | undefined;\n\n\tget _items() {\n\t\treturn this._getParsedItems();\n\t}\n\n\tget _displayValue() {\n\t\tconst placeholder = (\n\t\t\t<div class={textContainer({ variant: 'placeholder' })}>\n\t\t\t\t{this.placeholder}\n\t\t\t</div>\n\t\t);\n\n\t\tif (!this._selectedItem) {\n\t\t\treturn placeholder;\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tif (this._selectedItem?.length === 0) {\n\t\t\t\treturn placeholder;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclass={multiContainer()}\n\t\t\t\t\tref={ref => (this._multiContainerRef = ref)}\n\t\t\t\t>\n\t\t\t\t\t{this._selectedItem.map(item => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={multiItem()}\n\t\t\t\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item[this.selectionDisplayKey ?? this.displayKey]}\n\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\tclass='text-xs text-supportive-lilac group-hover/item:text-supportive-lilac-800'\n\t\t\t\t\t\t\t\tvariant='negative'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\n\t\t\t\t\t<div class='extra pointer-events-none hidden text-sm text-black-teal-100'>\n\t\t\t\t\t\t+{this._amountHidden}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn this._getDisplay(this._selectedItem, true);\n\t}\n\n\tget _identifierKey() {\n\t\treturn this.identifierKey ?? this.valueKey ?? 'value';\n\t}\n\n\tformResetCallback() {\n\t\tthis._selectValue(null);\n\t}\n\n\tformDisabledCallback(disabled: boolean) {\n\t\tif (!this._internals.form) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.disabled = disabled;\n\t}\n\n\tcomponentDidLoad() {\n\t\tif (!this.valueKey && !this.identifierKey) {\n\t\t\tthrow new Error('You must provide a valueKey or identifierKey');\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\n\t\t\tthis._resizeObserver = new ResizeObserver(() => {\n\t\t\t\tif (this._resizeDebounceTimer) {\n\t\t\t\t\tclearTimeout(this._resizeDebounceTimer);\n\t\t\t\t\tthis._resizeDebounceTimer = null;\n\t\t\t\t}\n\n\t\t\t\tthis._resizeDebounceTimer = setTimeout(() => {\n\t\t\t\t\tthis._setMultiContainerMaxWidth();\n\t\t\t\t\tthis._setCheckSelectedItemsTimeout();\n\t\t\t\t}, 200);\n\t\t\t});\n\t\t\tthis._resizeObserver.observe(this._el);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\tthis._valueChange();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.itemChanges();\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tif (this.multi) {\n\t\t\tthis._resizeObserver.disconnect();\n\t\t}\n\t}\n\n\trender() {\n\t\tlet buttonIcon = this.icon;\n\n\t\tif (\n\t\t\tthis._selectedItem &&\n\t\t\t!this.avatarKey &&\n\t\t\t!!this.iconKey &&\n\t\t\tthis._selectedItem?.[this.iconKey] &&\n\t\t\t!this.showIconOnSelectedItem\n\t\t) {\n\t\t\tbuttonIcon = this._selectedItem[this.iconKey];\n\t\t}\n\n\t\tif (this.avatarKey && this._selectedItem?.[this.avatarKey]) {\n\t\t\tbuttonIcon = null;\n\t\t}\n\n\t\tif (this.error?.length) {\n\t\t\tbuttonIcon = 'warning';\n\t\t}\n\n\t\treturn (\n\t\t\t<p-dropdown\n\t\t\t\tdisableTriggerClick={true}\n\t\t\t\tcalculateWidth={true}\n\t\t\t\tinsideClick={true}\n\t\t\t\tscrollable={this.enableAutocomplete ? 'large' : true}\n\t\t\t\tshow={this._showDropdown}\n\t\t\t\tonIsOpen={ev => this._onDropdownOpen(ev)}\n\t\t\t\tusePortal={this.usePortal}\n\t\t\t\tstrategy={this.strategy}\n\t\t\t>\n\t\t\t\t<p-field-container\n\t\t\t\t\tslot='trigger'\n\t\t\t\t\tvariant='write'\n\t\t\t\t\tprefix={this.prefix}\n\t\t\t\t\tlabel={this.label}\n\t\t\t\t\thelper={this.helper}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\terror={this.error}\n\t\t\t\t\tforceShowTooltip={!!this.error?.length && !this._showDropdown}\n\t\t\t\t>\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tclass='w-full'\n\t\t\t\t\t\tslot='content'\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tchevron={\n\t\t\t\t\t\t\tthis.showChevron ? (this._showDropdown ? 'up' : 'down') : false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tactive={this._showDropdown}\n\t\t\t\t\t\terror={!!this.error?.length}\n\t\t\t\t\t\ticon={buttonIcon}\n\t\t\t\t\t\tonClick={ev => this._onClick(ev)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass='relative min-w-0 flex-1'\n\t\t\t\t\t\t\tref={ref => (this._inputRef = ref)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._displayValue}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</p-button>\n\t\t\t\t</p-field-container>\n\t\t\t\t{this.loading ? this._getLoadingItems() : this._getItems()}\n\t\t\t\t{this.showAddItem && this._getAddItem()}\n\t\t\t</p-dropdown>\n\t\t);\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler(event) {\n\t\tif (!this._showDropdown || childOfComposed(event, this._el)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\t@Watch('value')\n\tprivate _valueChange() {\n\t\tsetTimeout(() => {\n\t\t\tthis._preselectItem();\n\t\t\tthis._setCheckSelectedItemsTimeout();\n\t\t});\n\t}\n\n\t@Watch('items')\n\tpublic itemChanges() {\n\t\tsetTimeout(() => this._preselectItem());\n\t}\n\n\t@Watch('_showDropdown')\n\tpublic _showDropdownChanges() {\n\t\tthis.dropdownShown.emit({\n\t\t\tvalue: this._showDropdown,\n\t\t\tquery: this.query,\n\t\t});\n\t}\n\n\t@Watch('multi')\n\tpublic multiChanges() {\n\t\tif (this._selectedItem && !Array.isArray(this._selectedItem)) {\n\t\t\tthis._selectedItem = [];\n\t\t}\n\t}\n\n\tprivate _preselectItem() {\n\t\tlet value =\n\t\t\ttypeof this.value === 'string' && this.multi\n\t\t\t\t? JSON.parse(this.value)\n\t\t\t\t: this.value;\n\n\t\tif (this.multi) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis.value = [];\n\t\t\t\tthis.valueChange.emit(this.value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = value;\n\t\t\tif (!value.length) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._selectedItem =\n\t\t\t\t!!this.valueKey && this.valueKey !== 'false'\n\t\t\t\t\t? this._items.filter(i => value.includes(i?.[this.valueKey]))\n\t\t\t\t\t: [...value];\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._selectedItem && !value && this.autoSelectFirst) {\n\t\t\tvalue = this._items[0];\n\t\t}\n\n\t\tconst identifier =\n\t\t\ttypeof value === 'object' && value !== null\n\t\t\t\t? value[this._identifierKey]\n\t\t\t\t: value;\n\t\tconst parsedValue =\n\t\t\ttypeof identifier === 'string' || typeof identifier === 'number'\n\t\t\t\t? identifier\n\t\t\t\t: JSON.stringify(identifier);\n\n\t\tconst currentValue = this._selectedItem\n\t\t\t? this._selectedItem?.[this._identifierKey]\n\t\t\t: null;\n\t\tconst currentParsedValue =\n\t\t\ttypeof currentValue === 'string' || typeof currentValue === 'number'\n\t\t\t\t? currentValue\n\t\t\t\t: JSON.stringify(currentValue);\n\n\t\tif (this._selectedItem && currentParsedValue === parsedValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._items?.length && value) {\n\t\t\tthis._selectValue(value, false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst items = this._getParsedItems(false);\n\t\tconst item = items.find(i => {\n\t\t\tconst itemIdentifier = i?.[this._identifierKey];\n\t\t\tconst parsedItemIdentifier =\n\t\t\t\ttypeof itemIdentifier === 'string' || typeof itemIdentifier === 'number'\n\t\t\t\t\t? itemIdentifier\n\t\t\t\t\t: JSON.stringify(itemIdentifier);\n\n\t\t\treturn parsedItemIdentifier === parsedValue;\n\t\t});\n\n\t\tthis._selectValue(!!item ? item : value, false);\n\t}\n\n\tprivate _selectValue(item, forceBlur = true) {\n\t\tlet value =\n\t\t\t!!this.valueKey && this.valueKey !== 'false' && item !== null\n\t\t\t\t? item?.[this.valueKey]\n\t\t\t\t: item;\n\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem || !Array.isArray(this._selectedItem)) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t}\n\n\t\t\tif (!this.value || !Array.isArray(this.value)) {\n\t\t\t\tthis.value = [];\n\t\t\t}\n\n\t\t\tconst selectedItem = [...this._selectedItem];\n\t\t\tconst valueArray = [...this.value];\n\n\t\t\tconst includesIndex = selectedItem.findIndex(\n\t\t\t\ti => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t);\n\t\t\tif (includesIndex === -1) {\n\t\t\t\tselectedItem.push(item);\n\t\t\t\tvalueArray.push(value);\n\t\t\t} else {\n\t\t\t\tselectedItem.splice(includesIndex, 1);\n\t\t\t\tvalueArray.splice(includesIndex, 1);\n\t\t\t}\n\n\t\t\tthis._selectedItem = selectedItem;\n\t\t\tthis.value = valueArray;\n\t\t\tthis.valueChange.emit(valueArray);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectedItem = item;\n\t\tthis.value = value;\n\t\tthis.valueChange.emit(value);\n\n\t\tthis._onBlur(forceBlur);\n\t}\n\n\tprivate _onClick(event) {\n\t\tconst composed = event?.composedPath();\n\n\t\tfor (const item of composed) {\n\t\t\tif (item.nodeName.toLowerCase() === 'p-button') {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (item.classList?.contains('item')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis._showDropdown = !this._showDropdown;\n\t}\n\n\tprivate _onBlur(force = false) {\n\t\tif (this.enableAutocomplete && !force) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onAutoComplete(ev) {\n\t\tif (!this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\n\t\tthis.query = ev.detail;\n\t\tthis.queryChange.emit(ev.detail);\n\t}\n\n\tprivate _checkvalue(key, item) {\n\t\treturn (\n\t\t\titem?.[key]\n\t\t\t\t?.toString()\n\t\t\t\t?.toLowerCase()\n\t\t\t\t.indexOf(this.query?.toLowerCase()) >= 0\n\t\t);\n\t}\n\n\tprivate _getItems() {\n\t\tlet items = this._items.map(item => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tuseContainer={false}\n\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\tactive={\n\t\t\t\t\tthis.multi &&\n\t\t\t\t\t!!this._selectedItem &&\n\t\t\t\t\tArray.isArray(this._selectedItem)\n\t\t\t\t\t\t? this._selectedItem.findIndex(\n\t\t\t\t\t\t\t\ti => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t\t\t\t ) >= 0\n\t\t\t\t\t\t: item[this._identifierKey] ===\n\t\t\t\t\t\t this._selectedItem?.[this._identifierKey]\n\t\t\t\t}\n\t\t\t\tcheckbox={this.multi ? true : false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t{this._getDisplay(item)}\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (!this._items.length) {\n\t\t\titems = [\n\t\t\t\t<p\n\t\t\t\t\tclass='w-full p-2 text-center text-sm text-black-teal-400'\n\t\t\t\t\tslot='items'\n\t\t\t\t>\n\t\t\t\t\t{this.emptyStateText}\n\t\t\t\t</p>,\n\t\t\t];\n\t\t}\n\n\t\tif (this.enableSelectAll && this._items.length) {\n\t\t\titems.unshift(\n\t\t\t\t<p-dropdown-menu-item\n\t\t\t\t\tslot='items'\n\t\t\t\t\tuseContainer={false}\n\t\t\t\t\tcheckbox\n\t\t\t\t\tonClick={() => this._selectAllChange()}\n\t\t\t\t\tactive={this._allSelected}\n\t\t\t\t>\n\t\t\t\t\t{this.selectAllIcon?.length ? (\n\t\t\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t\t\t<div class='flex w-6 justify-center text-lg'>\n\t\t\t\t\t\t\t\t<p-icon variant={this.selectAllIcon} />\n\t\t\t\t\t\t\t</div>{' '}\n\t\t\t\t\t\t\t{this.selectAllText}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tthis.selectAllText\n\t\t\t\t\t)}\n\t\t\t\t</p-dropdown-menu-item>\n\t\t\t);\n\t\t}\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAddItem() {\n\t\treturn (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tonClick={() => this.add.emit()}\n\t\t\t\tuseContainer={false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<span class='flex items-center gap-1 font-semibold text-teal-800'>\n\t\t\t\t\t{this.addItemText}\n\t\t\t\t\t<p-icon variant='plus' />\n\t\t\t\t</span>\n\t\t\t</p-dropdown-menu-item>\n\t\t);\n\t}\n\n\tprivate _getLoadingItems() {\n\t\tconst items = [0, 0, 0].map(() => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tenableHover={false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<p-loader\n\t\t\t\t\tvariant='ghost'\n\t\t\t\t\tclass='h-6 w-full rounded'\n\t\t\t\t/>\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAutoCompleteItem() {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclass='sticky top-0 mb-3 h-8'\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<p-field\n\t\t\t\t\tclass='block'\n\t\t\t\t\tplaceholder={this.autocompletePlaceholder}\n\t\t\t\t\tonValueChange={ev => this._onAutoComplete(ev)}\n\t\t\t\t\tonInputRefChange={ev => (this.autocompleteInputRef = ev.detail)}\n\t\t\t\t\tvalue={this.query}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _setMultiContainerMaxWidth() {\n\t\tif (!this._inputRef || !this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst calced = this._inputRef.clientWidth - 16;\n\t\tthis._multiContainerRef.style.maxWidth = `${calced >= 16 ? calced : 16}px`;\n\t}\n\n\tprivate _setCheckSelectedItemsTimeout() {\n\t\tif (this._checkSelectedItemsTimeout) {\n\t\t\tclearTimeout(this._checkSelectedItemsTimeout);\n\t\t}\n\n\t\tthis._checkSelectedItemsTimeout = setTimeout(\n\t\t\t() => this._checkSelectedItems(),\n\t\t\t50\n\t\t);\n\t}\n\n\tprivate _checkSelectedItems() {\n\t\tif (!this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst containerRect = this._multiContainerRef.getBoundingClientRect();\n\t\tconst items = this._multiContainerRef.querySelectorAll('.item');\n\n\t\tlet amountHidden = 0;\n\n\t\tfor (const child of items) {\n\t\t\tchild.classList.remove('hidden');\n\t\t\tchild.classList.add('flex');\n\n\t\t\tconst childRect = child.getBoundingClientRect();\n\t\t\tif (childRect.right > containerRect.right) {\n\t\t\t\tchild.classList.remove('flex');\n\t\t\t\tchild.classList.add('hidden');\n\t\t\t\tamountHidden++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tthis._amountHidden = amountHidden;\n\t\tconst extra = this._multiContainerRef.querySelector('.extra');\n\t\tif (!extra) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!extra.classList.contains('hidden')) {\n\t\t\textra.classList.add('hidden');\n\t\t}\n\n\t\tif (amountHidden > 0) {\n\t\t\textra.classList.remove('hidden');\n\t\t}\n\t}\n\n\tprivate _onDropdownOpen(ev) {\n\t\tif (!ev.detail || !this.autocompleteInputRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => this.autocompleteInputRef.focus(), 100);\n\t}\n\n\tprivate _selectAllChange() {\n\t\tthis._allSelected = !this._allSelected;\n\t\tthis.selectAllChange.emit(this._allSelected);\n\t}\n\n\tprivate _getDisplay(item, isSelection = false) {\n\t\tlet content = (\n\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t{\n\t\t\t\t\titem[\n\t\t\t\t\t\tisSelection\n\t\t\t\t\t\t\t? this.selectionDisplayKey ?? this.displayKey\n\t\t\t\t\t\t\t: this.displayKey\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t</div>\n\t\t);\n\n\t\tif (this.avatarKey) {\n\t\t\tcontent = (\n\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t<p-avatar\n\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\tsrc={item[this.avatarKey]}\n\t\t\t\t\t\tletters={item[this.avatarLettersKey]}\n\t\t\t\t\t></p-avatar>\n\t\t\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</div>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\tif (this.iconKey && (!isSelection || this.showIconOnSelectedItem)) {\n\t\t\tcontent = (\n\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t<p-icon\n\t\t\t\t\t\tclass='black-teal-300'\n\t\t\t\t\t\tvariant={item[this.iconKey] as IconVariant}\n\t\t\t\t\t/>\n\t\t\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</div>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(!isSelection || this.applyClassOnSelectedItem) &&\n\t\t\t!!item?.class?.length\n\t\t) {\n\t\t\treturn <div class={item.class}>{content}</div>;\n\t\t}\n\n\t\treturn content;\n\t}\n\n\tprivate _getParsedItems(applyPagination = true) {\n\t\tif (!this.items || this.loading) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet items =\n\t\t\ttypeof this.items === 'string' ? JSON.parse(this.items) : this.items;\n\n\t\tif (typeof items?.[0] === 'string') {\n\t\t\tthis.displayKey = 'text';\n\t\t\tthis.valueKey = 'value';\n\n\t\t\titems = items.map(str => ({\n\t\t\t\tvalue: str,\n\t\t\t\ttext: str,\n\t\t\t}));\n\t\t}\n\n\t\tif (this.query?.length && !this.asyncFilter) {\n\t\t\titems = items.filter(item => {\n\t\t\t\tif (this.queryKey) {\n\t\t\t\t\treturn this._checkvalue(this.queryKey, item);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tthis._checkvalue(this._identifierKey, item) ||\n\t\t\t\t\tthis._checkvalue(this.displayKey, item)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tif (!applyPagination) {\n\t\t\treturn items;\n\t\t}\n\n\t\treturn items?.slice(0, this.maxDisplayedItems);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"p-select.entry.esm.js","sources":["src/components/molecules/select/select.component.css?tag=p-select","src/components/molecules/select/select.component.tsx"],"sourcesContent":["","import { Strategy } from '@floating-ui/dom';\nimport {\n\tAttachInternals,\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport { childOfComposed } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\nimport { cva } from 'class-variance-authority';\n\nconst multiContainer = cva([\n\t'flex items-center gap-2',\n\t'flex-1 min-w-0 h-full',\n\t'pointer-events-none overflow-hidden',\n]);\n\nconst multiItem = cva([\n\t'item group/item',\n\t'pointer-events-auto cursor-pointer',\n\t'flex h-[1.625rem] items-center gap-2',\n\t'h-[1.625rem] px-2',\n\t'text-sm font-semibold whitespace-nowrap',\n\t'rounded-lg',\n\t'bg-supportive-lilac-100',\n]);\n\nconst textContainer = cva(\n\t'block w-full overflow-hidden text-ellipsis whitespace-nowrap text-start',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tplaceholder: 'text-black-teal-400',\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t},\n\t}\n);\n\n@Component({\n\ttag: 'p-select',\n\tstyleUrl: 'select.component.css',\n\tformAssociated: true,\n})\nexport class Select {\n\t/**\n\t * The items to show in the dropdown\n\t */\n\t@Prop() items: string | any[];\n\n\t/**\n\t * Wether to enable multi select\n\t */\n\t@Prop({ reflect: true }) multi: boolean;\n\n\t/**\n\t * Wether to use a portal for the dropdown container of the select\n\t */\n\t@Prop() usePortal: boolean = false;\n\n\t/**\n\t * The strategy to use for the dropdown placement\n\t */\n\t@Prop() strategy: Strategy = 'absolute';\n\n\t/**\n\t * Icon of the select box\n\t */\n\t@Prop() icon: IconVariant;\n\n\t/**\n\t * The current query\n\t */\n\t@Prop() query: string;\n\n\t/**\n\t * The placeholder of the input\n\t */\n\t@Prop() placeholder: string;\n\n\t/**\n\t * The placeholder of the input used for auto complete\n\t */\n\t@Prop() autocompletePlaceholder: string = 'Search...';\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value: any;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() displayKey: string = 'text';\n\n\t/**\n\t * The key of the object to display in the dropdown (overwrites displayKey)\n\t */\n\t@Prop() dropdownDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to display in the input (overwrites displayKey)\n\t */\n\t@Prop() selectionDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to return\n\t */\n\t@Prop() valueKey: string;\n\n\t/**\n\t * The key of avatar within an item to show\n\t */\n\t@Prop() avatarKey: string;\n\n\t/**\n\t * The key of icon variant within an item to show\n\t */\n\t@Prop() iconKey: string;\n\n\t/**\n\t * Wether to apply the item's icon on the selected item display\n\t */\n\t@Prop() showIconOnSelectedItem: string;\n\n\t/**\n\t * The key of a class in an item to apply\n\t */\n\t@Prop() classKey: string = 'class';\n\n\t/**\n\t * Wether to apply the item's class also on the selected item\n\t */\n\t@Prop() applyClassOnSelectedItem: string;\n\n\t/**\n\t * The key of avatar letters within an item to show when the avatar url doesn't work\n\t */\n\t@Prop() avatarLettersKey: string;\n\n\t/**\n\t * The key to identify an object\n\t */\n\t@Prop() identifierKey: string;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() queryKey?: string;\n\n\t/**\n\t * Wether to automatically select the first item\n\t */\n\t@Prop() autoSelectFirst: boolean = true;\n\n\t/**\n\t * Wether to show the chevron or not\n\t */\n\t@Prop() showChevron: boolean = true;\n\n\t/**\n\t * The maximum amount of items to display\n\t */\n\t@Prop() maxDisplayedItems: number = 10;\n\n\t/**\n\t * Wether to enable autocomplete\n\t */\n\t@Prop() enableAutocomplete: boolean = true;\n\n\t/**\n\t * Wether the input uses async filtering\n\t */\n\t@Prop() asyncFilter: boolean = false;\n\n\t/**\n\t * Wether to show loading items\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * Wether to show the select all item with multi select\n\t */\n\t@Prop() enableSelectAll: boolean = false;\n\n\t/**\n\t * The text of the select all item\n\t */\n\t@Prop() selectAllText: string = 'Select all';\n\n\t/**\n\t * The icon to prefix for select all\n\t */\n\t@Prop() selectAllIcon: IconVariant | undefined;\n\n\t/**\n\t * Event when the query of the autocomplete changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tqueryChange: EventEmitter<string>;\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the select all item has been selected or not\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tselectAllChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the dropdown shows\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdropdownShown: EventEmitter<any>;\n\n\t/**\n\t * The size of the input group used by the select\n\t */\n\t@Prop() size: 'sm' | 'base' = 'base';\n\n\t/**\n\t * The prefix of the input group used by the select\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The label of the input group used by the select\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop() helper: string;\n\n\t/**\n\t * Wether the field is required\n\t */\n\t@Prop({ reflect: true }) required: boolean = true;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled used by the select\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * Wether to show a \"add\" item\n\t */\n\t@Prop() showAddItem: boolean = false;\n\n\t/**\n\t * The text to show when add item is being shown\n\t */\n\t@Prop() addItemText: string = 'Add item';\n\n\t/**\n\t * Event when the add item is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tadd: EventEmitter;\n\n\t/**\n\t * The text to show when items is empty\n\t */\n\t@Prop() emptyStateText: string = 'No items available';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _showDropdown: any = false;\n\t@State() private _selectedItem: any = null;\n\n\t@State() private _allSelected: boolean = false;\n\n\t@State() private _amountHidden = 0;\n\n\t@AttachInternals() _internals: ElementInternals;\n\n\tprivate _inputRef: HTMLDivElement;\n\tprivate autocompleteInputRef: HTMLInputElement | HTMLTextAreaElement;\n\tprivate _multiContainerRef: HTMLElement;\n\n\tprivate _resizeObserver: ResizeObserver;\n\tprivate _resizeDebounceTimer: NodeJS.Timeout | undefined;\n\tprivate _checkSelectedItemsTimeout: NodeJS.Timeout | undefined;\n\n\tget _items() {\n\t\treturn this._getParsedItems();\n\t}\n\n\tget _displayValue() {\n\t\tconst placeholder = (\n\t\t\t<div class={textContainer({ variant: 'placeholder' })}>\n\t\t\t\t{this.placeholder}\n\t\t\t</div>\n\t\t);\n\n\t\tif (!this._selectedItem) {\n\t\t\treturn placeholder;\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tif (this._selectedItem?.length === 0) {\n\t\t\t\treturn placeholder;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclass={multiContainer()}\n\t\t\t\t\tref={ref => (this._multiContainerRef = ref)}\n\t\t\t\t>\n\t\t\t\t\t{this._selectedItem.map(item => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={multiItem()}\n\t\t\t\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item[this.selectionDisplayKey ?? this.displayKey]}\n\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\tclass='text-xs text-supportive-lilac group-hover/item:text-supportive-lilac-800'\n\t\t\t\t\t\t\t\tvariant='negative'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\n\t\t\t\t\t<div class='extra pointer-events-none hidden text-sm text-black-teal-100'>\n\t\t\t\t\t\t+{this._amountHidden}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn this._getDisplay(this._selectedItem, true);\n\t}\n\n\tget _identifierKey() {\n\t\treturn this.identifierKey ?? this.valueKey ?? 'value';\n\t}\n\n\tformResetCallback() {\n\t\tthis._selectValue(null);\n\t}\n\n\tformDisabledCallback(disabled: boolean) {\n\t\tif (!this._internals.form) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.disabled = disabled;\n\t}\n\n\tcomponentDidLoad() {\n\t\tif (!this.valueKey && !this.identifierKey) {\n\t\t\tthrow new Error('You must provide a valueKey or identifierKey');\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\n\t\t\tthis._resizeObserver = new ResizeObserver(() => {\n\t\t\t\tif (this._resizeDebounceTimer) {\n\t\t\t\t\tclearTimeout(this._resizeDebounceTimer);\n\t\t\t\t\tthis._resizeDebounceTimer = null;\n\t\t\t\t}\n\n\t\t\t\tthis._resizeDebounceTimer = setTimeout(() => {\n\t\t\t\t\tthis._setMultiContainerMaxWidth();\n\t\t\t\t\tthis._setCheckSelectedItemsTimeout();\n\t\t\t\t}, 200);\n\t\t\t});\n\t\t\tthis._resizeObserver.observe(this._el);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\tthis._valueChange();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.itemChanges();\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tif (this.multi) {\n\t\t\tthis._resizeObserver.disconnect();\n\t\t}\n\t}\n\n\trender() {\n\t\tlet buttonIcon = this.icon;\n\n\t\tif (\n\t\t\tthis._selectedItem &&\n\t\t\t!this.avatarKey &&\n\t\t\t!!this.iconKey &&\n\t\t\tthis._selectedItem?.[this.iconKey] &&\n\t\t\t!this.showIconOnSelectedItem\n\t\t) {\n\t\t\tbuttonIcon = this._selectedItem[this.iconKey];\n\t\t}\n\n\t\tif (this.avatarKey && this._selectedItem?.[this.avatarKey]) {\n\t\t\tbuttonIcon = null;\n\t\t}\n\n\t\tif (this.error?.length) {\n\t\t\tbuttonIcon = 'warning';\n\t\t}\n\n\t\treturn (\n\t\t\t<p-dropdown\n\t\t\t\tdisableTriggerClick={true}\n\t\t\t\tcalculateWidth={true}\n\t\t\t\tinsideClick={true}\n\t\t\t\tscrollable={this.enableAutocomplete ? 'large' : true}\n\t\t\t\tshow={this._showDropdown}\n\t\t\t\tonIsOpen={ev => this._onDropdownOpen(ev)}\n\t\t\t\tusePortal={this.usePortal}\n\t\t\t\tstrategy={this.strategy}\n\t\t\t>\n\t\t\t\t<p-field-container\n\t\t\t\t\tslot='trigger'\n\t\t\t\t\tvariant='write'\n\t\t\t\t\tprefix={this.prefix}\n\t\t\t\t\tlabel={this.label}\n\t\t\t\t\thelper={this.helper}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\terror={this.error}\n\t\t\t\t\tforceShowTooltip={!!this.error?.length && !this._showDropdown}\n\t\t\t\t>\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tclass='w-full'\n\t\t\t\t\t\tslot='content'\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tchevron={\n\t\t\t\t\t\t\tthis.showChevron ? (this._showDropdown ? 'up' : 'down') : false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tactive={this._showDropdown}\n\t\t\t\t\t\terror={!!this.error?.length}\n\t\t\t\t\t\ticon={buttonIcon}\n\t\t\t\t\t\tonClick={ev => this._onClick(ev)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass='relative min-w-0 flex-1'\n\t\t\t\t\t\t\tref={ref => (this._inputRef = ref)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._displayValue}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</p-button>\n\t\t\t\t</p-field-container>\n\t\t\t\t{this.loading ? this._getLoadingItems() : this._getItems()}\n\t\t\t\t{this.showAddItem && this._getAddItem()}\n\t\t\t</p-dropdown>\n\t\t);\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler(event) {\n\t\tif (!this._showDropdown || childOfComposed(event, this._el)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\t@Watch('value')\n\tprivate _valueChange() {\n\t\tsetTimeout(() => {\n\t\t\tthis._preselectItem();\n\t\t\tthis._setCheckSelectedItemsTimeout();\n\t\t});\n\t}\n\n\t@Watch('items')\n\tpublic itemChanges() {\n\t\tsetTimeout(() => this._preselectItem());\n\t}\n\n\t@Watch('_showDropdown')\n\tpublic _showDropdownChanges() {\n\t\tthis.dropdownShown.emit({\n\t\t\tvalue: this._showDropdown,\n\t\t\tquery: this.query,\n\t\t});\n\t}\n\n\t@Watch('multi')\n\tpublic multiChanges() {\n\t\tif (this._selectedItem && !Array.isArray(this._selectedItem)) {\n\t\t\tthis._selectedItem = [];\n\t\t}\n\t}\n\n\tprivate _preselectItem() {\n\t\tlet value =\n\t\t\ttypeof this.value === 'string' && this.multi\n\t\t\t\t? JSON.parse(this.value)\n\t\t\t\t: this.value;\n\n\t\tif (this.multi) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis.value = [];\n\t\t\t\tthis.valueChange.emit(this.value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = value;\n\t\t\tif (!value.length) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._selectedItem =\n\t\t\t\t!!this.valueKey && this.valueKey !== 'false'\n\t\t\t\t\t? this._items.filter(i => value.includes(i?.[this.valueKey]))\n\t\t\t\t\t: [...value];\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._selectedItem && !value && this.autoSelectFirst) {\n\t\t\tvalue = this._items[0];\n\t\t}\n\n\t\tconst identifier =\n\t\t\ttypeof value === 'object' && value !== null\n\t\t\t\t? value[this._identifierKey]\n\t\t\t\t: value;\n\t\tconst parsedValue =\n\t\t\ttypeof identifier === 'string' || typeof identifier === 'number'\n\t\t\t\t? identifier\n\t\t\t\t: JSON.stringify(identifier);\n\n\t\tconst currentValue = this._selectedItem\n\t\t\t? this._selectedItem?.[this._identifierKey]\n\t\t\t: null;\n\t\tconst currentParsedValue =\n\t\t\ttypeof currentValue === 'string' || typeof currentValue === 'number'\n\t\t\t\t? currentValue\n\t\t\t\t: JSON.stringify(currentValue);\n\n\t\tif (this._selectedItem && currentParsedValue === parsedValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._items?.length && value) {\n\t\t\tthis._selectValue(value, false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst items = this._getParsedItems(false);\n\t\tconst item = items.find(i => {\n\t\t\tconst itemIdentifier = i?.[this._identifierKey];\n\t\t\tconst parsedItemIdentifier =\n\t\t\t\ttypeof itemIdentifier === 'string' || typeof itemIdentifier === 'number'\n\t\t\t\t\t? itemIdentifier\n\t\t\t\t\t: JSON.stringify(itemIdentifier);\n\n\t\t\treturn parsedItemIdentifier === parsedValue;\n\t\t});\n\n\t\tthis._selectValue(!!item ? item : value, false);\n\t}\n\n\tprivate _selectValue(item, forceBlur = true) {\n\t\tlet value =\n\t\t\t!!this.valueKey && this.valueKey !== 'false' && item !== null\n\t\t\t\t? item?.[this.valueKey]\n\t\t\t\t: item;\n\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem || !Array.isArray(this._selectedItem)) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t}\n\n\t\t\tif (!this.value || !Array.isArray(this.value)) {\n\t\t\t\tthis.value = [];\n\t\t\t}\n\n\t\t\tconst selectedItem = [...this._selectedItem];\n\t\t\tconst valueArray = [...this.value];\n\n\t\t\tconst includesIndex = selectedItem.findIndex(\n\t\t\t\ti => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t);\n\t\t\tif (includesIndex === -1) {\n\t\t\t\tselectedItem.push(item);\n\t\t\t\tvalueArray.push(value);\n\t\t\t} else {\n\t\t\t\tselectedItem.splice(includesIndex, 1);\n\t\t\t\tvalueArray.splice(includesIndex, 1);\n\t\t\t}\n\n\t\t\tthis._selectedItem = selectedItem;\n\t\t\tthis.value = valueArray;\n\t\t\tthis.valueChange.emit(valueArray);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectedItem = item;\n\t\tthis.value = value;\n\t\tthis.valueChange.emit(value);\n\n\t\tthis._onBlur(forceBlur);\n\t}\n\n\tprivate _onClick(event) {\n\t\tconst composed = event?.composedPath();\n\n\t\tfor (const item of composed) {\n\t\t\tif (item.nodeName.toLowerCase() === 'p-button') {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (item.classList.contains('item')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis._showDropdown = !this._showDropdown;\n\t}\n\n\tprivate _onBlur(force = false) {\n\t\tif (this.enableAutocomplete && !force) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onAutoComplete(ev) {\n\t\tif (!this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\n\t\tthis.query = ev.detail;\n\t\tthis.queryChange.emit(ev.detail);\n\t}\n\n\tprivate _checkvalue(key, item) {\n\t\treturn (\n\t\t\titem?.[key]\n\t\t\t\t?.toString()\n\t\t\t\t?.toLowerCase()\n\t\t\t\t.indexOf(this.query?.toLowerCase()) >= 0\n\t\t);\n\t}\n\n\tprivate _getItems() {\n\t\tlet items = this._items.map(item => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tuseContainer={false}\n\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\tactive={\n\t\t\t\t\tthis.multi &&\n\t\t\t\t\t!!this._selectedItem &&\n\t\t\t\t\tArray.isArray(this._selectedItem)\n\t\t\t\t\t\t? this._selectedItem.findIndex(\n\t\t\t\t\t\t\t\ti => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t\t\t\t ) >= 0\n\t\t\t\t\t\t: item[this._identifierKey] ===\n\t\t\t\t\t\t this._selectedItem?.[this._identifierKey]\n\t\t\t\t}\n\t\t\t\tcheckbox={this.multi ? true : false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t{this._getDisplay(item)}\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (!this._items.length) {\n\t\t\titems = [\n\t\t\t\t<p\n\t\t\t\t\tclass='w-full p-2 text-center text-sm text-black-teal-400'\n\t\t\t\t\tslot='items'\n\t\t\t\t>\n\t\t\t\t\t{this.emptyStateText}\n\t\t\t\t</p>,\n\t\t\t];\n\t\t}\n\n\t\tif (this.enableSelectAll && this._items.length) {\n\t\t\titems.unshift(\n\t\t\t\t<p-dropdown-menu-item\n\t\t\t\t\tslot='items'\n\t\t\t\t\tuseContainer={false}\n\t\t\t\t\tcheckbox\n\t\t\t\t\tonClick={() => this._selectAllChange()}\n\t\t\t\t\tactive={this._allSelected}\n\t\t\t\t>\n\t\t\t\t\t{this.selectAllIcon?.length ? (\n\t\t\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t\t\t<div class='flex w-6 justify-center text-lg'>\n\t\t\t\t\t\t\t\t<p-icon variant={this.selectAllIcon} />\n\t\t\t\t\t\t\t</div>{' '}\n\t\t\t\t\t\t\t{this.selectAllText}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tthis.selectAllText\n\t\t\t\t\t)}\n\t\t\t\t</p-dropdown-menu-item>\n\t\t\t);\n\t\t}\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAddItem() {\n\t\treturn (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tonClick={() => this.add.emit()}\n\t\t\t\tuseContainer={false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<span class='flex items-center gap-1 font-semibold text-teal-800'>\n\t\t\t\t\t{this.addItemText}\n\t\t\t\t\t<p-icon variant='plus' />\n\t\t\t\t</span>\n\t\t\t</p-dropdown-menu-item>\n\t\t);\n\t}\n\n\tprivate _getLoadingItems() {\n\t\tconst items = [0, 0, 0].map(() => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tenableHover={false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<p-loader\n\t\t\t\t\tvariant='ghost'\n\t\t\t\t\tclass='h-6 w-full rounded'\n\t\t\t\t/>\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAutoCompleteItem() {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclass='sticky top-0 mb-3 h-8'\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<p-field\n\t\t\t\t\tclass='block'\n\t\t\t\t\tplaceholder={this.autocompletePlaceholder}\n\t\t\t\t\tonValueChange={ev => this._onAutoComplete(ev)}\n\t\t\t\t\tonInputRefChange={ev => (this.autocompleteInputRef = ev.detail)}\n\t\t\t\t\tvalue={this.query}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _setMultiContainerMaxWidth() {\n\t\tif (!this._inputRef || !this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst calced = this._inputRef.clientWidth - 16;\n\t\tthis._multiContainerRef.style.maxWidth = `${calced >= 16 ? calced : 16}px`;\n\t}\n\n\tprivate _setCheckSelectedItemsTimeout() {\n\t\tif (this._checkSelectedItemsTimeout) {\n\t\t\tclearTimeout(this._checkSelectedItemsTimeout);\n\t\t}\n\n\t\tthis._checkSelectedItemsTimeout = setTimeout(\n\t\t\t() => this._checkSelectedItems(),\n\t\t\t50\n\t\t);\n\t}\n\n\tprivate _checkSelectedItems() {\n\t\tif (!this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst containerRect = this._multiContainerRef.getBoundingClientRect();\n\t\tconst items = this._multiContainerRef.querySelectorAll('.item');\n\n\t\tlet amountHidden = 0;\n\n\t\tfor (const child of items) {\n\t\t\tchild.classList.remove('hidden');\n\t\t\tchild.classList.add('flex');\n\n\t\t\tconst childRect = child.getBoundingClientRect();\n\t\t\tif (childRect.right > containerRect.right) {\n\t\t\t\tchild.classList.remove('flex');\n\t\t\t\tchild.classList.add('hidden');\n\t\t\t\tamountHidden++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tthis._amountHidden = amountHidden;\n\t\tconst extra = this._multiContainerRef.querySelector('.extra');\n\t\tif (!extra) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!extra.classList.contains('hidden')) {\n\t\t\textra.classList.add('hidden');\n\t\t}\n\n\t\tif (amountHidden > 0) {\n\t\t\textra.classList.remove('hidden');\n\t\t}\n\t}\n\n\tprivate _onDropdownOpen(ev) {\n\t\tif (!ev.detail || !this.autocompleteInputRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.autocompleteInputRef.focus();\n\t}\n\n\tprivate _selectAllChange() {\n\t\tthis._allSelected = !this._allSelected;\n\t\tthis.selectAllChange.emit(this._allSelected);\n\t}\n\n\tprivate _getDisplay(item, isSelection = false) {\n\t\tlet content = (\n\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t{\n\t\t\t\t\titem[\n\t\t\t\t\t\tisSelection\n\t\t\t\t\t\t\t? this.selectionDisplayKey ?? this.displayKey\n\t\t\t\t\t\t\t: this.displayKey\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t</div>\n\t\t);\n\n\t\tif (this.avatarKey) {\n\t\t\tcontent = (\n\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t<p-avatar\n\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\tsrc={item[this.avatarKey]}\n\t\t\t\t\t\tletters={item[this.avatarLettersKey]}\n\t\t\t\t\t></p-avatar>\n\t\t\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</div>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\tif (this.iconKey && (!isSelection || this.showIconOnSelectedItem)) {\n\t\t\tcontent = (\n\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t<p-icon\n\t\t\t\t\t\tclass='black-teal-300'\n\t\t\t\t\t\tvariant={item[this.iconKey] as IconVariant}\n\t\t\t\t\t/>\n\t\t\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</div>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(!isSelection || this.applyClassOnSelectedItem) &&\n\t\t\t!!item?.class?.length\n\t\t) {\n\t\t\treturn <div class={item.class}>{content}</div>;\n\t\t}\n\n\t\treturn content;\n\t}\n\n\tprivate _getParsedItems(applyPagination = true) {\n\t\tif (!this.items || this.loading) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet items =\n\t\t\ttypeof this.items === 'string' ? JSON.parse(this.items) : this.items;\n\n\t\tif (typeof items?.[0] === 'string') {\n\t\t\tthis.displayKey = 'text';\n\t\t\tthis.valueKey = 'value';\n\n\t\t\titems = items.map(str => ({\n\t\t\t\tvalue: str,\n\t\t\t\ttext: str,\n\t\t\t}));\n\t\t}\n\n\t\tif (this.query?.length && !this.asyncFilter) {\n\t\t\titems = items.filter(item => {\n\t\t\t\tif (this.queryKey) {\n\t\t\t\t\treturn this._checkvalue(this.queryKey, item);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tthis._checkvalue(this._identifierKey, item) ||\n\t\t\t\t\tthis._checkvalue(this.displayKey, item)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tif (!applyPagination) {\n\t\t\treturn items;\n\t\t}\n\n\t\treturn items?.slice(0, this.maxDisplayedItems);\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-select.entry.esm.js","sources":["src/components/molecules/select/select.component.css?tag=p-select","src/components/molecules/select/select.component.tsx"],"sourcesContent":["","import { Strategy } from '@floating-ui/dom';\nimport {\n\tAttachInternals,\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport { childOfComposed } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\nimport { cva } from 'class-variance-authority';\n\nconst multiContainer = cva([\n\t'flex items-center gap-2',\n\t'flex-1 min-w-0 h-full',\n\t'pointer-events-none overflow-hidden',\n]);\n\nconst multiItem = cva([\n\t'item group/item',\n\t'pointer-events-auto cursor-pointer',\n\t'flex h-[1.625rem] items-center gap-2',\n\t'h-[1.625rem] px-2',\n\t'text-sm font-semibold whitespace-nowrap',\n\t'rounded-lg',\n\t'bg-supportive-lilac-100',\n]);\n\nconst textContainer = cva(\n\t'block w-full overflow-hidden text-ellipsis whitespace-nowrap text-start',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tplaceholder: 'text-black-teal-400',\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t},\n\t}\n);\n\n@Component({\n\ttag: 'p-select',\n\tstyleUrl: 'select.component.css',\n\tformAssociated: true,\n})\nexport class Select {\n\t/**\n\t * The items to show in the dropdown\n\t */\n\t@Prop() items: string | any[];\n\n\t/**\n\t * Wether to enable multi select\n\t */\n\t@Prop({ reflect: true }) multi: boolean;\n\n\t/**\n\t * Wether to use a portal for the dropdown container of the select\n\t */\n\t@Prop() usePortal: boolean = false;\n\n\t/**\n\t * The strategy to use for the dropdown placement\n\t */\n\t@Prop() strategy: Strategy = 'absolute';\n\n\t/**\n\t * Icon of the select box\n\t */\n\t@Prop() icon: IconVariant;\n\n\t/**\n\t * The current query\n\t */\n\t@Prop() query: string;\n\n\t/**\n\t * The placeholder of the input\n\t */\n\t@Prop() placeholder: string;\n\n\t/**\n\t * The placeholder of the input used for auto complete\n\t */\n\t@Prop() autocompletePlaceholder: string = 'Search...';\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value: any;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() displayKey: string = 'text';\n\n\t/**\n\t * The key of the object to display in the dropdown (overwrites displayKey)\n\t */\n\t@Prop() dropdownDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to display in the input (overwrites displayKey)\n\t */\n\t@Prop() selectionDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to return\n\t */\n\t@Prop() valueKey: string;\n\n\t/**\n\t * The key of avatar within an item to show\n\t */\n\t@Prop() avatarKey: string;\n\n\t/**\n\t * The key of icon variant within an item to show\n\t */\n\t@Prop() iconKey: string;\n\n\t/**\n\t * Wether to apply the item's icon on the selected item display\n\t */\n\t@Prop() showIconOnSelectedItem: string;\n\n\t/**\n\t * The key of a class in an item to apply\n\t */\n\t@Prop() classKey: string = 'class';\n\n\t/**\n\t * Wether to apply the item's class also on the selected item\n\t */\n\t@Prop() applyClassOnSelectedItem: string;\n\n\t/**\n\t * The key of avatar letters within an item to show when the avatar url doesn't work\n\t */\n\t@Prop() avatarLettersKey: string;\n\n\t/**\n\t * The key to identify an object\n\t */\n\t@Prop() identifierKey: string;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() queryKey?: string;\n\n\t/**\n\t * Wether to automatically select the first item\n\t */\n\t@Prop() autoSelectFirst: boolean = true;\n\n\t/**\n\t * Wether to show the chevron or not\n\t */\n\t@Prop() showChevron: boolean = true;\n\n\t/**\n\t * The maximum amount of items to display\n\t */\n\t@Prop() maxDisplayedItems: number = 10;\n\n\t/**\n\t * Wether to enable autocomplete\n\t */\n\t@Prop() enableAutocomplete: boolean = true;\n\n\t/**\n\t * Wether the input uses async filtering\n\t */\n\t@Prop() asyncFilter: boolean = false;\n\n\t/**\n\t * Wether to show loading items\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * Wether to show the select all item with multi select\n\t */\n\t@Prop() enableSelectAll: boolean = false;\n\n\t/**\n\t * The text of the select all item\n\t */\n\t@Prop() selectAllText: string = 'Select all';\n\n\t/**\n\t * The icon to prefix for select all\n\t */\n\t@Prop() selectAllIcon: IconVariant | undefined;\n\n\t/**\n\t * Event when the query of the autocomplete changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tqueryChange: EventEmitter<string>;\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the select all item has been selected or not\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tselectAllChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the dropdown shows\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdropdownShown: EventEmitter<any>;\n\n\t/**\n\t * The size of the input group used by the select\n\t */\n\t@Prop() size: 'sm' | 'base' = 'base';\n\n\t/**\n\t * The prefix of the input group used by the select\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The label of the input group used by the select\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop() helper: string;\n\n\t/**\n\t * Wether the field is required\n\t */\n\t@Prop({ reflect: true }) required: boolean = true;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled used by the select\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * Wether to show a \"add\" item\n\t */\n\t@Prop() showAddItem: boolean = false;\n\n\t/**\n\t * The text to show when add item is being shown\n\t */\n\t@Prop() addItemText: string = 'Add item';\n\n\t/**\n\t * Event when the add item is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tadd: EventEmitter;\n\n\t/**\n\t * The text to show when items is empty\n\t */\n\t@Prop() emptyStateText: string = 'No items available';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _showDropdown: any = false;\n\t@State() private _selectedItem: any = null;\n\n\t@State() private _allSelected: boolean = false;\n\n\t@State() private _amountHidden = 0;\n\n\t@AttachInternals() _internals: ElementInternals;\n\n\tprivate _inputRef: HTMLDivElement;\n\tprivate autocompleteInputRef: HTMLInputElement | HTMLTextAreaElement;\n\tprivate _multiContainerRef: HTMLElement;\n\n\tprivate _resizeObserver: ResizeObserver;\n\tprivate _resizeDebounceTimer: NodeJS.Timeout | undefined;\n\tprivate _checkSelectedItemsTimeout: NodeJS.Timeout | undefined;\n\n\tget _items() {\n\t\treturn this._getParsedItems();\n\t}\n\n\tget _displayValue() {\n\t\tconst placeholder = (\n\t\t\t<div class={textContainer({ variant: 'placeholder' })}>\n\t\t\t\t{this.placeholder}\n\t\t\t</div>\n\t\t);\n\n\t\tif (!this._selectedItem) {\n\t\t\treturn placeholder;\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tif (this._selectedItem?.length === 0) {\n\t\t\t\treturn placeholder;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclass={multiContainer()}\n\t\t\t\t\tref={ref => (this._multiContainerRef = ref)}\n\t\t\t\t>\n\t\t\t\t\t{this._selectedItem.map(item => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={multiItem()}\n\t\t\t\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item[this.selectionDisplayKey ?? this.displayKey]}\n\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\tclass='text-xs text-supportive-lilac group-hover/item:text-supportive-lilac-800'\n\t\t\t\t\t\t\t\tvariant='negative'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\n\t\t\t\t\t<div class='extra pointer-events-none hidden text-sm text-black-teal-100'>\n\t\t\t\t\t\t+{this._amountHidden}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn this._getDisplay(this._selectedItem, true);\n\t}\n\n\tget _identifierKey() {\n\t\treturn this.identifierKey ?? this.valueKey ?? 'value';\n\t}\n\n\tformResetCallback() {\n\t\tthis._selectValue(null);\n\t}\n\n\tformDisabledCallback(disabled: boolean) {\n\t\tif (!this._internals.form) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.disabled = disabled;\n\t}\n\n\tcomponentDidLoad() {\n\t\tif (!this.valueKey && !this.identifierKey) {\n\t\t\tthrow new Error('You must provide a valueKey or identifierKey');\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\n\t\t\tthis._resizeObserver = new ResizeObserver(() => {\n\t\t\t\tif (this._resizeDebounceTimer) {\n\t\t\t\t\tclearTimeout(this._resizeDebounceTimer);\n\t\t\t\t\tthis._resizeDebounceTimer = null;\n\t\t\t\t}\n\n\t\t\t\tthis._resizeDebounceTimer = setTimeout(() => {\n\t\t\t\t\tthis._setMultiContainerMaxWidth();\n\t\t\t\t\tthis._setCheckSelectedItemsTimeout();\n\t\t\t\t}, 200);\n\t\t\t});\n\t\t\tthis._resizeObserver.observe(this._el);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\tthis._valueChange();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.itemChanges();\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tif (this.multi) {\n\t\t\tthis._resizeObserver.disconnect();\n\t\t}\n\t}\n\n\trender() {\n\t\tlet buttonIcon = this.icon;\n\n\t\tif (\n\t\t\tthis._selectedItem &&\n\t\t\t!this.avatarKey &&\n\t\t\t!!this.iconKey &&\n\t\t\tthis._selectedItem?.[this.iconKey] &&\n\t\t\t!this.showIconOnSelectedItem\n\t\t) {\n\t\t\tbuttonIcon = this._selectedItem[this.iconKey];\n\t\t}\n\n\t\tif (this.avatarKey && this._selectedItem?.[this.avatarKey]) {\n\t\t\tbuttonIcon = null;\n\t\t}\n\n\t\tif (this.error?.length) {\n\t\t\tbuttonIcon = 'warning';\n\t\t}\n\n\t\treturn (\n\t\t\t<p-dropdown\n\t\t\t\tdisableTriggerClick={true}\n\t\t\t\tcalculateWidth={true}\n\t\t\t\tinsideClick={true}\n\t\t\t\tscrollable={this.enableAutocomplete ? 'large' : true}\n\t\t\t\tshow={this._showDropdown}\n\t\t\t\tonIsOpen={ev => this._onDropdownOpen(ev)}\n\t\t\t\tusePortal={this.usePortal}\n\t\t\t\tstrategy={this.strategy}\n\t\t\t>\n\t\t\t\t<p-field-container\n\t\t\t\t\tslot='trigger'\n\t\t\t\t\tvariant='write'\n\t\t\t\t\tprefix={this.prefix}\n\t\t\t\t\tlabel={this.label}\n\t\t\t\t\thelper={this.helper}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\terror={this.error}\n\t\t\t\t\tforceShowTooltip={!!this.error?.length && !this._showDropdown}\n\t\t\t\t>\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tclass='w-full'\n\t\t\t\t\t\tslot='content'\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tchevron={\n\t\t\t\t\t\t\tthis.showChevron ? (this._showDropdown ? 'up' : 'down') : false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tactive={this._showDropdown}\n\t\t\t\t\t\terror={!!this.error?.length}\n\t\t\t\t\t\ticon={buttonIcon}\n\t\t\t\t\t\tonClick={ev => this._onClick(ev)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass='relative min-w-0 flex-1'\n\t\t\t\t\t\t\tref={ref => (this._inputRef = ref)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._displayValue}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</p-button>\n\t\t\t\t</p-field-container>\n\t\t\t\t{this.loading ? this._getLoadingItems() : this._getItems()}\n\t\t\t\t{this.showAddItem && this._getAddItem()}\n\t\t\t</p-dropdown>\n\t\t);\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler(event) {\n\t\tif (!this._showDropdown || childOfComposed(event, this._el)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\t@Watch('value')\n\tprivate _valueChange() {\n\t\tsetTimeout(() => {\n\t\t\tthis._preselectItem();\n\t\t\tthis._setCheckSelectedItemsTimeout();\n\t\t});\n\t}\n\n\t@Watch('items')\n\tpublic itemChanges() {\n\t\tsetTimeout(() => this._preselectItem());\n\t}\n\n\t@Watch('_showDropdown')\n\tpublic _showDropdownChanges() {\n\t\tthis.dropdownShown.emit({\n\t\t\tvalue: this._showDropdown,\n\t\t\tquery: this.query,\n\t\t});\n\t}\n\n\t@Watch('multi')\n\tpublic multiChanges() {\n\t\tif (this._selectedItem && !Array.isArray(this._selectedItem)) {\n\t\t\tthis._selectedItem = [];\n\t\t}\n\t}\n\n\tprivate _preselectItem() {\n\t\tlet value =\n\t\t\ttypeof this.value === 'string' && this.multi\n\t\t\t\t? JSON.parse(this.value)\n\t\t\t\t: this.value;\n\n\t\tif (this.multi) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis.value = [];\n\t\t\t\tthis.valueChange.emit(this.value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = value;\n\t\t\tif (!value.length) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._selectedItem =\n\t\t\t\t!!this.valueKey && this.valueKey !== 'false'\n\t\t\t\t\t? this._items.filter(i => value.includes(i?.[this.valueKey]))\n\t\t\t\t\t: [...value];\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._selectedItem && !value && this.autoSelectFirst) {\n\t\t\tvalue = this._items[0];\n\t\t}\n\n\t\tconst identifier =\n\t\t\ttypeof value === 'object' && value !== null\n\t\t\t\t? value[this._identifierKey]\n\t\t\t\t: value;\n\t\tconst parsedValue =\n\t\t\ttypeof identifier === 'string' || typeof identifier === 'number'\n\t\t\t\t? identifier\n\t\t\t\t: JSON.stringify(identifier);\n\n\t\tconst currentValue = this._selectedItem\n\t\t\t? this._selectedItem?.[this._identifierKey]\n\t\t\t: null;\n\t\tconst currentParsedValue =\n\t\t\ttypeof currentValue === 'string' || typeof currentValue === 'number'\n\t\t\t\t? currentValue\n\t\t\t\t: JSON.stringify(currentValue);\n\n\t\tif (this._selectedItem && currentParsedValue === parsedValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._items?.length && value) {\n\t\t\tthis._selectValue(value, false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst items = this._getParsedItems(false);\n\t\tconst item = items.find(i => {\n\t\t\tconst itemIdentifier = i?.[this._identifierKey];\n\t\t\tconst parsedItemIdentifier =\n\t\t\t\ttypeof itemIdentifier === 'string' || typeof itemIdentifier === 'number'\n\t\t\t\t\t? itemIdentifier\n\t\t\t\t\t: JSON.stringify(itemIdentifier);\n\n\t\t\treturn parsedItemIdentifier === parsedValue;\n\t\t});\n\n\t\tthis._selectValue(!!item ? item : value, false);\n\t}\n\n\tprivate _selectValue(item, forceBlur = true) {\n\t\tlet value =\n\t\t\t!!this.valueKey && this.valueKey !== 'false' && item !== null\n\t\t\t\t? item?.[this.valueKey]\n\t\t\t\t: item;\n\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem || !Array.isArray(this._selectedItem)) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t}\n\n\t\t\tif (!this.value || !Array.isArray(this.value)) {\n\t\t\t\tthis.value = [];\n\t\t\t}\n\n\t\t\tconst selectedItem = [...this._selectedItem];\n\t\t\tconst valueArray = [...this.value];\n\n\t\t\tconst includesIndex = selectedItem.findIndex(\n\t\t\t\ti => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t);\n\t\t\tif (includesIndex === -1) {\n\t\t\t\tselectedItem.push(item);\n\t\t\t\tvalueArray.push(value);\n\t\t\t} else {\n\t\t\t\tselectedItem.splice(includesIndex, 1);\n\t\t\t\tvalueArray.splice(includesIndex, 1);\n\t\t\t}\n\n\t\t\tthis._selectedItem = selectedItem;\n\t\t\tthis.value = valueArray;\n\t\t\tthis.valueChange.emit(valueArray);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectedItem = item;\n\t\tthis.value = value;\n\t\tthis.valueChange.emit(value);\n\n\t\tthis._onBlur(forceBlur);\n\t}\n\n\tprivate _onClick(event) {\n\t\tconst composed = event?.composedPath();\n\n\t\tfor (const item of composed) {\n\t\t\tif (item.nodeName.toLowerCase() === 'p-button') {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (item.classList?.contains('item')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis._showDropdown = !this._showDropdown;\n\t}\n\n\tprivate _onBlur(force = false) {\n\t\tif (this.enableAutocomplete && !force) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onAutoComplete(ev) {\n\t\tif (!this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\n\t\tthis.query = ev.detail;\n\t\tthis.queryChange.emit(ev.detail);\n\t}\n\n\tprivate _checkvalue(key, item) {\n\t\treturn (\n\t\t\titem?.[key]\n\t\t\t\t?.toString()\n\t\t\t\t?.toLowerCase()\n\t\t\t\t.indexOf(this.query?.toLowerCase()) >= 0\n\t\t);\n\t}\n\n\tprivate _getItems() {\n\t\tlet items = this._items.map(item => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tuseContainer={false}\n\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\tactive={\n\t\t\t\t\tthis.multi &&\n\t\t\t\t\t!!this._selectedItem &&\n\t\t\t\t\tArray.isArray(this._selectedItem)\n\t\t\t\t\t\t? this._selectedItem.findIndex(\n\t\t\t\t\t\t\t\ti => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t\t\t\t ) >= 0\n\t\t\t\t\t\t: item[this._identifierKey] ===\n\t\t\t\t\t\t this._selectedItem?.[this._identifierKey]\n\t\t\t\t}\n\t\t\t\tcheckbox={this.multi ? true : false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t{this._getDisplay(item)}\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (!this._items.length) {\n\t\t\titems = [\n\t\t\t\t<p\n\t\t\t\t\tclass='w-full p-2 text-center text-sm text-black-teal-400'\n\t\t\t\t\tslot='items'\n\t\t\t\t>\n\t\t\t\t\t{this.emptyStateText}\n\t\t\t\t</p>,\n\t\t\t];\n\t\t}\n\n\t\tif (this.enableSelectAll && this._items.length) {\n\t\t\titems.unshift(\n\t\t\t\t<p-dropdown-menu-item\n\t\t\t\t\tslot='items'\n\t\t\t\t\tuseContainer={false}\n\t\t\t\t\tcheckbox\n\t\t\t\t\tonClick={() => this._selectAllChange()}\n\t\t\t\t\tactive={this._allSelected}\n\t\t\t\t>\n\t\t\t\t\t{this.selectAllIcon?.length ? (\n\t\t\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t\t\t<div class='flex w-6 justify-center text-lg'>\n\t\t\t\t\t\t\t\t<p-icon variant={this.selectAllIcon} />\n\t\t\t\t\t\t\t</div>{' '}\n\t\t\t\t\t\t\t{this.selectAllText}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tthis.selectAllText\n\t\t\t\t\t)}\n\t\t\t\t</p-dropdown-menu-item>\n\t\t\t);\n\t\t}\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAddItem() {\n\t\treturn (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tonClick={() => this.add.emit()}\n\t\t\t\tuseContainer={false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<span class='flex items-center gap-1 font-semibold text-teal-800'>\n\t\t\t\t\t{this.addItemText}\n\t\t\t\t\t<p-icon variant='plus' />\n\t\t\t\t</span>\n\t\t\t</p-dropdown-menu-item>\n\t\t);\n\t}\n\n\tprivate _getLoadingItems() {\n\t\tconst items = [0, 0, 0].map(() => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tenableHover={false}\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<p-loader\n\t\t\t\t\tvariant='ghost'\n\t\t\t\t\tclass='h-6 w-full rounded'\n\t\t\t\t/>\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAutoCompleteItem() {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclass='sticky top-0 mb-3 h-8'\n\t\t\t\tslot='items'\n\t\t\t>\n\t\t\t\t<p-field\n\t\t\t\t\tclass='block'\n\t\t\t\t\tplaceholder={this.autocompletePlaceholder}\n\t\t\t\t\tonValueChange={ev => this._onAutoComplete(ev)}\n\t\t\t\t\tonInputRefChange={ev => (this.autocompleteInputRef = ev.detail)}\n\t\t\t\t\tvalue={this.query}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _setMultiContainerMaxWidth() {\n\t\tif (!this._inputRef || !this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst calced = this._inputRef.clientWidth - 16;\n\t\tthis._multiContainerRef.style.maxWidth = `${calced >= 16 ? calced : 16}px`;\n\t}\n\n\tprivate _setCheckSelectedItemsTimeout() {\n\t\tif (this._checkSelectedItemsTimeout) {\n\t\t\tclearTimeout(this._checkSelectedItemsTimeout);\n\t\t}\n\n\t\tthis._checkSelectedItemsTimeout = setTimeout(\n\t\t\t() => this._checkSelectedItems(),\n\t\t\t50\n\t\t);\n\t}\n\n\tprivate _checkSelectedItems() {\n\t\tif (!this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst containerRect = this._multiContainerRef.getBoundingClientRect();\n\t\tconst items = this._multiContainerRef.querySelectorAll('.item');\n\n\t\tlet amountHidden = 0;\n\n\t\tfor (const child of items) {\n\t\t\tchild.classList.remove('hidden');\n\t\t\tchild.classList.add('flex');\n\n\t\t\tconst childRect = child.getBoundingClientRect();\n\t\t\tif (childRect.right > containerRect.right) {\n\t\t\t\tchild.classList.remove('flex');\n\t\t\t\tchild.classList.add('hidden');\n\t\t\t\tamountHidden++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tthis._amountHidden = amountHidden;\n\t\tconst extra = this._multiContainerRef.querySelector('.extra');\n\t\tif (!extra) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!extra.classList.contains('hidden')) {\n\t\t\textra.classList.add('hidden');\n\t\t}\n\n\t\tif (amountHidden > 0) {\n\t\t\textra.classList.remove('hidden');\n\t\t}\n\t}\n\n\tprivate _onDropdownOpen(ev) {\n\t\tif (!ev.detail || !this.autocompleteInputRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => this.autocompleteInputRef.focus(), 100);\n\t}\n\n\tprivate _selectAllChange() {\n\t\tthis._allSelected = !this._allSelected;\n\t\tthis.selectAllChange.emit(this._allSelected);\n\t}\n\n\tprivate _getDisplay(item, isSelection = false) {\n\t\tlet content = (\n\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t{\n\t\t\t\t\titem[\n\t\t\t\t\t\tisSelection\n\t\t\t\t\t\t\t? this.selectionDisplayKey ?? this.displayKey\n\t\t\t\t\t\t\t: this.displayKey\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t</div>\n\t\t);\n\n\t\tif (this.avatarKey) {\n\t\t\tcontent = (\n\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t<p-avatar\n\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\tsrc={item[this.avatarKey]}\n\t\t\t\t\t\tletters={item[this.avatarLettersKey]}\n\t\t\t\t\t></p-avatar>\n\t\t\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</div>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\tif (this.iconKey && (!isSelection || this.showIconOnSelectedItem)) {\n\t\t\tcontent = (\n\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t<p-icon\n\t\t\t\t\t\tclass='black-teal-300'\n\t\t\t\t\t\tvariant={item[this.iconKey] as IconVariant}\n\t\t\t\t\t/>\n\t\t\t\t\t<div class={textContainer({ variant: 'default' })}>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</div>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(!isSelection || this.applyClassOnSelectedItem) &&\n\t\t\t!!item?.class?.length\n\t\t) {\n\t\t\treturn <div class={item.class}>{content}</div>;\n\t\t}\n\n\t\treturn content;\n\t}\n\n\tprivate _getParsedItems(applyPagination = true) {\n\t\tif (!this.items || this.loading) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet items =\n\t\t\ttypeof this.items === 'string' ? JSON.parse(this.items) : this.items;\n\n\t\tif (typeof items?.[0] === 'string') {\n\t\t\tthis.displayKey = 'text';\n\t\t\tthis.valueKey = 'value';\n\n\t\t\titems = items.map(str => ({\n\t\t\t\tvalue: str,\n\t\t\t\ttext: str,\n\t\t\t}));\n\t\t}\n\n\t\tif (this.query?.length && !this.asyncFilter) {\n\t\t\titems = items.filter(item => {\n\t\t\t\tif (this.queryKey) {\n\t\t\t\t\treturn this._checkvalue(this.queryKey, item);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tthis._checkvalue(this._identifierKey, item) ||\n\t\t\t\t\tthis._checkvalue(this.displayKey, item)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tif (!applyPagination) {\n\t\t\treturn items;\n\t\t}\n\n\t\treturn items?.slice(0, this.maxDisplayedItems);\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-table-column.entry.esm.js","sources":["src/components/helpers/table/column/table-column.component.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Prop } from '@stencil/core';\nimport { TableColumnSizes } from '../../../../types/table';\n\n@Component({\n\ttag: 'p-table-column',\n})\nexport class TableColumn {\n\t/**\n\t * The path of the value of the item you want to display\n\t */\n\t@Prop({ reflect: true, mutable: true }) path: string;\n\n\t/**\n\t * The type of the column\n\t */\n\t@Prop({ reflect: true, mutable: true }) type: 'td' | 'th' = 'td';\n\n\t/**\n\t * The name of the column\n\t */\n\t@Prop({ reflect: true, mutable: true }) name: string;\n\n\t/**\n\t * Wether the column should use the slot\n\t */\n\t@Prop({ reflect: true, mutable: true }) useSlot: boolean = false;\n\n\t/**\n\t * Wether the column should have a checkbox\n\t */\n\t@Prop({ reflect: true, mutable: true }) hasCheckbox: boolean = false;\n\n\t/**\n\t * The alignment of the column\n\t */\n\t@Prop({ reflect: true, mutable: true }) align: 'start' | 'center' | 'end' =\n\t\t'start';\n\n\t/**\n\t * Parsed sizes based on the complete set of columns\n\t */\n\t@Prop({ reflect: true, mutable: true }) parsedSizes:\n\t\t| TableColumnSizes\n\t\t| undefined;\n\n\t/**\n\t * The sizes of the column\n\t */\n\t@Prop({ mutable: true }) sizes:\n\t\t| 'auto'\n\t\t| 'hidden'\n\t\t| 'full'\n\t\t| number\n\t\t| TableColumnSizes = 'auto';\n\n\t/**\n\t * Event to let the table know it has to re render\n\t */\n\t@Event({ bubbles: true, composed: true })\n\ttableDefinitionChanged: EventEmitter<boolean>;\n\n\tcomponentDidUpdate() {\n\t\tthis.tableDefinitionChanged.emit(true);\n\t}\n\n\trender() {\n\t\treturn;\n\t}\n}\n"],"names":[],"mappings":";;MAMa,WAAW,GAAA,MAAA;;;;;AACvB;;AAEG;AACqC,IAAA,IAAI;AAE5C;;AAEG;IACqC,IAAI,GAAgB,IAAI;AAEhE;;AAEG;AACqC,IAAA,IAAI;AAE5C;;AAEG;IACqC,OAAO,GAAY,KAAK;AAEhE;;AAEG;IACqC,WAAW,GAAY,KAAK;AAEpE;;AAEG;IACqC,KAAK,GAC5C,OAAO;AAER;;AAEG;AACqC,IAAA,WAAW;AAInD;;AAEG;IACsB,KAAK,GAKR,MAAM;AAE5B;;AAEG;AAEH,IAAA,sBAAsB;IAEtB,kBAAkB,GAAA;AACjB,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGvC,MAAM,GAAA;QACL;;;;;;"}
1
+ {"version":3,"file":"p-table-column.entry.esm.js","sources":["src/components/helpers/table/column/table-column.component.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Prop } from '@stencil/core';\nimport { TableColumnSizes } from '../../../../types/table';\n\n@Component({\n\ttag: 'p-table-column',\n})\nexport class TableColumn {\n\t/**\n\t * The path of the value of the item you want to display\n\t */\n\t@Prop({ reflect: true, mutable: true }) path: string;\n\n\t/**\n\t * The variant of the column\n\t */\n\t@Prop({ reflect: true, mutable: true }) variant:\n\t\t| 'subject'\n\t\t| 'default'\n\t\t| 'highlight' = 'default';\n\n\t/**\n\t * The name of the column\n\t */\n\t@Prop({ reflect: true, mutable: true }) name: string;\n\n\t/**\n\t * Wether the column should use the slot\n\t */\n\t@Prop({ reflect: true, mutable: true }) useSlot: boolean = false;\n\n\t/**\n\t * Wether the column should have a checkbox\n\t */\n\t@Prop({ reflect: true, mutable: true }) hasCheckbox: boolean = false;\n\n\t/**\n\t * The alignment of the column\n\t */\n\t@Prop({ reflect: true, mutable: true }) align: 'start' | 'center' | 'end' =\n\t\t'start';\n\n\t/**\n\t * Parsed sizes based on the complete set of columns\n\t */\n\t@Prop({ reflect: true, mutable: true }) parsedSizes:\n\t\t| TableColumnSizes\n\t\t| undefined;\n\n\t/**\n\t * The sizes of the column\n\t */\n\t@Prop({ mutable: true }) sizes:\n\t\t| 'auto'\n\t\t| 'hidden'\n\t\t| 'full'\n\t\t| number\n\t\t| TableColumnSizes = 'auto';\n\n\t/**\n\t * Event to let the table know it has to re render\n\t */\n\t@Event({ bubbles: true, composed: true })\n\ttableDefinitionChanged: EventEmitter<boolean>;\n\n\tcomponentDidUpdate() {\n\t\tthis.tableDefinitionChanged.emit(true);\n\t}\n\n\trender() {\n\t\treturn;\n\t}\n}\n"],"names":[],"mappings":";;MAMa,WAAW,GAAA,MAAA;;;;;AACvB;;AAEG;AACqC,IAAA,IAAI;AAE5C;;AAEG;IACqC,OAAO,GAG9B,SAAS;AAE1B;;AAEG;AACqC,IAAA,IAAI;AAE5C;;AAEG;IACqC,OAAO,GAAY,KAAK;AAEhE;;AAEG;IACqC,WAAW,GAAY,KAAK;AAEpE;;AAEG;IACqC,KAAK,GAC5C,OAAO;AAER;;AAEG;AACqC,IAAA,WAAW;AAInD;;AAEG;IACsB,KAAK,GAKR,MAAM;AAE5B;;AAEG;AAEH,IAAA,sBAAsB;IAEtB,kBAAkB,GAAA;AACjB,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGvC,MAAM,GAAA;QACL;;;;;;"}