{"version":3,"file":"Dvu8J63t.js","sources":["../../../../../../bootstrap-vue-next/dist/BPagination.vue_vue_type_script_setup_true_lang-Dprt0p13.mjs"],"sourcesContent":["import { defineComponent, mergeModels, useModel, computed, watch, openBlock, createElementBlock, normalizeClass, unref, Fragment, renderList, mergeProps, renderSlot, createTextVNode, toDisplayString, createBlock, resolveDynamicComponent, withCtx } from \"vue\";\nimport { B as BvEvent } from \"./classes-IC0yVJlq.mjs\";\nimport { u as useAlignment } from \"./useAlignment-Cw-9AVid.mjs\";\nimport { u as useDefaults } from \"./useDefaults-BuoSLvNO.mjs\";\nimport { u as useToNumber } from \"./index-DlGgXMQF.mjs\";\nconst _hoisted_1 = [\"aria-disabled\", \"aria-label\"];\nconst DEFAULT_PER_PAGE = 20;\nconst DEFAULT_TOTAL_ROWS = 0;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"BPagination\",\n props: /* @__PURE__ */ mergeModels({\n align: { default: \"start\" },\n ariaControls: { default: void 0 },\n ariaLabel: { default: \"Pagination\" },\n disabled: { type: Boolean, default: false },\n ellipsisClass: { default: void 0 },\n ellipsisText: { default: \"…\" },\n firstClass: { default: void 0 },\n firstNumber: { type: Boolean, default: false },\n firstText: { default: \"«\" },\n hideEllipsis: { type: Boolean, default: false },\n hideGotoEndButtons: { type: Boolean, default: false },\n labelFirstPage: { default: \"Go to first page\" },\n labelLastPage: { default: \"Go to last page\" },\n labelNextPage: { default: \"Go to next page\" },\n labelPage: { default: \"Go to page\" },\n labelPrevPage: { default: \"Go to previous page\" },\n lastClass: { default: void 0 },\n lastNumber: { type: Boolean, default: false },\n lastText: { default: \"»\" },\n limit: { default: 5 },\n nextClass: { default: void 0 },\n nextText: { default: \"›\" },\n pageClass: { default: void 0 },\n perPage: { default: DEFAULT_PER_PAGE },\n pills: { type: Boolean, default: false },\n prevClass: { default: void 0 },\n prevText: { default: \"‹\" },\n size: { default: void 0 },\n totalRows: { default: DEFAULT_TOTAL_ROWS }\n }, {\n \"modelValue\": { default: 1 },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"page-click\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const ELLIPSIS_THRESHOLD = 3;\n const FIRST_BUTTON = -1;\n const PREV_BUTTON = -2;\n const NEXT_BUTTON = -3;\n const LAST_BUTTON = -4;\n const FIRST_ELLIPSIS = -5;\n const LAST_ELLIPSIS = -6;\n const _props = __props;\n const props = useDefaults(_props, \"BPagination\");\n const emit = __emit;\n const modelValue = useModel(__props, \"modelValue\");\n const limitNumber = useToNumber(() => props.limit, { nanToZero: true, method: \"parseInt\" });\n const perPageNumber = useToNumber(() => props.perPage, { nanToZero: true, method: \"parseInt\" });\n const totalRowsNumber = useToNumber(() => props.totalRows, { nanToZero: true, method: \"parseInt\" });\n const modelValueNumber = useToNumber(modelValue, { nanToZero: true, method: \"parseInt\" });\n const perPageSanitized = computed(() => Math.max(perPageNumber.value || DEFAULT_PER_PAGE, 1));\n const totalRowsSanitized = computed(() => Math.max(totalRowsNumber.value || DEFAULT_TOTAL_ROWS, 0));\n const numberOfPages = computed(() => Math.ceil(totalRowsSanitized.value / perPageSanitized.value));\n const computedFill = computed(() => props.align === \"fill\");\n const justifyAlign = computed(() => props.align === \"fill\" ? \"start\" : props.align);\n const alignment = useAlignment(justifyAlign);\n const isActivePage = (pageNumber) => pageNumber === modelValueNumber.value;\n const getTabIndex = (num) => props.disabled ? null : isActivePage(num) ? \"0\" : \"-1\";\n const checkDisabled = (num) => props.disabled || isActivePage(num) || modelValueNumber.value < 1 || // Check if the number is out of bounds\n num < 1 || num > numberOfPages.value;\n const firstDisabled = computed(() => checkDisabled(1));\n const prevDisabled = computed(() => checkDisabled(modelValueNumber.value - 1));\n const lastDisabled = computed(() => checkDisabled(numberOfPages.value));\n const nextDisabled = computed(() => checkDisabled(modelValueNumber.value + 1));\n const getBaseButtonProps = ({\n page,\n classVal,\n dis,\n slotName,\n textValue,\n tabIndex,\n label,\n position,\n isActive,\n role,\n hidden\n }) => ({\n li: {\n \"class\": [\n \"page-item\",\n {\n \"active\": isActive,\n \"disabled\": dis,\n \"flex-fill\": computedFill.value,\n \"d-flex\": computedFill.value && !dis\n },\n classVal\n ],\n role,\n \"aria-hidden\": hidden\n },\n button: {\n \"is\": dis ? \"span\" : \"button\",\n \"class\": [\"page-link\", \"text-center\", { \"flex-grow-1\": !dis && computedFill.value }],\n \"aria-label\": label,\n \"aria-controls\": props.ariaControls || void 0,\n \"aria-disabled\": dis ? true : void 0,\n \"aria-posinset\": position,\n \"aria-setsize\": position ? numberOfPages.value : void 0,\n \"role\": \"menuitem\",\n \"type\": dis ? void 0 : \"button\",\n \"tabindex\": dis ? void 0 : tabIndex\n },\n text: {\n name: slotName,\n active: isActive,\n value: textValue ?? page,\n page,\n disabled: dis,\n index: page - 1,\n content: textValue ? void 0 : page\n },\n clickHandler: (e) => pageClick(e, page)\n });\n const getButtonProps = ({\n page,\n classVal,\n dis,\n slotName,\n textValue,\n label\n }) => getBaseButtonProps({ page, classVal, dis, slotName, textValue, label, tabIndex: \"-1\" });\n const getPageButtonProps = (page) => getBaseButtonProps({\n page,\n dis: props.disabled,\n classVal: props.pageClass,\n slotName: \"page\",\n label: props.labelPage ? `${props.labelPage} ${page}` : void 0,\n tabIndex: getTabIndex(page) ?? void 0,\n position: page,\n isActive: isActivePage(page)\n });\n const firstButtonProps = computed(\n () => getButtonProps({\n page: 1,\n dis: firstDisabled.value,\n classVal: props.firstClass,\n slotName: \"first-text\",\n textValue: props.firstText,\n label: props.labelFirstPage\n })\n );\n const prevButtonProps = computed(\n () => getButtonProps({\n page: Math.max(modelValueNumber.value - 1, 1),\n dis: prevDisabled.value,\n classVal: props.prevClass,\n slotName: \"prev-text\",\n textValue: props.prevText,\n label: props.labelPrevPage\n })\n );\n const nextButtonProps = computed(\n () => getButtonProps({\n page: Math.min(modelValueNumber.value + 1, numberOfPages.value),\n dis: nextDisabled.value,\n classVal: props.nextClass,\n slotName: \"next-text\",\n textValue: props.nextText,\n label: props.labelNextPage\n })\n );\n const lastButtonProps = computed(\n () => getButtonProps({\n page: numberOfPages.value,\n dis: lastDisabled.value,\n classVal: props.lastClass,\n slotName: \"last-text\",\n textValue: props.lastText,\n label: props.labelLastPage\n })\n );\n const ellipsisProps = computed(() => ({\n li: {\n class: [\n \"page-item\",\n \"disabled\",\n \"text-center\",\n \"bv-d-xs-down-none\",\n computedFill.value ? \"flex-fill\" : \"\",\n props.ellipsisClass\n ],\n role: \"separator\"\n },\n span: {\n class: [\"page-link\"]\n }\n }));\n const computedWrapperClasses = computed(() => [\n alignment.value,\n {\n [`pagination-${props.size}`]: props.size !== void 0,\n \"b-pagination-pills\": props.pills\n }\n ]);\n const pagination = computed(() => ({\n pageSize: perPageSanitized.value,\n totalRows: totalRowsNumber.value,\n numberOfPages: numberOfPages.value\n }));\n const pageClick = (event, pageNumber) => {\n if (pageNumber === modelValueNumber.value) return;\n const clickEvent = new BvEvent(\"page-click\", {\n cancelable: true,\n target: event.target\n });\n emit(\"page-click\", clickEvent, pageNumber);\n if (clickEvent.defaultPrevented) return;\n modelValue.value = pageNumber;\n };\n watch(modelValueNumber, (newValue) => {\n const sanitizeCurrentPage = (value, numberOfPages2) => {\n const page = value || 1;\n return page > numberOfPages2 ? numberOfPages2 : page < 1 ? 1 : page;\n };\n const calculatedValue = sanitizeCurrentPage(newValue, numberOfPages.value);\n if (calculatedValue === modelValue.value) return;\n modelValue.value = calculatedValue;\n });\n watch(pagination, (oldValue, newValue) => {\n if (newValue.pageSize !== oldValue.pageSize && newValue.totalRows === oldValue.totalRows) {\n modelValue.value = 1;\n } else if (newValue.numberOfPages !== oldValue.numberOfPages && modelValueNumber.value > newValue.numberOfPages) {\n modelValue.value = 1;\n }\n });\n const pages = computed(\n () => elements.value.map((p) => {\n switch (p) {\n case FIRST_BUTTON:\n return { id: p, ...firstButtonProps.value };\n case PREV_BUTTON:\n return { id: p, ...prevButtonProps.value };\n case NEXT_BUTTON:\n return { id: p, ...nextButtonProps.value };\n case LAST_BUTTON:\n return { id: p, ...lastButtonProps.value };\n case FIRST_ELLIPSIS:\n case LAST_ELLIPSIS:\n return { id: p, ...ellipsisProps.value };\n default:\n return { id: p, ...getPageButtonProps(p) };\n }\n })\n );\n const elements = computed(() => {\n const pages2 = numberOfPages.value;\n const { value } = modelValueNumber;\n const limit = limitNumber.value;\n const firstPage = props.firstNumber ? 1 : 0;\n const lastPage = props.lastNumber ? 1 : 0;\n const hideEllipsis = props.hideEllipsis || limit <= ELLIPSIS_THRESHOLD;\n const hideFirstButton = props.hideGotoEndButtons && !props.firstNumber ? 1 : 0;\n const hideLastButton = props.hideGotoEndButtons && !props.lastNumber ? 1 : 0;\n const showFirstButton = hideFirstButton ? 0 : 1;\n const showLastButton = hideLastButton ? 0 : 1;\n if (pages2 < limit + firstPage + lastPage) {\n return [\n !firstPage && !hideFirstButton ? FIRST_BUTTON : null,\n PREV_BUTTON,\n ...Array.from({ length: pages2 }, (_, index) => index + 1),\n NEXT_BUTTON,\n !lastPage && !hideLastButton ? LAST_BUTTON : null\n ].filter((x) => x !== null);\n }\n const buttons = Array.from({ length: limit + 4 - (hideFirstButton + hideLastButton) });\n if (!hideFirstButton) {\n if (!firstPage) {\n buttons[0] = FIRST_BUTTON;\n buttons[1] = PREV_BUTTON;\n } else {\n buttons[0] = PREV_BUTTON;\n buttons[1] = 1;\n }\n } else {\n buttons[0] = PREV_BUTTON;\n }\n if (!hideLastButton) {\n if (!lastPage) {\n buttons[buttons.length - 1] = LAST_BUTTON;\n buttons[buttons.length - 2] = NEXT_BUTTON;\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON;\n buttons[buttons.length - 2] = pages2;\n }\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON;\n }\n const halfLimit = Math.floor(limit / 2);\n if (value <= halfLimit + firstPage) {\n for (let index = 1; index <= limit; index++) {\n buttons[index + 1 - hideFirstButton] = index + firstPage;\n }\n if (!hideEllipsis) {\n buttons[buttons.length - (2 + showLastButton)] = LAST_ELLIPSIS;\n }\n }\n if (value > pages2 - halfLimit - lastPage) {\n const start = pages2 - (limit - 1) - lastPage;\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - hideFirstButton] = start + index;\n }\n if (!hideEllipsis) {\n buttons[1 + showFirstButton] = FIRST_ELLIPSIS;\n }\n }\n if (!buttons[2]) {\n const start = value - Math.floor(limit / 2);\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - hideFirstButton] = start + index;\n }\n if (!hideEllipsis) {\n buttons[1 + showFirstButton] = FIRST_ELLIPSIS;\n buttons[buttons.length - (2 + showLastButton)] = LAST_ELLIPSIS;\n }\n }\n return buttons.filter((x) => x !== null);\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"ul\", {\n class: normalizeClass([\"pagination\", computedWrapperClasses.value]),\n role: \"menubar\",\n \"aria-disabled\": unref(props).disabled,\n \"aria-label\": unref(props).ariaLabel || void 0\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(pages.value, (page) => {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: `page-${page.id}`,\n ref_for: true\n }, page.li), [\n page.id === FIRST_ELLIPSIS || page.id === LAST_ELLIPSIS ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n ref_for: true\n }, ellipsisProps.value.span), [\n renderSlot(_ctx.$slots, \"ellipsis-text\", {}, () => [\n createTextVNode(toDisplayString(unref(props).ellipsisText || \"...\"), 1)\n ])\n ], 16)) : (openBlock(), createBlock(resolveDynamicComponent(page.button.is), mergeProps({\n key: 1,\n ref_for: true\n }, page.button, {\n onClick: page.clickHandler\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, page.text.name, {\n disabled: page.text.disabled,\n page: page.text.page,\n index: page.text.index,\n active: page.text.active,\n content: page.text.value\n }, () => [\n createTextVNode(toDisplayString(page.text.value), 1)\n ])\n ]),\n _: 2\n }, 1040, [\"onClick\"]))\n ], 16);\n }), 128))\n ], 10, _hoisted_1);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=BPagination.vue_vue_type_script_setup_true_lang-Dprt0p13.mjs.map\n"],"names":["_hoisted_1","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","_sfc_main","defineComponent","mergeModels","__props","__emit","props","useDefaults","emit","modelValue","useModel","limitNumber","useToNumber","perPageNumber","totalRowsNumber","modelValueNumber","perPageSanitized","computed","totalRowsSanitized","numberOfPages","computedFill","justifyAlign","alignment","useAlignment","isActivePage","pageNumber","getTabIndex","num","checkDisabled","firstDisabled","prevDisabled","lastDisabled","nextDisabled","getBaseButtonProps","page","classVal","dis","slotName","textValue","tabIndex","label","position","isActive","role","hidden","e","pageClick","getButtonProps","getPageButtonProps","firstButtonProps","prevButtonProps","nextButtonProps","lastButtonProps","ellipsisProps","computedWrapperClasses","pagination","event","clickEvent","BvEvent","watch","newValue","calculatedValue","value","numberOfPages2","oldValue","pages","elements","p","pages2","limit","firstPage","lastPage","hideEllipsis","hideFirstButton","hideLastButton","showFirstButton","showLastButton","_","index","x","buttons","halfLimit","start","_ctx","_cache","openBlock","createElementBlock","normalizeClass","unref","Fragment","renderList","mergeProps","renderSlot","createTextVNode","toDisplayString","createBlock","resolveDynamicComponent","withCtx"],"mappings":"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"}