@paperless/core 1.33.0 → 1.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/{paperless/p-6a5aeb90.entry.js → build/p-13e80641.entry.js} +2 -2
  3. package/dist/build/p-13e80641.entry.js.map +1 -0
  4. package/dist/build/{p-1220940c.entry.js → p-1ddbc9f2.entry.js} +2 -2
  5. package/dist/build/p-1ddbc9f2.entry.js.map +1 -0
  6. package/dist/build/{p-b4cc7289.entry.js → p-cda044a6.entry.js} +2 -2
  7. package/dist/build/p-cda044a6.entry.js.map +1 -0
  8. package/dist/build/paperless.esm.js +1 -1
  9. package/dist/build/paperless.esm.js.map +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/p-helper_3.cjs.entry.js +6 -4
  12. package/dist/cjs/p-helper_3.cjs.entry.js.map +1 -1
  13. package/dist/cjs/p-select.cjs.entry.js +3 -3
  14. package/dist/cjs/p-select.cjs.entry.js.map +1 -1
  15. package/dist/cjs/p-tooltip.cjs.entry.js +0 -3
  16. package/dist/cjs/p-tooltip.cjs.entry.js.map +1 -1
  17. package/dist/cjs/paperless.cjs.js +1 -1
  18. package/dist/collection/components/atoms/tooltip/tooltip.component.js +0 -3
  19. package/dist/collection/components/atoms/tooltip/tooltip.component.js.map +1 -1
  20. package/dist/collection/components/molecules/input-group/input-group.component.js +43 -5
  21. package/dist/collection/components/molecules/input-group/input-group.component.js.map +1 -1
  22. package/dist/collection/components/molecules/select/select.component.js +4 -4
  23. package/dist/collection/components/molecules/select/select.component.js.map +1 -1
  24. package/dist/components/input-group.component.js +8 -4
  25. package/dist/components/input-group.component.js.map +1 -1
  26. package/dist/components/p-select.js +3 -3
  27. package/dist/components/p-select.js.map +1 -1
  28. package/dist/components/tooltip.component.js +0 -3
  29. package/dist/components/tooltip.component.js.map +1 -1
  30. package/dist/esm/loader.js +1 -1
  31. package/dist/esm/p-helper_3.entry.js +6 -4
  32. package/dist/esm/p-helper_3.entry.js.map +1 -1
  33. package/dist/esm/p-select.entry.js +3 -3
  34. package/dist/esm/p-select.entry.js.map +1 -1
  35. package/dist/esm/p-tooltip.entry.js +0 -3
  36. package/dist/esm/p-tooltip.entry.js.map +1 -1
  37. package/dist/esm/paperless.js +1 -1
  38. package/dist/index.html +1 -1
  39. package/dist/{build/p-6a5aeb90.entry.js → paperless/p-13e80641.entry.js} +2 -2
  40. package/dist/paperless/p-13e80641.entry.js.map +1 -0
  41. package/dist/paperless/{p-1220940c.entry.js → p-1ddbc9f2.entry.js} +2 -2
  42. package/dist/paperless/p-1ddbc9f2.entry.js.map +1 -0
  43. package/dist/paperless/{p-b4cc7289.entry.js → p-cda044a6.entry.js} +2 -2
  44. package/dist/paperless/p-cda044a6.entry.js.map +1 -0
  45. package/dist/paperless/paperless.esm.js +1 -1
  46. package/dist/paperless/paperless.esm.js.map +1 -1
  47. package/dist/sw.js +1 -1
  48. package/dist/sw.js.map +1 -1
  49. package/dist/types/components/molecules/input-group/input-group.component.d.ts +8 -0
  50. package/dist/types/components.d.ts +16 -0
  51. package/hydrate/index.js +12 -11
  52. package/package.json +1 -1
  53. package/dist/build/p-1220940c.entry.js.map +0 -1
  54. package/dist/build/p-6a5aeb90.entry.js.map +0 -1
  55. package/dist/build/p-b4cc7289.entry.js.map +0 -1
  56. package/dist/paperless/p-1220940c.entry.js.map +0 -1
  57. package/dist/paperless/p-6a5aeb90.entry.js.map +0 -1
  58. package/dist/paperless/p-b4cc7289.entry.js.map +0 -1
@@ -53,10 +53,18 @@ export declare class InputGroup {
53
53
  * Wether the input group is focused
54
54
  */
55
55
  focused: boolean;
56
+ /**
57
+ * Force show the error tooltip
58
+ */
59
+ forceShowTooltip: boolean;
56
60
  /**
57
61
  * The method to use when focusing the input
58
62
  */
59
63
  focusMethod: 'focus' | 'click';
64
+ /**
65
+ * The error variant to use
66
+ */
67
+ errorVariant: 'auto' | 'suffix' | 'element';
60
68
  /**
61
69
  * The host element
62
70
  */
@@ -566,6 +566,10 @@ export namespace Components {
566
566
  * The helper of the input group
567
567
  */
568
568
  "error": string;
569
+ /**
570
+ * The error variant to use
571
+ */
572
+ "errorVariant": 'auto' | 'suffix' | 'element';
569
573
  /**
570
574
  * The method to use when focusing the input
571
575
  */
@@ -574,6 +578,10 @@ export namespace Components {
574
578
  * Wether the input group is focused
575
579
  */
576
580
  "focused": boolean;
581
+ /**
582
+ * Force show the error tooltip
583
+ */
584
+ "forceShowTooltip": boolean;
577
585
  /**
578
586
  * The helper of the input group
579
587
  */
@@ -2633,6 +2641,10 @@ declare namespace LocalJSX {
2633
2641
  * The helper of the input group
2634
2642
  */
2635
2643
  "error"?: string;
2644
+ /**
2645
+ * The error variant to use
2646
+ */
2647
+ "errorVariant"?: 'auto' | 'suffix' | 'element';
2636
2648
  /**
2637
2649
  * The method to use when focusing the input
2638
2650
  */
@@ -2641,6 +2653,10 @@ declare namespace LocalJSX {
2641
2653
  * Wether the input group is focused
2642
2654
  */
2643
2655
  "focused"?: boolean;
2656
+ /**
2657
+ * Force show the error tooltip
2658
+ */
2659
+ "forceShowTooltip"?: boolean;
2644
2660
  /**
2645
2661
  * The helper of the input group
2646
2662
  */
package/hydrate/index.js CHANGED
@@ -19928,7 +19928,9 @@ 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';
19933
+ this.errorVariant = 'auto';
19932
19934
  this._forceShowTooltip = false;
19933
19935
  }
19934
19936
  componentWillRender() {
@@ -19939,12 +19941,12 @@ class InputGroup {
19939
19941
  const { hasHeaderSlot, helper, label, prefix, suffix, errorAndErrorIsNotBoolean, errorVariant, } = this._getSlotInfo();
19940
19942
  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
19943
  errorVariant === 'element' &&
19942
- this._forceShowTooltip, enableUserInput: false }, hAsync("div", { class: "content", slot: "trigger" }, (prefix ||
19944
+ (this.forceShowTooltip || this._forceShowTooltip), enableUserInput: false }, hAsync("div", { class: "content", slot: "trigger" }, (prefix ||
19943
19945
  (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
19946
  (errorAndErrorIsNotBoolean &&
19945
19947
  errorVariant === 'icon') ||
19946
19948
  (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" })))));
19949
+ 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
19950
  }
19949
19951
  handleFocusIn() {
19950
19952
  this._forceShowTooltip = true;
@@ -19954,7 +19956,7 @@ class InputGroup {
19954
19956
  }
19955
19957
  /*
19956
19958
  With this, we shall hack the system in ways no one would ever have thought.
19957
-
19959
+
19958
19960
  <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
19961
  */
19960
19962
  _setInputClasses() {
@@ -20015,7 +20017,7 @@ class InputGroup {
20015
20017
  prefix,
20016
20018
  suffix,
20017
20019
  errorAndErrorIsNotBoolean,
20018
- errorVariant: this._el.offsetWidth <= 72 ? 'element' : 'icon',
20020
+ errorVariant: this.errorVariant === 'auto' ? (this._el.offsetWidth <= 72 ? 'element' : 'icon') : this.errorVariant,
20019
20021
  };
20020
20022
  }
20021
20023
  _focusInput() {
@@ -20041,12 +20043,14 @@ class InputGroup {
20041
20043
  "error": [513],
20042
20044
  "disabled": [516],
20043
20045
  "focused": [516],
20046
+ "forceShowTooltip": [516, "force-show-tooltip"],
20044
20047
  "focusMethod": [1, "focus-method"],
20048
+ "errorVariant": [1, "error-variant"],
20045
20049
  "_forceShowTooltip": [32]
20046
20050
  },
20047
20051
  "$listeners$": [[0, "focusin", "handleFocusIn"], [0, "focusout", "handleFocusOut"]],
20048
20052
  "$lazyBundleId$": "-",
20049
- "$attrsToReflect$": [["required", "required"], ["error", "error"], ["disabled", "disabled"], ["focused", "focused"]]
20053
+ "$attrsToReflect$": [["required", "required"], ["error", "error"], ["disabled", "disabled"], ["focused", "focused"], ["forceShowTooltip", "force-show-tooltip"]]
20050
20054
  }; }
20051
20055
  }
20052
20056
 
@@ -20988,12 +20992,12 @@ class Select {
20988
20992
  }
20989
20993
  }
20990
20994
  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, focusMethod: "click" }, hAsync("input", { slot: "input", type: "text", placeholder: this.placeholder, value: this.multi && ((_a = this._displayValue) === null || _a === void 0 ? void 0 : _a.length)
20995
+ var _a, _b, _c;
20996
+ 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
20997
  ? ' '
20994
20998
  : 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
20999
  ? this._getLoadingItems()
20996
- : this._getItems(), this.showAddItem && this._getAddItem())), this.multi && ((_b = this._selectedItem) === null || _b === void 0 ? void 0 : _b.length) > 0 && (hAsync("div", { class: `multi-container size-${this.size}`, ref: (ref) => (this._multiContainerRef = ref) }, this._selectedItem.map((item) => {
21000
+ : 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
21001
  var _a;
20998
21002
  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
21003
  }), hAsync("div", { class: "extra hidden" }, "+", this._amountHidden)))));
@@ -23402,9 +23406,6 @@ class Tooltip {
23402
23406
  this._hide();
23403
23407
  }
23404
23408
  onShowChange(show) {
23405
- if (this.enableUserInput) {
23406
- return;
23407
- }
23408
23409
  if (show && !this._popover.hasAttribute('data-show')) {
23409
23410
  return this._show();
23410
23411
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paperless/core",
3
- "version": "1.33.0",
3
+ "version": "1.34.0",
4
4
  "description": "Stencil Component Starter",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -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","onShowChange","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 arrow,\n autoUpdate,\n computePosition,\n flip,\n offset,\n Placement,\n shift,\n Strategy\n} from '@floating-ui/dom';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n Watch\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 @Watch('show')\n onShowChange(show: boolean) {\n if(this.enableUserInput) {\n return;\n }\n\n\t\tif (show && !this._popover.hasAttribute('data-show')) {\n\t\t\treturn this._show();\n\t\t}\n\n\t\treturn this._hide();\n }\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":"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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","onShowChange","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 arrow,\n autoUpdate,\n computePosition,\n flip,\n offset,\n Placement,\n shift,\n Strategy\n} from '@floating-ui/dom';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n Watch\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 @Watch('show')\n onShowChange(show: boolean) {\n if(this.enableUserInput) {\n return;\n }\n\n\t\tif (show && !this._popover.hasAttribute('data-show')) {\n\t\t\treturn this._show();\n\t\t}\n\n\t\treturn this._hide();\n }\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":"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"}