{"version":3,"file":"SharePlayerRadio-CJDvch1F.mjs","names":[],"sources":["../src/components/display/sharing/SharePlayerRadio.vue","../src/components/display/sharing/SharePlayerRadio.vue"],"sourcesContent":["<template>\n  <section class=\"module-box overflow-visible\">\n    <h2 class=\"mb-3\">\n      {{ t(\"Embed\") }}\n    </h2>\n    <div class=\"d-flex\">\n      <iframe\n        id=\"miniplayerIframeRadio\"\n        title=\"Miniplayer\"\n        :src=\"iFrameSrc\"\n        frameborder=\"0\"\n        width=\"100%\"\n        height=\"140px\"\n        style=\"overflow: hidden\"\n        allow=\"clipboard-read; clipboard-write; autoplay\"\n        class=\"max-iframe mx-3 flex-grow-1\"\n      />\n      <div class=\"d-flex flex-column\">\n        <SharePlayerColors v-model:color=\"color\" v-model:theme=\"theme\" />\n        <div class=\"h4 mb-2 mt-3\">{{ t(\"player parameters\") }}</div>\n        <PlayerCommonParameters\n          v-if=\"displayInsertCode\"\n          v-model:insert-code=\"insertCode\"\n        />\n        <ShareModalPlayer\n          v-if=\"isShareModal\"\n          :embed-link=\"iFrame\"\n          :embedly-link=\"iFrameSrc\"\n          @close=\"isShareModal = false\"\n        />\n        <button\n          class=\"btn btn-primary w-fit-content mt-3\"\n          @click=\"isShareModal = true\"\n        >\n          {{ t(\"Share the player\") }}\n        </button>\n      </div>\n    </div>\n  </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport {  defineAsyncComponent, ref, Ref, computed, onBeforeMount } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useI18n } from \"vue-i18n\";\nconst ShareModalPlayer = defineAsyncComponent(\n  () => import(\"../../misc/modal/ShareModalPlayer.vue\"),\n);\nconst SharePlayerColors = defineAsyncComponent(\n  () => import(\"./SharePlayerColors.vue\"),\n);\nconst PlayerCommonParameters = defineAsyncComponent(\n  () => import(\"./PlayerCommonParameters.vue\"),\n);\n\n//Props \nconst props = defineProps({\n  canal: { default: undefined, type: Object as () => Canal },\n  organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst isShareModal = ref(false);\nconst color = ref(\"#40a372\");\nconst theme = ref(\"#000000\");\nconst insertCode = ref(false);\nconst orgaAttributes: Ref<{[key: string]: string | number | boolean | undefined }| undefined> = ref(undefined);\n  \n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayInsertCode = computed(() => props.canal?.organisationId === authStore.authOrgaId);\nconst iFrameSrc = computed(() => {\n  let url = `${apiStore.miniplayerUrl}miniplayer/radio/${\n    props.canal?.id\n  }?distributorId=${props.organisationId}&color=${color.value.substring(\n    1,\n  )}&theme=${theme.value.substring(1)}`;\n  if (insertCode.value) {\n    url += \"&insertCode=true\";\n  }\n  return url;\n});\nconst iFrame = computed(() => {\n  return `<iframe src=\"${iFrameSrc.value}\" width=\"100%\" height=\"140px\" frameborder=\"0\" scrolling=\"no\" allow=\"clipboard-read; clipboard-write; autoplay\"></iframe>`;\n});\n\n\nonBeforeMount(()=>initSharePlayer())\n\n//Methods\nasync function initSharePlayer() {\n  orgaAttributes.value = await saveFetchStore.getOrgaAttributes(authStore.authOrgaId ?? \"\");\n  initColor();\n}\nfunction initColor(): void {\n  if (!orgaAttributes.value) {\n    return;\n  }\n  color.value = Object.hasOwn(orgaAttributes.value, \"COLOR\")\n    ? (orgaAttributes.value.COLOR as string)\n    : \"#40a372\";\n  theme.value = Object.hasOwn(orgaAttributes.value, \"THEME\")\n    ? (orgaAttributes.value.THEME as string)\n    : \"#000000\";\n}\n</script>\n\n<style lang=\"scss\">\n@use \"../../../style/iframe\";\n</style>\n","<template>\n  <section class=\"module-box overflow-visible\">\n    <h2 class=\"mb-3\">\n      {{ t(\"Embed\") }}\n    </h2>\n    <div class=\"d-flex\">\n      <iframe\n        id=\"miniplayerIframeRadio\"\n        title=\"Miniplayer\"\n        :src=\"iFrameSrc\"\n        frameborder=\"0\"\n        width=\"100%\"\n        height=\"140px\"\n        style=\"overflow: hidden\"\n        allow=\"clipboard-read; clipboard-write; autoplay\"\n        class=\"max-iframe mx-3 flex-grow-1\"\n      />\n      <div class=\"d-flex flex-column\">\n        <SharePlayerColors v-model:color=\"color\" v-model:theme=\"theme\" />\n        <div class=\"h4 mb-2 mt-3\">{{ t(\"player parameters\") }}</div>\n        <PlayerCommonParameters\n          v-if=\"displayInsertCode\"\n          v-model:insert-code=\"insertCode\"\n        />\n        <ShareModalPlayer\n          v-if=\"isShareModal\"\n          :embed-link=\"iFrame\"\n          :embedly-link=\"iFrameSrc\"\n          @close=\"isShareModal = false\"\n        />\n        <button\n          class=\"btn btn-primary w-fit-content mt-3\"\n          @click=\"isShareModal = true\"\n        >\n          {{ t(\"Share the player\") }}\n        </button>\n      </div>\n    </div>\n  </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport {  defineAsyncComponent, ref, Ref, computed, onBeforeMount } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useI18n } from \"vue-i18n\";\nconst ShareModalPlayer = defineAsyncComponent(\n  () => import(\"../../misc/modal/ShareModalPlayer.vue\"),\n);\nconst SharePlayerColors = defineAsyncComponent(\n  () => import(\"./SharePlayerColors.vue\"),\n);\nconst PlayerCommonParameters = defineAsyncComponent(\n  () => import(\"./PlayerCommonParameters.vue\"),\n);\n\n//Props \nconst props = defineProps({\n  canal: { default: undefined, type: Object as () => Canal },\n  organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst isShareModal = ref(false);\nconst color = ref(\"#40a372\");\nconst theme = ref(\"#000000\");\nconst insertCode = ref(false);\nconst orgaAttributes: Ref<{[key: string]: string | number | boolean | undefined }| undefined> = ref(undefined);\n  \n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayInsertCode = computed(() => props.canal?.organisationId === authStore.authOrgaId);\nconst iFrameSrc = computed(() => {\n  let url = `${apiStore.miniplayerUrl}miniplayer/radio/${\n    props.canal?.id\n  }?distributorId=${props.organisationId}&color=${color.value.substring(\n    1,\n  )}&theme=${theme.value.substring(1)}`;\n  if (insertCode.value) {\n    url += \"&insertCode=true\";\n  }\n  return url;\n});\nconst iFrame = computed(() => {\n  return `<iframe src=\"${iFrameSrc.value}\" width=\"100%\" height=\"140px\" frameborder=\"0\" scrolling=\"no\" allow=\"clipboard-read; clipboard-write; autoplay\"></iframe>`;\n});\n\n\nonBeforeMount(()=>initSharePlayer())\n\n//Methods\nasync function initSharePlayer() {\n  orgaAttributes.value = await saveFetchStore.getOrgaAttributes(authStore.authOrgaId ?? \"\");\n  initColor();\n}\nfunction initColor(): void {\n  if (!orgaAttributes.value) {\n    return;\n  }\n  color.value = Object.hasOwn(orgaAttributes.value, \"COLOR\")\n    ? (orgaAttributes.value.COLOR as string)\n    : \"#40a372\";\n  theme.value = Object.hasOwn(orgaAttributes.value, \"THEME\")\n    ? (orgaAttributes.value.THEME as string)\n    : \"#000000\";\n}\n</script>\n\n<style lang=\"scss\">\n@use \"../../../style/iframe\";\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAgDA,MAAM,mBAAmB,2BACjB,OAAO,kCACf;EACA,MAAM,oBAAoB,2BAClB,OAAO,mCACf;EACA,MAAM,yBAAyB,2BACvB,OAAO,wCACf;EAGA,MAAM,QAAQ;EAMd,MAAM,eAAe,IAAI,KAAK;EAC9B,MAAM,QAAQ,IAAI,SAAS;EAC3B,MAAM,QAAQ,IAAI,SAAS;EAC3B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,iBAA0F,IAAI,KAAA,CAAS;EAI7G,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,YAAY,aAAa;EAC/B,MAAM,WAAW,YAAY;EAC7B,MAAM,iBAAiB,kBAAkB;EAIzC,MAAM,oBAAoB,eAAe,MAAM,OAAO,mBAAmB,UAAU,UAAU;EAC7F,MAAM,YAAY,eAAe;GAC/B,IAAI,MAAM,GAAG,SAAS,cAAc,mBAClC,MAAM,OAAO,GACd,iBAAiB,MAAM,eAAe,SAAS,MAAM,MAAM,UAC1D,CACF,EAAE,SAAS,MAAM,MAAM,UAAU,CAAC;GAClC,IAAI,WAAW,OACb,OAAO;GAET,OAAO;EACT,CAAC;EACD,MAAM,SAAS,eAAe;GAC5B,OAAO,gBAAgB,UAAU,MAAM;EACzC,CAAC;EAGD,oBAAkB,gBAAgB,CAAC;EAGnC,eAAe,kBAAkB;GAC/B,eAAe,QAAQ,MAAM,eAAe,kBAAkB,UAAU,cAAc,EAAE;GACxF,UAAU;EACZ;EACA,SAAS,YAAkB;GACzB,IAAI,CAAC,eAAe,OAClB;GAEF,MAAM,QAAQ,OAAO,OAAO,eAAe,OAAO,OAAO,IACpD,eAAe,MAAM,QACtB;GACJ,MAAM,QAAQ,OAAO,OAAO,eAAe,OAAO,OAAO,IACpD,eAAe,MAAM,QACtB;EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBCjHW,OAAM,8BAA6B;mBACtC,OAAM,OAAM;mBAGX,OAAM,SAAQ;;mBAYZ,OAAM,qBAAoB;mBAExB,OAAM,eAAc;;qBAlB/B,mBAqCU,WArCV,YAqCU,CApCR,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,OAAA,CAAA,GAAA,CAAA,GAEN,mBAgCM,OAhCN,YAgCM,CA/BJ,mBAUE,UAAA;EATA,IAAG;EACH,OAAM;EACL,KAAK,OAAA;EACN,aAAY;EACZ,OAAM;EACN,QAAO;EACP,OAAA,EAAA,YAAA,SAAA;EACA,OAAM;EACN,OAAM;0BAER,mBAmBM,OAnBN,YAmBM;EAlBJ,YAAiE,OAAA,sBAAA;GAAtC,OAAO,OAAA;2DAAA,OAAA,QAAK;GAAU,OAAO,OAAA;2DAAA,OAAA,QAAK;;EAC7D,mBAA4D,OAA5D,YAA4D,gBAA/B,OAAA,EAAC,mBAAA,CAAA,GAAA,CAAA;EAEtB,OAAA,qBAAA,UAAA,GADR,YAGE,OAAA,2BAAA;;GADQ,eAAa,OAAA;gEAAA,OAAA,aAAU;;EAGzB,OAAA,gBAAA,UAAA,GADR,YAKE,OAAA,qBAAA;;GAHC,cAAY,OAAA;GACZ,gBAAc,OAAA;GACd,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,eAAY;;EAEtB,mBAKS,UAAA;GAJP,OAAM;GACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,eAAY;qBAEjB,OAAA,EAAC,kBAAA,CAAA,GAAA,CAAA"}