{"version":3,"file":"EmissionPlayerItem-DVNrASWD.mjs","names":[],"sources":["../src/components/display/emission/EmissionPlayerItem.vue","../src/components/display/emission/EmissionPlayerItem.vue"],"sourcesContent":["<template>\n  <div class=\"emission-player-container\">\n    <router-link\n      :to=\"{\n        name: 'emission',\n        params: { emissionId: emission.emissionId },\n      }\"\n      :title=\"t('Series name page', { name: emission.name })\"\n      class=\"d-flex flex-column text-dark\"\n    >\n      <div v-if=\"rubriqueName\" class=\"emission-player-item-info\">\n        {{ rubriqueName }}\n      </div>\n      <div class=\"img-box\">\n        <img\n          v-lazy=\"useProxyImageUrl(emission.imageUrl, '330')\"\n          width=\"330\"\n          height=\"330\"\n          aria-hidden=\"true\"\n          :title=\"t('Emission name image', { name: emission.name })\"\n          :alt=\"t('Emission name image', { name: emission.name })\"\n          class=\"img-box\"\n        >\n      </div>\n      <div class=\"fw-bold text-uppercase text-truncate p-2\">\n        {{ emission.name }}\n      </div>\n    </router-link>\n    <div\n      v-for=\"p in podcasts\"\n      :key=\"p.podcastId\"\n      class=\"border-top emission-item-border-color p-2 d-flex flex-column\"\n    >\n      <router-link\n        v-if=\"isProgressBar\"\n        :to=\"{\n          name: 'podcast',\n          params: { podcastId: p.podcastId },\n        }\"\n        :title=\"t('Episode name page', { name: p.title })\"\n        class=\"text-dark fw-bold basic-line-clamp\"\n      >\n        {{ p.title }}\n      </router-link>\n      <div class=\"d-flex justify-content-between flex-grow-1\">\n        <div class=\"d-flex flex-column\">\n          <router-link\n            v-if=\"!isProgressBar\"\n            :to=\"{\n              name: 'podcast',\n              params: { podcastId: p.podcastId },\n            }\"\n            :title=\"t('Episode name page', { name: p.title })\"\n            class=\"d-flex flex-grow-1 align-items-center define-width text-dark\"\n          >\n            <div class=\"fw-bold text-truncate\">\n              {{ p.title }}\n            </div>\n          </router-link>\n          <PodcastPlayBar\n            v-else\n            :display-buton-play=\"true\"\n            :podcast=\"p\"\n          />\n        </div>\n        <PodcastPlayBasicButton\n          v-if=\"!isProgressBar\"\n          :podcast=\"p\"\n        />\n      </div>\n    </div>\n    <div\n      v-if=\"buttonMore && podcasts.length === nbPodcasts\"\n      class=\"border-top emission-item-border-color p-2 octopus-bg d-flex justify-content-center\"\n    >\n      <router-link\n        :to=\"{\n          name: 'emission',\n          params: { emissionId: emission.emissionId },\n        }\"\n        class=\"btn\"\n      >\n        {{ t(\"More episodes\") }}\n      </router-link>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport { computed, defineAsyncComponent, onBeforeMount, Ref, ref } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nconst PodcastPlayBar = defineAsyncComponent(\n  () => import(\"../podcasts/PodcastPlayBar.vue\"),\n);\nconst PodcastPlayBasicButton = defineAsyncComponent(() => import(\"../podcasts/PodcastPlayBasicButton.vue\"));\n\n//Props \nconst props = defineProps({\n  emission: { default: () => ({}), type: Object as () => Emission },\n  /** Number of podcasts to display (default: 2); if set to 0, no podcasts will be displayed */\n  nbPodcasts: { default: undefined, type: Number },\n  rubriqueName: { default: undefined, type: String },\n})\n\n//Data \nconst activeEmission = ref(true);\nconst podcasts: Ref<Array<Podcast>> = ref([]);\n  \n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst isProgressBar = computed(() => state.emissionsPage.progressBar as boolean);\nconst buttonMore = computed(() => state.emissionsPage.buttonMore as boolean);\n\n\nonBeforeMount(()=>loadPodcasts())\n\n//Methods\nasync function loadPodcasts(): Promise<void> {\n  if (props.nbPodcasts === 0) {\n    return;\n  }\n\n  const nb = props.nbPodcasts ? props.nbPodcasts : 2;\n  const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n    api: 0,\n    path: \"podcast/search\",\n    parameters: {\n      emissionId: props.emission.emissionId,\n      size: nb,\n      includeStatus: [\"READY\", \"PROCESSING\"],\n    },\n    specialTreatement: true,\n  });\n  if (0 === data.count) {\n    activeEmission.value = false;\n  }\n  podcasts.value = data.result;\n}\n</script>\n\n<style lang=\"scss\">\n.emission-player-container {\n  list-style: none;\n  background: var(--octopus-background);\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  max-width: var(--octopus-image-size);\n  height: min-content;\n  border: 2px solid var(--octopus-border-default);\n  border-radius: var(--octopus-border-radius);\n  overflow: hidden;\n\n  .emission-item-border-color {\n    border-color: var(--octopus-secondary);\n  }\n\n  .define-width {\n    width: 9rem;\n  }\n\n  @media (width <= 960px) {\n    .d-flex:not(.flex-column) {\n      flex-wrap: nowrap;\n    }\n  }\n  \n  @media (width <= 450px) {\n    max-width: var(--octopus-image-size);\n  }\n}\n</style>\n","<template>\n  <div class=\"emission-player-container\">\n    <router-link\n      :to=\"{\n        name: 'emission',\n        params: { emissionId: emission.emissionId },\n      }\"\n      :title=\"t('Series name page', { name: emission.name })\"\n      class=\"d-flex flex-column text-dark\"\n    >\n      <div v-if=\"rubriqueName\" class=\"emission-player-item-info\">\n        {{ rubriqueName }}\n      </div>\n      <div class=\"img-box\">\n        <img\n          v-lazy=\"useProxyImageUrl(emission.imageUrl, '330')\"\n          width=\"330\"\n          height=\"330\"\n          aria-hidden=\"true\"\n          :title=\"t('Emission name image', { name: emission.name })\"\n          :alt=\"t('Emission name image', { name: emission.name })\"\n          class=\"img-box\"\n        >\n      </div>\n      <div class=\"fw-bold text-uppercase text-truncate p-2\">\n        {{ emission.name }}\n      </div>\n    </router-link>\n    <div\n      v-for=\"p in podcasts\"\n      :key=\"p.podcastId\"\n      class=\"border-top emission-item-border-color p-2 d-flex flex-column\"\n    >\n      <router-link\n        v-if=\"isProgressBar\"\n        :to=\"{\n          name: 'podcast',\n          params: { podcastId: p.podcastId },\n        }\"\n        :title=\"t('Episode name page', { name: p.title })\"\n        class=\"text-dark fw-bold basic-line-clamp\"\n      >\n        {{ p.title }}\n      </router-link>\n      <div class=\"d-flex justify-content-between flex-grow-1\">\n        <div class=\"d-flex flex-column\">\n          <router-link\n            v-if=\"!isProgressBar\"\n            :to=\"{\n              name: 'podcast',\n              params: { podcastId: p.podcastId },\n            }\"\n            :title=\"t('Episode name page', { name: p.title })\"\n            class=\"d-flex flex-grow-1 align-items-center define-width text-dark\"\n          >\n            <div class=\"fw-bold text-truncate\">\n              {{ p.title }}\n            </div>\n          </router-link>\n          <PodcastPlayBar\n            v-else\n            :display-buton-play=\"true\"\n            :podcast=\"p\"\n          />\n        </div>\n        <PodcastPlayBasicButton\n          v-if=\"!isProgressBar\"\n          :podcast=\"p\"\n        />\n      </div>\n    </div>\n    <div\n      v-if=\"buttonMore && podcasts.length === nbPodcasts\"\n      class=\"border-top emission-item-border-color p-2 octopus-bg d-flex justify-content-center\"\n    >\n      <router-link\n        :to=\"{\n          name: 'emission',\n          params: { emissionId: emission.emissionId },\n        }\"\n        class=\"btn\"\n      >\n        {{ t(\"More episodes\") }}\n      </router-link>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport { computed, defineAsyncComponent, onBeforeMount, Ref, ref } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nconst PodcastPlayBar = defineAsyncComponent(\n  () => import(\"../podcasts/PodcastPlayBar.vue\"),\n);\nconst PodcastPlayBasicButton = defineAsyncComponent(() => import(\"../podcasts/PodcastPlayBasicButton.vue\"));\n\n//Props \nconst props = defineProps({\n  emission: { default: () => ({}), type: Object as () => Emission },\n  /** Number of podcasts to display (default: 2); if set to 0, no podcasts will be displayed */\n  nbPodcasts: { default: undefined, type: Number },\n  rubriqueName: { default: undefined, type: String },\n})\n\n//Data \nconst activeEmission = ref(true);\nconst podcasts: Ref<Array<Podcast>> = ref([]);\n  \n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst isProgressBar = computed(() => state.emissionsPage.progressBar as boolean);\nconst buttonMore = computed(() => state.emissionsPage.buttonMore as boolean);\n\n\nonBeforeMount(()=>loadPodcasts())\n\n//Methods\nasync function loadPodcasts(): Promise<void> {\n  if (props.nbPodcasts === 0) {\n    return;\n  }\n\n  const nb = props.nbPodcasts ? props.nbPodcasts : 2;\n  const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n    api: 0,\n    path: \"podcast/search\",\n    parameters: {\n      emissionId: props.emission.emissionId,\n      size: nb,\n      includeStatus: [\"READY\", \"PROCESSING\"],\n    },\n    specialTreatement: true,\n  });\n  if (0 === data.count) {\n    activeEmission.value = false;\n  }\n  podcasts.value = data.result;\n}\n</script>\n\n<style lang=\"scss\">\n.emission-player-container {\n  list-style: none;\n  background: var(--octopus-background);\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  max-width: var(--octopus-image-size);\n  height: min-content;\n  border: 2px solid var(--octopus-border-default);\n  border-radius: var(--octopus-border-radius);\n  overflow: hidden;\n\n  .emission-item-border-color {\n    border-color: var(--octopus-secondary);\n  }\n\n  .define-width {\n    width: 9rem;\n  }\n\n  @media (width <= 960px) {\n    .d-flex:not(.flex-column) {\n      flex-wrap: nowrap;\n    }\n  }\n  \n  @media (width <= 450px) {\n    max-width: var(--octopus-image-size);\n  }\n}\n</style>\n"],"mappings":"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"}