@paperless/core 2.0.1-beta.168 → 2.0.1-beta.169

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 (89) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/build/p-7b701c17.entry.js +2 -0
  3. package/dist/build/p-7b701c17.entry.js.map +1 -0
  4. package/dist/build/p-808fcfe0.entry.js +2 -0
  5. package/dist/build/p-808fcfe0.entry.js.map +1 -0
  6. package/dist/build/p-ac288d66.js +2 -0
  7. package/dist/build/p-datepicker.entry.esm.js.map +1 -1
  8. package/dist/build/p-f75cc2ab.entry.js +2 -0
  9. package/dist/build/p-f75cc2ab.entry.js.map +1 -0
  10. package/dist/build/p-field.p-field-container.entry.esm.js.map +1 -1
  11. package/dist/build/p-select.entry.esm.js.map +1 -1
  12. package/dist/build/paperless.esm.js +1 -1
  13. package/dist/cjs/loader.cjs.js +1 -1
  14. package/dist/cjs/p-datepicker.cjs.entry.js +6 -2
  15. package/dist/cjs/p-datepicker.cjs.entry.js.map +1 -1
  16. package/dist/cjs/p-datepicker.entry.cjs.js.map +1 -1
  17. package/dist/cjs/p-field.p-field-container.entry.cjs.js.map +1 -1
  18. package/dist/cjs/p-field_2.cjs.entry.js +20 -8
  19. package/dist/cjs/p-field_2.cjs.entry.js.map +1 -1
  20. package/dist/cjs/p-select.cjs.entry.js +5 -1
  21. package/dist/cjs/p-select.cjs.entry.js.map +1 -1
  22. package/dist/cjs/p-select.entry.cjs.js.map +1 -1
  23. package/dist/cjs/paperless.cjs.js +1 -1
  24. package/dist/collection/components/molecules/datepicker/datepicker.component.js +26 -2
  25. package/dist/collection/components/molecules/datepicker/datepicker.component.js.map +1 -1
  26. package/dist/collection/components/molecules/field/container/field-container.component.js +33 -5
  27. package/dist/collection/components/molecules/field/container/field-container.component.js.map +1 -1
  28. package/dist/collection/components/molecules/field/field/field.component.js +27 -3
  29. package/dist/collection/components/molecules/field/field/field.component.js.map +1 -1
  30. package/dist/collection/components/molecules/select/select.component.js +25 -1
  31. package/dist/collection/components/molecules/select/select.component.js.map +1 -1
  32. package/dist/components/{p-DUGSBBgc.js → p-C8Uio1Yl.js} +16 -7
  33. package/dist/components/p-C8Uio1Yl.js.map +1 -0
  34. package/dist/components/{p-Cf-_6-uf.js → p-D1sBE1PZ.js} +11 -6
  35. package/dist/components/p-D1sBE1PZ.js.map +1 -0
  36. package/dist/components/{p-CxAi21nx.js → p-DUjpYGCR.js} +4 -4
  37. package/dist/components/{p-CxAi21nx.js.map → p-DUjpYGCR.js.map} +1 -1
  38. package/dist/components/p-attachment.js +1 -1
  39. package/dist/components/p-datepicker.js +9 -4
  40. package/dist/components/p-datepicker.js.map +1 -1
  41. package/dist/components/p-field-container.js +1 -1
  42. package/dist/components/p-field.js +1 -1
  43. package/dist/components/p-select.js +8 -3
  44. package/dist/components/p-select.js.map +1 -1
  45. package/dist/components/p-table-header.js +1 -1
  46. package/dist/components/p-table.js +3 -3
  47. package/dist/esm/loader.js +1 -1
  48. package/dist/esm/p-datepicker.entry.js +6 -2
  49. package/dist/esm/p-datepicker.entry.js.map +1 -1
  50. package/dist/esm/p-field.p-field-container.entry.js.map +1 -1
  51. package/dist/esm/p-field_2.entry.js +20 -8
  52. package/dist/esm/p-field_2.entry.js.map +1 -1
  53. package/dist/esm/p-select.entry.js +5 -1
  54. package/dist/esm/p-select.entry.js.map +1 -1
  55. package/dist/esm/paperless.js +1 -1
  56. package/dist/index.html +1 -1
  57. package/dist/paperless/p-7b701c17.entry.js +2 -0
  58. package/dist/paperless/p-7b701c17.entry.js.map +1 -0
  59. package/dist/paperless/p-808fcfe0.entry.js +2 -0
  60. package/dist/paperless/p-808fcfe0.entry.js.map +1 -0
  61. package/dist/paperless/p-datepicker.entry.esm.js.map +1 -1
  62. package/dist/paperless/p-f75cc2ab.entry.js +2 -0
  63. package/dist/paperless/p-f75cc2ab.entry.js.map +1 -0
  64. package/dist/paperless/p-field.p-field-container.entry.esm.js.map +1 -1
  65. package/dist/paperless/p-select.entry.esm.js.map +1 -1
  66. package/dist/paperless/paperless.esm.js +1 -1
  67. package/dist/sw.js +1 -1
  68. package/dist/sw.js.map +1 -1
  69. package/dist/types/components/molecules/datepicker/datepicker.component.d.ts +4 -0
  70. package/dist/types/components/molecules/field/container/field-container.component.d.ts +4 -0
  71. package/dist/types/components/molecules/field/field/field.component.d.ts +4 -0
  72. package/dist/types/components/molecules/select/select.component.d.ts +4 -0
  73. package/dist/types/components.d.ts +32 -0
  74. package/package.json +1 -1
  75. package/dist/build/p-3023698d.js +0 -2
  76. package/dist/build/p-50a816b0.entry.js +0 -2
  77. package/dist/build/p-50a816b0.entry.js.map +0 -1
  78. package/dist/build/p-7b7c60de.entry.js +0 -2
  79. package/dist/build/p-7b7c60de.entry.js.map +0 -1
  80. package/dist/build/p-baec5c22.entry.js +0 -2
  81. package/dist/build/p-baec5c22.entry.js.map +0 -1
  82. package/dist/components/p-Cf-_6-uf.js.map +0 -1
  83. package/dist/components/p-DUGSBBgc.js.map +0 -1
  84. package/dist/paperless/p-50a816b0.entry.js +0 -2
  85. package/dist/paperless/p-50a816b0.entry.js.map +0 -1
  86. package/dist/paperless/p-7b7c60de.entry.js +0 -2
  87. package/dist/paperless/p-7b7c60de.entry.js.map +0 -1
  88. package/dist/paperless/p-baec5c22.entry.js +0 -2
  89. package/dist/paperless/p-baec5c22.entry.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,g as i,h as r,F as a}from"./p-DhGo7hbh.js";import{c as o}from"./p-CBWjHURv.js";import{a as s}from"./p-C5CTp9IA.js";import{c as n}from"./p-CT54OXR2.js";import{n as l}from"./p-D9kEjsvZ.js";import{f as d,g as h}from"./p-DiJj8rmO.js";import"./p-ChV9xqsO.js";const m="*{box-sizing:border-box}:host{input[type=number]{-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;display:none}}.static{position:static!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-\\[0\\.125rem\\]{margin-top:.125rem!important}.flex{display:flex!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.h-full{height:100%!important}.min-h-4{min-height:1rem!important}.min-h-5{min-height:1.25rem!important}.w-inherit{width:inherit!important}.min-w-0{min-width:0!important}.flex-1{flex:1 1 0%!important}.flex-shrink-0{flex-shrink:0!important}.cursor-not-allowed{cursor:not-allowed!important}.flex-wrap{flex-wrap:wrap!important}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.justify-center{justify-content:center!important}.gap-2{gap:.5rem!important}.rounded-lg{border-radius:.5rem!important}.border{border-width:1px!important}.border-0{border-width:0!important}.border-solid{border-style:solid!important}.border-none{border-style:none!important}.border-black-teal-100{--tw-border-opacity:1!important;border-color:rgb(205 212 211/var(--tw-border-opacity,1))!important}.border-negative-red{--tw-border-opacity:1!important;border-color:rgb(230 30 30/var(--tw-border-opacity,1))!important}.border-supportive-lilac-800{--tw-border-opacity:1!important;border-color:rgb(189 140 255/var(--tw-border-opacity,1))!important}.bg-transparent{background-color:transparent!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-white,.bg-white-600{--tw-bg-opacity:1!important}.bg-white-600{background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.text-center{text-align:center!important}.font-geist{font-family:Geist,serif!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-black-teal{--tw-text-opacity:1!important;color:rgb(3 42 36/var(--tw-text-opacity,1))!important}.text-black-teal-100{--tw-text-opacity:1!important;color:rgb(205 212 211/var(--tw-text-opacity,1))!important}.text-black-teal-300{--tw-text-opacity:1!important;color:rgb(104 127 124/var(--tw-text-opacity,1))!important}.text-black-teal-500{--tw-text-opacity:1!important;color:rgb(3 42 36/var(--tw-text-opacity,1))!important}.text-negative-red{--tw-text-opacity:1!important;color:rgb(230 30 30/var(--tw-text-opacity,1))!important}.text-negative-red-800{--tw-text-opacity:1!important;color:rgb(141 16 16/var(--tw-text-opacity,1))!important}.outline-none{outline:2px solid transparent!important;outline-offset:2px!important}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.ring-negative-red-50{--tw-ring-opacity:1!important;--tw-ring-color:rgb(253 237 237/var(--tw-ring-opacity,1))!important}.ring-supportive-lilac-100{--tw-ring-opacity:1!important;--tw-ring-color:rgb(246 239 255/var(--tw-ring-opacity,1))!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}}.selection\\:bg-negative-red-50 ::selection{--tw-bg-opacity:1!important;background-color:rgb(253 237 237/var(--tw-bg-opacity,1))!important}.selection\\:bg-supportive-lilac ::selection{--tw-bg-opacity:1!important;background-color:rgb(209 174 255/var(--tw-bg-opacity,1))!important}.selection\\:bg-negative-red-50::selection{--tw-bg-opacity:1!important;background-color:rgb(253 237 237/var(--tw-bg-opacity,1))!important}.selection\\:bg-supportive-lilac::selection{--tw-bg-opacity:1!important;background-color:rgb(209 174 255/var(--tw-bg-opacity,1))!important}.placeholder\\:text-sm::placeholder{font-size:.875rem!important;line-height:1.25rem!important}.placeholder\\:text-black-teal-200::placeholder{--tw-text-opacity:1!important;color:rgb(154 170 167/var(--tw-text-opacity,1))!important}.focus\\:outline-none:focus{outline:2px solid transparent!important;outline-offset:2px!important}";const c=o(["flex gap-2","w-inherit","border-solid rounded-lg"],{variants:{variant:{read:"border-0 items-start flex-wrap",write:"border px-2"},size:{sm:null,base:null},disabled:{false:null,true:null},focused:{false:null,true:null},error:{false:null,true:null},isTextarea:{false:null,true:"items-start"}},compoundVariants:[{size:"sm",variant:"write",isTextarea:false,class:"h-6"},{size:"base",variant:"write",isTextarea:false,class:"h-8"},{size:"sm",variant:"read",class:"min-h-4 text-xs"},{size:"base",variant:"read",class:"min-h-5 text-sm"},{variant:"write",focused:false,error:false,class:"border-black-teal-100"},{variant:"write",disabled:false,focused:true,error:false,class:"border-supportive-lilac-800 ring ring-supportive-lilac-100 selection:bg-supportive-lilac"},{variant:"write",disabled:false,class:"bg-white"},{variant:"write",disabled:true,class:"bg-white-600 cursor-not-allowed"},{disabled:false,error:true,class:"border-negative-red"},{disabled:false,focused:true,error:true,class:"ring ring-negative-red-50 selection:bg-negative-red-50"}]});const p=o(["text-sm placeholder:text-sm placeholder:text-black-teal-200 text-black-teal","border-none bg-transparent flex-1 min-w-0","outline-none focus:outline-none","font-geist"],{variants:{isTextarea:{false:"h-full",true:"mt-1"},disabled:{false:null,true:"cursor-not-allowed"}}});const f=o(["flex flex-shrink-0 justify-center items-center text-center"],{variants:{disabled:{false:null,true:"text-black-teal-100"},focused:{false:null,true:null},error:{false:null,true:null},isText:{false:null,true:"text-sm"},isTextarea:{false:null,true:"mt-2"}},compoundVariants:[{disabled:false,focused:false,error:false,class:"text-black-teal-300"},{disabled:false,focused:true,error:false,class:"text-black-teal-500"},{disabled:false,focused:false,error:true,class:"text-negative-red"},{disabled:false,focused:true,error:true,class:"text-negative-red-800"}]});const b=class{constructor(i){t(this,i);this.valueChange=e(this,"valueChange",3);this.inputRefChange=e(this,"inputRefChange",7);if(i.$hostElement$["s-ei"]){this._internals=i.$hostElement$["s-ei"]}else{this._internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this._internals}}align="start";variant="write";id;size="base";type="text";properties={};prefix;suffix;icon;iconFlip;iconRotate;iconPosition="start";value;label;loading=false;placeholder;helper;required=true;autofocus=false;error;errorPlacement;disabled=false;focused=false;forceShowTooltip=false;selectAllOnFocus=true;focusMethod="focus";optionalTemplate;valueChange;inputRefChange;get _el(){return i(this)}_focused=false;_nonce=l(5);_internals;_inputRef;componentDidLoad(){this._checkAutoFocus()}formResetCallback(){this.value=null;this.valueChange.emit(null)}formDisabledCallback(t){if(!this._internals.form){return}this.disabled=t}render(){const{id:t,prefix:e,suffix:i,hasHeaderSlot:a,hasLabelSlot:o,hasHelperSlot:l,hasErrorSlot:d,hasValueSlot:h}=this._getSlotInfo();return r("p-field-container",{key:"9400c327b1deba7084c2579b27419e92b7dbfa79",forceShowTooltip:this.forceShowTooltip||this._focused||!!this.error?.length,id:t,label:this.label,align:this.align,loading:this.loading,loadingSize:this.size,helper:this.helper,error:this.error,required:this.required,variant:this.variant},o&&r("slot",{key:"8010504f27e1998b60e6c2f57b0218546be9e7ae",name:"label",slot:"label"}),a&&r("slot",{key:"c4f7cfd2785ed12c30223461b819bd9818dfb077",name:"header",slot:"header"}),l&&r("slot",{key:"d8326977264c12728499e9925aa2a00aa5ed9158",name:"helper",slot:"helper"}),d&&r("slot",{key:"9ee712647fe95056bee14a65151a30e0909a9077",name:"error",slot:"error"}),r("div",{key:"d0c70d0fae9f28cc9e45a3eb8e74f4cd9f511b13",class:c({error:!!this.error?.length,disabled:s(this.disabled),focused:s(this.focused)||this._focused,size:this.size,variant:this.variant,isTextarea:this.type==="textarea"}),title:this.variant==="read"&&!h?this.value:undefined,slot:"content"},(this.error?.length||e||this.icon&&this.iconPosition==="start")&&r("div",{key:"9d74e7e739a905fbe7f8931d1272f3e44edd281e",class:f({error:!!this.error?.length,disabled:s(this.disabled),focused:s(this.focused)||this._focused,isText:typeof i==="string",isTextarea:this.type==="textarea"}),onClick:()=>this._focusInput()},this.icon&&this.iconPosition==="start"||this.error?.length?r("p-icon",{class:n("flex",{"mt-[0.125rem]":this.variant==="read"&&this.size==="base"}),variant:this.error?.length?"warning":this.icon,rotate:this.iconRotate,flip:this.iconFlip}):e),this._getContent(h,t),(i||this.icon&&this.iconPosition==="end")&&r("div",{key:"6de3d3849e29f5fd7cce085c62390322f15ed9d2",class:f({error:!!this.error?.length,disabled:s(this.disabled),focused:s(this.focused)||this._focused,isText:typeof i==="string",isTextarea:this.type==="textarea"}),onClick:()=>this._focusInput()},this.icon&&this.iconPosition==="end"?r("p-icon",{class:"flex",variant:this.icon,rotate:this.iconRotate,flip:this.iconFlip}):i)))}handleFocusIn(){if(this.disabled){return}this._focused=true;this._selectAll()}handleFocusOut(){if(this.disabled){return}this._focused=false}handleKeyup(t){if(this.disabled){t.preventDefault();return}if(!this._internals?.form){return}if(this.type==="textarea"||t.key!=="Enter"){return}this._internals.form.requestSubmit()}_getSlotInfo(){const t=!!this._el.querySelector(':scope > [slot="helper"]');const e=!!this._el.querySelector(':scope > [slot="label"]');const i=!!this._el.querySelector(':scope > [slot="prefix"]');const a=!!this._el.querySelector(':scope > [slot="suffix"]');const o=!!this._el.querySelector(':scope > [slot="header"]');const s=!!this._el.querySelector(':scope > [slot="error"]');const n=!!this._el.querySelector(':scope > [slot="value"]');const l=i?r("slot",{name:"prefix"}):this.prefix;const d=a?r("slot",{name:"suffix"}):this.suffix;const h=this.error&&typeof this.error==="string"&&this.error!=="true";const m=this.id?.length?this.id:this._nonce;return{id:m,hasHelperSlot:t,hasLabelSlot:e,hasPrefixSlot:i,hasSuffixSlot:a,hasHeaderSlot:o,hasErrorSlot:s,hasValueSlot:n,prefix:l,suffix:d,errorAndErrorIsNotBoolean:h}}_getContent(t=false,e){if(this.variant==="read"){return t?r("slot",{name:"value"}):!!this.value&&this.value.length>0?this.value:"—"}if(this.type==="slot"){return r("slot",{name:"input"})}const i={id:e,class:p({disabled:s(this.disabled),isTextarea:this.type==="textarea"}),value:this.value,placeholder:this.placeholder,disabled:this.disabled,onInput:t=>this._valueChange(t)};let a=this.properties??{};if(typeof a==="string"){a=JSON.parse(this.properties)}if(this.type==="textarea"){return r("textarea",{ref:t=>this._setInputRef(t),...i,...a})}return r("input",{type:this.type,ref:t=>this._setInputRef(t),...i,...a})}_setInputRef(t){this._inputRef=t;this.inputRefChange.emit(t)}_focusInput(){if(this._inputRef){this._inputRef.focus();return}const t=this._el.querySelector(':scope > [slot="input"]');t[this.focusMethod]()}_selectAll(){if(!this._inputRef||!this.selectAllOnFocus){return}this._inputRef.select()}_valueChange(t){t.stopPropagation();const e=t.originalTarget??t.target;const i=e.value;this.valueChange.emit(i);this._internals.setFormValue(i)}_checkAutoFocus(){if(!this.autofocus){return}if(!this._inputRef){setTimeout((()=>this._checkAutoFocus()),100);return}this._focusInput()}static get formAssociated(){return true}};b.style=m;const u="*{box-sizing:border-box}.ml-2{margin-left:.5rem!important}.ml-auto{margin-left:auto!important}.flex{display:flex!important}.h-4{height:1rem!important}.h-5{height:1.25rem!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.w-full{width:100%!important}.w-inherit{width:inherit!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-col{flex-direction:column!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-between{justify-content:space-between!important}.gap-1{gap:.25rem!important}.rounded-lg{border-radius:.5rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-medium{font-weight:500!important}.text-black-teal-200{--tw-text-opacity:1!important;color:rgb(154 170 167/var(--tw-text-opacity,1))!important}.text-black-teal-300{--tw-text-opacity:1!important;color:rgb(104 127 124/var(--tw-text-opacity,1))!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}}.empty\\:hidden:empty{display:none!important}";const x=o(["rounded-lg w-full"],{variants:{variant:{read:null,write:null},size:{base:null,sm:null}},compoundVariants:[{variant:"read",size:"base",class:"h-5"},{variant:"read",size:"sm",class:"h-4"},{variant:"write",size:"base",class:"h-8"},{variant:"write",size:"sm",class:"h-6"}]});const w=class{constructor(i){t(this,i);this.focus=e(this,"focus",7)}_defaultOptionalTemplate=()=>d(this._locales.optional);id;align="start";label;loading=false;loadingSize="base";variant;helper;required;error;errorPlacement;forceShowTooltip=false;optionalTemplate=this._defaultOptionalTemplate;get _el(){return i(this)}focus;_locales={};componentWillLoad(){this._setLocales()}render(){const{hasHeaderSlot:t,hasErrorSlot:e,helper:i,label:o,errorAndErrorIsNotBoolean:l}=this._getSlotInfo();let d=r("slot",{key:"c93f83b9701246526f88036c3dc43b63e4456141",slot:"trigger",name:"content"});if(this.loading){d=r("p-loader",{key:"19500e20b8ed37cf845d38cb69bd2134fb5147d7",variant:"ghost",class:x({variant:this.variant,size:this.loadingSize}),slot:"trigger"})}return r("label",{key:"9f1b287eda0bd1b2e0a4d5ca8b44d10952baa392",htmlFor:this.id,class:"flex w-inherit flex-col gap-1"},r("div",{key:"6d7e47dd3dfac096e0d5636bebf07d0ede3008a9",class:n("flex items-end justify-between gap-1 empty:hidden",{"flex-row-reverse":this.align==="end"})},!!o?.length&&r("div",{key:"68287c9d936a2006a43e258ef1b2932c699c9371",class:"text-xs font-medium text-black-teal-300",onClick:()=>this.focus.emit()},o),(!s(this.required)||i||t)&&r("div",{key:"ad5252733c77a4a4f1710529a60702bc0a53d518",class:"flex items-center gap-1"},!s(this.required)&&this.variant==="write"&&r("span",{key:"295f84a044ad94641d1a7742ab7b3072746977e2",class:"text-xs font-medium text-black-teal-200"},this.optionalTemplate()),(i||t)&&r(a,{key:"b7088d6c71f56e12be5f1912fe385261de74699f"},t&&r("slot",{key:"58dd56f987b24fcb6a56e16d5696f33fc07af4b7",name:"header"}),i&&r("p-helper",{key:"3253d8a3ed7763a20315bb85e7f8469e7de13f63",class:`flex ${t?"ml-2":""}`,placement:"top-end"},i)))),r("p-tooltip",{key:"20c872142d36a6315d0f080255a5685868833a05",class:n({"w-full":this.variant==="write"||this.loading,"ml-auto":this.align==="end"}),variant:"error",content:this.error,show:l&&s(this.forceShowTooltip),enableUserInput:false,placement:this.errorPlacement},e&&r("slot",{key:"4ac73b69f9f6860ff0bd9e04a805b4bcc37325f3",name:"error",slot:"content"}),d))}async _setLocales(){this._locales=await h(this._el)}_getSlotInfo(){const t=!!this._el.querySelector(':scope > [slot="helper"]');const e=!!this._el.querySelector(':scope > [slot="label"]');const i=!!this._el.querySelector(':scope > [slot="header"]');const a=!!this._el.querySelector(':scope > [slot="error"]');const o=t?r("slot",{name:"helper"}):this.helper;const s=e?r("slot",{name:"label"}):this.label;const n=a||this.error&&typeof this.error==="string"&&this.error!=="true";return{hasHelperSlot:t,hasLabelSlot:e,hasHeaderSlot:i,hasErrorSlot:a,helper:o,label:s,errorAndErrorIsNotBoolean:n}}};w.style=u;export{b as p_field,w as p_field_container};
2
- //# sourceMappingURL=p-7b7c60de.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["fieldComponentCss","field","cva","variants","variant","read","write","size","sm","base","disabled","false","true","focused","error","isTextarea","compoundVariants","class","input","prefixAndSuffix","isText","Field","align","id","type","properties","prefix","suffix","icon","iconFlip","iconRotate","iconPosition","value","label","loading","placeholder","helper","required","autofocus","errorPlacement","forceShowTooltip","selectAllOnFocus","focusMethod","optionalTemplate","valueChange","inputRefChange","_focused","_nonce","nonce","_internals","_inputRef","componentDidLoad","this","_checkAutoFocus","formResetCallback","emit","formDisabledCallback","form","render","hasHeaderSlot","hasLabelSlot","hasHelperSlot","hasErrorSlot","hasValueSlot","_getSlotInfo","h","key","length","loadingSize","name","slot","asBoolean","title","undefined","onClick","_focusInput","cn","rotate","flip","_getContent","handleFocusIn","_selectAll","handleFocusOut","handleKeyup","ev","preventDefault","requestSubmit","_el","querySelector","hasPrefixSlot","hasSuffixSlot","errorAndErrorIsNotBoolean","props","onInput","_valueChange","JSON","parse","ref","_setInputRef","focus","select","stopPropagation","target","originalTarget","setFormValue","setTimeout","fieldContainerComponentCss","loader","FieldContainer","_defaultOptionalTemplate","formatTranslation","_locales","optional","componentWillLoad","_setLocales","contentSlot","htmlFor","Fragment","placement","content","show","enableUserInput","getLocaleComponentStrings"],"sources":["src/components/molecules/field/field/field.component.css?tag=p-field&encapsulation=shadow","src/components/molecules/field/field/field.component.tsx","src/components/molecules/field/container/field-container.component.css?tag=p-field-container&encapsulation=shadow","src/components/molecules/field/container/field-container.component.tsx"],"sourcesContent":[":host {\n\tinput[type='number'] {\n\t\t-moz-appearance: textfield; /* Firefox */\n\t}\n\n\tinput::-webkit-outer-spin-button,\n\tinput::-webkit-inner-spin-button {\n\t\tdisplay: none;\n\t\t-webkit-appearance: none;\n\t}\n}\n","import { Placement } from '@floating-ui/dom';\nimport {\n\tAttachInternals,\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tListen,\n\tProp,\n\tState,\n} from '@stencil/core';\nimport { cva } from 'class-variance-authority';\nimport { HTMLInputTypeAttribute } from 'react';\nimport { RotateOptions } from '../../../../types/tailwind';\nimport { asBoolean } from '../../../../utils/as-boolean';\nimport { cn } from '../../../../utils/cn';\nimport { nonce } from '../../../../utils/nonce';\nimport {\n\tIconFlipOptions,\n\tIconVariant,\n} from '../../../atoms/icon/icon.component';\nimport { templateFunc } from '../container/field-container.component';\n\nconst field = cva(['flex gap-2', 'w-inherit', 'border-solid rounded-lg'], {\n\tvariants: {\n\t\tvariant: {\n\t\t\tread: 'border-0 items-start flex-wrap',\n\t\t\twrite: 'border px-2',\n\t\t},\n\t\tsize: {\n\t\t\tsm: null,\n\t\t\tbase: null,\n\t\t},\n\t\tdisabled: {\n\t\t\tfalse: null,\n\t\t\ttrue: null,\n\t\t},\n\t\tfocused: {\n\t\t\tfalse: null,\n\t\t\ttrue: null,\n\t\t},\n\t\terror: {\n\t\t\tfalse: null,\n\t\t\ttrue: null,\n\t\t},\n\t\tisTextarea: {\n\t\t\tfalse: null,\n\t\t\ttrue: 'items-start',\n\t\t},\n\t},\n\tcompoundVariants: [\n\t\t{\n\t\t\tsize: 'sm',\n\t\t\tvariant: 'write',\n\t\t\tisTextarea: false,\n\t\t\tclass: 'h-6',\n\t\t},\n\t\t{\n\t\t\tsize: 'base',\n\t\t\tvariant: 'write',\n\t\t\tisTextarea: false,\n\t\t\tclass: 'h-8',\n\t\t},\n\n\t\t{\n\t\t\tsize: 'sm',\n\t\t\tvariant: 'read',\n\t\t\tclass: 'min-h-4 text-xs',\n\t\t},\n\t\t{\n\t\t\tsize: 'base',\n\t\t\tvariant: 'read',\n\t\t\tclass: 'min-h-5 text-sm',\n\t\t},\n\n\t\t{\n\t\t\tvariant: 'write',\n\t\t\tfocused: false,\n\t\t\terror: false,\n\t\t\tclass: 'border-black-teal-100',\n\t\t},\n\t\t{\n\t\t\tvariant: 'write',\n\t\t\tdisabled: false,\n\t\t\tfocused: true,\n\t\t\terror: false,\n\t\t\tclass:\n\t\t\t\t'border-supportive-lilac-800 ring ring-supportive-lilac-100 selection:bg-supportive-lilac',\n\t\t},\n\n\t\t{\n\t\t\tvariant: 'write',\n\t\t\tdisabled: false,\n\t\t\tclass: 'bg-white',\n\t\t},\n\t\t{\n\t\t\tvariant: 'write',\n\t\t\tdisabled: true,\n\t\t\tclass: 'bg-white-600 cursor-not-allowed',\n\t\t},\n\n\t\t{\n\t\t\tdisabled: false,\n\t\t\terror: true,\n\t\t\tclass: 'border-negative-red',\n\t\t},\n\t\t{\n\t\t\tdisabled: false,\n\t\t\tfocused: true,\n\t\t\terror: true,\n\t\t\tclass: 'ring ring-negative-red-50 selection:bg-negative-red-50',\n\t\t},\n\t],\n});\n\nconst input = cva(\n\t[\n\t\t'text-sm placeholder:text-sm placeholder:text-black-teal-200 text-black-teal',\n\t\t'border-none bg-transparent flex-1 min-w-0',\n\t\t'outline-none focus:outline-none',\n\t\t'font-geist',\n\t],\n\t{\n\t\tvariants: {\n\t\t\tisTextarea: {\n\t\t\t\tfalse: 'h-full',\n\t\t\t\ttrue: 'mt-1',\n\t\t\t},\n\t\t\tdisabled: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: 'cursor-not-allowed',\n\t\t\t},\n\t\t},\n\t}\n);\n\nconst prefixAndSuffix = cva(\n\t['flex flex-shrink-0 justify-center items-center text-center'],\n\t{\n\t\tvariants: {\n\t\t\tdisabled: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: 'text-black-teal-100',\n\t\t\t},\n\t\t\tfocused: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: null,\n\t\t\t},\n\t\t\terror: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: null,\n\t\t\t},\n\t\t\tisText: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: 'text-sm',\n\t\t\t},\n\t\t\tisTextarea: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: 'mt-2',\n\t\t\t},\n\t\t},\n\t\tcompoundVariants: [\n\t\t\t{\n\t\t\t\tdisabled: false,\n\t\t\t\tfocused: false,\n\t\t\t\terror: false,\n\t\t\t\tclass: 'text-black-teal-300',\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tdisabled: false,\n\t\t\t\tfocused: true,\n\t\t\t\terror: false,\n\t\t\t\tclass: 'text-black-teal-500',\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tdisabled: false,\n\t\t\t\tfocused: false,\n\t\t\t\terror: true,\n\t\t\t\tclass: 'text-negative-red',\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tdisabled: false,\n\t\t\t\tfocused: true,\n\t\t\t\terror: true,\n\t\t\t\tclass: 'text-negative-red-800',\n\t\t\t},\n\t\t],\n\t}\n);\n\n@Component({\n\ttag: 'p-field',\n\tstyleUrl: './field.component.css',\n\tshadow: true,\n\tformAssociated: true,\n})\nexport class Field {\n\t/**\n\t * The alignment of the container\n\t */\n\t@Prop() align: 'start' | 'end' = 'start';\n\n\t/**\n\t * The variant of the field\n\t */\n\t@Prop() variant: 'read' | 'write' = 'write';\n\n\t/**\n\t * The id of the field\n\t */\n\t@Prop() id: string;\n\n\t/**\n\t * The size of the field\n\t */\n\t@Prop() size: 'sm' | 'base' = 'base';\n\n\t/**\n\t * The type of the field\n\t */\n\t@Prop() type: HTMLInputTypeAttribute | 'textarea' | 'slot' = 'text';\n\n\t/**\n\t * The size of the field\n\t */\n\t@Prop() properties: any | string = {};\n\n\t/**\n\t * The prefix of the field\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The suffix of the field\n\t */\n\t@Prop() suffix: string;\n\n\t/**\n\t * Icon of the field\n\t */\n\t@Prop() icon: IconVariant;\n\n\t/**\n\t * Icon flip */\n\t@Prop() iconFlip: IconFlipOptions;\n\n\t/**\n\t * Icon rotate\n\t */\n\t@Prop() iconRotate: RotateOptions;\n\n\t/**\n\t * Icon position\n\t */\n\t@Prop() iconPosition: 'start' | 'end' = 'start';\n\n\t/**\n\t * The value of the input\n\t */\n\t@Prop() value: string;\n\n\t/**\n\t * The label of the field\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * Wether the field is in loading state\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * The placeholder of the input\n\t */\n\t@Prop() placeholder: string;\n\n\t/**\n\t * The helper of the field\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 * Wether to autofocus the field\n\t */\n\t@Prop({ reflect: true }) autofocus: boolean = false;\n\n\t/**\n\t * The error to display\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * The placement of the error popover\n\t */\n\t@Prop() errorPlacement: Placement;\n\n\t/**\n\t * Wether the field is disabled\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * Wether the field is focused\n\t */\n\t@Prop({ reflect: true }) focused: boolean = false;\n\n\t/**\n\t * Force show the error tooltip\n\t */\n\t@Prop({ reflect: true }) forceShowTooltip: boolean = false;\n\n\t/**\n\t * Wether to select all text on focus\n\t */\n\t@Prop({ reflect: true }) selectAllOnFocus: boolean = true;\n\n\t/**\n\t * The method to use when focusing the input\n\t */\n\t@Prop() focusMethod: 'focus' | 'click' = 'focus';\n\n\t/**\n\t * The template for the optional text\n\t */\n\t@Prop() optionalTemplate: templateFunc;\n\n\t/**\n\t * Event whenever the value changes\n\t */\n\t@Event({ bubbles: false }) valueChange: EventEmitter<string>;\n\n\t/**\n\t * Event whenever the input ref changes\n\t */\n\t@Event() inputRefChange: EventEmitter<HTMLInputElement | HTMLTextAreaElement>;\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _focused = false;\n\t@State() private _nonce = nonce(5);\n\n\t@AttachInternals() _internals: ElementInternals;\n\n\tprivate _inputRef: HTMLInputElement | HTMLTextAreaElement;\n\n\tcomponentDidLoad() {\n\t\tthis._checkAutoFocus();\n\t}\n\n\tformResetCallback() {\n\t\tthis.value = null;\n\t\tthis.valueChange.emit(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\trender() {\n\t\tconst {\n\t\t\tid,\n\t\t\tprefix,\n\t\t\tsuffix,\n\t\t\thasHeaderSlot,\n\t\t\thasLabelSlot,\n\t\t\thasHelperSlot,\n\t\t\thasErrorSlot,\n\t\t\thasValueSlot,\n\t\t} = this._getSlotInfo();\n\n\t\treturn (\n\t\t\t<p-field-container\n\t\t\t\tforceShowTooltip={\n\t\t\t\t\tthis.forceShowTooltip || this._focused || !!this.error?.length\n\t\t\t\t}\n\t\t\t\tid={id}\n\t\t\t\tlabel={this.label}\n\t\t\t\talign={this.align}\n\t\t\t\tloading={this.loading}\n\t\t\t\tloadingSize={this.size}\n\t\t\t\thelper={this.helper}\n\t\t\t\terror={this.error}\n\t\t\t\trequired={this.required}\n\t\t\t\tvariant={this.variant}\n\t\t\t>\n\t\t\t\t{hasLabelSlot && (\n\t\t\t\t\t<slot\n\t\t\t\t\t\tname='label'\n\t\t\t\t\t\tslot='label'\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{hasHeaderSlot && (\n\t\t\t\t\t<slot\n\t\t\t\t\t\tname='header'\n\t\t\t\t\t\tslot='header'\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{hasHelperSlot && (\n\t\t\t\t\t<slot\n\t\t\t\t\t\tname='helper'\n\t\t\t\t\t\tslot='helper'\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{hasErrorSlot && (\n\t\t\t\t\t<slot\n\t\t\t\t\t\tname='error'\n\t\t\t\t\t\tslot='error'\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<div\n\t\t\t\t\tclass={field({\n\t\t\t\t\t\terror: !!this.error?.length,\n\t\t\t\t\t\tdisabled: asBoolean(this.disabled),\n\t\t\t\t\t\tfocused: asBoolean(this.focused) || this._focused,\n\t\t\t\t\t\tsize: this.size,\n\t\t\t\t\t\tvariant: this.variant,\n\t\t\t\t\t\tisTextarea: this.type === 'textarea',\n\t\t\t\t\t})}\n\t\t\t\t\ttitle={\n\t\t\t\t\t\tthis.variant === 'read' && !hasValueSlot ? this.value : undefined\n\t\t\t\t\t}\n\t\t\t\t\tslot='content'\n\t\t\t\t>\n\t\t\t\t\t{(this.error?.length ||\n\t\t\t\t\t\tprefix ||\n\t\t\t\t\t\t(this.icon && this.iconPosition === 'start')) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={prefixAndSuffix({\n\t\t\t\t\t\t\t\terror: !!this.error?.length,\n\t\t\t\t\t\t\t\tdisabled: asBoolean(this.disabled),\n\t\t\t\t\t\t\t\tfocused: asBoolean(this.focused) || this._focused,\n\t\t\t\t\t\t\t\tisText: typeof suffix === 'string',\n\t\t\t\t\t\t\t\tisTextarea: this.type === 'textarea',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => this._focusInput()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{(this.icon && this.iconPosition === 'start') ||\n\t\t\t\t\t\t\tthis.error?.length ? (\n\t\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\t\tclass={cn('flex', {\n\t\t\t\t\t\t\t\t\t\t'mt-[0.125rem]':\n\t\t\t\t\t\t\t\t\t\t\tthis.variant === 'read' && this.size === 'base',\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\tvariant={this.error?.length ? 'warning' : this.icon}\n\t\t\t\t\t\t\t\t\trotate={this.iconRotate}\n\t\t\t\t\t\t\t\t\tflip={this.iconFlip}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tprefix\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{this._getContent(hasValueSlot, id)}\n\n\t\t\t\t\t{(suffix || (this.icon && this.iconPosition === 'end')) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={prefixAndSuffix({\n\t\t\t\t\t\t\t\terror: !!this.error?.length,\n\t\t\t\t\t\t\t\tdisabled: asBoolean(this.disabled),\n\t\t\t\t\t\t\t\tfocused: asBoolean(this.focused) || this._focused,\n\t\t\t\t\t\t\t\tisText: typeof suffix === 'string',\n\t\t\t\t\t\t\t\tisTextarea: this.type === 'textarea',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => this._focusInput()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.icon && this.iconPosition === 'end' ? (\n\t\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\t\tclass='flex'\n\t\t\t\t\t\t\t\t\tvariant={this.icon}\n\t\t\t\t\t\t\t\t\trotate={this.iconRotate}\n\t\t\t\t\t\t\t\t\tflip={this.iconFlip}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tsuffix\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</p-field-container>\n\t\t);\n\t}\n\n\t@Listen('focusin')\n\thandleFocusIn() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focused = true;\n\t\tthis._selectAll();\n\t}\n\n\t@Listen('focusout')\n\thandleFocusOut() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focused = false;\n\t}\n\n\t@Listen('keyup', { capture: true })\n\thandleKeyup(ev: KeyboardEvent) {\n\t\tif (this.disabled) {\n\t\t\tev.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._internals?.form) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.type === 'textarea' || ev.key !== 'Enter') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._internals.form.requestSubmit();\n\t}\n\n\tprivate _getSlotInfo() {\n\t\tconst hasHelperSlot = !!this._el.querySelector(':scope > [slot=\"helper\"]');\n\t\tconst hasLabelSlot = !!this._el.querySelector(':scope > [slot=\"label\"]');\n\t\tconst hasPrefixSlot = !!this._el.querySelector(':scope > [slot=\"prefix\"]');\n\t\tconst hasSuffixSlot = !!this._el.querySelector(':scope > [slot=\"suffix\"]');\n\t\tconst hasHeaderSlot = !!this._el.querySelector(':scope > [slot=\"header\"]');\n\t\tconst hasErrorSlot = !!this._el.querySelector(':scope > [slot=\"error\"]');\n\t\tconst hasValueSlot = !!this._el.querySelector(':scope > [slot=\"value\"]');\n\n\t\tconst prefix = hasPrefixSlot ? <slot name='prefix' /> : this.prefix;\n\t\tconst suffix = hasSuffixSlot ? <slot name='suffix' /> : this.suffix;\n\n\t\tconst errorAndErrorIsNotBoolean =\n\t\t\tthis.error && typeof this.error === 'string' && this.error !== 'true';\n\n\t\tconst id = this.id?.length ? this.id : this._nonce;\n\n\t\treturn {\n\t\t\tid,\n\t\t\thasHelperSlot,\n\t\t\thasLabelSlot,\n\t\t\thasPrefixSlot,\n\t\t\thasSuffixSlot,\n\t\t\thasHeaderSlot,\n\t\t\thasErrorSlot,\n\t\t\thasValueSlot,\n\t\t\tprefix,\n\t\t\tsuffix,\n\t\t\terrorAndErrorIsNotBoolean,\n\t\t};\n\t}\n\n\tprivate _getContent(hasValueSlot = false, id: string) {\n\t\tif (this.variant === 'read') {\n\t\t\treturn hasValueSlot ? (\n\t\t\t\t<slot name='value' />\n\t\t\t) : !!this.value && this.value.length > 0 ? (\n\t\t\t\tthis.value\n\t\t\t) : (\n\t\t\t\t'—'\n\t\t\t);\n\t\t}\n\n\t\tif (this.type === 'slot') {\n\t\t\treturn <slot name='input' />;\n\t\t}\n\n\t\tconst props = {\n\t\t\tid,\n\t\t\tclass: input({\n\t\t\t\tdisabled: asBoolean(this.disabled),\n\t\t\t\tisTextarea: this.type === 'textarea',\n\t\t\t}),\n\t\t\tvalue: this.value,\n\t\t\tplaceholder: this.placeholder,\n\t\t\tdisabled: this.disabled,\n\t\t\tonInput: (ev: InputEvent) => this._valueChange(ev),\n\t\t};\n\n\t\tlet properties = this.properties ?? {};\n\t\tif (typeof properties === 'string') {\n\t\t\tproperties = JSON.parse(this.properties);\n\t\t}\n\n\t\tif (this.type === 'textarea') {\n\t\t\treturn (\n\t\t\t\t<textarea\n\t\t\t\t\tref={ref => this._setInputRef(ref)}\n\t\t\t\t\t{...props}\n\t\t\t\t\t{...properties}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype={this.type}\n\t\t\t\tref={ref => this._setInputRef(ref)}\n\t\t\t\t{...props}\n\t\t\t\t{...properties}\n\t\t\t/>\n\t\t);\n\t}\n\n\tprivate _setInputRef(ref: HTMLInputElement | HTMLTextAreaElement) {\n\t\tthis._inputRef = ref;\n\t\tthis.inputRefChange.emit(ref);\n\t}\n\n\tprivate _focusInput() {\n\t\tif (this._inputRef) {\n\t\t\tthis._inputRef.focus();\n\t\t\treturn;\n\t\t}\n\n\t\tconst input = this._el.querySelector(':scope > [slot=\"input\"]');\n\t\t(input as HTMLElement)[this.focusMethod]();\n\t}\n\n\tprivate _selectAll() {\n\t\tif (!this._inputRef || !this.selectAllOnFocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._inputRef.select();\n\t}\n\n\tprivate _valueChange(ev) {\n\t\tev.stopPropagation();\n\t\tconst target = (ev.originalTarget ?? ev.target) as\n\t\t\t| HTMLTextAreaElement\n\t\t\t| HTMLInputElement;\n\t\tconst value = target.value;\n\t\tthis.valueChange.emit(value);\n\t\tthis._internals.setFormValue(value);\n\t}\n\n\tprivate _checkAutoFocus() {\n\t\tif (!this.autofocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._inputRef) {\n\t\t\tsetTimeout(() => this._checkAutoFocus(), 100);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusInput();\n\t}\n}\n",null,"import { Placement } from '@floating-ui/dom';\nimport {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\tFragment,\n\th,\n\tListen,\n\tProp,\n\tState,\n} from '@stencil/core';\nimport { cva } from 'class-variance-authority';\nimport {\n\tcn,\n\tformatTranslation,\n\tgetLocaleComponentStrings,\n} from '../../../../utils';\nimport { asBoolean } from '../../../../utils/as-boolean';\n\nconst loader = cva(['rounded-lg w-full'], {\n\tvariants: {\n\t\tvariant: {\n\t\t\tread: null,\n\t\t\twrite: null,\n\t\t},\n\t\tsize: {\n\t\t\tbase: null,\n\t\t\tsm: null,\n\t\t},\n\t},\n\tcompoundVariants: [\n\t\t{\n\t\t\tvariant: 'read',\n\t\t\tsize: 'base',\n\t\t\tclass: 'h-5',\n\t\t},\n\t\t{\n\t\t\tvariant: 'read',\n\t\t\tsize: 'sm',\n\t\t\tclass: 'h-4',\n\t\t},\n\n\t\t{\n\t\t\tvariant: 'write',\n\t\t\tsize: 'base',\n\t\t\tclass: 'h-8',\n\t\t},\n\t\t{\n\t\t\tvariant: 'write',\n\t\t\tsize: 'sm',\n\t\t\tclass: 'h-6',\n\t\t},\n\t],\n});\n\nexport type templateFunc = () => string;\n\n@Component({\n\ttag: 'p-field-container',\n\tstyleUrl: 'field-container.component.css',\n\tshadow: true,\n})\nexport class FieldContainer {\n\tprivate _defaultOptionalTemplate: templateFunc = () =>\n\t\tformatTranslation(this._locales.optional);\n\t/**\n\t * The id for the label\n\t */\n\t@Prop() id: string;\n\n\t/**\n\t * Align content to the start or end\n\t */\n\t@Prop() align: 'start' | 'end' = 'start';\n\n\t/**\n\t * The label of the input group\n\t */\n\t@Prop() label: string | HTMLSlotElement;\n\n\t/**\n\t * Wether the field container is in loading state\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * The size of the loader\n\t */\n\t@Prop() loadingSize: 'base' | 'sm' = 'base';\n\n\t/**\n\t * The variant of the field container\n\t */\n\t@Prop() variant: 'read' | 'write';\n\n\t/**\n\t * The helper of the input group\n\t */\n\t@Prop() helper: string | HTMLSlotElement;\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\n\t */\n\t@Prop({ reflect: true }) error: string | HTMLSlotElement;\n\n\t/**\n\t * The placement of the error popover\n\t */\n\t@Prop() errorPlacement: Placement;\n\n\t/**\n\t * Force show the error tooltip\n\t */\n\t@Prop({ reflect: true }) forceShowTooltip: boolean = false;\n\n\t/**\n\t * The template for the optional text\n\t */\n\t@Prop() optionalTemplate: templateFunc = this._defaultOptionalTemplate;\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@Event() focus: EventEmitter<void>;\n\n\t/**\n\t * Locales used for this component\n\t */\n\t@State() private _locales: any = {};\n\n\tcomponentWillLoad() {\n\t\tthis._setLocales();\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\thasHeaderSlot,\n\t\t\thasErrorSlot,\n\t\t\thelper,\n\t\t\tlabel,\n\t\t\terrorAndErrorIsNotBoolean,\n\t\t} = this._getSlotInfo();\n\n\t\tlet contentSlot = (\n\t\t\t<slot\n\t\t\t\tslot='trigger'\n\t\t\t\tname='content'\n\t\t\t/>\n\t\t);\n\n\t\tif (this.loading) {\n\t\t\tcontentSlot = (\n\t\t\t\t<p-loader\n\t\t\t\t\tvariant='ghost'\n\t\t\t\t\tclass={loader({ variant: this.variant, size: this.loadingSize })}\n\t\t\t\t\tslot='trigger'\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<label\n\t\t\t\thtmlFor={this.id}\n\t\t\t\tclass='flex w-inherit flex-col gap-1'\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclass={cn('flex items-end justify-between gap-1 empty:hidden', {\n\t\t\t\t\t\t'flex-row-reverse': this.align === 'end',\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{!!label?.length && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass='text-xs font-medium text-black-teal-300'\n\t\t\t\t\t\t\tonClick={() => this.focus.emit()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{(!asBoolean(this.required) || helper || hasHeaderSlot) && (\n\t\t\t\t\t\t<div class='flex items-center gap-1'>\n\t\t\t\t\t\t\t{!asBoolean(this.required) && this.variant === 'write' && (\n\t\t\t\t\t\t\t\t<span class='text-xs font-medium text-black-teal-200'>\n\t\t\t\t\t\t\t\t\t{this.optionalTemplate()}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{(helper || hasHeaderSlot) && (\n\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t{hasHeaderSlot && <slot name='header' />}\n\t\t\t\t\t\t\t\t\t{helper && (\n\t\t\t\t\t\t\t\t\t\t<p-helper\n\t\t\t\t\t\t\t\t\t\t\tclass={`flex ${hasHeaderSlot ? 'ml-2' : ''}`}\n\t\t\t\t\t\t\t\t\t\t\tplacement='top-end'\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{helper}\n\t\t\t\t\t\t\t\t\t\t</p-helper>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<p-tooltip\n\t\t\t\t\tclass={cn({\n\t\t\t\t\t\t'w-full': this.variant === 'write' || this.loading,\n\t\t\t\t\t\t'ml-auto': this.align === 'end',\n\t\t\t\t\t})}\n\t\t\t\t\tvariant='error'\n\t\t\t\t\tcontent={this.error}\n\t\t\t\t\tshow={errorAndErrorIsNotBoolean && asBoolean(this.forceShowTooltip)}\n\t\t\t\t\tenableUserInput={false}\n\t\t\t\t\tplacement={this.errorPlacement}\n\t\t\t\t>\n\t\t\t\t\t{hasErrorSlot && (\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\tname='error'\n\t\t\t\t\t\t\tslot='content'\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{contentSlot}\n\t\t\t\t</p-tooltip>\n\t\t\t</label>\n\t\t);\n\t}\n\n\t@Listen('localeChanged', { target: 'body' })\n\tprivate async _setLocales(): Promise<void> {\n\t\tthis._locales = await getLocaleComponentStrings(this._el);\n\t}\n\n\tprivate _getSlotInfo() {\n\t\tconst hasHelperSlot = !!this._el.querySelector(':scope > [slot=\"helper\"]');\n\t\tconst hasLabelSlot = !!this._el.querySelector(':scope > [slot=\"label\"]');\n\t\tconst hasHeaderSlot = !!this._el.querySelector(':scope > [slot=\"header\"]');\n\t\tconst hasErrorSlot = !!this._el.querySelector(':scope > [slot=\"error\"]');\n\n\t\tconst helper = hasHelperSlot ? <slot name='helper' /> : this.helper;\n\t\tconst label = hasLabelSlot ? <slot name='label' /> : this.label;\n\n\t\tconst errorAndErrorIsNotBoolean =\n\t\t\thasErrorSlot ||\n\t\t\t(this.error && typeof this.error === 'string' && this.error !== 'true');\n\n\t\treturn {\n\t\t\thasHelperSlot,\n\t\t\thasLabelSlot,\n\t\t\thasHeaderSlot,\n\t\t\thasErrorSlot,\n\t\t\thelper,\n\t\t\tlabel,\n\t\t\terrorAndErrorIsNotBoolean,\n\t\t};\n\t}\n}\n"],"mappings":"mRAAA,MAAMA,EAAoB,23JCwB1B,MAAMC,EAAQC,EAAI,CAAC,aAAc,YAAa,2BAA4B,CACzEC,SAAU,CACTC,QAAS,CACRC,KAAM,iCACNC,MAAO,eAERC,KAAM,CACLC,GAAI,KACJC,KAAM,MAEPC,SAAU,CACTC,MAAO,KACPC,KAAM,MAEPC,QAAS,CACRF,MAAO,KACPC,KAAM,MAEPE,MAAO,CACNH,MAAO,KACPC,KAAM,MAEPG,WAAY,CACXJ,MAAO,KACPC,KAAM,gBAGRI,iBAAkB,CACjB,CACCT,KAAM,KACNH,QAAS,QACTW,WAAY,MACZE,MAAO,OAER,CACCV,KAAM,OACNH,QAAS,QACTW,WAAY,MACZE,MAAO,OAGR,CACCV,KAAM,KACNH,QAAS,OACTa,MAAO,mBAER,CACCV,KAAM,OACNH,QAAS,OACTa,MAAO,mBAGR,CACCb,QAAS,QACTS,QAAS,MACTC,MAAO,MACPG,MAAO,yBAER,CACCb,QAAS,QACTM,SAAU,MACVG,QAAS,KACTC,MAAO,MACPG,MACC,4FAGF,CACCb,QAAS,QACTM,SAAU,MACVO,MAAO,YAER,CACCb,QAAS,QACTM,SAAU,KACVO,MAAO,oCAGR,CACCP,SAAU,MACVI,MAAO,KACPG,MAAO,uBAER,CACCP,SAAU,MACVG,QAAS,KACTC,MAAO,KACPG,MAAO,6DAKV,MAAMC,EAAQhB,EACb,CACC,8EACA,6CACA,kCACA,cAED,CACCC,SAAU,CACTY,WAAY,CACXJ,MAAO,SACPC,KAAM,QAEPF,SAAU,CACTC,MAAO,KACPC,KAAM,yBAMV,MAAMO,EAAkBjB,EACvB,CAAC,8DACD,CACCC,SAAU,CACTO,SAAU,CACTC,MAAO,KACPC,KAAM,uBAEPC,QAAS,CACRF,MAAO,KACPC,KAAM,MAEPE,MAAO,CACNH,MAAO,KACPC,KAAM,MAEPQ,OAAQ,CACPT,MAAO,KACPC,KAAM,WAEPG,WAAY,CACXJ,MAAO,KACPC,KAAM,SAGRI,iBAAkB,CACjB,CACCN,SAAU,MACVG,QAAS,MACTC,MAAO,MACPG,MAAO,uBAGR,CACCP,SAAU,MACVG,QAAS,KACTC,MAAO,MACPG,MAAO,uBAGR,CACCP,SAAU,MACVG,QAAS,MACTC,MAAO,KACPG,MAAO,qBAGR,CACCP,SAAU,MACVG,QAAS,KACTC,MAAO,KACPG,MAAO,4B,MAYEI,EAAK,M,qRAITC,MAAyB,QAKzBlB,QAA4B,QAK5BmB,GAKAhB,KAAsB,OAKtBiB,KAAqD,OAKrDC,WAA2B,GAK3BC,OAKAC,OAKAC,KAIAC,SAKAC,WAKAC,aAAgC,QAKhCC,MAKAC,MAKAC,QAAmB,MAKnBC,YAKAC,OAKiBC,SAAoB,KAKpBC,UAAqB,MAKrBxB,MAKjByB,eAKiB7B,SAAoB,MAKpBG,QAAmB,MAKnB2B,iBAA4B,MAK5BC,iBAA4B,KAK7CC,YAAiC,QAKjCC,iBAKmBC,YAKlBC,e,yBAOQC,SAAW,MACXC,OAASC,EAAM,GAEbC,WAEXC,UAER,gBAAAC,GACCC,KAAKC,iB,CAGN,iBAAAC,GACCF,KAAKpB,MAAQ,KACboB,KAAKR,YAAYW,KAAK,K,CAGvB,oBAAAC,CAAqB9C,GACpB,IAAK0C,KAAKH,WAAWQ,KAAM,CAC1B,M,CAGDL,KAAK1C,SAAWA,C,CAGjB,MAAAgD,GACC,MAAMnC,GACLA,EAAEG,OACFA,EAAMC,OACNA,EAAMgC,cACNA,EAAaC,aACbA,EAAYC,cACZA,EAAaC,aACbA,EAAYC,aACZA,GACGX,KAAKY,eAET,OACCC,EAAA,qBAAAC,IAAA,2CACC1B,iBACCY,KAAKZ,kBAAoBY,KAAKN,YAAcM,KAAKtC,OAAOqD,OAEzD5C,GAAIA,EACJU,MAAOmB,KAAKnB,MACZX,MAAO8B,KAAK9B,MACZY,QAASkB,KAAKlB,QACdkC,YAAahB,KAAK7C,KAClB6B,OAAQgB,KAAKhB,OACbtB,MAAOsC,KAAKtC,MACZuB,SAAUe,KAAKf,SACfjC,QAASgD,KAAKhD,SAEbwD,GACAK,EAAA,QAAAC,IAAA,2CACCG,KAAK,QACLC,KAAK,UAINX,GACAM,EAAA,QAAAC,IAAA,2CACCG,KAAK,SACLC,KAAK,WAINT,GACAI,EAAA,QAAAC,IAAA,2CACCG,KAAK,SACLC,KAAK,WAINR,GACAG,EAAA,QAAAC,IAAA,2CACCG,KAAK,QACLC,KAAK,UAIPL,EACC,OAAAC,IAAA,2CAAAjD,MAAOhB,EAAM,CACZa,QAASsC,KAAKtC,OAAOqD,OACrBzD,SAAU6D,EAAUnB,KAAK1C,UACzBG,QAAS0D,EAAUnB,KAAKvC,UAAYuC,KAAKN,SACzCvC,KAAM6C,KAAK7C,KACXH,QAASgD,KAAKhD,QACdW,WAAYqC,KAAK5B,OAAS,aAE3BgD,MACCpB,KAAKhD,UAAY,SAAW2D,EAAeX,KAAKpB,MAAQyC,UAEzDH,KAAK,YAEHlB,KAAKtC,OAAOqD,QACbzC,GACC0B,KAAKxB,MAAQwB,KAAKrB,eAAiB,UACpCkC,EAAA,OAAAC,IAAA,2CACCjD,MAAOE,EAAgB,CACtBL,QAASsC,KAAKtC,OAAOqD,OACrBzD,SAAU6D,EAAUnB,KAAK1C,UACzBG,QAAS0D,EAAUnB,KAAKvC,UAAYuC,KAAKN,SACzC1B,cAAeO,IAAW,SAC1BZ,WAAYqC,KAAK5B,OAAS,aAE3BkD,QAAS,IAAMtB,KAAKuB,eAElBvB,KAAKxB,MAAQwB,KAAKrB,eAAiB,SACrCqB,KAAKtC,OAAOqD,OACXF,EAAA,UACChD,MAAO2D,EAAG,OAAQ,CACjB,gBACCxB,KAAKhD,UAAY,QAAUgD,KAAK7C,OAAS,SAE3CH,QAASgD,KAAKtC,OAAOqD,OAAS,UAAYf,KAAKxB,KAC/CiD,OAAQzB,KAAKtB,WACbgD,KAAM1B,KAAKvB,WACV,GAOJuB,KAAK2B,YAAYhB,EAAcxC,IAE9BI,GAAWyB,KAAKxB,MAAQwB,KAAKrB,eAAiB,QAC/CkC,EAAA,OAAAC,IAAA,2CACCjD,MAAOE,EAAgB,CACtBL,QAASsC,KAAKtC,OAAOqD,OACrBzD,SAAU6D,EAAUnB,KAAK1C,UACzBG,QAAS0D,EAAUnB,KAAKvC,UAAYuC,KAAKN,SACzC1B,cAAeO,IAAW,SAC1BZ,WAAYqC,KAAK5B,OAAS,aAE3BkD,QAAS,IAAMtB,KAAKuB,eAEnBvB,KAAKxB,MAAQwB,KAAKrB,eAAiB,MACnCkC,EAAA,UACChD,MAAM,OACNb,QAASgD,KAAKxB,KACdiD,OAAQzB,KAAKtB,WACbgD,KAAM1B,KAAKvB,WACV,I,CAYT,aAAAmD,GACC,GAAI5B,KAAK1C,SAAU,CAClB,M,CAGD0C,KAAKN,SAAW,KAChBM,KAAK6B,Y,CAIN,cAAAC,GACC,GAAI9B,KAAK1C,SAAU,CAClB,M,CAGD0C,KAAKN,SAAW,K,CAIjB,WAAAqC,CAAYC,GACX,GAAIhC,KAAK1C,SAAU,CAClB0E,EAAGC,iBACH,M,CAGD,IAAKjC,KAAKH,YAAYQ,KAAM,CAC3B,M,CAGD,GAAIL,KAAK5B,OAAS,YAAc4D,EAAGlB,MAAQ,QAAS,CACnD,M,CAGDd,KAAKH,WAAWQ,KAAK6B,e,CAGd,YAAAtB,GACP,MAAMH,IAAkBT,KAAKmC,IAAIC,cAAc,4BAC/C,MAAM5B,IAAiBR,KAAKmC,IAAIC,cAAc,2BAC9C,MAAMC,IAAkBrC,KAAKmC,IAAIC,cAAc,4BAC/C,MAAME,IAAkBtC,KAAKmC,IAAIC,cAAc,4BAC/C,MAAM7B,IAAkBP,KAAKmC,IAAIC,cAAc,4BAC/C,MAAM1B,IAAiBV,KAAKmC,IAAIC,cAAc,2BAC9C,MAAMzB,IAAiBX,KAAKmC,IAAIC,cAAc,2BAE9C,MAAM9D,EAAS+D,EAAgBxB,EAAM,QAAAI,KAAK,WAAcjB,KAAK1B,OAC7D,MAAMC,EAAS+D,EAAgBzB,EAAM,QAAAI,KAAK,WAAcjB,KAAKzB,OAE7D,MAAMgE,EACLvC,KAAKtC,cAAgBsC,KAAKtC,QAAU,UAAYsC,KAAKtC,QAAU,OAEhE,MAAMS,EAAK6B,KAAK7B,IAAI4C,OAASf,KAAK7B,GAAK6B,KAAKL,OAE5C,MAAO,CACNxB,KACAsC,gBACAD,eACA6B,gBACAC,gBACA/B,gBACAG,eACAC,eACArC,SACAC,SACAgE,4B,CAIM,WAAAZ,CAAYhB,EAAe,MAAOxC,GACzC,GAAI6B,KAAKhD,UAAY,OAAQ,CAC5B,OAAO2D,EACNE,EAAA,QAAMI,KAAK,YACNjB,KAAKpB,OAASoB,KAAKpB,MAAMmC,OAAS,EACvCf,KAAU,S,CAMZ,GAAIA,KAAK5B,OAAS,OAAQ,CACzB,OAAOyC,EAAM,QAAAI,KAAK,S,CAGnB,MAAMuB,EAAQ,CACbrE,KACAN,MAAOC,EAAM,CACZR,SAAU6D,EAAUnB,KAAK1C,UACzBK,WAAYqC,KAAK5B,OAAS,aAE3BQ,MAAOoB,KAAKpB,MACZG,YAAaiB,KAAKjB,YAClBzB,SAAU0C,KAAK1C,SACfmF,QAAUT,GAAmBhC,KAAK0C,aAAaV,IAGhD,IAAI3D,EAAa2B,KAAK3B,YAAc,GACpC,UAAWA,IAAe,SAAU,CACnCA,EAAasE,KAAKC,MAAM5C,KAAK3B,W,CAG9B,GAAI2B,KAAK5B,OAAS,WAAY,CAC7B,OACCyC,EAAA,YACCgC,IAAKA,GAAO7C,KAAK8C,aAAaD,MAC1BL,KACAnE,G,CAKP,OACCwC,EACC,SAAAzC,KAAM4B,KAAK5B,KACXyE,IAAKA,GAAO7C,KAAK8C,aAAaD,MAC1BL,KACAnE,G,CAKC,YAAAyE,CAAaD,GACpB7C,KAAKF,UAAY+C,EACjB7C,KAAKP,eAAeU,KAAK0C,E,CAGlB,WAAAtB,GACP,GAAIvB,KAAKF,UAAW,CACnBE,KAAKF,UAAUiD,QACf,M,CAGD,MAAMjF,EAAQkC,KAAKmC,IAAIC,cAAc,2BACpCtE,EAAsBkC,KAAKV,c,CAGrB,UAAAuC,GACP,IAAK7B,KAAKF,YAAcE,KAAKX,iBAAkB,CAC9C,M,CAGDW,KAAKF,UAAUkD,Q,CAGR,YAAAN,CAAaV,GACpBA,EAAGiB,kBACH,MAAMC,EAAUlB,EAAGmB,gBAAkBnB,EAAGkB,OAGxC,MAAMtE,EAAQsE,EAAOtE,MACrBoB,KAAKR,YAAYW,KAAKvB,GACtBoB,KAAKH,WAAWuD,aAAaxE,E,CAGtB,eAAAqB,GACP,IAAKD,KAAKd,UAAW,CACpB,M,CAGD,IAAKc,KAAKF,UAAW,CACpBuD,YAAW,IAAMrD,KAAKC,mBAAmB,KACzC,M,CAGDD,KAAKuB,a,qDC3pBP,MAAM+B,EAA6B,iuDCoBnC,MAAMC,EAASzG,EAAI,CAAC,qBAAsB,CACzCC,SAAU,CACTC,QAAS,CACRC,KAAM,KACNC,MAAO,MAERC,KAAM,CACLE,KAAM,KACND,GAAI,OAGNQ,iBAAkB,CACjB,CACCZ,QAAS,OACTG,KAAM,OACNU,MAAO,OAER,CACCb,QAAS,OACTG,KAAM,KACNU,MAAO,OAGR,CACCb,QAAS,QACTG,KAAM,OACNU,MAAO,OAER,CACCb,QAAS,QACTG,KAAM,KACNU,MAAO,U,MAYG2F,EAAc,M,sDAClBC,yBAAyC,IAChDC,EAAkB1D,KAAK2D,SAASC,UAIzBzF,GAKAD,MAAyB,QAKzBW,MAKAC,QAAmB,MAKnBkC,YAA6B,OAK7BhE,QAKAgC,OAKiBC,SAKAvB,MAKjByB,eAKiBC,iBAA4B,MAK7CG,iBAAiCS,KAAKyD,yB,yBAOrCV,MAKQY,SAAgB,GAEjC,iBAAAE,GACC7D,KAAK8D,a,CAGN,MAAAxD,GACC,MAAMC,cACLA,EAAaG,aACbA,EAAY1B,OACZA,EAAMH,MACNA,EAAK0D,0BACLA,GACGvC,KAAKY,eAET,IAAImD,EACHlD,EAAA,QAAAC,IAAA,2CACCI,KAAK,UACLD,KAAK,YAIP,GAAIjB,KAAKlB,QAAS,CACjBiF,EACClD,EACC,YAAAC,IAAA,2CAAA9D,QAAQ,QACRa,MAAO0F,EAAO,CAAEvG,QAASgD,KAAKhD,QAASG,KAAM6C,KAAKgB,cAClDE,KAAK,W,CAKR,OACCL,EACC,SAAAC,IAAA,2CAAAkD,QAAShE,KAAK7B,GACdN,MAAM,iCAENgD,EAAA,OAAAC,IAAA,2CACCjD,MAAO2D,EAAG,oDAAqD,CAC9D,mBAAoBxB,KAAK9B,QAAU,WAGjCW,GAAOkC,QACTF,EACC,OAAAC,IAAA,2CAAAjD,MAAM,0CACNyD,QAAS,IAAMtB,KAAK+C,MAAM5C,QAEzBtB,KAIAsC,EAAUnB,KAAKf,WAAaD,GAAUuB,IACxCM,EAAK,OAAAC,IAAA,2CAAAjD,MAAM,4BACRsD,EAAUnB,KAAKf,WAAae,KAAKhD,UAAY,SAC9C6D,EAAA,QAAAC,IAAA,2CAAMjD,MAAM,2CACVmC,KAAKT,qBAINP,GAAUuB,IACXM,EAACoD,EAAQ,CAAAnD,IAAA,4CACPP,GAAiBM,EAAA,QAAAC,IAAA,2CAAMG,KAAK,WAC5BjC,GACA6B,EACC,YAAAC,IAAA,2CAAAjD,MAAO,QAAQ0C,EAAgB,OAAS,KACxC2D,UAAU,WAETlF,MASR6B,EACC,aAAAC,IAAA,2CAAAjD,MAAO2D,EAAG,CACT,SAAUxB,KAAKhD,UAAY,SAAWgD,KAAKlB,QAC3C,UAAWkB,KAAK9B,QAAU,QAE3BlB,QAAQ,QACRmH,QAASnE,KAAKtC,MACd0G,KAAM7B,GAA6BpB,EAAUnB,KAAKZ,kBAClDiF,gBAAiB,MACjBH,UAAWlE,KAAKb,gBAEfuB,GACAG,EAAA,QAAAC,IAAA,2CACCG,KAAK,QACLC,KAAK,YAIN6C,G,CAOG,iBAAMD,GACb9D,KAAK2D,eAAiBW,EAA0BtE,KAAKmC,I,CAG9C,YAAAvB,GACP,MAAMH,IAAkBT,KAAKmC,IAAIC,cAAc,4BAC/C,MAAM5B,IAAiBR,KAAKmC,IAAIC,cAAc,2BAC9C,MAAM7B,IAAkBP,KAAKmC,IAAIC,cAAc,4BAC/C,MAAM1B,IAAiBV,KAAKmC,IAAIC,cAAc,2BAE9C,MAAMpD,EAASyB,EAAgBI,EAAM,QAAAI,KAAK,WAAcjB,KAAKhB,OAC7D,MAAMH,EAAQ2B,EAAeK,EAAM,QAAAI,KAAK,UAAajB,KAAKnB,MAE1D,MAAM0D,EACL7B,GACCV,KAAKtC,cAAgBsC,KAAKtC,QAAU,UAAYsC,KAAKtC,QAAU,OAEjE,MAAO,CACN+C,gBACAD,eACAD,gBACAG,eACA1B,SACAH,QACA0D,4B","ignoreList":[]}
@@ -1,2 +0,0 @@
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 +0,0 @@
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":[]}