@paperless/core 0.1.0-alpha.432 → 0.1.0-alpha.434

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 (151) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/build/{p-61dc7107.entry.js → p-6b7d2d41.entry.js} +2 -2
  3. package/dist/{paperless/p-6d3ed4c2.entry.js → build/p-9ee7b088.entry.js} +2 -2
  4. package/dist/build/{p-4a71b5fc.entry.js → p-a3fcf8b6.entry.js} +2 -2
  5. package/dist/build/{p-04e1e5d9.entry.js → p-a67d6f22.entry.js} +2 -2
  6. package/dist/build/p-a67d6f22.entry.js.map +1 -0
  7. package/dist/build/{p-b62839f2.entry.js → p-a89bc06c.entry.js} +2 -2
  8. package/dist/{paperless/p-c7ffc421.entry.js → build/p-b450d46f.entry.js} +2 -2
  9. package/dist/build/{p-afa305f1.entry.js → p-bd85ff72.entry.js} +2 -2
  10. package/dist/{paperless/p-79bbef3e.entry.js → build/p-befde602.entry.js} +2 -2
  11. package/dist/{paperless/p-daf831c2.entry.js → build/p-d7d7f5d0.entry.js} +2 -2
  12. package/dist/{paperless/p-806e462e.entry.js → build/p-dd2a50d0.entry.js} +2 -2
  13. package/dist/build/p-e0d8fc5b.entry.js +2 -0
  14. package/dist/build/p-e0d8fc5b.entry.js.map +1 -0
  15. package/dist/build/{p-7d9b30fb.entry.js → p-e0f41dd5.entry.js} +2 -2
  16. package/dist/build/paperless.esm.js +1 -1
  17. package/dist/build/paperless.esm.js.map +1 -1
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/cjs/p-attachment.cjs.entry.js +1 -1
  20. package/dist/cjs/p-calendar.cjs.entry.js +1 -1
  21. package/dist/cjs/p-datepicker.cjs.entry.js +1 -1
  22. package/dist/cjs/p-dropdown-menu-container.cjs.entry.js +1 -1
  23. package/dist/cjs/p-dropdown_2.cjs.entry.js +2 -2
  24. package/dist/cjs/p-helper_3.cjs.entry.js +4 -3
  25. package/dist/cjs/p-helper_3.cjs.entry.js.map +1 -1
  26. package/dist/cjs/p-illustration_6.cjs.entry.js +5 -5
  27. package/dist/cjs/p-label_3.cjs.entry.js +3 -3
  28. package/dist/cjs/p-page-size-select_3.cjs.entry.js +2 -2
  29. package/dist/cjs/p-select.cjs.entry.js +5 -4
  30. package/dist/cjs/p-select.cjs.entry.js.map +1 -1
  31. package/dist/cjs/p-table.cjs.entry.js +1 -1
  32. package/dist/cjs/p-tooltip.cjs.entry.js +1 -1
  33. package/dist/cjs/paperless.cjs.js +1 -1
  34. package/dist/collection/components/atoms/button/button.component.css +1 -1
  35. package/dist/collection/components/atoms/divider/divider.component.css +1 -1
  36. package/dist/collection/components/atoms/dropdown-menu-container/dropdown-menu-container.component.css +1 -1
  37. package/dist/collection/components/atoms/dropdown-menu-item/dropdown-menu-item.component.css +1 -1
  38. package/dist/collection/components/atoms/helper/helper.component.css +1 -1
  39. package/dist/collection/components/atoms/icon/icon.component.css +1 -1
  40. package/dist/collection/components/atoms/label/label.component.css +1 -1
  41. package/dist/collection/components/atoms/loader/loader.component.css +1 -1
  42. package/dist/collection/components/atoms/pagination-item/pagination-item.component.css +1 -1
  43. package/dist/collection/components/atoms/segment-container/segment-container.component.css +1 -1
  44. package/dist/collection/components/atoms/segment-item/segment-item.component.css +1 -1
  45. package/dist/collection/components/atoms/table-container/table-container.component.css +1 -1
  46. package/dist/collection/components/atoms/tooltip/tooltip.component.css +1 -1
  47. package/dist/collection/components/molecules/attachment/attachment.component.css +1 -1
  48. package/dist/collection/components/molecules/calendar/calendar.component.css +1 -1
  49. package/dist/collection/components/molecules/datepicker/datepicker.component.css +1 -1
  50. package/dist/collection/components/molecules/dropdown/dropdown.component.css +1 -1
  51. package/dist/collection/components/molecules/input-group/input-group.component.css +1 -1
  52. package/dist/collection/components/molecules/input-group/input-group.component.js +20 -1
  53. package/dist/collection/components/molecules/input-group/input-group.component.js.map +1 -1
  54. package/dist/collection/components/molecules/pagination/pagination.component.css +1 -1
  55. package/dist/collection/components/molecules/select/select.component.css +1 -1
  56. package/dist/collection/components/molecules/select/select.component.js +5 -4
  57. package/dist/collection/components/molecules/select/select.component.js.map +1 -1
  58. package/dist/collection/components/molecules/table-cell/table-cell.component.css +1 -1
  59. package/dist/collection/components/molecules/table-footer/table-footer.component.css +1 -1
  60. package/dist/collection/components/molecules/table-header/table-header.component.css +1 -1
  61. package/dist/collection/components/molecules/table-row/table-row.component.css +1 -1
  62. package/dist/collection/components/organisms/table/table.component.css +1 -1
  63. package/dist/components/calendar.component.js +1 -1
  64. package/dist/components/dropdown-menu-container.component.js +1 -1
  65. package/dist/components/dropdown-menu-item.component.js +1 -1
  66. package/dist/components/dropdown.component.js +1 -1
  67. package/dist/components/helper.component.js +1 -1
  68. package/dist/components/input-group.component.js +4 -2
  69. package/dist/components/input-group.component.js.map +1 -1
  70. package/dist/components/label.component.js +1 -1
  71. package/dist/components/p-attachment.js +1 -1
  72. package/dist/components/p-datepicker.js +1 -1
  73. package/dist/components/p-select.js +5 -4
  74. package/dist/components/p-select.js.map +1 -1
  75. package/dist/components/p-table.js +1 -1
  76. package/dist/components/pagination-item.component.js +1 -1
  77. package/dist/components/pagination.component.js +1 -1
  78. package/dist/components/segment-container.component.js +1 -1
  79. package/dist/components/segment-item.component.js +1 -1
  80. package/dist/components/table-cell.component.js +1 -1
  81. package/dist/components/table-container.component.js +1 -1
  82. package/dist/components/table-footer.component.js +1 -1
  83. package/dist/components/table-header.component.js +1 -1
  84. package/dist/components/table-row.component.js +1 -1
  85. package/dist/components/tooltip.component.js +1 -1
  86. package/dist/esm/loader.js +1 -1
  87. package/dist/esm/p-attachment.entry.js +1 -1
  88. package/dist/esm/p-calendar.entry.js +1 -1
  89. package/dist/esm/p-datepicker.entry.js +1 -1
  90. package/dist/esm/p-dropdown-menu-container.entry.js +1 -1
  91. package/dist/esm/p-dropdown_2.entry.js +2 -2
  92. package/dist/esm/p-helper_3.entry.js +4 -3
  93. package/dist/esm/p-helper_3.entry.js.map +1 -1
  94. package/dist/esm/p-illustration_6.entry.js +5 -5
  95. package/dist/esm/p-label_3.entry.js +3 -3
  96. package/dist/esm/p-page-size-select_3.entry.js +2 -2
  97. package/dist/esm/p-select.entry.js +5 -4
  98. package/dist/esm/p-select.entry.js.map +1 -1
  99. package/dist/esm/p-table.entry.js +1 -1
  100. package/dist/esm/p-tooltip.entry.js +1 -1
  101. package/dist/esm/paperless.js +1 -1
  102. package/dist/index.html +1 -1
  103. package/dist/paperless/{p-61dc7107.entry.js → p-6b7d2d41.entry.js} +2 -2
  104. package/dist/{build/p-6d3ed4c2.entry.js → paperless/p-9ee7b088.entry.js} +2 -2
  105. package/dist/paperless/{p-4a71b5fc.entry.js → p-a3fcf8b6.entry.js} +2 -2
  106. package/dist/paperless/{p-04e1e5d9.entry.js → p-a67d6f22.entry.js} +2 -2
  107. package/dist/paperless/p-a67d6f22.entry.js.map +1 -0
  108. package/dist/paperless/{p-b62839f2.entry.js → p-a89bc06c.entry.js} +2 -2
  109. package/dist/{build/p-c7ffc421.entry.js → paperless/p-b450d46f.entry.js} +2 -2
  110. package/dist/paperless/{p-afa305f1.entry.js → p-bd85ff72.entry.js} +2 -2
  111. package/dist/{build/p-79bbef3e.entry.js → paperless/p-befde602.entry.js} +2 -2
  112. package/dist/{build/p-daf831c2.entry.js → paperless/p-d7d7f5d0.entry.js} +2 -2
  113. package/dist/{build/p-806e462e.entry.js → paperless/p-dd2a50d0.entry.js} +2 -2
  114. package/dist/paperless/p-e0d8fc5b.entry.js +2 -0
  115. package/dist/paperless/p-e0d8fc5b.entry.js.map +1 -0
  116. package/dist/paperless/{p-7d9b30fb.entry.js → p-e0f41dd5.entry.js} +2 -2
  117. package/dist/paperless/paperless.esm.js +1 -1
  118. package/dist/paperless/paperless.esm.js.map +1 -1
  119. package/dist/sw.js +1 -1
  120. package/dist/sw.js.map +1 -1
  121. package/dist/types/components/molecules/input-group/input-group.component.d.ts +4 -0
  122. package/dist/types/components/molecules/select/select.component.d.ts +0 -1
  123. package/dist/types/components.d.ts +8 -0
  124. package/hydrate/index.js +30 -27
  125. package/package.json +1 -1
  126. package/dist/build/p-04e1e5d9.entry.js.map +0 -1
  127. package/dist/build/p-d6835e51.entry.js +0 -2
  128. package/dist/build/p-d6835e51.entry.js.map +0 -1
  129. package/dist/paperless/p-04e1e5d9.entry.js.map +0 -1
  130. package/dist/paperless/p-d6835e51.entry.js +0 -2
  131. package/dist/paperless/p-d6835e51.entry.js.map +0 -1
  132. /package/dist/build/{p-61dc7107.entry.js.map → p-6b7d2d41.entry.js.map} +0 -0
  133. /package/dist/build/{p-6d3ed4c2.entry.js.map → p-9ee7b088.entry.js.map} +0 -0
  134. /package/dist/build/{p-4a71b5fc.entry.js.map → p-a3fcf8b6.entry.js.map} +0 -0
  135. /package/dist/build/{p-b62839f2.entry.js.map → p-a89bc06c.entry.js.map} +0 -0
  136. /package/dist/build/{p-c7ffc421.entry.js.map → p-b450d46f.entry.js.map} +0 -0
  137. /package/dist/build/{p-afa305f1.entry.js.map → p-bd85ff72.entry.js.map} +0 -0
  138. /package/dist/build/{p-79bbef3e.entry.js.map → p-befde602.entry.js.map} +0 -0
  139. /package/dist/build/{p-daf831c2.entry.js.map → p-d7d7f5d0.entry.js.map} +0 -0
  140. /package/dist/build/{p-806e462e.entry.js.map → p-dd2a50d0.entry.js.map} +0 -0
  141. /package/dist/build/{p-7d9b30fb.entry.js.map → p-e0f41dd5.entry.js.map} +0 -0
  142. /package/dist/paperless/{p-61dc7107.entry.js.map → p-6b7d2d41.entry.js.map} +0 -0
  143. /package/dist/paperless/{p-6d3ed4c2.entry.js.map → p-9ee7b088.entry.js.map} +0 -0
  144. /package/dist/paperless/{p-4a71b5fc.entry.js.map → p-a3fcf8b6.entry.js.map} +0 -0
  145. /package/dist/paperless/{p-b62839f2.entry.js.map → p-a89bc06c.entry.js.map} +0 -0
  146. /package/dist/paperless/{p-c7ffc421.entry.js.map → p-b450d46f.entry.js.map} +0 -0
  147. /package/dist/paperless/{p-afa305f1.entry.js.map → p-bd85ff72.entry.js.map} +0 -0
  148. /package/dist/paperless/{p-79bbef3e.entry.js.map → p-befde602.entry.js.map} +0 -0
  149. /package/dist/paperless/{p-daf831c2.entry.js.map → p-d7d7f5d0.entry.js.map} +0 -0
  150. /package/dist/paperless/{p-806e462e.entry.js.map → p-dd2a50d0.entry.js.map} +0 -0
  151. /package/dist/paperless/{p-7d9b30fb.entry.js.map → p-e0f41dd5.entry.js.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paperless/core",
3
- "version": "0.1.0-alpha.432",
3
+ "version": "0.1.0-alpha.434",
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":["helperComponentCss","Helper","render","h","Host","class","placement","this","slot","InputError","variant","popover","error","show","forceShowTooltip","onIsOpen","ev","_showTooltip","detail","inputGroupComponentCss","InputGroup","componentWillRender","_setInputClasses","hasHeaderSlot","helper","label","prefix","suffix","errorAndErrorIsNotBoolean","_getSlotInfo","_a","length","disabled","focused","size","onClick","_focusInput","required","name","icon","iconPosition","rotate","iconRotate","flip","iconFlip","_forceShowTooltip","handleFocusIn","handleFocusOut","input","_el","querySelector","classList","contains","add","remove","hasHelperSlot","hasLabelSlot","hasPrefixSlot","hasSuffixSlot","focus"],"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 .helper {\n @apply inline-block cursor-pointer bg-no-repeat bg-center w-3 h-3;\n background-image: url(/assets/images/helper/helper.svg);\n\n &:hover {\n background-image: url(/assets/images/helper/helper-hover.svg);\n }\n }\n}\n","import { Placement } from '@floating-ui/dom';\nimport { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'p-helper',\n styleUrl: 'helper.component.scss',\n shadow: true,\n})\nexport class Helper {\n /**\n * The placement of the helper popover\n */\n @Prop() placement: Placement = 'top';\n\n render() {\n return (\n <Host class=\"p-helper\">\n <p-tooltip placement={this.placement}>\n <div slot=\"popover\">\n <slot />\n </div>\n\n <div slot=\"content\" class=\"helper\"></div>\n </p-tooltip>\n </Host>\n );\n }\n}\n","import { Component, h, Host, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'p-input-error',\n shadow: true,\n})\nexport class InputError {\n /**\n * The error to show\n */\n @Prop() error: string;\n\n /**\n * Wether to force show the tooltip\n */\n @Prop() forceShowTooltip = false;\n\n @State() private _showTooltip = false;\n\n render() {\n return (\n <Host class=\"p-input-error\">\n <p-tooltip\n variant=\"error\"\n popover={this.error}\n show={this.forceShowTooltip}\n onIsOpen={(ev) => (this._showTooltip = ev.detail)}\n >\n <p-icon\n class={`${\n this._showTooltip\n ? 'text-negative'\n : 'text-negative-light'\n } hover:text-negative`}\n slot=\"content\"\n variant=\"explanation\"\n />\n </p-tooltip>\n </Host>\n );\n }\n}\n","@import '../../../style/form/mixins';\n\n@mixin slottedItems($prefix: false) {\n @include inputs($prefix, true) {\n @content;\n }\n}\n\n:host {\n @apply flex w-full flex-col;\n @apply outline-none #{!important};\n\n .input-label {\n @apply mb-[2px] text-xs font-semibold uppercase tracking-wider text-storm-vague;\n }\n\n .input-header {\n @apply mb-[2px] flex items-end gap-2;\n }\n\n .content {\n @apply flex;\n\n .prefix,\n .suffix {\n @include inputDefaultState();\n @apply box-border flex-1 text-storm;\n }\n\n .prefix {\n @apply rounded-br-none rounded-tr-none;\n @apply border-r-0 #{!important};\n @apply order-1;\n @apply pr-2;\n }\n\n .suffix {\n @apply rounded-bl-none rounded-tl-none;\n @apply border-l-0 #{!important};\n @apply order-3;\n @apply pl-2;\n }\n\n @include slottedItems() {\n @include inputDefaultState();\n @apply order-2;\n }\n\n @include slottedItems('.prefix') {\n @apply rounded-bl-none rounded-tl-none #{!important};\n @apply flex-auto;\n @apply border-l-0 pl-0 #{!important};\n }\n\n @include slottedItems('.suffix') {\n @apply rounded-br-none rounded-tr-none #{!important};\n @apply flex-auto;\n @apply border-r-0 pr-0 #{!important};\n }\n }\n}\n\n:host(.focused),\n:host([focused]),\n:host(:focus-within),\n:host(:focus) {\n @apply outline-none #{!important};\n\n .prefix,\n .suffix {\n @include inputFocusState();\n @apply text-indigo;\n }\n\n @include slottedItems() {\n @include inputFocusState();\n }\n}\n\n:host(.error),\n:host([error]) {\n .prefix,\n .suffix {\n @include inputErrorState();\n @apply text-negative;\n }\n\n @include slottedItems() {\n @include inputErrorState();\n\n &:focus,\n &:focus-within,\n &:focus-visible,\n &.focus,\n &[active],\n &.active {\n @include inputErrorState();\n }\n }\n}\n\n:host(.disabled),\n:host([disabled]) {\n .prefix,\n .suffix {\n @include inputDisabledState();\n }\n\n @include slottedItems() {\n @include inputDisabledState();\n pointer-events: none;\n }\n}\n\n:host(.size-small) {\n @include slottedItems() {\n @include inputSizeSmall();\n }\n}\n","import {\n Component,\n Element,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from '@stencil/core';\nimport { RotateOptions } from '../../../types/tailwind';\nimport { IconFlipOptions, IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-input-group',\n styleUrl: './input-group.component.scss',\n shadow: true,\n})\nexport class InputGroup {\n /**\n * The size of the input group\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group\n */\n @Prop() prefix: string;\n\n /**\n * The suffix of the input group\n */\n @Prop() suffix: string;\n\n /**\n * Icon of the input group\n */\n @Prop() icon: IconVariant;\n\n /**\n * Icon flip\n */\n @Prop() iconFlip: IconFlipOptions;\n\n /**\n * Icon rotate\n */\n @Prop() iconRotate: RotateOptions;\n\n /**\n * Icon position\n */\n @Prop() iconPosition: 'start' | 'end' = 'start';\n\n /**\n * The label of the input group\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group\n */\n @Prop() helper: string;\n\n /**\n * Wether the field is required\n */\n @Prop({ reflect: true }) required: boolean;\n\n /**\n * The helper of the input group\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Wether the input group is focused\n */\n @Prop({ reflect: true }) focused: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _forceShowTooltip = false;\n\n componentWillRender() {\n this._setInputClasses();\n }\n\n render() {\n const {\n hasHeaderSlot,\n helper,\n label,\n prefix,\n suffix,\n errorAndErrorIsNotBoolean,\n } = this._getSlotInfo();\n\n return (\n <Host\n class={`p-input-group ${this.error?.length && 'error'} ${\n this.disabled && 'disabled'\n } ${this.focused && 'focused'} size-${this.size}`}\n >\n <div class=\"flex items-end justify-between\">\n {label && (\n <div\n class=\"input-label\"\n onClick={() => this._focusInput()}\n >\n {label}\n {this.required && (\n <span class=\"ml-1 text-negative\">*</span>\n )}\n </div>\n )}\n\n {(helper || hasHeaderSlot) && (\n <div class=\"input-header\">\n {hasHeaderSlot && <slot name=\"header\" />}\n {helper && (\n <p-helper\n class={`flex ${\n hasHeaderSlot ? 'ml-2' : ''\n }`}\n placement=\"top-end\"\n >\n {helper}\n </p-helper>\n )}\n </div>\n )}\n </div>\n <div class=\"content\">\n {(prefix ||\n (this.icon && this.iconPosition === 'start')) && (\n <div\n class={`prefix size-${this.size}`}\n onClick={() => this._focusInput()}\n >\n {this.icon && this.iconPosition === 'start' ? (\n <p-icon\n class=\"flex\"\n variant={this.icon}\n rotate={this.iconRotate}\n flip={this.iconFlip}\n />\n ) : (\n prefix\n )}\n </div>\n )}\n {(suffix ||\n errorAndErrorIsNotBoolean ||\n (this.icon && this.iconPosition === 'end')) && (\n <div\n class={`suffix size-${this.size}`}\n onClick={() => this._focusInput()}\n >\n {errorAndErrorIsNotBoolean ? (\n <p-input-error\n error={this.error}\n forceShowTooltip={this._forceShowTooltip}\n />\n ) : this.icon && this.iconPosition === 'end' ? (\n <p-icon\n class=\"flex\"\n variant={this.icon}\n rotate={this.iconRotate}\n flip={this.iconFlip}\n />\n ) : (\n suffix\n )}\n </div>\n )}\n\n <slot name=\"input\" />\n </div>\n </Host>\n );\n }\n\n @Listen('focusin')\n handleFocusIn() {\n this._forceShowTooltip = true;\n }\n\n @Listen('focusout')\n handleFocusOut() {\n this._forceShowTooltip = false;\n }\n /* \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 private _setInputClasses() {\n const input = this._el.querySelector(':scope > [slot=\"input\"]');\n\n if (!input) {\n return;\n }\n\n if (!input.classList.contains('p-input')) {\n input.classList.add('p-input');\n }\n\n const { prefix, suffix, errorAndErrorIsNotBoolean } =\n this._getSlotInfo();\n\n if (\n suffix ||\n errorAndErrorIsNotBoolean ||\n (this.icon && this.iconPosition === 'end')\n ) {\n input.classList.add(\n 'border-r-0',\n 'rounded-tr-none',\n 'rounded-br-none',\n 'pr-0'\n );\n } else {\n input.classList.remove(\n 'border-r-0',\n 'rounded-tr-none',\n 'rounded-br-none',\n 'pr-0'\n );\n }\n\n if (prefix || (this.icon && this.iconPosition === 'start')) {\n input.classList.add(\n 'border-l-0',\n 'rounded-tl-none',\n 'rounded-bl-none',\n 'pl-0'\n );\n } else {\n input.classList.remove(\n 'border-l-0',\n 'rounded-tl-none',\n 'rounded-bl-none',\n 'pl-0'\n );\n }\n\n if (this.size === 'small' && !input.classList.contains('size-small')) {\n input.classList.add('size-small');\n }\n\n if (this.size !== 'small' && input.classList.contains('size-small')) {\n input.classList.remove('size-small');\n }\n }\n\n private _getSlotInfo() {\n const hasHelperSlot = !!this._el.querySelector(\n ':scope > [slot=\"helper\"]'\n );\n const hasLabelSlot = !!this._el.querySelector(\n ':scope > [slot=\"label\"]'\n );\n const hasPrefixSlot = !!this._el.querySelector(\n ':scope > [slot=\"prefix\"]'\n );\n const hasSuffixSlot = !!this._el.querySelector(\n ':scope > [slot=\"suffix\"]'\n );\n const hasHeaderSlot = !!this._el.querySelector(\n ':scope > [slot=\"header\"]'\n );\n\n const helper = hasHelperSlot ? <slot name=\"helper\" /> : this.helper;\n const label = hasLabelSlot ? <slot name=\"label\" /> : this.label;\n const prefix = hasPrefixSlot ? <slot name=\"prefix\" /> : this.prefix;\n const suffix = hasSuffixSlot ? <slot name=\"suffix\" /> : this.suffix;\n\n const errorAndErrorIsNotBoolean =\n this.error &&\n typeof this.error === 'string' &&\n this.error !== 'true';\n\n return {\n hasHelperSlot,\n hasLabelSlot,\n hasPrefixSlot,\n hasSuffixSlot,\n hasHeaderSlot,\n helper,\n label,\n prefix,\n suffix,\n errorAndErrorIsNotBoolean,\n };\n }\n\n private _focusInput() {\n const input = this._el.querySelector(':scope > [slot=\"input\"]');\n (input as HTMLElement).focus();\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAqB,ozY,MCQdC,EAAM,M,wCAIgB,K,CAE/BC,SACI,OACIC,EAACC,EAAI,CAACC,MAAM,YACRF,EAAA,aAAWG,UAAWC,KAAKD,WACvBH,EAAA,OAAKK,KAAK,WACNL,EAAA,cAGJA,EAAA,OAAKK,KAAK,UAAUH,MAAM,Y,mBChBjCI,EAAU,M,oEASQ,M,kBAEK,K,CAEhCP,SACI,OACIC,EAACC,EAAI,CAACC,MAAM,iBACRF,EAAA,aACIO,QAAQ,QACRC,QAASJ,KAAKK,MACdC,KAAMN,KAAKO,iBACXC,SAAWC,GAAQT,KAAKU,aAAeD,EAAGE,QAE1Cf,EAAA,UACIE,MAAO,GACHE,KAAKU,aACC,gBACA,4CAEVT,KAAK,UACLE,QAAQ,iB,GCnChC,MAAMS,EAAyB,y0sD,MCiBlBC,EAAU,M,mCAIgB,S,oIA8BK,Q,sGAyBK,M,aAKD,M,uBAOP,K,CAErCC,sBACId,KAAKe,kB,CAGTpB,S,MACI,MAAMqB,cACFA,EAAaC,OACbA,EAAMC,MACNA,EAAKC,OACLA,EAAMC,OACNA,EAAMC,0BACNA,GACArB,KAAKsB,eAET,OACI1B,EAACC,EAAI,CACDC,MAAO,mBAAiByB,EAAAvB,KAAKK,SAAK,MAAAkB,SAAA,SAAAA,EAAEC,SAAU,WAC1CxB,KAAKyB,UAAY,cACjBzB,KAAK0B,SAAW,kBAAkB1B,KAAK2B,QAE3C/B,EAAA,OAAKE,MAAM,kCACNoB,GACGtB,EAAA,OACIE,MAAM,cACN8B,QAAS,IAAM5B,KAAK6B,eAEnBX,EACAlB,KAAK8B,UACFlC,EAAA,QAAME,MAAM,sBAAoB,OAK1CmB,GAAUD,IACRpB,EAAA,OAAKE,MAAM,gBACNkB,GAAiBpB,EAAA,QAAMmC,KAAK,WAC5Bd,GACGrB,EAAA,YACIE,MAAO,QACHkB,EAAgB,OAAS,KAE7BjB,UAAU,WAETkB,KAMrBrB,EAAA,OAAKE,MAAM,YACLqB,GACGnB,KAAKgC,MAAQhC,KAAKiC,eAAiB,UACpCrC,EAAA,OACIE,MAAO,eAAeE,KAAK2B,OAC3BC,QAAS,IAAM5B,KAAK6B,eAEnB7B,KAAKgC,MAAQhC,KAAKiC,eAAiB,QAChCrC,EAAA,UACIE,MAAM,OACNK,QAASH,KAAKgC,KACdE,OAAQlC,KAAKmC,WACbC,KAAMpC,KAAKqC,WACb,IAMZjB,GACEC,GACCrB,KAAKgC,MAAQhC,KAAKiC,eAAiB,QACpCrC,EAAA,OACIE,MAAO,eAAeE,KAAK2B,OAC3BC,QAAS,IAAM5B,KAAK6B,eAEnBR,EACGzB,EAAA,iBACIS,MAAOL,KAAKK,MACZE,iBAAkBP,KAAKsC,oBAE3BtC,KAAKgC,MAAQhC,KAAKiC,eAAiB,MACnCrC,EAAA,UACIE,MAAM,OACNK,QAASH,KAAKgC,KACdE,OAAQlC,KAAKmC,WACbC,KAAMpC,KAAKqC,WACb,GAOdzC,EAAA,QAAMmC,KAAK,W,CAO3BQ,gBACIvC,KAAKsC,kBAAoB,I,CAI7BE,iBACIxC,KAAKsC,kBAAoB,K,CAOrBvB,mBACJ,MAAM0B,EAAQzC,KAAK0C,IAAIC,cAAc,2BAErC,IAAKF,EAAO,CACR,M,CAGJ,IAAKA,EAAMG,UAAUC,SAAS,WAAY,CACtCJ,EAAMG,UAAUE,IAAI,U,CAGxB,MAAM3B,OAAEA,EAAMC,OAAEA,EAAMC,0BAAEA,GACpBrB,KAAKsB,eAET,GACIF,GACAC,GACCrB,KAAKgC,MAAQhC,KAAKiC,eAAiB,MACtC,CACEQ,EAAMG,UAAUE,IACZ,aACA,kBACA,kBACA,O,KAED,CACHL,EAAMG,UAAUG,OACZ,aACA,kBACA,kBACA,O,CAIR,GAAI5B,GAAWnB,KAAKgC,MAAQhC,KAAKiC,eAAiB,QAAU,CACxDQ,EAAMG,UAAUE,IACZ,aACA,kBACA,kBACA,O,KAED,CACHL,EAAMG,UAAUG,OACZ,aACA,kBACA,kBACA,O,CAIR,GAAI/C,KAAK2B,OAAS,UAAYc,EAAMG,UAAUC,SAAS,cAAe,CAClEJ,EAAMG,UAAUE,IAAI,a,CAGxB,GAAI9C,KAAK2B,OAAS,SAAWc,EAAMG,UAAUC,SAAS,cAAe,CACjEJ,EAAMG,UAAUG,OAAO,a,EAIvBzB,eACJ,MAAM0B,IAAkBhD,KAAK0C,IAAIC,cAC7B,4BAEJ,MAAMM,IAAiBjD,KAAK0C,IAAIC,cAC5B,2BAEJ,MAAMO,IAAkBlD,KAAK0C,IAAIC,cAC7B,4BAEJ,MAAMQ,IAAkBnD,KAAK0C,IAAIC,cAC7B,4BAEJ,MAAM3B,IAAkBhB,KAAK0C,IAAIC,cAC7B,4BAGJ,MAAM1B,EAAS+B,EAAgBpD,EAAA,QAAMmC,KAAK,WAAc/B,KAAKiB,OAC7D,MAAMC,EAAQ+B,EAAerD,EAAA,QAAMmC,KAAK,UAAa/B,KAAKkB,MAC1D,MAAMC,EAAS+B,EAAgBtD,EAAA,QAAMmC,KAAK,WAAc/B,KAAKmB,OAC7D,MAAMC,EAAS+B,EAAgBvD,EAAA,QAAMmC,KAAK,WAAc/B,KAAKoB,OAE7D,MAAMC,EACFrB,KAAKK,cACEL,KAAKK,QAAU,UACtBL,KAAKK,QAAU,OAEnB,MAAO,CACH2C,gBACAC,eACAC,gBACAC,gBACAnC,gBACAC,SACAC,QACAC,SACAC,SACAC,4B,CAIAQ,cACJ,MAAMY,EAAQzC,KAAK0C,IAAIC,cAAc,2BACpCF,EAAsBW,O"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as r,H as a,g as i}from"./p-ac1af618.js";import{c as s}from"./p-8a6728d5.js";const o=".visible{visibility:visible!important}.static{position:static!important}.fixed{position:fixed!important}.ml-1{margin-left:.25rem!important}.ml-2{margin-left:.5rem!important}.inline{display:inline!important}.flex{display:flex!important}.h-6{height:1.5rem!important}.w-full{width:100%!important}.-rotate-0{--tw-rotate:-0deg!important}.-rotate-0,.-rotate-135{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-135{--tw-rotate:-135deg!important}.-rotate-180{--tw-rotate:-180deg!important}.-rotate-180,.-rotate-225{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-225{--tw-rotate:-225deg!important}.-rotate-25{--tw-rotate:-25deg!important}.-rotate-25,.-rotate-270{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-270{--tw-rotate:-270deg!important}.-rotate-315{--tw-rotate:-315deg!important}.-rotate-315,.-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-45{--tw-rotate:-45deg!important}.-rotate-90{--tw-rotate:-90deg!important}.-rotate-90,.rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-0{--tw-rotate:0deg!important}.rotate-135{--tw-rotate:135deg!important}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-180{--tw-rotate:180deg!important}.rotate-225{--tw-rotate:225deg!important}.rotate-225,.rotate-25{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-25{--tw-rotate:25deg!important}.rotate-270{--tw-rotate:270deg!important}.rotate-270,.rotate-315{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-315{--tw-rotate:315deg!important}.rotate-45{--tw-rotate:45deg!important}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-90{--tw-rotate:90deg!important}.scale-x-flip{--tw-scale-x:-1!important}.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.scale-y-flip{--tw-scale-y:-1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.items-end{align-items:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.rounded{border-radius:.25rem!important}.rounded-bl-none{border-bottom-left-radius:0!important}.rounded-br-none{border-bottom-right-radius:0!important}.rounded-tl-none{border-top-left-radius:0!important}.rounded-tr-none{border-top-right-radius:0!important}.border-l-0{border-left-width:0!important}.border-r-0{border-right-width:0!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-5xl{font-size:3rem!important}.text-5xl,.text-6xl{line-height:1!important}.text-6xl{font-size:3.75rem!important}.text-base{font-size:1rem!important;line-height:1.5rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xl{font-size:1.25rem!important;line-height:1.75rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-xxs{font-size:.6875rem!important}.text-negative{color:rgb(185 30 40/var(--tw-text-opacity))!important}.text-negative,.text-negative-light{--tw-text-opacity:1!important}.text-negative-light{color:rgb(255 204 211/var(--tw-text-opacity))!important}.blur{--tw-blur:blur(8px)!important}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}*{box-sizing:border-box}p-select{display:flex;flex-direction:column;width:100%}p-select input.read-only{text-overflow:ellipsis}.hover\\:text-negative:hover{--tw-text-opacity:1!important;color:rgb(185 30 40/var(--tw-text-opacity))!important}.-rotate-0,.-rotate-135,.-rotate-180,.-rotate-225,.-rotate-25,.-rotate-270,.-rotate-315,.-rotate-45,.-rotate-90,.rotate-0,.rotate-135,.rotate-180,.rotate-225,.rotate-25,.rotate-270,.rotate-315,.rotate-45,.rotate-90,.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}";const n=class{constructor(r){t(this,r);this.queryChange=e(this,"queryChange",7);this.valueChange=e(this,"valueChange",7);this.dropdownShown=e(this,"dropdownShown",7);this.items=undefined;this.icon=undefined;this.query=undefined;this.placeholder=undefined;this.autocompletePlaceholder=undefined;this.value=undefined;this.displayKey="text";this.valueKey=undefined;this.identifierKey=undefined;this.queryKey=undefined;this.autoSelectFirst=true;this.showChevron=true;this.maxDisplayedItems=10;this.enableAutocomplete=true;this.keepQuery=true;this.asyncFilter=false;this.loading=false;this.size="medium";this.prefix=undefined;this.label=undefined;this.helper=undefined;this.error=undefined;this.disabled=false;this._showDropdown=false;this._selectedItem=null;this._isAutoCompleting=false}get _items(){var t,e;if(!this.items||this.loading){return[]}let r=typeof this.items==="string"?JSON.parse(this.items):this.items;if(typeof(r===null||r===void 0?void 0:r[0])==="string"){this.displayKey="text";this.valueKey="value";r=r.map((t=>({value:t,text:t})))}if(this._isAutoCompleting&&((t=this.query)===null||t===void 0?void 0:t.length)&&this.query!==((e=this._selectedItem)===null||e===void 0?void 0:e[this.displayKey])&&!this.asyncFilter){r=r.filter((t=>{if(this.queryKey){return this._checkvalue(this.queryKey,t)}return this._checkvalue(this._identifierKey,t)||this._checkvalue(this.displayKey,t)}))}return r===null||r===void 0?void 0:r.slice(0,this.maxDisplayedItems)}get _displayValue(){var t;if(this._isAutoCompleting){return this.query}return(t=this._selectedItem)===null||t===void 0?void 0:t[this.displayKey]}get _placeholder(){var t;return this._isAutoCompleting&&((t=this.autocompletePlaceholder)===null||t===void 0?void 0:t.length)?this.autocompletePlaceholder:this.placeholder}get _identifierKey(){var t,e;return(e=(t=this.identifierKey)!==null&&t!==void 0?t:this.valueKey)!==null&&e!==void 0?e:"value"}componentDidLoad(){if(!this.valueKey&&!this.identifierKey){throw new Error("You must provide a valueKey or identifierKey")}if(this.value){this._valueChange();return}this.itemChanges()}render(){return r(a,{class:"p-select"},this._showDropdown&&(!!this._items.length||this.loading),this._isAutoCompleting,r("p-dropdown",{disableTriggerClick:true,calculateWidth:true,insideClick:true,show:this._showDropdown&&(!!this._items.length||this.loading)},r("p-input-group",{slot:"trigger",icon:this.icon,size:this.size,prefix:this.prefix,label:this.label,helper:this.helper,error:this.error,disabled:this.disabled,focused:this._showDropdown},r("input",{slot:"input",type:"text",placeholder:this._placeholder,value:this._displayValue,class:`p-input cursor-pointer ${!this._isAutoCompleting&&"read-only"}`,onFocus:()=>this._onFocus(),onMouseDown:t=>this._onMouseDown(t),onClick:()=>this._onClick(),onInput:t=>this._onChange(t),ref:t=>this._inputRef=t}),this.showChevron&&r("p-icon",{variant:"chevron",slot:"suffix"})),r("div",{slot:"items"},this.loading?this._getLoadingItems():this._getItems())))}documentClickHandler({target:t}){if(!this._showDropdown||s(t,this._el)){return}this._showDropdown=false;this._isAutoCompleting=false}_valueChange(){this._preselectItem()}itemChanges(){this._preselectItem()}_showDropdownChanges(){this.dropdownShown.emit({value:this._showDropdown,query:this.query})}_preselectItem(){var t,e,r;if(this._isAutoCompleting&&((t=this.query)===null||t===void 0?void 0:t.length)){return}let a=this.value;if(!this._selectedItem&&!a&&this.autoSelectFirst){a=this._items[0]}const i=typeof a==="object"&&a!==null?a[this._identifierKey]:a;const s=typeof i==="string"||typeof i==="number"?i:JSON.stringify(i);const o=this._selectedItem?(e=this._selectedItem)===null||e===void 0?void 0:e[this._identifierKey]:null;const n=typeof o==="string"||typeof o==="number"?o:JSON.stringify(o);if(this._selectedItem&&n===s){return}if(!((r=this._items)===null||r===void 0?void 0:r.length)&&a){this._selectValue(a);return}const l=this._items.find((t=>{const e=t===null||t===void 0?void 0:t[this._identifierKey];const r=typeof e==="string"||typeof e==="number"?e:JSON.stringify(e);return r===s}));this._selectValue(!!l?l:a)}_selectValue(t){this._selectedItem=t;const e=!!this.valueKey&&this.valueKey!=="false"&&t!==null?t===null||t===void 0?void 0:t[this.valueKey]:t;this.query=this.keepQuery?t===null||t===void 0?void 0:t[this.displayKey]:null;this.value=e;this.valueChange.emit(e);this._onBlur(true)}_onFocus(){if(!this.enableAutocomplete){setTimeout((()=>this._inputRef.blur()),50);if(!this._showDropdown){this._showDropdown=true}return}this._showDropdown=true;this._isAutoCompleting=true}_onMouseDown(t){if(this.enableAutocomplete){return}t.preventDefault()}_onClick(){if(this.enableAutocomplete){return}this._showDropdown=!this._showDropdown}_onBlur(t=false){if(!this.enableAutocomplete&&!t){return}this._isAutoCompleting=false;this._showDropdown=false}_onChange(t){if(!this.enableAutocomplete){return}if(!this._isAutoCompleting){this._isAutoCompleting=true;this._showDropdown=true}this.query=t.target.value;this.queryChange.emit(t.target.value)}_checkvalue(t,e){var r,a,i;return((a=(r=e===null||e===void 0?void 0:e[t])===null||r===void 0?void 0:r.toString())===null||a===void 0?void 0:a.toLowerCase().indexOf((i=this.query)===null||i===void 0?void 0:i.toLowerCase()))>=0}_getItems(){return this._items.map((t=>{var e;return r("p-dropdown-menu-item",{onClick:()=>this._selectValue(t),active:t[this._identifierKey]===((e=this._selectedItem)===null||e===void 0?void 0:e[this._identifierKey])},t[this.displayKey])}))}_getLoadingItems(){return[0,0,0].map((()=>r("p-dropdown-menu-item",{enableHover:false},r("p-loader",{variant:"ghost",class:"h-6 w-full rounded"}))))}get _el(){return i(this)}static get watchers(){return{value:["_valueChange"],items:["itemChanges"],_showDropdown:["_showDropdownChanges"]}}};n.style=o;export{n as p_select};
2
- //# sourceMappingURL=p-d6835e51.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["selectComponentCss","Select","_items","this","items","loading","JSON","parse","displayKey","valueKey","map","str","value","text","_isAutoCompleting","_a","query","length","_b","_selectedItem","asyncFilter","filter","item","queryKey","_checkvalue","_identifierKey","slice","maxDisplayedItems","_displayValue","_placeholder","autocompletePlaceholder","placeholder","identifierKey","componentDidLoad","Error","_valueChange","itemChanges","render","h","Host","class","_showDropdown","disableTriggerClick","calculateWidth","insideClick","show","slot","icon","size","prefix","label","helper","error","disabled","focused","type","onFocus","_onFocus","onMouseDown","ev","_onMouseDown","onClick","_onClick","onInput","_onChange","ref","_inputRef","showChevron","variant","_getLoadingItems","_getItems","documentClickHandler","target","childOf","_el","_preselectItem","_showDropdownChanges","dropdownShown","emit","autoSelectFirst","identifier","parsedValue","stringify","currentValue","currentParsedValue","_c","_selectValue","find","i","itemIdentifier","parsedItemIdentifier","keepQuery","valueChange","_onBlur","enableAutocomplete","setTimeout","blur","preventDefault","force","queryChange","key","toString","toLowerCase","indexOf","active","enableHover"],"sources":["./src/components/molecules/select/select.component.scss?tag=p-select","./src/components/molecules/select/select.component.tsx"],"sourcesContent":["p-select {\n @apply flex w-full flex-col;\n\n input.read-only {\n @apply text-ellipsis;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-select',\n styleUrl: 'select.component.scss',\n shadow: false,\n})\nexport class Select {\n /**\n * The items to show in the dropdown\n */\n @Prop() items: string | any[];\n\n /**\n * Icon of the select box\n */\n @Prop() icon: IconVariant;\n\n /**\n * The current query\n */\n @Prop() query: string;\n\n /**\n * The placeholder of the input\n */\n @Prop() placeholder: string;\n\n /**\n * The placeholder of the input when auto completing\n */\n @Prop() autocompletePlaceholder: string;\n\n /**\n * The current value\n */\n @Prop() value: any;\n\n /**\n * The key of the object to display\n */\n @Prop() displayKey: string = 'text';\n\n /**\n * The key of the object to return\n */\n @Prop() valueKey: string;\n\n /**\n * The key to identify an object\n */\n @Prop() identifierKey: string;\n\n /**\n * The key of the object to display\n */\n @Prop() queryKey?: string;\n\n /**\n * Wether to automatically select the first item\n */\n @Prop() autoSelectFirst: boolean = true;\n\n /**\n * Wether to show the chevron or not\n */\n @Prop() showChevron: boolean = true;\n\n /**\n * The maximum amount of items to display\n */\n @Prop() maxDisplayedItems: number = 10;\n\n /**\n * Wether to enable autocomplete\n */\n @Prop() enableAutocomplete: boolean = true;\n\n /**\n * Wether to keep the query or not\n */\n @Prop() keepQuery: boolean = true;\n\n /**\n * Wether the input uses async filtering\n */\n @Prop() asyncFilter: boolean = false;\n\n /**\n * Wether to show loading items\n */\n @Prop() loading: boolean = false;\n\n /**\n * Event when the query of the autocomplete changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the value changes\n */\n @Event() valueChange: EventEmitter<any>;\n\n /**\n * Event when the dropdown shows\n */\n @Event() dropdownShown: EventEmitter<any>;\n\n /**\n * The size of the input group used by the select\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group used by the select\n */\n @Prop() prefix: string;\n\n /**\n * The label of the input group used by the select\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop() helper: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled used by the select\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _showDropdown: any = false;\n @State() private _selectedItem: any = null;\n\n @State() private _isAutoCompleting: boolean = false;\n\n private _inputRef: HTMLInputElement;\n\n get _items() {\n if (!this.items || this.loading) {\n return [];\n }\n\n let items =\n typeof this.items === 'string'\n ? JSON.parse(this.items)\n : this.items;\n\n if (typeof items?.[0] === 'string') {\n this.displayKey = 'text';\n this.valueKey = 'value';\n\n items = items.map((str) => ({\n value: str,\n text: str,\n }));\n }\n\n if (\n this._isAutoCompleting &&\n this.query?.length &&\n this.query !== this._selectedItem?.[this.displayKey] &&\n !this.asyncFilter\n ) {\n items = items.filter((item) => {\n if (this.queryKey) {\n return this._checkvalue(this.queryKey, item);\n }\n\n return (\n this._checkvalue(this._identifierKey, item) ||\n this._checkvalue(this.displayKey, item)\n );\n });\n }\n\n return items?.slice(0, this.maxDisplayedItems);\n }\n\n get _displayValue() {\n if (this._isAutoCompleting) {\n return this.query;\n }\n\n return this._selectedItem?.[this.displayKey];\n }\n\n get _placeholder() {\n return this._isAutoCompleting && this.autocompletePlaceholder?.length\n ? this.autocompletePlaceholder\n : this.placeholder;\n }\n\n get _identifierKey() {\n return this.identifierKey ?? this.valueKey ?? 'value';\n }\n\n componentDidLoad() {\n if (!this.valueKey && !this.identifierKey) {\n throw new Error('You must provide a valueKey or identifierKey');\n }\n\n if (this.value) {\n this._valueChange();\n return;\n }\n\n this.itemChanges();\n }\n\n render() {\n return (\n <Host class=\"p-select\">\n {this._showDropdown && (!!this._items.length || this.loading)}\n {this._isAutoCompleting}\n <p-dropdown\n disableTriggerClick={true}\n calculateWidth={true}\n insideClick={true}\n show={\n this._showDropdown &&\n (!!this._items.length || this.loading)\n }\n >\n <p-input-group\n slot=\"trigger\"\n icon={this.icon}\n size={this.size}\n prefix={this.prefix}\n label={this.label}\n helper={this.helper}\n error={this.error}\n disabled={this.disabled}\n focused={this._showDropdown}\n >\n <input\n slot=\"input\"\n type=\"text\"\n placeholder={this._placeholder}\n value={this._displayValue}\n class={`p-input cursor-pointer ${\n !this._isAutoCompleting && 'read-only'\n }`}\n onFocus={() => this._onFocus()}\n onMouseDown={(ev) => this._onMouseDown(ev)}\n onClick={() => this._onClick()}\n onInput={(ev) => this._onChange(ev)}\n ref={(ref) => (this._inputRef = ref)}\n />\n\n {this.showChevron && (\n <p-icon variant=\"chevron\" slot=\"suffix\" />\n )}\n </p-input-group>\n <div slot=\"items\">\n {this.loading\n ? this._getLoadingItems()\n : this._getItems()}\n </div>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('click', { target: 'document', capture: true })\n protected documentClickHandler({ target }) {\n if (!this._showDropdown || childOf(target, this._el)) {\n return;\n }\n\n this._showDropdown = false;\n this._isAutoCompleting = false;\n }\n\n @Watch('value')\n private _valueChange() {\n this._preselectItem();\n }\n\n @Watch('items')\n public itemChanges() {\n this._preselectItem();\n }\n\n @Watch('_showDropdown')\n public _showDropdownChanges() {\n this.dropdownShown.emit({\n value: this._showDropdown,\n query: this.query,\n });\n }\n\n private _preselectItem() {\n if (this._isAutoCompleting && this.query?.length) {\n return;\n }\n\n let value = this.value;\n\n if (!this._selectedItem && !value && this.autoSelectFirst) {\n value = this._items[0];\n }\n\n // if (!value) {\n // this._selectValue(null);\n // return;\n // }\n\n const identifier =\n typeof value === 'object' && value !== null\n ? value[this._identifierKey]\n : value;\n const parsedValue =\n typeof identifier === 'string' || typeof identifier === 'number'\n ? identifier\n : JSON.stringify(identifier);\n\n const currentValue = this._selectedItem\n ? this._selectedItem?.[this._identifierKey]\n : null;\n const currentParsedValue =\n typeof currentValue === 'string' || typeof currentValue === 'number'\n ? currentValue\n : JSON.stringify(currentValue);\n\n if (this._selectedItem && currentParsedValue === parsedValue) {\n return;\n }\n\n if (!this._items?.length && value) {\n this._selectValue(value);\n return;\n }\n\n const item = this._items.find((i) => {\n const itemIdentifier = i?.[this._identifierKey];\n const parsedItemIdentifier =\n typeof itemIdentifier === 'string' ||\n typeof itemIdentifier === 'number'\n ? itemIdentifier\n : JSON.stringify(itemIdentifier);\n\n return parsedItemIdentifier === parsedValue;\n });\n\n this._selectValue(!!item ? item : value);\n }\n\n private _selectValue(item) {\n this._selectedItem = item;\n const value =\n !!this.valueKey && this.valueKey !== 'false' && item !== null\n ? item?.[this.valueKey]\n : item;\n\n this.query = this.keepQuery ? item?.[this.displayKey] : null;\n this.value = value;\n this.valueChange.emit(value);\n\n this._onBlur(true);\n }\n\n private _onFocus() {\n if (!this.enableAutocomplete) {\n setTimeout(() => this._inputRef.blur(), 50);\n if (!this._showDropdown) {\n this._showDropdown = true;\n }\n return;\n }\n\n this._showDropdown = true;\n this._isAutoCompleting = true;\n }\n\n private _onMouseDown(ev) {\n if (this.enableAutocomplete) {\n return;\n }\n\n ev.preventDefault();\n }\n\n private _onClick() {\n if (this.enableAutocomplete) {\n return;\n }\n\n this._showDropdown = !this._showDropdown;\n }\n\n private _onBlur(force = false) {\n if (!this.enableAutocomplete && !force) {\n return;\n }\n\n this._isAutoCompleting = false;\n this._showDropdown = false;\n }\n\n private _onChange(ev) {\n if (!this.enableAutocomplete) {\n return;\n }\n\n if (!this._isAutoCompleting) {\n this._isAutoCompleting = true;\n this._showDropdown = true;\n }\n\n this.query = ev.target.value;\n this.queryChange.emit(ev.target.value);\n }\n\n private _checkvalue(key, item) {\n return (\n item?.[key]\n ?.toString()\n ?.toLowerCase()\n .indexOf(this.query?.toLowerCase()) >= 0\n );\n }\n\n private _getItems() {\n return this._items.map((item) => (\n <p-dropdown-menu-item\n onClick={() => this._selectValue(item)}\n active={\n item[this._identifierKey] ===\n this._selectedItem?.[this._identifierKey]\n }\n >\n {item[this.displayKey]}\n </p-dropdown-menu-item>\n ));\n }\n\n private _getLoadingItems() {\n return [0, 0, 0].map(() => (\n <p-dropdown-menu-item enableHover={false}>\n <p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n </p-dropdown-menu-item>\n ));\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["helperComponentCss","Helper","render","h","Host","class","placement","this","slot","InputError","variant","popover","error","show","forceShowTooltip","onIsOpen","ev","_showTooltip","detail","inputGroupComponentCss","InputGroup","componentWillRender","_setInputClasses","hasHeaderSlot","helper","label","prefix","suffix","errorAndErrorIsNotBoolean","_getSlotInfo","_a","length","disabled","focused","size","onClick","_focusInput","required","name","icon","iconPosition","rotate","iconRotate","flip","iconFlip","_forceShowTooltip","handleFocusIn","handleFocusOut","input","_el","querySelector","classList","contains","add","remove","hasHelperSlot","hasLabelSlot","hasPrefixSlot","hasSuffixSlot","focus"],"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 .helper {\n @apply inline-block cursor-pointer bg-no-repeat bg-center w-3 h-3;\n background-image: url(/assets/images/helper/helper.svg);\n\n &:hover {\n background-image: url(/assets/images/helper/helper-hover.svg);\n }\n }\n}\n","import { Placement } from '@floating-ui/dom';\nimport { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'p-helper',\n styleUrl: 'helper.component.scss',\n shadow: true,\n})\nexport class Helper {\n /**\n * The placement of the helper popover\n */\n @Prop() placement: Placement = 'top';\n\n render() {\n return (\n <Host class=\"p-helper\">\n <p-tooltip placement={this.placement}>\n <div slot=\"popover\">\n <slot />\n </div>\n\n <div slot=\"content\" class=\"helper\"></div>\n </p-tooltip>\n </Host>\n );\n }\n}\n","import { Component, h, Host, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'p-input-error',\n shadow: true,\n})\nexport class InputError {\n /**\n * The error to show\n */\n @Prop() error: string;\n\n /**\n * Wether to force show the tooltip\n */\n @Prop() forceShowTooltip = false;\n\n @State() private _showTooltip = false;\n\n render() {\n return (\n <Host class=\"p-input-error\">\n <p-tooltip\n variant=\"error\"\n popover={this.error}\n show={this.forceShowTooltip}\n onIsOpen={(ev) => (this._showTooltip = ev.detail)}\n >\n <p-icon\n class={`${\n this._showTooltip\n ? 'text-negative'\n : 'text-negative-light'\n } hover:text-negative`}\n slot=\"content\"\n variant=\"explanation\"\n />\n </p-tooltip>\n </Host>\n );\n }\n}\n","@import '../../../style/form/mixins';\n\n@mixin slottedItems($prefix: false) {\n @include inputs($prefix, true) {\n @content;\n }\n}\n\n:host {\n @apply flex w-full flex-col;\n @apply outline-none #{!important};\n\n .input-label {\n @apply mb-[2px] text-xs font-semibold uppercase tracking-wider text-storm-vague;\n }\n\n .input-header {\n @apply mb-[2px] flex items-end gap-2;\n }\n\n .content {\n @apply flex;\n\n .prefix,\n .suffix {\n @include inputDefaultState();\n @apply box-border flex-1 text-storm;\n }\n\n .prefix {\n @apply rounded-br-none rounded-tr-none;\n @apply border-r-0 #{!important};\n @apply order-1;\n @apply pr-2;\n }\n\n .suffix {\n @apply rounded-bl-none rounded-tl-none;\n @apply border-l-0 #{!important};\n @apply order-3;\n @apply pl-2;\n }\n\n @include slottedItems() {\n @include inputDefaultState();\n @apply order-2;\n }\n\n @include slottedItems('.prefix') {\n @apply rounded-bl-none rounded-tl-none #{!important};\n @apply flex-auto;\n @apply border-l-0 pl-0 #{!important};\n }\n\n @include slottedItems('.suffix') {\n @apply rounded-br-none rounded-tr-none #{!important};\n @apply flex-auto;\n @apply border-r-0 pr-0 #{!important};\n }\n }\n}\n\n:host(.focused),\n:host([focused]),\n:host(:focus-within),\n:host(:focus) {\n @apply outline-none #{!important};\n\n .prefix,\n .suffix {\n @include inputFocusState();\n @apply text-indigo;\n }\n\n @include slottedItems() {\n @include inputFocusState();\n }\n}\n\n:host(.error),\n:host([error]) {\n .prefix,\n .suffix {\n @include inputErrorState();\n @apply text-negative;\n }\n\n @include slottedItems() {\n @include inputErrorState();\n\n &:focus,\n &:focus-within,\n &:focus-visible,\n &.focus,\n &[active],\n &.active {\n @include inputErrorState();\n }\n }\n}\n\n:host(.disabled),\n:host([disabled]) {\n .prefix,\n .suffix {\n @include inputDisabledState();\n }\n\n @include slottedItems() {\n @include inputDisabledState();\n pointer-events: none;\n }\n}\n\n:host(.size-small) {\n @include slottedItems() {\n @include inputSizeSmall();\n }\n}\n","import {\n Component,\n Element,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from '@stencil/core';\nimport { RotateOptions } from '../../../types/tailwind';\nimport { IconFlipOptions, IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-input-group',\n styleUrl: './input-group.component.scss',\n shadow: true,\n})\nexport class InputGroup {\n /**\n * The size of the input group\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group\n */\n @Prop() prefix: string;\n\n /**\n * The suffix of the input group\n */\n @Prop() suffix: string;\n\n /**\n * Icon of the input group\n */\n @Prop() icon: IconVariant;\n\n /**\n * Icon flip\n */\n @Prop() iconFlip: IconFlipOptions;\n\n /**\n * Icon rotate\n */\n @Prop() iconRotate: RotateOptions;\n\n /**\n * Icon position\n */\n @Prop() iconPosition: 'start' | 'end' = 'start';\n\n /**\n * The label of the input group\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group\n */\n @Prop() helper: string;\n\n /**\n * Wether the field is required\n */\n @Prop({ reflect: true }) required: boolean;\n\n /**\n * The helper of the input group\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Wether the input group is focused\n */\n @Prop({ reflect: true }) focused: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _forceShowTooltip = false;\n\n componentWillRender() {\n this._setInputClasses();\n }\n\n render() {\n const {\n hasHeaderSlot,\n helper,\n label,\n prefix,\n suffix,\n errorAndErrorIsNotBoolean,\n } = this._getSlotInfo();\n\n return (\n <Host\n class={`p-input-group ${this.error?.length && 'error'} ${\n this.disabled && 'disabled'\n } ${this.focused && 'focused'} size-${this.size}`}\n >\n <div class=\"flex items-end justify-between\">\n {label && (\n <div\n class=\"input-label\"\n onClick={() => this._focusInput()}\n >\n {label}\n {this.required && (\n <span class=\"ml-1 text-negative\">*</span>\n )}\n </div>\n )}\n\n {(helper || hasHeaderSlot) && (\n <div class=\"input-header\">\n {hasHeaderSlot && <slot name=\"header\" />}\n {helper && (\n <p-helper\n class={`flex ${\n hasHeaderSlot ? 'ml-2' : ''\n }`}\n placement=\"top-end\"\n >\n {helper}\n </p-helper>\n )}\n </div>\n )}\n </div>\n <div class=\"content\">\n {(prefix ||\n (this.icon && this.iconPosition === 'start')) && (\n <div\n class={`prefix size-${this.size}`}\n onClick={() => this._focusInput()}\n >\n {this.icon && this.iconPosition === 'start' ? (\n <p-icon\n class=\"flex\"\n variant={this.icon}\n rotate={this.iconRotate}\n flip={this.iconFlip}\n />\n ) : (\n prefix\n )}\n </div>\n )}\n {(suffix ||\n errorAndErrorIsNotBoolean ||\n (this.icon && this.iconPosition === 'end')) && (\n <div\n class={`suffix size-${this.size}`}\n onClick={() => this._focusInput()}\n >\n {errorAndErrorIsNotBoolean ? (\n <p-input-error\n error={this.error}\n forceShowTooltip={this._forceShowTooltip}\n />\n ) : this.icon && this.iconPosition === 'end' ? (\n <p-icon\n class=\"flex\"\n variant={this.icon}\n rotate={this.iconRotate}\n flip={this.iconFlip}\n />\n ) : (\n suffix\n )}\n </div>\n )}\n\n <slot name=\"input\" />\n </div>\n </Host>\n );\n }\n\n @Listen('focusin')\n handleFocusIn() {\n this._forceShowTooltip = true;\n }\n\n @Listen('focusout')\n handleFocusOut() {\n this._forceShowTooltip = false;\n }\n /* \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 private _setInputClasses() {\n const input = this._el.querySelector(':scope > [slot=\"input\"]');\n\n if (!input) {\n return;\n }\n\n if (!input.classList.contains('p-input')) {\n input.classList.add('p-input');\n }\n\n const { prefix, suffix, errorAndErrorIsNotBoolean } =\n this._getSlotInfo();\n\n if (\n suffix ||\n errorAndErrorIsNotBoolean ||\n (this.icon && this.iconPosition === 'end')\n ) {\n input.classList.add(\n 'border-r-0',\n 'rounded-tr-none',\n 'rounded-br-none',\n 'pr-0'\n );\n } else {\n input.classList.remove(\n 'border-r-0',\n 'rounded-tr-none',\n 'rounded-br-none',\n 'pr-0'\n );\n }\n\n if (prefix || (this.icon && this.iconPosition === 'start')) {\n input.classList.add(\n 'border-l-0',\n 'rounded-tl-none',\n 'rounded-bl-none',\n 'pl-0'\n );\n } else {\n input.classList.remove(\n 'border-l-0',\n 'rounded-tl-none',\n 'rounded-bl-none',\n 'pl-0'\n );\n }\n\n if (this.size === 'small' && !input.classList.contains('size-small')) {\n input.classList.add('size-small');\n }\n\n if (this.size !== 'small' && input.classList.contains('size-small')) {\n input.classList.remove('size-small');\n }\n }\n\n private _getSlotInfo() {\n const hasHelperSlot = !!this._el.querySelector(\n ':scope > [slot=\"helper\"]'\n );\n const hasLabelSlot = !!this._el.querySelector(\n ':scope > [slot=\"label\"]'\n );\n const hasPrefixSlot = !!this._el.querySelector(\n ':scope > [slot=\"prefix\"]'\n );\n const hasSuffixSlot = !!this._el.querySelector(\n ':scope > [slot=\"suffix\"]'\n );\n const hasHeaderSlot = !!this._el.querySelector(\n ':scope > [slot=\"header\"]'\n );\n\n const helper = hasHelperSlot ? <slot name=\"helper\" /> : this.helper;\n const label = hasLabelSlot ? <slot name=\"label\" /> : this.label;\n const prefix = hasPrefixSlot ? <slot name=\"prefix\" /> : this.prefix;\n const suffix = hasSuffixSlot ? <slot name=\"suffix\" /> : this.suffix;\n\n const errorAndErrorIsNotBoolean =\n this.error &&\n typeof this.error === 'string' &&\n this.error !== 'true';\n\n return {\n hasHelperSlot,\n hasLabelSlot,\n hasPrefixSlot,\n hasSuffixSlot,\n hasHeaderSlot,\n helper,\n label,\n prefix,\n suffix,\n errorAndErrorIsNotBoolean,\n };\n }\n\n private _focusInput() {\n const input = this._el.querySelector(':scope > [slot=\"input\"]');\n (input as HTMLElement).focus();\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as r,H as a,g as i}from"./p-ac1af618.js";import{c as s}from"./p-8a6728d5.js";const o=".visible{visibility:visible!important}.static{position:static!important}.fixed{position:fixed!important}.ml-1{margin-left:.25rem!important}.ml-2{margin-left:.5rem!important}.inline{display:inline!important}.flex{display:flex!important}.h-6{height:1.5rem!important}.w-full{width:100%!important}.-rotate-0{--tw-rotate:-0deg!important}.-rotate-0,.-rotate-135{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-135{--tw-rotate:-135deg!important}.-rotate-180{--tw-rotate:-180deg!important}.-rotate-180,.-rotate-225{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-225{--tw-rotate:-225deg!important}.-rotate-25{--tw-rotate:-25deg!important}.-rotate-25,.-rotate-270{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-270{--tw-rotate:-270deg!important}.-rotate-315{--tw-rotate:-315deg!important}.-rotate-315,.-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-45{--tw-rotate:-45deg!important}.-rotate-90{--tw-rotate:-90deg!important}.-rotate-90,.rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-0{--tw-rotate:0deg!important}.rotate-135{--tw-rotate:135deg!important}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-180{--tw-rotate:180deg!important}.rotate-225{--tw-rotate:225deg!important}.rotate-225,.rotate-25{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-25{--tw-rotate:25deg!important}.rotate-270{--tw-rotate:270deg!important}.rotate-270,.rotate-315{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-315{--tw-rotate:315deg!important}.rotate-45{--tw-rotate:45deg!important}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-90{--tw-rotate:90deg!important}.scale-x-flip{--tw-scale-x:-1!important}.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.scale-y-flip{--tw-scale-y:-1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.items-end{align-items:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.rounded{border-radius:.25rem!important}.rounded-bl-none{border-bottom-left-radius:0!important}.rounded-br-none{border-bottom-right-radius:0!important}.rounded-tl-none{border-top-left-radius:0!important}.rounded-tr-none{border-top-right-radius:0!important}.border-l-0{border-left-width:0!important}.border-r-0{border-right-width:0!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-5xl{font-size:3rem!important}.text-5xl,.text-6xl{line-height:1!important}.text-6xl{font-size:3.75rem!important}.text-base{font-size:1rem!important;line-height:1.5rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xl{font-size:1.25rem!important;line-height:1.75rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-xxs{font-size:.6875rem!important}.text-negative{color:rgb(185 30 40/var(--tw-text-opacity))!important}.text-negative,.text-negative-light{--tw-text-opacity:1!important}.text-negative-light{color:rgb(255 204 211/var(--tw-text-opacity))!important}.blur{--tw-blur:blur(8px)!important}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}*{box-sizing:border-box}p-select{display:flex;flex-direction:column;width:100%}p-select input.read-only{text-overflow:ellipsis}.hover\\:text-negative:hover{--tw-text-opacity:1!important;color:rgb(185 30 40/var(--tw-text-opacity))!important}.-rotate-0,.-rotate-135,.-rotate-180,.-rotate-225,.-rotate-25,.-rotate-270,.-rotate-315,.-rotate-45,.-rotate-90,.rotate-0,.rotate-135,.rotate-180,.rotate-225,.rotate-25,.rotate-270,.rotate-315,.rotate-45,.rotate-90,.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}";const n=class{constructor(r){t(this,r);this.queryChange=e(this,"queryChange",7);this.valueChange=e(this,"valueChange",7);this.dropdownShown=e(this,"dropdownShown",7);this.items=undefined;this.icon=undefined;this.query=undefined;this.placeholder=undefined;this.autocompletePlaceholder=undefined;this.value=undefined;this.displayKey="text";this.valueKey=undefined;this.identifierKey=undefined;this.queryKey=undefined;this.autoSelectFirst=true;this.showChevron=true;this.maxDisplayedItems=10;this.enableAutocomplete=true;this.keepQuery=true;this.asyncFilter=false;this.loading=false;this.size="medium";this.prefix=undefined;this.label=undefined;this.helper=undefined;this.error=undefined;this.disabled=false;this._showDropdown=false;this._selectedItem=null;this._isAutoCompleting=false}get _items(){var t,e;if(!this.items||this.loading){return[]}let r=typeof this.items==="string"?JSON.parse(this.items):this.items;if(typeof(r===null||r===void 0?void 0:r[0])==="string"){this.displayKey="text";this.valueKey="value";r=r.map((t=>({value:t,text:t})))}if(this._isAutoCompleting&&((t=this.query)===null||t===void 0?void 0:t.length)&&this.query!==((e=this._selectedItem)===null||e===void 0?void 0:e[this.displayKey])&&!this.asyncFilter){r=r.filter((t=>{if(this.queryKey){return this._checkvalue(this.queryKey,t)}return this._checkvalue(this._identifierKey,t)||this._checkvalue(this.displayKey,t)}))}return r===null||r===void 0?void 0:r.slice(0,this.maxDisplayedItems)}get _displayValue(){var t;if(this._isAutoCompleting){return this.query}return(t=this._selectedItem)===null||t===void 0?void 0:t[this.displayKey]}get _placeholder(){var t;return this._isAutoCompleting&&((t=this.autocompletePlaceholder)===null||t===void 0?void 0:t.length)?this.autocompletePlaceholder:this.placeholder}get _identifierKey(){var t,e;return(e=(t=this.identifierKey)!==null&&t!==void 0?t:this.valueKey)!==null&&e!==void 0?e:"value"}componentDidLoad(){if(!this.valueKey&&!this.identifierKey){throw new Error("You must provide a valueKey or identifierKey")}if(this.value){this._valueChange();return}this.itemChanges()}render(){return r(a,{class:"p-select"},this._showDropdown&&(!!this._items.length||this.loading),this._isAutoCompleting,r("p-dropdown",{disableTriggerClick:true,calculateWidth:true,insideClick:true,show:this._showDropdown&&(!!this._items.length||this.loading)},r("p-input-group",{slot:"trigger",icon:this.icon,size:this.size,prefix:this.prefix,label:this.label,helper:this.helper,error:this.error,disabled:this.disabled,focused:this._showDropdown},r("input",{slot:"input",type:"text",placeholder:this._placeholder,value:this._displayValue,class:`p-input cursor-pointer ${!this._isAutoCompleting&&"read-only"}`,onFocus:()=>this._onFocus(),onMouseDown:t=>this._onMouseDown(t),onClick:()=>this._onClick(),onInput:t=>this._onChange(t),ref:t=>this._inputRef=t}),this.showChevron&&r("p-icon",{variant:"chevron",slot:"suffix"})),r("div",{slot:"items"},this.loading?this._getLoadingItems():this._getItems())))}documentClickHandler({target:t}){if(!this._showDropdown||s(t,this._el)){return}this._showDropdown=false;this._isAutoCompleting=false}_valueChange(){this._preselectItem()}itemChanges(){this._preselectItem()}_showDropdownChanges(){this.dropdownShown.emit({value:this._showDropdown,query:this.query})}_preselectItem(){var t,e,r;if(this._isAutoCompleting&&((t=this.query)===null||t===void 0?void 0:t.length)){return}let a=this.value;if(!this._selectedItem&&!a&&this.autoSelectFirst){a=this._items[0]}const i=typeof a==="object"&&a!==null?a[this._identifierKey]:a;const s=typeof i==="string"||typeof i==="number"?i:JSON.stringify(i);const o=this._selectedItem?(e=this._selectedItem)===null||e===void 0?void 0:e[this._identifierKey]:null;const n=typeof o==="string"||typeof o==="number"?o:JSON.stringify(o);if(this._selectedItem&&n===s){return}if(!((r=this._items)===null||r===void 0?void 0:r.length)&&a){this._selectValue(a);return}const l=this._items.find((t=>{const e=t===null||t===void 0?void 0:t[this._identifierKey];const r=typeof e==="string"||typeof e==="number"?e:JSON.stringify(e);return r===s}));this._selectValue(!!l?l:a)}_selectValue(t){this._selectedItem=t;const e=!!this.valueKey&&this.valueKey!=="false"&&t!==null?t===null||t===void 0?void 0:t[this.valueKey]:t;this.query=this.keepQuery?t===null||t===void 0?void 0:t[this.displayKey]:null;this.value=e;this.valueChange.emit(e);this._onBlur(true)}_onFocus(){if(!this.enableAutocomplete){setTimeout((()=>this._inputRef.blur()),50);if(!this._showDropdown){this._showDropdown=true}return}this._showDropdown=true;this._isAutoCompleting=true}_onMouseDown(t){if(this.enableAutocomplete){return}t.preventDefault()}_onClick(){if(this.enableAutocomplete){return}this._showDropdown=!this._showDropdown}_onBlur(t=false){if(!this.enableAutocomplete&&!t){return}this._isAutoCompleting=false;this._showDropdown=false}_onChange(t){if(!this.enableAutocomplete){return}if(!this._isAutoCompleting){this._isAutoCompleting=true;this._showDropdown=true}this.query=t.target.value;this.queryChange.emit(t.target.value)}_checkvalue(t,e){var r,a,i;return((a=(r=e===null||e===void 0?void 0:e[t])===null||r===void 0?void 0:r.toString())===null||a===void 0?void 0:a.toLowerCase().indexOf((i=this.query)===null||i===void 0?void 0:i.toLowerCase()))>=0}_getItems(){return this._items.map((t=>{var e;return r("p-dropdown-menu-item",{onClick:()=>this._selectValue(t),active:t[this._identifierKey]===((e=this._selectedItem)===null||e===void 0?void 0:e[this._identifierKey])},t[this.displayKey])}))}_getLoadingItems(){return[0,0,0].map((()=>r("p-dropdown-menu-item",{enableHover:false},r("p-loader",{variant:"ghost",class:"h-6 w-full rounded"}))))}get _el(){return i(this)}static get watchers(){return{value:["_valueChange"],items:["itemChanges"],_showDropdown:["_showDropdownChanges"]}}};n.style=o;export{n as p_select};
2
- //# sourceMappingURL=p-d6835e51.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["selectComponentCss","Select","_items","this","items","loading","JSON","parse","displayKey","valueKey","map","str","value","text","_isAutoCompleting","_a","query","length","_b","_selectedItem","asyncFilter","filter","item","queryKey","_checkvalue","_identifierKey","slice","maxDisplayedItems","_displayValue","_placeholder","autocompletePlaceholder","placeholder","identifierKey","componentDidLoad","Error","_valueChange","itemChanges","render","h","Host","class","_showDropdown","disableTriggerClick","calculateWidth","insideClick","show","slot","icon","size","prefix","label","helper","error","disabled","focused","type","onFocus","_onFocus","onMouseDown","ev","_onMouseDown","onClick","_onClick","onInput","_onChange","ref","_inputRef","showChevron","variant","_getLoadingItems","_getItems","documentClickHandler","target","childOf","_el","_preselectItem","_showDropdownChanges","dropdownShown","emit","autoSelectFirst","identifier","parsedValue","stringify","currentValue","currentParsedValue","_c","_selectValue","find","i","itemIdentifier","parsedItemIdentifier","keepQuery","valueChange","_onBlur","enableAutocomplete","setTimeout","blur","preventDefault","force","queryChange","key","toString","toLowerCase","indexOf","active","enableHover"],"sources":["./src/components/molecules/select/select.component.scss?tag=p-select","./src/components/molecules/select/select.component.tsx"],"sourcesContent":["p-select {\n @apply flex w-full flex-col;\n\n input.read-only {\n @apply text-ellipsis;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch\n} from '@stencil/core';\nimport { childOf } from '../../../utils';\nimport { IconVariant } from '../../atoms/icon/icon.component';\n\n@Component({\n tag: 'p-select',\n styleUrl: 'select.component.scss',\n shadow: false,\n})\nexport class Select {\n /**\n * The items to show in the dropdown\n */\n @Prop() items: string | any[];\n\n /**\n * Icon of the select box\n */\n @Prop() icon: IconVariant;\n\n /**\n * The current query\n */\n @Prop() query: string;\n\n /**\n * The placeholder of the input\n */\n @Prop() placeholder: string;\n\n /**\n * The placeholder of the input when auto completing\n */\n @Prop() autocompletePlaceholder: string;\n\n /**\n * The current value\n */\n @Prop() value: any;\n\n /**\n * The key of the object to display\n */\n @Prop() displayKey: string = 'text';\n\n /**\n * The key of the object to return\n */\n @Prop() valueKey: string;\n\n /**\n * The key to identify an object\n */\n @Prop() identifierKey: string;\n\n /**\n * The key of the object to display\n */\n @Prop() queryKey?: string;\n\n /**\n * Wether to automatically select the first item\n */\n @Prop() autoSelectFirst: boolean = true;\n\n /**\n * Wether to show the chevron or not\n */\n @Prop() showChevron: boolean = true;\n\n /**\n * The maximum amount of items to display\n */\n @Prop() maxDisplayedItems: number = 10;\n\n /**\n * Wether to enable autocomplete\n */\n @Prop() enableAutocomplete: boolean = true;\n\n /**\n * Wether to keep the query or not\n */\n @Prop() keepQuery: boolean = true;\n\n /**\n * Wether the input uses async filtering\n */\n @Prop() asyncFilter: boolean = false;\n\n /**\n * Wether to show loading items\n */\n @Prop() loading: boolean = false;\n\n /**\n * Event when the query of the autocomplete changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the value changes\n */\n @Event() valueChange: EventEmitter<any>;\n\n /**\n * Event when the dropdown shows\n */\n @Event() dropdownShown: EventEmitter<any>;\n\n /**\n * The size of the input group used by the select\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * The prefix of the input group used by the select\n */\n @Prop() prefix: string;\n\n /**\n * The label of the input group used by the select\n */\n @Prop() label: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop() helper: string;\n\n /**\n * The helper of the input group used by the select\n */\n @Prop({ reflect: true }) error: string;\n\n /**\n * Wether the input group is disabled used by the select\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n @State() private _showDropdown: any = false;\n @State() private _selectedItem: any = null;\n\n @State() private _isAutoCompleting: boolean = false;\n\n private _inputRef: HTMLInputElement;\n\n get _items() {\n if (!this.items || this.loading) {\n return [];\n }\n\n let items =\n typeof this.items === 'string'\n ? JSON.parse(this.items)\n : this.items;\n\n if (typeof items?.[0] === 'string') {\n this.displayKey = 'text';\n this.valueKey = 'value';\n\n items = items.map((str) => ({\n value: str,\n text: str,\n }));\n }\n\n if (\n this._isAutoCompleting &&\n this.query?.length &&\n this.query !== this._selectedItem?.[this.displayKey] &&\n !this.asyncFilter\n ) {\n items = items.filter((item) => {\n if (this.queryKey) {\n return this._checkvalue(this.queryKey, item);\n }\n\n return (\n this._checkvalue(this._identifierKey, item) ||\n this._checkvalue(this.displayKey, item)\n );\n });\n }\n\n return items?.slice(0, this.maxDisplayedItems);\n }\n\n get _displayValue() {\n if (this._isAutoCompleting) {\n return this.query;\n }\n\n return this._selectedItem?.[this.displayKey];\n }\n\n get _placeholder() {\n return this._isAutoCompleting && this.autocompletePlaceholder?.length\n ? this.autocompletePlaceholder\n : this.placeholder;\n }\n\n get _identifierKey() {\n return this.identifierKey ?? this.valueKey ?? 'value';\n }\n\n componentDidLoad() {\n if (!this.valueKey && !this.identifierKey) {\n throw new Error('You must provide a valueKey or identifierKey');\n }\n\n if (this.value) {\n this._valueChange();\n return;\n }\n\n this.itemChanges();\n }\n\n render() {\n return (\n <Host class=\"p-select\">\n {this._showDropdown && (!!this._items.length || this.loading)}\n {this._isAutoCompleting}\n <p-dropdown\n disableTriggerClick={true}\n calculateWidth={true}\n insideClick={true}\n show={\n this._showDropdown &&\n (!!this._items.length || this.loading)\n }\n >\n <p-input-group\n slot=\"trigger\"\n icon={this.icon}\n size={this.size}\n prefix={this.prefix}\n label={this.label}\n helper={this.helper}\n error={this.error}\n disabled={this.disabled}\n focused={this._showDropdown}\n >\n <input\n slot=\"input\"\n type=\"text\"\n placeholder={this._placeholder}\n value={this._displayValue}\n class={`p-input cursor-pointer ${\n !this._isAutoCompleting && 'read-only'\n }`}\n onFocus={() => this._onFocus()}\n onMouseDown={(ev) => this._onMouseDown(ev)}\n onClick={() => this._onClick()}\n onInput={(ev) => this._onChange(ev)}\n ref={(ref) => (this._inputRef = ref)}\n />\n\n {this.showChevron && (\n <p-icon variant=\"chevron\" slot=\"suffix\" />\n )}\n </p-input-group>\n <div slot=\"items\">\n {this.loading\n ? this._getLoadingItems()\n : this._getItems()}\n </div>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('click', { target: 'document', capture: true })\n protected documentClickHandler({ target }) {\n if (!this._showDropdown || childOf(target, this._el)) {\n return;\n }\n\n this._showDropdown = false;\n this._isAutoCompleting = false;\n }\n\n @Watch('value')\n private _valueChange() {\n this._preselectItem();\n }\n\n @Watch('items')\n public itemChanges() {\n this._preselectItem();\n }\n\n @Watch('_showDropdown')\n public _showDropdownChanges() {\n this.dropdownShown.emit({\n value: this._showDropdown,\n query: this.query,\n });\n }\n\n private _preselectItem() {\n if (this._isAutoCompleting && this.query?.length) {\n return;\n }\n\n let value = this.value;\n\n if (!this._selectedItem && !value && this.autoSelectFirst) {\n value = this._items[0];\n }\n\n // if (!value) {\n // this._selectValue(null);\n // return;\n // }\n\n const identifier =\n typeof value === 'object' && value !== null\n ? value[this._identifierKey]\n : value;\n const parsedValue =\n typeof identifier === 'string' || typeof identifier === 'number'\n ? identifier\n : JSON.stringify(identifier);\n\n const currentValue = this._selectedItem\n ? this._selectedItem?.[this._identifierKey]\n : null;\n const currentParsedValue =\n typeof currentValue === 'string' || typeof currentValue === 'number'\n ? currentValue\n : JSON.stringify(currentValue);\n\n if (this._selectedItem && currentParsedValue === parsedValue) {\n return;\n }\n\n if (!this._items?.length && value) {\n this._selectValue(value);\n return;\n }\n\n const item = this._items.find((i) => {\n const itemIdentifier = i?.[this._identifierKey];\n const parsedItemIdentifier =\n typeof itemIdentifier === 'string' ||\n typeof itemIdentifier === 'number'\n ? itemIdentifier\n : JSON.stringify(itemIdentifier);\n\n return parsedItemIdentifier === parsedValue;\n });\n\n this._selectValue(!!item ? item : value);\n }\n\n private _selectValue(item) {\n this._selectedItem = item;\n const value =\n !!this.valueKey && this.valueKey !== 'false' && item !== null\n ? item?.[this.valueKey]\n : item;\n\n this.query = this.keepQuery ? item?.[this.displayKey] : null;\n this.value = value;\n this.valueChange.emit(value);\n\n this._onBlur(true);\n }\n\n private _onFocus() {\n if (!this.enableAutocomplete) {\n setTimeout(() => this._inputRef.blur(), 50);\n if (!this._showDropdown) {\n this._showDropdown = true;\n }\n return;\n }\n\n this._showDropdown = true;\n this._isAutoCompleting = true;\n }\n\n private _onMouseDown(ev) {\n if (this.enableAutocomplete) {\n return;\n }\n\n ev.preventDefault();\n }\n\n private _onClick() {\n if (this.enableAutocomplete) {\n return;\n }\n\n this._showDropdown = !this._showDropdown;\n }\n\n private _onBlur(force = false) {\n if (!this.enableAutocomplete && !force) {\n return;\n }\n\n this._isAutoCompleting = false;\n this._showDropdown = false;\n }\n\n private _onChange(ev) {\n if (!this.enableAutocomplete) {\n return;\n }\n\n if (!this._isAutoCompleting) {\n this._isAutoCompleting = true;\n this._showDropdown = true;\n }\n\n this.query = ev.target.value;\n this.queryChange.emit(ev.target.value);\n }\n\n private _checkvalue(key, item) {\n return (\n item?.[key]\n ?.toString()\n ?.toLowerCase()\n .indexOf(this.query?.toLowerCase()) >= 0\n );\n }\n\n private _getItems() {\n return this._items.map((item) => (\n <p-dropdown-menu-item\n onClick={() => this._selectValue(item)}\n active={\n item[this._identifierKey] ===\n this._selectedItem?.[this._identifierKey]\n }\n >\n {item[this.displayKey]}\n </p-dropdown-menu-item>\n ));\n }\n\n private _getLoadingItems() {\n return [0, 0, 0].map(() => (\n <p-dropdown-menu-item enableHover={false}>\n <p-loader variant=\"ghost\" class=\"h-6 w-full rounded\" />\n </p-dropdown-menu-item>\n ));\n }\n}\n"],"mappings":"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"}