{"version":3,"file":"RadioImage-DECKDwdJ.mjs","names":[],"sources":["../src/components/display/live/RadioImage.vue","../src/components/display/live/RadioImage.vue"],"sourcesContent":["<template>\n  <div\n    class=\"img-box img-box-podcast position-relative flex-shrink-0 mb-3 me-3 float-start\"\n  >\n    <img\n      v-lazy=\"\n        radio.imageUrl\n          ? useProxyImageUrl(radio.imageUrl, '270')\n          : '/img/emptyradio.webp'\n      \"\n      width=\"270\"\n      height=\"270\"\n      aria-hidden=\"true\"\n        alt=\"\"\n      \n      class=\"img-box img-box-podcast\"\n      :title=\"t('Canal name image', { name: radio.name })\"\n    />\n    <button class=\"radio-play-button\" @click=\"playRadio\">\n      <PlayIcon v-if=\"!playingRadio\" :title=\"t('Play')\" :size=\"40\" />\n      <PodcastIsPlaying v-else />\n      <div class=\"mx-2\">\n        {{ playText }}\n      </div>\n    </button>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useI18n } from \"vue-i18n\";\nconst PodcastIsPlaying = defineAsyncComponent(() => import(\"../podcasts/PodcastIsPlaying.vue\"));\n\n//Props \nconst props = defineProps({\n  radio: { default: undefined, type: Object as () => Canal },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst authStore = useAuthStore();\nconst playerStore = usePlayerStore();\n\n//Computed\nconst playingRadio = computed(() => playerStore.playerRadio && playerStore.playerRadio.canalId === props.radio?.id);\nconst playText = computed(() => {\n  return playingRadio.value && \"PLAYING\" === playerStore.playerStatus? t(\"Pause\") : t(\"Play\");\n});\n\n\n//Methods\nfunction playRadio(): void {\n  if (!props.radio) {\n    return;\n  }\n  if (playingRadio.value) {\n    playerStore.playerChangeStatus(\"PLAYING\" === playerStore.playerStatus);\n  } else {\n    playerStore.playerPlay({\n      canalId: props.radio.id,\n      url: \"https://\" + props.radio.url + \"/live.m3u8\",\n      metadata: \"\",\n      secured: props.radio.organisationId === authStore.authOrganisation?.id && \"SECURED\"===authStore.authOrganisation?.privacy\n    });\n  }\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .radio-play-button{\n  display: flex;\n  align-items: center;\n  position: absolute;\n  bottom: 0;\n  font-size: 1rem;\n  color: var(--octopus-color-on-primary);\n  background-color: var(--octopus-primary-less-transparent);\n  border-radius: var(--octopus-border-radius);\n  padding:  0.2rem;\n  border: 0;\n}\n</style>\n","<template>\n  <div\n    class=\"img-box img-box-podcast position-relative flex-shrink-0 mb-3 me-3 float-start\"\n  >\n    <img\n      v-lazy=\"\n        radio.imageUrl\n          ? useProxyImageUrl(radio.imageUrl, '270')\n          : '/img/emptyradio.webp'\n      \"\n      width=\"270\"\n      height=\"270\"\n      aria-hidden=\"true\"\n        alt=\"\"\n      \n      class=\"img-box img-box-podcast\"\n      :title=\"t('Canal name image', { name: radio.name })\"\n    />\n    <button class=\"radio-play-button\" @click=\"playRadio\">\n      <PlayIcon v-if=\"!playingRadio\" :title=\"t('Play')\" :size=\"40\" />\n      <PodcastIsPlaying v-else />\n      <div class=\"mx-2\">\n        {{ playText }}\n      </div>\n    </button>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useI18n } from \"vue-i18n\";\nconst PodcastIsPlaying = defineAsyncComponent(() => import(\"../podcasts/PodcastIsPlaying.vue\"));\n\n//Props \nconst props = defineProps({\n  radio: { default: undefined, type: Object as () => Canal },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst authStore = useAuthStore();\nconst playerStore = usePlayerStore();\n\n//Computed\nconst playingRadio = computed(() => playerStore.playerRadio && playerStore.playerRadio.canalId === props.radio?.id);\nconst playText = computed(() => {\n  return playingRadio.value && \"PLAYING\" === playerStore.playerStatus? t(\"Pause\") : t(\"Play\");\n});\n\n\n//Methods\nfunction playRadio(): void {\n  if (!props.radio) {\n    return;\n  }\n  if (playingRadio.value) {\n    playerStore.playerChangeStatus(\"PLAYING\" === playerStore.playerStatus);\n  } else {\n    playerStore.playerPlay({\n      canalId: props.radio.id,\n      url: \"https://\" + props.radio.url + \"/live.m3u8\",\n      metadata: \"\",\n      secured: props.radio.organisationId === authStore.authOrganisation?.id && \"SECURED\"===authStore.authOrganisation?.privacy\n    });\n  }\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .radio-play-button{\n  display: flex;\n  align-items: center;\n  position: absolute;\n  bottom: 0;\n  font-size: 1rem;\n  color: var(--octopus-color-on-primary);\n  background-color: var(--octopus-primary-less-transparent);\n  border-radius: var(--octopus-border-radius);\n  padding:  0.2rem;\n  border: 0;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;EAoCA,MAAM,mBAAmB,2BAA2B,OAAO,kCAAmC;EAG9F,MAAM,QAAQ;EAKd,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,EAAE,qBAAqB,cAAc;EAC3C,MAAM,YAAY,aAAa;EAC/B,MAAM,cAAc,eAAe;EAGnC,MAAM,eAAe,eAAe,YAAY,eAAe,YAAY,YAAY,YAAY,MAAM,OAAO,EAAE;EAClH,MAAM,WAAW,eAAe;GAC9B,OAAO,aAAa,SAAS,cAAc,YAAY,eAAc,EAAE,OAAO,IAAI,EAAE,MAAM;EAC5F,CAAC;EAID,SAAS,YAAkB;GACzB,IAAI,CAAC,MAAM,OACT;GAEF,IAAI,aAAa,OACf,YAAY,mBAAmB,cAAc,YAAY,YAAY;QAErE,YAAY,WAAW;IACrB,SAAS,MAAM,MAAM;IACrB,KAAK,aAAa,MAAM,MAAM,MAAM;IACpC,UAAU;IACV,SAAS,MAAM,MAAM,mBAAmB,UAAU,kBAAkB,MAAM,cAAY,UAAU,kBAAkB;GACpH,CAAC;EAEL;;;;;;;;;;;;;;;;;;;;;;;mBCrEI,OAAM,gFAA+E;;mBAmB9E,OAAM,OAAM;;;qBApBrB,mBAwBM,OAxBN,YAwBM,CAAA,eArBJ,mBAaE,OAAA;EAPA,OAAM;EACN,QAAO;EACP,eAAY;EACV,KAAI;EAEN,OAAM;EACL,OAAO,OAAA,EAAC,oBAAA,EAAA,MAA6B,OAAA,MAAM,KAAI,CAAA;6CAX/B,OAAA,MAAM,WAAqB,OAAA,iBAAiB,OAAA,MAAM,UAAQ,KAAA,IAAA,sBAAA,CAAA,CAAA,GAa7E,mBAMS,UAAA;EAND,OAAM;EAAqB,SAAO,OAAA;MACvB,OAAA,gBAAA,UAAA,GAAjB,YAA+D,OAAA,aAAA;;EAA/B,OAAO,OAAA,EAAC,MAAA;EAAW,MAAM;yCACzD,YAA2B,OAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,IAC3B,mBAEM,OAFN,YAEM,gBADD,OAAA,QAAQ,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}