@paperless/core 0.1.0-alpha.361 → 0.1.0-alpha.363

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.1.0-alpha.363](https://github.com/ionic-team/stencil-component-starter/compare/v0.1.0-alpha.362...v0.1.0-alpha.363) (2023-02-24)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **Molecules/Select:** Add debugging ([2714898](https://github.com/ionic-team/stencil-component-starter/commit/27148989db55624b086c749fe57ff8f027f3abec))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.1.0-alpha.362](https://github.com/ionic-team/stencil-component-starter/compare/v0.1.0-alpha.361...v0.1.0-alpha.362) (2023-02-24)
18
+
19
+
20
+ ### Features
21
+
22
+ * **Molecules/Select:** Allow for selection when no items are provided ([c5f7e51](https://github.com/ionic-team/stencil-component-starter/commit/c5f7e51ea0996a20ccdc95a71614b879635086a4))
23
+
24
+
25
+
26
+
27
+
6
28
  # [0.1.0-alpha.361](https://github.com/ionic-team/stencil-component-starter/compare/v0.1.0-alpha.360...v0.1.0-alpha.361) (2023-02-22)
7
29
 
8
30
  **Note:** Version bump only for package @paperless/core
@@ -1,2 +1,2 @@
1
- import{r as t,c as e,h as r,H as a,g as i}from"./p-69d43b9d.js";import{c as s}from"./p-8a6728d5.js";const o=".visible{visibility:visible!important}.static{position:static!important}.absolute{position:absolute!important}.ml-2{margin-left:.5rem!important}.inline{display:inline!important}.flex{display:flex!important}.h-6{height:1.5rem!important}.w-full{width:100%!important}.-rotate-0{--tw-rotate:-0deg!important}.-rotate-0,.-rotate-135{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-135{--tw-rotate:-135deg!important}.-rotate-180{--tw-rotate:-180deg!important}.-rotate-180,.-rotate-225{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-225{--tw-rotate:-225deg!important}.-rotate-25{--tw-rotate:-25deg!important}.-rotate-25,.-rotate-270{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-270{--tw-rotate:-270deg!important}.-rotate-315{--tw-rotate:-315deg!important}.-rotate-315,.-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-45{--tw-rotate:-45deg!important}.-rotate-90{--tw-rotate:-90deg!important}.-rotate-90,.rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-0{--tw-rotate:0deg!important}.rotate-135{--tw-rotate:135deg!important}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-180{--tw-rotate:180deg!important}.rotate-225{--tw-rotate:225deg!important}.rotate-225,.rotate-25{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-25{--tw-rotate:25deg!important}.rotate-270{--tw-rotate:270deg!important}.rotate-270,.rotate-315{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-315{--tw-rotate:315deg!important}.rotate-45{--tw-rotate:45deg!important}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-90{--tw-rotate:90deg!important}.scale-x-flip{--tw-scale-x:-1!important}.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.scale-y-flip{--tw-scale-y:-1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.items-end{align-items:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.rounded{border-radius:.25rem!important}.rounded-bl-none{border-bottom-left-radius:0!important}.rounded-br-none{border-bottom-right-radius:0!important}.rounded-tl-none{border-top-left-radius:0!important}.rounded-tr-none{border-top-right-radius:0!important}.border-l-0{border-left-width:0!important}.border-r-0{border-right-width:0!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-5xl{font-size:3rem!important}.text-5xl,.text-6xl{line-height:1!important}.text-6xl{font-size:3.75rem!important}.text-base{font-size:1rem!important;line-height:1.5rem!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-xl{font-size:1.25rem!important;line-height:1.75rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-xxs{font-size:.6875rem!important}.text-negative{color:rgb(185 30 40/var(--tw-text-opacity))!important}.text-negative,.text-negative-light{--tw-text-opacity:1!important}.text-negative-light{color:rgb(255 204 211/var(--tw-text-opacity))!important}.blur{--tw-blur:blur(8px)!important}.blur,.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}*{box-sizing:border-box}:host{display:flex;flex-direction:column}:host input.read-only{text-overflow:ellipsis}.-rotate-0,.-rotate-135,.-rotate-180,.-rotate-225,.-rotate-25,.-rotate-270,.-rotate-315,.-rotate-45,.-rotate-90,.rotate-0,.rotate-135,.rotate-180,.rotate-225,.rotate-25,.rotate-270,.rotate-315,.rotate-45,.rotate-90,.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.hover\\:text-negative:hover{--tw-text-opacity:1!important;color:rgb(185 30 40/var(--tw-text-opacity))!important}";const n=class{constructor(r){t(this,r);this.queryChange=e(this,"queryChange",7);this.valueChange=e(this,"valueChange",7);this.dropdownShown=e(this,"dropdownShown",7);this._isAutoCompleting=false;this.items=undefined;this.icon=undefined;this.query=undefined;this.placeholder=undefined;this.autocompletePlaceholder=undefined;this.value=undefined;this.displayKey="text";this.valueKey="value";this.identifierKey=undefined;this.queryKey=undefined;this.autoSelectFirst=true;this.showChevron=true;this.maxDisplayedItems=10;this.enableAutocomplete=true;this.asyncFilter=false;this.loading=false;this.size="medium";this.prefix=undefined;this.label=undefined;this.helper=undefined;this.error=undefined;this.disabled=false;this._showDropdown=false;this._selectedItem=null}get _items(){var t;if(!this.items||this.loading){return[]}let e=typeof this.items==="string"?JSON.parse(this.items):this.items;if(typeof(e===null||e===void 0?void 0:e[0])==="string"){this.displayKey="text";this.valueKey="value";e=e.map((t=>({value:t,text:t})))}if(this._isAutoCompleting&&((t=this.query)===null||t===void 0?void 0:t.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)}))}return e===null||e===void 0?void 0:e.slice(0,this.maxDisplayedItems)}get _displayValue(){var t;if(this._isAutoCompleting){return this.query}return(t=this._selectedItem)===null||t===void 0?void 0:t[this.displayKey]}get _placeholder(){var t;return this._isAutoCompleting&&((t=this.autocompletePlaceholder)===null||t===void 0?void 0:t.length)?this.autocompletePlaceholder:this.placeholder}get _identifierKey(){var t;return(t=this.identifierKey)!==null&&t!==void 0?t:this.valueKey}componentDidLoad(){var t;if(this.value){this._valueChange(this.value);return}if(this.autoSelectFirst){this._selectedItem=(t=this._items)===null||t===void 0?void 0:t[0]}}render(){return r(a,{class:"p-select"},r("p-dropdown",{disableTriggerClick:true,calculateWidth:true,insideClick:true,show:this._showDropdown&&(!!this._items.length||this.loading)},r("p-input-group",{slot:"trigger",icon:this.icon,size:this.size,prefix:this.prefix,label:this.label,helper:this.helper,error:this.error,disabled:this.disabled,focused:this._showDropdown},r("input",{slot:"input",type:"text",placeholder:this._placeholder,value:this._displayValue,class:`p-input cursor-pointer ${!this._isAutoCompleting&&"read-only"}`,onFocus:()=>this._onFocus(),onMouseDown:t=>this._onMouseDown(t),onClick:()=>this._onClick(),onInput:t=>this._onChange(t),ref:t=>this._inputRef=t}),this.showChevron&&r("p-icon",{variant:"chevron",slot:"suffix"})),r("div",{slot:"items"},this.loading?this._getLoadingItems():this._getItems())))}documentClickHandler({target:t}){if(!this._showDropdown||s(t,this._el)){return}this._showDropdown=false;this._isAutoCompleting=false}_valueChange(t){this._preselectItem(t)}itemChanges(){this._preselectItem()}_showDropdownChanges(){this.dropdownShown.emit({value:this._showDropdown,query:this.query})}_preselectItem(t){var e;t=t===undefined?null:t;t=!t?this.value:t;t=this.valueKey==="false"||!this.valueKey||!((e=this.valueKey)===null||e===void 0?void 0:e.length)?t===null||t===void 0?void 0:t[this._identifierKey]:t;const r=JSON.stringify(t);if(this._selectedItem&&JSON.stringify(this._selectedItem[this._identifierKey])===r){return}const a=this._items.find((t=>JSON.stringify(t===null||t===void 0?void 0:t[this._identifierKey])===r));this._selectedItem=a}_selectValue(t){var e;this._selectedItem=t;const r=!!((e=this.valueKey)===null||e===void 0?void 0:e.length)&&this.valueKey!=="false"?t[this.valueKey]:t;this.value=r;this.valueChange.emit(this.value);this._onBlur(true)}_onFocus(){if(!this.enableAutocomplete){this._inputRef.blur();if(!this._showDropdown){this._showDropdown=true}return}this._isAutoCompleting=true;this._showDropdown=true}_onMouseDown(t){if(this.enableAutocomplete){return}t.preventDefault()}_onClick(){if(this.enableAutocomplete){return}this._showDropdown=!this._showDropdown}_onBlur(t=false){if(!this.enableAutocomplete&&!t){return}this._isAutoCompleting=false;this._showDropdown=false}_onChange(t){if(!this._isAutoCompleting){return}this.query=t.target.value;this.queryChange.emit(this.query)}_checkvalue(t,e){var r,a,i;return((a=(r=e===null||e===void 0?void 0:e[t])===null||r===void 0?void 0:r.toString())===null||a===void 0?void 0:a.toLowerCase().indexOf((i=this.query)===null||i===void 0?void 0:i.toLowerCase()))>=0}_getItems(){return this._items.map((t=>{var e;return r("p-dropdown-menu-item",{onClick:()=>this._selectValue(t),active:t[this._identifierKey]===((e=this._selectedItem)===null||e===void 0?void 0:e[this._identifierKey])},t[this.displayKey])}))}_getLoadingItems(){return[0,0,0].map((()=>r("p-dropdown-menu-item",{enableHover:false},r("p-loader",{variant:"ghost",class:"h-6 w-full rounded"}))))}get _el(){return i(this)}static get watchers(){return{value:["_valueChange"],items:["itemChanges"],_showDropdown:["_showDropdownChanges"]}}};n.style=o;export{n as p_select};
2
- //# sourceMappingURL=p-5aabd2c2.entry.js.map
1
+ import{r as t,c as e,h as r,H as a,g as i}from"./p-69d43b9d.js";import{c as s}from"./p-8a6728d5.js";const o=".visible{visibility:visible!important}.static{position:static!important}.absolute{position:absolute!important}.ml-2{margin-left:.5rem!important}.inline{display:inline!important}.flex{display:flex!important}.h-6{height:1.5rem!important}.w-full{width:100%!important}.-rotate-0{--tw-rotate:-0deg!important}.-rotate-0,.-rotate-135{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-135{--tw-rotate:-135deg!important}.-rotate-180{--tw-rotate:-180deg!important}.-rotate-180,.-rotate-225{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-225{--tw-rotate:-225deg!important}.-rotate-25{--tw-rotate:-25deg!important}.-rotate-25,.-rotate-270{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-270{--tw-rotate:-270deg!important}.-rotate-315{--tw-rotate:-315deg!important}.-rotate-315,.-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-45{--tw-rotate:-45deg!important}.-rotate-90{--tw-rotate:-90deg!important}.-rotate-90,.rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-0{--tw-rotate:0deg!important}.rotate-135{--tw-rotate:135deg!important}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-180{--tw-rotate:180deg!important}.rotate-225{--tw-rotate:225deg!important}.rotate-225,.rotate-25{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-25{--tw-rotate:25deg!important}.rotate-270{--tw-rotate:270deg!important}.rotate-270,.rotate-315{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-315{--tw-rotate:315deg!important}.rotate-45{--tw-rotate:45deg!important}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-90{--tw-rotate:90deg!important}.scale-x-flip{--tw-scale-x:-1!important}.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.scale-y-flip{--tw-scale-y:-1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.items-end{align-items:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.rounded{border-radius:.25rem!important}.rounded-bl-none{border-bottom-left-radius:0!important}.rounded-br-none{border-bottom-right-radius:0!important}.rounded-tl-none{border-top-left-radius:0!important}.rounded-tr-none{border-top-right-radius:0!important}.border-l-0{border-left-width:0!important}.border-r-0{border-right-width:0!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-5xl{font-size:3rem!important}.text-5xl,.text-6xl{line-height:1!important}.text-6xl{font-size:3.75rem!important}.text-base{font-size:1rem!important;line-height:1.5rem!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-xl{font-size:1.25rem!important;line-height:1.75rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-xxs{font-size:.6875rem!important}.text-negative{color:rgb(185 30 40/var(--tw-text-opacity))!important}.text-negative,.text-negative-light{--tw-text-opacity:1!important}.text-negative-light{color:rgb(255 204 211/var(--tw-text-opacity))!important}.blur{--tw-blur:blur(8px)!important}.blur,.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}*{box-sizing:border-box}:host{display:flex;flex-direction:column}:host input.read-only{text-overflow:ellipsis}.-rotate-0,.-rotate-135,.-rotate-180,.-rotate-225,.-rotate-25,.-rotate-270,.-rotate-315,.-rotate-45,.-rotate-90,.rotate-0,.rotate-135,.rotate-180,.rotate-225,.rotate-25,.rotate-270,.rotate-315,.rotate-45,.rotate-90,.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.hover\\:text-negative:hover{--tw-text-opacity:1!important;color:rgb(185 30 40/var(--tw-text-opacity))!important}";const n=class{constructor(r){t(this,r);this.queryChange=e(this,"queryChange",7);this.valueChange=e(this,"valueChange",7);this.dropdownShown=e(this,"dropdownShown",7);this._isAutoCompleting=false;this.items=undefined;this.icon=undefined;this.query=undefined;this.placeholder=undefined;this.autocompletePlaceholder=undefined;this.value=undefined;this.displayKey="text";this.valueKey="value";this.identifierKey=undefined;this.queryKey=undefined;this.autoSelectFirst=true;this.showChevron=true;this.maxDisplayedItems=10;this.enableAutocomplete=true;this.asyncFilter=false;this.loading=false;this.size="medium";this.prefix=undefined;this.label=undefined;this.helper=undefined;this.error=undefined;this.disabled=false;this._showDropdown=false;this._selectedItem=null}get _items(){var t;if(!this.items||this.loading){return[]}let e=typeof this.items==="string"?JSON.parse(this.items):this.items;if(typeof(e===null||e===void 0?void 0:e[0])==="string"){this.displayKey="text";this.valueKey="value";e=e.map((t=>({value:t,text:t})))}if(this._isAutoCompleting&&((t=this.query)===null||t===void 0?void 0:t.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)}))}return e===null||e===void 0?void 0:e.slice(0,this.maxDisplayedItems)}get _displayValue(){var t;if(this._isAutoCompleting){return this.query}return(t=this._selectedItem)===null||t===void 0?void 0:t[this.displayKey]}get _placeholder(){var t;return this._isAutoCompleting&&((t=this.autocompletePlaceholder)===null||t===void 0?void 0:t.length)?this.autocompletePlaceholder:this.placeholder}get _identifierKey(){var t;return(t=this.identifierKey)!==null&&t!==void 0?t:this.valueKey}componentDidLoad(){var t;if(this.value){this._valueChange(this.value);return}if(this.autoSelectFirst){this._selectedItem=(t=this._items)===null||t===void 0?void 0:t[0]}}render(){return r(a,{class:"p-select"},r("p-dropdown",{disableTriggerClick:true,calculateWidth:true,insideClick:true,show:this._showDropdown&&(!!this._items.length||this.loading)},r("p-input-group",{slot:"trigger",icon:this.icon,size:this.size,prefix:this.prefix,label:this.label,helper:this.helper,error:this.error,disabled:this.disabled,focused:this._showDropdown},r("input",{slot:"input",type:"text",placeholder:this._placeholder,value:this._displayValue,class:`p-input cursor-pointer ${!this._isAutoCompleting&&"read-only"}`,onFocus:()=>this._onFocus(),onMouseDown:t=>this._onMouseDown(t),onClick:()=>this._onClick(),onInput:t=>this._onChange(t),ref:t=>this._inputRef=t}),this.showChevron&&r("p-icon",{variant:"chevron",slot:"suffix"})),r("div",{slot:"items"},this.loading?this._getLoadingItems():this._getItems())))}documentClickHandler({target:t}){if(!this._showDropdown||s(t,this._el)){return}this._showDropdown=false;this._isAutoCompleting=false}_valueChange(t){this._preselectItem(t)}itemChanges(){this._preselectItem()}_showDropdownChanges(){this.dropdownShown.emit({value:this._showDropdown,query:this.query})}_preselectItem(t){var e,r;t=t===undefined?null:t;t=!t?this.value:t;t=this.valueKey==="false"||!this.valueKey||!((e=this.valueKey)===null||e===void 0?void 0:e.length)?t===null||t===void 0?void 0:t[this._identifierKey]:t;const a=typeof t==="string"?t:JSON.stringify(t);if(this._selectedItem&&JSON.stringify(this._selectedItem[this._identifierKey])===a){return}console.log(this._items,t);if(!((r=this._items)===null||r===void 0?void 0:r.length)&&t){this._selectedItem=t;return}const i=this._items.find((t=>JSON.stringify(t===null||t===void 0?void 0:t[this._identifierKey])===a));this._selectedItem=i}_selectValue(t){var e;this._selectedItem=t;const r=!!((e=this.valueKey)===null||e===void 0?void 0:e.length)&&this.valueKey!=="false"?t[this.valueKey]:t;this.value=r;this.valueChange.emit(this.value);this._onBlur(true)}_onFocus(){if(!this.enableAutocomplete){this._inputRef.blur();if(!this._showDropdown){this._showDropdown=true}return}this._isAutoCompleting=true;this._showDropdown=true}_onMouseDown(t){if(this.enableAutocomplete){return}t.preventDefault()}_onClick(){if(this.enableAutocomplete){return}this._showDropdown=!this._showDropdown}_onBlur(t=false){if(!this.enableAutocomplete&&!t){return}this._isAutoCompleting=false;this._showDropdown=false}_onChange(t){if(!this._isAutoCompleting){return}this.query=t.target.value;this.queryChange.emit(this.query)}_checkvalue(t,e){var r,a,i;return((a=(r=e===null||e===void 0?void 0:e[t])===null||r===void 0?void 0:r.toString())===null||a===void 0?void 0:a.toLowerCase().indexOf((i=this.query)===null||i===void 0?void 0:i.toLowerCase()))>=0}_getItems(){return this._items.map((t=>{var e;return r("p-dropdown-menu-item",{onClick:()=>this._selectValue(t),active:t[this._identifierKey]===((e=this._selectedItem)===null||e===void 0?void 0:e[this._identifierKey])},t[this.displayKey])}))}_getLoadingItems(){return[0,0,0].map((()=>r("p-dropdown-menu-item",{enableHover:false},r("p-loader",{variant:"ghost",class:"h-6 w-full rounded"}))))}get _el(){return i(this)}static get watchers(){return{value:["_valueChange"],items:["itemChanges"],_showDropdown:["_showDropdownChanges"]}}};n.style=o;export{n as p_select};
2
+ //# sourceMappingURL=p-c0ce16e6.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["selectComponentCss","Select","this","_isAutoCompleting","_items","items","loading","JSON","parse","displayKey","valueKey","map","str","value","text","_a","query","length","asyncFilter","filter","item","queryKey","_checkvalue","_identifierKey","slice","maxDisplayedItems","_displayValue","_selectedItem","_placeholder","autocompletePlaceholder","placeholder","identifierKey","componentDidLoad","_valueChange","autoSelectFirst","render","h","Host","class","disableTriggerClick","calculateWidth","insideClick","show","_showDropdown","slot","icon","size","prefix","label","helper","error","disabled","focused","type","onFocus","_onFocus","onMouseDown","ev","_onMouseDown","onClick","_onClick","onInput","_onChange","ref","_inputRef","showChevron","variant","_getLoadingItems","_getItems","documentClickHandler","target","childOf","_el","_preselectItem","itemChanges","_showDropdownChanges","dropdownShown","emit","undefined","parsedValue","stringify","console","log","_b","find","i","_selectValue","valueChange","_onBlur","enableAutocomplete","blur","preventDefault","force","queryChange","key","toString","toLowerCase","indexOf","_c","active","enableHover"],"sources":["./src/components/molecules/select/select.component.scss?tag=p-select","./src/components/molecules/select/select.component.tsx"],"sourcesContent":[":host {\n @apply flex flex-col;\n\n input.read-only {\n @apply text-ellipsis;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-select',\n styleUrl: 'select.component.scss',\n shadow: false,\n})\nexport class Select {\n /**\n * The items to show in the dropdown\n */\n @Prop() items: string | any[];\n\n /**\n * Icon of the select box\n */\n @Prop() icon: IconVariant;\n\n /**\n * The current query\n */\n @Prop() query: string;\n\n /**\n * The placeholder of the input\n */\n @Prop() placeholder: string;\n\n /**\n * The placeholder of the input when auto completing\n */\n @Prop() autocompletePlaceholder: string;\n\n /**\n * The current value\n */\n @Prop() value: any;\n\n /**\n * The key of the object to display\n */\n @Prop() displayKey: string = 'text';\n\n /**\n * The key of the object to return\n */\n @Prop() valueKey: string = 'value';\n\n /**\n * The key to identify an object\n */\n @Prop() identifierKey: string;\n\n /**\n * The key of the object to display\n */\n @Prop() queryKey?: string;\n\n /**\n * Wether to automatically select the first item\n */\n @Prop() autoSelectFirst: boolean = true;\n\n /**\n * Wether to show the chevron or not\n */\n @Prop() showChevron: boolean = true;\n\n /**\n * The maximum amount of items to display\n */\n @Prop() maxDisplayedItems: number = 10;\n\n /**\n * Wether to enable autocomplete\n */\n @Prop() enableAutocomplete: boolean = true;\n\n /**\n * Wether the input uses async filtering\n */\n @Prop() asyncFilter: boolean = false;\n\n /**\n * Wether to show loading items\n */\n @Prop() loading: boolean = false;\n\n /**\n * Event when the query of the autocomplete changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the value changes\n */\n @Event() valueChange: EventEmitter<any>;\n\n /**\n * Event when the dropdown shows\n */\n @Event() dropdownShown: EventEmitter<any>;\n\n /**\n * The size of the input group used by the select\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group used by the select\n */\n @Prop() prefix: string;\n\n /**\n * The label of the input group used by the select\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop() helper: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled used by the select\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _showDropdown: any = false;\n @State() private _selectedItem: any = null;\n\n private _isAutoCompleting: boolean = false;\n\n private _inputRef: HTMLInputElement;\n\n get _items() {\n if (!this.items || this.loading) {\n return [];\n }\n\n let items =\n typeof this.items === 'string'\n ? JSON.parse(this.items)\n : this.items;\n\n if (typeof items?.[0] === 'string') {\n this.displayKey = 'text';\n this.valueKey = 'value';\n\n items = items.map((str) => ({\n value: str,\n text: str,\n }));\n }\n\n if (this._isAutoCompleting && this.query?.length && !this.asyncFilter) {\n items = items.filter((item) => {\n if (this.queryKey) {\n return this._checkvalue(this.queryKey, item);\n }\n\n return (\n this._checkvalue(this._identifierKey, item) ||\n this._checkvalue(this.displayKey, item)\n );\n });\n }\n\n return items?.slice(0, this.maxDisplayedItems);\n }\n\n get _displayValue() {\n if (this._isAutoCompleting) {\n return this.query;\n }\n\n return this._selectedItem?.[this.displayKey];\n }\n\n get _placeholder() {\n return this._isAutoCompleting && this.autocompletePlaceholder?.length\n ? this.autocompletePlaceholder\n : this.placeholder;\n }\n\n get _identifierKey() {\n return this.identifierKey ?? this.valueKey;\n }\n\n componentDidLoad() {\n if (this.value) {\n this._valueChange(this.value);\n return;\n }\n\n if (this.autoSelectFirst) {\n this._selectedItem = this._items?.[0];\n }\n }\n\n render() {\n return (\n <Host class=\"p-select\">\n <p-dropdown\n disableTriggerClick={true}\n calculateWidth={true}\n insideClick={true}\n show={\n this._showDropdown &&\n (!!this._items.length || this.loading)\n }\n >\n <p-input-group\n slot=\"trigger\"\n icon={this.icon}\n size={this.size}\n prefix={this.prefix}\n label={this.label}\n helper={this.helper}\n error={this.error}\n disabled={this.disabled}\n focused={this._showDropdown}\n >\n <input\n slot=\"input\"\n type=\"text\"\n placeholder={this._placeholder}\n value={this._displayValue}\n class={`p-input cursor-pointer ${\n !this._isAutoCompleting && 'read-only'\n }`}\n onFocus={() => this._onFocus()}\n onMouseDown={(ev) => this._onMouseDown(ev)}\n onClick={() => this._onClick()}\n onInput={(ev) => this._onChange(ev)}\n ref={(ref) => (this._inputRef = ref)}\n />\n\n {this.showChevron && (\n <p-icon variant=\"chevron\" slot=\"suffix\" />\n )}\n </p-input-group>\n <div slot=\"items\">\n {this.loading\n ? this._getLoadingItems()\n : this._getItems()}\n </div>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('click', { target: 'document', capture: true })\n protected documentClickHandler({ target }) {\n if (!this._showDropdown || childOf(target, this._el)) {\n return;\n }\n\n this._showDropdown = false;\n this._isAutoCompleting = false;\n }\n\n @Watch('value')\n private _valueChange(value: any) {\n this._preselectItem(value);\n }\n\n @Watch('items')\n public itemChanges() {\n this._preselectItem();\n }\n\n @Watch('_showDropdown')\n public _showDropdownChanges() {\n this.dropdownShown.emit({\n value: this._showDropdown,\n query: this.query,\n });\n }\n\n private _preselectItem(value?: any) {\n value = value === undefined ? null : value;\n value = !value ? this.value : value;\n\n value =\n this.valueKey === 'false' ||\n !this.valueKey ||\n !this.valueKey?.length\n ? value?.[this._identifierKey]\n : value;\n const parsedValue =\n typeof value === 'string' ? value : JSON.stringify(value);\n\n if (\n this._selectedItem &&\n JSON.stringify(this._selectedItem[this._identifierKey]) ===\n parsedValue\n ) {\n return;\n }\n\n console.log(this._items, value);\n if (!this._items?.length && value) {\n this._selectedItem = value;\n return;\n }\n\n const item = this._items.find(\n (i) => JSON.stringify(i?.[this._identifierKey]) === parsedValue\n );\n\n this._selectedItem = item;\n }\n\n private _selectValue(item) {\n this._selectedItem = item;\n const value =\n !!this.valueKey?.length && this.valueKey !== 'false'\n ? item[this.valueKey]\n : item;\n\n this.value = value;\n this.valueChange.emit(this.value);\n\n this._onBlur(true);\n }\n\n private _onFocus() {\n if (!this.enableAutocomplete) {\n this._inputRef.blur();\n if (!this._showDropdown) {\n this._showDropdown = true;\n }\n return;\n }\n\n this._isAutoCompleting = true;\n\n this._showDropdown = true;\n }\n\n private _onMouseDown(ev) {\n if (this.enableAutocomplete) {\n return;\n }\n\n ev.preventDefault();\n }\n\n private _onClick() {\n if (this.enableAutocomplete) {\n return;\n }\n\n this._showDropdown = !this._showDropdown;\n }\n\n private _onBlur(force = false) {\n if (!this.enableAutocomplete && !force) {\n return;\n }\n\n this._isAutoCompleting = false;\n this._showDropdown = false;\n }\n\n private _onChange(ev) {\n if (!this._isAutoCompleting) {\n return;\n }\n\n this.query = ev.target.value;\n this.queryChange.emit(this.query);\n }\n\n private _checkvalue(key, item) {\n return (\n item?.[key]\n ?.toString()\n ?.toLowerCase()\n .indexOf(this.query?.toLowerCase()) >= 0\n );\n }\n\n private _getItems() {\n return this._items.map((item) => (\n <p-dropdown-menu-item\n onClick={() => this._selectValue(item)}\n active={\n item[this._identifierKey] ===\n this._selectedItem?.[this._identifierKey]\n }\n >\n {item[this.displayKey]}\n </p-dropdown-menu-item>\n ));\n }\n\n private _getLoadingItems() {\n return [0, 0, 0].map(() => (\n <p-dropdown-menu-item enableHover={false}>\n <p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n </p-dropdown-menu-item>\n ));\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{p as e,b as a}from"./p-69d43b9d.js";export{s as setNonce}from"./p-69d43b9d.js";const i=()=>{const a=import.meta.url;const i={};if(a!==""){i.resourcesUrl=new URL(".",a).href}return e(i)};i().then((e=>a(JSON.parse('[["p-3d68b72f",[[4,"p-button",{"variant":[1],"href":[1],"target":[1],"size":[1],"loading":[4],"chevron":[8],"chevronPosition":[1,"chevron-position"],"disabled":[4],"icon":[1],"iconOnly":[4,"icon-only"],"iconPosition":[1,"icon-position"],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"],"inheritText":[4,"inherit-text"]},[[2,"click","handleClick"]]],[1,"p-loader",{"show":[4],"variant":[1],"color":[1],"modalTitle":[1,"modal-title"],"modalDescription":[1,"modal-description"]}],[0,"p-icon",{"variant":[1],"size":[1],"rotate":[2],"flip":[1]}]]],["p-2bc6b026",[[0,"p-table",{"items":[1],"loading":[4],"headerLoading":[4,"header-loading"],"footerLoading":[4,"footer-loading"],"amountOfLoadingRows":[2,"amount-of-loading-rows"],"enableRowSelection":[4,"enable-row-selection"],"enableRowClick":[4,"enable-row-click"],"selectedRows":[16],"selectionKey":[1,"selection-key"],"canSelectKey":[1,"can-select-key"],"quickFilters":[16],"activeQuickFilterIdentifier":[1,"active-quick-filter-identifier"],"enableSearch":[4,"enable-search"],"query":[1025],"enableFilter":[4,"enable-filter"],"selectedFiltersAmount":[2,"selected-filters-amount"],"filterButtonTemplate":[16],"enableEdit":[4,"enable-edit"],"editButtonTemplate":[16],"enablePageSize":[4,"enable-page-size"],"enablePagination":[4,"enable-pagination"],"enableExport":[4,"enable-export"],"page":[1538],"total":[2],"pageSize":[2,"page-size"],"pageSizeOptions":[16],"hideOnSinglePage":[4,"hide-on-single-page"],"emptyStateHeader":[16],"emptyStateContent":[16],"emptyStateAction":[16],"emptyStateFilteredHeader":[16],"emptyStateFilteredContent":[16],"_locales":[32],"_columns":[32],"_items":[32]},[[16,"localeChanged","_setLocales"],[16,"tableDefinitionChanged","onTableDefinitionUpdated"],[4,"keydown","keyDown"],[4,"keyup","keyUp"],[4,"visibilitychange","visibilityChange"]]]]],["p-19c08855",[[1,"p-modal",{"size":[1],"variant":[1],"header":[1],"show":[4],"applyBlur":[4,"apply-blur"],"showClose":[4,"show-close"],"showMobileFooter":[4,"show-mobile-footer"],"backdropClickClose":[4,"backdrop-click-close"],"scrollLock":[4,"scroll-lock"],"_closing":[32]}]]],["p-5aabd2c2",[[0,"p-select",{"items":[1],"icon":[1],"query":[1],"placeholder":[1],"autocompletePlaceholder":[1,"autocomplete-placeholder"],"value":[8],"displayKey":[1,"display-key"],"valueKey":[1,"value-key"],"identifierKey":[1,"identifier-key"],"queryKey":[1,"query-key"],"autoSelectFirst":[4,"auto-select-first"],"showChevron":[4,"show-chevron"],"maxDisplayedItems":[2,"max-displayed-items"],"enableAutocomplete":[4,"enable-autocomplete"],"asyncFilter":[4,"async-filter"],"loading":[4],"size":[1],"prefix":[1],"label":[1],"helper":[1],"error":[513],"disabled":[516],"_showDropdown":[32],"_selectedItem":[32]},[[6,"click","documentClickHandler"]]]]],["p-83f1ceef",[[0,"p-datepicker",{"placeholder":[1],"value":[8],"preselectToday":[4,"preselect-today"],"disabledDates":[1,"disabled-dates"],"minDate":[1,"min-date"],"maxDate":[1,"max-date"],"disableWeekends":[4,"disable-weekends"],"mode":[1],"format":[1],"size":[1],"prefix":[1],"label":[1],"helper":[1],"error":[513],"disabled":[516],"_showDropdown":[32],"_value":[32],"_minDate":[32],"_maxDate":[32],"_disabledDates":[32]},[[6,"click","documentClickHandler"]]]]],["p-8120c40f",[[1,"p-drawer",{"header":[1],"show":[4],"applyBlur":[4,"apply-blur"],"showClose":[4,"show-close"],"backdropClickClose":[4,"backdrop-click-close"],"canClose":[4,"can-close"],"scrollLock":[4,"scroll-lock"],"_closing":[32]}]]],["p-e20ff8c8",[[1,"p-attachment",{"mode":[1],"loading":[4],"error":[1]}]]],["p-594d1cf6",[[1,"p-navbar",{"closeText":[1,"close-text"],"menuText":[1,"menu-text"],"_showMenu":[32]},[[8,"closeNavbar","handleCloseNavbar"],[8,"openNavbar","handleOpenNavbar"]]]]],["p-bd13aa1f",[[1,"p-profile",{"variant":[1],"size":[513],"_dropdownOpen":[32]}]]],["p-0f3bd28b",[[1,"p-toast",{"variant":[1],"header":[1],"content":[1],"enableAction":[4,"enable-action"],"actionIcon":[1,"action-icon"],"actionIconFlip":[1,"action-icon-flip"],"actionIconRotate":[2,"action-icon-rotate"]}]]],["p-0b9838ca",[[1,"p-accordion",{"header":[1],"open":[4],"closeable":[4],"openable":[4]}]]],["p-b2af2dd2",[[1,"p-navigation-item",{"active":[4],"icon":[1],"counter":[8],"href":[1],"target":[1]}]]],["p-3e858d20",[[4,"p-card-header",{"header":[1],"arrow":[4]}]]],["p-268227ff",[[1,"p-content-slider",{"hideMobileIndicator":[4,"hide-mobile-indicator"],"disableDrag":[4,"disable-drag"],"disableAutoCenter":[4,"disable-auto-center"],"disableIndicatorClick":[4,"disable-indicator-click"],"_visibleIndex":[32],"_outerHeight":[32],"_totalWidth":[32],"_dragging":[32]},[[9,"mouseup","mouseUpHandler"],[9,"touchend","mouseUpHandler"],[9,"resize","resizeHandler"]]]]],["p-b131d8d5",[[1,"p-info-panel",{"variant":[1],"header":[1],"content":[1],"closeable":[4]}]]],["p-a0d40482",[[4,"p-status",{"variant":[1],"icon":[1],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"]}]]],["p-c1b67ebb",[[1,"p-stepper-line",{"active":[516],"direction":[513]}]]],["p-efd20880",[[1,"p-stepper",{"activeStep":[2,"active-step"],"direction":[513],"contentPosition":[513,"content-position"]}]]],["p-1b6cfd6c",[[1,"p-stepper-item",{"align":[513],"direction":[513],"contentPosition":[513,"content-position"],"finished":[516],"active":[516]}]]],["p-7171690b",[[1,"p-divider"]]],["p-5ab56199",[[1,"p-tab-group"]]],["p-4c3d6a7f",[[0,"p-avatar",{"variant":[513],"size":[513],"defaultImage":[1,"default-image"],"src":[1],"_src":[32]}]]],["p-966917a1",[[4,"p-avatar-group",{"extra":[2]}]]],["p-6966b84f",[[4,"p-card-body",{"inheritText":[516,"inherit-text"]}]]],["p-71b442d7",[[1,"p-card-container",{"hoverable":[516],"shadow":[516]}]]],["p-a46af8b4",[[1,"p-layout",{"variant":[1]}]]],["p-a0a27d24",[[1,"p-tab-item",{"active":[4]}]]],["p-6645532b",[[0,"p-table-column",{"path":[1537],"type":[1537],"name":[1537],"useSlot":[1540,"use-slot"],"align":[1537],"sizes":[1032]}]]],["p-6a5f5cc4",[[1,"p-toast-container",{"placement":[1]}]]],["p-04756580",[[1,"p-calendar",{"variant":[1],"value":[1],"preselectToday":[4,"preselect-today"],"disabledDates":[1,"disabled-dates"],"minDate":[1,"min-date"],"maxDate":[1,"max-date"],"disableWeekends":[4,"disable-weekends"],"mode":[1],"_view":[32],"_viewDate":[32],"_value":[32],"_minDate":[32],"_maxDate":[32],"_disabledDates":[32]}]]],["p-004340ec",[[1,"p-counter",{"variant":[1],"size":[1]}]]],["p-25ac3f10",[[1,"p-slider-indicator",{"active":[4]}]]],["p-11929d70",[[1,"p-drawer-header",{"showClose":[4,"show-close"]}],[1,"p-drawer-body",{"variant":[1]}],[4,"p-drawer-container",{"closing":[4]}]]],["p-5dfab26d",[[1,"p-backdrop",{"variant":[1],"applyBlur":[4,"apply-blur"],"closing":[4],"scrollLock":[4,"scroll-lock"]},[[2,"click","handleClick"]]]]],["p-bff2caf8",[[1,"p-modal-header",{"showClose":[4,"show-close"]}],[1,"p-modal-footer"],[1,"p-modal-body",{"variant":[1],"rounded":[4]}],[4,"p-modal-container",{"size":[1],"closing":[4]}]]],["p-846dd0bb",[[1,"p-label",{"variant":[513],"behavior":[513],"icon":[513],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"],"size":[513],"keepMobileContent":[516,"keep-mobile-content"]}],[1,"p-segment-item",{"active":[4],"icon":[1],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"]}],[4,"p-segment-container"]]],["p-f98027f1",[[4,"p-dropdown-menu-container",{"maxWidth":[4,"max-width"],"fullWidth":[4,"full-width"]}]]],["p-d86e3e82",[[1,"p-dropdown-menu-item",{"active":[4],"enableHover":[4,"enable-hover"],"icon":[1]}],[1,"p-dropdown",{"placement":[513],"strategy":[1],"show":[4],"calculateWidth":[4,"calculate-width"],"applyMaxWidth":[4,"apply-max-width"],"applyFullWidth":[4,"apply-full-width"],"insideClick":[4,"inside-click"],"disableTriggerClick":[4,"disable-trigger-click"],"chevronPosition":[1,"chevron-position"],"chevronDirection":[1,"chevron-direction"]},[[6,"click","documentClickHandler"]]]]],["p-4fc82528",[[1,"p-page-size-select",{"size":[1538],"sizeOptions":[16],"chevronPosition":[1,"chevron-position"],"buttonSize":[1,"button-size"],"buttonTemplate":[16],"itemTemplate":[16],"hidden":[4],"_locales":[32]},[[16,"localeChanged","_setLocales"]]],[0,"p-pagination",{"page":[1538],"pageSize":[2,"page-size"],"hideOnSinglePage":[4,"hide-on-single-page"],"total":[2]}],[1,"p-pagination-item",{"active":[4]}]]],["p-50789b59",[[1,"p-tooltip",{"variant":[1],"popover":[8],"placement":[1],"strategy":[1],"show":[4],"canManuallyClose":[4,"can-manually-close"]},[[2,"click","clickHandler"],[6,"click","documentClickHandler"],[1,"mouseenter","mouseEnterHandler"],[0,"focus","mouseEnterHandler"],[1,"mouseleave","mouseLeaveHandler"],[0,"blur","mouseLeaveHandler"]]]]],["p-23f04588",[[1,"p-input-group",{"size":[1],"prefix":[1],"suffix":[1],"icon":[1],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"],"iconPosition":[1,"icon-position"],"label":[1],"helper":[1],"required":[516],"error":[513],"disabled":[516],"focused":[516],"_forceShowTooltip":[32]},[[0,"focusin","handleFocusIn"],[0,"focusout","handleFocusOut"]]],[1,"p-helper",{"placement":[1]}],[1,"p-input-error",{"error":[1],"forceShowTooltip":[4,"force-show-tooltip"],"_showTooltip":[32]}]]],["p-bdaeb7c7",[[1,"p-table-header",{"quickFilters":[16],"activeQuickFilterIdentifier":[1,"active-quick-filter-identifier"],"loading":[4],"enableSearch":[4,"enable-search"],"itemsSelectedAmount":[2,"items-selected-amount"],"query":[1025],"enableFilter":[4,"enable-filter"],"selectedFiltersAmount":[2,"selected-filters-amount"],"filterButtonTemplate":[16],"enableEdit":[4,"enable-edit"],"canEdit":[1028,"can-edit"],"editButtonTemplate":[16],"_locales":[32]},[[16,"localeChanged","_setLocales"]]],[1,"p-table-footer",{"enablePageSize":[4,"enable-page-size"],"enablePagination":[4,"enable-pagination"],"enableExport":[4,"enable-export"],"loading":[4],"page":[1538],"total":[2],"pageSize":[2,"page-size"],"pageSizeOptions":[16],"hideOnSinglePage":[4,"hide-on-single-page"],"_locales":[32]},[[16,"localeChanged","_setLocales"]]],[4,"p-table-cell",{"variant":[1],"index":[2],"rowIndex":[2,"row-index"],"definition":[16],"item":[8],"value":[8],"checkbox":[8],"template":[16]}],[1,"p-table-row",{"variant":[1],"enableHover":[4,"enable-hover"]}],[0,"p-illustration",{"variant":[1]}],[1,"p-table-container"]]]]'),e)));
1
+ import{p as e,b as a}from"./p-69d43b9d.js";export{s as setNonce}from"./p-69d43b9d.js";const i=()=>{const a=import.meta.url;const i={};if(a!==""){i.resourcesUrl=new URL(".",a).href}return e(i)};i().then((e=>a(JSON.parse('[["p-3d68b72f",[[4,"p-button",{"variant":[1],"href":[1],"target":[1],"size":[1],"loading":[4],"chevron":[8],"chevronPosition":[1,"chevron-position"],"disabled":[4],"icon":[1],"iconOnly":[4,"icon-only"],"iconPosition":[1,"icon-position"],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"],"inheritText":[4,"inherit-text"]},[[2,"click","handleClick"]]],[1,"p-loader",{"show":[4],"variant":[1],"color":[1],"modalTitle":[1,"modal-title"],"modalDescription":[1,"modal-description"]}],[0,"p-icon",{"variant":[1],"size":[1],"rotate":[2],"flip":[1]}]]],["p-2bc6b026",[[0,"p-table",{"items":[1],"loading":[4],"headerLoading":[4,"header-loading"],"footerLoading":[4,"footer-loading"],"amountOfLoadingRows":[2,"amount-of-loading-rows"],"enableRowSelection":[4,"enable-row-selection"],"enableRowClick":[4,"enable-row-click"],"selectedRows":[16],"selectionKey":[1,"selection-key"],"canSelectKey":[1,"can-select-key"],"quickFilters":[16],"activeQuickFilterIdentifier":[1,"active-quick-filter-identifier"],"enableSearch":[4,"enable-search"],"query":[1025],"enableFilter":[4,"enable-filter"],"selectedFiltersAmount":[2,"selected-filters-amount"],"filterButtonTemplate":[16],"enableEdit":[4,"enable-edit"],"editButtonTemplate":[16],"enablePageSize":[4,"enable-page-size"],"enablePagination":[4,"enable-pagination"],"enableExport":[4,"enable-export"],"page":[1538],"total":[2],"pageSize":[2,"page-size"],"pageSizeOptions":[16],"hideOnSinglePage":[4,"hide-on-single-page"],"emptyStateHeader":[16],"emptyStateContent":[16],"emptyStateAction":[16],"emptyStateFilteredHeader":[16],"emptyStateFilteredContent":[16],"_locales":[32],"_columns":[32],"_items":[32]},[[16,"localeChanged","_setLocales"],[16,"tableDefinitionChanged","onTableDefinitionUpdated"],[4,"keydown","keyDown"],[4,"keyup","keyUp"],[4,"visibilitychange","visibilityChange"]]]]],["p-19c08855",[[1,"p-modal",{"size":[1],"variant":[1],"header":[1],"show":[4],"applyBlur":[4,"apply-blur"],"showClose":[4,"show-close"],"showMobileFooter":[4,"show-mobile-footer"],"backdropClickClose":[4,"backdrop-click-close"],"scrollLock":[4,"scroll-lock"],"_closing":[32]}]]],["p-c0ce16e6",[[0,"p-select",{"items":[1],"icon":[1],"query":[1],"placeholder":[1],"autocompletePlaceholder":[1,"autocomplete-placeholder"],"value":[8],"displayKey":[1,"display-key"],"valueKey":[1,"value-key"],"identifierKey":[1,"identifier-key"],"queryKey":[1,"query-key"],"autoSelectFirst":[4,"auto-select-first"],"showChevron":[4,"show-chevron"],"maxDisplayedItems":[2,"max-displayed-items"],"enableAutocomplete":[4,"enable-autocomplete"],"asyncFilter":[4,"async-filter"],"loading":[4],"size":[1],"prefix":[1],"label":[1],"helper":[1],"error":[513],"disabled":[516],"_showDropdown":[32],"_selectedItem":[32]},[[6,"click","documentClickHandler"]]]]],["p-83f1ceef",[[0,"p-datepicker",{"placeholder":[1],"value":[8],"preselectToday":[4,"preselect-today"],"disabledDates":[1,"disabled-dates"],"minDate":[1,"min-date"],"maxDate":[1,"max-date"],"disableWeekends":[4,"disable-weekends"],"mode":[1],"format":[1],"size":[1],"prefix":[1],"label":[1],"helper":[1],"error":[513],"disabled":[516],"_showDropdown":[32],"_value":[32],"_minDate":[32],"_maxDate":[32],"_disabledDates":[32]},[[6,"click","documentClickHandler"]]]]],["p-8120c40f",[[1,"p-drawer",{"header":[1],"show":[4],"applyBlur":[4,"apply-blur"],"showClose":[4,"show-close"],"backdropClickClose":[4,"backdrop-click-close"],"canClose":[4,"can-close"],"scrollLock":[4,"scroll-lock"],"_closing":[32]}]]],["p-e20ff8c8",[[1,"p-attachment",{"mode":[1],"loading":[4],"error":[1]}]]],["p-594d1cf6",[[1,"p-navbar",{"closeText":[1,"close-text"],"menuText":[1,"menu-text"],"_showMenu":[32]},[[8,"closeNavbar","handleCloseNavbar"],[8,"openNavbar","handleOpenNavbar"]]]]],["p-bd13aa1f",[[1,"p-profile",{"variant":[1],"size":[513],"_dropdownOpen":[32]}]]],["p-0f3bd28b",[[1,"p-toast",{"variant":[1],"header":[1],"content":[1],"enableAction":[4,"enable-action"],"actionIcon":[1,"action-icon"],"actionIconFlip":[1,"action-icon-flip"],"actionIconRotate":[2,"action-icon-rotate"]}]]],["p-0b9838ca",[[1,"p-accordion",{"header":[1],"open":[4],"closeable":[4],"openable":[4]}]]],["p-b2af2dd2",[[1,"p-navigation-item",{"active":[4],"icon":[1],"counter":[8],"href":[1],"target":[1]}]]],["p-3e858d20",[[4,"p-card-header",{"header":[1],"arrow":[4]}]]],["p-268227ff",[[1,"p-content-slider",{"hideMobileIndicator":[4,"hide-mobile-indicator"],"disableDrag":[4,"disable-drag"],"disableAutoCenter":[4,"disable-auto-center"],"disableIndicatorClick":[4,"disable-indicator-click"],"_visibleIndex":[32],"_outerHeight":[32],"_totalWidth":[32],"_dragging":[32]},[[9,"mouseup","mouseUpHandler"],[9,"touchend","mouseUpHandler"],[9,"resize","resizeHandler"]]]]],["p-b131d8d5",[[1,"p-info-panel",{"variant":[1],"header":[1],"content":[1],"closeable":[4]}]]],["p-a0d40482",[[4,"p-status",{"variant":[1],"icon":[1],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"]}]]],["p-c1b67ebb",[[1,"p-stepper-line",{"active":[516],"direction":[513]}]]],["p-efd20880",[[1,"p-stepper",{"activeStep":[2,"active-step"],"direction":[513],"contentPosition":[513,"content-position"]}]]],["p-1b6cfd6c",[[1,"p-stepper-item",{"align":[513],"direction":[513],"contentPosition":[513,"content-position"],"finished":[516],"active":[516]}]]],["p-7171690b",[[1,"p-divider"]]],["p-5ab56199",[[1,"p-tab-group"]]],["p-4c3d6a7f",[[0,"p-avatar",{"variant":[513],"size":[513],"defaultImage":[1,"default-image"],"src":[1],"_src":[32]}]]],["p-966917a1",[[4,"p-avatar-group",{"extra":[2]}]]],["p-6966b84f",[[4,"p-card-body",{"inheritText":[516,"inherit-text"]}]]],["p-71b442d7",[[1,"p-card-container",{"hoverable":[516],"shadow":[516]}]]],["p-a46af8b4",[[1,"p-layout",{"variant":[1]}]]],["p-a0a27d24",[[1,"p-tab-item",{"active":[4]}]]],["p-6645532b",[[0,"p-table-column",{"path":[1537],"type":[1537],"name":[1537],"useSlot":[1540,"use-slot"],"align":[1537],"sizes":[1032]}]]],["p-6a5f5cc4",[[1,"p-toast-container",{"placement":[1]}]]],["p-04756580",[[1,"p-calendar",{"variant":[1],"value":[1],"preselectToday":[4,"preselect-today"],"disabledDates":[1,"disabled-dates"],"minDate":[1,"min-date"],"maxDate":[1,"max-date"],"disableWeekends":[4,"disable-weekends"],"mode":[1],"_view":[32],"_viewDate":[32],"_value":[32],"_minDate":[32],"_maxDate":[32],"_disabledDates":[32]}]]],["p-004340ec",[[1,"p-counter",{"variant":[1],"size":[1]}]]],["p-25ac3f10",[[1,"p-slider-indicator",{"active":[4]}]]],["p-11929d70",[[1,"p-drawer-header",{"showClose":[4,"show-close"]}],[1,"p-drawer-body",{"variant":[1]}],[4,"p-drawer-container",{"closing":[4]}]]],["p-5dfab26d",[[1,"p-backdrop",{"variant":[1],"applyBlur":[4,"apply-blur"],"closing":[4],"scrollLock":[4,"scroll-lock"]},[[2,"click","handleClick"]]]]],["p-bff2caf8",[[1,"p-modal-header",{"showClose":[4,"show-close"]}],[1,"p-modal-footer"],[1,"p-modal-body",{"variant":[1],"rounded":[4]}],[4,"p-modal-container",{"size":[1],"closing":[4]}]]],["p-846dd0bb",[[1,"p-label",{"variant":[513],"behavior":[513],"icon":[513],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"],"size":[513],"keepMobileContent":[516,"keep-mobile-content"]}],[1,"p-segment-item",{"active":[4],"icon":[1],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"]}],[4,"p-segment-container"]]],["p-f98027f1",[[4,"p-dropdown-menu-container",{"maxWidth":[4,"max-width"],"fullWidth":[4,"full-width"]}]]],["p-d86e3e82",[[1,"p-dropdown-menu-item",{"active":[4],"enableHover":[4,"enable-hover"],"icon":[1]}],[1,"p-dropdown",{"placement":[513],"strategy":[1],"show":[4],"calculateWidth":[4,"calculate-width"],"applyMaxWidth":[4,"apply-max-width"],"applyFullWidth":[4,"apply-full-width"],"insideClick":[4,"inside-click"],"disableTriggerClick":[4,"disable-trigger-click"],"chevronPosition":[1,"chevron-position"],"chevronDirection":[1,"chevron-direction"]},[[6,"click","documentClickHandler"]]]]],["p-4fc82528",[[1,"p-page-size-select",{"size":[1538],"sizeOptions":[16],"chevronPosition":[1,"chevron-position"],"buttonSize":[1,"button-size"],"buttonTemplate":[16],"itemTemplate":[16],"hidden":[4],"_locales":[32]},[[16,"localeChanged","_setLocales"]]],[0,"p-pagination",{"page":[1538],"pageSize":[2,"page-size"],"hideOnSinglePage":[4,"hide-on-single-page"],"total":[2]}],[1,"p-pagination-item",{"active":[4]}]]],["p-50789b59",[[1,"p-tooltip",{"variant":[1],"popover":[8],"placement":[1],"strategy":[1],"show":[4],"canManuallyClose":[4,"can-manually-close"]},[[2,"click","clickHandler"],[6,"click","documentClickHandler"],[1,"mouseenter","mouseEnterHandler"],[0,"focus","mouseEnterHandler"],[1,"mouseleave","mouseLeaveHandler"],[0,"blur","mouseLeaveHandler"]]]]],["p-23f04588",[[1,"p-input-group",{"size":[1],"prefix":[1],"suffix":[1],"icon":[1],"iconFlip":[1,"icon-flip"],"iconRotate":[2,"icon-rotate"],"iconPosition":[1,"icon-position"],"label":[1],"helper":[1],"required":[516],"error":[513],"disabled":[516],"focused":[516],"_forceShowTooltip":[32]},[[0,"focusin","handleFocusIn"],[0,"focusout","handleFocusOut"]]],[1,"p-helper",{"placement":[1]}],[1,"p-input-error",{"error":[1],"forceShowTooltip":[4,"force-show-tooltip"],"_showTooltip":[32]}]]],["p-bdaeb7c7",[[1,"p-table-header",{"quickFilters":[16],"activeQuickFilterIdentifier":[1,"active-quick-filter-identifier"],"loading":[4],"enableSearch":[4,"enable-search"],"itemsSelectedAmount":[2,"items-selected-amount"],"query":[1025],"enableFilter":[4,"enable-filter"],"selectedFiltersAmount":[2,"selected-filters-amount"],"filterButtonTemplate":[16],"enableEdit":[4,"enable-edit"],"canEdit":[1028,"can-edit"],"editButtonTemplate":[16],"_locales":[32]},[[16,"localeChanged","_setLocales"]]],[1,"p-table-footer",{"enablePageSize":[4,"enable-page-size"],"enablePagination":[4,"enable-pagination"],"enableExport":[4,"enable-export"],"loading":[4],"page":[1538],"total":[2],"pageSize":[2,"page-size"],"pageSizeOptions":[16],"hideOnSinglePage":[4,"hide-on-single-page"],"_locales":[32]},[[16,"localeChanged","_setLocales"]]],[4,"p-table-cell",{"variant":[1],"index":[2],"rowIndex":[2,"row-index"],"definition":[16],"item":[8],"value":[8],"checkbox":[8],"template":[16]}],[1,"p-table-row",{"variant":[1],"enableHover":[4,"enable-hover"]}],[0,"p-illustration",{"variant":[1]}],[1,"p-table-container"]]]]'),e)));
2
2
  //# sourceMappingURL=paperless.esm.js.map
@@ -119,7 +119,7 @@ const Select = class {
119
119
  });
120
120
  }
121
121
  _preselectItem(value) {
122
- var _a;
122
+ var _a, _b;
123
123
  value = value === undefined ? null : value;
124
124
  value = !value ? this.value : value;
125
125
  value =
@@ -128,12 +128,17 @@ const Select = class {
128
128
  !((_a = this.valueKey) === null || _a === void 0 ? void 0 : _a.length)
129
129
  ? value === null || value === void 0 ? void 0 : value[this._identifierKey]
130
130
  : value;
131
- const parsedValue = JSON.stringify(value);
131
+ const parsedValue = typeof value === 'string' ? value : JSON.stringify(value);
132
132
  if (this._selectedItem &&
133
133
  JSON.stringify(this._selectedItem[this._identifierKey]) ===
134
134
  parsedValue) {
135
135
  return;
136
136
  }
137
+ console.log(this._items, value);
138
+ if (!((_b = this._items) === null || _b === void 0 ? void 0 : _b.length) && value) {
139
+ this._selectedItem = value;
140
+ return;
141
+ }
137
142
  const item = this._items.find((i) => JSON.stringify(i === null || i === void 0 ? void 0 : i[this._identifierKey]) === parsedValue);
138
143
  this._selectedItem = item;
139
144
  }
@@ -1 +1 @@
1
- {"file":"p-select.entry.cjs.js","mappings":"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","names":["h","Host","childOf"],"sources":["./src/components/molecules/select/select.component.scss?tag=p-select","./src/components/molecules/select/select.component.tsx"],"sourcesContent":[":host {\n @apply flex flex-col;\n\n input.read-only {\n @apply text-ellipsis;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-select',\n styleUrl: 'select.component.scss',\n shadow: false,\n})\nexport class Select {\n /**\n * The items to show in the dropdown\n */\n @Prop() items: string | any[];\n\n /**\n * Icon of the select box\n */\n @Prop() icon: IconVariant;\n\n /**\n * The current query\n */\n @Prop() query: string;\n\n /**\n * The placeholder of the input\n */\n @Prop() placeholder: string;\n\n /**\n * The placeholder of the input when auto completing\n */\n @Prop() autocompletePlaceholder: string;\n\n /**\n * The current value\n */\n @Prop() value: any;\n\n /**\n * The key of the object to display\n */\n @Prop() displayKey: string = 'text';\n\n /**\n * The key of the object to return\n */\n @Prop() valueKey: string = 'value';\n\n /**\n * The key to identify an object\n */\n @Prop() identifierKey: string;\n\n /**\n * The key of the object to display\n */\n @Prop() queryKey?: string;\n\n /**\n * Wether to automatically select the first item\n */\n @Prop() autoSelectFirst: boolean = true;\n\n /**\n * Wether to show the chevron or not\n */\n @Prop() showChevron: boolean = true;\n\n /**\n * The maximum amount of items to display\n */\n @Prop() maxDisplayedItems: number = 10;\n\n /**\n * Wether to enable autocomplete\n */\n @Prop() enableAutocomplete: boolean = true;\n\n /**\n * Wether the input uses async filtering\n */\n @Prop() asyncFilter: boolean = false;\n\n /**\n * Wether to show loading items\n */\n @Prop() loading: boolean = false;\n\n /**\n * Event when the query of the autocomplete changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the value changes\n */\n @Event() valueChange: EventEmitter<any>;\n\n /**\n * Event when the dropdown shows\n */\n @Event() dropdownShown: EventEmitter<any>;\n\n /**\n * The size of the input group used by the select\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group used by the select\n */\n @Prop() prefix: string;\n\n /**\n * The label of the input group used by the select\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop() helper: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled used by the select\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _showDropdown: any = false;\n @State() private _selectedItem: any = null;\n\n private _isAutoCompleting: boolean = false;\n\n private _inputRef: HTMLInputElement;\n\n get _items() {\n if (!this.items || this.loading) {\n return [];\n }\n\n let items =\n typeof this.items === 'string'\n ? JSON.parse(this.items)\n : this.items;\n\n if (typeof items?.[0] === 'string') {\n this.displayKey = 'text';\n this.valueKey = 'value';\n\n items = items.map((str) => ({\n value: str,\n text: str,\n }));\n }\n\n if (this._isAutoCompleting && this.query?.length && !this.asyncFilter) {\n items = items.filter((item) => {\n if (this.queryKey) {\n return this._checkvalue(this.queryKey, item);\n }\n\n return (\n this._checkvalue(this._identifierKey, item) ||\n this._checkvalue(this.displayKey, item)\n );\n });\n }\n\n return items?.slice(0, this.maxDisplayedItems);\n }\n\n get _displayValue() {\n if (this._isAutoCompleting) {\n return this.query;\n }\n\n return this._selectedItem?.[this.displayKey];\n }\n\n get _placeholder() {\n return this._isAutoCompleting && this.autocompletePlaceholder?.length\n ? this.autocompletePlaceholder\n : this.placeholder;\n }\n\n get _identifierKey() {\n return this.identifierKey ?? this.valueKey;\n }\n\n componentDidLoad() {\n if (this.value) {\n this._valueChange(this.value);\n return;\n }\n\n if (this.autoSelectFirst) {\n this._selectedItem = this._items?.[0];\n }\n }\n\n render() {\n return (\n <Host class=\"p-select\">\n <p-dropdown\n disableTriggerClick={true}\n calculateWidth={true}\n insideClick={true}\n show={\n this._showDropdown &&\n (!!this._items.length || this.loading)\n }\n >\n <p-input-group\n slot=\"trigger\"\n icon={this.icon}\n size={this.size}\n prefix={this.prefix}\n label={this.label}\n helper={this.helper}\n error={this.error}\n disabled={this.disabled}\n focused={this._showDropdown}\n >\n <input\n slot=\"input\"\n type=\"text\"\n placeholder={this._placeholder}\n value={this._displayValue}\n class={`p-input cursor-pointer ${\n !this._isAutoCompleting && 'read-only'\n }`}\n onFocus={() => this._onFocus()}\n onMouseDown={(ev) => this._onMouseDown(ev)}\n onClick={() => this._onClick()}\n onInput={(ev) => this._onChange(ev)}\n ref={(ref) => (this._inputRef = ref)}\n />\n\n {this.showChevron && (\n <p-icon variant=\"chevron\" slot=\"suffix\" />\n )}\n </p-input-group>\n <div slot=\"items\">\n {this.loading\n ? this._getLoadingItems()\n : this._getItems()}\n </div>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('click', { target: 'document', capture: true })\n protected documentClickHandler({ target }) {\n if (!this._showDropdown || childOf(target, this._el)) {\n return;\n }\n\n this._showDropdown = false;\n this._isAutoCompleting = false;\n }\n\n @Watch('value')\n private _valueChange(value: any) {\n this._preselectItem(value);\n }\n\n @Watch('items')\n public itemChanges() {\n this._preselectItem();\n }\n\n @Watch('_showDropdown')\n public _showDropdownChanges() {\n this.dropdownShown.emit({\n value: this._showDropdown,\n query: this.query,\n });\n }\n\n private _preselectItem(value?: any) {\n value = value === undefined ? null : value;\n value = !value ? this.value : value;\n\n value =\n this.valueKey === 'false' ||\n !this.valueKey ||\n !this.valueKey?.length\n ? value?.[this._identifierKey]\n : value;\n const parsedValue = JSON.stringify(value);\n\n if (\n this._selectedItem &&\n JSON.stringify(this._selectedItem[this._identifierKey]) ===\n parsedValue\n ) {\n return;\n }\n\n const item = this._items.find(\n (i) => JSON.stringify(i?.[this._identifierKey]) === parsedValue\n );\n\n this._selectedItem = item;\n }\n\n private _selectValue(item) {\n this._selectedItem = item;\n const value =\n !!this.valueKey?.length && this.valueKey !== 'false'\n ? item[this.valueKey]\n : item;\n\n this.value = value;\n this.valueChange.emit(this.value);\n\n this._onBlur(true);\n }\n\n private _onFocus() {\n if (!this.enableAutocomplete) {\n this._inputRef.blur();\n if (!this._showDropdown) {\n this._showDropdown = true;\n }\n return;\n }\n\n this._isAutoCompleting = true;\n\n this._showDropdown = true;\n }\n\n private _onMouseDown(ev) {\n if (this.enableAutocomplete) {\n return;\n }\n\n ev.preventDefault();\n }\n\n private _onClick() {\n if (this.enableAutocomplete) {\n return;\n }\n\n this._showDropdown = !this._showDropdown;\n }\n\n private _onBlur(force = false) {\n if (!this.enableAutocomplete && !force) {\n return;\n }\n\n this._isAutoCompleting = false;\n this._showDropdown = false;\n }\n\n private _onChange(ev) {\n if (!this._isAutoCompleting) {\n return;\n }\n\n this.query = ev.target.value;\n this.queryChange.emit(this.query);\n }\n\n private _checkvalue(key, item) {\n return (\n item?.[key]\n ?.toString()\n ?.toLowerCase()\n .indexOf(this.query?.toLowerCase()) >= 0\n );\n }\n\n private _getItems() {\n return this._items.map((item) => (\n <p-dropdown-menu-item\n onClick={() => this._selectValue(item)}\n active={\n item[this._identifierKey] ===\n this._selectedItem?.[this._identifierKey]\n }\n >\n {item[this.displayKey]}\n </p-dropdown-menu-item>\n ));\n }\n\n private _getLoadingItems() {\n return [0, 0, 0].map(() => (\n <p-dropdown-menu-item enableHover={false}>\n <p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n </p-dropdown-menu-item>\n ));\n }\n}\n"],"version":3}
1
+ {"file":"p-select.entry.cjs.js","mappings":"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","names":["h","Host","childOf"],"sources":["./src/components/molecules/select/select.component.scss?tag=p-select","./src/components/molecules/select/select.component.tsx"],"sourcesContent":[":host {\n @apply flex flex-col;\n\n input.read-only {\n @apply text-ellipsis;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-select',\n styleUrl: 'select.component.scss',\n shadow: false,\n})\nexport class Select {\n /**\n * The items to show in the dropdown\n */\n @Prop() items: string | any[];\n\n /**\n * Icon of the select box\n */\n @Prop() icon: IconVariant;\n\n /**\n * The current query\n */\n @Prop() query: string;\n\n /**\n * The placeholder of the input\n */\n @Prop() placeholder: string;\n\n /**\n * The placeholder of the input when auto completing\n */\n @Prop() autocompletePlaceholder: string;\n\n /**\n * The current value\n */\n @Prop() value: any;\n\n /**\n * The key of the object to display\n */\n @Prop() displayKey: string = 'text';\n\n /**\n * The key of the object to return\n */\n @Prop() valueKey: string = 'value';\n\n /**\n * The key to identify an object\n */\n @Prop() identifierKey: string;\n\n /**\n * The key of the object to display\n */\n @Prop() queryKey?: string;\n\n /**\n * Wether to automatically select the first item\n */\n @Prop() autoSelectFirst: boolean = true;\n\n /**\n * Wether to show the chevron or not\n */\n @Prop() showChevron: boolean = true;\n\n /**\n * The maximum amount of items to display\n */\n @Prop() maxDisplayedItems: number = 10;\n\n /**\n * Wether to enable autocomplete\n */\n @Prop() enableAutocomplete: boolean = true;\n\n /**\n * Wether the input uses async filtering\n */\n @Prop() asyncFilter: boolean = false;\n\n /**\n * Wether to show loading items\n */\n @Prop() loading: boolean = false;\n\n /**\n * Event when the query of the autocomplete changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the value changes\n */\n @Event() valueChange: EventEmitter<any>;\n\n /**\n * Event when the dropdown shows\n */\n @Event() dropdownShown: EventEmitter<any>;\n\n /**\n * The size of the input group used by the select\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group used by the select\n */\n @Prop() prefix: string;\n\n /**\n * The label of the input group used by the select\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop() helper: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled used by the select\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _showDropdown: any = false;\n @State() private _selectedItem: any = null;\n\n private _isAutoCompleting: boolean = false;\n\n private _inputRef: HTMLInputElement;\n\n get _items() {\n if (!this.items || this.loading) {\n return [];\n }\n\n let items =\n typeof this.items === 'string'\n ? JSON.parse(this.items)\n : this.items;\n\n if (typeof items?.[0] === 'string') {\n this.displayKey = 'text';\n this.valueKey = 'value';\n\n items = items.map((str) => ({\n value: str,\n text: str,\n }));\n }\n\n if (this._isAutoCompleting && this.query?.length && !this.asyncFilter) {\n items = items.filter((item) => {\n if (this.queryKey) {\n return this._checkvalue(this.queryKey, item);\n }\n\n return (\n this._checkvalue(this._identifierKey, item) ||\n this._checkvalue(this.displayKey, item)\n );\n });\n }\n\n return items?.slice(0, this.maxDisplayedItems);\n }\n\n get _displayValue() {\n if (this._isAutoCompleting) {\n return this.query;\n }\n\n return this._selectedItem?.[this.displayKey];\n }\n\n get _placeholder() {\n return this._isAutoCompleting && this.autocompletePlaceholder?.length\n ? this.autocompletePlaceholder\n : this.placeholder;\n }\n\n get _identifierKey() {\n return this.identifierKey ?? this.valueKey;\n }\n\n componentDidLoad() {\n if (this.value) {\n this._valueChange(this.value);\n return;\n }\n\n if (this.autoSelectFirst) {\n this._selectedItem = this._items?.[0];\n }\n }\n\n render() {\n return (\n <Host class=\"p-select\">\n <p-dropdown\n disableTriggerClick={true}\n calculateWidth={true}\n insideClick={true}\n show={\n this._showDropdown &&\n (!!this._items.length || this.loading)\n }\n >\n <p-input-group\n slot=\"trigger\"\n icon={this.icon}\n size={this.size}\n prefix={this.prefix}\n label={this.label}\n helper={this.helper}\n error={this.error}\n disabled={this.disabled}\n focused={this._showDropdown}\n >\n <input\n slot=\"input\"\n type=\"text\"\n placeholder={this._placeholder}\n value={this._displayValue}\n class={`p-input cursor-pointer ${\n !this._isAutoCompleting && 'read-only'\n }`}\n onFocus={() => this._onFocus()}\n onMouseDown={(ev) => this._onMouseDown(ev)}\n onClick={() => this._onClick()}\n onInput={(ev) => this._onChange(ev)}\n ref={(ref) => (this._inputRef = ref)}\n />\n\n {this.showChevron && (\n <p-icon variant=\"chevron\" slot=\"suffix\" />\n )}\n </p-input-group>\n <div slot=\"items\">\n {this.loading\n ? this._getLoadingItems()\n : this._getItems()}\n </div>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('click', { target: 'document', capture: true })\n protected documentClickHandler({ target }) {\n if (!this._showDropdown || childOf(target, this._el)) {\n return;\n }\n\n this._showDropdown = false;\n this._isAutoCompleting = false;\n }\n\n @Watch('value')\n private _valueChange(value: any) {\n this._preselectItem(value);\n }\n\n @Watch('items')\n public itemChanges() {\n this._preselectItem();\n }\n\n @Watch('_showDropdown')\n public _showDropdownChanges() {\n this.dropdownShown.emit({\n value: this._showDropdown,\n query: this.query,\n });\n }\n\n private _preselectItem(value?: any) {\n value = value === undefined ? null : value;\n value = !value ? this.value : value;\n\n value =\n this.valueKey === 'false' ||\n !this.valueKey ||\n !this.valueKey?.length\n ? value?.[this._identifierKey]\n : value;\n const parsedValue =\n typeof value === 'string' ? value : JSON.stringify(value);\n\n if (\n this._selectedItem &&\n JSON.stringify(this._selectedItem[this._identifierKey]) ===\n parsedValue\n ) {\n return;\n }\n\n console.log(this._items, value);\n if (!this._items?.length && value) {\n this._selectedItem = value;\n return;\n }\n\n const item = this._items.find(\n (i) => JSON.stringify(i?.[this._identifierKey]) === parsedValue\n );\n\n this._selectedItem = item;\n }\n\n private _selectValue(item) {\n this._selectedItem = item;\n const value =\n !!this.valueKey?.length && this.valueKey !== 'false'\n ? item[this.valueKey]\n : item;\n\n this.value = value;\n this.valueChange.emit(this.value);\n\n this._onBlur(true);\n }\n\n private _onFocus() {\n if (!this.enableAutocomplete) {\n this._inputRef.blur();\n if (!this._showDropdown) {\n this._showDropdown = true;\n }\n return;\n }\n\n this._isAutoCompleting = true;\n\n this._showDropdown = true;\n }\n\n private _onMouseDown(ev) {\n if (this.enableAutocomplete) {\n return;\n }\n\n ev.preventDefault();\n }\n\n private _onClick() {\n if (this.enableAutocomplete) {\n return;\n }\n\n this._showDropdown = !this._showDropdown;\n }\n\n private _onBlur(force = false) {\n if (!this.enableAutocomplete && !force) {\n return;\n }\n\n this._isAutoCompleting = false;\n this._showDropdown = false;\n }\n\n private _onChange(ev) {\n if (!this._isAutoCompleting) {\n return;\n }\n\n this.query = ev.target.value;\n this.queryChange.emit(this.query);\n }\n\n private _checkvalue(key, item) {\n return (\n item?.[key]\n ?.toString()\n ?.toLowerCase()\n .indexOf(this.query?.toLowerCase()) >= 0\n );\n }\n\n private _getItems() {\n return this._items.map((item) => (\n <p-dropdown-menu-item\n onClick={() => this._selectValue(item)}\n active={\n item[this._identifierKey] ===\n this._selectedItem?.[this._identifierKey]\n }\n >\n {item[this.displayKey]}\n </p-dropdown-menu-item>\n ));\n }\n\n private _getLoadingItems() {\n return [0, 0, 0].map(() => (\n <p-dropdown-menu-item enableHover={false}>\n <p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n </p-dropdown-menu-item>\n ));\n }\n}\n"],"version":3}
@@ -108,7 +108,7 @@ export class Select {
108
108
  });
109
109
  }
110
110
  _preselectItem(value) {
111
- var _a;
111
+ var _a, _b;
112
112
  value = value === undefined ? null : value;
113
113
  value = !value ? this.value : value;
114
114
  value =
@@ -117,12 +117,17 @@ export class Select {
117
117
  !((_a = this.valueKey) === null || _a === void 0 ? void 0 : _a.length)
118
118
  ? value === null || value === void 0 ? void 0 : value[this._identifierKey]
119
119
  : value;
120
- const parsedValue = JSON.stringify(value);
120
+ const parsedValue = typeof value === 'string' ? value : JSON.stringify(value);
121
121
  if (this._selectedItem &&
122
122
  JSON.stringify(this._selectedItem[this._identifierKey]) ===
123
123
  parsedValue) {
124
124
  return;
125
125
  }
126
+ console.log(this._items, value);
127
+ if (!((_b = this._items) === null || _b === void 0 ? void 0 : _b.length) && value) {
128
+ this._selectedItem = value;
129
+ return;
130
+ }
126
131
  const item = this._items.find((i) => JSON.stringify(i === null || i === void 0 ? void 0 : i[this._identifierKey]) === parsedValue);
127
132
  this._selectedItem = item;
128
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"select.component.js","sourceRoot":"","sources":["../../../../src/components/molecules/select/select.component.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-select',\n styleUrl: 'select.component.scss',\n shadow: false,\n})\nexport class Select {\n /**\n * The items to show in the dropdown\n */\n @Prop() items: string | any[];\n\n /**\n * Icon of the select box\n */\n @Prop() icon: IconVariant;\n\n /**\n * The current query\n */\n @Prop() query: string;\n\n /**\n * The placeholder of the input\n */\n @Prop() placeholder: string;\n\n /**\n * The placeholder of the input when auto completing\n */\n @Prop() autocompletePlaceholder: string;\n\n /**\n * The current value\n */\n @Prop() value: any;\n\n /**\n * The key of the object to display\n */\n @Prop() displayKey: string = 'text';\n\n /**\n * The key of the object to return\n */\n @Prop() valueKey: string = 'value';\n\n /**\n * The key to identify an object\n */\n @Prop() identifierKey: string;\n\n /**\n * The key of the object to display\n */\n @Prop() queryKey?: string;\n\n /**\n * Wether to automatically select the first item\n */\n @Prop() autoSelectFirst: boolean = true;\n\n /**\n * Wether to show the chevron or not\n */\n @Prop() showChevron: boolean = true;\n\n /**\n * The maximum amount of items to display\n */\n @Prop() maxDisplayedItems: number = 10;\n\n /**\n * Wether to enable autocomplete\n */\n @Prop() enableAutocomplete: boolean = true;\n\n /**\n * Wether the input uses async filtering\n */\n @Prop() asyncFilter: boolean = false;\n\n /**\n * Wether to show loading items\n */\n @Prop() loading: boolean = false;\n\n /**\n * Event when the query of the autocomplete changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the value changes\n */\n @Event() valueChange: EventEmitter<any>;\n\n /**\n * Event when the dropdown shows\n */\n @Event() dropdownShown: EventEmitter<any>;\n\n /**\n * The size of the input group used by the select\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group used by the select\n */\n @Prop() prefix: string;\n\n /**\n * The label of the input group used by the select\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop() helper: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled used by the select\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _showDropdown: any = false;\n @State() private _selectedItem: any = null;\n\n private _isAutoCompleting: boolean = false;\n\n private _inputRef: HTMLInputElement;\n\n get _items() {\n if (!this.items || this.loading) {\n return [];\n }\n\n let items =\n typeof this.items === 'string'\n ? JSON.parse(this.items)\n : this.items;\n\n if (typeof items?.[0] === 'string') {\n this.displayKey = 'text';\n this.valueKey = 'value';\n\n items = items.map((str) => ({\n value: str,\n text: str,\n }));\n }\n\n if (this._isAutoCompleting && this.query?.length && !this.asyncFilter) {\n items = items.filter((item) => {\n if (this.queryKey) {\n return this._checkvalue(this.queryKey, item);\n }\n\n return (\n this._checkvalue(this._identifierKey, item) ||\n this._checkvalue(this.displayKey, item)\n );\n });\n }\n\n return items?.slice(0, this.maxDisplayedItems);\n }\n\n get _displayValue() {\n if (this._isAutoCompleting) {\n return this.query;\n }\n\n return this._selectedItem?.[this.displayKey];\n }\n\n get _placeholder() {\n return this._isAutoCompleting && this.autocompletePlaceholder?.length\n ? this.autocompletePlaceholder\n : this.placeholder;\n }\n\n get _identifierKey() {\n return this.identifierKey ?? this.valueKey;\n }\n\n componentDidLoad() {\n if (this.value) {\n this._valueChange(this.value);\n return;\n }\n\n if (this.autoSelectFirst) {\n this._selectedItem = this._items?.[0];\n }\n }\n\n render() {\n return (\n <Host class=\"p-select\">\n <p-dropdown\n disableTriggerClick={true}\n calculateWidth={true}\n insideClick={true}\n show={\n this._showDropdown &&\n (!!this._items.length || this.loading)\n }\n >\n <p-input-group\n slot=\"trigger\"\n icon={this.icon}\n size={this.size}\n prefix={this.prefix}\n label={this.label}\n helper={this.helper}\n error={this.error}\n disabled={this.disabled}\n focused={this._showDropdown}\n >\n <input\n slot=\"input\"\n type=\"text\"\n placeholder={this._placeholder}\n value={this._displayValue}\n class={`p-input cursor-pointer ${\n !this._isAutoCompleting && 'read-only'\n }`}\n onFocus={() => this._onFocus()}\n onMouseDown={(ev) => this._onMouseDown(ev)}\n onClick={() => this._onClick()}\n onInput={(ev) => this._onChange(ev)}\n ref={(ref) => (this._inputRef = ref)}\n />\n\n {this.showChevron && (\n <p-icon variant=\"chevron\" slot=\"suffix\" />\n )}\n </p-input-group>\n <div slot=\"items\">\n {this.loading\n ? this._getLoadingItems()\n : this._getItems()}\n </div>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('click', { target: 'document', capture: true })\n protected documentClickHandler({ target }) {\n if (!this._showDropdown || childOf(target, this._el)) {\n return;\n }\n\n this._showDropdown = false;\n this._isAutoCompleting = false;\n }\n\n @Watch('value')\n private _valueChange(value: any) {\n this._preselectItem(value);\n }\n\n @Watch('items')\n public itemChanges() {\n this._preselectItem();\n }\n\n @Watch('_showDropdown')\n public _showDropdownChanges() {\n this.dropdownShown.emit({\n value: this._showDropdown,\n query: this.query,\n });\n }\n\n private _preselectItem(value?: any) {\n value = value === undefined ? null : value;\n value = !value ? this.value : value;\n\n value =\n this.valueKey === 'false' ||\n !this.valueKey ||\n !this.valueKey?.length\n ? value?.[this._identifierKey]\n : value;\n const parsedValue = JSON.stringify(value);\n\n if (\n this._selectedItem &&\n JSON.stringify(this._selectedItem[this._identifierKey]) ===\n parsedValue\n ) {\n return;\n }\n\n const item = this._items.find(\n (i) => JSON.stringify(i?.[this._identifierKey]) === parsedValue\n );\n\n this._selectedItem = item;\n }\n\n private _selectValue(item) {\n this._selectedItem = item;\n const value =\n !!this.valueKey?.length && this.valueKey !== 'false'\n ? item[this.valueKey]\n : item;\n\n this.value = value;\n this.valueChange.emit(this.value);\n\n this._onBlur(true);\n }\n\n private _onFocus() {\n if (!this.enableAutocomplete) {\n this._inputRef.blur();\n if (!this._showDropdown) {\n this._showDropdown = true;\n }\n return;\n }\n\n this._isAutoCompleting = true;\n\n this._showDropdown = true;\n }\n\n private _onMouseDown(ev) {\n if (this.enableAutocomplete) {\n return;\n }\n\n ev.preventDefault();\n }\n\n private _onClick() {\n if (this.enableAutocomplete) {\n return;\n }\n\n this._showDropdown = !this._showDropdown;\n }\n\n private _onBlur(force = false) {\n if (!this.enableAutocomplete && !force) {\n return;\n }\n\n this._isAutoCompleting = false;\n this._showDropdown = false;\n }\n\n private _onChange(ev) {\n if (!this._isAutoCompleting) {\n return;\n }\n\n this.query = ev.target.value;\n this.queryChange.emit(this.query);\n }\n\n private _checkvalue(key, item) {\n return (\n item?.[key]\n ?.toString()\n ?.toLowerCase()\n .indexOf(this.query?.toLowerCase()) >= 0\n );\n }\n\n private _getItems() {\n return this._items.map((item) => (\n <p-dropdown-menu-item\n onClick={() => this._selectValue(item)}\n active={\n item[this._identifierKey] ===\n this._selectedItem?.[this._identifierKey]\n }\n >\n {item[this.displayKey]}\n </p-dropdown-menu-item>\n ));\n }\n\n private _getLoadingItems() {\n return [0, 0, 0].map(() => (\n <p-dropdown-menu-item enableHover={false}>\n <p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n </p-dropdown-menu-item>\n ));\n }\n}\n"]}
1
+ {"version":3,"file":"select.component.js","sourceRoot":"","sources":["../../../../src/components/molecules/select/select.component.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-select',\n styleUrl: 'select.component.scss',\n shadow: false,\n})\nexport class Select {\n /**\n * The items to show in the dropdown\n */\n @Prop() items: string | any[];\n\n /**\n * Icon of the select box\n */\n @Prop() icon: IconVariant;\n\n /**\n * The current query\n */\n @Prop() query: string;\n\n /**\n * The placeholder of the input\n */\n @Prop() placeholder: string;\n\n /**\n * The placeholder of the input when auto completing\n */\n @Prop() autocompletePlaceholder: string;\n\n /**\n * The current value\n */\n @Prop() value: any;\n\n /**\n * The key of the object to display\n */\n @Prop() displayKey: string = 'text';\n\n /**\n * The key of the object to return\n */\n @Prop() valueKey: string = 'value';\n\n /**\n * The key to identify an object\n */\n @Prop() identifierKey: string;\n\n /**\n * The key of the object to display\n */\n @Prop() queryKey?: string;\n\n /**\n * Wether to automatically select the first item\n */\n @Prop() autoSelectFirst: boolean = true;\n\n /**\n * Wether to show the chevron or not\n */\n @Prop() showChevron: boolean = true;\n\n /**\n * The maximum amount of items to display\n */\n @Prop() maxDisplayedItems: number = 10;\n\n /**\n * Wether to enable autocomplete\n */\n @Prop() enableAutocomplete: boolean = true;\n\n /**\n * Wether the input uses async filtering\n */\n @Prop() asyncFilter: boolean = false;\n\n /**\n * Wether to show loading items\n */\n @Prop() loading: boolean = false;\n\n /**\n * Event when the query of the autocomplete changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the value changes\n */\n @Event() valueChange: EventEmitter<any>;\n\n /**\n * Event when the dropdown shows\n */\n @Event() dropdownShown: EventEmitter<any>;\n\n /**\n * The size of the input group used by the select\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group used by the select\n */\n @Prop() prefix: string;\n\n /**\n * The label of the input group used by the select\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop() helper: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled used by the select\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _showDropdown: any = false;\n @State() private _selectedItem: any = null;\n\n private _isAutoCompleting: boolean = false;\n\n private _inputRef: HTMLInputElement;\n\n get _items() {\n if (!this.items || this.loading) {\n return [];\n }\n\n let items =\n typeof this.items === 'string'\n ? JSON.parse(this.items)\n : this.items;\n\n if (typeof items?.[0] === 'string') {\n this.displayKey = 'text';\n this.valueKey = 'value';\n\n items = items.map((str) => ({\n value: str,\n text: str,\n }));\n }\n\n if (this._isAutoCompleting && this.query?.length && !this.asyncFilter) {\n items = items.filter((item) => {\n if (this.queryKey) {\n return this._checkvalue(this.queryKey, item);\n }\n\n return (\n this._checkvalue(this._identifierKey, item) ||\n this._checkvalue(this.displayKey, item)\n );\n });\n }\n\n return items?.slice(0, this.maxDisplayedItems);\n }\n\n get _displayValue() {\n if (this._isAutoCompleting) {\n return this.query;\n }\n\n return this._selectedItem?.[this.displayKey];\n }\n\n get _placeholder() {\n return this._isAutoCompleting && this.autocompletePlaceholder?.length\n ? this.autocompletePlaceholder\n : this.placeholder;\n }\n\n get _identifierKey() {\n return this.identifierKey ?? this.valueKey;\n }\n\n componentDidLoad() {\n if (this.value) {\n this._valueChange(this.value);\n return;\n }\n\n if (this.autoSelectFirst) {\n this._selectedItem = this._items?.[0];\n }\n }\n\n render() {\n return (\n <Host class=\"p-select\">\n <p-dropdown\n disableTriggerClick={true}\n calculateWidth={true}\n insideClick={true}\n show={\n this._showDropdown &&\n (!!this._items.length || this.loading)\n }\n >\n <p-input-group\n slot=\"trigger\"\n icon={this.icon}\n size={this.size}\n prefix={this.prefix}\n label={this.label}\n helper={this.helper}\n error={this.error}\n disabled={this.disabled}\n focused={this._showDropdown}\n >\n <input\n slot=\"input\"\n type=\"text\"\n placeholder={this._placeholder}\n value={this._displayValue}\n class={`p-input cursor-pointer ${\n !this._isAutoCompleting && 'read-only'\n }`}\n onFocus={() => this._onFocus()}\n onMouseDown={(ev) => this._onMouseDown(ev)}\n onClick={() => this._onClick()}\n onInput={(ev) => this._onChange(ev)}\n ref={(ref) => (this._inputRef = ref)}\n />\n\n {this.showChevron && (\n <p-icon variant=\"chevron\" slot=\"suffix\" />\n )}\n </p-input-group>\n <div slot=\"items\">\n {this.loading\n ? this._getLoadingItems()\n : this._getItems()}\n </div>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('click', { target: 'document', capture: true })\n protected documentClickHandler({ target }) {\n if (!this._showDropdown || childOf(target, this._el)) {\n return;\n }\n\n this._showDropdown = false;\n this._isAutoCompleting = false;\n }\n\n @Watch('value')\n private _valueChange(value: any) {\n this._preselectItem(value);\n }\n\n @Watch('items')\n public itemChanges() {\n this._preselectItem();\n }\n\n @Watch('_showDropdown')\n public _showDropdownChanges() {\n this.dropdownShown.emit({\n value: this._showDropdown,\n query: this.query,\n });\n }\n\n private _preselectItem(value?: any) {\n value = value === undefined ? null : value;\n value = !value ? this.value : value;\n\n value =\n this.valueKey === 'false' ||\n !this.valueKey ||\n !this.valueKey?.length\n ? value?.[this._identifierKey]\n : value;\n const parsedValue =\n typeof value === 'string' ? value : JSON.stringify(value);\n\n if (\n this._selectedItem &&\n JSON.stringify(this._selectedItem[this._identifierKey]) ===\n parsedValue\n ) {\n return;\n }\n\n console.log(this._items, value);\n if (!this._items?.length && value) {\n this._selectedItem = value;\n return;\n }\n\n const item = this._items.find(\n (i) => JSON.stringify(i?.[this._identifierKey]) === parsedValue\n );\n\n this._selectedItem = item;\n }\n\n private _selectValue(item) {\n this._selectedItem = item;\n const value =\n !!this.valueKey?.length && this.valueKey !== 'false'\n ? item[this.valueKey]\n : item;\n\n this.value = value;\n this.valueChange.emit(this.value);\n\n this._onBlur(true);\n }\n\n private _onFocus() {\n if (!this.enableAutocomplete) {\n this._inputRef.blur();\n if (!this._showDropdown) {\n this._showDropdown = true;\n }\n return;\n }\n\n this._isAutoCompleting = true;\n\n this._showDropdown = true;\n }\n\n private _onMouseDown(ev) {\n if (this.enableAutocomplete) {\n return;\n }\n\n ev.preventDefault();\n }\n\n private _onClick() {\n if (this.enableAutocomplete) {\n return;\n }\n\n this._showDropdown = !this._showDropdown;\n }\n\n private _onBlur(force = false) {\n if (!this.enableAutocomplete && !force) {\n return;\n }\n\n this._isAutoCompleting = false;\n this._showDropdown = false;\n }\n\n private _onChange(ev) {\n if (!this._isAutoCompleting) {\n return;\n }\n\n this.query = ev.target.value;\n this.queryChange.emit(this.query);\n }\n\n private _checkvalue(key, item) {\n return (\n item?.[key]\n ?.toString()\n ?.toLowerCase()\n .indexOf(this.query?.toLowerCase()) >= 0\n );\n }\n\n private _getItems() {\n return this._items.map((item) => (\n <p-dropdown-menu-item\n onClick={() => this._selectValue(item)}\n active={\n item[this._identifierKey] ===\n this._selectedItem?.[this._identifierKey]\n }\n >\n {item[this.displayKey]}\n </p-dropdown-menu-item>\n ));\n }\n\n private _getLoadingItems() {\n return [0, 0, 0].map(() => (\n <p-dropdown-menu-item enableHover={false}>\n <p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n </p-dropdown-menu-item>\n ));\n }\n}\n"]}
@@ -125,7 +125,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
125
125
  });
126
126
  }
127
127
  _preselectItem(value) {
128
- var _a;
128
+ var _a, _b;
129
129
  value = value === undefined ? null : value;
130
130
  value = !value ? this.value : value;
131
131
  value =
@@ -134,12 +134,17 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
134
134
  !((_a = this.valueKey) === null || _a === void 0 ? void 0 : _a.length)
135
135
  ? value === null || value === void 0 ? void 0 : value[this._identifierKey]
136
136
  : value;
137
- const parsedValue = JSON.stringify(value);
137
+ const parsedValue = typeof value === 'string' ? value : JSON.stringify(value);
138
138
  if (this._selectedItem &&
139
139
  JSON.stringify(this._selectedItem[this._identifierKey]) ===
140
140
  parsedValue) {
141
141
  return;
142
142
  }
143
+ console.log(this._items, value);
144
+ if (!((_b = this._items) === null || _b === void 0 ? void 0 : _b.length) && value) {
145
+ this._selectedItem = value;
146
+ return;
147
+ }
143
148
  const item = this._items.find((i) => JSON.stringify(i === null || i === void 0 ? void 0 : i[this._identifierKey]) === parsedValue);
144
149
  this._selectedItem = item;
145
150
  }
@@ -1 +1 @@
1
- {"file":"p-select.js","mappings":"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","names":[],"sources":["./src/components/molecules/select/select.component.scss?tag=p-select","./src/components/molecules/select/select.component.tsx"],"sourcesContent":[":host {\n @apply flex flex-col;\n\n input.read-only {\n @apply text-ellipsis;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-select',\n styleUrl: 'select.component.scss',\n shadow: false,\n})\nexport class Select {\n /**\n * The items to show in the dropdown\n */\n @Prop() items: string | any[];\n\n /**\n * Icon of the select box\n */\n @Prop() icon: IconVariant;\n\n /**\n * The current query\n */\n @Prop() query: string;\n\n /**\n * The placeholder of the input\n */\n @Prop() placeholder: string;\n\n /**\n * The placeholder of the input when auto completing\n */\n @Prop() autocompletePlaceholder: string;\n\n /**\n * The current value\n */\n @Prop() value: any;\n\n /**\n * The key of the object to display\n */\n @Prop() displayKey: string = 'text';\n\n /**\n * The key of the object to return\n */\n @Prop() valueKey: string = 'value';\n\n /**\n * The key to identify an object\n */\n @Prop() identifierKey: string;\n\n /**\n * The key of the object to display\n */\n @Prop() queryKey?: string;\n\n /**\n * Wether to automatically select the first item\n */\n @Prop() autoSelectFirst: boolean = true;\n\n /**\n * Wether to show the chevron or not\n */\n @Prop() showChevron: boolean = true;\n\n /**\n * The maximum amount of items to display\n */\n @Prop() maxDisplayedItems: number = 10;\n\n /**\n * Wether to enable autocomplete\n */\n @Prop() enableAutocomplete: boolean = true;\n\n /**\n * Wether the input uses async filtering\n */\n @Prop() asyncFilter: boolean = false;\n\n /**\n * Wether to show loading items\n */\n @Prop() loading: boolean = false;\n\n /**\n * Event when the query of the autocomplete changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the value changes\n */\n @Event() valueChange: EventEmitter<any>;\n\n /**\n * Event when the dropdown shows\n */\n @Event() dropdownShown: EventEmitter<any>;\n\n /**\n * The size of the input group used by the select\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group used by the select\n */\n @Prop() prefix: string;\n\n /**\n * The label of the input group used by the select\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop() helper: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled used by the select\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _showDropdown: any = false;\n @State() private _selectedItem: any = null;\n\n private _isAutoCompleting: boolean = false;\n\n private _inputRef: HTMLInputElement;\n\n get _items() {\n if (!this.items || this.loading) {\n return [];\n }\n\n let items =\n typeof this.items === 'string'\n ? JSON.parse(this.items)\n : this.items;\n\n if (typeof items?.[0] === 'string') {\n this.displayKey = 'text';\n this.valueKey = 'value';\n\n items = items.map((str) => ({\n value: str,\n text: str,\n }));\n }\n\n if (this._isAutoCompleting && this.query?.length && !this.asyncFilter) {\n items = items.filter((item) => {\n if (this.queryKey) {\n return this._checkvalue(this.queryKey, item);\n }\n\n return (\n this._checkvalue(this._identifierKey, item) ||\n this._checkvalue(this.displayKey, item)\n );\n });\n }\n\n return items?.slice(0, this.maxDisplayedItems);\n }\n\n get _displayValue() {\n if (this._isAutoCompleting) {\n return this.query;\n }\n\n return this._selectedItem?.[this.displayKey];\n }\n\n get _placeholder() {\n return this._isAutoCompleting && this.autocompletePlaceholder?.length\n ? this.autocompletePlaceholder\n : this.placeholder;\n }\n\n get _identifierKey() {\n return this.identifierKey ?? this.valueKey;\n }\n\n componentDidLoad() {\n if (this.value) {\n this._valueChange(this.value);\n return;\n }\n\n if (this.autoSelectFirst) {\n this._selectedItem = this._items?.[0];\n }\n }\n\n render() {\n return (\n <Host class=\"p-select\">\n <p-dropdown\n disableTriggerClick={true}\n calculateWidth={true}\n insideClick={true}\n show={\n this._showDropdown &&\n (!!this._items.length || this.loading)\n }\n >\n <p-input-group\n slot=\"trigger\"\n icon={this.icon}\n size={this.size}\n prefix={this.prefix}\n label={this.label}\n helper={this.helper}\n error={this.error}\n disabled={this.disabled}\n focused={this._showDropdown}\n >\n <input\n slot=\"input\"\n type=\"text\"\n placeholder={this._placeholder}\n value={this._displayValue}\n class={`p-input cursor-pointer ${\n !this._isAutoCompleting && 'read-only'\n }`}\n onFocus={() => this._onFocus()}\n onMouseDown={(ev) => this._onMouseDown(ev)}\n onClick={() => this._onClick()}\n onInput={(ev) => this._onChange(ev)}\n ref={(ref) => (this._inputRef = ref)}\n />\n\n {this.showChevron && (\n <p-icon variant=\"chevron\" slot=\"suffix\" />\n )}\n </p-input-group>\n <div slot=\"items\">\n {this.loading\n ? this._getLoadingItems()\n : this._getItems()}\n </div>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('click', { target: 'document', capture: true })\n protected documentClickHandler({ target }) {\n if (!this._showDropdown || childOf(target, this._el)) {\n return;\n }\n\n this._showDropdown = false;\n this._isAutoCompleting = false;\n }\n\n @Watch('value')\n private _valueChange(value: any) {\n this._preselectItem(value);\n }\n\n @Watch('items')\n public itemChanges() {\n this._preselectItem();\n }\n\n @Watch('_showDropdown')\n public _showDropdownChanges() {\n this.dropdownShown.emit({\n value: this._showDropdown,\n query: this.query,\n });\n }\n\n private _preselectItem(value?: any) {\n value = value === undefined ? null : value;\n value = !value ? this.value : value;\n\n value =\n this.valueKey === 'false' ||\n !this.valueKey ||\n !this.valueKey?.length\n ? value?.[this._identifierKey]\n : value;\n const parsedValue = JSON.stringify(value);\n\n if (\n this._selectedItem &&\n JSON.stringify(this._selectedItem[this._identifierKey]) ===\n parsedValue\n ) {\n return;\n }\n\n const item = this._items.find(\n (i) => JSON.stringify(i?.[this._identifierKey]) === parsedValue\n );\n\n this._selectedItem = item;\n }\n\n private _selectValue(item) {\n this._selectedItem = item;\n const value =\n !!this.valueKey?.length && this.valueKey !== 'false'\n ? item[this.valueKey]\n : item;\n\n this.value = value;\n this.valueChange.emit(this.value);\n\n this._onBlur(true);\n }\n\n private _onFocus() {\n if (!this.enableAutocomplete) {\n this._inputRef.blur();\n if (!this._showDropdown) {\n this._showDropdown = true;\n }\n return;\n }\n\n this._isAutoCompleting = true;\n\n this._showDropdown = true;\n }\n\n private _onMouseDown(ev) {\n if (this.enableAutocomplete) {\n return;\n }\n\n ev.preventDefault();\n }\n\n private _onClick() {\n if (this.enableAutocomplete) {\n return;\n }\n\n this._showDropdown = !this._showDropdown;\n }\n\n private _onBlur(force = false) {\n if (!this.enableAutocomplete && !force) {\n return;\n }\n\n this._isAutoCompleting = false;\n this._showDropdown = false;\n }\n\n private _onChange(ev) {\n if (!this._isAutoCompleting) {\n return;\n }\n\n this.query = ev.target.value;\n this.queryChange.emit(this.query);\n }\n\n private _checkvalue(key, item) {\n return (\n item?.[key]\n ?.toString()\n ?.toLowerCase()\n .indexOf(this.query?.toLowerCase()) >= 0\n );\n }\n\n private _getItems() {\n return this._items.map((item) => (\n <p-dropdown-menu-item\n onClick={() => this._selectValue(item)}\n active={\n item[this._identifierKey] ===\n this._selectedItem?.[this._identifierKey]\n }\n >\n {item[this.displayKey]}\n </p-dropdown-menu-item>\n ));\n }\n\n private _getLoadingItems() {\n return [0, 0, 0].map(() => (\n <p-dropdown-menu-item enableHover={false}>\n <p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n </p-dropdown-menu-item>\n ));\n }\n}\n"],"version":3}
1
+ {"file":"p-select.js","mappings":"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","names":[],"sources":["./src/components/molecules/select/select.component.scss?tag=p-select","./src/components/molecules/select/select.component.tsx"],"sourcesContent":[":host {\n @apply flex flex-col;\n\n input.read-only {\n @apply text-ellipsis;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-select',\n styleUrl: 'select.component.scss',\n shadow: false,\n})\nexport class Select {\n /**\n * The items to show in the dropdown\n */\n @Prop() items: string | any[];\n\n /**\n * Icon of the select box\n */\n @Prop() icon: IconVariant;\n\n /**\n * The current query\n */\n @Prop() query: string;\n\n /**\n * The placeholder of the input\n */\n @Prop() placeholder: string;\n\n /**\n * The placeholder of the input when auto completing\n */\n @Prop() autocompletePlaceholder: string;\n\n /**\n * The current value\n */\n @Prop() value: any;\n\n /**\n * The key of the object to display\n */\n @Prop() displayKey: string = 'text';\n\n /**\n * The key of the object to return\n */\n @Prop() valueKey: string = 'value';\n\n /**\n * The key to identify an object\n */\n @Prop() identifierKey: string;\n\n /**\n * The key of the object to display\n */\n @Prop() queryKey?: string;\n\n /**\n * Wether to automatically select the first item\n */\n @Prop() autoSelectFirst: boolean = true;\n\n /**\n * Wether to show the chevron or not\n */\n @Prop() showChevron: boolean = true;\n\n /**\n * The maximum amount of items to display\n */\n @Prop() maxDisplayedItems: number = 10;\n\n /**\n * Wether to enable autocomplete\n */\n @Prop() enableAutocomplete: boolean = true;\n\n /**\n * Wether the input uses async filtering\n */\n @Prop() asyncFilter: boolean = false;\n\n /**\n * Wether to show loading items\n */\n @Prop() loading: boolean = false;\n\n /**\n * Event when the query of the autocomplete changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the value changes\n */\n @Event() valueChange: EventEmitter<any>;\n\n /**\n * Event when the dropdown shows\n */\n @Event() dropdownShown: EventEmitter<any>;\n\n /**\n * The size of the input group used by the select\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group used by the select\n */\n @Prop() prefix: string;\n\n /**\n * The label of the input group used by the select\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop() helper: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled used by the select\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _showDropdown: any = false;\n @State() private _selectedItem: any = null;\n\n private _isAutoCompleting: boolean = false;\n\n private _inputRef: HTMLInputElement;\n\n get _items() {\n if (!this.items || this.loading) {\n return [];\n }\n\n let items =\n typeof this.items === 'string'\n ? JSON.parse(this.items)\n : this.items;\n\n if (typeof items?.[0] === 'string') {\n this.displayKey = 'text';\n this.valueKey = 'value';\n\n items = items.map((str) => ({\n value: str,\n text: str,\n }));\n }\n\n if (this._isAutoCompleting && this.query?.length && !this.asyncFilter) {\n items = items.filter((item) => {\n if (this.queryKey) {\n return this._checkvalue(this.queryKey, item);\n }\n\n return (\n this._checkvalue(this._identifierKey, item) ||\n this._checkvalue(this.displayKey, item)\n );\n });\n }\n\n return items?.slice(0, this.maxDisplayedItems);\n }\n\n get _displayValue() {\n if (this._isAutoCompleting) {\n return this.query;\n }\n\n return this._selectedItem?.[this.displayKey];\n }\n\n get _placeholder() {\n return this._isAutoCompleting && this.autocompletePlaceholder?.length\n ? this.autocompletePlaceholder\n : this.placeholder;\n }\n\n get _identifierKey() {\n return this.identifierKey ?? this.valueKey;\n }\n\n componentDidLoad() {\n if (this.value) {\n this._valueChange(this.value);\n return;\n }\n\n if (this.autoSelectFirst) {\n this._selectedItem = this._items?.[0];\n }\n }\n\n render() {\n return (\n <Host class=\"p-select\">\n <p-dropdown\n disableTriggerClick={true}\n calculateWidth={true}\n insideClick={true}\n show={\n this._showDropdown &&\n (!!this._items.length || this.loading)\n }\n >\n <p-input-group\n slot=\"trigger\"\n icon={this.icon}\n size={this.size}\n prefix={this.prefix}\n label={this.label}\n helper={this.helper}\n error={this.error}\n disabled={this.disabled}\n focused={this._showDropdown}\n >\n <input\n slot=\"input\"\n type=\"text\"\n placeholder={this._placeholder}\n value={this._displayValue}\n class={`p-input cursor-pointer ${\n !this._isAutoCompleting && 'read-only'\n }`}\n onFocus={() => this._onFocus()}\n onMouseDown={(ev) => this._onMouseDown(ev)}\n onClick={() => this._onClick()}\n onInput={(ev) => this._onChange(ev)}\n ref={(ref) => (this._inputRef = ref)}\n />\n\n {this.showChevron && (\n <p-icon variant=\"chevron\" slot=\"suffix\" />\n )}\n </p-input-group>\n <div slot=\"items\">\n {this.loading\n ? this._getLoadingItems()\n : this._getItems()}\n </div>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('click', { target: 'document', capture: true })\n protected documentClickHandler({ target }) {\n if (!this._showDropdown || childOf(target, this._el)) {\n return;\n }\n\n this._showDropdown = false;\n this._isAutoCompleting = false;\n }\n\n @Watch('value')\n private _valueChange(value: any) {\n this._preselectItem(value);\n }\n\n @Watch('items')\n public itemChanges() {\n this._preselectItem();\n }\n\n @Watch('_showDropdown')\n public _showDropdownChanges() {\n this.dropdownShown.emit({\n value: this._showDropdown,\n query: this.query,\n });\n }\n\n private _preselectItem(value?: any) {\n value = value === undefined ? null : value;\n value = !value ? this.value : value;\n\n value =\n this.valueKey === 'false' ||\n !this.valueKey ||\n !this.valueKey?.length\n ? value?.[this._identifierKey]\n : value;\n const parsedValue =\n typeof value === 'string' ? value : JSON.stringify(value);\n\n if (\n this._selectedItem &&\n JSON.stringify(this._selectedItem[this._identifierKey]) ===\n parsedValue\n ) {\n return;\n }\n\n console.log(this._items, value);\n if (!this._items?.length && value) {\n this._selectedItem = value;\n return;\n }\n\n const item = this._items.find(\n (i) => JSON.stringify(i?.[this._identifierKey]) === parsedValue\n );\n\n this._selectedItem = item;\n }\n\n private _selectValue(item) {\n this._selectedItem = item;\n const value =\n !!this.valueKey?.length && this.valueKey !== 'false'\n ? item[this.valueKey]\n : item;\n\n this.value = value;\n this.valueChange.emit(this.value);\n\n this._onBlur(true);\n }\n\n private _onFocus() {\n if (!this.enableAutocomplete) {\n this._inputRef.blur();\n if (!this._showDropdown) {\n this._showDropdown = true;\n }\n return;\n }\n\n this._isAutoCompleting = true;\n\n this._showDropdown = true;\n }\n\n private _onMouseDown(ev) {\n if (this.enableAutocomplete) {\n return;\n }\n\n ev.preventDefault();\n }\n\n private _onClick() {\n if (this.enableAutocomplete) {\n return;\n }\n\n this._showDropdown = !this._showDropdown;\n }\n\n private _onBlur(force = false) {\n if (!this.enableAutocomplete && !force) {\n return;\n }\n\n this._isAutoCompleting = false;\n this._showDropdown = false;\n }\n\n private _onChange(ev) {\n if (!this._isAutoCompleting) {\n return;\n }\n\n this.query = ev.target.value;\n this.queryChange.emit(this.query);\n }\n\n private _checkvalue(key, item) {\n return (\n item?.[key]\n ?.toString()\n ?.toLowerCase()\n .indexOf(this.query?.toLowerCase()) >= 0\n );\n }\n\n private _getItems() {\n return this._items.map((item) => (\n <p-dropdown-menu-item\n onClick={() => this._selectValue(item)}\n active={\n item[this._identifierKey] ===\n this._selectedItem?.[this._identifierKey]\n }\n >\n {item[this.displayKey]}\n </p-dropdown-menu-item>\n ));\n }\n\n private _getLoadingItems() {\n return [0, 0, 0].map(() => (\n <p-dropdown-menu-item enableHover={false}>\n <p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n </p-dropdown-menu-item>\n ));\n }\n}\n"],"version":3}
@@ -115,7 +115,7 @@ const Select = class {
115
115
  });
116
116
  }
117
117
  _preselectItem(value) {
118
- var _a;
118
+ var _a, _b;
119
119
  value = value === undefined ? null : value;
120
120
  value = !value ? this.value : value;
121
121
  value =
@@ -124,12 +124,17 @@ const Select = class {
124
124
  !((_a = this.valueKey) === null || _a === void 0 ? void 0 : _a.length)
125
125
  ? value === null || value === void 0 ? void 0 : value[this._identifierKey]
126
126
  : value;
127
- const parsedValue = JSON.stringify(value);
127
+ const parsedValue = typeof value === 'string' ? value : JSON.stringify(value);
128
128
  if (this._selectedItem &&
129
129
  JSON.stringify(this._selectedItem[this._identifierKey]) ===
130
130
  parsedValue) {
131
131
  return;
132
132
  }
133
+ console.log(this._items, value);
134
+ if (!((_b = this._items) === null || _b === void 0 ? void 0 : _b.length) && value) {
135
+ this._selectedItem = value;
136
+ return;
137
+ }
133
138
  const item = this._items.find((i) => JSON.stringify(i === null || i === void 0 ? void 0 : i[this._identifierKey]) === parsedValue);
134
139
  this._selectedItem = item;
135
140
  }