@paperless/core 1.32.1 → 1.33.1
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-b7c0f157.entry.js → p-1ddbc9f2.entry.js} +2 -2
- package/dist/build/p-1ddbc9f2.entry.js.map +1 -0
- package/dist/build/{p-6a5aeb90.entry.js → p-49b06c41.entry.js} +2 -2
- package/dist/build/p-49b06c41.entry.js.map +1 -0
- package/dist/build/{p-b4cc7289.entry.js → p-cda044a6.entry.js} +2 -2
- package/dist/build/p-cda044a6.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-helper_3.cjs.entry.js +4 -3
- package/dist/cjs/p-helper_3.cjs.entry.js.map +1 -1
- package/dist/cjs/p-select.cjs.entry.js +3 -3
- package/dist/cjs/p-select.cjs.entry.js.map +1 -1
- package/dist/cjs/p-tooltip.cjs.entry.js +9 -0
- package/dist/cjs/p-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/paperless.cjs.js +1 -1
- package/dist/collection/components/atoms/tooltip/tooltip.component.js +14 -2
- package/dist/collection/components/atoms/tooltip/tooltip.component.js.map +1 -1
- package/dist/collection/components/molecules/input-group/input-group.component.js +23 -4
- package/dist/collection/components/molecules/input-group/input-group.component.js.map +1 -1
- package/dist/collection/components/molecules/select/select.component.js +4 -4
- package/dist/collection/components/molecules/select/select.component.js.map +1 -1
- package/dist/components/input-group.component.js +5 -3
- package/dist/components/input-group.component.js.map +1 -1
- package/dist/components/p-select.js +3 -3
- package/dist/components/p-select.js.map +1 -1
- package/dist/components/tooltip.component.js +12 -1
- package/dist/components/tooltip.component.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/p-helper_3.entry.js +4 -3
- package/dist/esm/p-helper_3.entry.js.map +1 -1
- package/dist/esm/p-select.entry.js +3 -3
- package/dist/esm/p-select.entry.js.map +1 -1
- package/dist/esm/p-tooltip.entry.js +9 -0
- package/dist/esm/p-tooltip.entry.js.map +1 -1
- package/dist/esm/paperless.js +1 -1
- package/dist/index.html +1 -1
- package/dist/paperless/{p-b7c0f157.entry.js → p-1ddbc9f2.entry.js} +2 -2
- package/dist/paperless/p-1ddbc9f2.entry.js.map +1 -0
- package/dist/paperless/{p-6a5aeb90.entry.js → p-49b06c41.entry.js} +2 -2
- package/dist/paperless/p-49b06c41.entry.js.map +1 -0
- package/dist/paperless/{p-b4cc7289.entry.js → p-cda044a6.entry.js} +2 -2
- package/dist/paperless/p-cda044a6.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/atoms/tooltip/tooltip.component.d.ts +1 -0
- package/dist/types/components/molecules/input-group/input-group.component.d.ts +4 -0
- package/dist/types/components.d.ts +8 -0
- package/hydrate/index.js +18 -7
- package/package.json +1 -1
- package/dist/build/p-6a5aeb90.entry.js.map +0 -1
- package/dist/build/p-b4cc7289.entry.js.map +0 -1
- package/dist/build/p-b7c0f157.entry.js.map +0 -1
- package/dist/paperless/p-6a5aeb90.entry.js.map +0 -1
- package/dist/paperless/p-b4cc7289.entry.js.map +0 -1
- package/dist/paperless/p-b7c0f157.entry.js.map +0 -1
|
@@ -574,6 +574,10 @@ export namespace Components {
|
|
|
574
574
|
* Wether the input group is focused
|
|
575
575
|
*/
|
|
576
576
|
"focused": boolean;
|
|
577
|
+
/**
|
|
578
|
+
* Force show the error tooltip
|
|
579
|
+
*/
|
|
580
|
+
"forceShowTooltip": boolean;
|
|
577
581
|
/**
|
|
578
582
|
* The helper of the input group
|
|
579
583
|
*/
|
|
@@ -2641,6 +2645,10 @@ declare namespace LocalJSX {
|
|
|
2641
2645
|
* Wether the input group is focused
|
|
2642
2646
|
*/
|
|
2643
2647
|
"focused"?: boolean;
|
|
2648
|
+
/**
|
|
2649
|
+
* Force show the error tooltip
|
|
2650
|
+
*/
|
|
2651
|
+
"forceShowTooltip"?: boolean;
|
|
2644
2652
|
/**
|
|
2645
2653
|
* The helper of the input group
|
|
2646
2654
|
*/
|
package/hydrate/index.js
CHANGED
|
@@ -19928,6 +19928,7 @@ class InputGroup {
|
|
|
19928
19928
|
this.error = undefined;
|
|
19929
19929
|
this.disabled = false;
|
|
19930
19930
|
this.focused = false;
|
|
19931
|
+
this.forceShowTooltip = false;
|
|
19931
19932
|
this.focusMethod = 'focus';
|
|
19932
19933
|
this._forceShowTooltip = false;
|
|
19933
19934
|
}
|
|
@@ -19939,12 +19940,12 @@ class InputGroup {
|
|
|
19939
19940
|
const { hasHeaderSlot, helper, label, prefix, suffix, errorAndErrorIsNotBoolean, errorVariant, } = this._getSlotInfo();
|
|
19940
19941
|
return (hAsync(Host, { class: `p-input-group ${((_a = this.error) === null || _a === void 0 ? void 0 : _a.length) && 'error'} ${this.disabled && 'disabled'} ${this.focused && 'focused'} size-${this.size}` }, hAsync("div", { class: "flex items-end justify-between" }, label && (hAsync("div", { class: "input-label", onClick: () => this._focusInput() }, label, this.required && (hAsync("span", { class: "ml-1 text-negative" }, "*")))), (helper || hasHeaderSlot) && (hAsync("div", { class: "input-header" }, hasHeaderSlot && hAsync("slot", { name: "header" }), helper && (hAsync("p-helper", { class: `flex ${hasHeaderSlot ? 'ml-2' : ''}`, placement: "top-end" }, helper))))), hAsync("p-tooltip", { class: "w-full", variant: "error-element", content: this.error, show: errorAndErrorIsNotBoolean &&
|
|
19941
19942
|
errorVariant === 'element' &&
|
|
19942
|
-
this._forceShowTooltip, enableUserInput: false }, hAsync("div", { class: "content", slot: "trigger" }, (prefix ||
|
|
19943
|
+
(this.forceShowTooltip || this._forceShowTooltip), enableUserInput: false }, hAsync("div", { class: "content", slot: "trigger" }, (prefix ||
|
|
19943
19944
|
(this.icon && this.iconPosition === 'start')) && (hAsync("div", { class: `prefix size-${this.size}`, onClick: () => this._focusInput() }, this.icon && this.iconPosition === 'start' ? (hAsync("p-icon", { class: "flex", variant: this.icon, rotate: this.iconRotate, flip: this.iconFlip })) : (prefix))), (suffix ||
|
|
19944
19945
|
(errorAndErrorIsNotBoolean &&
|
|
19945
19946
|
errorVariant === 'icon') ||
|
|
19946
19947
|
(this.icon && this.iconPosition === 'end')) && (hAsync("div", { class: `suffix size-${this.size}`, onClick: () => this._focusInput() }, errorAndErrorIsNotBoolean &&
|
|
19947
|
-
errorVariant === 'icon' ? (hAsync("p-input-error", { error: this.error, forceShowTooltip: this._forceShowTooltip })) : this.icon && this.iconPosition === 'end' ? (hAsync("p-icon", { class: "flex", variant: this.icon, rotate: this.iconRotate, flip: this.iconFlip })) : (suffix))), hAsync("slot", { name: "input" })))));
|
|
19948
|
+
errorVariant === 'icon' ? (hAsync("p-input-error", { error: this.error, forceShowTooltip: this.forceShowTooltip || this._forceShowTooltip })) : this.icon && this.iconPosition === 'end' ? (hAsync("p-icon", { class: "flex", variant: this.icon, rotate: this.iconRotate, flip: this.iconFlip })) : (suffix))), hAsync("slot", { name: "input" })))));
|
|
19948
19949
|
}
|
|
19949
19950
|
handleFocusIn() {
|
|
19950
19951
|
this._forceShowTooltip = true;
|
|
@@ -19954,7 +19955,7 @@ class InputGroup {
|
|
|
19954
19955
|
}
|
|
19955
19956
|
/*
|
|
19956
19957
|
With this, we shall hack the system in ways no one would ever have thought.
|
|
19957
|
-
|
|
19958
|
+
|
|
19958
19959
|
<div class="pl-0 pr-0 border-l-0 border-r-0 rounded-tl-none rounded-bl-none rounded-tr-none rounded-br-none"></div>
|
|
19959
19960
|
*/
|
|
19960
19961
|
_setInputClasses() {
|
|
@@ -20041,12 +20042,13 @@ class InputGroup {
|
|
|
20041
20042
|
"error": [513],
|
|
20042
20043
|
"disabled": [516],
|
|
20043
20044
|
"focused": [516],
|
|
20045
|
+
"forceShowTooltip": [516, "force-show-tooltip"],
|
|
20044
20046
|
"focusMethod": [1, "focus-method"],
|
|
20045
20047
|
"_forceShowTooltip": [32]
|
|
20046
20048
|
},
|
|
20047
20049
|
"$listeners$": [[0, "focusin", "handleFocusIn"], [0, "focusout", "handleFocusOut"]],
|
|
20048
20050
|
"$lazyBundleId$": "-",
|
|
20049
|
-
"$attrsToReflect$": [["required", "required"], ["error", "error"], ["disabled", "disabled"], ["focused", "focused"]]
|
|
20051
|
+
"$attrsToReflect$": [["required", "required"], ["error", "error"], ["disabled", "disabled"], ["focused", "focused"], ["forceShowTooltip", "force-show-tooltip"]]
|
|
20050
20052
|
}; }
|
|
20051
20053
|
}
|
|
20052
20054
|
|
|
@@ -20988,12 +20990,12 @@ class Select {
|
|
|
20988
20990
|
}
|
|
20989
20991
|
}
|
|
20990
20992
|
render() {
|
|
20991
|
-
var _a, _b;
|
|
20992
|
-
return (hAsync(Host, { class: "p-select" }, hAsync("p-dropdown", { disableTriggerClick: true, calculateWidth: true, insideClick: true, scrollable: true, show: this._showDropdown, onIsOpen: (ev) => this._onDropdownOpen(ev) }, hAsync("p-input-group", { slot: "trigger", icon: this.icon, size: this.size, prefix: this.prefix, label: this.label, helper: this.helper, required: this.required, error: this.error, disabled: this.disabled, focused: this._showDropdown,
|
|
20993
|
+
var _a, _b, _c;
|
|
20994
|
+
return (hAsync(Host, { class: "p-select" }, hAsync("p-dropdown", { disableTriggerClick: true, calculateWidth: true, insideClick: true, scrollable: true, show: this._showDropdown, onIsOpen: (ev) => this._onDropdownOpen(ev) }, hAsync("p-input-group", { slot: "trigger", icon: this.icon, size: this.size, prefix: this.prefix, label: this.label, helper: this.helper, required: this.required, error: this.error, disabled: this.disabled, focused: this._showDropdown, forceShowTooltip: ((_a = this.error) === null || _a === void 0 ? void 0 : _a.length) && this._showDropdown }, hAsync("input", { slot: "input", type: "text", placeholder: this.placeholder, value: this.multi && ((_b = this._displayValue) === null || _b === void 0 ? void 0 : _b.length)
|
|
20993
20995
|
? ' '
|
|
20994
20996
|
: this._displayValue, class: "p-input cursor-pointer read-only", onFocus: (ev) => this._onFocus(ev), onMouseDown: (ev) => this._onMouseDown(ev), onClick: () => this._onClick(), ref: (ref) => (this._inputRef = ref) }), this.showChevron && (hAsync("p-icon", { variant: "chevron", slot: "suffix" }))), hAsync("div", { slot: "items" }, this.loading
|
|
20995
20997
|
? this._getLoadingItems()
|
|
20996
|
-
: this._getItems(), this.showAddItem && this._getAddItem())), this.multi && ((
|
|
20998
|
+
: this._getItems(), this.showAddItem && this._getAddItem())), this.multi && ((_c = this._selectedItem) === null || _c === void 0 ? void 0 : _c.length) > 0 && (hAsync("div", { class: `multi-container size-${this.size}`, ref: (ref) => (this._multiContainerRef = ref) }, this._selectedItem.map((item) => {
|
|
20997
20999
|
var _a;
|
|
20998
21000
|
return (hAsync("div", { class: "item", onClick: () => this._selectValue(item) }, item[(_a = this.selectionDisplayKey) !== null && _a !== void 0 ? _a : this.displayKey], hAsync("p-icon", { variant: "negative" })));
|
|
20999
21001
|
}), hAsync("div", { class: "extra hidden" }, "+", this._amountHidden)))));
|
|
@@ -23401,6 +23403,12 @@ class Tooltip {
|
|
|
23401
23403
|
}
|
|
23402
23404
|
this._hide();
|
|
23403
23405
|
}
|
|
23406
|
+
onShowChange(show) {
|
|
23407
|
+
if (show && !this._popover.hasAttribute('data-show')) {
|
|
23408
|
+
return this._show();
|
|
23409
|
+
}
|
|
23410
|
+
return this._hide();
|
|
23411
|
+
}
|
|
23404
23412
|
_show() {
|
|
23405
23413
|
if (!this._loaded) {
|
|
23406
23414
|
return;
|
|
@@ -23475,6 +23483,9 @@ class Tooltip {
|
|
|
23475
23483
|
});
|
|
23476
23484
|
}
|
|
23477
23485
|
get _el() { return getElement(this); }
|
|
23486
|
+
static get watchers() { return {
|
|
23487
|
+
"show": ["onShowChange"]
|
|
23488
|
+
}; }
|
|
23478
23489
|
static get style() { return tooltipComponentCss; }
|
|
23479
23490
|
static get cmpMeta() { return {
|
|
23480
23491
|
"$flags$": 9,
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["helperComponentCss","Helper","render","h","Host","class","placement","this","slot","InputError","variant","content","error","show","forceShowTooltip","onIsOpen","ev","_showTooltip","detail","inputGroupComponentCss","InputGroup","_whitelistedTags","componentWillRender","_setInputClasses","hasHeaderSlot","helper","label","prefix","suffix","errorAndErrorIsNotBoolean","errorVariant","_getSlotInfo","_a","length","disabled","focused","size","onClick","_focusInput","required","name","_forceShowTooltip","enableUserInput","icon","iconPosition","rotate","iconRotate","flip","iconFlip","handleFocusIn","handleFocusOut","input","_el","querySelector","tagName","toLowerCase","indexOf","classList","contains","add","remove","hasHelperSlot","hasLabelSlot","hasPrefixSlot","hasSuffixSlot","offsetWidth","focusMethod"],"sources":["src/components/atoms/helper/helper.component.scss?tag=p-helper&encapsulation=shadow","src/components/atoms/helper/helper.component.tsx","src/components/molecules/input-error/input-error.component.tsx","src/components/molecules/input-group/input-group.component.scss?tag=p-input-group&encapsulation=shadow","src/components/molecules/input-group/input-group.component.tsx"],"sourcesContent":[":host {\n\t.helper {\n\t\t@apply inline-block cursor-pointer bg-no-repeat bg-center w-3 h-3;\n\t\tbackground-image: url(/assets/images/helper/helper.svg);\n\n\t\t&:hover {\n\t\t\tbackground-image: url(/assets/images/helper/helper-hover.svg);\n\t\t}\n\t}\n}\n","import { Placement } from '@floating-ui/dom';\nimport { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n\ttag: 'p-helper',\n\tstyleUrl: 'helper.component.scss',\n\tshadow: true,\n})\nexport class Helper {\n\t/**\n\t * The placement of the helper popover\n\t */\n\t@Prop() placement: Placement = 'top';\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-helper\">\n\t\t\t\t<p-tooltip placement={this.placement}>\n\t\t\t\t\t<div slot=\"content\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div slot=\"trigger\" class=\"helper\"></div>\n\t\t\t\t</p-tooltip>\n\t\t\t</Host>\n\t\t);\n\t}\n}\n","import { Component, h, Host, Prop, State } from '@stencil/core';\n\n@Component({\n\ttag: 'p-input-error',\n\tshadow: true,\n})\nexport class InputError {\n\t/**\n\t * The error to show\n\t */\n\t@Prop() error: string;\n\n\t/**\n\t * Wether to force show the tooltip\n\t */\n\t@Prop() forceShowTooltip = false;\n\n\t@State() private _showTooltip = false;\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-input-error\">\n\t\t\t\t<p-tooltip\n\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\tcontent={this.error}\n\t\t\t\t\tshow={this.forceShowTooltip}\n\t\t\t\t\tonIsOpen={(ev) => (this._showTooltip = ev.detail)}\n\t\t\t\t>\n\t\t\t\t\t<p-icon\n\t\t\t\t\t\tclass={`${\n\t\t\t\t\t\t\tthis._showTooltip\n\t\t\t\t\t\t\t\t? 'text-negative'\n\t\t\t\t\t\t\t\t: 'text-negative-light'\n\t\t\t\t\t\t} hover:text-negative`}\n\t\t\t\t\t\tslot=\"trigger\"\n\t\t\t\t\t\tvariant=\"explanation\"\n\t\t\t\t\t/>\n\t\t\t\t</p-tooltip>\n\t\t\t</Host>\n\t\t);\n\t}\n}\n","@import '../../../style/form/mixins';\n\n@mixin slottedItems($prefix: false) {\n\t@include inputs($prefix, true) {\n\t\t@content;\n\t}\n}\n\n:host {\n\t@apply flex w-full flex-col;\n\t@apply outline-none #{!important};\n\n\t.input-label {\n\t\t@apply mb-[2px] text-xs font-semibold uppercase tracking-wider text-storm-vague;\n\t}\n\n\t.input-header {\n\t\t@apply mb-[2px] flex items-end gap-2;\n\t}\n\n\t.content {\n\t\t@apply flex w-full;\n\n\t\t.prefix,\n\t\t.suffix {\n\t\t\t@include inputDefaultState(false);\n\t\t\t@apply box-border flex-1 text-storm;\n\t\t\t@apply h-full;\n\t\t}\n\n\t\t.prefix {\n\t\t\t@apply rounded-br-none rounded-tr-none;\n\t\t\t@apply border-r-0 #{!important};\n\t\t\t@apply order-1;\n\t\t\t@apply pr-2;\n\t\t}\n\n\t\t.suffix {\n\t\t\t@apply rounded-bl-none rounded-tl-none;\n\t\t\t@apply order-3;\n\t\t\t@apply pl-2;\n\t\t\t@apply border-l-0 #{!important};\n\t\t}\n\n\t\t@include slottedItems() {\n\t\t\t@include inputDefaultState();\n\t\t\t@apply order-2;\n\t\t}\n\n\t\t@include slottedItems('.prefix') {\n\t\t\t@apply rounded-bl-none rounded-tl-none #{!important};\n\t\t\t@apply flex-auto;\n\t\t\t@apply border-l-0 pl-0 #{!important};\n\t\t}\n\n\t\t@include slottedItems('.suffix') {\n\t\t\t@apply rounded-br-none rounded-tr-none #{!important};\n\t\t\t@apply flex-auto;\n\t\t\t@apply border-r-0 pr-0 #{!important};\n\t\t}\n\t}\n}\n\n:host(.focused),\n:host([focused]),\n:host(:focus-within),\n:host(:focus) {\n\t@apply outline-none #{!important};\n\n\t.prefix,\n\t.suffix {\n\t\t@include inputFocusState();\n\t\t@apply text-indigo;\n\t}\n\n\t@include slottedItems() {\n\t\t@include inputFocusState();\n\t}\n}\n\n:host(.error),\n:host([error]) {\n\t.prefix,\n\t.suffix {\n\t\t@include inputErrorState();\n\t\t@apply text-negative;\n\t}\n\n\t.suffix {\n\t\t@apply items-start py-[calc(0.75rem-1px)];\n\t}\n\n\t@include slottedItems() {\n\t\t@include inputErrorState();\n\n\t\t&:focus,\n\t\t&:focus-within,\n\t\t&:focus-visible,\n\t\t&.focus,\n\t\t&[active],\n\t\t&.active {\n\t\t\t@include inputErrorState();\n\t\t}\n\t}\n}\n\n:host(.disabled),\n:host([disabled]) {\n\t.prefix,\n\t.suffix {\n\t\t@include inputDisabledState();\n\t}\n\n\t@include slottedItems() {\n\t\t@include inputDisabledState();\n\t\tpointer-events: none;\n\t}\n}\n\n:host(.size-small) {\n\t@include slottedItems() {\n\t\t@include inputSizeSmall();\n\t}\n}\n\n:host(.size-small.error),\n:host(.size-small[error]) {\n\t.suffix {\n\t\t@apply py-2;\n\t}\n}\n","import {\n\tComponent,\n\tElement,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n} from '@stencil/core';\nimport { RotateOptions } from '../../../types/tailwind';\nimport { IconFlipOptions, IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n\ttag: 'p-input-group',\n\tstyleUrl: './input-group.component.scss',\n\tshadow: true,\n})\nexport class InputGroup {\n\t/**\n\t * The size of the input group\n\t */\n\t@Prop() size: 'small' | 'medium' = 'medium';\n\n\t/**\n\t * The prefix of the input group\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The suffix of the input group\n\t */\n\t@Prop() suffix: string;\n\n\t/**\n\t * Icon of the input group\n\t */\n\t@Prop() icon: IconVariant;\n\n\t/**\n\t * Icon flip\n\t */\n\t@Prop() iconFlip: IconFlipOptions;\n\n\t/**\n\t * Icon rotate\n\t */\n\t@Prop() iconRotate: RotateOptions;\n\n\t/**\n\t * Icon position\n\t */\n\t@Prop() iconPosition: 'start' | 'end' = 'start';\n\n\t/**\n\t * The label of the input group\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group\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\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * Wether the input group is focused\n\t */\n\t@Prop({ reflect: true }) focused: boolean = false;\n\n\t/**\n\t * The method to use when focusing the input\n\t */\n\t@Prop() focusMethod: 'focus' | 'click' = 'focus';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _forceShowTooltip = false;\n\n\tprivate _whitelistedTags = ['input', 'textarea'];\n\n\tcomponentWillRender() {\n\t\tthis._setInputClasses();\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\thasHeaderSlot,\n\t\t\thelper,\n\t\t\tlabel,\n\t\t\tprefix,\n\t\t\tsuffix,\n\t\t\terrorAndErrorIsNotBoolean,\n\t\t\terrorVariant,\n\t\t} = this._getSlotInfo();\n\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={`p-input-group ${this.error?.length && 'error'} ${\n\t\t\t\t\tthis.disabled && 'disabled'\n\t\t\t\t} ${this.focused && 'focused'} size-${this.size}`}\n\t\t\t>\n\t\t\t\t<div class=\"flex items-end justify-between\">\n\t\t\t\t\t{label && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"input-label\"\n\t\t\t\t\t\t\tonClick={() => this._focusInput()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t{this.required && (\n\t\t\t\t\t\t\t\t<span class=\"ml-1 text-negative\">*</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{(helper || hasHeaderSlot) && (\n\t\t\t\t\t\t<div class=\"input-header\">\n\t\t\t\t\t\t\t{hasHeaderSlot && <slot name=\"header\" />}\n\t\t\t\t\t\t\t{helper && (\n\t\t\t\t\t\t\t\t<p-helper\n\t\t\t\t\t\t\t\t\tclass={`flex ${\n\t\t\t\t\t\t\t\t\t\thasHeaderSlot ? 'ml-2' : ''\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tplacement=\"top-end\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{helper}\n\t\t\t\t\t\t\t\t</p-helper>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<p-tooltip\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\tvariant=\"error-element\"\n\t\t\t\t\tcontent={this.error}\n\t\t\t\t\tshow={\n\t\t\t\t\t\terrorAndErrorIsNotBoolean &&\n\t\t\t\t\t\terrorVariant === 'element' &&\n\t\t\t\t\t\tthis._forceShowTooltip\n\t\t\t\t\t}\n\t\t\t\t\tenableUserInput={false}\n\t\t\t\t>\n\t\t\t\t\t<div class=\"content\" slot=\"trigger\">\n\t\t\t\t\t\t{(prefix ||\n\t\t\t\t\t\t\t(this.icon && this.iconPosition === 'start')) && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass={`prefix size-${this.size}`}\n\t\t\t\t\t\t\t\tonClick={() => this._focusInput()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this.icon && this.iconPosition === 'start' ? (\n\t\t\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\t\t\tclass=\"flex\"\n\t\t\t\t\t\t\t\t\t\tvariant={this.icon}\n\t\t\t\t\t\t\t\t\t\trotate={this.iconRotate}\n\t\t\t\t\t\t\t\t\t\tflip={this.iconFlip}\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\tprefix\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(suffix ||\n\t\t\t\t\t\t\t(errorAndErrorIsNotBoolean &&\n\t\t\t\t\t\t\t\terrorVariant === 'icon') ||\n\t\t\t\t\t\t\t(this.icon && this.iconPosition === 'end')) && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass={`suffix size-${this.size}`}\n\t\t\t\t\t\t\t\tonClick={() => this._focusInput()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{errorAndErrorIsNotBoolean &&\n\t\t\t\t\t\t\t\terrorVariant === 'icon' ? (\n\t\t\t\t\t\t\t\t\t<p-input-error\n\t\t\t\t\t\t\t\t\t\terror={this.error}\n\t\t\t\t\t\t\t\t\t\tforceShowTooltip={\n\t\t\t\t\t\t\t\t\t\t\tthis._forceShowTooltip\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : this.icon && this.iconPosition === 'end' ? (\n\t\t\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\t\t\tclass=\"flex\"\n\t\t\t\t\t\t\t\t\t\tvariant={this.icon}\n\t\t\t\t\t\t\t\t\t\trotate={this.iconRotate}\n\t\t\t\t\t\t\t\t\t\tflip={this.iconFlip}\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\tsuffix\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<slot name=\"input\" />\n\t\t\t\t\t</div>\n\t\t\t\t</p-tooltip>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('focusin')\n\thandleFocusIn() {\n\t\tthis._forceShowTooltip = true;\n\t}\n\n\t@Listen('focusout')\n\thandleFocusOut() {\n\t\tthis._forceShowTooltip = false;\n\t}\n\t/* \n With this, we shall hack the system in ways no one would ever have thought.\n \n <div class=\"pl-0 pr-0 border-l-0 border-r-0 rounded-tl-none rounded-bl-none rounded-tr-none rounded-br-none\"></div>\n */\n\tprivate _setInputClasses() {\n\t\tconst input = this._el.querySelector(':scope > [slot=\"input\"]');\n\n\t\tif (!input) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tagName = input.tagName.toLowerCase();\n\t\tif (this._whitelistedTags.indexOf(tagName) === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!input.classList.contains('p-input')) {\n\t\t\tinput.classList.add('p-input');\n\t\t}\n\n\t\tconst { prefix, suffix, errorAndErrorIsNotBoolean, errorVariant } =\n\t\t\tthis._getSlotInfo();\n\n\t\tif (\n\t\t\tsuffix ||\n\t\t\t(errorAndErrorIsNotBoolean && errorVariant === 'icon') ||\n\t\t\t(this.icon && this.iconPosition === 'end')\n\t\t) {\n\t\t\tinput.classList.add(\n\t\t\t\t'border-r-0',\n\t\t\t\t'rounded-tr-none',\n\t\t\t\t'rounded-br-none',\n\t\t\t\t'pr-0'\n\t\t\t);\n\t\t} else {\n\t\t\tinput.classList.remove(\n\t\t\t\t'border-r-0',\n\t\t\t\t'rounded-tr-none',\n\t\t\t\t'rounded-br-none',\n\t\t\t\t'pr-0'\n\t\t\t);\n\t\t}\n\n\t\tif (prefix || (this.icon && this.iconPosition === 'start')) {\n\t\t\tinput.classList.add(\n\t\t\t\t'border-l-0',\n\t\t\t\t'rounded-tl-none',\n\t\t\t\t'rounded-bl-none',\n\t\t\t\t'pl-0'\n\t\t\t);\n\t\t} else {\n\t\t\tinput.classList.remove(\n\t\t\t\t'border-l-0',\n\t\t\t\t'rounded-tl-none',\n\t\t\t\t'rounded-bl-none',\n\t\t\t\t'pl-0'\n\t\t\t);\n\t\t}\n\n\t\tif (this.size === 'small' && !input.classList.contains('size-small')) {\n\t\t\tinput.classList.add('size-small');\n\t\t}\n\n\t\tif (this.size !== 'small' && input.classList.contains('size-small')) {\n\t\t\tinput.classList.remove('size-small');\n\t\t}\n\t}\n\n\tprivate _getSlotInfo() {\n\t\tconst hasHelperSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"helper\"]'\n\t\t);\n\t\tconst hasLabelSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"label\"]'\n\t\t);\n\t\tconst hasPrefixSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"prefix\"]'\n\t\t);\n\t\tconst hasSuffixSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"suffix\"]'\n\t\t);\n\t\tconst hasHeaderSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"header\"]'\n\t\t);\n\n\t\tconst helper = hasHelperSlot ? <slot name=\"helper\" /> : this.helper;\n\t\tconst label = hasLabelSlot ? <slot name=\"label\" /> : this.label;\n\t\tconst prefix = hasPrefixSlot ? <slot name=\"prefix\" /> : this.prefix;\n\t\tconst suffix = hasSuffixSlot ? <slot name=\"suffix\" /> : this.suffix;\n\n\t\tconst errorAndErrorIsNotBoolean =\n\t\t\tthis.error &&\n\t\t\ttypeof this.error === 'string' &&\n\t\t\tthis.error !== 'true';\n\n\t\treturn {\n\t\t\thasHelperSlot,\n\t\t\thasLabelSlot,\n\t\t\thasPrefixSlot,\n\t\t\thasSuffixSlot,\n\t\t\thasHeaderSlot,\n\t\t\thelper,\n\t\t\tlabel,\n\t\t\tprefix,\n\t\t\tsuffix,\n\t\t\terrorAndErrorIsNotBoolean,\n\t\t\terrorVariant: this._el.offsetWidth <= 72 ? 'element' : 'icon',\n\t\t};\n\t}\n\n\tprivate _focusInput() {\n\t\tconst input = this._el.querySelector(':scope > [slot=\"input\"]');\n\t\t(input as HTMLElement)[this.focusMethod]();\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","multiChanges","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","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\t@Watch('multi')\n\tpublic multiChanges() {\n\t\tif (this._selectedItem && !Array.isArray(this._selectedItem)) {\n\t\t\tthis._selectedItem = [];\n\t\t}\n\t}\n\n\tprivate _preselectItem() {\n\t\tlet value =\n\t\t\ttypeof this.value === 'string' && this.multi\n\t\t\t\t? JSON.parse(this.value)\n\t\t\t\t: this.value;\n\n\t\tif (this.multi) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis.value = [];\n\t\t\t\tthis.valueChange.emit(this.value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = value;\n\t\t\tif (!value.length) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._selectedItem =\n\t\t\t\t!!this.valueKey && this.valueKey !== 'false'\n\t\t\t\t\t? this._items.filter((i) =>\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\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 &&\n\t\t\t\t\t!!this._selectedItem &&\n\t\t\t\t\tArray.isArray(this._selectedItem)\n\t\t\t\t\t\t? this._selectedItem.findIndex(\n\t\t\t\t\t\t\t\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":["tooltipComponentCss","Tooltip","this","_loaded","componentShouldUpdate","_update","disconnectedCallback","_cleanup","render","h","Host","class","name","variant","role","placement","strategy","ref","el","_load","content","clickHandler","enableUserInput","_popover","hasAttribute","_show","documentClickHandler","canManuallyClose","show","_hide","mouseEnterHandler","mouseLeaveHandler","autoUpdate","_el","setAttribute","isOpen","emit","removeAttribute","popover","setTimeout","arrowEl","querySelector","computePosition","middleware","offset","flip","shift","arrow","element","padding","then","x","y","middlewareData","dataset","Object","assign","style","top","left","indexOf"],"sources":["src/components/atoms/tooltip/tooltip.component.scss?tag=p-tooltip&encapsulation=shadow","src/components/atoms/tooltip/tooltip.component.tsx"],"sourcesContent":[":host {\n\t@apply flex cursor-pointer;\n\n\t.popover-container {\n\t\t@apply relative h-0 w-0;\n\t\t.popover {\n\t\t\t@apply left-0 top-0 z-tooltip inline-block rounded bg-white px-3 py-2 text-xs font-medium opacity-0 drop-shadow-4 transition-opacity;\n\t\t\t@apply pointer-events-none;\n\t\t\twidth: max-content;\n\t\t\tmax-width: 14.5rem;\n\n\t\t\t&.variant-hover,\n\t\t\t&.variant-error,\n\t\t\t&.variant-error-element {\n\t\t\t\t@apply bg-storm py-1 text-white;\n\t\t\t}\n\n\t\t\t&.variant-error,\n\t\t\t&.variant-error-element {\n\t\t\t\t@apply bg-negative uppercase tracking-wider;\n\t\t\t}\n\n\t\t\t&[data-show] {\n\t\t\t\t@apply pointer-events-auto opacity-100;\n\t\t\t}\n\n\t\t\t.arrow,\n\t\t\t.arrow::before {\n\t\t\t\tbackground: inherit;\n\t\t\t\t@apply absolute h-2 w-2;\n\t\t\t}\n\n\t\t\t.arrow {\n\t\t\t\tvisibility: hidden;\n\n\t\t\t\t&::before {\n\t\t\t\t\t@apply visible rotate-45 transform;\n\t\t\t\t\tcontent: '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&[data-strategy='fixed'] {\n\t\t\t\t@apply fixed;\n\t\t\t}\n\n\t\t\t&[data-strategy='absolute'] {\n\t\t\t\t@apply absolute;\n\t\t\t}\n\n\t\t\t&[data-placement^='top'] > .arrow {\n\t\t\t\t@apply -bottom-1;\n\t\t\t}\n\n\t\t\t&[data-placement^='bottom'] > .arrow {\n\t\t\t\t@apply -top-1;\n\t\t\t}\n\n\t\t\t&[data-placement^='left'] > .arrow {\n\t\t\t\t@apply -right-1;\n\t\t\t}\n\n\t\t\t&[data-placement^='right'] > .arrow {\n\t\t\t\t@apply -left-1;\n\t\t\t}\n\t\t}\n\t}\n}\n","import {\n\tarrow,\n\tautoUpdate,\n\tcomputePosition,\n\tflip,\n\toffset,\n\tPlacement,\n\tshift,\n\tStrategy,\n} from '@floating-ui/dom';\nimport {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n} from '@stencil/core';\n\n@Component({\n\ttag: 'p-tooltip',\n\tstyleUrl: 'tooltip.component.scss',\n\tshadow: true,\n})\nexport class Tooltip {\n\t/**\n\t * The variant of the popover\n\t */\n\t@Prop() variant: 'hover' | 'click' | 'error' | 'error-element' = 'hover';\n\n\t/**\n\t * The content of the popover\n\t */\n\t@Prop() content: any = null;\n\n\t/**\n\t * The placement of the popover\n\t */\n\t@Prop() placement: Placement = 'top';\n\n\t/**\n\t * The strategy of the popover placement\n\t */\n\t@Prop() strategy: Strategy = 'absolute';\n\n\t/**\n\t * Wether the tooltip can be shown by user input\n\t */\n\t@Prop() enableUserInput: boolean = true;\n\n\t/**\n\t * Wether to show the popover\n\t */\n\t@Prop() show: boolean = false;\n\n\t/**\n\t * Wether to someone can manually close the popover\n\t */\n\t@Prop() canManuallyClose: boolean = true;\n\n\t/**\n\t * Open change event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tisOpen: EventEmitter<boolean>;\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\tprivate _loaded = false;\n\tprivate _popover: HTMLElement;\n\tprivate _cleanup: () => void;\n\n\tcomponentShouldUpdate() {\n\t\tthis._update();\n\t}\n\n\tdisconnectedCallback() {\n\t\tif (this._cleanup) {\n\t\t\tthis._cleanup();\n\t\t\tthis._cleanup = null;\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-popover\">\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t\t<div class=\"popover-container\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={`popover variant-${this.variant}`}\n\t\t\t\t\t\trole=\"popover\"\n\t\t\t\t\t\tdata-placement={this.placement}\n\t\t\t\t\t\tdata-strategy={this.strategy}\n\t\t\t\t\t\tref={(el) => this._load(el)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.content ? this.content : <slot name=\"content\" />}\n\t\t\t\t\t\t<div class=\"arrow\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('click', { capture: true })\n\tprotected clickHandler() {\n\t\tif (this.variant === 'hover' || !this.enableUserInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._popover.hasAttribute('data-show')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._show();\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler() {\n\t\tif (this.variant === 'hover' || !this.canManuallyClose || this.show) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._popover.hasAttribute('data-show')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._hide();\n\t}\n\n\t@Listen('mouseenter')\n\t@Listen('focus')\n\tprotected mouseEnterHandler() {\n\t\tif (this.variant !== 'hover' || !this.enableUserInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._show();\n\t}\n\n\t@Listen('mouseleave')\n\t@Listen('blur')\n\tprotected mouseLeaveHandler() {\n\t\tif (this.show || this.variant !== 'hover' || !this.enableUserInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._hide();\n\t}\n\n\tprivate _show() {\n\t\tif (!this._loaded) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._cleanup = autoUpdate(this._el, this._popover, () =>\n\t\t\tthis._update()\n\t\t);\n\t\t// Make the popover visible\n\t\tthis._popover.setAttribute('data-show', '');\n\n\t\t// Update its position\n\t\tthis.isOpen.emit(true);\n\t}\n\n\tprivate _hide() {\n\t\tif (!this._loaded) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._cleanup) {\n\t\t\tthis._cleanup();\n\t\t\tthis._cleanup = null;\n\t\t}\n\n\t\t// Hide the popover\n\t\tthis._popover.removeAttribute('data-show');\n\t\tthis.isOpen.emit(false);\n\t}\n\n\tprivate _load(popover: HTMLElement) {\n\t\tthis._popover = popover;\n\t\tif (popover) {\n\t\t\tthis._update();\n\t\t\tthis._loaded = true;\n\n\t\t\tif (this.show) {\n\t\t\t\tsetTimeout(() => this._show(), 100);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _update() {\n\t\tif (!this._popover) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst arrowEl = this._popover.querySelector('.arrow') as HTMLElement;\n\t\tif (!arrowEl) {\n\t\t\treturn;\n\t\t}\n\n\t\tcomputePosition(this._el, this._popover, {\n\t\t\tplacement:\n\t\t\t\tthis.variant === 'error' || this.variant === 'error-element'\n\t\t\t\t\t? 'top-end'\n\t\t\t\t\t: this.placement,\n\t\t\tstrategy: this.strategy,\n\n\t\t\tmiddleware: [\n\t\t\t\toffset(this.variant === 'error' ? 14 : 8),\n\t\t\t\tflip(),\n\t\t\t\tshift(),\n\t\t\t\tarrow({ element: arrowEl, padding: 8 }),\n\t\t\t],\n\t\t}).then(({ x, y, placement, middlewareData }) => {\n\t\t\tthis._popover.dataset.placement = placement;\n\t\t\tObject.assign(this._popover.style, {\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tleft: `${x}px`,\n\t\t\t});\n\n\t\t\tif (middlewareData.arrow) {\n\t\t\t\tconst { x, y } = middlewareData.arrow;\n\n\t\t\t\tObject.assign(arrowEl.style, {\n\t\t\t\t\tleft:\n\t\t\t\t\t\tthis.variant === 'error' ||\n\t\t\t\t\t\tthis.variant === 'error-element'\n\t\t\t\t\t\t\t? placement.indexOf('start') >= 0\n\t\t\t\t\t\t\t\t? '1rem'\n\t\t\t\t\t\t\t\t: 'calc(100% - 1rem)'\n\t\t\t\t\t\t\t: x != null\n\t\t\t\t\t\t\t\t? `${x}px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\ttop: y != null ? `${y}px` : '',\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["helperComponentCss","Helper","render","h","Host","class","placement","this","slot","InputError","variant","content","error","show","forceShowTooltip","onIsOpen","ev","_showTooltip","detail","inputGroupComponentCss","InputGroup","_whitelistedTags","componentWillRender","_setInputClasses","hasHeaderSlot","helper","label","prefix","suffix","errorAndErrorIsNotBoolean","errorVariant","_getSlotInfo","_a","length","disabled","focused","size","onClick","_focusInput","required","name","_forceShowTooltip","enableUserInput","icon","iconPosition","rotate","iconRotate","flip","iconFlip","handleFocusIn","handleFocusOut","input","_el","querySelector","tagName","toLowerCase","indexOf","classList","contains","add","remove","hasHelperSlot","hasLabelSlot","hasPrefixSlot","hasSuffixSlot","offsetWidth","focusMethod"],"sources":["src/components/atoms/helper/helper.component.scss?tag=p-helper&encapsulation=shadow","src/components/atoms/helper/helper.component.tsx","src/components/molecules/input-error/input-error.component.tsx","src/components/molecules/input-group/input-group.component.scss?tag=p-input-group&encapsulation=shadow","src/components/molecules/input-group/input-group.component.tsx"],"sourcesContent":[":host {\n\t.helper {\n\t\t@apply inline-block cursor-pointer bg-no-repeat bg-center w-3 h-3;\n\t\tbackground-image: url(/assets/images/helper/helper.svg);\n\n\t\t&:hover {\n\t\t\tbackground-image: url(/assets/images/helper/helper-hover.svg);\n\t\t}\n\t}\n}\n","import { Placement } from '@floating-ui/dom';\nimport { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n\ttag: 'p-helper',\n\tstyleUrl: 'helper.component.scss',\n\tshadow: true,\n})\nexport class Helper {\n\t/**\n\t * The placement of the helper popover\n\t */\n\t@Prop() placement: Placement = 'top';\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-helper\">\n\t\t\t\t<p-tooltip placement={this.placement}>\n\t\t\t\t\t<div slot=\"content\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div slot=\"trigger\" class=\"helper\"></div>\n\t\t\t\t</p-tooltip>\n\t\t\t</Host>\n\t\t);\n\t}\n}\n","import { Component, h, Host, Prop, State } from '@stencil/core';\n\n@Component({\n\ttag: 'p-input-error',\n\tshadow: true,\n})\nexport class InputError {\n\t/**\n\t * The error to show\n\t */\n\t@Prop() error: string;\n\n\t/**\n\t * Wether to force show the tooltip\n\t */\n\t@Prop() forceShowTooltip = false;\n\n\t@State() private _showTooltip = false;\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-input-error\">\n\t\t\t\t<p-tooltip\n\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\tcontent={this.error}\n\t\t\t\t\tshow={this.forceShowTooltip}\n\t\t\t\t\tonIsOpen={(ev) => (this._showTooltip = ev.detail)}\n\t\t\t\t>\n\t\t\t\t\t<p-icon\n\t\t\t\t\t\tclass={`${\n\t\t\t\t\t\t\tthis._showTooltip\n\t\t\t\t\t\t\t\t? 'text-negative'\n\t\t\t\t\t\t\t\t: 'text-negative-light'\n\t\t\t\t\t\t} hover:text-negative`}\n\t\t\t\t\t\tslot=\"trigger\"\n\t\t\t\t\t\tvariant=\"explanation\"\n\t\t\t\t\t/>\n\t\t\t\t</p-tooltip>\n\t\t\t</Host>\n\t\t);\n\t}\n}\n","@import '../../../style/form/mixins';\n\n@mixin slottedItems($prefix: false) {\n\t@include inputs($prefix, true) {\n\t\t@content;\n\t}\n}\n\n:host {\n\t@apply flex w-full flex-col;\n\t@apply outline-none #{!important};\n\n\t.input-label {\n\t\t@apply mb-[2px] text-xs font-semibold uppercase tracking-wider text-storm-vague;\n\t}\n\n\t.input-header {\n\t\t@apply mb-[2px] flex items-end gap-2;\n\t}\n\n\t.content {\n\t\t@apply flex w-full;\n\n\t\t.prefix,\n\t\t.suffix {\n\t\t\t@include inputDefaultState(false);\n\t\t\t@apply box-border flex-1 text-storm;\n\t\t\t@apply h-full;\n\t\t}\n\n\t\t.prefix {\n\t\t\t@apply rounded-br-none rounded-tr-none;\n\t\t\t@apply border-r-0 #{!important};\n\t\t\t@apply order-1;\n\t\t\t@apply pr-2;\n\t\t}\n\n\t\t.suffix {\n\t\t\t@apply rounded-bl-none rounded-tl-none;\n\t\t\t@apply order-3;\n\t\t\t@apply pl-2;\n\t\t\t@apply border-l-0 #{!important};\n\t\t}\n\n\t\t@include slottedItems() {\n\t\t\t@include inputDefaultState();\n\t\t\t@apply order-2;\n\t\t}\n\n\t\t@include slottedItems('.prefix') {\n\t\t\t@apply rounded-bl-none rounded-tl-none #{!important};\n\t\t\t@apply flex-auto;\n\t\t\t@apply border-l-0 pl-0 #{!important};\n\t\t}\n\n\t\t@include slottedItems('.suffix') {\n\t\t\t@apply rounded-br-none rounded-tr-none #{!important};\n\t\t\t@apply flex-auto;\n\t\t\t@apply border-r-0 pr-0 #{!important};\n\t\t}\n\t}\n}\n\n:host(.focused),\n:host([focused]),\n:host(:focus-within),\n:host(:focus) {\n\t@apply outline-none #{!important};\n\n\t.prefix,\n\t.suffix {\n\t\t@include inputFocusState();\n\t\t@apply text-indigo;\n\t}\n\n\t@include slottedItems() {\n\t\t@include inputFocusState();\n\t}\n}\n\n:host(.error),\n:host([error]) {\n\t.prefix,\n\t.suffix {\n\t\t@include inputErrorState();\n\t\t@apply text-negative;\n\t}\n\n\t.suffix {\n\t\t@apply items-start py-[calc(0.75rem-1px)];\n\t}\n\n\t@include slottedItems() {\n\t\t@include inputErrorState();\n\n\t\t&:focus,\n\t\t&:focus-within,\n\t\t&:focus-visible,\n\t\t&.focus,\n\t\t&[active],\n\t\t&.active {\n\t\t\t@include inputErrorState();\n\t\t}\n\t}\n}\n\n:host(.disabled),\n:host([disabled]) {\n\t.prefix,\n\t.suffix {\n\t\t@include inputDisabledState();\n\t}\n\n\t@include slottedItems() {\n\t\t@include inputDisabledState();\n\t\tpointer-events: none;\n\t}\n}\n\n:host(.size-small) {\n\t@include slottedItems() {\n\t\t@include inputSizeSmall();\n\t}\n}\n\n:host(.size-small.error),\n:host(.size-small[error]) {\n\t.suffix {\n\t\t@apply py-2;\n\t}\n}\n","import {\n\tComponent,\n\tElement,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n} from '@stencil/core';\nimport { RotateOptions } from '../../../types/tailwind';\nimport { IconFlipOptions, IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n\ttag: 'p-input-group',\n\tstyleUrl: './input-group.component.scss',\n\tshadow: true,\n})\nexport class InputGroup {\n\t/**\n\t * The size of the input group\n\t */\n\t@Prop() size: 'small' | 'medium' = 'medium';\n\n\t/**\n\t * The prefix of the input group\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The suffix of the input group\n\t */\n\t@Prop() suffix: string;\n\n\t/**\n\t * Icon of the input group\n\t */\n\t@Prop() icon: IconVariant;\n\n\t/**\n\t * Icon flip\n\t */\n\t@Prop() iconFlip: IconFlipOptions;\n\n\t/**\n\t * Icon rotate\n\t */\n\t@Prop() iconRotate: RotateOptions;\n\n\t/**\n\t * Icon position\n\t */\n\t@Prop() iconPosition: 'start' | 'end' = 'start';\n\n\t/**\n\t * The label of the input group\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group\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\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * Wether the input group is focused\n\t */\n\t@Prop({ reflect: true }) focused: boolean = false;\n\n\t/**\n\t * The method to use when focusing the input\n\t */\n\t@Prop() focusMethod: 'focus' | 'click' = 'focus';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _forceShowTooltip = false;\n\n\tprivate _whitelistedTags = ['input', 'textarea'];\n\n\tcomponentWillRender() {\n\t\tthis._setInputClasses();\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\thasHeaderSlot,\n\t\t\thelper,\n\t\t\tlabel,\n\t\t\tprefix,\n\t\t\tsuffix,\n\t\t\terrorAndErrorIsNotBoolean,\n\t\t\terrorVariant,\n\t\t} = this._getSlotInfo();\n\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={`p-input-group ${this.error?.length && 'error'} ${\n\t\t\t\t\tthis.disabled && 'disabled'\n\t\t\t\t} ${this.focused && 'focused'} size-${this.size}`}\n\t\t\t>\n\t\t\t\t<div class=\"flex items-end justify-between\">\n\t\t\t\t\t{label && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"input-label\"\n\t\t\t\t\t\t\tonClick={() => this._focusInput()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t{this.required && (\n\t\t\t\t\t\t\t\t<span class=\"ml-1 text-negative\">*</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{(helper || hasHeaderSlot) && (\n\t\t\t\t\t\t<div class=\"input-header\">\n\t\t\t\t\t\t\t{hasHeaderSlot && <slot name=\"header\" />}\n\t\t\t\t\t\t\t{helper && (\n\t\t\t\t\t\t\t\t<p-helper\n\t\t\t\t\t\t\t\t\tclass={`flex ${\n\t\t\t\t\t\t\t\t\t\thasHeaderSlot ? 'ml-2' : ''\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tplacement=\"top-end\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{helper}\n\t\t\t\t\t\t\t\t</p-helper>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<p-tooltip\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\tvariant=\"error-element\"\n\t\t\t\t\tcontent={this.error}\n\t\t\t\t\tshow={\n\t\t\t\t\t\terrorAndErrorIsNotBoolean &&\n\t\t\t\t\t\terrorVariant === 'element' &&\n\t\t\t\t\t\tthis._forceShowTooltip\n\t\t\t\t\t}\n\t\t\t\t\tenableUserInput={false}\n\t\t\t\t>\n\t\t\t\t\t<div class=\"content\" slot=\"trigger\">\n\t\t\t\t\t\t{(prefix ||\n\t\t\t\t\t\t\t(this.icon && this.iconPosition === 'start')) && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass={`prefix size-${this.size}`}\n\t\t\t\t\t\t\t\tonClick={() => this._focusInput()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this.icon && this.iconPosition === 'start' ? (\n\t\t\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\t\t\tclass=\"flex\"\n\t\t\t\t\t\t\t\t\t\tvariant={this.icon}\n\t\t\t\t\t\t\t\t\t\trotate={this.iconRotate}\n\t\t\t\t\t\t\t\t\t\tflip={this.iconFlip}\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\tprefix\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(suffix ||\n\t\t\t\t\t\t\t(errorAndErrorIsNotBoolean &&\n\t\t\t\t\t\t\t\terrorVariant === 'icon') ||\n\t\t\t\t\t\t\t(this.icon && this.iconPosition === 'end')) && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass={`suffix size-${this.size}`}\n\t\t\t\t\t\t\t\tonClick={() => this._focusInput()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{errorAndErrorIsNotBoolean &&\n\t\t\t\t\t\t\t\terrorVariant === 'icon' ? (\n\t\t\t\t\t\t\t\t\t<p-input-error\n\t\t\t\t\t\t\t\t\t\terror={this.error}\n\t\t\t\t\t\t\t\t\t\tforceShowTooltip={\n\t\t\t\t\t\t\t\t\t\t\tthis._forceShowTooltip\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : this.icon && this.iconPosition === 'end' ? (\n\t\t\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\t\t\tclass=\"flex\"\n\t\t\t\t\t\t\t\t\t\tvariant={this.icon}\n\t\t\t\t\t\t\t\t\t\trotate={this.iconRotate}\n\t\t\t\t\t\t\t\t\t\tflip={this.iconFlip}\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\tsuffix\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<slot name=\"input\" />\n\t\t\t\t\t</div>\n\t\t\t\t</p-tooltip>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('focusin')\n\thandleFocusIn() {\n\t\tthis._forceShowTooltip = true;\n\t}\n\n\t@Listen('focusout')\n\thandleFocusOut() {\n\t\tthis._forceShowTooltip = false;\n\t}\n\t/* \n With this, we shall hack the system in ways no one would ever have thought.\n \n <div class=\"pl-0 pr-0 border-l-0 border-r-0 rounded-tl-none rounded-bl-none rounded-tr-none rounded-br-none\"></div>\n */\n\tprivate _setInputClasses() {\n\t\tconst input = this._el.querySelector(':scope > [slot=\"input\"]');\n\n\t\tif (!input) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tagName = input.tagName.toLowerCase();\n\t\tif (this._whitelistedTags.indexOf(tagName) === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!input.classList.contains('p-input')) {\n\t\t\tinput.classList.add('p-input');\n\t\t}\n\n\t\tconst { prefix, suffix, errorAndErrorIsNotBoolean, errorVariant } =\n\t\t\tthis._getSlotInfo();\n\n\t\tif (\n\t\t\tsuffix ||\n\t\t\t(errorAndErrorIsNotBoolean && errorVariant === 'icon') ||\n\t\t\t(this.icon && this.iconPosition === 'end')\n\t\t) {\n\t\t\tinput.classList.add(\n\t\t\t\t'border-r-0',\n\t\t\t\t'rounded-tr-none',\n\t\t\t\t'rounded-br-none',\n\t\t\t\t'pr-0'\n\t\t\t);\n\t\t} else {\n\t\t\tinput.classList.remove(\n\t\t\t\t'border-r-0',\n\t\t\t\t'rounded-tr-none',\n\t\t\t\t'rounded-br-none',\n\t\t\t\t'pr-0'\n\t\t\t);\n\t\t}\n\n\t\tif (prefix || (this.icon && this.iconPosition === 'start')) {\n\t\t\tinput.classList.add(\n\t\t\t\t'border-l-0',\n\t\t\t\t'rounded-tl-none',\n\t\t\t\t'rounded-bl-none',\n\t\t\t\t'pl-0'\n\t\t\t);\n\t\t} else {\n\t\t\tinput.classList.remove(\n\t\t\t\t'border-l-0',\n\t\t\t\t'rounded-tl-none',\n\t\t\t\t'rounded-bl-none',\n\t\t\t\t'pl-0'\n\t\t\t);\n\t\t}\n\n\t\tif (this.size === 'small' && !input.classList.contains('size-small')) {\n\t\t\tinput.classList.add('size-small');\n\t\t}\n\n\t\tif (this.size !== 'small' && input.classList.contains('size-small')) {\n\t\t\tinput.classList.remove('size-small');\n\t\t}\n\t}\n\n\tprivate _getSlotInfo() {\n\t\tconst hasHelperSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"helper\"]'\n\t\t);\n\t\tconst hasLabelSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"label\"]'\n\t\t);\n\t\tconst hasPrefixSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"prefix\"]'\n\t\t);\n\t\tconst hasSuffixSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"suffix\"]'\n\t\t);\n\t\tconst hasHeaderSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"header\"]'\n\t\t);\n\n\t\tconst helper = hasHelperSlot ? <slot name=\"helper\" /> : this.helper;\n\t\tconst label = hasLabelSlot ? <slot name=\"label\" /> : this.label;\n\t\tconst prefix = hasPrefixSlot ? <slot name=\"prefix\" /> : this.prefix;\n\t\tconst suffix = hasSuffixSlot ? <slot name=\"suffix\" /> : this.suffix;\n\n\t\tconst errorAndErrorIsNotBoolean =\n\t\t\tthis.error &&\n\t\t\ttypeof this.error === 'string' &&\n\t\t\tthis.error !== 'true';\n\n\t\treturn {\n\t\t\thasHelperSlot,\n\t\t\thasLabelSlot,\n\t\t\thasPrefixSlot,\n\t\t\thasSuffixSlot,\n\t\t\thasHeaderSlot,\n\t\t\thelper,\n\t\t\tlabel,\n\t\t\tprefix,\n\t\t\tsuffix,\n\t\t\terrorAndErrorIsNotBoolean,\n\t\t\terrorVariant: this._el.offsetWidth <= 72 ? 'element' : 'icon',\n\t\t};\n\t}\n\n\tprivate _focusInput() {\n\t\tconst input = this._el.querySelector(':scope > [slot=\"input\"]');\n\t\t(input as HTMLElement)[this.focusMethod]();\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","multiChanges","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","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\t@Watch('multi')\n\tpublic multiChanges() {\n\t\tif (this._selectedItem && !Array.isArray(this._selectedItem)) {\n\t\t\tthis._selectedItem = [];\n\t\t}\n\t}\n\n\tprivate _preselectItem() {\n\t\tlet value =\n\t\t\ttypeof this.value === 'string' && this.multi\n\t\t\t\t? JSON.parse(this.value)\n\t\t\t\t: this.value;\n\n\t\tif (this.multi) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis.value = [];\n\t\t\t\tthis.valueChange.emit(this.value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = value;\n\t\t\tif (!value.length) {\n\t\t\t\tthis._selectedItem = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._selectedItem =\n\t\t\t\t!!this.valueKey && this.valueKey !== 'false'\n\t\t\t\t\t? this._items.filter((i) =>\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\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 &&\n\t\t\t\t\t!!this._selectedItem &&\n\t\t\t\t\tArray.isArray(this._selectedItem)\n\t\t\t\t\t\t? this._selectedItem.findIndex(\n\t\t\t\t\t\t\t\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,CAKP,YAAAqF,GACN,GAAIjG,KAAKwB,gBAAkB0E,MAAMC,QAAQnG,KAAKwB,eAAgB,CAC7DxB,KAAKwB,cAAgB,E,EAIf,cAAAqE,G,QACP,IAAIpF,SACIT,KAAKS,QAAU,UAAYT,KAAKuB,MACpCpB,KAAKC,MAAMJ,KAAKS,OAChBT,KAAKS,MAET,GAAIT,KAAKuB,MAAO,CACf,IAAK2E,MAAMC,QAAQ1F,GAAQ,CAC1BT,KAAKS,MAAQ,GACbT,KAAKoG,YAAYJ,KAAKhG,KAAKS,OAC3B,M,CAGDT,KAAKS,MAAQA,EACb,IAAKA,EAAMI,OAAQ,CAClBb,KAAKwB,cAAgB,GACrB,M,CAGDxB,KAAKwB,gBACFxB,KAAKM,UAAYN,KAAKM,WAAa,QAClCN,KAAKD,OAAOgB,QAAQW,GACpBjB,EAAM4F,SAAS3E,IAAC,MAADA,SAAC,SAADA,EAAI1B,KAAKM,aAExB,IAAIG,GACR,M,CAGD,IAAKT,KAAKwB,gBAAkBf,GAAST,KAAKsG,gBAAiB,CAC1D7F,EAAQT,KAAKD,OAAO,E,CAGrB,MAAMwG,SACE9F,IAAU,UAAYA,IAAU,KACpCA,EAAMT,KAAKmB,gBACXV,EACJ,MAAM+F,SACED,IAAe,iBAAmBA,IAAe,SACrDA,EACApG,KAAKsG,UAAUF,GAEnB,MAAMG,EAAe1G,KAAKwB,eACvBb,EAAAX,KAAKwB,iBAAa,MAAAb,SAAA,SAAAA,EAAGX,KAAKmB,gBAC1B,KACH,MAAMwF,SACED,IAAiB,iBAAmBA,IAAiB,SACzDA,EACAvG,KAAKsG,UAAUC,GAEnB,GAAI1G,KAAKwB,eAAiBmF,IAAuBH,EAAa,CAC7D,M,CAGD,MAAK/E,EAAAzB,KAAKD,UAAM,MAAA0B,SAAA,SAAAA,EAAEZ,SAAUJ,EAAO,CAClCT,KAAKwF,aAAa/E,EAAO,OACzB,M,CAGD,MAAMO,EAAOhB,KAAKD,OAAO6G,MAAMlF,IAC9B,MAAMmF,EAAiBnF,IAAC,MAADA,SAAC,SAADA,EAAI1B,KAAKmB,gBAChC,MAAM2F,SACED,IAAmB,iBACnBA,IAAmB,SACvBA,EACA1G,KAAKsG,UAAUI,GAEnB,OAAOC,IAAyBN,CAAW,IAG5CxG,KAAKwF,eAAexE,EAAOA,EAAOP,EAAO,M,CAGlC,YAAA+E,CAAaxE,EAAM+F,EAAY,MACtC,IAAItG,IACDT,KAAKM,UAAYN,KAAKM,WAAa,SAAWU,IAAS,KACtDA,IAAI,MAAJA,SAAI,SAAJA,EAAOhB,KAAKM,UACZU,EAEJ,GAAIhB,KAAKuB,MAAO,CACf,IAAKvB,KAAKwB,gBAAkB0E,MAAMC,QAAQnG,KAAKwB,eAAgB,CAC9DxB,KAAKwB,cAAgB,E,CAGtB,IAAKxB,KAAKS,QAAUyF,MAAMC,QAAQnG,KAAKS,OAAQ,CAC9CT,KAAKS,MAAQ,E,CAGd,MAAMuG,EAAe,IAAIhH,KAAKwB,eAC9B,MAAMyF,EAAa,IAAIjH,KAAKS,OAE5B,MAAMyG,EAAgBF,EAAaG,WACjCzF,GAAMA,EAAE1B,KAAKmB,kBAAoBH,EAAKhB,KAAKmB,kBAE7C,GAAI+F,KAAmB,EAAG,CACzBF,EAAaI,KAAKpG,GAClBiG,EAAWG,KAAK3G,E,KACV,CACNuG,EAAaK,OAAOH,EAAe,GACnCD,EAAWI,OAAOH,EAAe,E,CAGlClH,KAAKwB,cAAgBwF,EACrBhH,KAAKS,MAAQwG,EACbjH,KAAKoG,YAAYJ,KAAKiB,GACtB,M,CAGDjH,KAAKwB,cAAgBR,EACrBhB,KAAKS,MAAQA,EACbT,KAAKoG,YAAYJ,KAAKvF,GAEtBT,KAAKsH,QAAQP,E,CAGN,QAAArC,CAAShB,GAChBA,EAAG6D,iBACHvH,KAAKgF,UAAUwC,OAEf,IAAKxH,KAAKwD,cAAe,CACxBxD,KAAKwD,cAAgB,I,CAGtB,M,CAGO,YAAAoB,CAAalB,GACpB,GAAI1D,KAAKyH,mBAAoB,CAC5B,M,CAGD/D,EAAG6D,gB,CAGI,QAAAzC,GACP,GAAI9E,KAAKyH,mBAAoB,CAC5B,M,CAGDzH,KAAKwD,eAAiBxD,KAAKwD,a,CAGpB,OAAA8D,CAAQI,EAAQ,OACvB,GAAI1H,KAAKyH,qBAAuBC,EAAO,CACtC,M,CAGD1H,KAAKwD,cAAgB,K,CAGd,eAAAmE,CAAgBjE,GACvB,IAAK1D,KAAKyH,mBAAoB,CAC7B,M,CAGDzH,KAAKwD,cAAgB,KAErBxD,KAAKY,MAAQ8C,EAAGiC,OAAOlF,MACvBT,KAAK4H,YAAY5B,KAAKtC,EAAGiC,OAAOlF,M,CAGzB,WAAAS,CAAY2G,EAAK7G,G,UACxB,QACCS,GAAAd,EAAAK,IAAI,MAAJA,SAAI,SAAJA,EAAO6G,MAAI,MAAAlH,SAAA,SAAAA,EACRmH,cAAU,MAAArG,SAAA,SAAAA,EACVsG,cACDC,SAAQrG,EAAA3B,KAAKY,SAAK,MAAAe,SAAA,SAAAA,EAAEoG,iBAAkB,C,CAIlC,SAAA3C,G,MACP,IAAInF,EAAQD,KAAKD,OAAOQ,KAAKS,I,QAAS,OACrCgC,EAAA,wBACC6B,QAAS,IAAM7E,KAAKwF,aAAaxE,GACjCiH,OACCjI,KAAKuB,SACHvB,KAAKwB,eACP0E,MAAMC,QAAQnG,KAAKwB,eAChBxB,KAAKwB,cAAc2F,WAClBzF,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,KAAKkI,UACLlF,EAAA,QAAME,MAAM,2BACXF,EAAA,YACCc,KAAK,SACLqE,IAAKnH,EAAKhB,KAAKkI,WACfE,QAASpH,EAAKhB,KAAKqI,oBAEnBrH,GAAKS,EAAAzB,KAAKsI,sBAAkB,MAAA7G,SAAA,EAAAA,EAAIzB,KAAKK,aAGvCW,EAAKhB,KAAKK,YAEW,IAGxB,IAAKL,KAAKD,OAAOc,OAAQ,CACxBZ,EAAQ,CACP+C,EAAA,KAAGE,MAAM,oDACPlD,KAAKuI,gB,CAKT,GAAIvI,KAAKwI,iBAAmBxI,KAAKD,OAAOc,OAAQ,CAC/CZ,EAAMwI,QACLzF,EAAA,wBACCkC,QAAQ,WACRL,QAAS,IAAM7E,KAAK0I,mBACpBT,OAAQjI,KAAK2I,gBAEZhI,EAAAX,KAAK4I,iBAAa,MAAAjI,SAAA,SAAAA,EAAEE,QACpBmC,EAAA,QAAME,MAAM,2BACXF,EAAA,OAAKE,MAAM,mCACVF,EAAA,UAAQkC,QAASlF,KAAK4I,iBAEtB5I,KAAK6I,eAGP7I,KAAkB,e,CAMtB,GAAIA,KAAKyH,mBAAoB,CAC5BxH,EAAMwI,QAAQzI,KAAK8I,uB,CAGpB,OAAO7I,C,CAGA,WAAAqF,GACP,OACCtC,EAAA,wBAAsB6B,QAAS,IAAM7E,KAAK+I,IAAI/C,QAC7ChD,EAAA,QAAME,MAAM,qDACVlD,KAAKgJ,YACNhG,EAAA,UAAQkC,QAAQ,U,CAMZ,gBAAAC,GACP,MAAMlF,EAAQ,CAAC,EAAG,EAAG,GAAGM,KAAI,IAC3ByC,EAAA,wBAAsBiG,YAAa,OAClCjG,EAAA,YAAUkC,QAAQ,QAAQhC,MAAM,0BAIlC,GAAIlD,KAAKyH,mBAAoB,CAC5BxH,EAAMwI,QAAQzI,KAAK8I,uB,CAGpB,OAAO7I,C,CAGA,oBAAA6I,GACP,OACC9F,EAAA,OAAKE,MAAM,yCACVF,EAAA,SACCE,MAAM,uCACNsB,YAAaxE,KAAKkJ,wBAClBC,QAAUzF,GAAO1D,KAAK2H,gBAAgBjE,GACtCqB,IAAMA,GAAS/E,KAAKoJ,qBAAuBrE,I,CAMvC,0BAAA9C,GACP,IAAKjC,KAAKgF,YAAchF,KAAKuF,mBAAoB,CAChD,M,CAGDvF,KAAKuF,mBAAmB8D,MAAMC,SAAW,GAAGtJ,KAAKgF,UAAUuE,YAAc,M,CAGlE,mBAAAhH,GACP,IAAKvC,KAAKuF,mBAAoB,CAC7B,M,CAGD,MAAMiE,EAAgBxJ,KAAKuF,mBAAmBkE,wBAC9C,MAAMxJ,EAAQiG,MAAMwD,KACnB1J,KAAKuF,mBAAmBoE,iBAAiB,UAG1C,IAAIC,EAAe,EAEnB,IAAK,MAAMC,KAAS5J,EAAO,CAC1B4J,EAAMC,UAAUC,OAAO,UAEvB,MAAMC,EAAYH,EAAMJ,wBACxB,GAAIO,EAAUC,MAAQT,EAAcS,MAAO,CAC1CJ,EAAMC,UAAUf,IAAI,UACpBa,G,EAIF5J,KAAKyF,cAAgBmE,EACrB,MAAMM,EAAQlK,KAAKuF,mBAAmB4E,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,eAAApG,CAAgBD,GACvB,IAAKA,EAAG2G,SAAWrK,KAAKoJ,qBAAsB,CAC7C,M,CAGDpJ,KAAKoJ,qBAAqBkB,O,CAGnB,gBAAA5B,GACP1I,KAAK2I,cAAgB3I,KAAK2I,aAC1B3I,KAAKuK,gBAAgBvE,KAAKhG,KAAK2I,a"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["tooltipComponentCss","Tooltip","this","_loaded","componentShouldUpdate","_update","disconnectedCallback","_cleanup","render","h","Host","class","name","variant","role","placement","strategy","ref","el","_load","content","clickHandler","enableUserInput","_popover","hasAttribute","_show","documentClickHandler","canManuallyClose","show","_hide","mouseEnterHandler","mouseLeaveHandler","autoUpdate","_el","setAttribute","isOpen","emit","removeAttribute","popover","setTimeout","arrowEl","querySelector","computePosition","middleware","offset","flip","shift","arrow","element","padding","then","x","y","middlewareData","dataset","Object","assign","style","top","left","indexOf"],"sources":["src/components/atoms/tooltip/tooltip.component.scss?tag=p-tooltip&encapsulation=shadow","src/components/atoms/tooltip/tooltip.component.tsx"],"sourcesContent":[":host {\n\t@apply flex cursor-pointer;\n\n\t.popover-container {\n\t\t@apply relative h-0 w-0;\n\t\t.popover {\n\t\t\t@apply left-0 top-0 z-tooltip inline-block rounded bg-white px-3 py-2 text-xs font-medium opacity-0 drop-shadow-4 transition-opacity;\n\t\t\t@apply pointer-events-none;\n\t\t\twidth: max-content;\n\t\t\tmax-width: 14.5rem;\n\n\t\t\t&.variant-hover,\n\t\t\t&.variant-error,\n\t\t\t&.variant-error-element {\n\t\t\t\t@apply bg-storm py-1 text-white;\n\t\t\t}\n\n\t\t\t&.variant-error,\n\t\t\t&.variant-error-element {\n\t\t\t\t@apply bg-negative uppercase tracking-wider;\n\t\t\t}\n\n\t\t\t&[data-show] {\n\t\t\t\t@apply pointer-events-auto opacity-100;\n\t\t\t}\n\n\t\t\t.arrow,\n\t\t\t.arrow::before {\n\t\t\t\tbackground: inherit;\n\t\t\t\t@apply absolute h-2 w-2;\n\t\t\t}\n\n\t\t\t.arrow {\n\t\t\t\tvisibility: hidden;\n\n\t\t\t\t&::before {\n\t\t\t\t\t@apply visible rotate-45 transform;\n\t\t\t\t\tcontent: '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&[data-strategy='fixed'] {\n\t\t\t\t@apply fixed;\n\t\t\t}\n\n\t\t\t&[data-strategy='absolute'] {\n\t\t\t\t@apply absolute;\n\t\t\t}\n\n\t\t\t&[data-placement^='top'] > .arrow {\n\t\t\t\t@apply -bottom-1;\n\t\t\t}\n\n\t\t\t&[data-placement^='bottom'] > .arrow {\n\t\t\t\t@apply -top-1;\n\t\t\t}\n\n\t\t\t&[data-placement^='left'] > .arrow {\n\t\t\t\t@apply -right-1;\n\t\t\t}\n\n\t\t\t&[data-placement^='right'] > .arrow {\n\t\t\t\t@apply -left-1;\n\t\t\t}\n\t\t}\n\t}\n}\n","import {\n\tarrow,\n\tautoUpdate,\n\tcomputePosition,\n\tflip,\n\toffset,\n\tPlacement,\n\tshift,\n\tStrategy,\n} from '@floating-ui/dom';\nimport {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n} from '@stencil/core';\n\n@Component({\n\ttag: 'p-tooltip',\n\tstyleUrl: 'tooltip.component.scss',\n\tshadow: true,\n})\nexport class Tooltip {\n\t/**\n\t * The variant of the popover\n\t */\n\t@Prop() variant: 'hover' | 'click' | 'error' | 'error-element' = 'hover';\n\n\t/**\n\t * The content of the popover\n\t */\n\t@Prop() content: any = null;\n\n\t/**\n\t * The placement of the popover\n\t */\n\t@Prop() placement: Placement = 'top';\n\n\t/**\n\t * The strategy of the popover placement\n\t */\n\t@Prop() strategy: Strategy = 'absolute';\n\n\t/**\n\t * Wether the tooltip can be shown by user input\n\t */\n\t@Prop() enableUserInput: boolean = true;\n\n\t/**\n\t * Wether to show the popover\n\t */\n\t@Prop() show: boolean = false;\n\n\t/**\n\t * Wether to someone can manually close the popover\n\t */\n\t@Prop() canManuallyClose: boolean = true;\n\n\t/**\n\t * Open change event\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tisOpen: EventEmitter<boolean>;\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\tprivate _loaded = false;\n\tprivate _popover: HTMLElement;\n\tprivate _cleanup: () => void;\n\n\tcomponentShouldUpdate() {\n\t\tthis._update();\n\t}\n\n\tdisconnectedCallback() {\n\t\tif (this._cleanup) {\n\t\t\tthis._cleanup();\n\t\t\tthis._cleanup = null;\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-popover\">\n\t\t\t\t<slot name=\"trigger\" />\n\t\t\t\t<div class=\"popover-container\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={`popover variant-${this.variant}`}\n\t\t\t\t\t\trole=\"popover\"\n\t\t\t\t\t\tdata-placement={this.placement}\n\t\t\t\t\t\tdata-strategy={this.strategy}\n\t\t\t\t\t\tref={(el) => this._load(el)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.content ? this.content : <slot name=\"content\" />}\n\t\t\t\t\t\t<div class=\"arrow\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('click', { capture: true })\n\tprotected clickHandler() {\n\t\tif (this.variant === 'hover' || !this.enableUserInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._popover.hasAttribute('data-show')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._show();\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler() {\n\t\tif (this.variant === 'hover' || !this.canManuallyClose || this.show) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._popover.hasAttribute('data-show')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._hide();\n\t}\n\n\t@Listen('mouseenter')\n\t@Listen('focus')\n\tprotected mouseEnterHandler() {\n\t\tif (this.variant !== 'hover' || !this.enableUserInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._show();\n\t}\n\n\t@Listen('mouseleave')\n\t@Listen('blur')\n\tprotected mouseLeaveHandler() {\n\t\tif (this.show || this.variant !== 'hover' || !this.enableUserInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._hide();\n\t}\n\n\tprivate _show() {\n\t\tif (!this._loaded) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._cleanup = autoUpdate(this._el, this._popover, () =>\n\t\t\tthis._update()\n\t\t);\n\t\t// Make the popover visible\n\t\tthis._popover.setAttribute('data-show', '');\n\n\t\t// Update its position\n\t\tthis.isOpen.emit(true);\n\t}\n\n\tprivate _hide() {\n\t\tif (!this._loaded) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._cleanup) {\n\t\t\tthis._cleanup();\n\t\t\tthis._cleanup = null;\n\t\t}\n\n\t\t// Hide the popover\n\t\tthis._popover.removeAttribute('data-show');\n\t\tthis.isOpen.emit(false);\n\t}\n\n\tprivate _load(popover: HTMLElement) {\n\t\tthis._popover = popover;\n\t\tif (popover) {\n\t\t\tthis._update();\n\t\t\tthis._loaded = true;\n\n\t\t\tif (this.show) {\n\t\t\t\tsetTimeout(() => this._show(), 100);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _update() {\n\t\tif (!this._popover) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst arrowEl = this._popover.querySelector('.arrow') as HTMLElement;\n\t\tif (!arrowEl) {\n\t\t\treturn;\n\t\t}\n\n\t\tcomputePosition(this._el, this._popover, {\n\t\t\tplacement:\n\t\t\t\tthis.variant === 'error' || this.variant === 'error-element'\n\t\t\t\t\t? 'top-end'\n\t\t\t\t\t: this.placement,\n\t\t\tstrategy: this.strategy,\n\n\t\t\tmiddleware: [\n\t\t\t\toffset(this.variant === 'error' ? 14 : 8),\n\t\t\t\tflip(),\n\t\t\t\tshift(),\n\t\t\t\tarrow({ element: arrowEl, padding: 8 }),\n\t\t\t],\n\t\t}).then(({ x, y, placement, middlewareData }) => {\n\t\t\tthis._popover.dataset.placement = placement;\n\t\t\tObject.assign(this._popover.style, {\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tleft: `${x}px`,\n\t\t\t});\n\n\t\t\tif (middlewareData.arrow) {\n\t\t\t\tconst { x, y } = middlewareData.arrow;\n\n\t\t\t\tObject.assign(arrowEl.style, {\n\t\t\t\t\tleft:\n\t\t\t\t\t\tthis.variant === 'error' ||\n\t\t\t\t\t\tthis.variant === 'error-element'\n\t\t\t\t\t\t\t? placement.indexOf('start') >= 0\n\t\t\t\t\t\t\t\t? '1rem'\n\t\t\t\t\t\t\t\t: 'calc(100% - 1rem)'\n\t\t\t\t\t\t\t: x != null\n\t\t\t\t\t\t\t\t? `${x}px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\ttop: y != null ? `${y}px` : '',\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n"],"mappings":"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"}
|