{"version":3,"file":"useSeasonsManagement-D-ngDipg.mjs","names":[],"sources":["../src/components/composable/useSeasonsManagement.ts"],"sourcesContent":["import { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission, SeasonMode } from \"../../stores/class/general/emission\";\n\n/**\n * Composable to facilitate seasons operations\n */\nexport const useSeasonsManagement = () => {\n    /**\n     * Indicates that seasons are enabled on the given emission\n     * @param emission The emission to check for seasons\n     * @returns True if seasons are enabled, false otherwise\n     */\n    function areSeasonsEnabled(emission: Emission): boolean {\n        return [\n            SeasonMode.SEASON_WITHOUT_PODCAST_NUMBERING,\n            SeasonMode.SEASON_WITH_PODCAST_NUMBERING\n        ].includes(emission.seasonMode);\n    }\n\n    /**\n     * Simple formatter to display season/episode of the given podcast\n     * @param podcast The podcast to check\n     * @returns A string describing the season/episode of the podcast or null\n     *          if no seasons are defined\n     */\n    function formatSeason(podcast: Podcast): string|null {\n        switch (podcast.emission.seasonMode) {\n            case SeasonMode.NO_SEASON:\n                return null;\n\n            case SeasonMode.SEASON_WITHOUT_PODCAST_NUMBERING:\n                return `S${podcast.seasonNumber}`;\n\n            case SeasonMode.SEASON_WITH_PODCAST_NUMBERING:\n                return `S${podcast.seasonNumber}·E${podcast.seasonEpisodeNumber}`;\n        }\n    }\n\n    /**\n     * Returns the highest season number for the given emission, or -Infinity if none\n     * @param emission The emission to check\n     */\n    function getMaxSeason(emission: Emission | undefined): number {\n        return Math.max(...(emission?.seasons ?? []));\n    }\n\n    return {\n        areSeasonsEnabled,\n        formatSeason,\n        getMaxSeason,\n    }\n}\n"],"mappings":";;;;;AAMA,IAAa,6BAA6B;;;;;;CAMtC,SAAS,kBAAkB,UAA6B;EACpD,OAAO,CACH,WAAW,kCACX,WAAW,6BACf,EAAE,SAAS,SAAS,UAAU;CAClC;;;;;;;CAQA,SAAS,aAAa,SAA+B;EACjD,QAAQ,QAAQ,SAAS,YAAzB;GACI,KAAK,WAAW,WACZ,OAAO;GAEX,KAAK,WAAW,kCACZ,OAAO,IAAI,QAAQ;GAEvB,KAAK,WAAW,+BACZ,OAAO,IAAI,QAAQ,aAAa,IAAI,QAAQ;EACpD;CACJ;;;;;CAMA,SAAS,aAAa,UAAwC;EAC1D,OAAO,KAAK,IAAI,GAAI,UAAU,WAAW,CAAC,CAAE;CAChD;CAEA,OAAO;EACH;EACA;EACA;CACJ;AACJ"}