@paperless/core 1.54.0 → 1.54.2

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 (57) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/build/p-210a2c88.entry.js +2 -0
  3. package/dist/{paperless/p-7dc32e95.entry.js.map → build/p-210a2c88.entry.js.map} +1 -1
  4. package/dist/build/{p-57f4d524.entry.js → p-93c3ab3b.entry.js} +2 -2
  5. package/dist/build/p-93c3ab3b.entry.js.map +1 -0
  6. package/dist/build/{p-8414aef5.entry.js → p-be4c976c.entry.js} +2 -2
  7. package/dist/build/p-be4c976c.entry.js.map +1 -0
  8. package/dist/build/paperless.esm.js +1 -1
  9. package/dist/build/paperless.esm.js.map +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/p-button_3.cjs.entry.js +7 -3
  12. package/dist/cjs/p-button_3.cjs.entry.js.map +1 -1
  13. package/dist/cjs/p-floating-menu-container_8.cjs.entry.js +1 -1
  14. package/dist/cjs/p-floating-menu-container_8.cjs.entry.js.map +1 -1
  15. package/dist/cjs/p-select.cjs.entry.js +1 -1
  16. package/dist/cjs/p-select.cjs.entry.js.map +1 -1
  17. package/dist/cjs/paperless.cjs.js +1 -1
  18. package/dist/collection/components/atoms/button/button.component.js +25 -3
  19. package/dist/collection/components/atoms/button/button.component.js.map +1 -1
  20. package/dist/collection/components/molecules/select/select.component.js +1 -1
  21. package/dist/collection/components/molecules/select/select.component.js.map +1 -1
  22. package/dist/collection/components/molecules/table-cell/table-cell.component.css +1 -1
  23. package/dist/components/button.component.js +8 -3
  24. package/dist/components/button.component.js.map +1 -1
  25. package/dist/components/p-select.js +1 -1
  26. package/dist/components/p-select.js.map +1 -1
  27. package/dist/components/table-cell.component.js +1 -1
  28. package/dist/components/table-cell.component.js.map +1 -1
  29. package/dist/esm/loader.js +1 -1
  30. package/dist/esm/p-button_3.entry.js +7 -3
  31. package/dist/esm/p-button_3.entry.js.map +1 -1
  32. package/dist/esm/p-floating-menu-container_8.entry.js +1 -1
  33. package/dist/esm/p-floating-menu-container_8.entry.js.map +1 -1
  34. package/dist/esm/p-select.entry.js +1 -1
  35. package/dist/esm/p-select.entry.js.map +1 -1
  36. package/dist/esm/paperless.js +1 -1
  37. package/dist/index.html +1 -1
  38. package/dist/paperless/p-210a2c88.entry.js +2 -0
  39. package/dist/{build/p-7dc32e95.entry.js.map → paperless/p-210a2c88.entry.js.map} +1 -1
  40. package/dist/paperless/{p-57f4d524.entry.js → p-93c3ab3b.entry.js} +2 -2
  41. package/dist/paperless/p-93c3ab3b.entry.js.map +1 -0
  42. package/dist/paperless/{p-8414aef5.entry.js → p-be4c976c.entry.js} +2 -2
  43. package/dist/paperless/p-be4c976c.entry.js.map +1 -0
  44. package/dist/paperless/paperless.esm.js +1 -1
  45. package/dist/paperless/paperless.esm.js.map +1 -1
  46. package/dist/sw.js +1 -1
  47. package/dist/sw.js.map +1 -1
  48. package/dist/types/components/atoms/button/button.component.d.ts +4 -0
  49. package/dist/types/components.d.ts +8 -0
  50. package/hydrate/index.js +10 -5
  51. package/package.json +1 -1
  52. package/dist/build/p-57f4d524.entry.js.map +0 -1
  53. package/dist/build/p-7dc32e95.entry.js +0 -2
  54. package/dist/build/p-8414aef5.entry.js.map +0 -1
  55. package/dist/paperless/p-57f4d524.entry.js.map +0 -1
  56. package/dist/paperless/p-7dc32e95.entry.js +0 -2
  57. package/dist/paperless/p-8414aef5.entry.js.map +0 -1
@@ -2,6 +2,10 @@ import { EventEmitter } from '../../../stencil-public-runtime';
2
2
  import { RotateOptions } from '../../../types/tailwind';
3
3
  import { IconFlipOptions, IconVariant } from '../icon/icon.component';
4
4
  export declare class Button {
5
+ /**
6
+ * The type of the button
7
+ */
8
+ as: 'a' | 'button';
5
9
  /**
6
10
  * The variant of the button
7
11
  */
@@ -124,6 +124,10 @@ export namespace Components {
124
124
  "variant": 'modal' | 'drawer';
125
125
  }
126
126
  interface PButton {
127
+ /**
128
+ * The type of the button
129
+ */
130
+ "as": 'a' | 'button';
127
131
  /**
128
132
  * Wether to show a chevron or not
129
133
  */
@@ -2274,6 +2278,10 @@ declare namespace LocalJSX {
2274
2278
  "variant"?: 'modal' | 'drawer';
2275
2279
  }
2276
2280
  interface PButton {
2281
+ /**
2282
+ * The type of the button
2283
+ */
2284
+ "as"?: 'a' | 'button';
2277
2285
  /**
2278
2286
  * Wether to show a chevron or not
2279
2287
  */
package/hydrate/index.js CHANGED
@@ -5984,6 +5984,7 @@ class Button {
5984
5984
  constructor(hostRef) {
5985
5985
  registerInstance(this, hostRef);
5986
5986
  this.onClick = createEvent(this, "onClick", 3);
5987
+ this.as = 'button';
5987
5988
  this.variant = 'primary';
5988
5989
  this.underline = false;
5989
5990
  this.href = undefined;
@@ -6002,6 +6003,7 @@ class Button {
6002
6003
  this.inheritText = false;
6003
6004
  }
6004
6005
  render() {
6006
+ var _a;
6005
6007
  let loaderColor = 'white';
6006
6008
  switch (this.variant) {
6007
6009
  case 'secondary':
@@ -6011,14 +6013,16 @@ class Button {
6011
6013
  loaderColor = 'indigo';
6012
6014
  break;
6013
6015
  }
6014
- const VariableTag = this.variant === 'text' ? 'a' : 'button';
6015
- return (hAsync(Host, { class: `p-button size-${this.size} ${this.iconOnly && 'has-icon-only'} ${this.chevron && 'has-chevron'}` }, hAsync(VariableTag, { class: `variant-${this.variant} icon-position-${this.iconPosition} chevron-position-${this.chevronPosition} ${this.inheritText && 'should-inherit-text'} ${this.underline && 'has-underline'}`, disabled: this.disabled, href: this.href, type: this.variant !== 'text' ? this.type : undefined, target: this.target }, this.chevron && this.chevronPosition === 'start' && (hAsync("p-icon", { class: "chevron", variant: "chevron", rotate: this.chevron === 'up' ? 180 : 0 })), this.icon &&
6016
+ const VariableTag = this.variant === 'text' || ((_a = this.href) === null || _a === void 0 ? void 0 : _a.length) || this.as === 'a'
6017
+ ? 'a'
6018
+ : 'button';
6019
+ return (hAsync(Host, { class: `p-button size-${this.size} ${this.iconOnly && 'has-icon-only'} ${this.chevron && 'has-chevron'}` }, hAsync(VariableTag, { class: `variant-${this.variant} icon-position-${this.iconPosition} chevron-position-${this.chevronPosition} ${this.inheritText && 'should-inherit-text'} ${this.underline && 'has-underline'}`, disabled: this.disabled, href: this.href, type: this.variant !== 'text' ? this.type : undefined, target: this.target }, this.chevron && this.chevronPosition === 'start' && (hAsync("p-icon", { class: 'chevron', variant: 'chevron', rotate: this.chevron === 'up' ? 180 : 0 })), this.icon &&
6016
6020
  this.iconPosition === 'start' &&
6017
6021
  !(this.iconOnly && this.loading) &&
6018
6022
  this._getIcon(), hAsync("slot", null), this.icon &&
6019
6023
  this.iconPosition === 'end' &&
6020
6024
  !(this.iconOnly && this.loading) &&
6021
- this._getIcon(), this.loading && hAsync("p-loader", { color: loaderColor }), this.chevron && this.chevronPosition === 'end' && (hAsync("p-icon", { class: "chevron", variant: "chevron", rotate: this.chevron === 'up' ? 180 : 0 })))));
6025
+ this._getIcon(), this.loading && hAsync("p-loader", { color: loaderColor }), this.chevron && this.chevronPosition === 'end' && (hAsync("p-icon", { class: 'chevron', variant: 'chevron', rotate: this.chevron === 'up' ? 180 : 0 })))));
6022
6026
  }
6023
6027
  handleClick(ev) {
6024
6028
  if (this.loading || this.disabled) {
@@ -6038,6 +6042,7 @@ class Button {
6038
6042
  "$flags$": 4,
6039
6043
  "$tagName$": "p-button",
6040
6044
  "$members$": {
6045
+ "as": [1],
6041
6046
  "variant": [1],
6042
6047
  "underline": [4],
6043
6048
  "href": [1],
@@ -21182,7 +21187,7 @@ class Select {
21182
21187
  }
21183
21188
  render() {
21184
21189
  var _a;
21185
- return (hAsync(Host, { class: 'p-select' }, hAsync("p-dropdown", { disableTriggerClick: true, calculateWidth: true, insideClick: true, scrollable: this.enableAutocomplete ? 'large' : true, show: this._showDropdown, onIsOpen: ev => this._onDropdownOpen(ev) }, hAsync("p-input-group", { slot: 'trigger', icon: this.icon, size: this.size, prefix: this.prefix, label: this.label, helper: this.helper, required: this.required, error: this.error, disabled: this.disabled, focused: this._showDropdown, forceShowTooltip: ((_a = this.error) === null || _a === void 0 ? void 0 : _a.length) && this._showDropdown }, hAsync("div", { slot: 'input', class: `p-input read-only max-w-[calc(100%-3rem)] cursor-pointer size-${this.size} ${this._displayValue === this.placeholder
21190
+ return (hAsync(Host, { class: 'p-select' }, hAsync("p-dropdown", { disableTriggerClick: true, calculateWidth: true, insideClick: true, scrollable: this.enableAutocomplete ? 'large' : true, show: this._showDropdown, onIsOpen: ev => this._onDropdownOpen(ev) }, hAsync("p-input-group", { slot: 'trigger', icon: this.icon, size: this.size, prefix: this.prefix, label: this.label, helper: this.helper, required: this.required, error: this.error, disabled: this.disabled, focused: this._showDropdown, forceShowTooltip: ((_a = this.error) === null || _a === void 0 ? void 0 : _a.length) && this._showDropdown }, hAsync("div", { slot: 'input', class: `p-input read-only cursor-pointer ${this.showChevron ? 'max-w-[calc(100%-3rem)]' : 'w-full'} size-${this.size} ${this._displayValue === this.placeholder
21186
21191
  ? 'font-medium text-storm-medium'
21187
21192
  : ''}`, contenteditable: true, onFocus: ev => this._onFocus(ev), onMouseDown: ev => this._onMouseDown(ev), onClick: () => this._onClick(), ref: ref => (this._inputRef = ref) }, this._displayValue), this.showChevron && (hAsync("p-icon", { variant: 'chevron', slot: 'suffix' }))), hAsync("div", { slot: 'items' }, this.loading ? this._getLoadingItems() : this._getItems(), this.showAddItem && this._getAddItem()))));
21188
21193
  }
@@ -22384,7 +22389,7 @@ class Table {
22384
22389
  }; }
22385
22390
  }
22386
22391
 
22387
- const tableCellComponentCss = ".gap-4{gap:1rem!important}*{box-sizing:border-box}p-table-cell{align-items:center;gap:1rem}.static{position:static!important}.flex{display:flex!important}.table-cell{display:table-cell!important}.hidden{display:none!important}.h-6{height:1.5rem!important}.w-1\\/12{width:8.333333%!important}.w-10\\/12{width:83.333333%!important}.w-11\\/12{width:91.666667%!important}.w-2\\/12{width:16.666667%!important}.w-3\\/12{width:25%!important}.w-4\\/12{width:33.333333%!important}.w-5\\/12{width:41.666667%!important}.w-6\\/12{width:50%!important}.w-7\\/12{width:58.333333%!important}.w-8\\/12{width:66.666667%!important}.w-9\\/12{width:75%!important}.w-full{width:100%!important}.flex-1{flex:1 1 0%!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.rounded{border-radius:.25rem!important}.pr-0{padding-right:0!important}.pr-4{padding-right:1rem!important}.font-semibold{font-weight:600!important}.text-storm-dark{--tw-text-opacity:1!important;color:rgb(39 40 56/var(--tw-text-opacity))!important}.group:hover .group-hover\\:flex{display:flex!important}.group:hover .group-hover\\:hidden{display:none!important}@media (min-width:40rem){.tablet\\:flex{display:flex!important}.tablet\\:hidden{display:none!important}.tablet\\:w-1\\/12{width:8.333333%!important}.tablet\\:w-10\\/12{width:83.333333%!important}.tablet\\:w-11\\/12{width:91.666667%!important}.tablet\\:w-2\\/12{width:16.666667%!important}.tablet\\:w-3\\/12{width:25%!important}.tablet\\:w-4\\/12{width:33.333333%!important}.tablet\\:w-5\\/12{width:41.666667%!important}.tablet\\:w-6\\/12{width:50%!important}.tablet\\:w-7\\/12{width:58.333333%!important}.tablet\\:w-8\\/12{width:66.666667%!important}.tablet\\:w-9\\/12{width:75%!important}.tablet\\:pr-0{padding-right:0!important}.tablet\\:pr-4{padding-right:1rem!important}.group:hover .tablet\\:group-hover\\:flex{display:flex!important}.group:hover .tablet\\:group-hover\\:hidden{display:none!important}}@media (min-width:64rem){.desktop-xs\\:flex{display:flex!important}.desktop-xs\\:hidden{display:none!important}.desktop-xs\\:w-1\\/12{width:8.333333%!important}.desktop-xs\\:w-10\\/12{width:83.333333%!important}.desktop-xs\\:w-11\\/12{width:91.666667%!important}.desktop-xs\\:w-2\\/12{width:16.666667%!important}.desktop-xs\\:w-3\\/12{width:25%!important}.desktop-xs\\:w-4\\/12{width:33.333333%!important}.desktop-xs\\:w-5\\/12{width:41.666667%!important}.desktop-xs\\:w-6\\/12{width:50%!important}.desktop-xs\\:w-7\\/12{width:58.333333%!important}.desktop-xs\\:w-8\\/12{width:66.666667%!important}.desktop-xs\\:w-9\\/12{width:75%!important}.desktop-xs\\:pr-0{padding-right:0!important}.desktop-xs\\:pr-4{padding-right:1rem!important}.group:hover .desktop-xs\\:group-hover\\:flex{display:flex!important}.group:hover .desktop-xs\\:group-hover\\:hidden{display:none!important}}@media (min-width:80rem){.desktop-sm\\:flex{display:flex!important}.desktop-sm\\:hidden{display:none!important}.desktop-sm\\:w-1\\/12{width:8.333333%!important}.desktop-sm\\:w-10\\/12{width:83.333333%!important}.desktop-sm\\:w-11\\/12{width:91.666667%!important}.desktop-sm\\:w-2\\/12{width:16.666667%!important}.desktop-sm\\:w-3\\/12{width:25%!important}.desktop-sm\\:w-4\\/12{width:33.333333%!important}.desktop-sm\\:w-5\\/12{width:41.666667%!important}.desktop-sm\\:w-6\\/12{width:50%!important}.desktop-sm\\:w-7\\/12{width:58.333333%!important}.desktop-sm\\:w-8\\/12{width:66.666667%!important}.desktop-sm\\:w-9\\/12{width:75%!important}.desktop-sm\\:pr-0{padding-right:0!important}.desktop-sm\\:pr-4{padding-right:1rem!important}.group:hover .desktop-sm\\:group-hover\\:flex{display:flex!important}.group:hover .desktop-sm\\:group-hover\\:hidden{display:none!important}}@media (min-width:85.375rem){.desktop\\:flex{display:flex!important}.desktop\\:hidden{display:none!important}.desktop\\:w-1\\/12{width:8.333333%!important}.desktop\\:w-10\\/12{width:83.333333%!important}.desktop\\:w-11\\/12{width:91.666667%!important}.desktop\\:w-2\\/12{width:16.666667%!important}.desktop\\:w-3\\/12{width:25%!important}.desktop\\:w-4\\/12{width:33.333333%!important}.desktop\\:w-5\\/12{width:41.666667%!important}.desktop\\:w-6\\/12{width:50%!important}.desktop\\:w-7\\/12{width:58.333333%!important}.desktop\\:w-8\\/12{width:66.666667%!important}.desktop\\:w-9\\/12{width:75%!important}.desktop\\:pr-0{padding-right:0!important}.desktop\\:pr-4{padding-right:1rem!important}.group:hover .desktop\\:group-hover\\:flex{display:flex!important}.group:hover .desktop\\:group-hover\\:hidden{display:none!important}}@media (min-width:90rem){.desktop-lg\\:flex{display:flex!important}.desktop-lg\\:hidden{display:none!important}.desktop-lg\\:w-1\\/12{width:8.333333%!important}.desktop-lg\\:w-10\\/12{width:83.333333%!important}.desktop-lg\\:w-11\\/12{width:91.666667%!important}.desktop-lg\\:w-2\\/12{width:16.666667%!important}.desktop-lg\\:w-3\\/12{width:25%!important}.desktop-lg\\:w-4\\/12{width:33.333333%!important}.desktop-lg\\:w-5\\/12{width:41.666667%!important}.desktop-lg\\:w-6\\/12{width:50%!important}.desktop-lg\\:w-7\\/12{width:58.333333%!important}.desktop-lg\\:w-8\\/12{width:66.666667%!important}.desktop-lg\\:w-9\\/12{width:75%!important}.desktop-lg\\:pr-0{padding-right:0!important}.desktop-lg\\:pr-4{padding-right:1rem!important}.group:hover .desktop-lg\\:group-hover\\:flex{display:flex!important}.group:hover .desktop-lg\\:group-hover\\:hidden{display:none!important}}@media (min-width:120rem){.desktop-xl\\:flex{display:flex!important}.desktop-xl\\:hidden{display:none!important}.desktop-xl\\:w-1\\/12{width:8.333333%!important}.desktop-xl\\:w-10\\/12{width:83.333333%!important}.desktop-xl\\:w-11\\/12{width:91.666667%!important}.desktop-xl\\:w-2\\/12{width:16.666667%!important}.desktop-xl\\:w-3\\/12{width:25%!important}.desktop-xl\\:w-4\\/12{width:33.333333%!important}.desktop-xl\\:w-5\\/12{width:41.666667%!important}.desktop-xl\\:w-6\\/12{width:50%!important}.desktop-xl\\:w-7\\/12{width:58.333333%!important}.desktop-xl\\:w-8\\/12{width:66.666667%!important}.desktop-xl\\:w-9\\/12{width:75%!important}.desktop-xl\\:pr-0{padding-right:0!important}.desktop-xl\\:pr-4{padding-right:1rem!important}.group:hover .desktop-xl\\:group-hover\\:flex{display:flex!important}.group:hover .desktop-xl\\:group-hover\\:hidden{display:none!important}}";
22392
+ const tableCellComponentCss = ".gap-4{gap:1rem!important}*{box-sizing:border-box}p-table-cell{align-items:center;gap:1rem}.static{position:static!important}.flex{display:flex!important}.table-cell{display:table-cell!important}.h-6{height:1.5rem!important}.w-full{width:100%!important}.flex-1{flex:1 1 0%!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.rounded{border-radius:.25rem!important}";
22388
22393
 
22389
22394
  /*
22390
22395
  With this, we shall hack the system in ways no one would ever have thought.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paperless/core",
3
- "version": "1.54.0",
3
+ "version": "1.54.2",
4
4
  "description": "Stencil Component Starter",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"names":["selectComponentCss","Select","_items","this","items","loading","JSON","parse","displayKey","valueKey","map","str","value","text","_a","query","length","asyncFilter","filter","item","queryKey","_checkvalue","_identifierKey","slice","maxDisplayedItems","_displayValue","_selectedItem","placeholder","multi","h","class","size","ref","_multiContainerRef","onClick","_selectValue","selectionDisplayKey","variant","_amountHidden","_getDisplay","_b","identifierKey","componentDidLoad","Error","_setMultiContainerMaxWidth","_resizeObserver","ResizeObserver","_resizeDebounceTimer","clearTimeout","setTimeout","_checkSelectedItems","observe","_el","_valueChange","itemChanges","componentDidRender","disconnectedCallback","disconnect","render","Host","disableTriggerClick","calculateWidth","insideClick","scrollable","enableAutocomplete","show","_showDropdown","onIsOpen","ev","_onDropdownOpen","slot","icon","prefix","label","helper","required","error","disabled","focused","forceShowTooltip","contenteditable","onFocus","_onFocus","onMouseDown","_onMouseDown","_onClick","_inputRef","showChevron","_getLoadingItems","_getItems","showAddItem","_getAddItem","documentClickHandler","target","childOf","_preselectItem","_showDropdownChanges","dropdownShown","emit","multiChanges","Array","isArray","valueChange","i","includes","autoSelectFirst","identifier","parsedValue","stringify","currentValue","currentParsedValue","find","itemIdentifier","parsedItemIdentifier","forceBlur","selectedItem","valueArray","includesIndex","findIndex","push","splice","_onBlur","preventDefault","blur","force","_onAutoComplete","queryChange","key","toString","toLowerCase","indexOf","_c","useContainer","active","emptyStateText","enableSelectAll","unshift","_selectAllChange","_allSelected","selectAllIcon","selectAllText","_getAutoCompleteItem","add","addItemText","enableHover","autocompletePlaceholder","onInput","autocompleteInputRef","style","maxWidth","clientWidth","containerRect","getBoundingClientRect","from","querySelectorAll","amountHidden","child","classList","remove","childRect","right","extra","querySelector","contains","detail","focus","selectAllChange","isSelection","content","avatarKey","src","letters","avatarLettersKey","dropdownDisplayKey","iconKey","showIconInSelectedItem","applyClassOnSelectedItem"],"sources":["src/components/molecules/select/select.component.scss?tag=p-select","src/components/molecules/select/select.component.tsx"],"sourcesContent":["@import '../../../style/form/mixins';\n\np-select {\n\t@apply relative flex w-full flex-col text-ellipsis;\n\n\t.p-input {\n\t\t@include inputDefaultState();\n\t\t@apply text-base font-semibold;\n\n\t\t&.size-small {\n\t\t\t@apply text-sm font-medium;\n\t\t}\n\t}\n\n\t.text-container {\n\t\t@apply block w-full overflow-hidden text-ellipsis whitespace-nowrap text-start;\n\t}\n\n\t.multi-container {\n\t\t@apply pointer-events-none absolute bottom-0 left-0 flex h-10 w-full items-center gap-2 overflow-hidden px-2 py-4;\n\n\t\t&.size-small {\n\t\t\t@apply h-8 px-1 py-2;\n\t\t}\n\n\t\t.item {\n\t\t\t@apply pointer-events-auto flex h-[1.625rem] cursor-pointer items-center gap-2 whitespace-nowrap rounded bg-indigo-light px-2 text-sm font-semibold text-indigo-dark;\n\n\t\t\tp-icon {\n\t\t\t\t@apply text-xs text-indigo;\n\t\t\t}\n\t\t}\n\n\t\t.extra {\n\t\t\t@apply pointer-events-none text-sm text-storm-medium;\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n\ttag: 'p-select',\n\tstyleUrl: 'select.component.scss',\n\tshadow: false,\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 * 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 show the icon also on the selected Item\n\t */\n\t@Prop() showIconInSelectedItem: 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: 'small' | 'medium' = 'medium';\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;\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\tprivate _inputRef: HTMLDivElement;\n\tprivate autocompleteInputRef: HTMLInputElement;\n\tprivate _multiContainerRef: HTMLElement;\n\n\tprivate _resizeObserver: ResizeObserver;\n\tprivate _resizeDebounceTimer: NodeJS.Timer;\n\n\tget _items() {\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\treturn items?.slice(0, this.maxDisplayedItems);\n\t}\n\n\tget _displayValue() {\n\t\tif (!this._selectedItem) {\n\t\t\treturn this.placeholder;\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tif (this._selectedItem?.length === 0) {\n\t\t\t\treturn this.placeholder;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclass={`multi-container size-${this.size}`}\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='item'\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 variant='negative' />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\n\t\t\t\t\t<div class='extra hidden'>+{this._amountHidden}</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\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._checkSelectedItems();\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\tthis._checkSelectedItems();\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\treturn (\n\t\t\t<Host class='p-select'>\n\t\t\t\t<p-dropdown\n\t\t\t\t\tdisableTriggerClick={true}\n\t\t\t\t\tcalculateWidth={true}\n\t\t\t\t\tinsideClick={true}\n\t\t\t\t\tscrollable={this.enableAutocomplete ? 'large' : true}\n\t\t\t\t\tshow={this._showDropdown}\n\t\t\t\t\tonIsOpen={ev => this._onDropdownOpen(ev)}\n\t\t\t\t>\n\t\t\t\t\t<p-input-group\n\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\ticon={this.icon}\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tprefix={this.prefix}\n\t\t\t\t\t\tlabel={this.label}\n\t\t\t\t\t\thelper={this.helper}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\terror={this.error}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tfocused={this._showDropdown}\n\t\t\t\t\t\tforceShowTooltip={this.error?.length && this._showDropdown}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tslot='input'\n\t\t\t\t\t\t\tclass={`p-input read-only max-w-[calc(100%-3rem)] cursor-pointer size-${\n\t\t\t\t\t\t\t\tthis.size\n\t\t\t\t\t\t\t} ${\n\t\t\t\t\t\t\t\tthis._displayValue === this.placeholder\n\t\t\t\t\t\t\t\t\t? 'font-medium text-storm-medium'\n\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\tcontenteditable\n\t\t\t\t\t\t\tonFocus={ev => this._onFocus(ev)}\n\t\t\t\t\t\t\tonMouseDown={ev => this._onMouseDown(ev)}\n\t\t\t\t\t\t\tonClick={() => this._onClick()}\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\n\t\t\t\t\t\t{this.showChevron && (\n\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\tvariant='chevron'\n\t\t\t\t\t\t\t\tslot='suffix'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</p-input-group>\n\t\t\t\t\t<div slot='items'>\n\t\t\t\t\t\t{this.loading ? this._getLoadingItems() : this._getItems()}\n\t\t\t\t\t\t{this.showAddItem && this._getAddItem()}\n\t\t\t\t\t</div>\n\t\t\t\t</p-dropdown>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler({ target }) {\n\t\tif (!this._showDropdown || childOf(target, 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\tthis._preselectItem();\n\t}\n\n\t@Watch('items')\n\tpublic itemChanges() {\n\t\tthis._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 item = this._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 _onFocus(ev) {\n\t\tev.preventDefault();\n\t\tthis._inputRef.blur();\n\n\t\tif (!this._showDropdown) {\n\t\t\tthis._showDropdown = true;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tprivate _onMouseDown(ev) {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tev.preventDefault();\n\t}\n\n\tprivate _onClick() {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\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.target.value;\n\t\tthis.queryChange.emit(ev.target.value);\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\tvariant={this.multi ? 'checkbox' : 'default'}\n\t\t\t\tclass='justify-start'\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 class='w-full p-2 text-center text-sm text-storm-medium'>\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\tuseContainer={false}\n\t\t\t\t\tvariant='checkbox'\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>\n\t\t\t\t<span class='flex items-center gap-1 font-semibold text-indigo'>\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 enableHover={false}>\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 class='sticky top-0 -mt-2 bg-white pt-2'>\n\t\t\t\t<input\n\t\t\t\t\tclass='p-input size-small sticky top-2 mb-2'\n\t\t\t\t\tplaceholder={this.autocompletePlaceholder}\n\t\t\t\t\tonInput={ev => this._onAutoComplete(ev)}\n\t\t\t\t\tref={ref => (this.autocompleteInputRef = ref)}\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\tthis._multiContainerRef.style.maxWidth = `${\n\t\t\tthis._inputRef.clientWidth - 16\n\t\t}px`;\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 = Array.from(\n\t\t\tthis._multiContainerRef.querySelectorAll('.item')\n\t\t) as HTMLElement[];\n\n\t\tlet amountHidden = 0;\n\n\t\tfor (const child of items) {\n\t\t\tchild.classList.remove('hidden');\n\n\t\t\tconst childRect = child.getBoundingClientRect();\n\t\t\tif (childRect.right > containerRect.right) {\n\t\t\t\tchild.classList.add('hidden');\n\t\t\t\tamountHidden++;\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='text-container'>\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='xsmall'\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='text-container'>\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.showIconInSelectedItem)) {\n\t\t\tcontent = (\n\t\t\t\t<span class='flex items-center gap-2'>\n\t\t\t\t\t<p-icon variant={item[this.iconKey] as IconVariant} />\n\t\t\t\t\t<div class='text-container'>\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\treturn (\n\t\t\t<div\n\t\t\t\tclass={\n\t\t\t\t\t!isSelection || this.applyClassOnSelectedItem\n\t\t\t\t\t\t? `max-w-full ${item?.class}`\n\t\t\t\t\t\t: 'max-w-full'\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\t\t);\n\t}\n}\n"],"mappings":"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"}