@paperless/core 1.25.2 → 1.26.0
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 +28 -0
- package/dist/{paperless/p-bd2e4db3.entry.js → build/p-008f1920.entry.js} +2 -2
- package/dist/build/p-008f1920.entry.js.map +1 -0
- package/dist/build/{p-7d15ff9a.entry.js → p-0d71fc44.entry.js} +2 -2
- package/dist/build/p-0d71fc44.entry.js.map +1 -0
- package/dist/build/{p-fac13366.entry.js → p-fb45a664.entry.js} +2 -2
- package/dist/build/p-fb45a664.entry.js.map +1 -0
- package/dist/build/paperless.esm.js +1 -1
- package/dist/build/paperless.esm.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/p-drawer.cjs.entry.js +3 -0
- package/dist/cjs/p-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/p-modal.cjs.entry.js +3 -0
- package/dist/cjs/p-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/p-select.cjs.entry.js +11 -3
- package/dist/cjs/p-select.cjs.entry.js.map +1 -1
- package/dist/cjs/paperless.cjs.js +1 -1
- package/dist/collection/components/molecules/select/select.component.js +12 -2
- package/dist/collection/components/molecules/select/select.component.js.map +1 -1
- package/dist/collection/components/organisms/drawer/drawer.component.js +12 -0
- package/dist/collection/components/organisms/drawer/drawer.component.js.map +1 -1
- package/dist/collection/components/organisms/modal/modal.component.js +12 -0
- package/dist/collection/components/organisms/modal/modal.component.js.map +1 -1
- package/dist/components/p-drawer.js +4 -1
- package/dist/components/p-drawer.js.map +1 -1
- package/dist/components/p-modal.js +4 -1
- package/dist/components/p-modal.js.map +1 -1
- package/dist/components/p-select.js +13 -4
- package/dist/components/p-select.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/p-drawer.entry.js +3 -0
- package/dist/esm/p-drawer.entry.js.map +1 -1
- package/dist/esm/p-modal.entry.js +3 -0
- package/dist/esm/p-modal.entry.js.map +1 -1
- package/dist/esm/p-select.entry.js +11 -3
- package/dist/esm/p-select.entry.js.map +1 -1
- package/dist/esm/paperless.js +1 -1
- package/dist/index.html +1 -1
- package/dist/{build/p-bd2e4db3.entry.js → paperless/p-008f1920.entry.js} +2 -2
- package/dist/paperless/p-008f1920.entry.js.map +1 -0
- package/dist/paperless/{p-7d15ff9a.entry.js → p-0d71fc44.entry.js} +2 -2
- package/dist/paperless/p-0d71fc44.entry.js.map +1 -0
- package/dist/paperless/{p-fac13366.entry.js → p-fb45a664.entry.js} +2 -2
- package/dist/paperless/p-fb45a664.entry.js.map +1 -0
- package/dist/paperless/paperless.esm.js +1 -1
- package/dist/paperless/paperless.esm.js.map +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/dist/types/components/organisms/drawer/drawer.component.d.ts +2 -1
- package/dist/types/components/organisms/modal/modal.component.d.ts +2 -1
- package/hydrate/index.js +19 -5
- package/package.json +1 -1
- package/dist/build/p-7d15ff9a.entry.js.map +0 -1
- package/dist/build/p-bd2e4db3.entry.js.map +0 -1
- package/dist/build/p-fac13366.entry.js.map +0 -1
- package/dist/paperless/p-7d15ff9a.entry.js.map +0 -1
- package/dist/paperless/p-bd2e4db3.entry.js.map +0 -1
- package/dist/paperless/p-fac13366.entry.js.map +0 -1
package/hydrate/index.js
CHANGED
|
@@ -18128,6 +18128,9 @@ class Drawer {
|
|
|
18128
18128
|
this.closed.emit();
|
|
18129
18129
|
}, 250);
|
|
18130
18130
|
}
|
|
18131
|
+
handleCloseDrawer() {
|
|
18132
|
+
this.close();
|
|
18133
|
+
}
|
|
18131
18134
|
get _el() { return getElement(this); }
|
|
18132
18135
|
static get style() { return drawerComponentCss; }
|
|
18133
18136
|
static get cmpMeta() { return {
|
|
@@ -18143,7 +18146,7 @@ class Drawer {
|
|
|
18143
18146
|
"scrollLock": [4, "scroll-lock"],
|
|
18144
18147
|
"_closing": [32]
|
|
18145
18148
|
},
|
|
18146
|
-
"$listeners$":
|
|
18149
|
+
"$listeners$": [[8, "closeDrawer", "handleCloseDrawer"]],
|
|
18147
18150
|
"$lazyBundleId$": "-",
|
|
18148
18151
|
"$attrsToReflect$": []
|
|
18149
18152
|
}; }
|
|
@@ -20219,6 +20222,9 @@ class Modal {
|
|
|
20219
20222
|
this.closed.emit();
|
|
20220
20223
|
}, 550);
|
|
20221
20224
|
}
|
|
20225
|
+
handleCloseModal() {
|
|
20226
|
+
this.close();
|
|
20227
|
+
}
|
|
20222
20228
|
get _el() { return getElement(this); }
|
|
20223
20229
|
static get cmpMeta() { return {
|
|
20224
20230
|
"$flags$": 9,
|
|
@@ -20236,7 +20242,7 @@ class Modal {
|
|
|
20236
20242
|
"padding": [4],
|
|
20237
20243
|
"_closing": [32]
|
|
20238
20244
|
},
|
|
20239
|
-
"$listeners$":
|
|
20245
|
+
"$listeners$": [[8, "closeModal", "handleCloseModal"]],
|
|
20240
20246
|
"$lazyBundleId$": "-",
|
|
20241
20247
|
"$attrsToReflect$": []
|
|
20242
20248
|
}; }
|
|
@@ -21010,6 +21016,11 @@ class Select {
|
|
|
21010
21016
|
query: this.query,
|
|
21011
21017
|
});
|
|
21012
21018
|
}
|
|
21019
|
+
multiChanges() {
|
|
21020
|
+
if (this._selectedItem && !Array.isArray(this._selectedItem)) {
|
|
21021
|
+
this._selectedItem = [];
|
|
21022
|
+
}
|
|
21023
|
+
}
|
|
21013
21024
|
_preselectItem() {
|
|
21014
21025
|
var _a, _b;
|
|
21015
21026
|
let value = typeof this.value === 'string' && this.multi
|
|
@@ -21023,6 +21034,7 @@ class Select {
|
|
|
21023
21034
|
}
|
|
21024
21035
|
this.value = value;
|
|
21025
21036
|
if (!value.length) {
|
|
21037
|
+
this._selectedItem = [];
|
|
21026
21038
|
return;
|
|
21027
21039
|
}
|
|
21028
21040
|
this._selectedItem =
|
|
@@ -21135,10 +21147,11 @@ class Select {
|
|
|
21135
21147
|
}
|
|
21136
21148
|
_getItems() {
|
|
21137
21149
|
var _a;
|
|
21138
|
-
console.log(this._selectedItem, !!this._selectedItem);
|
|
21139
21150
|
let items = this._items.map((item) => {
|
|
21140
21151
|
var _a, _b;
|
|
21141
|
-
return (hAsync("p-dropdown-menu-item", { onClick: () => this._selectValue(item), active: this.multi &&
|
|
21152
|
+
return (hAsync("p-dropdown-menu-item", { onClick: () => this._selectValue(item), active: this.multi &&
|
|
21153
|
+
!!this._selectedItem &&
|
|
21154
|
+
Array.isArray(this._selectedItem)
|
|
21142
21155
|
? this._selectedItem.findIndex((i) => i[this._identifierKey] ===
|
|
21143
21156
|
item[this._identifierKey]) >= 0
|
|
21144
21157
|
: item[this._identifierKey] ===
|
|
@@ -21217,7 +21230,8 @@ class Select {
|
|
|
21217
21230
|
static get watchers() { return {
|
|
21218
21231
|
"value": ["_valueChange"],
|
|
21219
21232
|
"items": ["itemChanges"],
|
|
21220
|
-
"_showDropdown": ["_showDropdownChanges"]
|
|
21233
|
+
"_showDropdown": ["_showDropdownChanges"],
|
|
21234
|
+
"multi": ["multiChanges"]
|
|
21221
21235
|
}; }
|
|
21222
21236
|
static get style() { return selectComponentCss; }
|
|
21223
21237
|
static get cmpMeta() { return {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["drawerComponentCss","Drawer","this","_hasHeaderSlot","componentWillLoad","_el","querySelector","render","show","headerContent","h","name","bodyContent","Host","class","variant","applyBlur","onClicked","ev","_backdropClick","detail","closing","_closing","scrollLock","_a","header","length","showClose","onClose","close","backdropClickClose","closeClicked","emit","event","canClose","setTimeout","closed"],"sources":["src/components/organisms/drawer/drawer.component.scss?tag=p-drawer&encapsulation=shadow","src/components/organisms/drawer/drawer.component.tsx"],"sourcesContent":[":host {\n\t@apply block;\n}\n","import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tProp,\n\tState,\n} from '@stencil/core';\n\n@Component({\n\ttag: 'p-drawer',\n\tstyleUrl: 'drawer.component.scss',\n\tshadow: true,\n})\nexport class Drawer {\n\t/**\n\t * The Header of the drawer\n\t */\n\t@Prop() header?: string;\n\n\t/**\n\t * Wether to show the drawer or not\n\t */\n\t@Prop() show: boolean = false;\n\n\t/**\n\t * Wether to apply blur to the backdrop\n\t */\n\t@Prop() applyBlur: boolean = false;\n\n\t/**\n\t * Wether to show the close on mobile in the header\n\t */\n\t@Prop() showClose = true;\n\n\t/**\n\t * Wether to hide the drawer when the backdrop is clicked\n\t */\n\t@Prop() backdropClickClose = true;\n\n\t/**\n\t * Wether the drawer can be closed\n\t */\n\t@Prop() canClose: boolean = true;\n\n\t/**\n\t * Wether we should scroll lock the body\n\t */\n\t@Prop() scrollLock: boolean = true;\n\n\t/**\n\t * Close click event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tcloseClicked: EventEmitter<{\n\t\tevent: MouseEvent;\n\t\tcanClose: boolean;\n\t}>;\n\n\t/**\n\t * Closed event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tclosed: EventEmitter<null>;\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\tprivate _hasHeaderSlot = false;\n\n\t@State() private _closing = false;\n\n\tcomponentWillLoad() {\n\t\tthis._hasHeaderSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"header\"]'\n\t\t);\n\t}\n\n\trender() {\n\t\tif (!this.show) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst headerContent = <slot name=\"header\" />;\n\t\tconst bodyContent = <slot name=\"content\" />;\n\n\t\treturn (\n\t\t\t<Host class=\"p-drawer\">\n\t\t\t\t<p-backdrop\n\t\t\t\t\tvariant=\"drawer\"\n\t\t\t\t\tapplyBlur={this.applyBlur}\n\t\t\t\t\tonClicked={(ev) => this._backdropClick(ev.detail)}\n\t\t\t\t\tclosing={this._closing}\n\t\t\t\t\tscrollLock={this.scrollLock}\n\t\t\t\t>\n\t\t\t\t\t<p-drawer-container closing={this._closing}>\n\t\t\t\t\t\t{(this.header?.length || this._hasHeaderSlot) && (\n\t\t\t\t\t\t\t<p-drawer-header\n\t\t\t\t\t\t\t\tshow-close={this.showClose}\n\t\t\t\t\t\t\t\tonClose={(ev) => this.close(ev.detail)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this._hasHeaderSlot\n\t\t\t\t\t\t\t\t\t? headerContent\n\t\t\t\t\t\t\t\t\t: this.header}\n\t\t\t\t\t\t\t</p-drawer-header>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<p-drawer-body>{bodyContent}</p-drawer-body>\n\t\t\t\t\t</p-drawer-container>\n\t\t\t\t</p-backdrop>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\tprivate _backdropClick(ev) {\n\t\tif (!this.backdropClickClose) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.close(ev);\n\t}\n\n\tpublic close(ev: MouseEvent) {\n\t\tthis.closeClicked.emit({\n\t\t\tevent: ev,\n\t\t\tcanClose: this.canClose,\n\t\t});\n\n\t\tif (!this.canClose) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._closing = true;\n\n\t\tsetTimeout(() => {\n\t\t\tthis.show = false;\n\t\t\tthis._closing = false;\n\t\t\tthis.closed.emit();\n\t\t}, 250);\n\t}\n}\n"],"mappings":"gEAAA,MAAMA,EAAqB,gH,MCgBdC,EAAM,M,mGA4DVC,KAAAC,eAAiB,M,gCAnDD,M,eAKK,M,eAKT,K,wBAKS,K,cAKD,K,gBAKE,K,cA4BF,K,CAE5B,iBAAAC,GACCF,KAAKC,iBAAmBD,KAAKG,IAAIC,cAChC,2B,CAIF,MAAAC,G,MACC,IAAKL,KAAKM,KAAM,CACf,M,CAGD,MAAMC,EAAgBC,EAAA,QAAMC,KAAK,WACjC,MAAMC,EAAcF,EAAA,QAAMC,KAAK,YAE/B,OACCD,EAACG,EAAI,CAACC,MAAM,YACXJ,EAAA,cACCK,QAAQ,SACRC,UAAWd,KAAKc,UAChBC,UAAYC,GAAOhB,KAAKiB,eAAeD,EAAGE,QAC1CC,QAASnB,KAAKoB,SACdC,WAAYrB,KAAKqB,YAEjBb,EAAA,sBAAoBW,QAASnB,KAAKoB,aAC/BE,EAAAtB,KAAKuB,UAAM,MAAAD,SAAA,SAAAA,EAAEE,SAAUxB,KAAKC,iBAC7BO,EAAA,gCACaR,KAAKyB,UACjBC,QAAUV,GAAOhB,KAAK2B,MAAMX,EAAGE,SAE9BlB,KAAKC,eACHM,EACAP,KAAKuB,QAGVf,EAAA,qBAAgBE,K,CAOb,cAAAO,CAAeD,GACtB,IAAKhB,KAAK4B,mBAAoB,CAC7B,M,CAGD5B,KAAK2B,MAAMX,E,CAGL,KAAAW,CAAMX,GACZhB,KAAK6B,aAAaC,KAAK,CACtBC,MAAOf,EACPgB,SAAUhC,KAAKgC,WAGhB,IAAKhC,KAAKgC,SAAU,CACnB,M,CAGDhC,KAAKoB,SAAW,KAEhBa,YAAW,KACVjC,KAAKM,KAAO,MACZN,KAAKoB,SAAW,MAChBpB,KAAKkC,OAAOJ,MAAM,GAChB,I"}
|
|
@@ -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","forceBlur","selectedItem","valueArray","includesIndex","findIndex","push","splice","_onBlur","preventDefault","blur","enableAutocomplete","force","_onAutoComplete","queryChange","key","toString","toLowerCase","indexOf","console","log","active","avatarKey","src","letters","avatarLettersKey","dropdownDisplayKey","emptyStateText","enableSelectAll","unshift","_selectAllChange","_allSelected","selectAllIcon","selectAllText","_getAutoCompleteItem","add","addItemText","enableHover","autocompletePlaceholder","onInput","autocompleteInputRef","style","maxWidth","clientWidth","containerRect","getBoundingClientRect","from","querySelectorAll","amountHidden","child","classList","remove","childRect","right","extra","querySelector","contains","detail","focus","selectAllChange"],"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, false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = this._items.find((i) => {\n\t\t\tconst itemIdentifier = i?.[this._identifierKey];\n\t\t\tconst parsedItemIdentifier =\n\t\t\t\ttypeof itemIdentifier === 'string' ||\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, false);\n\t}\n\n\tprivate _selectValue(item, forceBlur = true) {\n\t\tlet value =\n\t\t\t!!this.valueKey && this.valueKey !== 'false' && item !== null\n\t\t\t\t? item?.[this.valueKey]\n\t\t\t\t: item;\n\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem || !Array.isArray(this._selectedItem)) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t}\n\n\t\t\tif (!this.value || !Array.isArray(this.value)) {\n\t\t\t\tthis.value = [];\n\t\t\t}\n\n\t\t\tconst selectedItem = [...this._selectedItem];\n\t\t\tconst valueArray = [...this.value];\n\n\t\t\tconst includesIndex = selectedItem.findIndex(\n\t\t\t\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(forceBlur);\n\t}\n\n\tprivate _onFocus(ev) {\n\t\tev.preventDefault();\n\t\tthis._inputRef.blur();\n\n\t\tif (!this._showDropdown) {\n\t\t\tthis._showDropdown = true;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tprivate _onMouseDown(ev) {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tev.preventDefault();\n\t}\n\n\tprivate _onClick() {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = !this._showDropdown;\n\t}\n\n\tprivate _onBlur(force = false) {\n\t\tif (!this.enableAutocomplete && !force) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onAutoComplete(ev) {\n\t\tif (!this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\n\t\tthis.query = ev.target.value;\n\t\tthis.queryChange.emit(ev.target.value);\n\t}\n\n\tprivate _checkvalue(key, item) {\n\t\treturn (\n\t\t\titem?.[key]\n\t\t\t\t?.toString()\n\t\t\t\t?.toLowerCase()\n\t\t\t\t.indexOf(this.query?.toLowerCase()) >= 0\n\t\t);\n\t}\n\n\tprivate _getItems() {\n\t\tconsole.log(this._selectedItem, !!this._selectedItem);\n\t\tlet 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._items.length) {\n\t\t\titems = [\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\tif (this.enableSelectAll && this._items.length) {\n\t\t\titems.unshift(\n\t\t\t\t<p-dropdown-menu-item\n\t\t\t\t\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(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAddItem() {\n\t\treturn (\n\t\t\t<p-dropdown-menu-item 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\tconst items = [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\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAutoCompleteItem() {\n\t\treturn (\n\t\t\t<div class=\"bg-white sticky top-0 pt-2 pb-1 -mt-2\">\n\t\t\t\t<input\n\t\t\t\t\tclass=\"p-input size-small mb-2 sticky top-2\"\n\t\t\t\t\tplaceholder={this.autocompletePlaceholder}\n\t\t\t\t\tonInput={(ev) => this._onAutoComplete(ev)}\n\t\t\t\t\tref={(ref) => (this.autocompleteInputRef = ref)}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _setMultiContainerMaxWidth() {\n\t\tif (!this._inputRef || !this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._multiContainerRef.style.maxWidth = `${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":"oGAAA,MAAMA,EAAqB,itK,MCqBdC,EAAM,M,6WA6BwB,Y,qCAUb,O,gOAwCM,K,iBAKJ,K,uBAKK,G,wBAKE,K,iBAKP,M,aAKJ,M,qBAKQ,M,mBAKH,a,uCA0CG,S,4HA8BU,M,iBAKd,M,iBAKD,W,oBAaG,qB,mBAOK,M,mBACA,K,kBAEG,M,mBAER,C,CASjC,UAAIC,G,MACH,IAAKC,KAAKC,OAASD,KAAKE,QAAS,CAChC,MAAO,E,CAGR,IAAID,SACID,KAAKC,QAAU,SACnBE,KAAKC,MAAMJ,KAAKC,OAChBD,KAAKC,MAET,UAAWA,IAAK,MAALA,SAAK,SAALA,EAAQ,MAAO,SAAU,CACnCD,KAAKK,WAAa,OAClBL,KAAKM,SAAW,QAEhBL,EAAQA,EAAMM,KAAKC,IAAG,CACrBC,MAAOD,EACPE,KAAMF,K,CAIR,KAAIG,EAAAX,KAAKY,SAAK,MAAAD,SAAA,SAAAA,EAAEE,UAAWb,KAAKc,YAAa,CAC5Cb,EAAQA,EAAMc,QAAQC,IACrB,GAAIhB,KAAKiB,SAAU,CAClB,OAAOjB,KAAKkB,YAAYlB,KAAKiB,SAAUD,E,CAGxC,OACChB,KAAKkB,YAAYlB,KAAKmB,eAAgBH,IACtChB,KAAKkB,YAAYlB,KAAKK,WAAYW,EAAK,G,CAK1C,OAAOf,IAAK,MAALA,SAAK,SAALA,EAAOmB,MAAM,EAAGpB,KAAKqB,kB,CAG7B,iBAAIC,G,YACH,GAAItB,KAAKuB,MAAO,CACf,MAAKZ,EAAAX,KAAKwB,iBAAa,MAAAb,SAAA,SAAAA,EAAEE,QAAQ,CAChC,MAAO,E,CAGR,OAAOY,EAAAzB,KAAKwB,iBAAa,MAAAC,SAAA,SAAAA,EACtBlB,KAAKmB,GAAMA,IAAC,MAADA,SAAC,SAADA,EAAI1B,KAAKK,cACrBU,QAAQW,KAAQA,G,CAGnB,OAAOC,EAAA3B,KAAKwB,iBAAa,MAAAG,SAAA,SAAAA,GACxBC,EAAA5B,KAAK6B,uBAAmB,MAAAD,SAAA,EAAAA,EAAI5B,KAAKK,W,CAInC,kBAAIc,G,QACH,OAAOM,GAAAd,EAAAX,KAAK8B,iBAAa,MAAAnB,SAAA,EAAAA,EAAIX,KAAKM,YAAQ,MAAAmB,SAAA,EAAAA,EAAI,O,CAG/C,gBAAAM,GACC,IAAK/B,KAAKM,WAAaN,KAAK8B,cAAe,CAC1C,MAAM,IAAIE,MAAM,+C,CAGjB,GAAIhC,KAAKuB,MAAO,CACfvB,KAAKiC,6BAELjC,KAAKkC,gBAAkB,IAAIC,gBAAe,KACzC,GAAInC,KAAKoC,qBAAsB,CAC9BC,aAAarC,KAAKoC,sBAClBpC,KAAKoC,qBAAuB,I,CAG7BpC,KAAKoC,qBAAuBE,YAAW,KACtCtC,KAAKiC,6BACLjC,KAAKuC,qBAAqB,GACxB,IAAI,IAERvC,KAAKkC,gBAAgBM,QAAQxC,KAAKyC,I,CAGnC,GAAIzC,KAAKS,MAAO,CACfT,KAAK0C,eACL,M,CAGD1C,KAAK2C,a,CAGN,kBAAAC,GACC,GAAI5C,KAAKuB,MAAO,CACfvB,KAAKiC,6BACLjC,KAAKuC,qB,EAIP,oBAAAM,GACC,GAAI7C,KAAKuB,MAAO,CACfvB,KAAKkC,gBAAgBY,Y,EAIvB,MAAAC,G,QACC,OACCC,EAACC,EAAI,CAACC,MAAM,YACXF,EAAA,cACCG,oBAAqB,KACrBC,eAAgB,KAChBC,YAAa,KACbC,WAAY,KACZC,KAAMvD,KAAKwD,cACXC,SAAWC,GAAO1D,KAAK2D,gBAAgBD,IAEvCV,EAAA,iBACCY,KAAK,UACLC,KAAM7D,KAAK6D,KACXC,KAAM9D,KAAK8D,KACXC,OAAQ/D,KAAK+D,OACbC,MAAOhE,KAAKgE,MACZC,OAAQjE,KAAKiE,OACbC,SAAUlE,KAAKkE,SACfC,MAAOnE,KAAKmE,MACZC,SAAUpE,KAAKoE,SACfC,QAASrE,KAAKwD,cACdc,YAAY,SAEZtB,EAAA,SACCY,KAAK,QACLW,KAAK,OACLC,YAAaxE,KAAKwE,YAClB/D,MACCT,KAAKuB,SAASZ,EAAAX,KAAKsB,iBAAa,MAAAX,SAAA,SAAAA,EAAEE,QAC/B,IACAb,KAAKsB,cAET4B,MAAM,mCACNuB,QAAUf,GAAO1D,KAAK0E,SAAShB,GAC/BiB,YAAcjB,GAAO1D,KAAK4E,aAAalB,GACvCmB,QAAS,IAAM7E,KAAK8E,WACpBC,IAAMA,GAAS/E,KAAKgF,UAAYD,IAGhC/E,KAAKiF,aACLjC,EAAA,UAAQkC,QAAQ,UAAUtB,KAAK,YAGjCZ,EAAA,OAAKY,KAAK,SACR5D,KAAKE,QACHF,KAAKmF,mBACLnF,KAAKoF,YACPpF,KAAKqF,aAAerF,KAAKsF,gBAI3BtF,KAAKuB,SAASE,EAAAzB,KAAKwB,iBAAa,MAAAC,SAAA,SAAAA,EAAEZ,QAAS,GAC3CmC,EAAA,OACCE,MAAO,wBAAwBlD,KAAK8D,OACpCiB,IAAMA,GAAS/E,KAAKuF,mBAAqBR,GAExC/E,KAAKwB,cAAcjB,KAAKS,I,MAAS,OACjCgC,EAAA,OACCE,MAAM,OACN2B,QAAS,IAAM7E,KAAKwF,aAAaxE,IAGhCA,GACCL,EAAAX,KAAK6B,uBAAmB,MAAAlB,SAAA,EAAAA,EACvBX,KAAKK,YAGR2C,EAAA,UAAQkC,QAAQ,aACX,IAGPlC,EAAA,OAAKE,MAAM,gBAAc,IAAGlD,KAAKyF,gB,CAQ5B,oBAAAC,EAAqBC,OAAEA,IAChC,IAAK3F,KAAKwD,eAAiBoC,EAAQD,EAAQ3F,KAAKyC,KAAM,CACrD,M,CAGDzC,KAAKwD,cAAgB,K,CAId,YAAAd,GACP1C,KAAK6F,gB,CAIC,WAAAlD,GACN3C,KAAK6F,gB,CAIC,oBAAAC,GACN9F,KAAK+F,cAAcC,KAAK,CACvBvF,MAAOT,KAAKwD,cACZ5C,MAAOZ,KAAKY,O,CAIN,cAAAiF,G,QACP,IAAIpF,SACIT,KAAKS,QAAU,UAAYT,KAAKuB,MACpCpB,KAAKC,MAAMJ,KAAKS,OAChBT,KAAKS,MAET,GAAIT,KAAKuB,MAAO,CACf,IAAK0E,MAAMC,QAAQzF,GAAQ,CAC1BT,KAAKS,MAAQ,GACbT,KAAKmG,YAAYH,KAAKhG,KAAKS,OAC3B,M,CAGDT,KAAKS,MAAQA,EACb,IAAKA,EAAMI,OAAQ,CAClB,M,CAGDb,KAAKwB,gBACFxB,KAAKM,UAAYN,KAAKM,WAAa,QAClCN,KAAKD,OAAOgB,QAAQW,GACpBjB,EAAM2F,SAAS1E,IAAC,MAADA,SAAC,SAADA,EAAI1B,KAAKM,aAExB,IAAIG,GACR,M,CAGD,IAAKT,KAAKwB,gBAAkBf,GAAST,KAAKqG,gBAAiB,CAC1D5F,EAAQT,KAAKD,OAAO,E,CAGrB,MAAMuG,SACE7F,IAAU,UAAYA,IAAU,KACpCA,EAAMT,KAAKmB,gBACXV,EACJ,MAAM8F,SACED,IAAe,iBAAmBA,IAAe,SACrDA,EACAnG,KAAKqG,UAAUF,GAEnB,MAAMG,EAAezG,KAAKwB,eACvBb,EAAAX,KAAKwB,iBAAa,MAAAb,SAAA,SAAAA,EAAGX,KAAKmB,gBAC1B,KACH,MAAMuF,SACED,IAAiB,iBAAmBA,IAAiB,SACzDA,EACAtG,KAAKqG,UAAUC,GAEnB,GAAIzG,KAAKwB,eAAiBkF,IAAuBH,EAAa,CAC7D,M,CAGD,MAAK9E,EAAAzB,KAAKD,UAAM,MAAA0B,SAAA,SAAAA,EAAEZ,SAAUJ,EAAO,CAClCT,KAAKwF,aAAa/E,EAAO,OACzB,M,CAGD,MAAMO,EAAOhB,KAAKD,OAAO4G,MAAMjF,IAC9B,MAAMkF,EAAiBlF,IAAC,MAADA,SAAC,SAADA,EAAI1B,KAAKmB,gBAChC,MAAM0F,SACED,IAAmB,iBACnBA,IAAmB,SACvBA,EACAzG,KAAKqG,UAAUI,GAEnB,OAAOC,IAAyBN,CAAW,IAG5CvG,KAAKwF,eAAexE,EAAOA,EAAOP,EAAO,M,CAGlC,YAAA+E,CAAaxE,EAAM8F,EAAY,MACtC,IAAIrG,IACDT,KAAKM,UAAYN,KAAKM,WAAa,SAAWU,IAAS,KACtDA,IAAI,MAAJA,SAAI,SAAJA,EAAOhB,KAAKM,UACZU,EAEJ,GAAIhB,KAAKuB,MAAO,CACf,IAAKvB,KAAKwB,gBAAkByE,MAAMC,QAAQlG,KAAKwB,eAAgB,CAC9DxB,KAAKwB,cAAgB,E,CAGtB,IAAKxB,KAAKS,QAAUwF,MAAMC,QAAQlG,KAAKS,OAAQ,CAC9CT,KAAKS,MAAQ,E,CAGd,MAAMsG,EAAe,IAAI/G,KAAKwB,eAC9B,MAAMwF,EAAa,IAAIhH,KAAKS,OAE5B,MAAMwG,EAAgBF,EAAaG,WACjCxF,GAAMA,EAAE1B,KAAKmB,kBAAoBH,EAAKhB,KAAKmB,kBAE7C,GAAI8F,KAAmB,EAAG,CACzBF,EAAaI,KAAKnG,GAClBgG,EAAWG,KAAK1G,E,KACV,CACNsG,EAAaK,OAAOH,EAAe,GACnCD,EAAWI,OAAOH,EAAe,E,CAGlCjH,KAAKwB,cAAgBuF,EACrB/G,KAAKS,MAAQuG,EACbhH,KAAKmG,YAAYH,KAAKgB,GACtB,M,CAGDhH,KAAKwB,cAAgBR,EACrBhB,KAAKS,MAAQA,EACbT,KAAKmG,YAAYH,KAAKvF,GAEtBT,KAAKqH,QAAQP,E,CAGN,QAAApC,CAAShB,GAChBA,EAAG4D,iBACHtH,KAAKgF,UAAUuC,OAEf,IAAKvH,KAAKwD,cAAe,CACxBxD,KAAKwD,cAAgB,I,CAGtB,M,CAGO,YAAAoB,CAAalB,GACpB,GAAI1D,KAAKwH,mBAAoB,CAC5B,M,CAGD9D,EAAG4D,gB,CAGI,QAAAxC,GACP,GAAI9E,KAAKwH,mBAAoB,CAC5B,M,CAGDxH,KAAKwD,eAAiBxD,KAAKwD,a,CAGpB,OAAA6D,CAAQI,EAAQ,OACvB,IAAKzH,KAAKwH,qBAAuBC,EAAO,CACvC,M,CAGDzH,KAAKwD,cAAgB,K,CAGd,eAAAkE,CAAgBhE,GACvB,IAAK1D,KAAKwH,mBAAoB,CAC7B,M,CAGDxH,KAAKwD,cAAgB,KAErBxD,KAAKY,MAAQ8C,EAAGiC,OAAOlF,MACvBT,KAAK2H,YAAY3B,KAAKtC,EAAGiC,OAAOlF,M,CAGzB,WAAAS,CAAY0G,EAAK5G,G,UACxB,QACCS,GAAAd,EAAAK,IAAI,MAAJA,SAAI,SAAJA,EAAO4G,MAAI,MAAAjH,SAAA,SAAAA,EACRkH,cAAU,MAAApG,SAAA,SAAAA,EACVqG,cACDC,SAAQpG,EAAA3B,KAAKY,SAAK,MAAAe,SAAA,SAAAA,EAAEmG,iBAAkB,C,CAIlC,SAAA1C,G,MACP4C,QAAQC,IAAIjI,KAAKwB,gBAAiBxB,KAAKwB,eACvC,IAAIvB,EAAQD,KAAKD,OAAOQ,KAAKS,I,QAAS,OACrCgC,EAAA,wBACC6B,QAAS,IAAM7E,KAAKwF,aAAaxE,GACjCkH,OACClI,KAAKuB,SAAWvB,KAAKwB,cAClBxB,KAAKwB,cAAc0F,WAClBxF,GACAA,EAAE1B,KAAKmB,kBACPH,EAAKhB,KAAKmB,mBACP,EACJH,EAAKhB,KAAKmB,oBACXR,EAAAX,KAAKwB,iBAAa,MAAAb,SAAA,SAAAA,EAAGX,KAAKmB,iBAE7B+D,QAASlF,KAAKuB,MAAQ,WAAa,WAElCvB,KAAKmI,UACLnF,EAAA,QAAME,MAAM,2BACXF,EAAA,YACCc,KAAK,SACLsE,IAAKpH,EAAKhB,KAAKmI,WACfE,QAASrH,EAAKhB,KAAKsI,oBAEnBtH,GAAKS,EAAAzB,KAAKuI,sBAAkB,MAAA9G,SAAA,EAAAA,EAAIzB,KAAKK,aAGvCW,EAAKhB,KAAKK,YAEW,IAGxB,IAAKL,KAAKD,OAAOc,OAAQ,CACxBZ,EAAQ,CACP+C,EAAA,KAAGE,MAAM,oDACPlD,KAAKwI,gB,CAKT,GAAIxI,KAAKyI,iBAAmBzI,KAAKD,OAAOc,OAAQ,CAC/CZ,EAAMyI,QACL1F,EAAA,wBACCkC,QAAQ,WACRL,QAAS,IAAM7E,KAAK2I,mBACpBT,OAAQlI,KAAK4I,gBAEZjI,EAAAX,KAAK6I,iBAAa,MAAAlI,SAAA,SAAAA,EAAEE,QACpBmC,EAAA,QAAME,MAAM,2BACXF,EAAA,OAAKE,MAAM,mCACVF,EAAA,UAAQkC,QAASlF,KAAK6I,iBAEtB7I,KAAK8I,eAGP9I,KAAkB,e,CAMtB,GAAIA,KAAKwH,mBAAoB,CAC5BvH,EAAMyI,QAAQ1I,KAAK+I,uB,CAGpB,OAAO9I,C,CAGA,WAAAqF,GACP,OACCtC,EAAA,wBAAsB6B,QAAS,IAAM7E,KAAKgJ,IAAIhD,QAC7ChD,EAAA,QAAME,MAAM,qDACVlD,KAAKiJ,YACNjG,EAAA,UAAQkC,QAAQ,U,CAMZ,gBAAAC,GACP,MAAMlF,EAAQ,CAAC,EAAG,EAAG,GAAGM,KAAI,IAC3ByC,EAAA,wBAAsBkG,YAAa,OAClClG,EAAA,YAAUkC,QAAQ,QAAQhC,MAAM,0BAIlC,GAAIlD,KAAKwH,mBAAoB,CAC5BvH,EAAMyI,QAAQ1I,KAAK+I,uB,CAGpB,OAAO9I,C,CAGA,oBAAA8I,GACP,OACC/F,EAAA,OAAKE,MAAM,yCACVF,EAAA,SACCE,MAAM,uCACNsB,YAAaxE,KAAKmJ,wBAClBC,QAAU1F,GAAO1D,KAAK0H,gBAAgBhE,GACtCqB,IAAMA,GAAS/E,KAAKqJ,qBAAuBtE,I,CAMvC,0BAAA9C,GACP,IAAKjC,KAAKgF,YAAchF,KAAKuF,mBAAoB,CAChD,M,CAGDvF,KAAKuF,mBAAmB+D,MAAMC,SAAW,GAAGvJ,KAAKgF,UAAUwE,YAAc,M,CAGlE,mBAAAjH,GACP,IAAKvC,KAAKuF,mBAAoB,CAC7B,M,CAGD,MAAMkE,EAAgBzJ,KAAKuF,mBAAmBmE,wBAC9C,MAAMzJ,EAAQgG,MAAM0D,KACnB3J,KAAKuF,mBAAmBqE,iBAAiB,UAG1C,IAAIC,EAAe,EAEnB,IAAK,MAAMC,KAAS7J,EAAO,CAC1B6J,EAAMC,UAAUC,OAAO,UAEvB,MAAMC,EAAYH,EAAMJ,wBACxB,GAAIO,EAAUC,MAAQT,EAAcS,MAAO,CAC1CJ,EAAMC,UAAUf,IAAI,UACpBa,G,EAIF7J,KAAKyF,cAAgBoE,EACrB,MAAMM,EAAQnK,KAAKuF,mBAAmB6E,cAAc,UACpD,IAAKD,EAAO,CACX,M,CAGD,IAAKA,EAAMJ,UAAUM,SAAS,UAAW,CACxCF,EAAMJ,UAAUf,IAAI,S,CAGrB,GAAIa,EAAe,EAAG,CACrBM,EAAMJ,UAAUC,OAAO,S,EAIjB,eAAArG,CAAgBD,GACvB,IAAKA,EAAG4G,SAAWtK,KAAKqJ,qBAAsB,CAC7C,M,CAGDrJ,KAAKqJ,qBAAqBkB,O,CAGnB,gBAAA5B,GACP3I,KAAK4I,cAAgB5I,KAAK4I,aAC1B5I,KAAKwK,gBAAgBxE,KAAKhG,KAAK4I,a"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Modal","this","_hasFooterSlot","_hasHeaderSlot","componentWillLoad","_el","querySelector","render","show","headerContent","h","name","bodyContent","footerContent","Host","class","applyBlur","onClicked","ev","_backdropClick","detail","closing","_closing","scrollLock","size","_a","header","length","showClose","onClose","close","variant","rounded","padding","backdropClickClose","closeClicked","emit","setTimeout","closed"],"sources":["src/components/organisms/modal/modal.component.tsx"],"sourcesContent":["import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tProp,\n\tState,\n} from '@stencil/core';\n\n@Component({\n\ttag: 'p-modal',\n\tshadow: true,\n})\nexport class Modal {\n\t/**\n\t * The size of the modal container\n\t */\n\t@Prop() size: 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n\t/**\n\t * The variant of the modal body\n\t */\n\t@Prop() variant: 'default' | 'table' | 'table-flush' = 'default';\n\n\t/**\n\t * The Header of the modal\n\t */\n\t@Prop() header?: string;\n\n\t/**\n\t * Wether to show the modal or not\n\t */\n\t@Prop() show: boolean = false;\n\n\t/**\n\t * Wether to apply blur to the backdrop\n\t */\n\t@Prop() applyBlur: boolean = false;\n\n\t/**\n\t * Wether to show the close button in the header\n\t */\n\t@Prop() showClose = true;\n\n\t/**\n\t * Wether to show the footer on mobile\n\t */\n\t@Prop() showMobileFooter = false;\n\n\t/**\n\t * Wether to hide the modal when the backdrop is clicked\n\t */\n\t@Prop() backdropClickClose = true;\n\n\t/**\n\t * Wether we should scroll lock the body\n\t */\n\t@Prop() scrollLock: boolean = true;\n\n\t/**\n\t * Wether the body should have padding\n\t */\n\t@Prop() padding: boolean = true;\n\n\t/**\n\t * Close click event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tcloseClicked: EventEmitter<MouseEvent>;\n\n\t/**\n\t * Closed event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tclosed: EventEmitter<null>;\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\tprivate _hasFooterSlot = false;\n\tprivate _hasHeaderSlot = false;\n\n\t@State() private _closing = false;\n\n\tcomponentWillLoad() {\n\t\tthis._hasFooterSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"footer\"]'\n\t\t);\n\t\tthis._hasHeaderSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"header\"]'\n\t\t);\n\t}\n\n\trender() {\n\t\tif (!this.show) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst headerContent = <slot name=\"header\" />;\n\t\tconst bodyContent = <slot name=\"content\" />;\n\t\tconst footerContent = <slot name=\"footer\" />;\n\n\t\treturn (\n\t\t\t<Host class=\"p-modal\">\n\t\t\t\t<p-backdrop\n\t\t\t\t\tapplyBlur={this.applyBlur}\n\t\t\t\t\tonClicked={(ev) => this._backdropClick(ev.detail)}\n\t\t\t\t\tclosing={this._closing}\n\t\t\t\t\tscrollLock={this.scrollLock}\n\t\t\t\t>\n\t\t\t\t\t<p-modal-container size={this.size} closing={this._closing}>\n\t\t\t\t\t\t{(this.header?.length || this._hasHeaderSlot) && (\n\t\t\t\t\t\t\t<p-modal-header\n\t\t\t\t\t\t\t\tshowClose={this.showClose}\n\t\t\t\t\t\t\t\tonClose={(ev) => this.close(ev.detail)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this._hasHeaderSlot\n\t\t\t\t\t\t\t\t\t? headerContent\n\t\t\t\t\t\t\t\t\t: this.header}\n\t\t\t\t\t\t\t</p-modal-header>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<p-modal-body\n\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\trounded={!this._hasFooterSlot}\n\t\t\t\t\t\t\tpadding={this.padding}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{bodyContent}\n\t\t\t\t\t\t</p-modal-body>\n\t\t\t\t\t\t{this._hasFooterSlot && (\n\t\t\t\t\t\t\t<p-modal-footer>{footerContent}</p-modal-footer>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</p-modal-container>\n\t\t\t\t</p-backdrop>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\tprivate _backdropClick(ev: MouseEvent) {\n\t\tif (!this.backdropClickClose) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.close(ev);\n\t}\n\n\tpublic close(ev: MouseEvent) {\n\t\tthis.closeClicked.emit(ev);\n\n\t\tthis._closing = true;\n\n\t\tsetTimeout(() => {\n\t\t\tthis.show = false;\n\t\t\tthis._closing = false;\n\n\t\t\tthis.closed.emit();\n\t\t}, 550);\n\t}\n}\n"],"mappings":"sEAeaA,EAAK,M,mGAwETC,KAAAC,eAAiB,MACjBD,KAAAE,eAAiB,M,UArEiB,K,aAKa,U,gCAU/B,M,eAKK,M,eAKT,K,sBAKO,M,wBAKE,K,gBAKC,K,aAKH,K,cA0BC,K,CAE5B,iBAAAC,GACCH,KAAKC,iBAAmBD,KAAKI,IAAIC,cAChC,4BAEDL,KAAKE,iBAAmBF,KAAKI,IAAIC,cAChC,2B,CAIF,MAAAC,G,MACC,IAAKN,KAAKO,KAAM,CACf,M,CAGD,MAAMC,EAAgBC,EAAA,QAAMC,KAAK,WACjC,MAAMC,EAAcF,EAAA,QAAMC,KAAK,YAC/B,MAAME,EAAgBH,EAAA,QAAMC,KAAK,WAEjC,OACCD,EAACI,EAAI,CAACC,MAAM,WACXL,EAAA,cACCM,UAAWf,KAAKe,UAChBC,UAAYC,GAAOjB,KAAKkB,eAAeD,EAAGE,QAC1CC,QAASpB,KAAKqB,SACdC,WAAYtB,KAAKsB,YAEjBb,EAAA,qBAAmBc,KAAMvB,KAAKuB,KAAMH,QAASpB,KAAKqB,aAC/CG,EAAAxB,KAAKyB,UAAM,MAAAD,SAAA,SAAAA,EAAEE,SAAU1B,KAAKE,iBAC7BO,EAAA,kBACCkB,UAAW3B,KAAK2B,UAChBC,QAAUX,GAAOjB,KAAK6B,MAAMZ,EAAGE,SAE9BnB,KAAKE,eACHM,EACAR,KAAKyB,QAGVhB,EAAA,gBACCqB,QAAS9B,KAAK8B,QACdC,SAAU/B,KAAKC,eACf+B,QAAShC,KAAKgC,SAEbrB,GAEDX,KAAKC,gBACLQ,EAAA,sBAAiBG,K,CAQf,cAAAM,CAAeD,GACtB,IAAKjB,KAAKiC,mBAAoB,CAC7B,M,CAGDjC,KAAK6B,MAAMZ,E,CAGL,KAAAY,CAAMZ,GACZjB,KAAKkC,aAAaC,KAAKlB,GAEvBjB,KAAKqB,SAAW,KAEhBe,YAAW,KACVpC,KAAKO,KAAO,MACZP,KAAKqB,SAAW,MAEhBrB,KAAKqC,OAAOF,MAAM,GAChB,I"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["drawerComponentCss","Drawer","this","_hasHeaderSlot","componentWillLoad","_el","querySelector","render","show","headerContent","h","name","bodyContent","Host","class","variant","applyBlur","onClicked","ev","_backdropClick","detail","closing","_closing","scrollLock","_a","header","length","showClose","onClose","close","backdropClickClose","closeClicked","emit","event","canClose","setTimeout","closed"],"sources":["src/components/organisms/drawer/drawer.component.scss?tag=p-drawer&encapsulation=shadow","src/components/organisms/drawer/drawer.component.tsx"],"sourcesContent":[":host {\n\t@apply block;\n}\n","import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tProp,\n\tState,\n} from '@stencil/core';\n\n@Component({\n\ttag: 'p-drawer',\n\tstyleUrl: 'drawer.component.scss',\n\tshadow: true,\n})\nexport class Drawer {\n\t/**\n\t * The Header of the drawer\n\t */\n\t@Prop() header?: string;\n\n\t/**\n\t * Wether to show the drawer or not\n\t */\n\t@Prop() show: boolean = false;\n\n\t/**\n\t * Wether to apply blur to the backdrop\n\t */\n\t@Prop() applyBlur: boolean = false;\n\n\t/**\n\t * Wether to show the close on mobile in the header\n\t */\n\t@Prop() showClose = true;\n\n\t/**\n\t * Wether to hide the drawer when the backdrop is clicked\n\t */\n\t@Prop() backdropClickClose = true;\n\n\t/**\n\t * Wether the drawer can be closed\n\t */\n\t@Prop() canClose: boolean = true;\n\n\t/**\n\t * Wether we should scroll lock the body\n\t */\n\t@Prop() scrollLock: boolean = true;\n\n\t/**\n\t * Close click event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tcloseClicked: EventEmitter<{\n\t\tevent: MouseEvent;\n\t\tcanClose: boolean;\n\t}>;\n\n\t/**\n\t * Closed event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tclosed: EventEmitter<null>;\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\tprivate _hasHeaderSlot = false;\n\n\t@State() private _closing = false;\n\n\tcomponentWillLoad() {\n\t\tthis._hasHeaderSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"header\"]'\n\t\t);\n\t}\n\n\trender() {\n\t\tif (!this.show) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst headerContent = <slot name=\"header\" />;\n\t\tconst bodyContent = <slot name=\"content\" />;\n\n\t\treturn (\n\t\t\t<Host class=\"p-drawer\">\n\t\t\t\t<p-backdrop\n\t\t\t\t\tvariant=\"drawer\"\n\t\t\t\t\tapplyBlur={this.applyBlur}\n\t\t\t\t\tonClicked={(ev) => this._backdropClick(ev.detail)}\n\t\t\t\t\tclosing={this._closing}\n\t\t\t\t\tscrollLock={this.scrollLock}\n\t\t\t\t>\n\t\t\t\t\t<p-drawer-container closing={this._closing}>\n\t\t\t\t\t\t{(this.header?.length || this._hasHeaderSlot) && (\n\t\t\t\t\t\t\t<p-drawer-header\n\t\t\t\t\t\t\t\tshow-close={this.showClose}\n\t\t\t\t\t\t\t\tonClose={(ev) => this.close(ev.detail)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this._hasHeaderSlot\n\t\t\t\t\t\t\t\t\t? headerContent\n\t\t\t\t\t\t\t\t\t: this.header}\n\t\t\t\t\t\t\t</p-drawer-header>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<p-drawer-body>{bodyContent}</p-drawer-body>\n\t\t\t\t\t</p-drawer-container>\n\t\t\t\t</p-backdrop>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\tprivate _backdropClick(ev) {\n\t\tif (!this.backdropClickClose) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.close(ev);\n\t}\n\n\tpublic close(ev: MouseEvent) {\n\t\tthis.closeClicked.emit({\n\t\t\tevent: ev,\n\t\t\tcanClose: this.canClose,\n\t\t});\n\n\t\tif (!this.canClose) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._closing = true;\n\n\t\tsetTimeout(() => {\n\t\t\tthis.show = false;\n\t\t\tthis._closing = false;\n\t\t\tthis.closed.emit();\n\t\t}, 250);\n\t}\n}\n"],"mappings":"gEAAA,MAAMA,EAAqB,gH,MCgBdC,EAAM,M,mGA4DVC,KAAAC,eAAiB,M,gCAnDD,M,eAKK,M,eAKT,K,wBAKS,K,cAKD,K,gBAKE,K,cA4BF,K,CAE5B,iBAAAC,GACCF,KAAKC,iBAAmBD,KAAKG,IAAIC,cAChC,2B,CAIF,MAAAC,G,MACC,IAAKL,KAAKM,KAAM,CACf,M,CAGD,MAAMC,EAAgBC,EAAA,QAAMC,KAAK,WACjC,MAAMC,EAAcF,EAAA,QAAMC,KAAK,YAE/B,OACCD,EAACG,EAAI,CAACC,MAAM,YACXJ,EAAA,cACCK,QAAQ,SACRC,UAAWd,KAAKc,UAChBC,UAAYC,GAAOhB,KAAKiB,eAAeD,EAAGE,QAC1CC,QAASnB,KAAKoB,SACdC,WAAYrB,KAAKqB,YAEjBb,EAAA,sBAAoBW,QAASnB,KAAKoB,aAC/BE,EAAAtB,KAAKuB,UAAM,MAAAD,SAAA,SAAAA,EAAEE,SAAUxB,KAAKC,iBAC7BO,EAAA,gCACaR,KAAKyB,UACjBC,QAAUV,GAAOhB,KAAK2B,MAAMX,EAAGE,SAE9BlB,KAAKC,eACHM,EACAP,KAAKuB,QAGVf,EAAA,qBAAgBE,K,CAOb,cAAAO,CAAeD,GACtB,IAAKhB,KAAK4B,mBAAoB,CAC7B,M,CAGD5B,KAAK2B,MAAMX,E,CAGL,KAAAW,CAAMX,GACZhB,KAAK6B,aAAaC,KAAK,CACtBC,MAAOf,EACPgB,SAAUhC,KAAKgC,WAGhB,IAAKhC,KAAKgC,SAAU,CACnB,M,CAGDhC,KAAKoB,SAAW,KAEhBa,YAAW,KACVjC,KAAKM,KAAO,MACZN,KAAKoB,SAAW,MAChBpB,KAAKkC,OAAOJ,MAAM,GAChB,I"}
|
|
@@ -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","forceBlur","selectedItem","valueArray","includesIndex","findIndex","push","splice","_onBlur","preventDefault","blur","enableAutocomplete","force","_onAutoComplete","queryChange","key","toString","toLowerCase","indexOf","console","log","active","avatarKey","src","letters","avatarLettersKey","dropdownDisplayKey","emptyStateText","enableSelectAll","unshift","_selectAllChange","_allSelected","selectAllIcon","selectAllText","_getAutoCompleteItem","add","addItemText","enableHover","autocompletePlaceholder","onInput","autocompleteInputRef","style","maxWidth","clientWidth","containerRect","getBoundingClientRect","from","querySelectorAll","amountHidden","child","classList","remove","childRect","right","extra","querySelector","contains","detail","focus","selectAllChange"],"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, false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = this._items.find((i) => {\n\t\t\tconst itemIdentifier = i?.[this._identifierKey];\n\t\t\tconst parsedItemIdentifier =\n\t\t\t\ttypeof itemIdentifier === 'string' ||\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, false);\n\t}\n\n\tprivate _selectValue(item, forceBlur = true) {\n\t\tlet value =\n\t\t\t!!this.valueKey && this.valueKey !== 'false' && item !== null\n\t\t\t\t? item?.[this.valueKey]\n\t\t\t\t: item;\n\n\t\tif (this.multi) {\n\t\t\tif (!this._selectedItem || !Array.isArray(this._selectedItem)) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t}\n\n\t\t\tif (!this.value || !Array.isArray(this.value)) {\n\t\t\t\tthis.value = [];\n\t\t\t}\n\n\t\t\tconst selectedItem = [...this._selectedItem];\n\t\t\tconst valueArray = [...this.value];\n\n\t\t\tconst includesIndex = selectedItem.findIndex(\n\t\t\t\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(forceBlur);\n\t}\n\n\tprivate _onFocus(ev) {\n\t\tev.preventDefault();\n\t\tthis._inputRef.blur();\n\n\t\tif (!this._showDropdown) {\n\t\t\tthis._showDropdown = true;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tprivate _onMouseDown(ev) {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tev.preventDefault();\n\t}\n\n\tprivate _onClick() {\n\t\tif (this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = !this._showDropdown;\n\t}\n\n\tprivate _onBlur(force = false) {\n\t\tif (!this.enableAutocomplete && !force) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onAutoComplete(ev) {\n\t\tif (!this.enableAutocomplete) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\n\t\tthis.query = ev.target.value;\n\t\tthis.queryChange.emit(ev.target.value);\n\t}\n\n\tprivate _checkvalue(key, item) {\n\t\treturn (\n\t\t\titem?.[key]\n\t\t\t\t?.toString()\n\t\t\t\t?.toLowerCase()\n\t\t\t\t.indexOf(this.query?.toLowerCase()) >= 0\n\t\t);\n\t}\n\n\tprivate _getItems() {\n\t\tconsole.log(this._selectedItem, !!this._selectedItem);\n\t\tlet 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._items.length) {\n\t\t\titems = [\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\tif (this.enableSelectAll && this._items.length) {\n\t\t\titems.unshift(\n\t\t\t\t<p-dropdown-menu-item\n\t\t\t\t\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(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAddItem() {\n\t\treturn (\n\t\t\t<p-dropdown-menu-item 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\tconst items = [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\n\t\tif (this.enableAutocomplete) {\n\t\t\titems.unshift(this._getAutoCompleteItem());\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tprivate _getAutoCompleteItem() {\n\t\treturn (\n\t\t\t<div class=\"bg-white sticky top-0 pt-2 pb-1 -mt-2\">\n\t\t\t\t<input\n\t\t\t\t\tclass=\"p-input size-small mb-2 sticky top-2\"\n\t\t\t\t\tplaceholder={this.autocompletePlaceholder}\n\t\t\t\t\tonInput={(ev) => this._onAutoComplete(ev)}\n\t\t\t\t\tref={(ref) => (this.autocompleteInputRef = ref)}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _setMultiContainerMaxWidth() {\n\t\tif (!this._inputRef || !this._multiContainerRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._multiContainerRef.style.maxWidth = `${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":["Modal","this","_hasFooterSlot","_hasHeaderSlot","componentWillLoad","_el","querySelector","render","show","headerContent","h","name","bodyContent","footerContent","Host","class","applyBlur","onClicked","ev","_backdropClick","detail","closing","_closing","scrollLock","size","_a","header","length","showClose","onClose","close","variant","rounded","padding","backdropClickClose","closeClicked","emit","setTimeout","closed"],"sources":["src/components/organisms/modal/modal.component.tsx"],"sourcesContent":["import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tProp,\n\tState,\n} from '@stencil/core';\n\n@Component({\n\ttag: 'p-modal',\n\tshadow: true,\n})\nexport class Modal {\n\t/**\n\t * The size of the modal container\n\t */\n\t@Prop() size: 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n\t/**\n\t * The variant of the modal body\n\t */\n\t@Prop() variant: 'default' | 'table' | 'table-flush' = 'default';\n\n\t/**\n\t * The Header of the modal\n\t */\n\t@Prop() header?: string;\n\n\t/**\n\t * Wether to show the modal or not\n\t */\n\t@Prop() show: boolean = false;\n\n\t/**\n\t * Wether to apply blur to the backdrop\n\t */\n\t@Prop() applyBlur: boolean = false;\n\n\t/**\n\t * Wether to show the close button in the header\n\t */\n\t@Prop() showClose = true;\n\n\t/**\n\t * Wether to show the footer on mobile\n\t */\n\t@Prop() showMobileFooter = false;\n\n\t/**\n\t * Wether to hide the modal when the backdrop is clicked\n\t */\n\t@Prop() backdropClickClose = true;\n\n\t/**\n\t * Wether we should scroll lock the body\n\t */\n\t@Prop() scrollLock: boolean = true;\n\n\t/**\n\t * Wether the body should have padding\n\t */\n\t@Prop() padding: boolean = true;\n\n\t/**\n\t * Close click event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tcloseClicked: EventEmitter<MouseEvent>;\n\n\t/**\n\t * Closed event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tclosed: EventEmitter<null>;\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\tprivate _hasFooterSlot = false;\n\tprivate _hasHeaderSlot = false;\n\n\t@State() private _closing = false;\n\n\tcomponentWillLoad() {\n\t\tthis._hasFooterSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"footer\"]'\n\t\t);\n\t\tthis._hasHeaderSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"header\"]'\n\t\t);\n\t}\n\n\trender() {\n\t\tif (!this.show) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst headerContent = <slot name=\"header\" />;\n\t\tconst bodyContent = <slot name=\"content\" />;\n\t\tconst footerContent = <slot name=\"footer\" />;\n\n\t\treturn (\n\t\t\t<Host class=\"p-modal\">\n\t\t\t\t<p-backdrop\n\t\t\t\t\tapplyBlur={this.applyBlur}\n\t\t\t\t\tonClicked={(ev) => this._backdropClick(ev.detail)}\n\t\t\t\t\tclosing={this._closing}\n\t\t\t\t\tscrollLock={this.scrollLock}\n\t\t\t\t>\n\t\t\t\t\t<p-modal-container size={this.size} closing={this._closing}>\n\t\t\t\t\t\t{(this.header?.length || this._hasHeaderSlot) && (\n\t\t\t\t\t\t\t<p-modal-header\n\t\t\t\t\t\t\t\tshowClose={this.showClose}\n\t\t\t\t\t\t\t\tonClose={(ev) => this.close(ev.detail)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this._hasHeaderSlot\n\t\t\t\t\t\t\t\t\t? headerContent\n\t\t\t\t\t\t\t\t\t: this.header}\n\t\t\t\t\t\t\t</p-modal-header>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<p-modal-body\n\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\trounded={!this._hasFooterSlot}\n\t\t\t\t\t\t\tpadding={this.padding}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{bodyContent}\n\t\t\t\t\t\t</p-modal-body>\n\t\t\t\t\t\t{this._hasFooterSlot && (\n\t\t\t\t\t\t\t<p-modal-footer>{footerContent}</p-modal-footer>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</p-modal-container>\n\t\t\t\t</p-backdrop>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\tprivate _backdropClick(ev: MouseEvent) {\n\t\tif (!this.backdropClickClose) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.close(ev);\n\t}\n\n\tpublic close(ev: MouseEvent) {\n\t\tthis.closeClicked.emit(ev);\n\n\t\tthis._closing = true;\n\n\t\tsetTimeout(() => {\n\t\t\tthis.show = false;\n\t\t\tthis._closing = false;\n\n\t\t\tthis.closed.emit();\n\t\t}, 550);\n\t}\n}\n"],"mappings":"sEAeaA,EAAK,M,mGAwETC,KAAAC,eAAiB,MACjBD,KAAAE,eAAiB,M,UArEiB,K,aAKa,U,gCAU/B,M,eAKK,M,eAKT,K,sBAKO,M,wBAKE,K,gBAKC,K,aAKH,K,cA0BC,K,CAE5B,iBAAAC,GACCH,KAAKC,iBAAmBD,KAAKI,IAAIC,cAChC,4BAEDL,KAAKE,iBAAmBF,KAAKI,IAAIC,cAChC,2B,CAIF,MAAAC,G,MACC,IAAKN,KAAKO,KAAM,CACf,M,CAGD,MAAMC,EAAgBC,EAAA,QAAMC,KAAK,WACjC,MAAMC,EAAcF,EAAA,QAAMC,KAAK,YAC/B,MAAME,EAAgBH,EAAA,QAAMC,KAAK,WAEjC,OACCD,EAACI,EAAI,CAACC,MAAM,WACXL,EAAA,cACCM,UAAWf,KAAKe,UAChBC,UAAYC,GAAOjB,KAAKkB,eAAeD,EAAGE,QAC1CC,QAASpB,KAAKqB,SACdC,WAAYtB,KAAKsB,YAEjBb,EAAA,qBAAmBc,KAAMvB,KAAKuB,KAAMH,QAASpB,KAAKqB,aAC/CG,EAAAxB,KAAKyB,UAAM,MAAAD,SAAA,SAAAA,EAAEE,SAAU1B,KAAKE,iBAC7BO,EAAA,kBACCkB,UAAW3B,KAAK2B,UAChBC,QAAUX,GAAOjB,KAAK6B,MAAMZ,EAAGE,SAE9BnB,KAAKE,eACHM,EACAR,KAAKyB,QAGVhB,EAAA,gBACCqB,QAAS9B,KAAK8B,QACdC,SAAU/B,KAAKC,eACf+B,QAAShC,KAAKgC,SAEbrB,GAEDX,KAAKC,gBACLQ,EAAA,sBAAiBG,K,CAQf,cAAAM,CAAeD,GACtB,IAAKjB,KAAKiC,mBAAoB,CAC7B,M,CAGDjC,KAAK6B,MAAMZ,E,CAGL,KAAAY,CAAMZ,GACZjB,KAAKkC,aAAaC,KAAKlB,GAEvBjB,KAAKqB,SAAW,KAEhBe,YAAW,KACVpC,KAAKO,KAAO,MACZP,KAAKqB,SAAW,MAEhBrB,KAAKqC,OAAOF,MAAM,GAChB,I"}
|