@7pmlabs/design-system 0.8.1 → 1.0.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 (77) hide show
  1. package/dist/design-system.mjs +16 -16
  2. package/dist/design-system10.mjs +1 -1
  3. package/dist/design-system10.mjs.map +1 -1
  4. package/dist/design-system100.mjs +68 -6
  5. package/dist/design-system100.mjs.map +1 -1
  6. package/dist/design-system101.mjs +6 -67
  7. package/dist/design-system101.mjs.map +1 -1
  8. package/dist/design-system116.mjs +1 -1
  9. package/dist/design-system117.mjs +1 -1
  10. package/dist/design-system14.mjs +23 -17
  11. package/dist/design-system14.mjs.map +1 -1
  12. package/dist/design-system15.mjs +60 -25
  13. package/dist/design-system15.mjs.map +1 -1
  14. package/dist/design-system16.mjs +269 -53
  15. package/dist/design-system16.mjs.map +1 -1
  16. package/dist/design-system17.mjs +107 -263
  17. package/dist/design-system17.mjs.map +1 -1
  18. package/dist/design-system18.mjs +112 -112
  19. package/dist/design-system18.mjs.map +1 -1
  20. package/dist/design-system19.mjs +193 -113
  21. package/dist/design-system19.mjs.map +1 -1
  22. package/dist/design-system20.mjs +62 -188
  23. package/dist/design-system20.mjs.map +1 -1
  24. package/dist/design-system21.mjs +38 -69
  25. package/dist/design-system21.mjs.map +1 -1
  26. package/dist/design-system22.mjs +38 -34
  27. package/dist/design-system22.mjs.map +1 -1
  28. package/dist/design-system23.mjs +133 -42
  29. package/dist/design-system23.mjs.map +1 -1
  30. package/dist/design-system24.mjs +550 -129
  31. package/dist/design-system24.mjs.map +1 -1
  32. package/dist/design-system25.mjs +5 -562
  33. package/dist/design-system25.mjs.map +1 -1
  34. package/dist/design-system26.mjs +6 -5
  35. package/dist/design-system26.mjs.map +1 -1
  36. package/dist/design-system27.mjs +4 -5
  37. package/dist/design-system27.mjs.map +1 -1
  38. package/dist/design-system28.mjs +10 -5
  39. package/dist/design-system28.mjs.map +1 -1
  40. package/dist/design-system29.mjs +23 -10
  41. package/dist/design-system29.mjs.map +1 -1
  42. package/dist/design-system40.mjs +63 -45
  43. package/dist/design-system40.mjs.map +1 -1
  44. package/dist/design-system57.mjs +64 -37
  45. package/dist/design-system57.mjs.map +1 -1
  46. package/dist/design-system62.mjs +1 -1
  47. package/dist/design-system63.mjs +1 -1
  48. package/dist/design-system68.mjs +1 -1
  49. package/dist/design-system69.mjs +1 -1
  50. package/dist/design-system70.mjs +1 -1
  51. package/dist/design-system71.mjs +1 -1
  52. package/dist/design-system72.mjs +1 -1
  53. package/dist/design-system74.mjs +1 -1
  54. package/dist/design-system78.mjs +1 -1
  55. package/dist/design-system79.mjs +2 -2
  56. package/dist/design-system81.mjs +1 -1
  57. package/dist/design-system85.mjs +2 -2
  58. package/dist/design-system88.mjs +2 -2
  59. package/dist/design-system92.mjs +1 -1
  60. package/dist/design-system93.mjs +1 -1
  61. package/dist/design-system94.mjs +1 -1
  62. package/dist/design-system99.mjs +62 -63
  63. package/dist/design-system99.mjs.map +1 -1
  64. package/dist/style.css +1 -1
  65. package/dist/types/components/BCheckbox.vue.d.ts +31 -1
  66. package/dist/types/components/BCurrencyField.vue.d.ts +4 -4
  67. package/dist/types/components/BDatePicker/BDatePicker.vue.d.ts +3 -3
  68. package/dist/types/components/BImagePicker/BImagePicker.vue.d.ts +1 -1
  69. package/dist/types/components/BMultiSelect.vue.d.ts +2 -2
  70. package/dist/types/components/BOtpField/BOtpField.vue.d.ts +2 -2
  71. package/dist/types/components/BRadio.vue.d.ts +1 -1
  72. package/dist/types/components/BSelect.vue.d.ts +2 -2
  73. package/dist/types/components/BTextField.vue.d.ts +3 -3
  74. package/dist/types/components/BTextarea.vue.d.ts +3 -3
  75. package/dist/types/components/BToast/BToastItem.vue.d.ts +6 -1
  76. package/dist/types/types/components/BToast.d.ts +1 -0
  77. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"design-system19.mjs","sources":["../src/components/BPagination.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, vShow as _vShow, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-inline-flex ds-space-x-1\" }\n\nimport { BPaginationSize } from '@/constants/Enums';\nimport { computed } from 'vue';\n\n//#region Props\nexport interface BPaginationProps {\n /**\n * Start by 1.\n */\n modelValue: number;\n numberOfPages: number;\n /**\n * Bordered buttons.\n */\n border?: boolean;\n /**\n * Transparent background buttons.\n */\n transparent?: boolean;\n size?: `${BPaginationSize}`;\n}\n\nconst First = 1;\nconst EllipsisText = '...';\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BPagination',\n props: {\n modelValue: {},\n numberOfPages: {},\n border: { type: Boolean, default: false },\n transparent: { type: Boolean, default: false },\n size: { default: BPaginationSize.Medium }\n },\n emits: [\"change\", \"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nconst value = computed({\n get() {\n return props.modelValue + 1;\n },\n set(val: number) {\n emit('update:modelValue', val - 1);\n },\n});\nconst paginationItemClass = computed(() => {\n let result = `\n ds-flex ds-items-center ds-justify-center\n ds-rounded-lg `;\n\n if (props.border) {\n result += 'ds-border ds-border-gray-300 ';\n }\n\n switch (props.size) {\n case BPaginationSize.Small:\n result += `ds-w-8 ds-h-8 `;\n break;\n case BPaginationSize.Medium:\n default:\n result += `ds-w-10 ds-h-10 `;\n break;\n }\n\n return result;\n});\n//#endregion\n\n//#region Methods\nconst clickPage = (page: number) => {\n value.value = page;\n // Emitted when page changes via user interaction\n emit('change', value.value);\n};\nconst clickPrevious = () => {\n if (value.value > 1) {\n value.value--;\n emit('change', value.value);\n }\n};\nconst clickNext = () => {\n if (value.value < props.numberOfPages) {\n value.value++;\n emit('change', value.value);\n }\n};\nconst getActiveClass = (isActive: boolean = true) => {\n return isActive\n ? `ds-text-white ds-bg-primary-t `\n : `ds-text-black/80 ${\n props.transparent ? 'ds-bg-transparent' : 'ds-bg-white'\n }`;\n};\n//#endregion\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"nav\", null, [\n _createElementVNode(\"ul\", _hoisted_1, [\n _createElementVNode(\"li\", {\n class: _normalizeClass([[paginationItemClass.value, getActiveClass(false)], \"ds-ml-0 ds-cursor-pointer\"]),\n onClick: clickPrevious\n }, _cache[5] || (_cache[5] = [\n _createElementVNode(\"svg\", {\n class: \"ds-h-4 ds-w-4 ds-fill-black/80\",\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [\n _createElementVNode(\"path\", { d: \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\" })\n ], -1)\n ]), 2),\n _createElementVNode(\"li\", {\n class: _normalizeClass([[getActiveClass(value.value === 1), paginationItemClass.value], \"ds-cursor-pointer\"]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (clickPage(1)))\n }, [\n _createElementVNode(\"a\", null, _toDisplayString(First))\n ], 2),\n _withDirectives(_createElementVNode(\"li\", {\n class: _normalizeClass([[paginationItemClass.value], \"ds-cursor-default\"])\n }, [\n _createElementVNode(\"a\", null, _toDisplayString(EllipsisText))\n ], 2), [\n [_vShow, value.value > 3]\n ]),\n _withDirectives(_createElementVNode(\"li\", {\n class: _normalizeClass([[paginationItemClass.value, getActiveClass(false)], \"ds-cursor-pointer\"]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (clickPage(value.value - 1)))\n }, [\n _createElementVNode(\"a\", null, _toDisplayString(value.value - 1), 1)\n ], 2), [\n [_vShow, value.value > 2]\n ]),\n _withDirectives(_createElementVNode(\"li\", {\n class: _normalizeClass([[paginationItemClass.value, getActiveClass()], \"ds-cursor-pointer\"]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (clickPage(value.value)))\n }, [\n _createElementVNode(\"a\", null, _toDisplayString(value.value), 1)\n ], 2), [\n [_vShow, value.value !== 1 && value.value !== _ctx.numberOfPages]\n ]),\n _withDirectives(_createElementVNode(\"li\", {\n class: _normalizeClass([[paginationItemClass.value, getActiveClass(false)], \"ds-cursor-pointer\"]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (clickPage(value.value + 1)))\n }, [\n _createElementVNode(\"a\", null, _toDisplayString(value.value + 1), 1)\n ], 2), [\n [_vShow, value.value < _ctx.numberOfPages - 1]\n ]),\n _withDirectives(_createElementVNode(\"li\", {\n class: _normalizeClass([[paginationItemClass.value], \"ds-cursor-default\"])\n }, [\n _createElementVNode(\"a\", null, _toDisplayString(EllipsisText))\n ], 2), [\n [_vShow, value.value < _ctx.numberOfPages - 2]\n ]),\n _withDirectives(_createElementVNode(\"li\", {\n class: _normalizeClass([[paginationItemClass.value, getActiveClass(value.value === _ctx.numberOfPages)], \"ds-cursor-pointer\"]),\n onClick: _cache[4] || (_cache[4] = ($event: any) => (clickPage(_ctx.numberOfPages)))\n }, [\n _createElementVNode(\"a\", null, _toDisplayString(_ctx.numberOfPages), 1)\n ], 2), [\n [_vShow, _ctx.numberOfPages > 1]\n ]),\n _createElementVNode(\"li\", {\n class: _normalizeClass([[paginationItemClass.value, getActiveClass(false)], \"ds-cursor-pointer\"]),\n onClick: clickNext\n }, _cache[6] || (_cache[6] = [\n _createElementVNode(\"svg\", {\n class: \"ds-h-4 ds-w-4 ds-fill-black/80\",\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [\n _createElementVNode(\"path\", { d: \"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\" })\n ], -1)\n ]), 2)\n ])\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","First","EllipsisText","_sfc_main","_defineComponent","BPaginationSize","__props","__emit","props","emit","value","computed","val","paginationItemClass","result","clickPage","page","clickPrevious","clickNext","getActiveClass","isActive","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","$event","_toDisplayString","_withDirectives","_vShow"],"mappings":"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"}
1
+ {"version":3,"file":"design-system19.mjs","sources":["../src/components/BSelect.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, vShow as _vShow, withDirectives as _withDirectives, unref as _unref } from \"vue\"\n\nconst _hoisted_1 = [\"id\", \"disabled\"]\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = {\n key: 1,\n class: \"ds-text-black/[0.4]\"\n}\nconst _hoisted_4 = [\"id\", \"data-cy\", \"data-ut\"]\nconst _hoisted_5 = { class: \"ds-max-h-72 ds-overflow-y-auto ds-rounded-lg ds-bg-white ds-shadow\" }\nconst _hoisted_6 = { class: \"ds-py-1 ds-text-sm ds-text-black/[0.85]\" }\nconst _hoisted_7 = [\"onClick\"]\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport {\n ensureVisiblePosition,\n lockScrollBody,\n resetPosition,\n unlockScrollBody,\n} from '@/helpers/ComponentHelper';\nimport type { DisplayItem } from '@/types';\nimport { v4 as uuid } from 'uuid';\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\nimport BTextField from './BTextField.vue';\n\n//#region Props\nexport interface BSelectProps {\n inputId?: string;\n modelValue: string | number;\n label?: string;\n items: DisplayItem[];\n disabled?: boolean;\n placeholder?: string;\n valueCssClass?: string;\n menuCssClass?: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n requiredErrorMessage?: string;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n /**\n * Allow to type to search.\n */\n allowInput?: boolean;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BSelect',\n props: {\n inputId: { default: '' },\n modelValue: {},\n label: { default: '' },\n items: {},\n disabled: { type: Boolean, default: false },\n placeholder: { default: '' },\n valueCssClass: { default: '' },\n menuCssClass: { default: '' },\n validationRules: { default: undefined },\n required: { type: Boolean, default: false },\n requiredErrorMessage: { default: '' },\n hideDetails: { type: Boolean, default: false },\n allowInput: { type: Boolean, default: false }\n },\n emits: [\"change\", \"open\", \"close\", \"change:input\", \"update:modelValue\"],\n setup(__props: any, { expose: __expose, emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nconst selectEl = ref<HTMLElement | null>(null);\nconst inputRef = ref<InstanceType<typeof BTextField> | null>(null);\nconst selectMenuEl = ref<HTMLElement | null>(null);\nconst selectMenu = ref(false);\nconst { t } = useI18n();\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst inputText = ref('');\nconst selectedItem = ref<DisplayItem>();\nconst id = computed(() => props.inputId || `id-${uuid()}`);\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\nconst btnCssClass = computed(() => {\n let result = `ds-border ds-drop-shadow-light ds-text-sm ds-h-[40px] ds-px-3 ds-rounded-lg ds-block ds-w-full ds-inline-flex ds-items-center ds-justify-between `;\n result += props.disabled\n ? `ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/[0.4] `\n : `ds-bg-white ds-text-black/[0.85] `;\n result += !validationResult.value.valid\n ? `ds-border-error focus:ds-ring-1 focus:ds-ring-error `\n : `ds-border-black/10 focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus `;\n\n return result;\n});\nconst vRules = computed(() => {\n let result: ValidationRule[] = [];\n\n if (props.required) {\n result.push(validateRequired);\n }\n if (props.validationRules) {\n result = result.concat(props.validationRules);\n }\n\n return result.length ? result : undefined;\n});\n\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n//#endregion\n\n//#region Watchers\nwatch(selectMenu, (val) => {\n if (val) {\n lockScrollBody();\n ensureMenuPosition();\n emit('open');\n } else {\n unlockScrollBody();\n resetMenuPosition();\n emit('close');\n }\n});\nwatch(value, () => {\n ensureSelectedItem();\n ensureInputText();\n});\nwatch(\n () => props.items,\n () => {\n if (value.value && !selectedItem.value?.value) {\n ensureSelectedItem();\n ensureInputText();\n }\n },\n {\n deep: true,\n },\n);\n//#endregion\n\n//#region Methods\nconst ensureSelectedItem = () => {\n selectedItem.value = props.items?.find((i) => i.value === value.value);\n};\nconst ensureInputText = () => {\n if (props.allowInput) {\n inputText.value = selectedItem.value?.text || '';\n }\n};\nconst initPressEscapeEventListener = () => {\n document.addEventListener('keydown', closeOnEscapePressed);\n};\nconst closeOnEscapePressed = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeSelectMenu();\n }\n};\nconst initClickOutsideEventListener = () => {\n document.addEventListener('click', closeOnClickOutside);\n};\nconst closeOnClickOutside = (event: any) => {\n const refs = [selectEl.value, selectMenuEl.value];\n const withinBoundaries = refs.some((r) => event.composedPath().includes(r));\n if (!withinBoundaries) {\n closeSelectMenu();\n }\n};\nconst onClickItem = (item: DisplayItem) => {\n value.value = item.value;\n closeSelectMenu();\n emit('change', item.value);\n nextTick(() => {\n validate();\n });\n};\nconst ensureMenuWidth = (parentEl: HTMLElement, menuEl: HTMLElement) => {\n menuEl.style.width = `${parentEl.offsetWidth}px`;\n};\nconst ensureMenuPosition = () => {\n nextTick(() => {\n ensureVisiblePosition(selectEl.value!, selectMenuEl.value!);\n ensureMenuWidth(selectEl.value!, selectMenuEl.value!);\n });\n};\nconst resetMenuPosition = () => {\n resetPosition(selectEl.value!, selectMenuEl.value!);\n};\nconst onChangeInputText = (text: string) => {\n emit('change:input', text);\n};\nconst closeSelectMenu = () => {\n selectMenu.value = false;\n inputRef.value?.blur();\n ensureInputText();\n};\nconst init = () => {\n ensureSelectedItem();\n ensureInputText();\n};\ninit();\n//#endregion\n\n//#region Lifecycle Hooks\nonMounted(() => {\n initPressEscapeEventListener();\n initClickOutsideEventListener();\n});\nonBeforeUnmount(() => {\n document.removeEventListener('keydown', closeOnEscapePressed);\n document.removeEventListener('click', closeOnClickOutside);\n unlockScrollBody();\n // Make sure dropdown menu unmounted with itself\n resetMenuPosition();\n});\n//#endregion\n\n__expose({ validate, selectMenu });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", {\n ref_key: \"selectEl\",\n ref: selectEl\n }, [\n _createVNode(BLabel, {\n id: id.value,\n label: _ctx.label,\n required: _ctx.required\n }, null, 8, [\"id\", \"label\", \"required\"]),\n (props.allowInput)\n ? (_openBlock(), _createBlock(BTextField, {\n key: 0,\n id: id.value,\n ref_key: \"inputRef\",\n ref: inputRef,\n modelValue: inputText.value,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event: any) => ((inputText).value = $event)),\n onChangeInputText\n ],\n disabled: props.disabled,\n placeholder: props.placeholder,\n \"hide-details\": \"\",\n onFocus: _cache[1] || (_cache[1] = ($event: any) => (selectMenu.value = true)),\n \"onClick:append\": _cache[2] || (_cache[2] = ($event: any) => (inputRef.value?.focus()))\n }, {\n appendIcon: _withCtx(() => [\n (_openBlock(), _createElementBlock(\"svg\", {\n class: _normalizeClass([[selectMenu.value ? 'ds-rotate-180' : ''], \"ds-h-4 ds-w-4 ds-transition-transform\"]),\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _cache[4] || (_cache[4] = [\n _createElementVNode(\"path\", { d: \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\" }, null, -1)\n ]), 2))\n ]),\n _: 1\n }, 8, [\"id\", \"modelValue\", \"disabled\", \"placeholder\"]))\n : (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n id: id.value,\n class: _normalizeClass(btnCssClass.value),\n disabled: props.disabled,\n type: \"button\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (selectMenu.value = !selectMenu.value))\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([_ctx.valueCssClass, \"ds-truncate\"])\n }, [\n (selectedItem.value?.text)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(selectedItem.value?.text), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(props.placeholder), 1))\n ], 2),\n _cache[6] || (_cache[6] = _createTextVNode(\"   \")),\n (_openBlock(), _createElementBlock(\"svg\", {\n class: _normalizeClass([[selectMenu.value ? 'ds-rotate-180' : ''], \"ds-h-4 ds-w-4 ds-transition-transform\"]),\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _cache[5] || (_cache[5] = [\n _createElementVNode(\"path\", { d: \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\" }, null, -1)\n ]), 2))\n ], 10, _hoisted_1)),\n _withDirectives(_createElementVNode(\"div\", {\n id: `${id.value}Menu`,\n ref_key: \"selectMenuEl\",\n ref: selectMenuEl,\n class: _normalizeClass([_ctx.menuCssClass, \"ds-absolute ds-z-50 ds-min-w-[8rem] ds-py-1\"]),\n \"data-cy\": _ctx.$attrs['data-cy'] ? `${_ctx.$attrs['data-cy']}Menu` : undefined,\n \"data-ut\": _ctx.$attrs['data-ut'] ? `${_ctx.$attrs['data-ut']}Menu` : undefined\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: `item${index}`,\n class: \"ds-cursor-pointer\",\n onClick: ($event: any) => (onClickItem(item))\n }, [\n _createElementVNode(\"a\", {\n class: _normalizeClass([\n item.cssClass +\n `${item.value === value.value ? ' ds-bg-gray-150' : ''}`\n , \"ds-block ds-px-4 ds-py-2 hover:ds-bg-gray-150\"])\n }, _toDisplayString(item?.text), 3)\n ], 8, _hoisted_7))\n }), 128))\n ])\n ])\n ], 10, _hoisted_4), [\n [_vShow, selectMenu.value]\n ])\n ], 512),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_sfc_main","_defineComponent","__props","__expose","__emit","props","emit","selectEl","ref","inputRef","selectMenuEl","selectMenu","t","useI18n","validateRequired","val","inputText","selectedItem","id","computed","uuid","value","btnCssClass","result","validationResult","vRules","validate","useValidationField","watch","lockScrollBody","ensureMenuPosition","unlockScrollBody","resetMenuPosition","ensureSelectedItem","ensureInputText","_a","i","initPressEscapeEventListener","closeOnEscapePressed","event","closeSelectMenu","initClickOutsideEventListener","closeOnClickOutside","r","onClickItem","item","nextTick","ensureMenuWidth","parentEl","menuEl","ensureVisiblePosition","resetPosition","onChangeInputText","text","onMounted","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_createVNode","BLabel","_createBlock","BTextField","$event","_withCtx","_normalizeClass","_toDisplayString","_b","_createTextVNode","_withDirectives","_Fragment","_renderList","index","_vShow","_createCommentVNode","BErrorMessage","_unref"],"mappings":"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"}
@@ -1,207 +1,81 @@
1
- import { defineComponent as J, ref as r, computed as h, watch as M, nextTick as R, onMounted as K, onBeforeUnmount as Q, openBlock as o, createElementBlock as d, createElementVNode as n, createVNode as X, createBlock as P, withCtx as Y, normalizeClass as i, toDisplayString as $, createTextVNode as Z, withDirectives as ee, Fragment as se, renderList as te, vShow as le, unref as oe, createCommentVNode as ae } from "vue";
2
- import { useValidationField as de } from "./design-system3.mjs";
3
- import { lockScrollBody as ne, unlockScrollBody as S, ensureVisiblePosition as ue, resetPosition as re } from "./design-system6.mjs";
4
- import { useI18n as ie } from "./design-system49.mjs";
5
- import ce from "./design-system14.mjs";
6
- import ve from "./design-system15.mjs";
7
- import pe from "./design-system39.mjs";
8
- import fe from "./design-system98.mjs";
9
- const me = ["id", "disabled"], be = { key: 0 }, ge = {
10
- key: 1,
11
- class: "ds-text-black/[0.4]"
12
- }, ke = ["id", "data-cy", "data-ut"], he = { class: "ds-max-h-72 ds-overflow-y-auto ds-rounded-lg ds-bg-white ds-shadow" }, we = { class: "ds-py-1 ds-text-sm ds-text-black/[0.85]" }, ye = ["onClick"], Re = /* @__PURE__ */ J({
13
- __name: "BSelect",
1
+ import { defineComponent as y, computed as o, openBlock as t, createElementBlock as h, createVNode as V, withDirectives as q, createElementVNode as B, normalizeClass as C, vModelText as k, createBlock as w, unref as _, createCommentVNode as x } from "vue";
2
+ import { useValidationField as R } from "./design-system3.mjs";
3
+ import { useI18n as M } from "./design-system49.mjs";
4
+ import E from "./design-system29.mjs";
5
+ import D from "./design-system14.mjs";
6
+ import I from "./design-system98.mjs";
7
+ const N = ["id", "autocomplete", "disabled", "placeholder", "readonly", "rows"], A = /* @__PURE__ */ y({
8
+ __name: "BTextarea",
14
9
  props: {
15
10
  inputId: { default: "" },
11
+ inputCssClass: { default: "" },
16
12
  modelValue: {},
13
+ validationRules: { default: void 0 },
17
14
  label: { default: "" },
18
- items: {},
19
- disabled: { type: Boolean, default: !1 },
20
15
  placeholder: { default: "" },
21
- valueCssClass: { default: "" },
22
- menuCssClass: { default: "" },
23
- validationRules: { default: void 0 },
16
+ autocomplete: { type: Boolean, default: !1 },
17
+ disabled: { type: Boolean, default: !1 },
18
+ readonly: { type: Boolean, default: !1 },
19
+ rows: { default: 3 },
24
20
  required: { type: Boolean, default: !1 },
25
21
  requiredErrorMessage: { default: "" },
26
- hideDetails: { type: Boolean, default: !1 },
27
- allowInput: { type: Boolean, default: !1 }
22
+ hideDetails: { type: Boolean, default: !1 }
28
23
  },
29
- emits: ["change", "open", "close", "change:input", "update:modelValue"],
30
- setup(T, { expose: _, emit: z }) {
31
- const t = T, c = z, v = r(null), w = r(null), p = r(null), a = r(!1), { t: D } = ie(), F = {
32
- validateRule: (e) => !!e,
33
- errorMessage: () => t.requiredErrorMessage || D("ds.global.field_required")
34
- }, y = r(""), f = r(), m = h(() => t.inputId || `id-${fe()}`), u = h({
24
+ emits: ["update:modelValue"],
25
+ setup(u, { expose: i, emit: n }) {
26
+ const l = u, f = n, { t: c } = M(), p = {
27
+ validateRule: (e) => typeof e == "number" ? !!e : !!(e && (e != null && e.trim())),
28
+ errorMessage: () => l.requiredErrorMessage || c("ds.global.field_required")
29
+ }, d = o(() => l.inputId || `id-${I()}`), a = o({
35
30
  get() {
36
- return t.modelValue;
31
+ return l.modelValue;
37
32
  },
38
33
  set(e) {
39
- c("update:modelValue", e);
34
+ f("update:modelValue", e);
40
35
  }
41
- }), N = h(() => {
42
- let e = "ds-border ds-drop-shadow-light ds-text-sm ds-h-[40px] ds-px-3 ds-rounded-lg ds-block ds-w-full ds-inline-flex ds-items-center ds-justify-between ";
43
- return e += t.disabled ? "ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/[0.4] " : "ds-bg-white ds-text-black/[0.85] ", e += V.value.valid ? "ds-border-black/10 focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus " : "ds-border-error focus:ds-ring-1 focus:ds-ring-error ", e;
44
- }), O = h(() => {
45
- let e = [];
46
- return t.required && e.push(F), t.validationRules && (e = e.concat(t.validationRules)), e.length ? e : void 0;
47
- }), { validate: B, validationResult: V } = de(
48
- m.value,
49
- u,
50
- O.value
51
- );
52
- M(a, (e) => {
53
- e ? (ne(), G(), c("open")) : (S(), L(), c("close"));
54
- }), M(u, () => {
55
- C(), b();
56
- }), M(
57
- () => t.items,
58
- () => {
59
- var e;
60
- u.value && !((e = f.value) != null && e.value) && (C(), b());
61
- },
36
+ }), m = o(() => [
62
37
  {
63
- deep: !0
64
- }
38
+ "ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/40": l.disabled,
39
+ "ds-text-black/[0.85]": !l.disabled,
40
+ "ds-border-error focus:ds-ring-1 focus:ds-ring-error": !r.value.valid,
41
+ "ds-border-black/[0.1] focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus": r.value.valid
42
+ },
43
+ l.inputCssClass
44
+ ]), b = o(() => {
45
+ let e = [];
46
+ return l.required && e.push(p), l.validationRules && (e = e.concat(l.validationRules)), e.length ? e : void 0;
47
+ }), { validate: v, validationResult: r } = R(
48
+ d.value,
49
+ a,
50
+ b.value
65
51
  );
66
- const C = () => {
67
- var e;
68
- f.value = (e = t.items) == null ? void 0 : e.find((s) => s.value === u.value);
69
- }, b = () => {
70
- var e;
71
- t.allowInput && (y.value = ((e = f.value) == null ? void 0 : e.text) || "");
72
- }, U = () => {
73
- document.addEventListener("keydown", I);
74
- }, I = (e) => {
75
- e.key === "Escape" && x();
76
- }, W = () => {
77
- document.addEventListener("click", q);
78
- }, q = (e) => {
79
- [v.value, p.value].some((g) => e.composedPath().includes(g)) || x();
80
- }, j = (e) => {
81
- u.value = e.value, x(), c("change", e.value), R(() => {
82
- B();
83
- });
84
- }, A = (e, s) => {
85
- s.style.width = `${e.offsetWidth}px`;
86
- }, G = () => {
87
- R(() => {
88
- ue(v.value, p.value), A(v.value, p.value);
89
- });
90
- }, L = () => {
91
- re(v.value, p.value);
92
- }, H = (e) => {
93
- c("change:input", e);
94
- }, x = () => {
95
- var e;
96
- a.value = !1, (e = w.value) == null || e.blur(), b();
97
- };
98
- return (() => {
99
- C(), b();
100
- })(), K(() => {
101
- U(), W();
102
- }), Q(() => {
103
- document.removeEventListener("keydown", I), document.removeEventListener("click", q), S(), L();
104
- }), _({ validate: B, selectMenu: a }), (e, s) => {
105
- var E, g;
106
- return o(), d("div", null, [
107
- n("div", {
108
- ref_key: "selectEl",
109
- ref: v
110
- }, [
111
- X(ve, {
112
- id: m.value,
113
- label: e.label,
114
- required: e.required
115
- }, null, 8, ["id", "label", "required"]),
116
- t.allowInput ? (o(), P(pe, {
117
- key: 0,
118
- id: m.value,
119
- ref_key: "inputRef",
120
- ref: w,
121
- modelValue: y.value,
122
- "onUpdate:modelValue": [
123
- s[0] || (s[0] = (l) => y.value = l),
124
- H
125
- ],
126
- disabled: t.disabled,
127
- placeholder: t.placeholder,
128
- "hide-details": "",
129
- onFocus: s[1] || (s[1] = (l) => a.value = !0),
130
- "onClick:append": s[2] || (s[2] = (l) => {
131
- var k;
132
- return (k = w.value) == null ? void 0 : k.focus();
133
- })
134
- }, {
135
- appendIcon: Y(() => [
136
- (o(), d("svg", {
137
- class: i([[a.value ? "ds-rotate-180" : ""], "ds-h-4 ds-w-4 ds-transition-transform"]),
138
- viewBox: "0 0 320 512",
139
- xmlns: "http://www.w3.org/2000/svg"
140
- }, s[4] || (s[4] = [
141
- n("path", { d: "M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z" }, null, -1)
142
- ]), 2))
143
- ]),
144
- _: 1
145
- }, 8, ["id", "modelValue", "disabled", "placeholder"])) : (o(), d("button", {
146
- key: 1,
147
- id: m.value,
148
- class: i(N.value),
149
- disabled: t.disabled,
150
- type: "button",
151
- onClick: s[3] || (s[3] = (l) => a.value = !a.value)
152
- }, [
153
- n("span", {
154
- class: i([e.valueCssClass, "ds-truncate"])
155
- }, [
156
- (E = f.value) != null && E.text ? (o(), d("span", be, $((g = f.value) == null ? void 0 : g.text), 1)) : (o(), d("span", ge, $(t.placeholder), 1))
157
- ], 2),
158
- s[6] || (s[6] = Z("   ")),
159
- (o(), d("svg", {
160
- class: i([[a.value ? "ds-rotate-180" : ""], "ds-h-4 ds-w-4 ds-transition-transform"]),
161
- viewBox: "0 0 320 512",
162
- xmlns: "http://www.w3.org/2000/svg"
163
- }, s[5] || (s[5] = [
164
- n("path", { d: "M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z" }, null, -1)
165
- ]), 2))
166
- ], 10, me)),
167
- ee(n("div", {
168
- id: `${m.value}Menu`,
169
- ref_key: "selectMenuEl",
170
- ref: p,
171
- class: i([e.menuCssClass, "ds-absolute ds-z-50 ds-min-w-[8rem] ds-py-1"]),
172
- "data-cy": e.$attrs["data-cy"] ? `${e.$attrs["data-cy"]}Menu` : void 0,
173
- "data-ut": e.$attrs["data-ut"] ? `${e.$attrs["data-ut"]}Menu` : void 0
174
- }, [
175
- n("div", he, [
176
- n("ul", we, [
177
- (o(!0), d(se, null, te(e.items, (l, k) => (o(), d("li", {
178
- key: `item${k}`,
179
- class: "ds-cursor-pointer",
180
- onClick: (xe) => j(l)
181
- }, [
182
- n("a", {
183
- class: i([
184
- l.cssClass + `${l.value === u.value ? " ds-bg-gray-150" : ""}`,
185
- "ds-block ds-px-4 ds-py-2 hover:ds-bg-gray-150"
186
- ])
187
- }, $(l == null ? void 0 : l.text), 3)
188
- ], 8, ye))), 128))
189
- ])
190
- ])
191
- ], 10, ke), [
192
- [le, a.value]
193
- ])
194
- ], 512),
195
- e.hideDetails ? ae("", !0) : (o(), P(ce, {
196
- key: 0,
197
- "error-message": oe(V).errorMessage(),
198
- class: "ds-mt-1"
199
- }, null, 8, ["error-message"]))
200
- ]);
201
- };
52
+ return i({ validate: v }), (e, s) => (t(), h("div", null, [
53
+ V(D, {
54
+ id: d.value,
55
+ label: e.label,
56
+ required: e.required
57
+ }, null, 8, ["id", "label", "required"]),
58
+ q(B("textarea", {
59
+ id: d.value,
60
+ "onUpdate:modelValue": s[0] || (s[0] = (g) => a.value = g),
61
+ autocomplete: l.autocomplete ? "on" : "off",
62
+ class: C([m.value, "ds-block ds-w-full ds-rounded-lg ds-border ds-px-3 ds-py-1 ds-text-sm ds-drop-shadow-light"]),
63
+ disabled: l.disabled,
64
+ placeholder: l.placeholder,
65
+ readonly: l.readonly,
66
+ rows: l.rows
67
+ }, null, 10, N), [
68
+ [k, a.value]
69
+ ]),
70
+ e.hideDetails ? x("", !0) : (t(), w(E, {
71
+ key: 0,
72
+ "error-message": _(r).errorMessage(),
73
+ class: "ds-mt-1"
74
+ }, null, 8, ["error-message"]))
75
+ ]));
202
76
  }
203
77
  });
204
78
  export {
205
- Re as default
79
+ A as default
206
80
  };
207
81
  //# sourceMappingURL=design-system20.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"design-system20.mjs","sources":["../src/components/BSelect.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, vShow as _vShow, withDirectives as _withDirectives, unref as _unref } from \"vue\"\n\nconst _hoisted_1 = [\"id\", \"disabled\"]\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = {\n key: 1,\n class: \"ds-text-black/[0.4]\"\n}\nconst _hoisted_4 = [\"id\", \"data-cy\", \"data-ut\"]\nconst _hoisted_5 = { class: \"ds-max-h-72 ds-overflow-y-auto ds-rounded-lg ds-bg-white ds-shadow\" }\nconst _hoisted_6 = { class: \"ds-py-1 ds-text-sm ds-text-black/[0.85]\" }\nconst _hoisted_7 = [\"onClick\"]\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport {\n ensureVisiblePosition,\n lockScrollBody,\n resetPosition,\n unlockScrollBody,\n} from '@/helpers/ComponentHelper';\nimport type { DisplayItem } from '@/types';\nimport { v4 as uuid } from 'uuid';\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\nimport BTextField from './BTextField.vue';\n\n//#region Props\nexport interface BSelectProps {\n inputId?: string;\n modelValue: string | number;\n label?: string;\n items: DisplayItem[];\n disabled?: boolean;\n placeholder?: string;\n valueCssClass?: string;\n menuCssClass?: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n requiredErrorMessage?: string;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n /**\n * Allow to type to search.\n */\n allowInput?: boolean;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BSelect',\n props: {\n inputId: { default: '' },\n modelValue: {},\n label: { default: '' },\n items: {},\n disabled: { type: Boolean, default: false },\n placeholder: { default: '' },\n valueCssClass: { default: '' },\n menuCssClass: { default: '' },\n validationRules: { default: undefined },\n required: { type: Boolean, default: false },\n requiredErrorMessage: { default: '' },\n hideDetails: { type: Boolean, default: false },\n allowInput: { type: Boolean, default: false }\n },\n emits: [\"change\", \"open\", \"close\", \"change:input\", \"update:modelValue\"],\n setup(__props: any, { expose: __expose, emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nconst selectEl = ref<HTMLElement | null>(null);\nconst inputRef = ref<InstanceType<typeof BTextField> | null>(null);\nconst selectMenuEl = ref<HTMLElement | null>(null);\nconst selectMenu = ref(false);\nconst { t } = useI18n();\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst inputText = ref('');\nconst selectedItem = ref<DisplayItem>();\nconst id = computed(() => props.inputId || `id-${uuid()}`);\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\nconst btnCssClass = computed(() => {\n let result = `ds-border ds-drop-shadow-light ds-text-sm ds-h-[40px] ds-px-3 ds-rounded-lg ds-block ds-w-full ds-inline-flex ds-items-center ds-justify-between `;\n result += props.disabled\n ? `ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/[0.4] `\n : `ds-bg-white ds-text-black/[0.85] `;\n result += !validationResult.value.valid\n ? `ds-border-error focus:ds-ring-1 focus:ds-ring-error `\n : `ds-border-black/10 focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus `;\n\n return result;\n});\nconst vRules = computed(() => {\n let result: ValidationRule[] = [];\n\n if (props.required) {\n result.push(validateRequired);\n }\n if (props.validationRules) {\n result = result.concat(props.validationRules);\n }\n\n return result.length ? result : undefined;\n});\n\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n//#endregion\n\n//#region Watchers\nwatch(selectMenu, (val) => {\n if (val) {\n lockScrollBody();\n ensureMenuPosition();\n emit('open');\n } else {\n unlockScrollBody();\n resetMenuPosition();\n emit('close');\n }\n});\nwatch(value, () => {\n ensureSelectedItem();\n ensureInputText();\n});\nwatch(\n () => props.items,\n () => {\n if (value.value && !selectedItem.value?.value) {\n ensureSelectedItem();\n ensureInputText();\n }\n },\n {\n deep: true,\n },\n);\n//#endregion\n\n//#region Methods\nconst ensureSelectedItem = () => {\n selectedItem.value = props.items?.find((i) => i.value === value.value);\n};\nconst ensureInputText = () => {\n if (props.allowInput) {\n inputText.value = selectedItem.value?.text || '';\n }\n};\nconst initPressEscapeEventListener = () => {\n document.addEventListener('keydown', closeOnEscapePressed);\n};\nconst closeOnEscapePressed = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeSelectMenu();\n }\n};\nconst initClickOutsideEventListener = () => {\n document.addEventListener('click', closeOnClickOutside);\n};\nconst closeOnClickOutside = (event: any) => {\n const refs = [selectEl.value, selectMenuEl.value];\n const withinBoundaries = refs.some((r) => event.composedPath().includes(r));\n if (!withinBoundaries) {\n closeSelectMenu();\n }\n};\nconst onClickItem = (item: DisplayItem) => {\n value.value = item.value;\n closeSelectMenu();\n emit('change', item.value);\n nextTick(() => {\n validate();\n });\n};\nconst ensureMenuWidth = (parentEl: HTMLElement, menuEl: HTMLElement) => {\n menuEl.style.width = `${parentEl.offsetWidth}px`;\n};\nconst ensureMenuPosition = () => {\n nextTick(() => {\n ensureVisiblePosition(selectEl.value!, selectMenuEl.value!);\n ensureMenuWidth(selectEl.value!, selectMenuEl.value!);\n });\n};\nconst resetMenuPosition = () => {\n resetPosition(selectEl.value!, selectMenuEl.value!);\n};\nconst onChangeInputText = (text: string) => {\n emit('change:input', text);\n};\nconst closeSelectMenu = () => {\n selectMenu.value = false;\n inputRef.value?.blur();\n ensureInputText();\n};\nconst init = () => {\n ensureSelectedItem();\n ensureInputText();\n};\ninit();\n//#endregion\n\n//#region Lifecycle Hooks\nonMounted(() => {\n initPressEscapeEventListener();\n initClickOutsideEventListener();\n});\nonBeforeUnmount(() => {\n document.removeEventListener('keydown', closeOnEscapePressed);\n document.removeEventListener('click', closeOnClickOutside);\n unlockScrollBody();\n // Make sure dropdown menu unmounted with itself\n resetMenuPosition();\n});\n//#endregion\n\n__expose({ validate, selectMenu });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", {\n ref_key: \"selectEl\",\n ref: selectEl\n }, [\n _createVNode(BLabel, {\n id: id.value,\n label: _ctx.label,\n required: _ctx.required\n }, null, 8, [\"id\", \"label\", \"required\"]),\n (props.allowInput)\n ? (_openBlock(), _createBlock(BTextField, {\n key: 0,\n id: id.value,\n ref_key: \"inputRef\",\n ref: inputRef,\n modelValue: inputText.value,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event: any) => ((inputText).value = $event)),\n onChangeInputText\n ],\n disabled: props.disabled,\n placeholder: props.placeholder,\n \"hide-details\": \"\",\n onFocus: _cache[1] || (_cache[1] = ($event: any) => (selectMenu.value = true)),\n \"onClick:append\": _cache[2] || (_cache[2] = ($event: any) => (inputRef.value?.focus()))\n }, {\n appendIcon: _withCtx(() => [\n (_openBlock(), _createElementBlock(\"svg\", {\n class: _normalizeClass([[selectMenu.value ? 'ds-rotate-180' : ''], \"ds-h-4 ds-w-4 ds-transition-transform\"]),\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _cache[4] || (_cache[4] = [\n _createElementVNode(\"path\", { d: \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\" }, null, -1)\n ]), 2))\n ]),\n _: 1\n }, 8, [\"id\", \"modelValue\", \"disabled\", \"placeholder\"]))\n : (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n id: id.value,\n class: _normalizeClass(btnCssClass.value),\n disabled: props.disabled,\n type: \"button\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (selectMenu.value = !selectMenu.value))\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([_ctx.valueCssClass, \"ds-truncate\"])\n }, [\n (selectedItem.value?.text)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(selectedItem.value?.text), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(props.placeholder), 1))\n ], 2),\n _cache[6] || (_cache[6] = _createTextVNode(\"   \")),\n (_openBlock(), _createElementBlock(\"svg\", {\n class: _normalizeClass([[selectMenu.value ? 'ds-rotate-180' : ''], \"ds-h-4 ds-w-4 ds-transition-transform\"]),\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _cache[5] || (_cache[5] = [\n _createElementVNode(\"path\", { d: \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\" }, null, -1)\n ]), 2))\n ], 10, _hoisted_1)),\n _withDirectives(_createElementVNode(\"div\", {\n id: `${id.value}Menu`,\n ref_key: \"selectMenuEl\",\n ref: selectMenuEl,\n class: _normalizeClass([_ctx.menuCssClass, \"ds-absolute ds-z-50 ds-min-w-[8rem] ds-py-1\"]),\n \"data-cy\": _ctx.$attrs['data-cy'] ? `${_ctx.$attrs['data-cy']}Menu` : undefined,\n \"data-ut\": _ctx.$attrs['data-ut'] ? `${_ctx.$attrs['data-ut']}Menu` : undefined\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: `item${index}`,\n class: \"ds-cursor-pointer\",\n onClick: ($event: any) => (onClickItem(item))\n }, [\n _createElementVNode(\"a\", {\n class: _normalizeClass([\n item.cssClass +\n `${item.value === value.value ? ' ds-bg-gray-150' : ''}`\n , \"ds-block ds-px-4 ds-py-2 hover:ds-bg-gray-150\"])\n }, _toDisplayString(item?.text), 3)\n ], 8, _hoisted_7))\n }), 128))\n ])\n ])\n ], 10, _hoisted_4), [\n [_vShow, selectMenu.value]\n ])\n ], 512),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_sfc_main","_defineComponent","__props","__expose","__emit","props","emit","selectEl","ref","inputRef","selectMenuEl","selectMenu","t","useI18n","validateRequired","val","inputText","selectedItem","id","computed","uuid","value","btnCssClass","result","validationResult","vRules","validate","useValidationField","watch","lockScrollBody","ensureMenuPosition","unlockScrollBody","resetMenuPosition","ensureSelectedItem","ensureInputText","_a","i","initPressEscapeEventListener","closeOnEscapePressed","event","closeSelectMenu","initClickOutsideEventListener","closeOnClickOutside","r","onClickItem","item","nextTick","ensureMenuWidth","parentEl","menuEl","ensureVisiblePosition","resetPosition","onChangeInputText","text","onMounted","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_createVNode","BLabel","_createBlock","BTextField","$event","_withCtx","_normalizeClass","_toDisplayString","_b","_createTextVNode","_withDirectives","_Fragment","_renderList","index","_vShow","_createCommentVNode","BErrorMessage","_unref"],"mappings":"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"}
1
+ {"version":3,"file":"design-system20.mjs","sources":["../src/components/BTextarea.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withDirectives as _withDirectives, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"id\", \"autocomplete\", \"disabled\", \"placeholder\", \"readonly\", \"rows\"]\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { v4 as uuid } from 'uuid';\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\n\n//#region Props\nexport interface BTextareaProps {\n inputId?: string;\n inputCssClass?: string;\n modelValue: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n label?: string;\n placeholder?: string;\n autocomplete?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n /**\n * Number of rows.\n */\n rows?: number;\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n requiredErrorMessage?: string;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BTextarea',\n props: {\n inputId: { default: '' },\n inputCssClass: { default: '' },\n modelValue: {},\n validationRules: { default: undefined },\n label: { default: '' },\n placeholder: { default: '' },\n autocomplete: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n rows: { default: 3 },\n required: { type: Boolean, default: false },\n requiredErrorMessage: { default: '' },\n hideDetails: { type: Boolean, default: false }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { expose: __expose, emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nconst { t } = useI18n();\nconst validateRequired: ValidationRule = {\n validateRule: (val: string | number) => {\n if (typeof val === 'number') {\n return !!val;\n }\n return !!(val && val?.trim());\n },\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst id = computed(() => props.inputId || `id-${uuid()}`);\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\nconst inputCssClassValue = computed(() => [\n {\n 'ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/40': props.disabled,\n 'ds-text-black/[0.85]': !props.disabled,\n 'ds-border-error focus:ds-ring-1 focus:ds-ring-error':\n !validationResult.value.valid,\n 'ds-border-black/[0.1] focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus':\n validationResult.value.valid,\n },\n props.inputCssClass,\n]);\nconst vRules = computed(() => {\n let result: ValidationRule[] = [];\n\n if (props.required) {\n result.push(validateRequired);\n }\n if (props.validationRules) {\n result = result.concat(props.validationRules);\n }\n\n return result.length ? result : undefined;\n});\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n//#endregion\n\n__expose({ validate });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(BLabel, {\n id: id.value,\n label: _ctx.label,\n required: _ctx.required\n }, null, 8, [\"id\", \"label\", \"required\"]),\n _withDirectives(_createElementVNode(\"textarea\", {\n id: id.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((value).value = $event)),\n autocomplete: props.autocomplete ? 'on' : 'off',\n class: _normalizeClass([inputCssClassValue.value, \"ds-block ds-w-full ds-rounded-lg ds-border ds-px-3 ds-py-1 ds-text-sm ds-drop-shadow-light\"]),\n disabled: props.disabled,\n placeholder: props.placeholder,\n readonly: props.readonly,\n rows: props.rows\n }, null, 10, _hoisted_1), [\n [_vModelText, value.value]\n ]),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_sfc_main","_defineComponent","__props","__expose","__emit","props","emit","t","useI18n","validateRequired","val","id","computed","uuid","value","inputCssClassValue","validationResult","vRules","result","validate","useValidationField","_ctx","_cache","_openBlock","_createElementBlock","_createVNode","BLabel","_withDirectives","_createElementVNode","$event","_normalizeClass","_vModelText","_createCommentVNode","_createBlock","BErrorMessage","_unref"],"mappings":"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"}
@@ -1,81 +1,50 @@
1
- import { defineComponent as y, computed as o, openBlock as t, createElementBlock as h, createVNode as V, withDirectives as q, createElementVNode as B, normalizeClass as C, vModelText as k, createBlock as w, unref as _, createCommentVNode as x } from "vue";
2
- import { useValidationField as R } from "./design-system3.mjs";
3
- import { useI18n as M } from "./design-system49.mjs";
4
- import E from "./design-system14.mjs";
5
- import D from "./design-system15.mjs";
6
- import I from "./design-system98.mjs";
7
- const N = ["id", "autocomplete", "disabled", "placeholder", "readonly", "rows"], A = /* @__PURE__ */ y({
8
- __name: "BTextarea",
1
+ import { defineComponent as u, computed as m, withDirectives as p, openBlock as o, createElementBlock as l, createVNode as v, TransitionGroup as _, withCtx as f, Fragment as y, renderList as g, createBlock as h, vShow as x } from "vue";
2
+ import C from "./design-system40.mjs";
3
+ const V = { class: "ds-fixed ds-right-4 ds-top-4 ds-z-[110]" }, $ = /* @__PURE__ */ u({
4
+ __name: "BToast",
9
5
  props: {
10
- inputId: { default: "" },
11
- inputCssClass: { default: "" },
12
- modelValue: {},
13
- validationRules: { default: void 0 },
14
- label: { default: "" },
15
- placeholder: { default: "" },
16
- autocomplete: { type: Boolean, default: !1 },
17
- disabled: { type: Boolean, default: !1 },
18
- readonly: { type: Boolean, default: !1 },
19
- rows: { default: 3 },
20
- required: { type: Boolean, default: !1 },
21
- requiredErrorMessage: { default: "" },
22
- hideDetails: { type: Boolean, default: !1 }
6
+ modelValue: {}
23
7
  },
24
8
  emits: ["update:modelValue"],
25
- setup(u, { expose: i, emit: n }) {
26
- const l = u, f = n, { t: c } = M(), p = {
27
- validateRule: (e) => typeof e == "number" ? !!e : !!(e && (e != null && e.trim())),
28
- errorMessage: () => l.requiredErrorMessage || c("ds.global.field_required")
29
- }, d = o(() => l.inputId || `id-${I()}`), a = o({
9
+ setup(n, { emit: c }) {
10
+ const i = n, s = m({
30
11
  get() {
31
- return l.modelValue;
12
+ return i.modelValue;
32
13
  },
33
14
  set(e) {
34
- f("update:modelValue", e);
15
+ r("update:modelValue", e);
35
16
  }
36
- }), m = o(() => [
37
- {
38
- "ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/40": l.disabled,
39
- "ds-text-black/[0.85]": !l.disabled,
40
- "ds-border-error focus:ds-ring-1 focus:ds-ring-error": !r.value.valid,
41
- "ds-border-black/[0.1] focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus": r.value.valid
42
- },
43
- l.inputCssClass
44
- ]), b = o(() => {
45
- let e = [];
46
- return l.required && e.push(p), l.validationRules && (e = e.concat(l.validationRules)), e.length ? e : void 0;
47
- }), { validate: v, validationResult: r } = R(
48
- d.value,
49
- a,
50
- b.value
51
- );
52
- return i({ validate: v }), (e, s) => (t(), h("div", null, [
53
- V(D, {
54
- id: d.value,
55
- label: e.label,
56
- required: e.required
57
- }, null, 8, ["id", "label", "required"]),
58
- q(B("textarea", {
59
- id: d.value,
60
- "onUpdate:modelValue": s[0] || (s[0] = (g) => a.value = g),
61
- autocomplete: l.autocomplete ? "on" : "off",
62
- class: C([m.value, "ds-block ds-w-full ds-rounded-lg ds-border ds-px-3 ds-py-1 ds-text-sm ds-drop-shadow-light"]),
63
- disabled: l.disabled,
64
- placeholder: l.placeholder,
65
- readonly: l.readonly,
66
- rows: l.rows
67
- }, null, 10, N), [
68
- [k, a.value]
69
- ]),
70
- e.hideDetails ? x("", !0) : (t(), w(E, {
71
- key: 0,
72
- "error-message": _(r).errorMessage(),
73
- class: "ds-mt-1"
74
- }, null, 8, ["error-message"]))
75
- ]));
17
+ }), r = c, d = (e) => {
18
+ s.value.splice(e, 1);
19
+ };
20
+ return (e, k) => p((o(), l("div", V, [
21
+ v(_, {
22
+ "enter-active-class": "ds-transition-all ds-duration-300 ds-ease-in-out",
23
+ "enter-from-class": "ds-opacity-0",
24
+ "enter-to-class": "ds-opacity-1",
25
+ "leave-active-class": "ds-transition-all ds-duration-300 ds-ease-in-out",
26
+ "leave-from-class": "ds-opacity-1",
27
+ "leave-to-class": "ds-opacity-0"
28
+ }, {
29
+ default: f(() => [
30
+ (o(!0), l(y, null, g(s.value, (t, a) => (o(), h(C, {
31
+ key: `toastItem${a}`,
32
+ icon: t.icon,
33
+ message: t.message,
34
+ text: t.text,
35
+ type: t.type,
36
+ class: "ds-my-2",
37
+ onClose: (B) => d(a)
38
+ }, null, 8, ["icon", "message", "text", "type", "onClose"]))), 128))
39
+ ]),
40
+ _: 1
41
+ })
42
+ ], 512)), [
43
+ [x, s.value.length > 0]
44
+ ]);
76
45
  }
77
46
  });
78
47
  export {
79
- A as default
48
+ $ as default
80
49
  };
81
50
  //# sourceMappingURL=design-system21.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"design-system21.mjs","sources":["../src/components/BTextarea.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withDirectives as _withDirectives, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"id\", \"autocomplete\", \"disabled\", \"placeholder\", \"readonly\", \"rows\"]\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { v4 as uuid } from 'uuid';\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\n\n//#region Props\nexport interface BTextareaProps {\n inputId?: string;\n inputCssClass?: string;\n modelValue: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n label?: string;\n placeholder?: string;\n autocomplete?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n /**\n * Number of rows.\n */\n rows?: number;\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n requiredErrorMessage?: string;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BTextarea',\n props: {\n inputId: { default: '' },\n inputCssClass: { default: '' },\n modelValue: {},\n validationRules: { default: undefined },\n label: { default: '' },\n placeholder: { default: '' },\n autocomplete: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n rows: { default: 3 },\n required: { type: Boolean, default: false },\n requiredErrorMessage: { default: '' },\n hideDetails: { type: Boolean, default: false }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { expose: __expose, emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nconst { t } = useI18n();\nconst validateRequired: ValidationRule = {\n validateRule: (val: string | number) => {\n if (typeof val === 'number') {\n return !!val;\n }\n return !!(val && val?.trim());\n },\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst id = computed(() => props.inputId || `id-${uuid()}`);\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\nconst inputCssClassValue = computed(() => [\n {\n 'ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/40': props.disabled,\n 'ds-text-black/[0.85]': !props.disabled,\n 'ds-border-error focus:ds-ring-1 focus:ds-ring-error':\n !validationResult.value.valid,\n 'ds-border-black/[0.1] focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus':\n validationResult.value.valid,\n },\n props.inputCssClass,\n]);\nconst vRules = computed(() => {\n let result: ValidationRule[] = [];\n\n if (props.required) {\n result.push(validateRequired);\n }\n if (props.validationRules) {\n result = result.concat(props.validationRules);\n }\n\n return result.length ? result : undefined;\n});\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n//#endregion\n\n__expose({ validate });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(BLabel, {\n id: id.value,\n label: _ctx.label,\n required: _ctx.required\n }, null, 8, [\"id\", \"label\", \"required\"]),\n _withDirectives(_createElementVNode(\"textarea\", {\n id: id.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((value).value = $event)),\n autocomplete: props.autocomplete ? 'on' : 'off',\n class: _normalizeClass([inputCssClassValue.value, \"ds-block ds-w-full ds-rounded-lg ds-border ds-px-3 ds-py-1 ds-text-sm ds-drop-shadow-light\"]),\n disabled: props.disabled,\n placeholder: props.placeholder,\n readonly: props.readonly,\n rows: props.rows\n }, null, 10, _hoisted_1), [\n [_vModelText, value.value]\n ]),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_sfc_main","_defineComponent","__props","__expose","__emit","props","emit","t","useI18n","validateRequired","val","id","computed","uuid","value","inputCssClassValue","validationResult","vRules","result","validate","useValidationField","_ctx","_cache","_openBlock","_createElementBlock","_createVNode","BLabel","_withDirectives","_createElementVNode","$event","_normalizeClass","_vModelText","_createCommentVNode","_createBlock","BErrorMessage","_unref"],"mappings":"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"}
1
+ {"version":3,"file":"design-system21.mjs","sources":["../src/components/BToast/BToast.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, TransitionGroup as _TransitionGroup, withCtx as _withCtx, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-fixed ds-right-4 ds-top-4 ds-z-[110]\" }\n\nimport type { BToastItemModel } from '@/types';\nimport { computed } from 'vue';\nimport BToastItem from './BToastItem.vue';\n\n//#region Props\nexport interface Props {\n modelValue: BToastItemModel[];\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BToast',\n props: {\n modelValue: {}\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Data\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Methods\nconst onCloseToastItem = (i: number) => {\n value.value.splice(i, 1);\n};\n//#endregion\n\nreturn (_ctx: any,_cache: any) => {\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_TransitionGroup, {\n \"enter-active-class\": \"ds-transition-all ds-duration-300 ds-ease-in-out\",\n \"enter-from-class\": \"ds-opacity-0\",\n \"enter-to-class\": \"ds-opacity-1\",\n \"leave-active-class\": \"ds-transition-all ds-duration-300 ds-ease-in-out\",\n \"leave-from-class\": \"ds-opacity-1\",\n \"leave-to-class\": \"ds-opacity-0\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(value.value, (toastItem, index) => {\n return (_openBlock(), _createBlock(BToastItem, {\n key: `toastItem${index}`,\n icon: toastItem.icon,\n message: toastItem.message,\n text: toastItem.text,\n type: toastItem.type,\n class: \"ds-my-2\",\n onClose: ($event: any) => (onCloseToastItem(index))\n }, null, 8, [\"icon\", \"message\", \"text\", \"type\", \"onClose\"]))\n }), 128))\n ]),\n _: 1\n })\n ], 512)), [\n [_vShow, value.value.length > 0]\n ])\n}\n}\n\n})"],"names":["_hoisted_1","_sfc_main","_defineComponent","__props","__emit","props","value","computed","val","emit","onCloseToastItem","i","_ctx","_cache","_withDirectives","_openBlock","_createElementBlock","_createVNode","_TransitionGroup","_withCtx","_Fragment","_renderList","toastItem","index","_createBlock","BToastItem","$event","_vShow"],"mappings":";;AAGA,MAAMA,IAAa,EAAE,OAAO,6CAYAC,IAAiBC,gBAAAA,EAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,YAAY,CAAC;AAAA,EACf;AAAA,EACA,OAAO,CAAC,mBAAmB;AAAA,EAC3B,MAAMC,GAAc,EAAE,MAAMC,KAAU;AAExC,UAAMC,IAAQF,GAIRG,IAAQC,EAAS;AAAA,MACrB,MAAM;AACJ,eAAOF,EAAM;AAAA,MACf;AAAA,MACA,IAAIG,GAAK;AACP,QAAAC,EAAK,qBAAqBD,CAAG;AAAA,MAC/B;AAAA,IAAA,CACD,GAIKC,IAAOL,GAIPM,IAAmB,CAACC,MAAc;AAChC,MAAAL,EAAA,MAAM,OAAOK,GAAG,CAAC;AAAA,IAAA;AAIlB,WAAA,CAACC,GAAUC,MACTC,GAAiBC,EAAA,GAAcC,EAAoB,OAAOhB,GAAY;AAAA,MAC3EiB,EAAaC,GAAkB;AAAA,QAC7B,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QACpB,kBAAkB;AAAA,QAClB,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QACpB,kBAAkB;AAAA,MAAA,GACjB;AAAA,QACD,SAASC,EAAS,MAAM;AAAA,WACrBJ,EAAW,EAAI,GAAGC,EAAoBI,GAAW,MAAMC,EAAYf,EAAM,OAAO,CAACgB,GAAWC,OACnFR,EAAA,GAAcS,EAAaC,GAAY;AAAA,YAC7C,KAAK,YAAYF,CAAK;AAAA,YACtB,MAAMD,EAAU;AAAA,YAChB,SAASA,EAAU;AAAA,YACnB,MAAMA,EAAU;AAAA,YAChB,MAAMA,EAAU;AAAA,YAChB,OAAO;AAAA,YACP,SAAS,CAACI,MAAiBhB,EAAiBa,CAAK;AAAA,UAAA,GAChD,MAAM,GAAG,CAAC,QAAQ,WAAW,QAAQ,QAAQ,SAAS,CAAC,EAC3D,GAAG,GAAG;AAAA,QAAA,CACR;AAAA,QACD,GAAG;AAAA,MAAA,CACJ;AAAA,IACH,GAAG,GAAG,IAAI;AAAA,MACR,CAACI,GAAQrB,EAAM,MAAM,SAAS,CAAC;AAAA,IAAA,CAChC;AAAA,EAEH;AAEA,CAAC;"}