@paperless/core 1.22.2 → 1.22.4
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 +22 -0
- package/dist/build/{p-63d80613.entry.js → p-897d7385.entry.js} +2 -2
- package/dist/build/p-897d7385.entry.js.map +1 -0
- package/dist/build/paperless.esm.js +1 -1
- package/dist/cjs/p-select.cjs.entry.js +22 -13
- package/dist/cjs/p-select.cjs.entry.js.map +1 -1
- package/dist/collection/components/molecules/select/select.component.js +22 -13
- package/dist/collection/components/molecules/select/select.component.js.map +1 -1
- package/dist/components/p-select.js +22 -13
- package/dist/components/p-select.js.map +1 -1
- package/dist/esm/p-select.entry.js +22 -13
- package/dist/esm/p-select.entry.js.map +1 -1
- package/dist/index.html +1 -1
- package/dist/paperless/{p-63d80613.entry.js → p-897d7385.entry.js} +2 -2
- package/dist/paperless/p-897d7385.entry.js.map +1 -0
- package/dist/paperless/paperless.esm.js +1 -1
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/dist/types/components/molecules/select/select.component.d.ts +1 -0
- package/hydrate/index.js +22 -13
- package/package.json +1 -1
- package/dist/build/p-63d80613.entry.js.map +0 -1
- package/dist/paperless/p-63d80613.entry.js.map +0 -1
package/hydrate/index.js
CHANGED
|
@@ -21050,7 +21050,7 @@ class Select {
|
|
|
21050
21050
|
return;
|
|
21051
21051
|
}
|
|
21052
21052
|
if (!((_b = this._items) === null || _b === void 0 ? void 0 : _b.length) && value) {
|
|
21053
|
-
this._selectValue(value);
|
|
21053
|
+
this._selectValue(value, false);
|
|
21054
21054
|
return;
|
|
21055
21055
|
}
|
|
21056
21056
|
const item = this._items.find((i) => {
|
|
@@ -21061,9 +21061,9 @@ class Select {
|
|
|
21061
21061
|
: JSON.stringify(itemIdentifier);
|
|
21062
21062
|
return parsedItemIdentifier === parsedValue;
|
|
21063
21063
|
});
|
|
21064
|
-
this._selectValue(!!item ? item : value);
|
|
21064
|
+
this._selectValue(!!item ? item : value, false);
|
|
21065
21065
|
}
|
|
21066
|
-
_selectValue(item) {
|
|
21066
|
+
_selectValue(item, forceBlur = true) {
|
|
21067
21067
|
let value = !!this.valueKey && this.valueKey !== 'false' && item !== null
|
|
21068
21068
|
? item === null || item === void 0 ? void 0 : item[this.valueKey]
|
|
21069
21069
|
: item;
|
|
@@ -21093,7 +21093,7 @@ class Select {
|
|
|
21093
21093
|
this._selectedItem = item;
|
|
21094
21094
|
this.value = value;
|
|
21095
21095
|
this.valueChange.emit(value);
|
|
21096
|
-
this._onBlur(
|
|
21096
|
+
this._onBlur(forceBlur);
|
|
21097
21097
|
}
|
|
21098
21098
|
_onFocus(ev) {
|
|
21099
21099
|
ev.preventDefault();
|
|
@@ -21134,11 +21134,8 @@ class Select {
|
|
|
21134
21134
|
return (((_b = (_a = item === null || item === void 0 ? void 0 : item[key]) === null || _a === void 0 ? void 0 : _a.toString()) === null || _b === void 0 ? void 0 : _b.toLowerCase().indexOf((_c = this.query) === null || _c === void 0 ? void 0 : _c.toLowerCase())) >= 0);
|
|
21135
21135
|
}
|
|
21136
21136
|
_getItems() {
|
|
21137
|
-
var _a
|
|
21138
|
-
|
|
21139
|
-
return (hAsync("p", { class: "w-full p-2 text-storm-medium text-sm text-center" }, this.emptyStateText));
|
|
21140
|
-
}
|
|
21141
|
-
const items = this._items.map((item) => {
|
|
21137
|
+
var _a;
|
|
21138
|
+
let items = this._items.map((item) => {
|
|
21142
21139
|
var _a, _b;
|
|
21143
21140
|
return (hAsync("p-dropdown-menu-item", { onClick: () => this._selectValue(item), active: this.multi && !!this._selectedItem
|
|
21144
21141
|
? this._selectedItem.findIndex((i) => i[this._identifierKey] ===
|
|
@@ -21146,11 +21143,16 @@ class Select {
|
|
|
21146
21143
|
: item[this._identifierKey] ===
|
|
21147
21144
|
((_a = this._selectedItem) === null || _a === void 0 ? void 0 : _a[this._identifierKey]), variant: this.multi ? 'checkbox' : 'default' }, this.avatarKey ? (hAsync("span", { class: "flex items-center gap-2" }, hAsync("p-avatar", { size: "xsmall", src: item[this.avatarKey], letters: item[this.avatarLettersKey] }), item[(_b = this.dropdownDisplayKey) !== null && _b !== void 0 ? _b : this.displayKey])) : (item[this.displayKey])));
|
|
21148
21145
|
});
|
|
21149
|
-
if (this.
|
|
21150
|
-
items
|
|
21146
|
+
if (!this._items.length) {
|
|
21147
|
+
items = [
|
|
21148
|
+
hAsync("p", { class: "w-full p-2 text-storm-medium text-sm text-center" }, this.emptyStateText),
|
|
21149
|
+
];
|
|
21150
|
+
}
|
|
21151
|
+
if (this.enableSelectAll && this._items.length) {
|
|
21152
|
+
items.unshift(hAsync("p-dropdown-menu-item", { variant: "checkbox", onClick: () => this._selectAllChange(), active: this._allSelected }, ((_a = this.selectAllIcon) === null || _a === void 0 ? void 0 : _a.length) ? (hAsync("span", { class: "flex items-center gap-2" }, hAsync("div", { class: "w-6 justify-center flex text-lg" }, hAsync("p-icon", { variant: this.selectAllIcon })), this.selectAllText)) : (this.selectAllText)));
|
|
21151
21153
|
}
|
|
21152
21154
|
if (this.enableAutocomplete) {
|
|
21153
|
-
items.unshift(
|
|
21155
|
+
items.unshift(this._getAutoCompleteItem());
|
|
21154
21156
|
}
|
|
21155
21157
|
return items;
|
|
21156
21158
|
}
|
|
@@ -21158,7 +21160,14 @@ class Select {
|
|
|
21158
21160
|
return (hAsync("p-dropdown-menu-item", { onClick: () => this.add.emit() }, hAsync("span", { class: "text-indigo font-semibold flex gap-1 items-center" }, this.addItemText, hAsync("p-icon", { variant: "plus" }))));
|
|
21159
21161
|
}
|
|
21160
21162
|
_getLoadingItems() {
|
|
21161
|
-
|
|
21163
|
+
const items = [0, 0, 0].map(() => (hAsync("p-dropdown-menu-item", { enableHover: false }, hAsync("p-loader", { variant: "ghost", class: "h-6 w-full rounded" }))));
|
|
21164
|
+
if (this.enableAutocomplete) {
|
|
21165
|
+
items.unshift(this._getAutoCompleteItem());
|
|
21166
|
+
}
|
|
21167
|
+
return items;
|
|
21168
|
+
}
|
|
21169
|
+
_getAutoCompleteItem() {
|
|
21170
|
+
return (hAsync("div", { class: "bg-white sticky top-0 pt-2 pb-1 -mt-2" }, hAsync("input", { class: "p-input size-small mb-2 sticky top-2", placeholder: this.autocompletePlaceholder, onInput: (ev) => this._onAutoComplete(ev), ref: (ref) => (this.autocompleteInputRef = ref) })));
|
|
21162
21171
|
}
|
|
21163
21172
|
_setMultiContainerMaxWidth() {
|
|
21164
21173
|
if (!this._inputRef || !this._multiContainerRef) {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["selectComponentCss","Select","_items","this","items","loading","JSON","parse","displayKey","valueKey","map","str","value","text","_a","query","length","asyncFilter","filter","item","queryKey","_checkvalue","_identifierKey","slice","maxDisplayedItems","_displayValue","multi","_selectedItem","_b","i","_c","_d","selectionDisplayKey","identifierKey","componentDidLoad","Error","_setMultiContainerMaxWidth","_resizeObserver","ResizeObserver","_resizeDebounceTimer","clearTimeout","setTimeout","_checkSelectedItems","observe","_el","_valueChange","itemChanges","componentDidRender","disconnectedCallback","disconnect","render","h","Host","class","disableTriggerClick","calculateWidth","insideClick","scrollable","show","_showDropdown","onIsOpen","ev","_onDropdownOpen","slot","icon","size","prefix","label","helper","required","error","disabled","focused","focusMethod","type","placeholder","onFocus","_onFocus","onMouseDown","_onMouseDown","onClick","_onClick","ref","_inputRef","showChevron","variant","_getLoadingItems","_getItems","showAddItem","_getAddItem","_multiContainerRef","_selectValue","_amountHidden","documentClickHandler","target","childOf","_preselectItem","_showDropdownChanges","dropdownShown","emit","Array","isArray","valueChange","includes","autoSelectFirst","identifier","parsedValue","stringify","currentValue","currentParsedValue","find","itemIdentifier","parsedItemIdentifier","selectedItem","valueArray","includesIndex","findIndex","push","splice","_onBlur","preventDefault","blur","enableAutocomplete","force","_onAutoComplete","queryChange","key","toString","toLowerCase","indexOf","emptyStateText","active","avatarKey","src","letters","avatarLettersKey","dropdownDisplayKey","enableSelectAll","unshift","_selectAllChange","_allSelected","selectAllIcon","selectAllText","autocompletePlaceholder","onInput","autocompleteInputRef","add","addItemText","enableHover","style","maxWidth","clientWidth","containerRect","getBoundingClientRect","from","querySelectorAll","amountHidden","child","classList","remove","childRect","right","extra","querySelector","contains","detail","focus","selectAllChange"],"sources":["src/components/molecules/select/select.component.scss?tag=p-select","src/components/molecules/select/select.component.tsx"],"sourcesContent":["@import '../../../style/form/mixins';\n\np-select {\n\t@apply flex w-full flex-col relative text-ellipsis;\n\n\t.p-input {\n\t\t@include inputDefaultState();\n\t}\n\n\t.multi-container {\n\t\t@apply absolute bottom-0 left-0 h-10 flex gap-2 items-center px-2 py-4 overflow-hidden pointer-events-none w-full;\n\n\t\t&.size-small {\n\t\t\t@apply px-1 py-2 h-8;\n\t\t}\n\n\t\t.item {\n\t\t\t@apply bg-indigo-light rounded px-2 flex gap-2 items-center cursor-pointer text-indigo-dark h-[1.625rem] text-sm font-semibold pointer-events-auto whitespace-nowrap;\n\n\t\t\tp-icon {\n\t\t\t\t@apply text-indigo text-xs;\n\t\t\t}\n\t\t}\n\n\t\t.extra {\n\t\t\t@apply text-sm text-storm-medium pointer-events-none;\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\n\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n\ttag: 'p-select',\n\tstyleUrl: 'select.component.scss',\n\tshadow: false,\n})\nexport class Select {\n\t/**\n\t * The items to show in the dropdown\n\t */\n\t@Prop() items: string | any[];\n\n\t/**\n\t * Wether to enable multi select\n\t */\n\t@Prop({ reflect: true }) multi: boolean;\n\n\t/**\n\t * Icon of the select box\n\t */\n\t@Prop() icon: IconVariant;\n\n\t/**\n\t * The current query\n\t */\n\t@Prop() query: string;\n\n\t/**\n\t * The placeholder of the input\n\t */\n\t@Prop() placeholder: string;\n\n\t/**\n\t * The placeholder of the input used for auto complete\n\t */\n\t@Prop() autocompletePlaceholder: string = 'Search...';\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value: any;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() displayKey: string = 'text';\n\n\t/**\n\t * The key of the object to display in the dropdown (overwrites displayKey)\n\t */\n\t@Prop() dropdownDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to display in the input (overwrites displayKey)\n\t */\n\t@Prop() selectionDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to return\n\t */\n\t@Prop() valueKey: string;\n\n\t/**\n\t * The key of avatar within an item to show\n\t */\n\t@Prop() avatarKey: string;\n\n\t/**\n\t * The key of avatar letters within an item to show when the avatar url doesn't work\n\t */\n\t@Prop() avatarLettersKey: string;\n\n\t/**\n\t * The key to identify an object\n\t */\n\t@Prop() identifierKey: string;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() queryKey?: string;\n\n\t/**\n\t * Wether to automatically select the first item\n\t */\n\t@Prop() autoSelectFirst: boolean = true;\n\n\t/**\n\t * Wether to show the chevron or not\n\t */\n\t@Prop() showChevron: boolean = true;\n\n\t/**\n\t * The maximum amount of items to display\n\t */\n\t@Prop() maxDisplayedItems: number = 10;\n\n\t/**\n\t * Wether to enable autocomplete\n\t */\n\t@Prop() enableAutocomplete: boolean = true;\n\n\t/**\n\t * Wether the input uses async filtering\n\t */\n\t@Prop() asyncFilter: boolean = false;\n\n\t/**\n\t * Wether to show loading items\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * Wether to show the select all item with multi select\n\t */\n\t@Prop() enableSelectAll: boolean = false;\n\n\t/**\n\t * The text of the select all item\n\t */\n\t@Prop() selectAllText: string = 'Select all';\n\n\t/**\n\t * The icon to prefix for select all\n\t */\n\t@Prop() selectAllIcon: IconVariant | undefined;\n\n\t/**\n\t * Event when the query of the autocomplete changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tqueryChange: EventEmitter<string>;\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the select all item has been selected or not\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tselectAllChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the dropdown shows\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdropdownShown: EventEmitter<any>;\n\n\t/**\n\t * The size of the input group used by the select\n\t */\n\t@Prop() size: 'small' | 'medium' = 'medium';\n\n\t/**\n\t * The prefix of the input group used by the select\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The label of the input group used by the select\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop() helper: string;\n\n\t/**\n\t * Wether the field is required\n\t */\n\t@Prop({ reflect: true }) required: boolean;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled used by the select\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * Wether to show a \"add\" item\n\t */\n\t@Prop() showAddItem: boolean = false;\n\n\t/**\n\t * The text to show when add item is being shown\n\t */\n\t@Prop() addItemText: string = 'Add item';\n\n\t/**\n\t * Event when the add item is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tadd: EventEmitter;\n\n\t/**\n\t * The text to show when items is empty\n\t */\n\t@Prop() emptyStateText: string = 'No items available';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _showDropdown: any = false;\n\t@State() private _selectedItem: any = null;\n\n\t@State() private _allSelected: boolean = false;\n\n\t@State() private _amountHidden = 0;\n\n\tprivate _inputRef: HTMLInputElement;\n\tprivate autocompleteInputRef: HTMLInputElement;\n\tprivate _multiContainerRef: HTMLElement;\n\n\tprivate _resizeObserver: ResizeObserver;\n\tprivate _resizeDebounceTimer: NodeJS.Timer;\n\n\tget _items() {\n\t\tif (!this.items || this.loading) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet items =\n\t\t\ttypeof this.items === 'string'\n\t\t\t\t? JSON.parse(this.items)\n\t\t\t\t: this.items;\n\n\t\tif (typeof items?.[0] === 'string') {\n\t\t\tthis.displayKey = 'text';\n\t\t\tthis.valueKey = 'value';\n\n\t\t\titems = items.map((str) => ({\n\t\t\t\tvalue: str,\n\t\t\t\ttext: str,\n\t\t\t}));\n\t\t}\n\n\t\tif (this.query?.length && !this.asyncFilter) {\n\t\t\titems = items.filter((item) => {\n\t\t\t\tif (this.queryKey) {\n\t\t\t\t\treturn this._checkvalue(this.queryKey, item);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tthis._checkvalue(this._identifierKey, item) ||\n\t\t\t\t\tthis._checkvalue(this.displayKey, item)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\treturn items?.slice(0, this.maxDisplayedItems);\n\t}\n\n\tget _displayValue() {\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem?.length) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn this._selectedItem\n\t\t\t\t?.map((i) => i?.[this.displayKey])\n\t\t\t\t.filter((i) => !!i);\n\t\t}\n\n\t\treturn this._selectedItem?.[\n\t\t\tthis.selectionDisplayKey ?? this.displayKey\n\t\t];\n\t}\n\n\tget _identifierKey() {\n\t\treturn this.identifierKey ?? this.valueKey ?? 'value';\n\t}\n\n\tcomponentDidLoad() {\n\t\tif (!this.valueKey && !this.identifierKey) {\n\t\t\tthrow new Error('You must provide a valueKey or identifierKey');\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\n\t\t\tthis._resizeObserver = new ResizeObserver(() => {\n\t\t\t\tif (this._resizeDebounceTimer) {\n\t\t\t\t\tclearTimeout(this._resizeDebounceTimer);\n\t\t\t\t\tthis._resizeDebounceTimer = null;\n\t\t\t\t}\n\n\t\t\t\tthis._resizeDebounceTimer = setTimeout(() => {\n\t\t\t\t\tthis._setMultiContainerMaxWidth();\n\t\t\t\t\tthis._checkSelectedItems();\n\t\t\t\t}, 200);\n\t\t\t});\n\t\t\tthis._resizeObserver.observe(this._el);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\tthis._valueChange();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.itemChanges();\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\t\t\tthis._checkSelectedItems();\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tif (this.multi) {\n\t\t\tthis._resizeObserver.disconnect();\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-select\">\n\t\t\t\t<p-dropdown\n\t\t\t\t\tdisableTriggerClick={true}\n\t\t\t\t\tcalculateWidth={true}\n\t\t\t\t\tinsideClick={true}\n\t\t\t\t\tscrollable={true}\n\t\t\t\t\tshow={this._showDropdown}\n\t\t\t\t\tonIsOpen={(ev) => this._onDropdownOpen(ev)}\n\t\t\t\t>\n\t\t\t\t\t<p-input-group\n\t\t\t\t\t\tslot=\"trigger\"\n\t\t\t\t\t\ticon={this.icon}\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tprefix={this.prefix}\n\t\t\t\t\t\tlabel={this.label}\n\t\t\t\t\t\thelper={this.helper}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\terror={this.error}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tfocused={this._showDropdown}\n\t\t\t\t\t\tfocusMethod=\"click\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tslot=\"input\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tthis.multi && this._displayValue?.length\n\t\t\t\t\t\t\t\t\t? ' '\n\t\t\t\t\t\t\t\t\t: this._displayValue\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclass=\"p-input cursor-pointer read-only\"\n\t\t\t\t\t\t\tonFocus={(ev) => this._onFocus(ev)}\n\t\t\t\t\t\t\tonMouseDown={(ev) => this._onMouseDown(ev)}\n\t\t\t\t\t\t\tonClick={() => this._onClick()}\n\t\t\t\t\t\t\tref={(ref) => (this._inputRef = ref)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{this.showChevron && (\n\t\t\t\t\t\t\t<p-icon variant=\"chevron\" slot=\"suffix\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</p-input-group>\n\t\t\t\t\t<div slot=\"items\">\n\t\t\t\t\t\t{this.loading\n\t\t\t\t\t\t\t? this._getLoadingItems()\n\t\t\t\t\t\t\t: this._getItems()}\n\t\t\t\t\t\t{this.showAddItem && this._getAddItem()}\n\t\t\t\t\t</div>\n\t\t\t\t</p-dropdown>\n\n\t\t\t\t{this.multi && this._selectedItem?.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={`multi-container size-${this.size}`}\n\t\t\t\t\t\tref={(ref) => (this._multiContainerRef = ref)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this._selectedItem.map((item) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"item\"\n\t\t\t\t\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\titem[\n\t\t\t\t\t\t\t\t\t\tthis.selectionDisplayKey ??\n\t\t\t\t\t\t\t\t\t\t\tthis.displayKey\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<p-icon variant=\"negative\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t<div class=\"extra hidden\">+{this._amountHidden}</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler({ target }) {\n\t\tif (!this._showDropdown || childOf(target, this._el)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\t@Watch('value')\n\tprivate _valueChange() {\n\t\tthis._preselectItem();\n\t}\n\n\t@Watch('items')\n\tpublic itemChanges() {\n\t\tthis._preselectItem();\n\t}\n\n\t@Watch('_showDropdown')\n\tpublic _showDropdownChanges() {\n\t\tthis.dropdownShown.emit({\n\t\t\tvalue: this._showDropdown,\n\t\t\tquery: this.query,\n\t\t});\n\t}\n\n\tprivate _preselectItem() {\n\t\tlet value =\n\t\t\ttypeof this.value === 'string' && this.multi\n\t\t\t\t? JSON.parse(this.value)\n\t\t\t\t: this.value;\n\n\t\tif (this.multi) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis.value = [];\n\t\t\t\tthis.valueChange.emit(this.value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = value;\n\t\t\tif (!value.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._selectedItem =\n\t\t\t\t!!this.valueKey && this.valueKey !== 'false'\n\t\t\t\t\t? this._items.filter((i) =>\n\t\t\t\t\t\t\tvalue.includes(i?.[this.valueKey])\n\t\t\t\t\t\t)\n\t\t\t\t\t: [...value];\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._selectedItem && !value && this.autoSelectFirst) {\n\t\t\tvalue = this._items[0];\n\t\t}\n\n\t\tconst identifier =\n\t\t\ttypeof value === 'object' && value !== null\n\t\t\t\t? value[this._identifierKey]\n\t\t\t\t: value;\n\t\tconst parsedValue =\n\t\t\ttypeof identifier === 'string' || typeof identifier === 'number'\n\t\t\t\t? identifier\n\t\t\t\t: JSON.stringify(identifier);\n\n\t\tconst currentValue = this._selectedItem\n\t\t\t? this._selectedItem?.[this._identifierKey]\n\t\t\t: null;\n\t\tconst currentParsedValue =\n\t\t\ttypeof currentValue === 'string' || typeof currentValue === 'number'\n\t\t\t\t? currentValue\n\t\t\t\t: JSON.stringify(currentValue);\n\n\t\tif (this._selectedItem && currentParsedValue === parsedValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._items?.length && value) {\n\t\t\tthis._selectValue(value);\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = this._items.find((i) => {\n\t\t\tconst itemIdentifier = i?.[this._identifierKey];\n\t\t\tconst parsedItemIdentifier =\n\t\t\t\ttypeof itemIdentifier === 'string' ||\n\t\t\t\ttypeof itemIdentifier === 'number'\n\t\t\t\t\t? itemIdentifier\n\t\t\t\t\t: JSON.stringify(itemIdentifier);\n\n\t\t\treturn parsedItemIdentifier === parsedValue;\n\t\t});\n\n\t\tthis._selectValue(!!item ? item : value);\n\t}\n\n\tprivate _selectValue(item) {\n\t\tlet value =\n\t\t\t!!this.valueKey && this.valueKey !== 'false' && item !== null\n\t\t\t\t? item?.[this.valueKey]\n\t\t\t\t: item;\n\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem || !Array.isArray(this._selectedItem)) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t}\n\n\t\t\tif (!this.value || !Array.isArray(this.value)) {\n\t\t\t\tthis.value = [];\n\t\t\t}\n\n\t\t\tconst selectedItem = [...this._selectedItem];\n\t\t\tconst valueArray = [...this.value];\n\n\t\t\tconst includesIndex = selectedItem.findIndex(\n\t\t\t\t(i) => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t);\n\t\t\tif (includesIndex === -1) {\n\t\t\t\tselectedItem.push(item);\n\t\t\t\tvalueArray.push(value);\n\t\t\t} else {\n\t\t\t\tselectedItem.splice(includesIndex, 1);\n\t\t\t\tvalueArray.splice(includesIndex, 1);\n\t\t\t}\n\n\t\t\tthis._selectedItem = selectedItem;\n\t\t\tthis.value = valueArray;\n\t\t\tthis.valueChange.emit(valueArray);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectedItem = item;\n\t\tthis.value = value;\n\t\tthis.valueChange.emit(value);\n\n\t\tthis._onBlur(true);\n\t}\n\n\tprivate _onFocus(ev) {\n\t\tev.preventDefault();\n\t\tthis._inputRef.blur();\n\n\t\tif (!this._showDropdown) {\n\t\t\tthis._showDropdown = true;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tprivate _onMouseDown(ev) {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tev.preventDefault();\n\t}\n\n\tprivate _onClick() {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = !this._showDropdown;\n\t}\n\n\tprivate _onBlur(force = false) {\n\t\tif (!this.enableAutocomplete && !force) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onAutoComplete(ev) {\n\t\tif (!this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\n\t\tthis.query = ev.target.value;\n\t\tthis.queryChange.emit(ev.target.value);\n\t}\n\n\tprivate _checkvalue(key, item) {\n\t\treturn (\n\t\t\titem?.[key]\n\t\t\t\t?.toString()\n\t\t\t\t?.toLowerCase()\n\t\t\t\t.indexOf(this.query?.toLowerCase()) >= 0\n\t\t);\n\t}\n\n\tprivate _getItems() {\n\t\tif (!this._items.length && !this.query?.length) {\n\t\t\treturn (\n\t\t\t\t<p class=\"w-full p-2 text-storm-medium text-sm text-center\">\n\t\t\t\t\t{this.emptyStateText}\n\t\t\t\t</p>\n\t\t\t);\n\t\t}\n\n\t\tconst items = this._items.map((item) => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\tactive={\n\t\t\t\t\tthis.multi && !!this._selectedItem\n\t\t\t\t\t\t? this._selectedItem.findIndex(\n\t\t\t\t\t\t\t\t(i) =>\n\t\t\t\t\t\t\t\t\ti[this._identifierKey] ===\n\t\t\t\t\t\t\t\t\titem[this._identifierKey]\n\t\t\t\t\t\t\t) >= 0\n\t\t\t\t\t\t: item[this._identifierKey] ===\n\t\t\t\t\t\t\tthis._selectedItem?.[this._identifierKey]\n\t\t\t\t}\n\t\t\t\tvariant={this.multi ? 'checkbox' : 'default'}\n\t\t\t>\n\t\t\t\t{this.avatarKey ? (\n\t\t\t\t\t<span class=\"flex items-center gap-2\">\n\t\t\t\t\t\t<p-avatar\n\t\t\t\t\t\t\tsize=\"xsmall\"\n\t\t\t\t\t\t\tsrc={item[this.avatarKey]}\n\t\t\t\t\t\t\tletters={item[this.avatarLettersKey]}\n\t\t\t\t\t\t></p-avatar>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\titem[this.displayKey]\n\t\t\t\t)}\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (this.enableSelectAll) {\n\t\t\titems.unshift(\n\t\t\t\t<p-dropdown-menu-item\n\t\t\t\t\tvariant=\"checkbox\"\n\t\t\t\t\tonClick={() => this._selectAllChange()}\n\t\t\t\t\tactive={this._allSelected}\n\t\t\t\t>\n\t\t\t\t\t{this.selectAllIcon?.length ? (\n\t\t\t\t\t\t<span class=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t<div class=\"w-6 justify-center flex text-lg\">\n\t\t\t\t\t\t\t\t<p-icon variant={this.selectAllIcon} />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{this.selectAllText}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tthis.selectAllText\n\t\t\t\t\t)}\n\t\t\t\t</p-dropdown-menu-item>\n\t\t\t);\n\t\t}\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(\n\t\t\t\t<div class=\"bg-white sticky top-0 pt-2 pb-1 -mt-2\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"p-input size-small mb-2 sticky top-2\"\n\t\t\t\t\t\tplaceholder={this.autocompletePlaceholder}\n\t\t\t\t\t\tonInput={(ev) => this._onAutoComplete(ev)}\n\t\t\t\t\t\tref={(ref) => (this.autocompleteInputRef = ref)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAddItem() {\n\t\treturn (\n\t\t\t<p-dropdown-menu-item onClick={() => this.add.emit()}>\n\t\t\t\t<span class=\"text-indigo font-semibold flex gap-1 items-center\">\n\t\t\t\t\t{this.addItemText}\n\t\t\t\t\t<p-icon variant=\"plus\" />\n\t\t\t\t</span>\n\t\t\t</p-dropdown-menu-item>\n\t\t);\n\t}\n\n\tprivate _getLoadingItems() {\n\t\treturn [0, 0, 0].map(() => (\n\t\t\t<p-dropdown-menu-item enableHover={false}>\n\t\t\t\t<p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\t}\n\n\tprivate _setMultiContainerMaxWidth() {\n\t\tif (!this._inputRef || !this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._multiContainerRef.style.maxWidth = `${this._inputRef.clientWidth - 16}px`;\n\t}\n\n\tprivate _checkSelectedItems() {\n\t\tif (!this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst containerRect = this._multiContainerRef.getBoundingClientRect();\n\t\tconst items = Array.from(\n\t\t\tthis._multiContainerRef.querySelectorAll('.item')\n\t\t) as HTMLElement[];\n\n\t\tlet amountHidden = 0;\n\n\t\tfor (const child of items) {\n\t\t\tchild.classList.remove('hidden');\n\n\t\t\tconst childRect = child.getBoundingClientRect();\n\t\t\tif (childRect.right > containerRect.right) {\n\t\t\t\tchild.classList.add('hidden');\n\t\t\t\tamountHidden++;\n\t\t\t}\n\t\t}\n\n\t\tthis._amountHidden = amountHidden;\n\t\tconst extra = this._multiContainerRef.querySelector('.extra');\n\t\tif (!extra) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!extra.classList.contains('hidden')) {\n\t\t\textra.classList.add('hidden');\n\t\t}\n\n\t\tif (amountHidden > 0) {\n\t\t\textra.classList.remove('hidden');\n\t\t}\n\t}\n\n\tprivate _onDropdownOpen(ev) {\n\t\tif (!ev.detail || !this.autocompleteInputRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.autocompleteInputRef.focus();\n\t}\n\n\tprivate _selectAllChange() {\n\t\tthis._allSelected = !this._allSelected;\n\t\tthis.selectAllChange.emit(this._allSelected);\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["selectComponentCss","Select","_items","this","items","loading","JSON","parse","displayKey","valueKey","map","str","value","text","_a","query","length","asyncFilter","filter","item","queryKey","_checkvalue","_identifierKey","slice","maxDisplayedItems","_displayValue","multi","_selectedItem","_b","i","_c","_d","selectionDisplayKey","identifierKey","componentDidLoad","Error","_setMultiContainerMaxWidth","_resizeObserver","ResizeObserver","_resizeDebounceTimer","clearTimeout","setTimeout","_checkSelectedItems","observe","_el","_valueChange","itemChanges","componentDidRender","disconnectedCallback","disconnect","render","h","Host","class","disableTriggerClick","calculateWidth","insideClick","scrollable","show","_showDropdown","onIsOpen","ev","_onDropdownOpen","slot","icon","size","prefix","label","helper","required","error","disabled","focused","focusMethod","type","placeholder","onFocus","_onFocus","onMouseDown","_onMouseDown","onClick","_onClick","ref","_inputRef","showChevron","variant","_getLoadingItems","_getItems","showAddItem","_getAddItem","_multiContainerRef","_selectValue","_amountHidden","documentClickHandler","target","childOf","_preselectItem","_showDropdownChanges","dropdownShown","emit","Array","isArray","valueChange","includes","autoSelectFirst","identifier","parsedValue","stringify","currentValue","currentParsedValue","find","itemIdentifier","parsedItemIdentifier","selectedItem","valueArray","includesIndex","findIndex","push","splice","_onBlur","preventDefault","blur","enableAutocomplete","force","_onAutoComplete","queryChange","key","toString","toLowerCase","indexOf","emptyStateText","active","avatarKey","src","letters","avatarLettersKey","dropdownDisplayKey","enableSelectAll","unshift","_selectAllChange","_allSelected","selectAllIcon","selectAllText","autocompletePlaceholder","onInput","autocompleteInputRef","add","addItemText","enableHover","style","maxWidth","clientWidth","containerRect","getBoundingClientRect","from","querySelectorAll","amountHidden","child","classList","remove","childRect","right","extra","querySelector","contains","detail","focus","selectAllChange"],"sources":["src/components/molecules/select/select.component.scss?tag=p-select","src/components/molecules/select/select.component.tsx"],"sourcesContent":["@import '../../../style/form/mixins';\n\np-select {\n\t@apply flex w-full flex-col relative text-ellipsis;\n\n\t.p-input {\n\t\t@include inputDefaultState();\n\t}\n\n\t.multi-container {\n\t\t@apply absolute bottom-0 left-0 h-10 flex gap-2 items-center px-2 py-4 overflow-hidden pointer-events-none w-full;\n\n\t\t&.size-small {\n\t\t\t@apply px-1 py-2 h-8;\n\t\t}\n\n\t\t.item {\n\t\t\t@apply bg-indigo-light rounded px-2 flex gap-2 items-center cursor-pointer text-indigo-dark h-[1.625rem] text-sm font-semibold pointer-events-auto whitespace-nowrap;\n\n\t\t\tp-icon {\n\t\t\t\t@apply text-indigo text-xs;\n\t\t\t}\n\t\t}\n\n\t\t.extra {\n\t\t\t@apply text-sm text-storm-medium pointer-events-none;\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\n\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n\ttag: 'p-select',\n\tstyleUrl: 'select.component.scss',\n\tshadow: false,\n})\nexport class Select {\n\t/**\n\t * The items to show in the dropdown\n\t */\n\t@Prop() items: string | any[];\n\n\t/**\n\t * Wether to enable multi select\n\t */\n\t@Prop({ reflect: true }) multi: boolean;\n\n\t/**\n\t * Icon of the select box\n\t */\n\t@Prop() icon: IconVariant;\n\n\t/**\n\t * The current query\n\t */\n\t@Prop() query: string;\n\n\t/**\n\t * The placeholder of the input\n\t */\n\t@Prop() placeholder: string;\n\n\t/**\n\t * The placeholder of the input used for auto complete\n\t */\n\t@Prop() autocompletePlaceholder: string = 'Search...';\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value: any;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() displayKey: string = 'text';\n\n\t/**\n\t * The key of the object to display in the dropdown (overwrites displayKey)\n\t */\n\t@Prop() dropdownDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to display in the input (overwrites displayKey)\n\t */\n\t@Prop() selectionDisplayKey: string | undefined;\n\n\t/**\n\t * The key of the object to return\n\t */\n\t@Prop() valueKey: string;\n\n\t/**\n\t * The key of avatar within an item to show\n\t */\n\t@Prop() avatarKey: string;\n\n\t/**\n\t * The key of avatar letters within an item to show when the avatar url doesn't work\n\t */\n\t@Prop() avatarLettersKey: string;\n\n\t/**\n\t * The key to identify an object\n\t */\n\t@Prop() identifierKey: string;\n\n\t/**\n\t * The key of the object to display\n\t */\n\t@Prop() queryKey?: string;\n\n\t/**\n\t * Wether to automatically select the first item\n\t */\n\t@Prop() autoSelectFirst: boolean = true;\n\n\t/**\n\t * Wether to show the chevron or not\n\t */\n\t@Prop() showChevron: boolean = true;\n\n\t/**\n\t * The maximum amount of items to display\n\t */\n\t@Prop() maxDisplayedItems: number = 10;\n\n\t/**\n\t * Wether to enable autocomplete\n\t */\n\t@Prop() enableAutocomplete: boolean = true;\n\n\t/**\n\t * Wether the input uses async filtering\n\t */\n\t@Prop() asyncFilter: boolean = false;\n\n\t/**\n\t * Wether to show loading items\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * Wether to show the select all item with multi select\n\t */\n\t@Prop() enableSelectAll: boolean = false;\n\n\t/**\n\t * The text of the select all item\n\t */\n\t@Prop() selectAllText: string = 'Select all';\n\n\t/**\n\t * The icon to prefix for select all\n\t */\n\t@Prop() selectAllIcon: IconVariant | undefined;\n\n\t/**\n\t * Event when the query of the autocomplete changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tqueryChange: EventEmitter<string>;\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the select all item has been selected or not\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tselectAllChange: EventEmitter<any>;\n\n\t/**\n\t * Event when the dropdown shows\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdropdownShown: EventEmitter<any>;\n\n\t/**\n\t * The size of the input group used by the select\n\t */\n\t@Prop() size: 'small' | 'medium' = 'medium';\n\n\t/**\n\t * The prefix of the input group used by the select\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The label of the input group used by the select\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop() helper: string;\n\n\t/**\n\t * Wether the field is required\n\t */\n\t@Prop({ reflect: true }) required: boolean;\n\n\t/**\n\t * The helper of the input group used by the select\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled used by the select\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * Wether to show a \"add\" item\n\t */\n\t@Prop() showAddItem: boolean = false;\n\n\t/**\n\t * The text to show when add item is being shown\n\t */\n\t@Prop() addItemText: string = 'Add item';\n\n\t/**\n\t * Event when the add item is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tadd: EventEmitter;\n\n\t/**\n\t * The text to show when items is empty\n\t */\n\t@Prop() emptyStateText: string = 'No items available';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _showDropdown: any = false;\n\t@State() private _selectedItem: any = null;\n\n\t@State() private _allSelected: boolean = false;\n\n\t@State() private _amountHidden = 0;\n\n\tprivate _inputRef: HTMLInputElement;\n\tprivate autocompleteInputRef: HTMLInputElement;\n\tprivate _multiContainerRef: HTMLElement;\n\n\tprivate _resizeObserver: ResizeObserver;\n\tprivate _resizeDebounceTimer: NodeJS.Timer;\n\n\tget _items() {\n\t\tif (!this.items || this.loading) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet items =\n\t\t\ttypeof this.items === 'string'\n\t\t\t\t? JSON.parse(this.items)\n\t\t\t\t: this.items;\n\n\t\tif (typeof items?.[0] === 'string') {\n\t\t\tthis.displayKey = 'text';\n\t\t\tthis.valueKey = 'value';\n\n\t\t\titems = items.map((str) => ({\n\t\t\t\tvalue: str,\n\t\t\t\ttext: str,\n\t\t\t}));\n\t\t}\n\n\t\tif (this.query?.length && !this.asyncFilter) {\n\t\t\titems = items.filter((item) => {\n\t\t\t\tif (this.queryKey) {\n\t\t\t\t\treturn this._checkvalue(this.queryKey, item);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tthis._checkvalue(this._identifierKey, item) ||\n\t\t\t\t\tthis._checkvalue(this.displayKey, item)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\treturn items?.slice(0, this.maxDisplayedItems);\n\t}\n\n\tget _displayValue() {\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem?.length) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn this._selectedItem\n\t\t\t\t?.map((i) => i?.[this.displayKey])\n\t\t\t\t.filter((i) => !!i);\n\t\t}\n\n\t\treturn this._selectedItem?.[\n\t\t\tthis.selectionDisplayKey ?? this.displayKey\n\t\t];\n\t}\n\n\tget _identifierKey() {\n\t\treturn this.identifierKey ?? this.valueKey ?? 'value';\n\t}\n\n\tcomponentDidLoad() {\n\t\tif (!this.valueKey && !this.identifierKey) {\n\t\t\tthrow new Error('You must provide a valueKey or identifierKey');\n\t\t}\n\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\n\t\t\tthis._resizeObserver = new ResizeObserver(() => {\n\t\t\t\tif (this._resizeDebounceTimer) {\n\t\t\t\t\tclearTimeout(this._resizeDebounceTimer);\n\t\t\t\t\tthis._resizeDebounceTimer = null;\n\t\t\t\t}\n\n\t\t\t\tthis._resizeDebounceTimer = setTimeout(() => {\n\t\t\t\t\tthis._setMultiContainerMaxWidth();\n\t\t\t\t\tthis._checkSelectedItems();\n\t\t\t\t}, 200);\n\t\t\t});\n\t\t\tthis._resizeObserver.observe(this._el);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\tthis._valueChange();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.itemChanges();\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this.multi) {\n\t\t\tthis._setMultiContainerMaxWidth();\n\t\t\tthis._checkSelectedItems();\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tif (this.multi) {\n\t\t\tthis._resizeObserver.disconnect();\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-select\">\n\t\t\t\t<p-dropdown\n\t\t\t\t\tdisableTriggerClick={true}\n\t\t\t\t\tcalculateWidth={true}\n\t\t\t\t\tinsideClick={true}\n\t\t\t\t\tscrollable={true}\n\t\t\t\t\tshow={this._showDropdown}\n\t\t\t\t\tonIsOpen={(ev) => this._onDropdownOpen(ev)}\n\t\t\t\t>\n\t\t\t\t\t<p-input-group\n\t\t\t\t\t\tslot=\"trigger\"\n\t\t\t\t\t\ticon={this.icon}\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tprefix={this.prefix}\n\t\t\t\t\t\tlabel={this.label}\n\t\t\t\t\t\thelper={this.helper}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\terror={this.error}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tfocused={this._showDropdown}\n\t\t\t\t\t\tfocusMethod=\"click\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tslot=\"input\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tthis.multi && this._displayValue?.length\n\t\t\t\t\t\t\t\t\t? ' '\n\t\t\t\t\t\t\t\t\t: this._displayValue\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclass=\"p-input cursor-pointer read-only\"\n\t\t\t\t\t\t\tonFocus={(ev) => this._onFocus(ev)}\n\t\t\t\t\t\t\tonMouseDown={(ev) => this._onMouseDown(ev)}\n\t\t\t\t\t\t\tonClick={() => this._onClick()}\n\t\t\t\t\t\t\tref={(ref) => (this._inputRef = ref)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{this.showChevron && (\n\t\t\t\t\t\t\t<p-icon variant=\"chevron\" slot=\"suffix\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</p-input-group>\n\t\t\t\t\t<div slot=\"items\">\n\t\t\t\t\t\t{this.loading\n\t\t\t\t\t\t\t? this._getLoadingItems()\n\t\t\t\t\t\t\t: this._getItems()}\n\t\t\t\t\t\t{this.showAddItem && this._getAddItem()}\n\t\t\t\t\t</div>\n\t\t\t\t</p-dropdown>\n\n\t\t\t\t{this.multi && this._selectedItem?.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={`multi-container size-${this.size}`}\n\t\t\t\t\t\tref={(ref) => (this._multiContainerRef = ref)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this._selectedItem.map((item) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"item\"\n\t\t\t\t\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\titem[\n\t\t\t\t\t\t\t\t\t\tthis.selectionDisplayKey ??\n\t\t\t\t\t\t\t\t\t\t\tthis.displayKey\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<p-icon variant=\"negative\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t<div class=\"extra hidden\">+{this._amountHidden}</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler({ target }) {\n\t\tif (!this._showDropdown || childOf(target, this._el)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\t@Watch('value')\n\tprivate _valueChange() {\n\t\tthis._preselectItem();\n\t}\n\n\t@Watch('items')\n\tpublic itemChanges() {\n\t\tthis._preselectItem();\n\t}\n\n\t@Watch('_showDropdown')\n\tpublic _showDropdownChanges() {\n\t\tthis.dropdownShown.emit({\n\t\t\tvalue: this._showDropdown,\n\t\t\tquery: this.query,\n\t\t});\n\t}\n\n\tprivate _preselectItem() {\n\t\tlet value =\n\t\t\ttypeof this.value === 'string' && this.multi\n\t\t\t\t? JSON.parse(this.value)\n\t\t\t\t: this.value;\n\n\t\tif (this.multi) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis.value = [];\n\t\t\t\tthis.valueChange.emit(this.value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = value;\n\t\t\tif (!value.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._selectedItem =\n\t\t\t\t!!this.valueKey && this.valueKey !== 'false'\n\t\t\t\t\t? this._items.filter((i) =>\n\t\t\t\t\t\t\tvalue.includes(i?.[this.valueKey])\n\t\t\t\t\t\t)\n\t\t\t\t\t: [...value];\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._selectedItem && !value && this.autoSelectFirst) {\n\t\t\tvalue = this._items[0];\n\t\t}\n\n\t\tconst identifier =\n\t\t\ttypeof value === 'object' && value !== null\n\t\t\t\t? value[this._identifierKey]\n\t\t\t\t: value;\n\t\tconst parsedValue =\n\t\t\ttypeof identifier === 'string' || typeof identifier === 'number'\n\t\t\t\t? identifier\n\t\t\t\t: JSON.stringify(identifier);\n\n\t\tconst currentValue = this._selectedItem\n\t\t\t? this._selectedItem?.[this._identifierKey]\n\t\t\t: null;\n\t\tconst currentParsedValue =\n\t\t\ttypeof currentValue === 'string' || typeof currentValue === 'number'\n\t\t\t\t? currentValue\n\t\t\t\t: JSON.stringify(currentValue);\n\n\t\tif (this._selectedItem && currentParsedValue === parsedValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._items?.length && value) {\n\t\t\tthis._selectValue(value);\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = this._items.find((i) => {\n\t\t\tconst itemIdentifier = i?.[this._identifierKey];\n\t\t\tconst parsedItemIdentifier =\n\t\t\t\ttypeof itemIdentifier === 'string' ||\n\t\t\t\ttypeof itemIdentifier === 'number'\n\t\t\t\t\t? itemIdentifier\n\t\t\t\t\t: JSON.stringify(itemIdentifier);\n\n\t\t\treturn parsedItemIdentifier === parsedValue;\n\t\t});\n\n\t\tthis._selectValue(!!item ? item : value);\n\t}\n\n\tprivate _selectValue(item) {\n\t\tlet value =\n\t\t\t!!this.valueKey && this.valueKey !== 'false' && item !== null\n\t\t\t\t? item?.[this.valueKey]\n\t\t\t\t: item;\n\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem || !Array.isArray(this._selectedItem)) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t}\n\n\t\t\tif (!this.value || !Array.isArray(this.value)) {\n\t\t\t\tthis.value = [];\n\t\t\t}\n\n\t\t\tconst selectedItem = [...this._selectedItem];\n\t\t\tconst valueArray = [...this.value];\n\n\t\t\tconst includesIndex = selectedItem.findIndex(\n\t\t\t\t(i) => i[this._identifierKey] === item[this._identifierKey]\n\t\t\t);\n\t\t\tif (includesIndex === -1) {\n\t\t\t\tselectedItem.push(item);\n\t\t\t\tvalueArray.push(value);\n\t\t\t} else {\n\t\t\t\tselectedItem.splice(includesIndex, 1);\n\t\t\t\tvalueArray.splice(includesIndex, 1);\n\t\t\t}\n\n\t\t\tthis._selectedItem = selectedItem;\n\t\t\tthis.value = valueArray;\n\t\t\tthis.valueChange.emit(valueArray);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectedItem = item;\n\t\tthis.value = value;\n\t\tthis.valueChange.emit(value);\n\n\t\tthis._onBlur(true);\n\t}\n\n\tprivate _onFocus(ev) {\n\t\tev.preventDefault();\n\t\tthis._inputRef.blur();\n\n\t\tif (!this._showDropdown) {\n\t\t\tthis._showDropdown = true;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tprivate _onMouseDown(ev) {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tev.preventDefault();\n\t}\n\n\tprivate _onClick() {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = !this._showDropdown;\n\t}\n\n\tprivate _onBlur(force = false) {\n\t\tif (!this.enableAutocomplete && !force) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onAutoComplete(ev) {\n\t\tif (!this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\n\t\tthis.query = ev.target.value;\n\t\tthis.queryChange.emit(ev.target.value);\n\t}\n\n\tprivate _checkvalue(key, item) {\n\t\treturn (\n\t\t\titem?.[key]\n\t\t\t\t?.toString()\n\t\t\t\t?.toLowerCase()\n\t\t\t\t.indexOf(this.query?.toLowerCase()) >= 0\n\t\t);\n\t}\n\n\tprivate _getItems() {\n\t\tif (!this._items.length && !this.query?.length) {\n\t\t\treturn (\n\t\t\t\t<p class=\"w-full p-2 text-storm-medium text-sm text-center\">\n\t\t\t\t\t{this.emptyStateText}\n\t\t\t\t</p>\n\t\t\t);\n\t\t}\n\n\t\tconst items = this._items.map((item) => (\n\t\t\t<p-dropdown-menu-item\n\t\t\t\tonClick={() => this._selectValue(item)}\n\t\t\t\tactive={\n\t\t\t\t\tthis.multi && !!this._selectedItem\n\t\t\t\t\t\t? this._selectedItem.findIndex(\n\t\t\t\t\t\t\t\t(i) =>\n\t\t\t\t\t\t\t\t\ti[this._identifierKey] ===\n\t\t\t\t\t\t\t\t\titem[this._identifierKey]\n\t\t\t\t\t\t\t) >= 0\n\t\t\t\t\t\t: item[this._identifierKey] ===\n\t\t\t\t\t\t\tthis._selectedItem?.[this._identifierKey]\n\t\t\t\t}\n\t\t\t\tvariant={this.multi ? 'checkbox' : 'default'}\n\t\t\t>\n\t\t\t\t{this.avatarKey ? (\n\t\t\t\t\t<span class=\"flex items-center gap-2\">\n\t\t\t\t\t\t<p-avatar\n\t\t\t\t\t\t\tsize=\"xsmall\"\n\t\t\t\t\t\t\tsrc={item[this.avatarKey]}\n\t\t\t\t\t\t\tletters={item[this.avatarLettersKey]}\n\t\t\t\t\t\t></p-avatar>\n\t\t\t\t\t\t{item[this.dropdownDisplayKey ?? this.displayKey]}\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\titem[this.displayKey]\n\t\t\t\t)}\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\n\t\tif (this.enableSelectAll) {\n\t\t\titems.unshift(\n\t\t\t\t<p-dropdown-menu-item\n\t\t\t\t\tvariant=\"checkbox\"\n\t\t\t\t\tonClick={() => this._selectAllChange()}\n\t\t\t\t\tactive={this._allSelected}\n\t\t\t\t>\n\t\t\t\t\t{this.selectAllIcon?.length ? (\n\t\t\t\t\t\t<span class=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t<div class=\"w-6 justify-center flex text-lg\">\n\t\t\t\t\t\t\t\t<p-icon variant={this.selectAllIcon} />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{this.selectAllText}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tthis.selectAllText\n\t\t\t\t\t)}\n\t\t\t\t</p-dropdown-menu-item>\n\t\t\t);\n\t\t}\n\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(\n\t\t\t\t<div class=\"bg-white sticky top-0 pt-2 pb-1 -mt-2\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"p-input size-small mb-2 sticky top-2\"\n\t\t\t\t\t\tplaceholder={this.autocompletePlaceholder}\n\t\t\t\t\t\tonInput={(ev) => this._onAutoComplete(ev)}\n\t\t\t\t\t\tref={(ref) => (this.autocompleteInputRef = ref)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAddItem() {\n\t\treturn (\n\t\t\t<p-dropdown-menu-item onClick={() => this.add.emit()}>\n\t\t\t\t<span class=\"text-indigo font-semibold flex gap-1 items-center\">\n\t\t\t\t\t{this.addItemText}\n\t\t\t\t\t<p-icon variant=\"plus\" />\n\t\t\t\t</span>\n\t\t\t</p-dropdown-menu-item>\n\t\t);\n\t}\n\n\tprivate _getLoadingItems() {\n\t\treturn [0, 0, 0].map(() => (\n\t\t\t<p-dropdown-menu-item enableHover={false}>\n\t\t\t\t<p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n\t\t\t</p-dropdown-menu-item>\n\t\t));\n\t}\n\n\tprivate _setMultiContainerMaxWidth() {\n\t\tif (!this._inputRef || !this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._multiContainerRef.style.maxWidth = `${this._inputRef.clientWidth - 16}px`;\n\t}\n\n\tprivate _checkSelectedItems() {\n\t\tif (!this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst containerRect = this._multiContainerRef.getBoundingClientRect();\n\t\tconst items = Array.from(\n\t\t\tthis._multiContainerRef.querySelectorAll('.item')\n\t\t) as HTMLElement[];\n\n\t\tlet amountHidden = 0;\n\n\t\tfor (const child of items) {\n\t\t\tchild.classList.remove('hidden');\n\n\t\t\tconst childRect = child.getBoundingClientRect();\n\t\t\tif (childRect.right > containerRect.right) {\n\t\t\t\tchild.classList.add('hidden');\n\t\t\t\tamountHidden++;\n\t\t\t}\n\t\t}\n\n\t\tthis._amountHidden = amountHidden;\n\t\tconst extra = this._multiContainerRef.querySelector('.extra');\n\t\tif (!extra) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!extra.classList.contains('hidden')) {\n\t\t\textra.classList.add('hidden');\n\t\t}\n\n\t\tif (amountHidden > 0) {\n\t\t\textra.classList.remove('hidden');\n\t\t}\n\t}\n\n\tprivate _onDropdownOpen(ev) {\n\t\tif (!ev.detail || !this.autocompleteInputRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.autocompleteInputRef.focus();\n\t}\n\n\tprivate _selectAllChange() {\n\t\tthis._allSelected = !this._allSelected;\n\t\tthis.selectAllChange.emit(this._allSelected);\n\t}\n}\n"],"mappings":"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"}
|