bitboss-ui 0.1.80 → 0.1.82

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 (224) hide show
  1. package/dist/components/BaseButton/BaseButton.vue.d.ts +5 -2
  2. package/dist/components/BaseCheckbox/BaseCheckbox.vue.d.ts +3 -0
  3. package/dist/components/BaseCheckboxGroup/BaseCheckboxGroup.vue.d.ts +10 -2
  4. package/dist/components/BaseDatePicker/BaseDatePicker.vue.d.ts +3 -0
  5. package/dist/components/BaseDatePickerInput/BaseDatePickerInput.vue.d.ts +3 -0
  6. package/dist/components/BaseDialog/BaseDialog.vue.d.ts +3 -0
  7. package/dist/components/BaseInputContainer/BaseInputContainer.vue.d.ts +3 -0
  8. package/dist/components/BaseNumberInput/BaseNumberInput.vue.d.ts +4 -1
  9. package/dist/components/BaseRadioGroup/BaseRadioGroup.vue.d.ts +4 -1
  10. package/dist/components/BaseRating/BaseRating.vue.d.ts +4 -1
  11. package/dist/components/BaseSelect/BaseSelect.vue.d.ts +16 -2
  12. package/dist/components/BaseSlider/BaseSlider.vue.d.ts +3 -0
  13. package/dist/components/BaseSwitch/BaseSwitch.vue.d.ts +3 -0
  14. package/dist/components/BaseSwitchGroup/BaseSwitchGroup.vue.d.ts +3 -0
  15. package/dist/components/BaseTag/BaseTag.vue.d.ts +4 -1
  16. package/dist/components/BaseTextInput/BaseTextInput.vue.d.ts +4 -1
  17. package/dist/components/BaseTextarea/BaseTextarea.vue.d.ts +2 -2
  18. package/dist/components/BbAccordion/BbAccordion.vue.d.ts +5 -2
  19. package/dist/components/BbAlert/BbAlert.vue.d.ts +3 -0
  20. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +7 -58
  21. package/dist/components/BbBadge/BbBadge.vue.d.ts +4 -1
  22. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +3 -0
  23. package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +3 -0
  24. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +3 -0
  25. package/dist/components/BbChip/BbChip.vue.d.ts +7 -1
  26. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +4 -1
  27. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +3 -0
  28. package/dist/components/BbDialog/BbDialog.vue.d.ts +3 -0
  29. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +15 -3
  30. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +4 -1
  31. package/dist/components/BbDropzone/BbDropzone.vue.d.ts +6 -7
  32. package/dist/components/BbIcon/BbIcon.vue.d.ts +3 -0
  33. package/dist/components/BbIntersection/BbIntersection.vue.d.ts +4 -1
  34. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +3 -0
  35. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +3 -0
  36. package/dist/components/BbPagination/BbPagination.vue.d.ts +4 -1
  37. package/dist/components/BbPopover/BbPopover.vue.d.ts +14 -7
  38. package/dist/components/BbProgress/BbProgress.vue.d.ts +3 -0
  39. package/dist/components/BbRadio/BbRadio.vue.d.ts +3 -0
  40. package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +1 -6
  41. package/dist/components/BbRating/BbRating.vue.d.ts +3 -0
  42. package/dist/components/BbRatio/BbRatio.vue.d.ts +4 -1
  43. package/dist/components/BbSelect/BbSelect.vue.d.ts +14 -3
  44. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +5 -2
  45. package/dist/components/BbSpinner/BbSpinner.vue.d.ts +3 -0
  46. package/dist/components/BbSwitch/BbSwitch.vue.d.ts +3 -0
  47. package/dist/components/BbTab/BbTab.vue.d.ts +4 -1
  48. package/dist/components/BbTable/BbTable.vue.d.ts +258 -295
  49. package/dist/components/BbTable/types.d.ts +214 -0
  50. package/dist/components/BbTag/BbTag.vue.d.ts +3 -0
  51. package/dist/components/BbToast/BbToast.vue.d.ts +3 -0
  52. package/dist/components/BbToast/BbToastMessage.vue.d.ts +3 -0
  53. package/dist/components/BbTooltip/BbTooltip.vue.d.ts +8 -7
  54. package/dist/components/BbTree/BbTree.vue.d.ts +9 -1
  55. package/dist/composables/useItemText.d.ts +6 -1
  56. package/dist/index.d.ts +1 -1
  57. package/dist/index10.js +2 -2
  58. package/dist/index10.js.map +1 -1
  59. package/dist/index100.js +2 -2
  60. package/dist/index102.js +4 -3
  61. package/dist/index102.js.map +1 -1
  62. package/dist/index106.js +1 -1
  63. package/dist/index108.js +85 -57
  64. package/dist/index108.js.map +1 -1
  65. package/dist/index110.js +77 -55
  66. package/dist/index110.js.map +1 -1
  67. package/dist/index112.js +5 -5
  68. package/dist/index112.js.map +1 -1
  69. package/dist/index113.js +1 -1
  70. package/dist/index113.js.map +1 -1
  71. package/dist/index114.js +1 -1
  72. package/dist/index115.js +1 -1
  73. package/dist/index115.js.map +1 -1
  74. package/dist/index116.js +1 -1
  75. package/dist/index118.js +1 -1
  76. package/dist/index12.js +8 -8
  77. package/dist/index120.js +1 -1
  78. package/dist/index121.js +11 -11
  79. package/dist/index121.js.map +1 -1
  80. package/dist/index14.js +9 -9
  81. package/dist/index16.js +3 -3
  82. package/dist/index18.js +2 -2
  83. package/dist/index189.js +2 -2
  84. package/dist/index189.js.map +1 -1
  85. package/dist/index190.js +2 -4
  86. package/dist/index190.js.map +1 -1
  87. package/dist/index191.js +2 -2
  88. package/dist/index191.js.map +1 -1
  89. package/dist/index192.js +3 -2
  90. package/dist/index192.js.map +1 -1
  91. package/dist/index193.js +3 -2
  92. package/dist/index193.js.map +1 -1
  93. package/dist/index194.js +4 -3
  94. package/dist/index194.js.map +1 -1
  95. package/dist/index195.js +3 -35
  96. package/dist/index195.js.map +1 -1
  97. package/dist/index196.js +35 -6
  98. package/dist/index196.js.map +1 -1
  99. package/dist/index197.js +6 -350
  100. package/dist/index197.js.map +1 -1
  101. package/dist/index198.js +5 -134
  102. package/dist/index198.js.map +1 -1
  103. package/dist/index199.js +16 -5
  104. package/dist/index199.js.map +1 -1
  105. package/dist/index20.js +1 -1
  106. package/dist/index20.js.map +1 -1
  107. package/dist/index200.js +15 -18
  108. package/dist/index200.js.map +1 -1
  109. package/dist/index201.js +19 -2
  110. package/dist/index201.js.map +1 -1
  111. package/dist/index202.js +18 -184
  112. package/dist/index202.js.map +1 -1
  113. package/dist/index203.js +29 -23
  114. package/dist/index203.js.map +1 -1
  115. package/dist/index204.js +8 -331
  116. package/dist/index204.js.map +1 -1
  117. package/dist/index205.js +2 -2
  118. package/dist/index205.js.map +1 -1
  119. package/dist/index206.js +351 -2
  120. package/dist/index206.js.map +1 -1
  121. package/dist/index207.js +131 -13
  122. package/dist/index207.js.map +1 -1
  123. package/dist/index208.js +2 -16
  124. package/dist/index208.js.map +1 -1
  125. package/dist/index209.js +184 -18
  126. package/dist/index209.js.map +1 -1
  127. package/dist/index210.js +23 -29
  128. package/dist/index210.js.map +1 -1
  129. package/dist/index211.js +369 -8
  130. package/dist/index211.js.map +1 -1
  131. package/dist/index212.js +2 -3
  132. package/dist/index212.js.map +1 -1
  133. package/dist/index213.js +2 -3
  134. package/dist/index213.js.map +1 -1
  135. package/dist/index216.js +73 -53
  136. package/dist/index216.js.map +1 -1
  137. package/dist/index217.js +3 -3
  138. package/dist/index22.js +2 -2
  139. package/dist/index221.js +223 -10
  140. package/dist/index221.js.map +1 -1
  141. package/dist/index222.js +252 -429
  142. package/dist/index222.js.map +1 -1
  143. package/dist/index223.js +10 -8
  144. package/dist/index223.js.map +1 -1
  145. package/dist/index224.js +428 -82
  146. package/dist/index224.js.map +1 -1
  147. package/dist/index225.js +9 -8
  148. package/dist/index225.js.map +1 -1
  149. package/dist/index226.js +88 -5
  150. package/dist/index226.js.map +1 -1
  151. package/dist/index235.js +2 -69
  152. package/dist/index235.js.map +1 -1
  153. package/dist/index236.js +2 -162
  154. package/dist/index236.js.map +1 -1
  155. package/dist/index237.js +2 -2
  156. package/dist/index238.js +2 -2
  157. package/dist/index238.js.map +1 -1
  158. package/dist/index239.js +9 -2
  159. package/dist/index239.js.map +1 -1
  160. package/dist/index24.js +1 -1
  161. package/dist/index24.js.map +1 -1
  162. package/dist/index240.js +6 -2
  163. package/dist/index240.js.map +1 -1
  164. package/dist/index241.js +162 -2
  165. package/dist/index241.js.map +1 -1
  166. package/dist/index242.js +2 -2
  167. package/dist/index243.js +2 -224
  168. package/dist/index243.js.map +1 -1
  169. package/dist/index244.js +68 -257
  170. package/dist/index244.js.map +1 -1
  171. package/dist/index245.js +2 -38
  172. package/dist/index245.js.map +1 -1
  173. package/dist/index246.js +38 -2
  174. package/dist/index246.js.map +1 -1
  175. package/dist/index247.js +2 -2
  176. package/dist/index247.js.map +1 -1
  177. package/dist/index248.js +2 -2
  178. package/dist/index248.js.map +1 -1
  179. package/dist/index249.js +2 -2
  180. package/dist/index250.js +2 -2
  181. package/dist/index251.js +2 -2
  182. package/dist/index251.js.map +1 -1
  183. package/dist/index252.js +5 -0
  184. package/dist/index252.js.map +1 -0
  185. package/dist/index26.js +3 -3
  186. package/dist/index26.js.map +1 -1
  187. package/dist/index28.js +172 -155
  188. package/dist/index28.js.map +1 -1
  189. package/dist/index30.js +2 -2
  190. package/dist/index32.js +2 -2
  191. package/dist/index34.js +2 -2
  192. package/dist/index34.js.map +1 -1
  193. package/dist/index36.js +21 -19
  194. package/dist/index36.js.map +1 -1
  195. package/dist/index38.js.map +1 -1
  196. package/dist/index44.js +1 -1
  197. package/dist/index44.js.map +1 -1
  198. package/dist/index46.js +1 -1
  199. package/dist/index46.js.map +1 -1
  200. package/dist/index6.js.map +1 -1
  201. package/dist/index62.js +168 -137
  202. package/dist/index62.js.map +1 -1
  203. package/dist/index64.js +38 -30
  204. package/dist/index64.js.map +1 -1
  205. package/dist/index66.js.map +1 -1
  206. package/dist/index69.js +1 -1
  207. package/dist/index72.js +1 -1
  208. package/dist/index74.js.map +1 -1
  209. package/dist/index76.js +96 -66
  210. package/dist/index76.js.map +1 -1
  211. package/dist/index78.js +1 -1
  212. package/dist/index8.js +2 -2
  213. package/dist/index82.js +2 -2
  214. package/dist/index82.js.map +1 -1
  215. package/dist/index84.js.map +1 -1
  216. package/dist/index88.js +7 -4
  217. package/dist/index88.js.map +1 -1
  218. package/dist/index96.js +2 -2
  219. package/dist/index96.js.map +1 -1
  220. package/dist/index98.js +35 -30
  221. package/dist/index98.js.map +1 -1
  222. package/dist/style.css +1 -1
  223. package/dist/types/CommonProps.d.ts +15 -8
  224. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index96.js","sources":["../src/components/BbTab/BbTab.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = {\n role: \"tablist\",\n class: \"bb-tab__label-container\"\n}\nconst _hoisted_3 = { class: \"bb-tab__label\" }\nconst _hoisted_4 = { class: \"bb-tab__panes-container\" }\nconst _hoisted_5 = [\"id\", \"aria-labelledby\"]\n\nimport { ref, watch, getCurrentInstance } from \"vue\";\nimport { useId } from \"@/composables/useId\";\nimport { useRoute } from \"@/composables/useRoute\";\nimport { useRouter } from \"@/composables/useRouter\";\nimport { wait } from \"@/utilities/functions/wait\";\nimport BaseButton from \"../BaseButton/BaseButton.vue\";\nimport { CommonProps } from \"@/types/CommonProps\";\n\nexport type BbTabItem = Pick<CommonProps, 'disabled'> & {\n /**\n * Used to render a tab even when not visible.\n * It's useful if you want the content of a tab in the DOM \n * immediately rendered\n * even when not visible for SEO purposes.\n */\n eager?: boolean;\n /**\n * String that identifies the tab.\n */\n key: string;\n /**\n * Label to use as the tab text.\n */\n label?: string;\n}\n\nexport type BbTabProps = Pick<CommonProps, \n'disabled' |\n'eager' |\n'id' \n\n> & {\n /**\n * Direction of the tabs component\n */\n direction?: \"horizontal\" | \"vertical\";\n /**\n * Array of items that define the tabs in the component.\n */\n items: BbTabItem[];\n /**\n * The current tab. Used by v-model.\n */\n modelValue?: null | BbTabItem[\"key\"];\n /**\n * Synchronizes the current tab with the url.\n */\n navigation?: boolean;\n};\n\nexport type BbTabEvents = {\n (e: \"update:modelValue\", value: (typeof props.items)[number][\"key\"]): void;\n};\ntype BbStepSlots = {\n label?: (props: {\n disabled: boolean;\n selected: boolean;\n text: BbTabItem[\"label\"];\n value: string;\n }) => any;\n} & {\n [key: string]: (props: {\n disabled: boolean;\n selected: boolean;\n text: BbTabItem[\"label\"];\n value: string;\n }) => any;\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbTab',\n props: {\n disabled: { type: Boolean },\n eager: { type: Boolean },\n id: {},\n direction: { default: \"horizontal\" },\n items: {},\n modelValue: {},\n navigation: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst id = props.id ?? useId().id.value;\nconst instanceid = `bb-tab_${id}`;\n\n/* Ignore because possibly undefined */\n// @ts-ignore\nconst isInertia = !!getCurrentInstance()?.proxy?.$inertia;\n\nconst selectedTab = ref<BbTabItem[\"key\"] | null>(null);\n\nprops.items.forEach((item) => {\n if (!item.key) {\n console.error(`A tab item has no key`, item);\n throw new Error(\"A tab item has no key \" + JSON.stringify(item));\n }\n});\n\n/* \nThis section retrieves the current tab that should be selected\n*/\n// Retrieve tab from url on load for vue apps\nif (props.navigation && route.value?.query?.tab) {\n selectedTab.value = route.value?.query?.tab as string;\n // Retrieve tab from url on load for inertia app\n} else if (\n props.navigation &&\n isInertia &&\n globalThis?.location?.href &&\n new URL(globalThis.location.href).searchParams.get(\"tab\")\n) {\n selectedTab.value = new URL(globalThis.location.href).searchParams.get(\n \"tab\"\n ) as string;\n // Else whatever tab is passed first\n} else if (props.modelValue) {\n selectedTab.value = props.modelValue;\n // Else whatever tab is passed first\n} else if (props.items[0]) {\n const firstSelectableTab = props.items.find(item => !item.disabled);\n if(!firstSelectableTab) {\n throw new Error('No tab has been selected so it defaulted to the first available. Still, all the tabs are disabled so no tab can be selected.')\n }\n const key = firstSelectableTab.key;\n selectedTab.value = key;\n}\n/* \nOnce the current tab is found update external variables\n*/\n\nconst onTabSelected = async (tab: BbTabItem[\"key\"]) => {\n /* For Vue or Nuxt context */\n if (props.navigation && route.value && route.value?.query?.tab !== tab) {\n router?.push({ ...route, query: { ...route.value?.query, tab: tab } });\n /* Inertia context */\n } else if (\n props.navigation &&\n isInertia &&\n globalThis?.location?.href &&\n new URL(globalThis.location.href).searchParams.get(\"tab\") !== tab\n ) {\n const url = new URL(globalThis.location.href);\n url.searchParams.set(\"tab\", tab);\n wait(0).then(() => {\n history.pushState({}, \"\", url.toString());\n });\n }\n if (props.modelValue !== tab) {\n emit(\"update:modelValue\", tab);\n }\n selectedTab.value = tab;\n};\n\nif (selectedTab.value) {\n onTabSelected(selectedTab.value);\n}\n\nconst onKeydown = (event: KeyboardEvent) => {\n if (props.disabled) return;\n var nextTabIndex: number | null = null;\n if (event.key === \"ArrowRight\") {\n nextTabIndex =\n (props.items.findIndex((el) => el.key === selectedTab.value) + 1) %\n props.items.length;\n } else if (event.key === \"ArrowLeft\") {\n nextTabIndex =\n (props.items.findIndex((el) => el.key === selectedTab.value) +\n props.items.length -\n 1) %\n props.items.length;\n } else if (event.key === \"Home\") {\n event.preventDefault();\n nextTabIndex = 0;\n } else if (event.key === \"End\") {\n event.preventDefault();\n nextTabIndex = props.items.length - 1;\n } else {\n return;\n }\n if (nextTabIndex === null) {\n throw new Error(\"Could not navigate to next tab\");\n }\n if (props.items[nextTabIndex].disabled) return;\n const targetKey = props.items[nextTabIndex].key;\n const button: HTMLButtonElement | null = document.querySelector(\n `#${instanceid}_tab_${targetKey}`\n );\n button?.focus();\n onTabSelected(targetKey);\n};\n\nwatch(\n () => props.modelValue,\n (value) => {\n if (value) {\n onTabSelected(value);\n }\n }\n);\n\nwatch(\n () => route.value?.query?.tab,\n (value) => {\n if (value && typeof value === \"string\") {\n onTabSelected(value);\n }\n }\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"bb-tab\", {\n [`bb-tab--${_ctx.direction}`]: true,\n 'bb-tab--disabled': true,\n }]),\n id: _unref(id)\n }, [\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (tab) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n role: \"presentation\",\n key: tab.key\n }, [\n _createVNode(BaseButton, {\n class: _normalizeClass([\"bb-tab__btn\", { 'bb-tab__btn--active': selectedTab.value === tab.key }]),\n \"aria-selected\": selectedTab.value === tab.key,\n disabled: tab.disabled || _ctx.disabled,\n id: `${instanceid}_tab_${tab.key}`,\n role: 'tab',\n tabindex: selectedTab.value === tab.key ? 0 : -1,\n onClick: ($event: any) => (onTabSelected(tab.key)),\n onKeydown: onKeydown\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, `label-${tab.key}`, {\n text: tab.label,\n value: tab.key,\n disabled: !!(tab.disabled || _ctx.disabled),\n selected: selectedTab.value === tab.key\n }, () => [\n _renderSlot(_ctx.$slots, \"label\", {\n text: tab.label,\n value: tab.key,\n disabled: !!(tab.disabled || _ctx.disabled),\n selected: selectedTab.value === tab.key\n }, () => [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(tab.label), 1)\n ])\n ])\n ]),\n _: 2\n }, 1032, [\"aria-selected\", \"class\", \"disabled\", \"id\", \"tabindex\", \"onClick\"])\n ]))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (tab) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: tab.key\n }, [\n (selectedTab.value === tab.key || _ctx.eager || tab.eager)\n ? (_openBlock(), _createElementBlock(\"section\", {\n key: 0,\n class: _normalizeClass([\"bb-tab__pane\", {\n 'bb-tab__pane--shown': selectedTab.value === tab.key,\n }]),\n role: \"tabpanel\",\n id: `${instanceid}_tabpanel_${tab.key}`,\n \"aria-labelledby\": `${instanceid}_tab_${tab.key}`,\n tabindex: \"0\"\n }, [\n _renderSlot(_ctx.$slots, tab.key, {\n text: tab.label,\n value: tab.key,\n disabled: !!(tab.disabled || _ctx.disabled),\n selected: selectedTab.value === tab.key\n })\n ], 10, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ])\n ], 10, _hoisted_1))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_main","_defineComponent","__props","__emit","props","emit","route","useRoute","router","useRouter","id","useId","instanceid","isInertia","_b","_a","getCurrentInstance","selectedTab","ref","item","_d","_c","_f","_e","_g","firstSelectableTab","key","onTabSelected","tab","url","wait","onKeydown","event","nextTabIndex","el","targetKey","button","watch","value","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_Fragment","_renderList","_createVNode","BaseButton","$event","_withCtx","_renderSlot","_toDisplayString","_createCommentVNode"],"mappings":"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"}
1
+ {"version":3,"file":"index96.js","sources":["../src/components/BbTab/BbTab.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = {\n role: \"tablist\",\n class: \"bb-tab__label-container\"\n}\nconst _hoisted_3 = { class: \"bb-tab__label\" }\nconst _hoisted_4 = { class: \"bb-tab__panes-container\" }\nconst _hoisted_5 = [\"id\", \"aria-labelledby\"]\n\nimport { ref, watch, getCurrentInstance } from \"vue\";\nimport { useId } from \"@/composables/useId\";\nimport { useRoute } from \"@/composables/useRoute\";\nimport { useRouter } from \"@/composables/useRouter\";\nimport { wait } from \"@/utilities/functions/wait\";\nimport BaseButton from \"../BaseButton/BaseButton.vue\";\nimport type { CommonProps } from \"@/types/CommonProps\";\n\nexport type BbTabItem = Pick<CommonProps, 'disabled'> & {\n /**\n * Used to render a tab even when not visible.\n * It's useful if you want the content of a tab in the DOM \n * immediately rendered\n * even when not visible for SEO purposes.\n */\n eager?: boolean;\n /**\n * String that identifies the tab.\n */\n key: string;\n /**\n * Label to use as the tab text.\n */\n label?: string;\n}\n\nexport type BbTabProps = Pick<CommonProps, \n'disabled' |\n'eager' |\n'id' \n\n> & {\n /**\n * Direction of the tabs component\n */\n direction?: \"horizontal\" | \"vertical\";\n /**\n * Array of items that define the tabs in the component.\n */\n items: BbTabItem[];\n /**\n * The current tab. Used by v-model.\n */\n modelValue?: null | BbTabItem[\"key\"];\n /**\n * Synchronizes the current tab with the url.\n */\n navigation?: boolean;\n};\n\nexport type BbTabEvents = {\n (e: \"update:modelValue\", value: (typeof props.items)[number][\"key\"]): void;\n};\ntype BbStepSlots = {\n label?: (props: {\n disabled: boolean;\n selected: boolean;\n text: BbTabItem[\"label\"];\n value: string;\n }) => any;\n} & {\n [key: string]: (props: {\n disabled: boolean;\n selected: boolean;\n text: BbTabItem[\"label\"];\n value: string;\n }) => any;\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbTab',\n props: {\n disabled: { type: Boolean },\n eager: { type: Boolean },\n id: {},\n direction: { default: \"horizontal\" },\n items: {},\n modelValue: {},\n navigation: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst id = props.id ?? useId().id.value;\nconst instanceid = `bb-tab_${id}`;\n\n/* Ignore because possibly undefined */\n// @ts-ignore\nconst isInertia = !!getCurrentInstance()?.proxy?.$inertia;\n\nconst selectedTab = ref<BbTabItem[\"key\"] | null>(null);\n\nprops.items.forEach((item) => {\n if (!item.key) {\n console.error(`A tab item has no key`, item);\n throw new Error(\"A tab item has no key \" + JSON.stringify(item));\n }\n});\n\n/* \nThis section retrieves the current tab that should be selected\n*/\n// Retrieve tab from url on load for vue apps\nif (props.navigation && route.value?.query?.tab) {\n selectedTab.value = route.value?.query?.tab as string;\n // Retrieve tab from url on load for inertia app\n} else if (\n props.navigation &&\n isInertia &&\n globalThis?.location?.href &&\n new URL(globalThis.location.href).searchParams.get(\"tab\")\n) {\n selectedTab.value = new URL(globalThis.location.href).searchParams.get(\n \"tab\"\n ) as string;\n // Else whatever tab is passed first\n} else if (props.modelValue) {\n selectedTab.value = props.modelValue;\n // Else whatever tab is passed first\n} else if (props.items[0]) {\n const firstSelectableTab = props.items.find(item => !item.disabled);\n if(!firstSelectableTab) {\n throw new Error('No tab has been selected so it defaulted to the first available. Still, all the tabs are disabled so no tab can be selected.')\n }\n const key = firstSelectableTab.key;\n selectedTab.value = key;\n}\n/* \nOnce the current tab is found update external variables\n*/\n\nconst onTabSelected = async (tab: BbTabItem[\"key\"]) => {\n /* For Vue or Nuxt context */\n if (props.navigation && route.value && route.value?.query?.tab !== tab) {\n router?.push({ ...route, query: { ...route.value?.query, tab: tab } });\n /* Inertia context */\n } else if (\n props.navigation &&\n isInertia &&\n globalThis?.location?.href &&\n new URL(globalThis.location.href).searchParams.get(\"tab\") !== tab\n ) {\n const url = new URL(globalThis.location.href);\n url.searchParams.set(\"tab\", tab);\n wait(0).then(() => {\n history.pushState({}, \"\", url.toString());\n });\n }\n if (props.modelValue !== tab) {\n emit(\"update:modelValue\", tab);\n }\n selectedTab.value = tab;\n};\n\nif (selectedTab.value) {\n onTabSelected(selectedTab.value);\n}\n\nconst onKeydown = (event: KeyboardEvent) => {\n if (props.disabled) return;\n var nextTabIndex: number | null = null;\n if (event.key === \"ArrowRight\") {\n nextTabIndex =\n (props.items.findIndex((el) => el.key === selectedTab.value) + 1) %\n props.items.length;\n } else if (event.key === \"ArrowLeft\") {\n nextTabIndex =\n (props.items.findIndex((el) => el.key === selectedTab.value) +\n props.items.length -\n 1) %\n props.items.length;\n } else if (event.key === \"Home\") {\n event.preventDefault();\n nextTabIndex = 0;\n } else if (event.key === \"End\") {\n event.preventDefault();\n nextTabIndex = props.items.length - 1;\n } else {\n return;\n }\n if (nextTabIndex === null) {\n throw new Error(\"Could not navigate to next tab\");\n }\n if (props.items[nextTabIndex].disabled) return;\n const targetKey = props.items[nextTabIndex].key;\n const button: HTMLButtonElement | null = document.querySelector(\n `#${instanceid}_tab_${targetKey}`\n );\n button?.focus();\n onTabSelected(targetKey);\n};\n\nwatch(\n () => props.modelValue,\n (value) => {\n if (value) {\n onTabSelected(value);\n }\n }\n);\n\nwatch(\n () => route.value?.query?.tab,\n (value) => {\n if (value && typeof value === \"string\") {\n onTabSelected(value);\n }\n }\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"bb-tab\", {\n [`bb-tab--${_ctx.direction}`]: true,\n 'bb-tab--disabled': true,\n }]),\n id: _unref(id)\n }, [\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (tab) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n role: \"presentation\",\n key: tab.key\n }, [\n _createVNode(BaseButton, {\n class: _normalizeClass([\"bb-tab__btn\", { 'bb-tab__btn--active': selectedTab.value === tab.key }]),\n \"aria-selected\": selectedTab.value === tab.key,\n disabled: tab.disabled || _ctx.disabled,\n id: `${instanceid}_tab_${tab.key}`,\n role: 'tab',\n tabindex: selectedTab.value === tab.key ? 0 : -1,\n onClick: ($event: any) => (onTabSelected(tab.key)),\n onKeydown: onKeydown\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, `label-${tab.key}`, {\n text: tab.label,\n value: tab.key,\n disabled: !!(tab.disabled || _ctx.disabled),\n selected: selectedTab.value === tab.key\n }, () => [\n _renderSlot(_ctx.$slots, \"label\", {\n text: tab.label,\n value: tab.key,\n disabled: !!(tab.disabled || _ctx.disabled),\n selected: selectedTab.value === tab.key\n }, () => [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(tab.label), 1)\n ])\n ])\n ]),\n _: 2\n }, 1032, [\"aria-selected\", \"class\", \"disabled\", \"id\", \"tabindex\", \"onClick\"])\n ]))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (tab) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: tab.key\n }, [\n (selectedTab.value === tab.key || _ctx.eager || tab.eager)\n ? (_openBlock(), _createElementBlock(\"section\", {\n key: 0,\n class: _normalizeClass([\"bb-tab__pane\", {\n 'bb-tab__pane--shown': selectedTab.value === tab.key,\n }]),\n role: \"tabpanel\",\n id: `${instanceid}_tabpanel_${tab.key}`,\n \"aria-labelledby\": `${instanceid}_tab_${tab.key}`,\n tabindex: \"0\"\n }, [\n _renderSlot(_ctx.$slots, tab.key, {\n text: tab.label,\n value: tab.key,\n disabled: !!(tab.disabled || _ctx.disabled),\n selected: selectedTab.value === tab.key\n })\n ], 10, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ])\n ], 10, _hoisted_1))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_main","_defineComponent","__props","__emit","props","emit","route","useRoute","router","useRouter","id","useId","instanceid","isInertia","_b","_a","getCurrentInstance","selectedTab","ref","item","_d","_c","_f","_e","_g","firstSelectableTab","key","onTabSelected","tab","url","wait","onKeydown","event","nextTabIndex","el","targetKey","button","watch","value","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_Fragment","_renderList","_createVNode","BaseButton","$event","_withCtx","_renderSlot","_toDisplayString","_createCommentVNode"],"mappings":"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"}
package/dist/index98.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { defineComponent as ie, ref as O, computed as p, onMounted as de, watch as q, openBlock as c, createBlock as be, resolveDynamicComponent as re, normalizeClass as f, withCtx as ue, createElementBlock as d, toDisplayString as m, createCommentVNode as v, createElementVNode as o, renderSlot as y, createVNode as J, unref as C, Fragment as N, renderList as T, createTextVNode as pe, mergeProps as fe } from "vue";
2
- import { add as me } from "./index238.js";
3
- import { clamp as ye } from "./index191.js";
2
+ import { add as me } from "./index243.js";
3
+ import { clamp as ye } from "./index190.js";
4
+ import { deepEqual as he } from "./index124.js";
4
5
  import { isNil as j } from "./index117.js";
5
- import { useId as he } from "./index120.js";
6
- import { useItemValue as _e } from "./index122.js";
7
- import { when as ke } from "./index190.js";
6
+ import { isNotNil as _e } from "./index123.js";
7
+ import { useId as ke } from "./index120.js";
8
+ import { useItemValue as ge } from "./index122.js";
9
+ import { when as ve } from "./index194.js";
8
10
  import G from "./index8.js";
9
11
  import "./index9.js";
10
- import ge from "./index22.js";
12
+ import Ce from "./index22.js";
11
13
  import "./index23.js";
12
- import { deepEqual as ve } from "./index124.js";
13
- import { isNotNil as Ce } from "./index123.js";
14
14
  const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-table-header__content" }, Te = { class: "bb-table-check__label-text" }, Ae = {
15
15
  key: 1,
16
16
  class: "bb-table-radio__label-text"
@@ -33,7 +33,6 @@ const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-
33
33
  depsDebounceTime: { default: 0 },
34
34
  disabled: { type: Boolean },
35
35
  itemValue: {},
36
- legend: {},
37
36
  loading: { type: Boolean },
38
37
  loadingText: { default: "Caricamento" },
39
38
  matchStrategy: { default: "string" },
@@ -42,6 +41,7 @@ const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-
42
41
  noDataText: { default: "Non ci sono elementi da visualizzare" },
43
42
  readonly: {},
44
43
  items: { type: [Array, Function], default: () => [] },
44
+ legend: {},
45
45
  modelValue: {},
46
46
  accessibleLabel: { type: Function, default: (S) => ["Seleziona"].concat(S.map(($) => $.content)).join(" ") },
47
47
  actions: { type: Boolean },
@@ -63,7 +63,7 @@ const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-
63
63
  },
64
64
  emits: ["click:row", "contextmenu:row", "dblclick:row", "update:modelValue", "update:selectAll"],
65
65
  setup(S, { emit: $ }) {
66
- const { getItemValue: M } = _e(), B = he().id.value, t = S, r = $, A = O(), K = t.accessibleLabel, Q = t.loadingText, X = t.noDataText, Y = t.selectAllText, Z = t.selectText, ee = p(() => t.selectable ? "fieldset" : "div"), D = O(!1), F = p(() => t.loading || D.value), H = p(() => [!!t.selectable, !!t.actions].reduce(
66
+ const { getItemValue: M } = ge(), B = ke().id.value, t = S, r = $, A = O(), K = t.accessibleLabel, Q = t.loadingText, X = t.noDataText, Y = t.selectAllText, Z = t.selectText, ee = p(() => t.selectable ? "fieldset" : "div"), D = O(!1), F = p(() => t.loading || D.value), H = p(() => [!!t.selectable, !!t.actions].reduce(
67
67
  (e, a) => e + +!!a,
68
68
  t.columns.length
69
69
  )), le = p(() => {
@@ -79,16 +79,19 @@ const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-
79
79
  return {
80
80
  get: (a) => {
81
81
  var l;
82
- return (l = e.find((n) => ve(n[0], a))) == null ? void 0 : l[1];
82
+ return (l = e.find((n) => he(n[0], a))) == null ? void 0 : l[1];
83
83
  }
84
84
  };
85
85
  } else
86
86
  throw new Error("No match strategy has been defined");
87
87
  }), P = p(
88
- () => t.columns.reduce((e, a) => {
89
- const l = a.key.split(/\W+/g).join("_");
90
- return e[a.key] = l, e;
91
- }, {})
88
+ () => t.columns.reduce(
89
+ (e, a) => {
90
+ const l = a.key.split(/\W+/g).join("_");
91
+ return e[a.key] = l, e;
92
+ },
93
+ {}
94
+ )
92
95
  ), g = O([]), I = async () => {
93
96
  let e = [];
94
97
  Array.isArray(t.items) ? e = t.items : typeof t.items == "function" && (D.value = !0, e = await t.items(!0), D.value = !1), g.value = e;
@@ -106,17 +109,19 @@ const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-
106
109
  }, t.depsDebounceTime));
107
110
  });
108
111
  const te = p(
109
- () => t.columns.map((e) => {
110
- const a = e.align || "left", { label: l, key: n } = e, h = `header_${P.value[e.key]}`;
111
- let i = [];
112
- return t.thClass && (i = i.concat(t.thClass)), e.thClass && (i = i.concat(e.thClass)), {
113
- align: a,
114
- key: n,
115
- label: l,
116
- slotName: h,
117
- classes: i
118
- };
119
- })
112
+ () => t.columns.map(
113
+ (e) => {
114
+ const a = e.align || "left", { label: l, key: n } = e, h = `header_${P.value[e.key]}`;
115
+ let i = [];
116
+ return t.thClass && (i = i.concat(t.thClass)), e.thClass && (i = i.concat(e.thClass)), {
117
+ align: a,
118
+ key: n,
119
+ label: l,
120
+ slotName: h,
121
+ classes: i
122
+ };
123
+ }
124
+ )
120
125
  ), w = p(() => g.value.map((e) => {
121
126
  const a = M(e, t.itemValue), l = JSON.stringify(a);
122
127
  let n = !!t.selectable;
@@ -148,7 +153,7 @@ const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-
148
153
  slotName: R
149
154
  };
150
155
  }), _ = K(b, e);
151
- return Ce(h) ? {
156
+ return _e(h) ? {
152
157
  accessibleLabel: _,
153
158
  cols: b,
154
159
  jsonValue: l,
@@ -186,7 +191,7 @@ const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-
186
191
  ), W = (e) => {
187
192
  let a;
188
193
  t.multiple ? e.selected ? a = t.modelValue.slice(0, e.selectedIndex).concat(t.modelValue.slice([e.selectedIndex + 1])) : a = t.modelValue.concat(e.value) : a = e.value, r("update:modelValue", a);
189
- }, oe = ke(
194
+ }, oe = ve(
190
195
  (e) => typeof e != "string",
191
196
  JSON.stringify
192
197
  ), ne = p(() => [].concat(t.modelValue).map((e) => {
@@ -295,7 +300,7 @@ const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-
295
300
  y(e.$slots, l.slotName, {
296
301
  classes: l.classes,
297
302
  items: g.value,
298
- item: g.value[n],
303
+ item: void 0,
299
304
  label: l.label
300
305
  }, () => [
301
306
  o("span", Se, m(l.label), 1)
@@ -373,7 +378,7 @@ const we = { key: 0 }, Ve = { class: "bb-table-header-row" }, Ne = { class: "bb-
373
378
  "bb-table-radio__label--disabled": !l.selectable
374
379
  }])
375
380
  }, [
376
- J(ge, {
381
+ J(Ce, {
377
382
  class: "bb-table-radio",
378
383
  checked: l.selected,
379
384
  disabled: !l.selectable,
@@ -1 +1 @@
1
- {"version":3,"file":"index98.js","sources":["../src/components/BbTable/BbTable.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, renderSlot as _renderSlot, createVNode as _createVNode, unref as _unref, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, mergeProps as _mergeProps, resolveDynamicComponent as _resolveDynamicComponent, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"bb-table-header-row\" }\nconst _hoisted_3 = { class: \"bb-table-header__content\" }\nconst _hoisted_4 = { class: \"bb-table-check__label-text\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"bb-table-radio__label-text\"\n}\nconst _hoisted_6 = { class: \"bb-table-header__content\" }\nconst _hoisted_7 = { class: \"bb-table-header__content\" }\nconst _hoisted_8 = { class: \"bb-table-loading__row\" }\nconst _hoisted_9 = [\"colspan\"]\nconst _hoisted_10 = { class: \"bb-table-loading__text\" }\nconst _hoisted_11 = {\n class: \"bb-table-skeleton__container\",\n role: \"status\"\n}\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__avatar-container\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__avatar\" })\n], -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__text\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__line\" }),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__line\" })\n], -1)\nconst _hoisted_14 = [\n _hoisted_12,\n _hoisted_13\n]\nconst _hoisted_15 = { class: \"bb-table-no-data__row\" }\nconst _hoisted_16 = [\"colspan\"]\nconst _hoisted_17 = { class: \"bb-table-no-data__text\" }\nconst _hoisted_18 = [\"onClick\", \"onContextmenu\", \"onDblclick\"]\nconst _hoisted_19 = { class: \"bb-table-check__label-text\" }\nconst _hoisted_20 = { class: \"bb-table-radio__label-text\" }\n\nimport { add } from \"@/utilities/functions/add\";\nimport { clamp } from \"@/utilities/functions/clamp\";\nimport { computed, onMounted, ref, watch } from \"vue\";\nimport { isNil } from \"@/utilities/functions/isNil\";\nimport { useId } from \"@/composables/useId\";\nimport { useItemValue } from \"@/composables/useItemValue\";\nimport { when } from \"@/utilities/functions/when\";\nimport BaseCheckbox from \"../BaseCheckbox/BaseCheckbox.vue\";\nimport BaseRadio from \"../BaseRadio/BaseRadio.vue\";\nimport type { Classes } from \"@/types/Classes\";\nimport { CommonProps, GenericModelValue, OptionItems } from \"@/types/CommonProps\";\nimport { deepEqual } from \"fast-equals\";\nimport { isNotNil } from \"@/utilities/functions/isNotNil\";\n\ntype ColumnClasses =\n | Classes\n | (<T>(content: any, key: string, item: T) => Classes);\n\n/**\n * Column as defined from outside\n */\nexport interface TableColumn {\n /**\n * Text alignment of the column.\n */\n align?: \"left\" | \"right\" | \"center\";\n /**\n * When set to false the formatter will not run on nullish values.\n * By default is true so you can create virtual columns with keys that do not\n * reference a prop in the `item` and still extract data from the other\n * arguments in the formatting function.\n */\n formatOnNull?: boolean;\n /**\n * Formatting function used to generate enhanced content.\n * @param content The content generated by the extraction of `Item[key]`\n * @param key Key of the column taken from the column definition.\n * @param item Item of the row.\n */\n formatter?: <T>(content: any, key: string, item: T) => any;\n /**\n * Key identifying the column.\n */\n key: string;\n /**\n * Text used in the header for this column.\n */\n label: string;\n /**\n * Placeholder used when the pipeline returns null content.\n */\n placeholder?: string;\n /**\n * List of classes to add to the `<td>` cell.\n */\n tdClass?: ColumnClasses;\n /**\n * List of classes to add to the `<th>` cell.\n */\n thClass?: Classes;\n}\n\n/**\n * Projection that represents a row of cells with flags\n * linked to the state of the item\n */\ntype MappedItem = {\n accessibleLabel: string;\n cols: MappedCell[];\n jsonValue: string;\n original: any;\n selectable: boolean;\n value: string;\n onRowClick: (event: MouseEvent) => void;\n onRowContextMenu: (event: MouseEvent) => void;\n onRowDblClick: (event: MouseEvent) => void;\n} & (\n | {\n selected: true;\n selectedIndex: number;\n }\n | {\n selected: false;\n selectedIndex: undefined;\n }\n);\n\n/**\n * Projection that represnets a header\n */\ntype MappedHeader = {\n align: string;\n classes?: Classes[];\n key: string;\n slotName: string;\n label: string;\n};\n\n/**\n * Projection that represents a cell of data.\n */\ntype MappedCell = {\n align: string;\n classes: Classes[];\n content: string;\n key: string;\n label: string;\n slotName: string;\n};\n\nexport type BbTableProps = Pick<CommonProps, 'compact' |\n'dependencies' |\n'depsDebounceTime' |\n'disabled' |\n'itemValue' |\n'legend' |\n'loading' |\n'loadingText' |\n'matchStrategy' |\n'multiple' |\n'name' |\n'noDataText' |\n'readonly'\n\n> & OptionItems & GenericModelValue & {\n /**\n * Function that accepts the columns and the current item as\n * arguments and returns a label to be used for accessibility purposes.\n */\n accessibleLabel?: (columns: MappedCell[], item: any) => string;\n /**\n * Displays the actions column.\n */\n actions?: boolean;\n /**\n * Label used in the header of the actions column.\n */\n actionsText?: string;\n /**\n * Text alignment of the columns.\n */\n align?: \"left\" | \"center\" | \"right\";\n /**\n * Boolean that defines whether to display a \"Select all\" checkbox.\n */\n allowSelectAll?: boolean;\n /**\n * Caption that describes the content of the table. Used for accessibility purposes.\n */\n caption?: string;\n /**\n * Array of definitions of how the columns should be rendered.\n */\n columns: TableColumn[];\n /**\n * Boolean that defines whether to display or hide the caption. \n * By default is true and the caption is hidden.\n */\n displayCaption?: boolean;\n /**\n * Defines the table layout as fixed \n * making each column take up the same amount of space.\n */\n fixed?: boolean;\n /**\n * Boolean that sets the headers as sticky top the top of the table.\n */\n fixedHeader?: boolean;\n /**\n * Definition for which column should be fixed.\n * It can be an array of index of the column to fix on the left side of the table or\n * an array of objects indicating the index and the position `left` or `right` where to affix the columns.\n */\n fixedColumns?: (number | { index: number; position: \"left\" | \"right\" })[];\n /**\n * Defines whther the table is selectable.\n * Can be a global boolean that affects all rows or a function\n * that accepts an otem and returns a boolean that only affects that item.\n */\n selectable?: boolean | ((item: any) => boolean);\n /**\n * Used by v-model:selectAll. Indicates whether the \"Select all\" checkbox is checked or not.\n */\n selectAll?: boolean;\n /**\n * Text of the label used by the \"Select all\" boolean.\n */\n selectAllText?: string;\n /**\n * Text of the header used for the radio inputs when the table is not `multiple`.\n */\n selectText?: string;\n /**\n * Defines the classes to be passed to the `<td>` elements. Can also be a function for dynamic values.\n */\n tdClass?: Classes | ColumnClasses;\n /**\n * Defines the classes to be passed to the `<th>`.\n */\n thClass?: Classes;\n};\n\nexport type BbTableEvents = {\n (e: \"click:row\", event: MouseEvent, item: any, selected: boolean): void;\n (e: \"contextmenu:row\", event: MouseEvent, item: any, selected: boolean): void;\n (e: \"dblclick:row\", event: MouseEvent, item: any, selected: boolean): void;\n (e: \"update:modelValue\", value: any): void;\n (e: \"update:selectAll\", value: Boolean): void;\n};\n\nexport type BbTableSlots = {\n thead?: (props: {}) => any;\n tbody?: (props: {}) => any;\n tfoot?: (props: {}) => any;\n header_select?: (props: { multiple: boolean; selectAll: boolean }) => any;\n header_actions?: (props: { text: string }) => any;\n loading?: (props: { items: any[] }) => any;\n \"no-data\"?: (props: {}) => any;\n actions?: (props: { item: any; value: any }) => any;\n select?: (props: {\n item: any;\n value: any;\n checked: boolean;\n disabled: boolean;\n inputName: string;\n readonly: boolean;\n }) => any;\n} & {\n [key: string]: (props: {\n classes?: Classes[];\n content?: any;\n items?: any[];\n item?: any;\n label?: string;\n value?: any;\n }) => any;\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbTable',\n props: {\n compact: { type: Boolean },\n dependencies: { default: () => [] },\n depsDebounceTime: { default: 0 },\n disabled: { type: Boolean },\n itemValue: {},\n legend: {},\n loading: { type: Boolean },\n loadingText: { default: \"Caricamento\" },\n matchStrategy: { default: \"string\" },\n multiple: { type: Boolean, default: true },\n name: {},\n noDataText: { default: \"Non ci sono elementi da visualizzare\" },\n readonly: {},\n items: { type: [Array, Function], default: () => [] },\n modelValue: {},\n accessibleLabel: { type: Function, default: (columns: MappedCell[]) =>\n [\"Seleziona\"].concat(columns.map((col) => col.content)).join(\" \") },\n actions: { type: Boolean },\n actionsText: { default: \"Azioni\" },\n align: { default: \"left\" },\n allowSelectAll: { type: Boolean, default: true },\n caption: {},\n columns: { default: () => [] },\n displayCaption: { type: Boolean },\n fixed: { type: Boolean },\n fixedHeader: { type: Boolean },\n fixedColumns: { default: () => [] },\n selectable: { type: [Boolean, Function] },\n selectAll: { type: Boolean },\n selectAllText: { default: \"Seleziona tutti gli elementi di questa pagina\" },\n selectText: { default: \"Seleziona un elemento\" },\n tdClass: {},\n thClass: {}\n },\n emits: [\"click:row\", \"contextmenu:row\", \"dblclick:row\", \"update:modelValue\", \"update:selectAll\"],\n setup(__props: any, { emit: __emit }) {\n\nconst { getItemValue } = useItemValue();\n\n/**\n * We do not allow the use of the checkbox or radio themselves as\n * they would not be submitted if the user has changed\n * page in the meantime, rather we provide a temporary\n * name so radio still work but we later add hidden inputs for submission\n */\nconst randomName = useId().id.value;\n\n/**\n * We allow table data classes to be a function so it can depend on the item\n */\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst container = ref<HTMLElement>();\n\nconst accessibleLabel = props.accessibleLabel;\nconst loadingText = props.loadingText;\nconst noDataText = props.noDataText;\nconst selectAllText = props.selectAllText;\nconst selectText = props.selectText;\n\n// We render the table in a fieldset to group checkbox / radios if the table is selectable\nconst containerTag = computed(() => (props.selectable ? \"fieldset\" : \"div\"));\nconst internalLoading = ref(false);\nconst loading = computed(() => props.loading || internalLoading.value);\n\nconst replacementContentSpan = computed(() => {\n return [!!props.selectable, !!props.actions].reduce(\n (acc: number, current) => acc + Number(!!current),\n props.columns.length\n );\n});\n\n/**\n * Indexes modelValue to a map so when can easily know which values are selected\n * (using JSON to circumvent identical object not being equal in JS)\n */\nconst modelValueIndexed = computed(() => {\n if (props.matchStrategy === \"string\") {\n let map: { [key: string]: number } = {};\n [].concat(props.modelValue).forEach((value: any, index: number) => {\n map[JSON.stringify(value)] = index;\n });\n return {\n get: (value: any) => map[JSON.stringify(value)],\n };\n } else if (props.matchStrategy === \"equality\") {\n const map = []\n .concat(props.modelValue)\n .map((value, index) => [value, index]);\n\n return {\n get: (key: any) => {\n return map.find((pairs) => deepEqual(pairs[0], key))?.[1];\n },\n };\n } else {\n throw new Error(\"No match strategy has been defined\");\n }\n});\n\n/**\n * Map column identifiers to slot names\n */\nconst slotNames = computed(() =>\n props.columns.reduce((acc: { [key: string]: string }, curr: TableColumn) => {\n const mapped = curr.key.split(/\\W+/g).join(\"_\");\n acc[curr.key] = mapped;\n return acc;\n }, {})\n);\n\n/**\n * Items as loaded from the function or from the outside\n */\nconst internalItems = ref<any[]>([]);\n\nconst getItems = async () => {\n let items = [];\n if (Array.isArray(props.items)) {\n items = props.items;\n } else {\n if (typeof props.items === \"function\") {\n internalLoading.value = true;\n items = await props.items(true);\n internalLoading.value = false;\n }\n }\n internalItems.value = items;\n};\n\nonMounted(getItems);\n\n/**\n * When item changes update internal items and\n * deselect everything\n */\nwatch(\n () => props.items,\n async () => {\n await getItems();\n if (props.multiple) {\n emit(\"update:modelValue\", []);\n } else {\n emit(\"update:modelValue\", null);\n }\n }\n);\n/* Prevent vue from sharing this function across instances */\nlet timeout: ReturnType<typeof setTimeout>;\nconst onDependencyChange = async (curr: any[], previous?: any[]) => {\n if (JSON.stringify(curr) !== JSON.stringify(previous)) {\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(async () => {\n await getItems();\n if (props.multiple) {\n emit(\"update:modelValue\", []);\n } else {\n emit(\"update:modelValue\", null);\n }\n }, props.depsDebounceTime);\n }\n};\nwatch(() => props.dependencies, onDependencyChange);\n\n/**\n * Take the columns and generate a simplified array for headers display\n */\nconst mappedHeaders = computed(() =>\n props.columns.map((column: TableColumn): MappedHeader => {\n const align = column.align || \"left\";\n const { label, key } = column;\n const slotName = `header_${slotNames.value[column.key]}`;\n // Create a single merged array of all the passed classes\n let classes: Classes = [];\n if (props.thClass) {\n classes = classes.concat(props.thClass);\n }\n if (column.thClass) {\n classes = classes.concat(column.thClass);\n }\n return {\n align,\n key,\n label,\n slotName,\n classes,\n };\n })\n);\n\n/**\n * Map items to an an array that represents the entire row.\n * Track every logic here so we don't have inline callbacks in the template.\n */\nconst mappedItems = computed<MappedItem[]>(() => {\n return internalItems.value.map((item: any) => {\n // By default the value if the item is the item.\n const value = getItemValue(item, props.itemValue);\n const jsonValue = JSON.stringify(value);\n\n /**\n * Item is selectable only if the table allows or item\n * passes iteratee and the selection is not disabled\n */\n let selectable = !!props.selectable;\n if (typeof props.selectable === \"function\") {\n selectable = !!props.selectable(item);\n }\n selectable = selectable && !props.disabled;\n\n //Track the index at which the item has been selected for easy of removal\n const selectedIndex = modelValueIndexed.value.get(value);\n const selected = !isNil(selectedIndex);\n\n // Create a projection of the columns and run all formatter logic so\n // we just display content in the template\n const cols: MappedCell[] = props.columns.map((column) => {\n // Slot identifier\n const slotName = slotNames.value[column.key];\n const align = column.align || \"left\";\n const { label, key } = column;\n // The content\n let content = getItemValue(item, column.key);\n if (\n column.formatter &&\n // By default the formatter runs anyway\n (!isNil(content) || column.formatOnNull !== false)\n ) {\n content = column.formatter(content, column.key, item);\n }\n if (column.placeholder && isNil(content)) {\n content = column.placeholder;\n }\n\n // Merge global and specific classes\n let classes: Classes = [];\n if (props.tdClass) {\n if (typeof props.tdClass === \"function\") {\n let temp = props.tdClass(content, column.key, item);\n if (temp) {\n classes = classes.concat(temp);\n }\n } else classes = classes.concat(props.tdClass);\n }\n if (column.tdClass) {\n if (typeof column.tdClass === \"function\") {\n let temp = column.tdClass(content, column.key, item);\n if (temp) {\n classes = classes.concat(temp);\n }\n } else classes = classes.concat(column.tdClass);\n }\n return {\n align,\n classes,\n content,\n key,\n label,\n slotName,\n };\n });\n\n const accessibleLabelText = accessibleLabel(cols, item);\n\n if (isNotNil(selectedIndex)) {\n return {\n accessibleLabel: accessibleLabelText,\n cols,\n jsonValue,\n original: item,\n selectable,\n selected: true,\n selectedIndex,\n value,\n onRowClick: (event: MouseEvent) =>\n emit(\"click:row\", event, item, selected),\n onRowContextMenu: (event: MouseEvent) =>\n emit(\"contextmenu:row\", event, item, selected),\n onRowDblClick: (event: MouseEvent) =>\n emit(\"dblclick:row\", event, item, selected),\n };\n }\n return {\n accessibleLabel: accessibleLabelText,\n cols,\n jsonValue,\n original: item,\n selectable,\n selected: false,\n selectedIndex,\n value,\n onRowClick: (event: MouseEvent) =>\n emit(\"click:row\", event, item, selected),\n onRowContextMenu: (event: MouseEvent) =>\n emit(\"contextmenu:row\", event, item, selected),\n onRowDblClick: (event: MouseEvent) =>\n emit(\"dblclick:row\", event, item, selected),\n };\n });\n});\n\n/**\n * Same behavior as GMail.\n * If anything is selected remove it.\n * Then when empty you select all items of this page\n */\nconst onChangeSelectAll = (value: boolean) => {\n let selectAllValue = value;\n let modelValue: any[] = [];\n\n if (selectAllValue) {\n modelValue = mappedItems.value.reduce((acc: any[], curr) => {\n if (curr.selectable) acc.push(curr.value);\n return acc;\n }, []);\n }\n emit(\"update:modelValue\", modelValue);\n emit(\"update:selectAll\", value);\n};\n\nconst allSelected = computed(\n () =>\n !!(\n mappedItems.value.length &&\n mappedItems.value.every((item) => item.selectable && item.selected)\n )\n);\nconst indeterminate = computed(\n () =>\n mappedItems.value.some((item) => !item.selected) &&\n !!props.modelValue?.length\n);\n/**\n * Whenever an input changes update modelValue if any\n */\nconst onInputChange = (item: MappedItem) => {\n let valueToEmit;\n if (props.multiple) {\n if (item.selected) {\n valueToEmit = props.modelValue\n .slice(0, item.selectedIndex)\n .concat(props.modelValue.slice([item.selectedIndex + 1]));\n } else {\n valueToEmit = props.modelValue.concat(item.value);\n }\n } else {\n valueToEmit = item.value;\n }\n emit(\"update:modelValue\", valueToEmit);\n};\n\n/**\n * When using this component for submission we add a bunch of hidden inputs\n * so the submitted inputs is on par with v-model\n */\n\n/**\n * This is used to keep the value compatible to common html expected values.\n * Convert to string everything that's not but do not double encode strings\n */\nconst makeInputValue = when(\n (item: unknown) => typeof item !== \"string\",\n JSON.stringify\n);\nconst hiddenInputs = computed(() => {\n return [].concat(props.modelValue).map((current) => {\n const value = makeInputValue(current);\n return {\n disabled: props.disabled,\n name: props.name,\n type: \"hidden\",\n value: value,\n };\n });\n});\n\nconst skeletonLength = computed(() => {\n return clamp(internalItems.value.length, 4, 10);\n});\n\nwatch(\n () => mappedItems.value,\n () => {\n if (props.fixedColumns.length && props.items) {\n if (container.value) {\n // Get all the headers\n const headers = Array.from(\n container.value.querySelectorAll<HTMLElement>(\"thead th\")\n );\n\n type MappedColumn = {\n index: number;\n position: \"left\" | \"right\";\n width: number;\n offset: number;\n };\n\n /**\n * For each of the columns to fix create an helper object\n */\n const mappedColumns = props.fixedColumns.reduce((acc, curr) => {\n const index = typeof curr === \"number\" ? curr : curr.index;\n const position = typeof curr === \"number\" ? \"left\" : curr.position;\n const clientRect = headers[index].getBoundingClientRect();\n const width = Math.floor(clientRect.width);\n const offset = acc\n .filter((el) => el.position === position)\n .map((el) => el.width)\n .reduce(add, 0);\n\n const mapped: MappedColumn = {\n index: index,\n position: position,\n width: width,\n offset: offset,\n };\n acc.push(mapped);\n return acc;\n }, [] as MappedColumn[]);\n\n const rows = Array.from(container.value?.querySelectorAll(\"tr\"));\n const affectedCells = rows.map((row) =>\n Array.from(\n row.querySelectorAll<HTMLElement>(\n mappedColumns\n .map((el) => `:scope > :nth-child(${el.index + 1})`)\n .join(\", \")\n )\n )\n );\n affectedCells.forEach((row) => {\n row.forEach((cell, index) => {\n cell.style.position = \"sticky\";\n\n if (mappedColumns[index].position === \"left\") {\n cell.style.left = `${mappedColumns[index].offset}px`;\n } else {\n cell.style.right = `${mappedColumns[index].offset}px`;\n }\n });\n });\n }\n }\n },\n {\n flush: \"post\",\n }\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(containerTag.value), {\n class: _normalizeClass({\n 'bb-table': true,\n [`bb-table--align-${_ctx.align}`]: true,\n 'bb-table--compact': _ctx.compact,\n 'bb-table--fixed': _ctx.fixed,\n 'bb-table--fixed-header': _ctx.fixedHeader,\n 'bb-table--loading': loading.value,\n 'bb-table--empty': !internalItems.value.length,\n 'bb-table--selectable': _ctx.selectable,\n }),\n ref_key: \"container\",\n ref: container\n }, {\n default: _withCtx(() => [\n (_ctx.selectable)\n ? (_openBlock(), _createElementBlock(\"legend\", _hoisted_1, _toDisplayString(_ctx.legend), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"table\", null, [\n (_ctx.caption)\n ? (_openBlock(), _createElementBlock(\"caption\", {\n key: 0,\n class: _normalizeClass({\n 'bb-table-caption': true,\n 'bb-table-caption--hidden': !_ctx.displayCaption,\n })\n }, _toDisplayString(_ctx.caption), 3))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"thead\", null, [\n _renderSlot(_ctx.$slots, \"thead\", {}, () => [\n _createElementVNode(\"tr\", _hoisted_2, [\n (_ctx.selectable)\n ? (_openBlock(), _createElementBlock(\"th\", {\n key: 0,\n class: _normalizeClass([\"bb-table-header bb-table-header--select\", _ctx.thClass]),\n scope: \"col\"\n }, [\n _renderSlot(_ctx.$slots, 'header_select', {\n multiple: _ctx.multiple,\n selectAll: !!_ctx.selectAll\n }, () => [\n _createElementVNode(\"span\", _hoisted_3, [\n (_ctx.allowSelectAll && _ctx.multiple)\n ? (_openBlock(), _createElementBlock(\"label\", {\n key: 0,\n class: _normalizeClass([\"bb-table-check__label\", {\n 'bb-table-check__label--disabled': _ctx.disabled,\n }])\n }, [\n _createVNode(BaseCheckbox, {\n class: \"bb-table-check\",\n disabled: _ctx.disabled,\n indeterminate: indeterminate.value,\n readonly: _ctx.readonly,\n name: `select_all_${_ctx.name || ''}`,\n \"model-value\": allSelected.value,\n \"onUpdate:modelValue\": onChangeSelectAll\n }, null, 8, [\"disabled\", \"indeterminate\", \"readonly\", \"name\", \"model-value\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_unref(selectAllText)), 1)\n ], 2))\n : (!_ctx.multiple)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(_unref(selectText)), 1))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 2))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(mappedHeaders.value, (header, index) => {\n return (_openBlock(), _createElementBlock(\"th\", {\n key: header.key,\n class: _normalizeClass(header.classes),\n scope: \"col\"\n }, [\n _renderSlot(_ctx.$slots, header.slotName, {\n classes: header.classes,\n items: internalItems.value,\n item: internalItems.value[index],\n label: header.label\n }, () => [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(header.label), 1)\n ])\n ], 2))\n }), 128)),\n (_ctx.actions)\n ? (_openBlock(), _createElementBlock(\"th\", {\n key: 1,\n class: _normalizeClass([\"bb-table-header bb-table-header--actions\", _ctx.thClass]),\n scope: \"col\"\n }, [\n _renderSlot(_ctx.$slots, \"header_actions\", { text: _ctx.actionsText }, () => [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.actionsText), 1)\n ])\n ], 2))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (loading.value)\n ? _renderSlot(_ctx.$slots, \"loading\", {\n key: 0,\n items: internalItems.value\n }, () => [\n _createElementVNode(\"tr\", _hoisted_8, [\n _createElementVNode(\"td\", {\n class: \"bb-table-loading__cell\",\n colspan: replacementContentSpan.value\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_unref(loadingText)), 1),\n _createElementVNode(\"div\", _hoisted_11, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(skeletonLength.value, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"bb-table-skeleton-item\",\n key: item\n }, _hoisted_14))\n }), 128))\n ])\n ], 8, _hoisted_9)\n ])\n ])\n : (!internalItems.value.length)\n ? _renderSlot(_ctx.$slots, 'no-data', { key: 1 }, () => [\n _createElementVNode(\"tr\", _hoisted_15, [\n _createElementVNode(\"td\", {\n class: \"bb-table-no-data__cell\",\n colspan: replacementContentSpan.value\n }, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_unref(noDataText)), 1)\n ], 8, _hoisted_16)\n ])\n ])\n : _renderSlot(_ctx.$slots, \"tbody\", { key: 2 }, () => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(mappedItems.value, (item) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n class: \"bb-table-data__row\",\n key: item.jsonValue,\n onClick: item.onRowClick,\n onContextmenu: item.onRowContextMenu,\n onDblclick: item.onRowDblClick\n }, [\n (_ctx.selectable)\n ? (_openBlock(), _createElementBlock(\"td\", {\n key: 0,\n class: _normalizeClass([\"bb-table-data__cell bb-table-data__cell--select\", _ctx.tdClass])\n }, [\n _renderSlot(_ctx.$slots, 'select', {\n item: item.original,\n value: item.value,\n checked: item.selected,\n disabled: !item.selectable,\n inputName: _unref(randomName),\n readonly: !!_ctx.readonly\n }, () => [\n (_ctx.multiple)\n ? (_openBlock(), _createElementBlock(\"label\", {\n key: 0,\n class: _normalizeClass([\"bb-table-check__label\", {\n 'bb-table-check__label--disabled': !item.selectable,\n }])\n }, [\n _createVNode(BaseCheckbox, {\n class: \"bb-table-check\",\n checked: item.selected || allSelected.value,\n disabled: !item.selectable,\n name: _unref(randomName),\n readonly: _ctx.readonly,\n onChange: () => onInputChange(item)\n }, null, 8, [\"checked\", \"disabled\", \"name\", \"readonly\", \"onChange\"]),\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(item.accessibleLabel), 1)\n ], 2))\n : (_openBlock(), _createElementBlock(\"label\", {\n key: 1,\n class: _normalizeClass([\"bb-table-radio__label\", {\n 'bb-table-radio__label--disabled': !item.selectable,\n }])\n }, [\n _createVNode(BaseRadio, {\n class: \"bb-table-radio\",\n checked: item.selected,\n disabled: !item.selectable,\n name: _unref(randomName),\n readonly: _ctx.readonly,\n value: item.value,\n onChange: () => onInputChange(item)\n }, null, 8, [\"checked\", \"disabled\", \"name\", \"readonly\", \"value\", \"onChange\"]),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(item.accessibleLabel), 1)\n ], 2))\n ])\n ], 2))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.cols, (col) => {\n return (_openBlock(), _createElementBlock(\"td\", {\n key: col.key,\n class: _normalizeClass([\"bb-table-data__cell\", col.classes])\n }, [\n _renderSlot(_ctx.$slots, col.slotName, {\n classes: col.classes,\n content: col.content,\n item: item.original,\n value: item.value\n }, () => [\n _createTextVNode(_toDisplayString(col.content), 1)\n ])\n ], 2))\n }), 128)),\n (_ctx.actions)\n ? (_openBlock(), _createElementBlock(\"td\", {\n key: 1,\n class: _normalizeClass([\"bb-table__cell bb-table__cell--actions\", _ctx.tdClass])\n }, [\n _renderSlot(_ctx.$slots, 'actions', {\n item: item.original,\n value: item.value\n })\n ], 2))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_18))\n }), 128))\n ])\n ]),\n _createElementVNode(\"tfoot\", null, [\n _renderSlot(_ctx.$slots, \"tfoot\")\n ])\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(hiddenInputs.value, (input) => {\n return (_openBlock(), _createElementBlock(\"input\", _mergeProps({\n key: input.value\n }, input), null, 16))\n }), 128))\n ]),\n _: 3\n }, 8, [\"class\"]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_createElementVNode","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_sfc_main","_defineComponent","columns","col","__props","__emit","getItemValue","useItemValue","randomName","useId","props","emit","container","ref","accessibleLabel","loadingText","noDataText","selectAllText","selectText","containerTag","computed","internalLoading","loading","replacementContentSpan","acc","current","modelValueIndexed","map","value","index","key","_a","pairs","deepEqual","slotNames","curr","mapped","internalItems","getItems","items","onMounted","watch","timeout","previous","mappedHeaders","column","align","label","slotName","classes","mappedItems","item","jsonValue","selectable","selectedIndex","selected","isNil","cols","content","temp","accessibleLabelText","isNotNil","event","onChangeSelectAll","selectAllValue","modelValue","allSelected","indeterminate","onInputChange","valueToEmit","makeInputValue","when","hiddenInputs","skeletonLength","clamp","headers","mappedColumns","position","clientRect","width","offset","el","add","row","cell","_ctx","_cache","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_withCtx","_createElementBlock","_toDisplayString","_createCommentVNode","_renderSlot","_createVNode","BaseCheckbox","_unref","_Fragment","_renderList","header","BaseRadio","_createTextVNode","input","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"index98.js","sources":["../src/components/BbTable/BbTable.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, renderSlot as _renderSlot, createVNode as _createVNode, unref as _unref, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, mergeProps as _mergeProps, resolveDynamicComponent as _resolveDynamicComponent, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"bb-table-header-row\" }\nconst _hoisted_3 = { class: \"bb-table-header__content\" }\nconst _hoisted_4 = { class: \"bb-table-check__label-text\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"bb-table-radio__label-text\"\n}\nconst _hoisted_6 = { class: \"bb-table-header__content\" }\nconst _hoisted_7 = { class: \"bb-table-header__content\" }\nconst _hoisted_8 = { class: \"bb-table-loading__row\" }\nconst _hoisted_9 = [\"colspan\"]\nconst _hoisted_10 = { class: \"bb-table-loading__text\" }\nconst _hoisted_11 = {\n class: \"bb-table-skeleton__container\",\n role: \"status\"\n}\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__avatar-container\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__avatar\" })\n], -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__text\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__line\" }),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"bb-table-skeleton-item__line\" })\n], -1)\nconst _hoisted_14 = [\n _hoisted_12,\n _hoisted_13\n]\nconst _hoisted_15 = { class: \"bb-table-no-data__row\" }\nconst _hoisted_16 = [\"colspan\"]\nconst _hoisted_17 = { class: \"bb-table-no-data__text\" }\nconst _hoisted_18 = [\"onClick\", \"onContextmenu\", \"onDblclick\"]\nconst _hoisted_19 = { class: \"bb-table-check__label-text\" }\nconst _hoisted_20 = { class: \"bb-table-radio__label-text\" }\n\nimport { add } from \"@/utilities/functions/add\";\nimport { clamp } from \"@/utilities/functions/clamp\";\nimport { deepEqual } from \"fast-equals\";\nimport { isNil } from \"@/utilities/functions/isNil\";\nimport { isNotNil } from \"@/utilities/functions/isNotNil\";\nimport { type Ref, computed, onMounted, ref, watch } from \"vue\";\nimport { useId } from \"@/composables/useId\";\nimport { useItemValue } from \"@/composables/useItemValue\";\nimport { when } from \"@/utilities/functions/when\";\nimport BaseCheckbox from \"../BaseCheckbox/BaseCheckbox.vue\";\nimport BaseRadio from \"../BaseRadio/BaseRadio.vue\";\nimport type { BbTableProps, MappedCell, MappedHeader, MappedItem, TableColumn, BbTableEvents, BbTableSlots } from \"./types\"\nimport type { Classes } from \"@/types/Classes\";\n\ntype X = typeof props.columns\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbTable',\n props: {\n compact: { type: Boolean },\n dependencies: { default: () => [] },\n depsDebounceTime: { default: 0 },\n disabled: { type: Boolean },\n itemValue: {},\n loading: { type: Boolean },\n loadingText: { default: \"Caricamento\" },\n matchStrategy: { default: \"string\" },\n multiple: { type: Boolean, default: true },\n name: {},\n noDataText: { default: \"Non ci sono elementi da visualizzare\" },\n readonly: {},\n items: { type: [Array, Function], default: () => [] },\n legend: {},\n modelValue: {},\n accessibleLabel: { type: Function, default: (columns: MappedCell[]) =>\n [\"Seleziona\"].concat(columns.map((col) => col.content)).join(\" \") },\n actions: { type: Boolean },\n actionsText: { default: \"Azioni\" },\n align: { default: \"left\" },\n allowSelectAll: { type: Boolean, default: true },\n caption: {},\n columns: { default: () => [] },\n displayCaption: { type: Boolean },\n fixed: { type: Boolean },\n fixedHeader: { type: Boolean },\n fixedColumns: { default: () => [] },\n selectable: { type: [Boolean, Function] },\n selectAll: { type: Boolean },\n selectAllText: { default: \"Seleziona tutti gli elementi di questa pagina\" },\n selectText: { default: \"Seleziona un elemento\" },\n tdClass: {},\n thClass: {}\n },\n emits: [\"click:row\", \"contextmenu:row\", \"dblclick:row\", \"update:modelValue\", \"update:selectAll\"],\n setup(__props: any, { emit: __emit }) {\n\nconst { getItemValue } = useItemValue();\n\n/**\n * We do not allow the use of the checkbox or radio themselves as\n * they would not be submitted if the user has changed\n * page in the meantime, rather we provide a temporary\n * name so radio still work but we later add hidden inputs for submission\n */\nconst randomName = useId().id.value;\n\nconst props = __props;\n\nconst emit = __emit;\n\n\nconst container = ref<HTMLElement>();\n\nconst accessibleLabel = props.accessibleLabel;\nconst loadingText = props.loadingText;\nconst noDataText = props.noDataText;\nconst selectAllText = props.selectAllText;\nconst selectText = props.selectText;\n\n// We render the table in a fieldset to group checkbox / radios if the table is selectable\nconst containerTag = computed(() => (props.selectable ? \"fieldset\" : \"div\"));\nconst internalLoading = ref(false);\nconst loading = computed(() => props.loading || internalLoading.value);\n\nconst replacementContentSpan = computed(() => {\n return [!!props.selectable, !!props.actions].reduce(\n (acc: number, current) => acc + Number(!!current),\n props.columns.length\n );\n});\n\n/**\n * Indexes modelValue to a map so when can easily know which values are selected\n * (using JSON to circumvent identical object not being equal in JS)\n */\nconst modelValueIndexed = computed(() => {\n if (props.matchStrategy === \"string\") {\n let map: { [key: string]: number } = {};\n [].concat(props.modelValue).forEach((value: any, index: number) => {\n map[JSON.stringify(value)] = index;\n });\n return {\n get: (value: any) => map[JSON.stringify(value)],\n };\n } else if (props.matchStrategy === \"equality\") {\n const map = []\n .concat(props.modelValue)\n .map((value, index) => [value, index]);\n\n return {\n get: (key: any) => {\n return map.find((pairs) => deepEqual(pairs[0], key))?.[1];\n },\n };\n } else {\n throw new Error(\"No match strategy has been defined\");\n }\n});\n\n/**\n * Map column identifiers to slot names\n */\nconst slotNames = computed(() =>\n props.columns.reduce(\n (\n acc: { [key: string]: string },\n curr: TableColumn<(typeof internalItems.value)[number]>\n ) => {\n const mapped = curr.key.split(/\\W+/g).join(\"_\");\n acc[curr.key] = mapped;\n return acc;\n },\n {}\n )\n);\n\n/**\n * Items as loaded from the function or from the outside\n */\nconst internalItems = ref([] as T[]) as Ref<T[]>;\n\nconst getItems = async () => {\n let items: T[] = [];\n if (Array.isArray(props.items)) {\n items = props.items;\n } else {\n if (typeof props.items === \"function\") {\n internalLoading.value = true;\n items = await props.items(true);\n internalLoading.value = false;\n }\n }\n internalItems.value = items;\n};\n\nonMounted(getItems);\n\n/**\n * When item changes update internal items and\n * deselect everything\n */\nwatch(\n () => props.items,\n async () => {\n await getItems();\n if (props.multiple) {\n emit(\"update:modelValue\", []);\n } else {\n emit(\"update:modelValue\", null);\n }\n }\n);\n/* Prevent vue from sharing this function across instances */\nlet timeout: ReturnType<typeof setTimeout>;\nconst onDependencyChange = async (curr: any[], previous?: any[]) => {\n if (JSON.stringify(curr) !== JSON.stringify(previous)) {\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(async () => {\n await getItems();\n if (props.multiple) {\n emit(\"update:modelValue\", []);\n } else {\n emit(\"update:modelValue\", null);\n }\n }, props.depsDebounceTime);\n }\n};\nwatch(() => props.dependencies, onDependencyChange);\n\n/**\n * Take the columns and generate a simplified array for headers display\n */\nconst mappedHeaders = computed(() =>\n props.columns.map(\n (\n column: TableColumn<(typeof internalItems.value)[number]>\n ): MappedHeader => {\n const align = column.align || \"left\";\n const { label, key } = column;\n const slotName = `header_${slotNames.value[column.key]}`;\n // Create a single merged array of all the passed classes\n let classes: Classes = [];\n if (props.thClass) {\n classes = classes.concat(props.thClass);\n }\n if (column.thClass) {\n classes = classes.concat(column.thClass);\n }\n return {\n align,\n key,\n label,\n slotName,\n classes,\n };\n }\n )\n);\n\n/**\n * Map items to an an array that represents the entire row.\n * Track every logic here so we don't have inline callbacks in the template.\n */\nconst mappedItems = computed<MappedItem[]>(() => {\n return internalItems.value.map((item: any) => {\n // By default the value if the item is the item.\n const value = getItemValue(item, props.itemValue);\n const jsonValue = JSON.stringify(value);\n\n /**\n * Item is selectable only if the table allows or item\n * passes iteratee and the selection is not disabled\n */\n let selectable = !!props.selectable;\n if (typeof props.selectable === \"function\") {\n selectable = !!props.selectable(item);\n }\n selectable = selectable && !props.disabled;\n\n //Track the index at which the item has been selected for easy of removal\n const selectedIndex = modelValueIndexed.value.get(value);\n const selected = !isNil(selectedIndex);\n\n // Create a projection of the columns and run all formatter logic so\n // we just display content in the template\n const cols: MappedCell[] = props.columns.map((column) => {\n // Slot identifier\n const slotName = slotNames.value[column.key];\n const align = column.align || \"left\";\n const { label, key } = column;\n // The content\n let content = getItemValue(item, column.key);\n if (\n column.formatter &&\n // By default the formatter runs anyway\n (!isNil(content) || column.formatOnNull !== false)\n ) {\n content = column.formatter(content, column.key, item);\n }\n if (column.placeholder && isNil(content)) {\n content = column.placeholder;\n }\n\n // Merge global and specific classes\n let classes: Classes = [];\n if (props.tdClass) {\n if (typeof props.tdClass === \"function\") {\n let temp = props.tdClass(content, column.key, item);\n if (temp) {\n classes = classes.concat(temp);\n }\n } else classes = classes.concat(props.tdClass);\n }\n if (column.tdClass) {\n if (typeof column.tdClass === \"function\") {\n let temp = column.tdClass(content, column.key, item);\n if (temp) {\n classes = classes.concat(temp);\n }\n } else classes = classes.concat(column.tdClass);\n }\n return {\n align,\n classes,\n content,\n key,\n label,\n slotName,\n };\n });\n\n const accessibleLabelText = accessibleLabel(cols, item);\n\n if (isNotNil(selectedIndex)) {\n return {\n accessibleLabel: accessibleLabelText,\n cols,\n jsonValue,\n original: item,\n selectable,\n selected: true,\n selectedIndex,\n value,\n onRowClick: (event: MouseEvent) =>\n emit(\"click:row\", event, item, selected),\n onRowContextMenu: (event: MouseEvent) =>\n emit(\"contextmenu:row\", event, item, selected),\n onRowDblClick: (event: MouseEvent) =>\n emit(\"dblclick:row\", event, item, selected),\n };\n }\n return {\n accessibleLabel: accessibleLabelText,\n cols,\n jsonValue,\n original: item,\n selectable,\n selected: false,\n selectedIndex,\n value,\n onRowClick: (event: MouseEvent) =>\n emit(\"click:row\", event, item, selected),\n onRowContextMenu: (event: MouseEvent) =>\n emit(\"contextmenu:row\", event, item, selected),\n onRowDblClick: (event: MouseEvent) =>\n emit(\"dblclick:row\", event, item, selected),\n };\n });\n});\n\n/**\n * Same behavior as GMail.\n * If anything is selected remove it.\n * Then when empty you select all items of this page\n */\nconst onChangeSelectAll = (value: boolean) => {\n let selectAllValue = value;\n let modelValue: any[] = [];\n\n if (selectAllValue) {\n modelValue = mappedItems.value.reduce((acc: any[], curr) => {\n if (curr.selectable) acc.push(curr.value);\n return acc;\n }, []);\n }\n emit(\"update:modelValue\", modelValue);\n emit(\"update:selectAll\", value);\n};\n\nconst allSelected = computed(\n () =>\n !!(\n mappedItems.value.length &&\n mappedItems.value.every((item) => item.selectable && item.selected)\n )\n);\nconst indeterminate = computed(\n () =>\n mappedItems.value.some((item) => !item.selected) &&\n !!props.modelValue?.length\n);\n/**\n * Whenever an input changes update modelValue if any\n */\nconst onInputChange = (item: MappedItem) => {\n let valueToEmit;\n if (props.multiple) {\n if (item.selected) {\n valueToEmit = props.modelValue\n .slice(0, item.selectedIndex)\n .concat(props.modelValue.slice([item.selectedIndex + 1]));\n } else {\n valueToEmit = props.modelValue.concat(item.value);\n }\n } else {\n valueToEmit = item.value;\n }\n emit(\"update:modelValue\", valueToEmit);\n};\n\n/**\n * When using this component for submission we add a bunch of hidden inputs\n * so the submitted inputs is on par with v-model\n */\n\n/**\n * This is used to keep the value compatible to common html expected values.\n * Convert to string everything that's not but do not double encode strings\n */\nconst makeInputValue = when(\n (item: unknown) => typeof item !== \"string\",\n JSON.stringify\n);\nconst hiddenInputs = computed(() => {\n return [].concat(props.modelValue).map((current) => {\n const value = makeInputValue(current);\n return {\n disabled: props.disabled,\n name: props.name,\n type: \"hidden\",\n value: value,\n };\n });\n});\n\nconst skeletonLength = computed(() => {\n return clamp(internalItems.value.length, 4, 10);\n});\n\nwatch(\n () => mappedItems.value,\n () => {\n if (props.fixedColumns.length && props.items) {\n if (container.value) {\n // Get all the headers\n const headers = Array.from(\n container.value.querySelectorAll<HTMLElement>(\"thead th\")\n );\n\n type MappedColumn = {\n index: number;\n position: \"left\" | \"right\";\n width: number;\n offset: number;\n };\n\n /**\n * For each of the columns to fix create an helper object\n */\n const mappedColumns = props.fixedColumns.reduce((acc, curr) => {\n const index = typeof curr === \"number\" ? curr : curr.index;\n const position = typeof curr === \"number\" ? \"left\" : curr.position;\n const clientRect = headers[index].getBoundingClientRect();\n const width = Math.floor(clientRect.width);\n const offset = acc\n .filter((el) => el.position === position)\n .map((el) => el.width)\n .reduce(add, 0);\n\n const mapped: MappedColumn = {\n index: index,\n position: position,\n width: width,\n offset: offset,\n };\n acc.push(mapped);\n return acc;\n }, [] as MappedColumn[]);\n\n const rows = Array.from(container.value?.querySelectorAll(\"tr\"));\n const affectedCells = rows.map((row) =>\n Array.from(\n row.querySelectorAll<HTMLElement>(\n mappedColumns\n .map((el) => `:scope > :nth-child(${el.index + 1})`)\n .join(\", \")\n )\n )\n );\n affectedCells.forEach((row) => {\n row.forEach((cell, index) => {\n cell.style.position = \"sticky\";\n\n if (mappedColumns[index].position === \"left\") {\n cell.style.left = `${mappedColumns[index].offset}px`;\n } else {\n cell.style.right = `${mappedColumns[index].offset}px`;\n }\n });\n });\n }\n }\n },\n {\n flush: \"post\",\n }\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(containerTag.value), {\n class: _normalizeClass({\n 'bb-table': true,\n [`bb-table--align-${_ctx.align}`]: true,\n 'bb-table--compact': _ctx.compact,\n 'bb-table--fixed': _ctx.fixed,\n 'bb-table--fixed-header': _ctx.fixedHeader,\n 'bb-table--loading': loading.value,\n 'bb-table--empty': !internalItems.value.length,\n 'bb-table--selectable': _ctx.selectable,\n }),\n ref_key: \"container\",\n ref: container\n }, {\n default: _withCtx(() => [\n (_ctx.selectable)\n ? (_openBlock(), _createElementBlock(\"legend\", _hoisted_1, _toDisplayString(_ctx.legend), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"table\", null, [\n (_ctx.caption)\n ? (_openBlock(), _createElementBlock(\"caption\", {\n key: 0,\n class: _normalizeClass({\n 'bb-table-caption': true,\n 'bb-table-caption--hidden': !_ctx.displayCaption,\n })\n }, _toDisplayString(_ctx.caption), 3))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"thead\", null, [\n _renderSlot(_ctx.$slots, \"thead\", {}, () => [\n _createElementVNode(\"tr\", _hoisted_2, [\n (_ctx.selectable)\n ? (_openBlock(), _createElementBlock(\"th\", {\n key: 0,\n class: _normalizeClass([\"bb-table-header bb-table-header--select\", _ctx.thClass]),\n scope: \"col\"\n }, [\n _renderSlot(_ctx.$slots, 'header_select', {\n multiple: _ctx.multiple,\n selectAll: !!_ctx.selectAll\n }, () => [\n _createElementVNode(\"span\", _hoisted_3, [\n (_ctx.allowSelectAll && _ctx.multiple)\n ? (_openBlock(), _createElementBlock(\"label\", {\n key: 0,\n class: _normalizeClass([\"bb-table-check__label\", {\n 'bb-table-check__label--disabled': _ctx.disabled,\n }])\n }, [\n _createVNode(BaseCheckbox, {\n class: \"bb-table-check\",\n disabled: _ctx.disabled,\n indeterminate: indeterminate.value,\n readonly: _ctx.readonly,\n name: `select_all_${_ctx.name || ''}`,\n \"model-value\": allSelected.value,\n \"onUpdate:modelValue\": onChangeSelectAll\n }, null, 8, [\"disabled\", \"indeterminate\", \"readonly\", \"name\", \"model-value\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_unref(selectAllText)), 1)\n ], 2))\n : (!_ctx.multiple)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(_unref(selectText)), 1))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 2))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(mappedHeaders.value, (header, index) => {\n return (_openBlock(), _createElementBlock(\"th\", {\n key: header.key,\n class: _normalizeClass(header.classes),\n scope: \"col\"\n }, [\n _renderSlot(_ctx.$slots, header.slotName, {\n classes: header.classes,\n items: internalItems.value,\n item: (undefined as unknown as T),\n label: header.label\n }, () => [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(header.label), 1)\n ])\n ], 2))\n }), 128)),\n (_ctx.actions)\n ? (_openBlock(), _createElementBlock(\"th\", {\n key: 1,\n class: _normalizeClass([\"bb-table-header bb-table-header--actions\", _ctx.thClass]),\n scope: \"col\"\n }, [\n _renderSlot(_ctx.$slots, \"header_actions\", { text: _ctx.actionsText }, () => [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.actionsText), 1)\n ])\n ], 2))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (loading.value)\n ? _renderSlot(_ctx.$slots, \"loading\", {\n key: 0,\n items: internalItems.value\n }, () => [\n _createElementVNode(\"tr\", _hoisted_8, [\n _createElementVNode(\"td\", {\n class: \"bb-table-loading__cell\",\n colspan: replacementContentSpan.value\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_unref(loadingText)), 1),\n _createElementVNode(\"div\", _hoisted_11, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(skeletonLength.value, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"bb-table-skeleton-item\",\n key: item\n }, _hoisted_14))\n }), 128))\n ])\n ], 8, _hoisted_9)\n ])\n ])\n : (!internalItems.value.length)\n ? _renderSlot(_ctx.$slots, 'no-data', { key: 1 }, () => [\n _createElementVNode(\"tr\", _hoisted_15, [\n _createElementVNode(\"td\", {\n class: \"bb-table-no-data__cell\",\n colspan: replacementContentSpan.value\n }, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_unref(noDataText)), 1)\n ], 8, _hoisted_16)\n ])\n ])\n : _renderSlot(_ctx.$slots, \"tbody\", { key: 2 }, () => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(mappedItems.value, (item) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n class: \"bb-table-data__row\",\n key: item.jsonValue,\n onClick: item.onRowClick,\n onContextmenu: item.onRowContextMenu,\n onDblclick: item.onRowDblClick\n }, [\n (_ctx.selectable)\n ? (_openBlock(), _createElementBlock(\"td\", {\n key: 0,\n class: _normalizeClass([\"bb-table-data__cell bb-table-data__cell--select\", _ctx.tdClass])\n }, [\n _renderSlot(_ctx.$slots, 'select', {\n item: item.original,\n value: item.value,\n checked: item.selected,\n disabled: !item.selectable,\n inputName: _unref(randomName),\n readonly: !!_ctx.readonly\n }, () => [\n (_ctx.multiple)\n ? (_openBlock(), _createElementBlock(\"label\", {\n key: 0,\n class: _normalizeClass([\"bb-table-check__label\", {\n 'bb-table-check__label--disabled': !item.selectable,\n }])\n }, [\n _createVNode(BaseCheckbox, {\n class: \"bb-table-check\",\n checked: item.selected || allSelected.value,\n disabled: !item.selectable,\n name: _unref(randomName),\n readonly: _ctx.readonly,\n onChange: () => onInputChange(item)\n }, null, 8, [\"checked\", \"disabled\", \"name\", \"readonly\", \"onChange\"]),\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(item.accessibleLabel), 1)\n ], 2))\n : (_openBlock(), _createElementBlock(\"label\", {\n key: 1,\n class: _normalizeClass([\"bb-table-radio__label\", {\n 'bb-table-radio__label--disabled': !item.selectable,\n }])\n }, [\n _createVNode(BaseRadio, {\n class: \"bb-table-radio\",\n checked: item.selected,\n disabled: !item.selectable,\n name: _unref(randomName),\n readonly: _ctx.readonly,\n value: item.value,\n onChange: () => onInputChange(item)\n }, null, 8, [\"checked\", \"disabled\", \"name\", \"readonly\", \"value\", \"onChange\"]),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(item.accessibleLabel), 1)\n ], 2))\n ])\n ], 2))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.cols, (col) => {\n return (_openBlock(), _createElementBlock(\"td\", {\n key: col.key,\n class: _normalizeClass([\"bb-table-data__cell\", col.classes])\n }, [\n _renderSlot(_ctx.$slots, col.slotName, {\n classes: col.classes,\n content: col.content,\n item: item.original,\n value: item.value\n }, () => [\n _createTextVNode(_toDisplayString(col.content), 1)\n ])\n ], 2))\n }), 128)),\n (_ctx.actions)\n ? (_openBlock(), _createElementBlock(\"td\", {\n key: 1,\n class: _normalizeClass([\"bb-table__cell bb-table__cell--actions\", _ctx.tdClass])\n }, [\n _renderSlot(_ctx.$slots, 'actions', {\n item: item.original,\n value: item.value\n })\n ], 2))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_18))\n }), 128))\n ])\n ]),\n _createElementVNode(\"tfoot\", null, [\n _renderSlot(_ctx.$slots, \"tfoot\")\n ])\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(hiddenInputs.value, (input) => {\n return (_openBlock(), _createElementBlock(\"input\", _mergeProps({\n key: input.value\n }, input), null, 16))\n }), 128))\n ]),\n _: 3\n }, 8, [\"class\"]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_createElementVNode","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_sfc_main","_defineComponent","columns","col","__props","__emit","getItemValue","useItemValue","randomName","useId","props","emit","container","ref","accessibleLabel","loadingText","noDataText","selectAllText","selectText","containerTag","computed","internalLoading","loading","replacementContentSpan","acc","current","modelValueIndexed","map","value","index","key","_a","pairs","deepEqual","slotNames","curr","mapped","internalItems","getItems","items","onMounted","watch","timeout","previous","mappedHeaders","column","align","label","slotName","classes","mappedItems","item","jsonValue","selectable","selectedIndex","selected","isNil","cols","content","temp","accessibleLabelText","isNotNil","event","onChangeSelectAll","selectAllValue","modelValue","allSelected","indeterminate","onInputChange","valueToEmit","makeInputValue","when","hiddenInputs","skeletonLength","clamp","headers","mappedColumns","position","clientRect","width","offset","el","add","row","cell","_ctx","_cache","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_withCtx","_createElementBlock","_toDisplayString","_createCommentVNode","_renderSlot","_createVNode","BaseCheckbox","_unref","_Fragment","_renderList","header","BaseRadio","_createTextVNode","input","_mergeProps"],"mappings":";;;;;;;;;;;;;AAGA,MAAMA,KAAa,EAAE,KAAK,KACpBC,KAAa,EAAE,OAAO,yBACtBC,KAAa,EAAE,OAAO,8BACtBC,KAAa,EAAE,OAAO,gCACtBC,KAAa;AAAA,EACjB,KAAK;AAAA,EACL,OAAO;AACT,GACMC,KAAa,EAAE,OAAO,8BACtBC,KAAa,EAAE,OAAO,8BACtBC,KAAa,EAAE,OAAO,2BACtBC,KAAa,CAAC,SAAS,GACvBC,KAAc,EAAE,OAAO,4BACvBC,KAAc;AAAA,EAClB,OAAO;AAAA,EACP,MAAM;AACR,GACMC,KAA+CC,gBAAAA,EAAA,OAAO,EAAE,OAAO,8CAA8C;AAAA,EAChFA,gBAAAA,EAAA,OAAO,EAAE,OAAO,kCAAkC;AACrF,GAAG,EAAE,GACCC,KAA+CD,gBAAAA,EAAA,OAAO,EAAE,OAAO,kCAAkC;AAAA,EACpEA,gBAAAA,EAAA,OAAO,EAAE,OAAO,gCAAgC;AAAA,EAChDA,gBAAAA,EAAA,OAAO,EAAE,OAAO,gCAAgC;AACnF,GAAG,EAAE,GACCE,KAAc;AAAA,EAClBH;AAAA,EACAE;AACF,GACME,KAAc,EAAE,OAAO,2BACvBC,KAAc,CAAC,SAAS,GACxBC,KAAc,EAAE,OAAO,4BACvBC,KAAc,CAAC,WAAW,iBAAiB,YAAY,GACvDC,KAAc,EAAE,OAAO,gCACvBC,KAAc,EAAE,OAAO,gCAkBDC,KAAiBC,gBAAAA,GAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,SAAS,EAAE,MAAM,QAAQ;AAAA,IACzB,cAAc,EAAE,SAAS,MAAM,GAAG;AAAA,IAClC,kBAAkB,EAAE,SAAS,EAAE;AAAA,IAC/B,UAAU,EAAE,MAAM,QAAQ;AAAA,IAC1B,WAAW,CAAC;AAAA,IACZ,SAAS,EAAE,MAAM,QAAQ;AAAA,IACzB,aAAa,EAAE,SAAS,cAAc;AAAA,IACtC,eAAe,EAAE,SAAS,SAAS;AAAA,IACnC,UAAU,EAAE,MAAM,SAAS,SAAS,GAAK;AAAA,IACzC,MAAM,CAAC;AAAA,IACP,YAAY,EAAE,SAAS,uCAAuC;AAAA,IAC9D,UAAU,CAAC;AAAA,IACX,OAAO,EAAE,MAAM,CAAC,OAAO,QAAQ,GAAG,SAAS,MAAM,GAAG;AAAA,IACpD,QAAQ,CAAC;AAAA,IACT,YAAY,CAAC;AAAA,IACb,iBAAiB,EAAE,MAAM,UAAU,SAAS,CAACC,MAC7C,CAAC,WAAW,EAAE,OAAOA,EAAQ,IAAI,CAACC,MAAQA,EAAI,OAAO,CAAC,EAAE,KAAK,GAAG,EAAE;AAAA,IAClE,SAAS,EAAE,MAAM,QAAQ;AAAA,IACzB,aAAa,EAAE,SAAS,SAAS;AAAA,IACjC,OAAO,EAAE,SAAS,OAAO;AAAA,IACzB,gBAAgB,EAAE,MAAM,SAAS,SAAS,GAAK;AAAA,IAC/C,SAAS,CAAC;AAAA,IACV,SAAS,EAAE,SAAS,MAAM,GAAG;AAAA,IAC7B,gBAAgB,EAAE,MAAM,QAAQ;AAAA,IAChC,OAAO,EAAE,MAAM,QAAQ;AAAA,IACvB,aAAa,EAAE,MAAM,QAAQ;AAAA,IAC7B,cAAc,EAAE,SAAS,MAAM,GAAG;AAAA,IAClC,YAAY,EAAE,MAAM,CAAC,SAAS,QAAQ,EAAE;AAAA,IACxC,WAAW,EAAE,MAAM,QAAQ;AAAA,IAC3B,eAAe,EAAE,SAAS,gDAAgD;AAAA,IAC1E,YAAY,EAAE,SAAS,wBAAwB;AAAA,IAC/C,SAAS,CAAC;AAAA,IACV,SAAS,CAAC;AAAA,EACZ;AAAA,EACA,OAAO,CAAC,aAAa,mBAAmB,gBAAgB,qBAAqB,kBAAkB;AAAA,EAC/F,MAAMC,GAAc,EAAE,MAAMC,KAAU;AAElC,UAAA,EAAE,cAAAC,MAAiBC,MAQnBC,IAAaC,KAAQ,GAAG,OAExBC,IAAQN,GAERO,IAAON,GAGPO,IAAYC,KAEZC,IAAkBJ,EAAM,iBACxBK,IAAcL,EAAM,aACpBM,IAAaN,EAAM,YACnBO,IAAgBP,EAAM,eACtBQ,IAAaR,EAAM,YAGnBS,KAAeC,EAAS,MAAOV,EAAM,aAAa,aAAa,KAAM,GACrEW,IAAkBR,EAAI,EAAK,GAC3BS,IAAUF,EAAS,MAAMV,EAAM,WAAWW,EAAgB,KAAK,GAE/DE,IAAyBH,EAAS,MAC/B,CAAC,CAAC,CAACV,EAAM,YAAY,CAAC,CAACA,EAAM,OAAO,EAAE;AAAA,MAC3C,CAACc,GAAaC,MAAYD,IAAM,CAAO,CAAC,CAACC;AAAA,MACzCf,EAAM,QAAQ;AAAA,IAAA,CAEjB,GAMKgB,KAAoBN,EAAS,MAAM;AACnC,UAAAV,EAAM,kBAAkB,UAAU;AACpC,YAAIiB,IAAiC,CAAA;AACpC,gBAAA,EAAE,OAAOjB,EAAM,UAAU,EAAE,QAAQ,CAACkB,GAAYC,MAAkB;AACjE,UAAAF,EAAI,KAAK,UAAUC,CAAK,CAAC,IAAIC;AAAA,QAAA,CAC9B,GACM;AAAA,UACL,KAAK,CAACD,MAAeD,EAAI,KAAK,UAAUC,CAAK,CAAC;AAAA,QAAA;AAAA,MAChD,WACSlB,EAAM,kBAAkB,YAAY;AAC7C,cAAMiB,IAAM,CACT,EAAA,OAAOjB,EAAM,UAAU,EACvB,IAAI,CAACkB,GAAOC,MAAU,CAACD,GAAOC,CAAK,CAAC;AAEhC,eAAA;AAAA,UACL,KAAK,CAACC,MAAa;;AACV,oBAAAC,IAAAJ,EAAI,KAAK,CAACK,MAAUC,GAAUD,EAAM,CAAC,GAAGF,CAAG,CAAC,MAA5C,gBAAAC,EAAgD;AAAA,UACzD;AAAA,QAAA;AAAA,MACF;AAEM,cAAA,IAAI,MAAM,oCAAoC;AAAA,IACtD,CACD,GAKKG,IAAYd;AAAA,MAAS,MACzBV,EAAM,QAAQ;AAAA,QACZ,CACEc,GACAW,MACG;AACH,gBAAMC,IAASD,EAAK,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG;AAC1C,iBAAAX,EAAAW,EAAK,GAAG,IAAIC,GACTZ;AAAA,QACT;AAAA,QACA,CAAC;AAAA,MACH;AAAA,IAAA,GAMIa,IAAgBxB,EAAI,CAAA,CAAS,GAE7ByB,IAAW,YAAY;AAC3B,UAAIC,IAAa,CAAA;AACjB,MAAI,MAAM,QAAQ7B,EAAM,KAAK,IAC3B6B,IAAQ7B,EAAM,QAEV,OAAOA,EAAM,SAAU,eACzBW,EAAgB,QAAQ,IAChBkB,IAAA,MAAM7B,EAAM,MAAM,EAAI,GAC9BW,EAAgB,QAAQ,KAG5BgB,EAAc,QAAQE;AAAA,IAAA;AAGxB,IAAAC,GAAUF,CAAQ,GAMlBG;AAAA,MACE,MAAM/B,EAAM;AAAA,MACZ,YAAY;AACV,cAAM4B,EAAS,GACX5B,EAAM,WACHC,EAAA,qBAAqB,CAAA,CAAE,IAE5BA,EAAK,qBAAqB,IAAI;AAAA,MAElC;AAAA,IAAA;AAGE,QAAA+B;AAgBE,IAAAD,EAAA,MAAM/B,EAAM,cAfS,OAAOyB,GAAaQ,MAAqB;AAClE,MAAI,KAAK,UAAUR,CAAI,MAAM,KAAK,UAAUQ,CAAQ,MAC9CD,KACF,aAAaA,CAAO,GAEtBA,IAAU,WAAW,YAAY;AAC/B,cAAMJ,EAAS,GACX5B,EAAM,WACHC,EAAA,qBAAqB,CAAA,CAAE,IAE5BA,EAAK,qBAAqB,IAAI;AAAA,MAChC,GACCD,EAAM,gBAAgB;AAAA,IAC3B,CAEgD;AAKlD,UAAMkC,KAAgBxB;AAAA,MAAS,MAC7BV,EAAM,QAAQ;AAAA,QACZ,CACEmC,MACiB;AACX,gBAAAC,IAAQD,EAAO,SAAS,QACxB,EAAE,OAAAE,GAAO,KAAAjB,EAAQ,IAAAe,GACjBG,IAAW,UAAUd,EAAU,MAAMW,EAAO,GAAG,CAAC;AAEtD,cAAII,IAAmB,CAAA;AACvB,iBAAIvC,EAAM,YACEuC,IAAAA,EAAQ,OAAOvC,EAAM,OAAO,IAEpCmC,EAAO,YACCI,IAAAA,EAAQ,OAAOJ,EAAO,OAAO,IAElC;AAAA,YACL,OAAAC;AAAA,YACA,KAAAhB;AAAA,YACA,OAAAiB;AAAA,YACA,UAAAC;AAAA,YACA,SAAAC;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAAA,IAAA,GAOIC,IAAc9B,EAAuB,MAClCiB,EAAc,MAAM,IAAI,CAACc,MAAc;AAE5C,YAAMvB,IAAQtB,EAAa6C,GAAMzC,EAAM,SAAS,GAC1C0C,IAAY,KAAK,UAAUxB,CAAK;AAMlC,UAAAyB,IAAa,CAAC,CAAC3C,EAAM;AACrB,MAAA,OAAOA,EAAM,cAAe,eAC9B2C,IAAa,CAAC,CAAC3C,EAAM,WAAWyC,CAAI,IAEzBE,IAAAA,KAAc,CAAC3C,EAAM;AAGlC,YAAM4C,IAAgB5B,GAAkB,MAAM,IAAIE,CAAK,GACjD2B,IAAW,CAACC,EAAMF,CAAa,GAI/BG,IAAqB/C,EAAM,QAAQ,IAAI,CAACmC,MAAW;AAEvD,cAAMG,IAAWd,EAAU,MAAMW,EAAO,GAAG,GACrCC,IAAQD,EAAO,SAAS,QACxB,EAAE,OAAAE,GAAO,KAAAjB,EAAQ,IAAAe;AAEvB,YAAIa,IAAUpD,EAAa6C,GAAMN,EAAO,GAAG;AAC3C,QACEA,EAAO;AAAA,SAEN,CAACW,EAAME,CAAO,KAAKb,EAAO,iBAAiB,QAE5Ca,IAAUb,EAAO,UAAUa,GAASb,EAAO,KAAKM,CAAI,IAElDN,EAAO,eAAeW,EAAME,CAAO,MACrCA,IAAUb,EAAO;AAInB,YAAII,IAAmB,CAAA;AACvB,YAAIvC,EAAM;AACJ,cAAA,OAAOA,EAAM,WAAY,YAAY;AACvC,gBAAIiD,IAAOjD,EAAM,QAAQgD,GAASb,EAAO,KAAKM,CAAI;AAClD,YAAIQ,MACQV,IAAAA,EAAQ,OAAOU,CAAI;AAAA,UAEjC;AAAiB,YAAAV,IAAAA,EAAQ,OAAOvC,EAAM,OAAO;AAE/C,YAAImC,EAAO;AACL,cAAA,OAAOA,EAAO,WAAY,YAAY;AACxC,gBAAIc,IAAOd,EAAO,QAAQa,GAASb,EAAO,KAAKM,CAAI;AACnD,YAAIQ,MACQV,IAAAA,EAAQ,OAAOU,CAAI;AAAA,UAEjC;AAAiB,YAAAV,IAAAA,EAAQ,OAAOJ,EAAO,OAAO;AAEzC,eAAA;AAAA,UACL,OAAAC;AAAA,UACA,SAAAG;AAAA,UACA,SAAAS;AAAA,UACA,KAAA5B;AAAA,UACA,OAAAiB;AAAA,UACA,UAAAC;AAAA,QAAA;AAAA,MACF,CACD,GAEKY,IAAsB9C,EAAgB2C,GAAMN,CAAI;AAElD,aAAAU,GAASP,CAAa,IACjB;AAAA,QACL,iBAAiBM;AAAA,QACjB,MAAAH;AAAA,QACA,WAAAL;AAAA,QACA,UAAUD;AAAA,QACV,YAAAE;AAAA,QACA,UAAU;AAAA,QACV,eAAAC;AAAA,QACA,OAAA1B;AAAA,QACA,YAAY,CAACkC,MACXnD,EAAK,aAAamD,GAAOX,GAAMI,CAAQ;AAAA,QACzC,kBAAkB,CAACO,MACjBnD,EAAK,mBAAmBmD,GAAOX,GAAMI,CAAQ;AAAA,QAC/C,eAAe,CAACO,MACdnD,EAAK,gBAAgBmD,GAAOX,GAAMI,CAAQ;AAAA,MAAA,IAGzC;AAAA,QACL,iBAAiBK;AAAA,QACjB,MAAAH;AAAA,QACA,WAAAL;AAAA,QACA,UAAUD;AAAA,QACV,YAAAE;AAAA,QACA,UAAU;AAAA,QACV,eAAAC;AAAA,QACA,OAAA1B;AAAA,QACA,YAAY,CAACkC,MACXnD,EAAK,aAAamD,GAAOX,GAAMI,CAAQ;AAAA,QACzC,kBAAkB,CAACO,MACjBnD,EAAK,mBAAmBmD,GAAOX,GAAMI,CAAQ;AAAA,QAC/C,eAAe,CAACO,MACdnD,EAAK,gBAAgBmD,GAAOX,GAAMI,CAAQ;AAAA,MAAA;AAAA,IAC9C,CACD,CACF,GAOKQ,KAAoB,CAACnC,MAAmB;AAC5C,UAAIoC,IAAiBpC,GACjBqC,IAAoB,CAAA;AAExB,MAAID,MACFC,IAAaf,EAAY,MAAM,OAAO,CAAC1B,GAAYW,OAC7CA,EAAK,cAAgBX,EAAA,KAAKW,EAAK,KAAK,GACjCX,IACN,CAAE,CAAA,IAEPb,EAAK,qBAAqBsD,CAAU,GACpCtD,EAAK,oBAAoBiB,CAAK;AAAA,IAAA,GAG1BsC,IAAc9C;AAAA,MAClB,MACE,CAAC,EACC8B,EAAY,MAAM,UAClBA,EAAY,MAAM,MAAM,CAACC,MAASA,EAAK,cAAcA,EAAK,QAAQ;AAAA,IAAA,GAGlEgB,KAAgB/C;AAAA,MACpB,MAAA;;AACE,eAAA8B,EAAY,MAAM,KAAK,CAACC,MAAS,CAACA,EAAK,QAAQ,KAC/C,CAAC,GAACpB,IAAArB,EAAM,eAAN,QAAAqB,EAAkB;AAAA;AAAA,IAAA,GAKlBqC,IAAgB,CAACjB,MAAqB;AACtC,UAAAkB;AACJ,MAAI3D,EAAM,WACJyC,EAAK,WACPkB,IAAc3D,EAAM,WACjB,MAAM,GAAGyC,EAAK,aAAa,EAC3B,OAAOzC,EAAM,WAAW,MAAM,CAACyC,EAAK,gBAAgB,CAAC,CAAC,CAAC,IAE1DkB,IAAc3D,EAAM,WAAW,OAAOyC,EAAK,KAAK,IAGlDkB,IAAclB,EAAK,OAErBxC,EAAK,qBAAqB0D,CAAW;AAAA,IAAA,GAYjCC,KAAiBC;AAAA,MACrB,CAACpB,MAAkB,OAAOA,KAAS;AAAA,MACnC,KAAK;AAAA,IAAA,GAEDqB,KAAepD,EAAS,MACrB,CAAA,EAAG,OAAOV,EAAM,UAAU,EAAE,IAAI,CAACe,MAAY;AAC5C,YAAAG,IAAQ0C,GAAe7C,CAAO;AAC7B,aAAA;AAAA,QACL,UAAUf,EAAM;AAAA,QAChB,MAAMA,EAAM;AAAA,QACZ,MAAM;AAAA,QACN,OAAAkB;AAAA,MAAA;AAAA,IACF,CACD,CACF,GAEK6C,KAAiBrD,EAAS,MACvBsD,GAAMrC,EAAc,MAAM,QAAQ,GAAG,EAAE,CAC/C;AAED,WAAAI;AAAA,MACE,MAAMS,EAAY;AAAA,MAClB,MAAM;;AACJ,YAAIxC,EAAM,aAAa,UAAUA,EAAM,SACjCE,EAAU,OAAO;AAEnB,gBAAM+D,IAAU,MAAM;AAAA,YACpB/D,EAAU,MAAM,iBAA8B,UAAU;AAAA,UAAA,GAapDgE,IAAgBlE,EAAM,aAAa,OAAO,CAACc,GAAKW,MAAS;AAC7D,kBAAMN,IAAQ,OAAOM,KAAS,WAAWA,IAAOA,EAAK,OAC/C0C,IAAW,OAAO1C,KAAS,WAAW,SAASA,EAAK,UACpD2C,IAAaH,EAAQ9C,CAAK,EAAE,sBAAsB,GAClDkD,IAAQ,KAAK,MAAMD,EAAW,KAAK,GACnCE,IAASxD,EACZ,OAAO,CAACyD,MAAOA,EAAG,aAAaJ,CAAQ,EACvC,IAAI,CAACI,MAAOA,EAAG,KAAK,EACpB,OAAOC,IAAK,CAAC,GAEV9C,IAAuB;AAAA,cAC3B,OAAAP;AAAA,cACA,UAAAgD;AAAA,cACA,OAAAE;AAAA,cACA,QAAAC;AAAA,YAAA;AAEF,mBAAAxD,EAAI,KAAKY,CAAM,GACRZ;AAAA,UACT,GAAG,CAAoB,CAAA;AAYT,UAVD,MAAM,MAAKO,IAAAnB,EAAU,UAAV,gBAAAmB,EAAiB,iBAAiB,KAAK,EACpC;AAAA,YAAI,CAACoD,MAC9B,MAAM;AAAA,cACJA,EAAI;AAAA,gBACFP,EACG,IAAI,CAACK,MAAO,uBAAuBA,EAAG,QAAQ,CAAC,GAAG,EAClD,KAAK,IAAI;AAAA,cACd;AAAA,YACF;AAAA,UAAA,EAEY,QAAQ,CAACE,MAAQ;AACzB,YAAAA,EAAA,QAAQ,CAACC,GAAMvD,MAAU;AAC3B,cAAAuD,EAAK,MAAM,WAAW,UAElBR,EAAc/C,CAAK,EAAE,aAAa,SACpCuD,EAAK,MAAM,OAAO,GAAGR,EAAc/C,CAAK,EAAE,MAAM,OAEhDuD,EAAK,MAAM,QAAQ,GAAGR,EAAc/C,CAAK,EAAE,MAAM;AAAA,YACnD,CACD;AAAA,UAAA,CACF;AAAA,QACH;AAAA,MAEJ;AAAA,MACA;AAAA,QACE,OAAO;AAAA,MACT;AAAA,IAAA,GAGK,CAACwD,GAAUC,OACRC,EAAc,GAAAC,GAAaC,GAAyBtE,GAAa,KAAK,GAAG;AAAA,MAC/E,OAAOuE,EAAgB;AAAA,QACrB,YAAY;AAAA,QACZ,CAAC,mBAAmBL,EAAK,KAAK,EAAE,GAAG;AAAA,QACnC,qBAAqBA,EAAK;AAAA,QAC1B,mBAAmBA,EAAK;AAAA,QACxB,0BAA0BA,EAAK;AAAA,QAC/B,qBAAqB/D,EAAQ;AAAA,QAC7B,mBAAmB,CAACe,EAAc,MAAM;AAAA,QACxC,wBAAwBgD,EAAK;AAAA,MAAA,CAC9B;AAAA,MACD,SAAS;AAAA,MACT,KAAKzE;AAAA,IAAA,GACJ;AAAA,MACD,SAAS+E,GAAS,MAAM;AAAA,QACrBN,EAAK,cACDE,EAAW,GAAGK,EAAoB,UAAUjH,IAAYkH,EAAiBR,EAAK,MAAM,GAAG,CAAC,KACzFS,EAAoB,IAAI,EAAI;AAAA,QAChCvG,EAAoB,SAAS,MAAM;AAAA,UAChC8F,EAAK,WACDE,KAAcK,EAAoB,WAAW;AAAA,YAC5C,KAAK;AAAA,YACL,OAAOF,EAAgB;AAAA,cAC3B,oBAAoB;AAAA,cACpB,4BAA4B,CAACL,EAAK;AAAA,YAAA,CACnC;AAAA,UAAA,GACMQ,EAAiBR,EAAK,OAAO,GAAG,CAAC,KACpCS,EAAoB,IAAI,EAAI;AAAA,UAChCvG,EAAoB,SAAS,MAAM;AAAA,YACjCwG,EAAYV,EAAK,QAAQ,SAAS,IAAI,MAAM;AAAA,cAC1C9F,EAAoB,MAAMX,IAAY;AAAA,gBACnCyG,EAAK,cACDE,KAAcK,EAAoB,MAAM;AAAA,kBACvC,KAAK;AAAA,kBACL,OAAOF,EAAgB,CAAC,2CAA2CL,EAAK,OAAO,CAAC;AAAA,kBAChF,OAAO;AAAA,gBAAA,GACN;AAAA,kBACDU,EAAYV,EAAK,QAAQ,iBAAiB;AAAA,oBACxC,UAAUA,EAAK;AAAA,oBACf,WAAW,CAAC,CAACA,EAAK;AAAA,kBAAA,GACjB,MAAM;AAAA,oBACP9F,EAAoB,QAAQV,IAAY;AAAA,sBACrCwG,EAAK,kBAAkBA,EAAK,YACxBE,EAAW,GAAGK,EAAoB,SAAS;AAAA,wBAC1C,KAAK;AAAA,wBACL,OAAOF,EAAgB,CAAC,yBAAyB;AAAA,0BACzD,mCAAmCL,EAAK;AAAA,wBAAA,CACzC,CAAC;AAAA,sBAAA,GACS;AAAA,wBACDW,EAAaC,GAAc;AAAA,0BACzB,OAAO;AAAA,0BACP,UAAUZ,EAAK;AAAA,0BACf,eAAelB,GAAc;AAAA,0BAC7B,UAAUkB,EAAK;AAAA,0BACf,MAAM,cAAcA,EAAK,QAAQ,EAAE;AAAA,0BACnC,eAAenB,EAAY;AAAA,0BAC3B,uBAAuBH;AAAA,wBAAA,GACtB,MAAM,GAAG,CAAC,YAAY,iBAAiB,YAAY,QAAQ,aAAa,CAAC;AAAA,wBAC5ExE,EAAoB,QAAQT,IAAY+G,EAAiBK,EAAOjF,CAAa,CAAC,GAAG,CAAC;AAAA,sBAAA,GACjF,CAAC,KACFoE,EAAK,WAELS,EAAoB,IAAI,EAAI,KAD3BP,KAAcK,EAAoB,QAAQ7G,IAAY8G,EAAiBK,EAAOhF,CAAU,CAAC,GAAG,CAAC;AAAA,oBAClE,CACnC;AAAA,kBAAA,CACF;AAAA,gBACA,GAAA,CAAC,KACJ4E,EAAoB,IAAI,EAAI;AAAA,iBAC/BP,EAAW,EAAI,GAAGK,EAAoBO,GAAW,MAAMC,EAAYxD,GAAc,OAAO,CAACyD,GAAQxE,OACxF0D,EAAA,GAAcK,EAAoB,MAAM;AAAA,kBAC9C,KAAKS,EAAO;AAAA,kBACZ,OAAOX,EAAgBW,EAAO,OAAO;AAAA,kBACrC,OAAO;AAAA,gBAAA,GACN;AAAA,kBACDN,EAAYV,EAAK,QAAQgB,EAAO,UAAU;AAAA,oBACxC,SAASA,EAAO;AAAA,oBAChB,OAAOhE,EAAc;AAAA,oBACrB,MAAO;AAAA,oBACP,OAAOgE,EAAO;AAAA,kBAAA,GACb,MAAM;AAAA,oBACP9G,EAAoB,QAAQP,IAAY6G,EAAiBQ,EAAO,KAAK,GAAG,CAAC;AAAA,kBAAA,CAC1E;AAAA,mBACA,CAAC,EACL,GAAG,GAAG;AAAA,gBACNhB,EAAK,WACDE,KAAcK,EAAoB,MAAM;AAAA,kBACvC,KAAK;AAAA,kBACL,OAAOF,EAAgB,CAAC,4CAA4CL,EAAK,OAAO,CAAC;AAAA,kBACjF,OAAO;AAAA,gBAAA,GACN;AAAA,kBACDU,EAAYV,EAAK,QAAQ,kBAAkB,EAAE,MAAMA,EAAK,YAAY,GAAG,MAAM;AAAA,oBAC3E9F,EAAoB,QAAQN,IAAY4G,EAAiBR,EAAK,WAAW,GAAG,CAAC;AAAA,kBAAA,CAC9E;AAAA,gBACA,GAAA,CAAC,KACJS,EAAoB,IAAI,EAAI;AAAA,cAAA,CACjC;AAAA,YAAA,CACF;AAAA,UAAA,CACF;AAAA,UACDvG,EAAoB,SAAS,MAAM;AAAA,YAChC+B,EAAQ,QACLyE,EAAYV,EAAK,QAAQ,WAAW;AAAA,cAClC,KAAK;AAAA,cACL,OAAOhD,EAAc;AAAA,YAAA,GACpB,MAAM;AAAA,cACP9C,EAAoB,MAAML,IAAY;AAAA,gBACpCK,EAAoB,MAAM;AAAA,kBACxB,OAAO;AAAA,kBACP,SAASgC,EAAuB;AAAA,gBAAA,GAC/B;AAAA,kBACDhC,EAAoB,QAAQH,IAAayG,EAAiBK,EAAOnF,CAAW,CAAC,GAAG,CAAC;AAAA,kBACjFxB,EAAoB,OAAOF,IAAa;AAAA,qBACrCkG,EAAW,EAAI,GAAGK,EAAoBO,GAAW,MAAMC,EAAY3B,GAAe,OAAO,CAACtB,OACjFoC,EAAA,GAAcK,EAAoB,OAAO;AAAA,sBAC/C,OAAO;AAAA,sBACP,KAAKzC;AAAA,uBACJ1D,EAAW,EACf,GAAG,GAAG;AAAA,kBAAA,CACR;AAAA,gBAAA,GACA,GAAGN,EAAU;AAAA,cAAA,CACjB;AAAA,YACF,CAAA,IACCkD,EAAc,MAAM,SAWpB0D,EAAYV,EAAK,QAAQ,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM;AAAA,eACjDE,EAAW,EAAI,GAAGK,EAAoBO,GAAW,MAAMC,EAAYlD,EAAY,OAAO,CAACC,OAC9EoC,EAAA,GAAcK,EAAoB,MAAM;AAAA,gBAC9C,OAAO;AAAA,gBACP,KAAKzC,EAAK;AAAA,gBACV,SAASA,EAAK;AAAA,gBACd,eAAeA,EAAK;AAAA,gBACpB,YAAYA,EAAK;AAAA,cAAA,GAChB;AAAA,gBACAkC,EAAK,cACDE,KAAcK,EAAoB,MAAM;AAAA,kBACvC,KAAK;AAAA,kBACL,OAAOF,EAAgB,CAAC,mDAAmDL,EAAK,OAAO,CAAC;AAAA,gBAAA,GACvF;AAAA,kBACDU,EAAYV,EAAK,QAAQ,UAAU;AAAA,oBACjC,MAAMlC,EAAK;AAAA,oBACX,OAAOA,EAAK;AAAA,oBACZ,SAASA,EAAK;AAAA,oBACd,UAAU,CAACA,EAAK;AAAA,oBAChB,WAAW+C,EAAO1F,CAAU;AAAA,oBAC5B,UAAU,CAAC,CAAC6E,EAAK;AAAA,kBAAA,GAChB,MAAM;AAAA,oBACNA,EAAK,YACDE,KAAcK,EAAoB,SAAS;AAAA,sBAC1C,KAAK;AAAA,sBACL,OAAOF,EAAgB,CAAC,yBAAyB;AAAA,wBACjE,mCAAmC,CAACvC,EAAK;AAAA,sBAAA,CAC1C,CAAC;AAAA,oBAAA,GACiB;AAAA,sBACD6C,EAAaC,GAAc;AAAA,wBACzB,OAAO;AAAA,wBACP,SAAS9C,EAAK,YAAYe,EAAY;AAAA,wBACtC,UAAU,CAACf,EAAK;AAAA,wBAChB,MAAM+C,EAAO1F,CAAU;AAAA,wBACvB,UAAU6E,EAAK;AAAA,wBACf,UAAU,MAAMjB,EAAcjB,CAAI;AAAA,sBAAA,GACjC,MAAM,GAAG,CAAC,WAAW,YAAY,QAAQ,YAAY,UAAU,CAAC;AAAA,sBACnE5D,EAAoB,QAAQO,IAAa+F,EAAiB1C,EAAK,eAAe,GAAG,CAAC;AAAA,uBACjF,CAAC,MACHoC,KAAcK,EAAoB,SAAS;AAAA,sBAC1C,KAAK;AAAA,sBACL,OAAOF,EAAgB,CAAC,yBAAyB;AAAA,wBACjE,mCAAmC,CAACvC,EAAK;AAAA,sBAAA,CAC1C,CAAC;AAAA,oBAAA,GACiB;AAAA,sBACD6C,EAAaM,IAAW;AAAA,wBACtB,OAAO;AAAA,wBACP,SAASnD,EAAK;AAAA,wBACd,UAAU,CAACA,EAAK;AAAA,wBAChB,MAAM+C,EAAO1F,CAAU;AAAA,wBACvB,UAAU6E,EAAK;AAAA,wBACf,OAAOlC,EAAK;AAAA,wBACZ,UAAU,MAAMiB,EAAcjB,CAAI;AAAA,sBAAA,GACjC,MAAM,GAAG,CAAC,WAAW,YAAY,QAAQ,YAAY,SAAS,UAAU,CAAC;AAAA,sBAC5E5D,EAAoB,QAAQQ,IAAa8F,EAAiB1C,EAAK,eAAe,GAAG,CAAC;AAAA,uBACjF,CAAC;AAAA,kBAAA,CACT;AAAA,gBACA,GAAA,CAAC,KACJ2C,EAAoB,IAAI,EAAI;AAAA,iBAC/BP,EAAW,EAAI,GAAGK,EAAoBO,GAAW,MAAMC,EAAYjD,EAAK,MAAM,CAAChD,OACtEoF,EAAA,GAAcK,EAAoB,MAAM;AAAA,kBAC9C,KAAKzF,EAAI;AAAA,kBACT,OAAOuF,EAAgB,CAAC,uBAAuBvF,EAAI,OAAO,CAAC;AAAA,gBAAA,GAC1D;AAAA,kBACD4F,EAAYV,EAAK,QAAQlF,EAAI,UAAU;AAAA,oBACrC,SAASA,EAAI;AAAA,oBACb,SAASA,EAAI;AAAA,oBACb,MAAMgD,EAAK;AAAA,oBACX,OAAOA,EAAK;AAAA,kBAAA,GACX,MAAM;AAAA,oBACPoD,GAAiBV,EAAiB1F,EAAI,OAAO,GAAG,CAAC;AAAA,kBAAA,CAClD;AAAA,mBACA,CAAC,EACL,GAAG,GAAG;AAAA,gBACNkF,EAAK,WACDE,KAAcK,EAAoB,MAAM;AAAA,kBACvC,KAAK;AAAA,kBACL,OAAOF,EAAgB,CAAC,0CAA0CL,EAAK,OAAO,CAAC;AAAA,gBAAA,GAC9E;AAAA,kBACDU,EAAYV,EAAK,QAAQ,WAAW;AAAA,oBAClC,MAAMlC,EAAK;AAAA,oBACX,OAAOA,EAAK;AAAA,kBAAA,CACb;AAAA,gBACA,GAAA,CAAC,KACJ2C,EAAoB,IAAI,EAAI;AAAA,cAAA,GAC/B,IAAIjG,EAAW,EACnB,GAAG,GAAG;AAAA,YAAA,CACR,IAjGDkG,EAAYV,EAAK,QAAQ,WAAW,EAAE,KAAK,KAAK,MAAM;AAAA,cACpD9F,EAAoB,MAAMG,IAAa;AAAA,gBACrCH,EAAoB,MAAM;AAAA,kBACxB,OAAO;AAAA,kBACP,SAASgC,EAAuB;AAAA,gBAAA,GAC/B;AAAA,kBACDhC,EAAoB,QAAQK,IAAaiG,EAAiBK,EAAOlF,CAAU,CAAC,GAAG,CAAC;AAAA,gBAAA,GAC/E,GAAGrB,EAAW;AAAA,cAAA,CAClB;AAAA,YAAA,CACF;AAAA,UAwFA,CACR;AAAA,UACDJ,EAAoB,SAAS,MAAM;AAAA,YACjCwG,EAAYV,EAAK,QAAQ,OAAO;AAAA,UAAA,CACjC;AAAA,QAAA,CACF;AAAA,SACAE,EAAW,EAAI,GAAGK,EAAoBO,GAAW,MAAMC,EAAY5B,GAAa,OAAO,CAACgC,OAC/EjB,EAAW,GAAGK,EAAoB,SAASa,GAAY;AAAA,UAC7D,KAAKD,EAAM;AAAA,QACV,GAAAA,CAAK,GAAG,MAAM,EAAE,EACpB,GAAG,GAAG;AAAA,MAAA,CACR;AAAA,MACD,GAAG;AAAA,IAAA,GACF,GAAG,CAAC,OAAO,CAAC;AAAA,EAEjB;AAEA,CAAC;"}