{"version":3,"file":"SportEducationsByAudience.vue.bundle.js","sources":["../../../Frontend/vue/views/SportEducationsByAudience/SportEducationsByAudience.vue","../../../Frontend/vue/views/SportEducationsByAudience/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\r\n    import CmsDataProvider, { SportEducationsCmsData } from \"@/providers/CmsDataProvider\";\r\n    import { onMounted, ref, watch } from \"vue\";\r\n    import SportEducationsService, { ISportEducationsItem } from \"@/services/SportEducationsService\";\r\n    import { ISportEducationsParams } from \"@/repositories/SportEducationsRepository\";\r\n    import Loader from \"@/components/loader.vue\";\r\n    import SportEducationsItem from \"@/components/sportEducationsItem.vue\";\r\n    import { StringHelper } from \"@/helpers/stringhelper\";\r\n\r\n    // Variables\r\n    const cmsData = CmsDataProvider.get<SportEducationsCmsData>(\"SportEducationsByAudienceCmsData\");\r\n    const sportEducationsList = ref([] as ISportEducationsItem[]);\r\n    const isLoading = ref(false);\r\n    const showLoadMore = ref(true);\r\n    const currentPage = ref(1);\r\n    const totalItems = ref(0);\r\n    const itemsPerPage = 5;\r\n\r\n    let initializing = true;\r\n\r\n    // Functions\r\n    const init = async () => {\r\n\r\n        await getItems({\r\n            skip: 0,\r\n            take: currentPage.value * itemsPerPage\r\n        });\r\n\r\n        initializing = false;\r\n    };\r\n\r\n    const getItems = async (params: ISportEducationsParams) => {\r\n        isLoading.value = true;\r\n\r\n        await SportEducationsService.GetItems(params, cmsData.grouping).then((response) => {\r\n            totalItems.value = response.data.total;\r\n\r\n            sportEducationsList.value.push(...response.data.items);\r\n\r\n            showLoadMore.value = currentPage.value * itemsPerPage < totalItems.value;\r\n        }).finally(() => {\r\n            isLoading.value = false;\r\n        });\r\n    };\r\n\r\n    const loadMore = () => {\r\n        currentPage.value++;\r\n        let scrollElement = document.getElementById(\"bottom-button-sport-educations-by-audience\");\r\n        scrollElement?.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\r\n    }\r\n\r\n    // Watchers\r\n    watch([currentPage], () => {\r\n\r\n        if (initializing) {\r\n            return;\r\n        }\r\n\r\n        getItems({\r\n            skip: itemsPerPage * (currentPage.value - 1),\r\n            take: itemsPerPage,\r\n        });\r\n    });\r\n\r\n    // Mounted\r\n    onMounted(() => {\r\n        init();\r\n    });\r\n\r\n</script>\r\n\r\n<template>\r\n    <loader v-show=\"isLoading\"></loader>\r\n    <section class=\"container sport-list block\">\r\n        <div class=\"row\">\r\n            <div class=\"offset-lg-3 col-14 col-lg-9\">\r\n                <h2 v-html=\"StringHelper.HtmlDecode(cmsData.title)\"></h2>\r\n            </div>\r\n        </div>\r\n        <div class=\"row background-rectangles\">\r\n            <div class=\"offset-lg-9 col-lg-15\">\r\n                <div class=\"sport-list-wrapper\">\r\n                    <ul>\r\n                        <sport-educations-item v-for=\"item in sportEducationsList\" :key=\"item.id\" :item=\"item\"\r\n                                               :cms-data=\"cmsData\"></sport-educations-item>\r\n                    </ul>\r\n                    <a class=\"btn btn-link\" v-if=\"showLoadMore\" @click=\"loadMore\">\r\n                        {{ cmsData.showMoreText }}\r\n                        <svg class=\"icon icon-ChevronDown\">\r\n                            <use xlink:href=\"#icon-ChevronDown\"></use>\r\n                        </svg>\r\n                    </a>\r\n                    <a class=\"btn btn-primary\" id=\"bottom-button-sport-educations-by-audience\" :href=\"cmsData.linkUrl\" :target=\"cmsData.linkTarget\">{{ cmsData.linkText }}</a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </section>\r\n</template>\r\n","import { createApp } from 'vue';\r\nimport SportEducations from './SportEducationsByAudience.vue';\r\n\r\nconst app = createApp(SportEducations)\r\napp.mount('#sport-educations-audience')"],"names":["SportEducations"],"mappings":";;;;;;;;;;;AAgBI,MAAM,eAAe;;;;AANf,UAAA,UAAU,gBAAgB,IAA4B,kCAAkC;AACxF,UAAA,sBAAsB,IAAI,CAAA,CAA4B;AACtD,UAAA,YAAY,IAAI,KAAK;AACrB,UAAA,eAAe,IAAI,IAAI;AACvB,UAAA,cAAc,IAAI,CAAC;AACnB,UAAA,aAAa,IAAI,CAAC;AAGxB,QAAI,eAAe;AAGnB,UAAM,OAAO,YAAY;AAErB,YAAM,SAAS;AAAA,QACX,MAAM;AAAA,QACN,MAAM,YAAY,QAAQ;AAAA,MAAA,CAC7B;AAEc,qBAAA;AAAA,IAAA;AAGb,UAAA,WAAW,OAAO,WAAmC;AACvD,gBAAU,QAAQ;AAEZ,YAAA,uBAAuB,SAAS,QAAQ,QAAQ,QAAQ,EAAE,KAAK,CAAC,aAAa;AACpE,mBAAA,QAAQ,SAAS,KAAK;AAEjC,4BAAoB,MAAM,KAAK,GAAG,SAAS,KAAK,KAAK;AAErD,qBAAa,QAAQ,YAAY,QAAQ,eAAe,WAAW;AAAA,MAAA,CACtE,EAAE,QAAQ,MAAM;AACb,kBAAU,QAAQ;AAAA,MAAA,CACrB;AAAA,IAAA;AAGL,UAAM,WAAW,MAAM;AACP,kBAAA;AACR,UAAA,gBAAgB,SAAS,eAAe,4CAA4C;AACxF,qBAAe,eAAe,EAAE,UAAU,UAAU,OAAO,UAAU;AAAA,IAAA;AAInE,UAAA,CAAC,WAAW,GAAG,MAAM;AAEvB,UAAI,cAAc;AACd;AAAA,MACJ;AAES,eAAA;AAAA,QACL,MAAM,gBAAgB,YAAY,QAAQ;AAAA,QAC1C,MAAM;AAAA,MAAA,CACT;AAAA,IAAA,CACJ;AAGD,cAAU,MAAM;AACP;IAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChEL,MAAM,MAAM,UAAUA,SAAe;AACrC,IAAI,MAAM,4BAA4B;"}