{"version":3,"file":"AdvancedSearch-Bb3o_t3b.mjs","names":[],"sources":["../src/components/display/filter/AdvancedSearch.vue","../src/components/display/filter/AdvancedSearch.vue"],"sourcesContent":["<template>\n    <div id=\"advanced-search\" class=\"d-flex flex-column justify-content-center align-items-center\">\n        <!-- Button to open the advanced filters -->\n        <button\n            class=\"d-flex justify-content-center align-items-center mb-3 text-secondary btn-transparent\"\n            @click=\"clickShowFilters\"\n        >\n            <div>{{ t(\"Advanced filters\") }}</div>\n            <ChevronDownIcon :class=\"{ 'arrow-transform': showFilters }\" />\n        </button>\n\n        <!-- Filters -->\n        <Transition name=\"advanced-search\">\n            <div\n                v-if=\"firstLoaded\"\n                v-show=\"showFilters\"\n                class=\"advanced-search-container\"\n            >\n                <fieldset class=\"d-flex flex-column flex-grow-3\">\n                    <legend class=\"text-primary mb-2\">\n                        {{ t(\"Filter\") }}\n                    </legend>\n                    <MonetizableFilter\n                        v-if=\"!isPodcastmaker && !generalStore.platformEducation\"\n                        :is-emission=\"isEmission\"\n                        :monetisable=\"monetisable\"\n                        @update:monetisable=\"updateMonetisable\"\n                    />\n                    <CategorySearchFilter :iab-id=\"iabId\" @update:iab-id=\"updateIab\" />\n                    <RubriqueFilter\n                        :rubrique-filter=\"rubriqueFilter\"\n                        @update:rubrique-filter=\"updateRubriquageFilter\"\n                    />\n\n                    <!-- Group filters -->\n                    <div v-if=\"showEmissionGroups\" class=\"mt-3 d-flex\">\n                        <ClassicCheckbox\n                            v-model:text-init=\"emissionGroupCheckbox\"\n                            class=\"flex-shrink-0\"\n                            id-checkbox=\"search-emission-groups-checkbox\"\n                            :label=\"t('Filters - Emission groups')\"\n                        />\n\n                        <EmissionGroupChooser\n                            v-if=\"emissionGroupCheckbox\"\n                            class=\"ms-4 flex-grow-1\"\n                            :organisation-id=\"organisationId\"\n                            :groups=\"emissionGroups\"\n                            @update:groups=\"updateEmissionGroupFilter\"\n                        />\n                    </div>\n\n                    <!-- Date -->\n                    <DateFilter\n                        :is-emission=\"isEmission\"\n                        :from-date=\"fromDate\"\n                        :to-date=\"toDate\"\n                        @update-dates=\"updateDates($event)\"\n                    />\n\n                    <!-- Rights holders/beneficiaries -->\n                    <div v-if=\"beneficiariesEnabled\" class=\"mt-3 d-flex\">\n                        <ClassicCheckbox\n                            :text-init=\"beneficiaries !== null && beneficiaries !== undefined\"\n                            class=\"flex-shrink-0\"\n                            id-checkbox=\"search-beneficiaries-checkbox\"\n                            :label=\"t('Filters - Beneficiaries')\"\n                            @update:text-init=\"updateBeneficiariesCheckbox\"\n                        />\n\n                        <ClassicTagInput\n                            v-if=\"beneficiaries !== null && beneficiaries !== undefined\"\n                            class=\"ms-4 flex-grow-1\"\n                            :tags=\"beneficiaries\"\n                            @update:tags=\"updateBeneficiaries\"\n                        />\n                    </div>\n\n                    <div\n                        v-if=\"organisation && organisationRight && !isPodcastmaker\"\n                        class=\"d-flex flex-column mt-3\"\n                    >\n                        <ClassicCheckbox\n                            :text-init=\"includeHidden\"\n                            class=\"flex-shrink-0\"\n                            id-checkbox=\"search-future-checkbox\"\n                            :label=\"textNotVisible\"\n                            :is-disabled=\"isSelectValidity && 'true'!==validity\"\n                            @update:text-init=\"updateIncludeHidden\"\n                        />\n                    </div>\n\n                    <ClassicSelect\n                        v-if=\"isSelectValidity\"\n                        :text-init=\"validity\"\n                        id-select=\"valid-episodes-select\"\n                        :label=\"t('Episodes to validate')+' :'\"\n                        :display-label=\"true\"\n                        class-label=\"flex-shrink-0 me-1\"\n                        class=\"d-flex align-items-center mt-3 mb-0\"\n                        :options=\"[\n                            { title: t('Display only episodes to validate'), value: 'false' },\n                            { title: t('Display episodes to validate'), value: '' },\n                            { title: t('Do not display episodes to validate'), value: 'true' },\n                        ]\"\n                        @update:text-init=\"updateValidity\"\n                    />\n\n                    <!-- Only with video -->\n                    <ClassicCheckbox\n                        v-if=\"!isEmission\"\n                        :text-init=\"onlyVideo\"\n                        class=\"flex-shrink-0 mt-3\"\n                        id-checkbox=\"only-video-checkbox\"\n                        :label=\"t('Show only episodes with video')\"\n                        @update:text-init=\"updateOnlyVideo\"\n                    />\n                </fieldset>\n\n                <!-- Sort -->\n                <SearchOrder\n                    :is-emission=\"isEmission\"\n                    :sort=\"sort\"\n                    @update:sort=\"updateSort\"\n                />\n            </div>\n        </Transition>\n    </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { useRubriquesFilterParam } from \"../../composable/route/useRubriquesFilterParam\";\nimport { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { defineAsyncComponent, ref, computed, watch, onMounted } from \"vue\";\nimport { useGeneralStore } from \"../../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nconst MonetizableFilter = defineAsyncComponent(\n    () => import(\"./MonetizableFilter.vue\"),\n);\nconst CategorySearchFilter = defineAsyncComponent(\n    () => import(\"./CategorySearchFilter.vue\"),\n);\nconst RubriqueFilter = defineAsyncComponent(\n    () => import(\"./RubriqueFilter.vue\"),\n);\nconst ClassicSelect = defineAsyncComponent(\n    () => import(\"../../form/ClassicSelect.vue\"),\n);\nconst ClassicTagInput = defineAsyncComponent(\n    () => import(\"../../form/ClassicTagInput.vue\"),\n);\nconst ClassicCheckbox = defineAsyncComponent(\n    () => import(\"../../form/ClassicCheckbox.vue\"),\n);\nconst DateFilter = defineAsyncComponent(() => import(\"./DateFilter.vue\"));\nconst SearchOrder = defineAsyncComponent(() => import(\"./SearchOrder.vue\"));\nimport { ROUTE_PARAMS } from '../../composable/route/types';\nimport { EmissionGroup, groupsApi } from \"../../../api/groupsApi\";\nimport EmissionGroupChooser from \"../emission/EmissionGroupChooser.vue\";\n\n//Props \nconst props = withDefaults(defineProps<{\n    organisationId?: string;\n    /** Indicates that the filters apply to emissions */\n    isEmission?: boolean;\n    includeHidden?: boolean;\n    sort?: string;\n    onlyVideo?: boolean;\n    monetisable?: string;\n    iabId?: number;\n    searchPattern?: string;\n    fromDate?: string;\n    toDate?: string;\n    validity?: string;\n    /** The filter on beneficiaries */\n    beneficiaries?: Array<string>;\n    rubriqueFilter?: Array<RubriquageFilter>;\n    /** The filter on groups */\n    emissionGroups?: Array<EmissionGroup>;\n    /** Force hide the emission group filter */\n    hideEmissionGroups?: boolean;\n}>(), {\n    sort: \"DATE\",\n    monetisable: \"UNDEFINED\",\n    searchPattern: \"\",\n    validity: \"\"\n});\n\n//Emits\nconst emit = defineEmits([\n    \"update:toDate\",\n    \"update:fromDate\",\n    \"update:monetisable\",\n    \"update:iabId\",\n    \"update:sort\",\n    \"update:includeHidden\",\n    \"update:validity\",\n    \"update:rubriqueFilter\",\n    \"update:onlyVideo\",\n    \"update:beneficiaries\",\n    \"update:emission-groups\"\n]);\n\n//Data \nconst showFilters = ref(false);\nconst firstLoaded = ref(false);\nconst showEmissionGroups = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst { stringifyRubriquesFilter,updateRouteParamAdvanced } = useRubriquesFilterParam();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst authStore = useAuthStore();\n\nonMounted(async() => {\n    if (props.hideEmissionGroups) {\n        showEmissionGroups.value = false;\n        return;\n    }\n    // Only show emission groups if there are some\n    const nbGroups = await groupsApi.count({\n        organisationIds: [props.organisationId]\n    });\n    showEmissionGroups.value = nbGroups > 0;\n});\n\n//Computed\nconst organisationRight = computed(() => isEditRights(props.organisationId));\nconst organisation = computed(() => props.organisationId ?? filterStore.filterOrgaId);\nconst textNotVisible = computed(() => props.isEmission ? t(\"Consider podcasts no visible\"): t(\"See podcasts no visible\"));\nconst isSelectValidity = computed(() => {\n    return (\n        undefined !== organisation.value &&\n        organisationRight.value &&\n        (authStore.isRoleContribution || authStore.isRolePublication) &&\n        !isPodcastmaker.value &&\n        !props.isEmission &&\n        props.includeHidden\n    );\n});\n\n/** The beneficiaries filter is only displayed if beneficiaries are enabled */\nconst beneficiariesEnabled = computed(() => {\n    return authStore.authOrganisation.attributes['beneficiaries.enabled'] === 'true';\n});\n\n//Watch\nwatch(organisation, async () => {\n    const hidden = undefined !== organisation.value && organisationRight.value && !props.isEmission;\n    if (hidden !== props.includeHidden) {\n        updateIncludeHidden(hidden);\n    }\n});\n\nwatch(()=>props.searchPattern, (value: string) => {\n    const search = value.trim();\n    let valSort = \"SCORE\"\n    if(search.length <= 3){\n        valSort = props.isEmission? \"LAST_PODCAST_DESC\" : \"DATE\";\n    }\n    updateRouteParamAdvanced({\n        q: search.length ? search : undefined,\n        s: valSort,\n    });\n});\n\n//Methods\nfunction updateMonetisable(value: string): void {\n    emit(\"update:monetisable\", value);\n    updateRouteParamAdvanced({ m: \"UNDEFINED\" !== value ? value : undefined });\n}\n\nfunction updateIab(value: number | undefined) {\n    emit(\"update:iabId\", 0 !== value ? value : undefined);\n    let filterIab = {};\n    if (filterStore.filterIab && filterStore.filterIab.id !== value) {\n        filterIab = { iabId: undefined };\n    }\n    updateRouteParamAdvanced({\n        ...{ i: value ? value.toString() : undefined },\n        ...filterIab,\n    });\n}\n\nfunction updateSort(value: string) {\n    emit(\"update:sort\", value);\n    updateRouteParamAdvanced({ s: value });\n}\n\nfunction updateIncludeHidden(value: boolean) {\n    emit(\"update:includeHidden\", value);\n    updateRouteParamAdvanced({ h: value.toString() });\n}\n\nfunction updateValidity(value: boolean) {\n    emit(\"update:validity\", value);\n    updateRouteParamAdvanced({ vl: value.toString() });\n}\n\nfunction updateOnlyVideo(value: boolean) {\n    emit(\"update:onlyVideo\", value);\n    updateRouteParamAdvanced({ v: value ? \"true\" : undefined });\n}\n\nfunction updateDates(value: {\n    from: string | undefined;\n    to: string | undefined;\n}): void {\n    emit(\"update:fromDate\", value.from);\n    emit(\"update:toDate\", value.to);\n    updateRouteParamAdvanced({ from: value.from, to: value.to });\n}\n\nfunction updateRubriquageFilter(value: Array<RubriquageFilter>) {\n    emit(\"update:rubriqueFilter\", value);\n    let filterRubriques = {};\n    const valueString = stringifyRubriquesFilter(value);\n    if (\n        filterStore.filterRubrique.length &&\n        stringifyRubriquesFilter(filterStore.filterRubrique) !== valueString\n    ) {\n        filterRubriques = { rubriquesId: undefined };\n    }\n    updateRouteParamAdvanced({\n         r: valueString.length ? valueString : undefined,\n        ...filterRubriques,\n    });\n}\n\n/** Manage the checkbox enabling filtering on groups */\nconst emissionGroupCheckbox = computed({\n    get(): boolean {\n        return props.emissionGroups !== undefined && props.emissionGroups !== null;\n    },\n    set(value: boolean): void {\n        if (value) {\n            updateEmissionGroupFilter([]);\n        } else {\n            updateEmissionGroupFilter(undefined);\n        }\n    }\n});\n\n/** Update selected groups */\nfunction updateEmissionGroupFilter(groups: Array<EmissionGroup>|undefined): void {\n    if (groups !== undefined && groups.length === 0) {\n        emit('update:emission-groups', []);\n    } else {\n        updateRouteParamAdvanced({\n            [ROUTE_PARAMS.EmissionGroups]: groups?.map(g => g.groupId)\n        });\n        emit('update:emission-groups', groups);\n    }\n}\n\n/** Update the beneficiaries filter */\nfunction updateBeneficiaries(value: string[]|undefined): void {\n    emit('update:beneficiaries', value);\n    if (value === undefined) {\n        updateRouteParamAdvanced({ [ROUTE_PARAMS.Beneficiaries]: undefined });\n    } else {\n        updateRouteParamAdvanced({ [ROUTE_PARAMS.Beneficiaries]: value });\n    }\n}\n\n/** Update the value of the beneficiaries checkbox */\nfunction updateBeneficiariesCheckbox(value: boolean): void {\n    if (value === true) {\n        emit('update:beneficiaries', []);\n    } else {\n        updateBeneficiaries(undefined);\n    }\n}\n\nfunction clickShowFilters(): void {\n    if (!firstLoaded.value) {\n        firstLoaded.value = true;\n    }\n    showFilters.value = !showFilters.value;\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app {\n  .advanced-search-container {\n    background: var(--octopus-background);\n    display: flex;\n    width: 100%;\n    padding-bottom: 1rem;\n    justify-content: space-around;\n\n    @media (width <= 720px) {\n      flex-wrap: wrap;\n    }\n  }\n\n  .advanced-search-enter-active,\n  .advanced-search-leave-active {\n    transition: 0.3s all;\n    opacity: 1;\n    max-height: 900px;\n    height: auto;\n    overflow: hidden;\n  }\n\n  .advanced-search-enter-from,\n  .advanced-search-leave-to {\n      opacity: 0;\n      max-height: 0;\n      overflow: hidden;\n  }\n}\n</style>\n","<template>\n    <div id=\"advanced-search\" class=\"d-flex flex-column justify-content-center align-items-center\">\n        <!-- Button to open the advanced filters -->\n        <button\n            class=\"d-flex justify-content-center align-items-center mb-3 text-secondary btn-transparent\"\n            @click=\"clickShowFilters\"\n        >\n            <div>{{ t(\"Advanced filters\") }}</div>\n            <ChevronDownIcon :class=\"{ 'arrow-transform': showFilters }\" />\n        </button>\n\n        <!-- Filters -->\n        <Transition name=\"advanced-search\">\n            <div\n                v-if=\"firstLoaded\"\n                v-show=\"showFilters\"\n                class=\"advanced-search-container\"\n            >\n                <fieldset class=\"d-flex flex-column flex-grow-3\">\n                    <legend class=\"text-primary mb-2\">\n                        {{ t(\"Filter\") }}\n                    </legend>\n                    <MonetizableFilter\n                        v-if=\"!isPodcastmaker && !generalStore.platformEducation\"\n                        :is-emission=\"isEmission\"\n                        :monetisable=\"monetisable\"\n                        @update:monetisable=\"updateMonetisable\"\n                    />\n                    <CategorySearchFilter :iab-id=\"iabId\" @update:iab-id=\"updateIab\" />\n                    <RubriqueFilter\n                        :rubrique-filter=\"rubriqueFilter\"\n                        @update:rubrique-filter=\"updateRubriquageFilter\"\n                    />\n\n                    <!-- Group filters -->\n                    <div v-if=\"showEmissionGroups\" class=\"mt-3 d-flex\">\n                        <ClassicCheckbox\n                            v-model:text-init=\"emissionGroupCheckbox\"\n                            class=\"flex-shrink-0\"\n                            id-checkbox=\"search-emission-groups-checkbox\"\n                            :label=\"t('Filters - Emission groups')\"\n                        />\n\n                        <EmissionGroupChooser\n                            v-if=\"emissionGroupCheckbox\"\n                            class=\"ms-4 flex-grow-1\"\n                            :organisation-id=\"organisationId\"\n                            :groups=\"emissionGroups\"\n                            @update:groups=\"updateEmissionGroupFilter\"\n                        />\n                    </div>\n\n                    <!-- Date -->\n                    <DateFilter\n                        :is-emission=\"isEmission\"\n                        :from-date=\"fromDate\"\n                        :to-date=\"toDate\"\n                        @update-dates=\"updateDates($event)\"\n                    />\n\n                    <!-- Rights holders/beneficiaries -->\n                    <div v-if=\"beneficiariesEnabled\" class=\"mt-3 d-flex\">\n                        <ClassicCheckbox\n                            :text-init=\"beneficiaries !== null && beneficiaries !== undefined\"\n                            class=\"flex-shrink-0\"\n                            id-checkbox=\"search-beneficiaries-checkbox\"\n                            :label=\"t('Filters - Beneficiaries')\"\n                            @update:text-init=\"updateBeneficiariesCheckbox\"\n                        />\n\n                        <ClassicTagInput\n                            v-if=\"beneficiaries !== null && beneficiaries !== undefined\"\n                            class=\"ms-4 flex-grow-1\"\n                            :tags=\"beneficiaries\"\n                            @update:tags=\"updateBeneficiaries\"\n                        />\n                    </div>\n\n                    <div\n                        v-if=\"organisation && organisationRight && !isPodcastmaker\"\n                        class=\"d-flex flex-column mt-3\"\n                    >\n                        <ClassicCheckbox\n                            :text-init=\"includeHidden\"\n                            class=\"flex-shrink-0\"\n                            id-checkbox=\"search-future-checkbox\"\n                            :label=\"textNotVisible\"\n                            :is-disabled=\"isSelectValidity && 'true'!==validity\"\n                            @update:text-init=\"updateIncludeHidden\"\n                        />\n                    </div>\n\n                    <ClassicSelect\n                        v-if=\"isSelectValidity\"\n                        :text-init=\"validity\"\n                        id-select=\"valid-episodes-select\"\n                        :label=\"t('Episodes to validate')+' :'\"\n                        :display-label=\"true\"\n                        class-label=\"flex-shrink-0 me-1\"\n                        class=\"d-flex align-items-center mt-3 mb-0\"\n                        :options=\"[\n                            { title: t('Display only episodes to validate'), value: 'false' },\n                            { title: t('Display episodes to validate'), value: '' },\n                            { title: t('Do not display episodes to validate'), value: 'true' },\n                        ]\"\n                        @update:text-init=\"updateValidity\"\n                    />\n\n                    <!-- Only with video -->\n                    <ClassicCheckbox\n                        v-if=\"!isEmission\"\n                        :text-init=\"onlyVideo\"\n                        class=\"flex-shrink-0 mt-3\"\n                        id-checkbox=\"only-video-checkbox\"\n                        :label=\"t('Show only episodes with video')\"\n                        @update:text-init=\"updateOnlyVideo\"\n                    />\n                </fieldset>\n\n                <!-- Sort -->\n                <SearchOrder\n                    :is-emission=\"isEmission\"\n                    :sort=\"sort\"\n                    @update:sort=\"updateSort\"\n                />\n            </div>\n        </Transition>\n    </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { useRubriquesFilterParam } from \"../../composable/route/useRubriquesFilterParam\";\nimport { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { defineAsyncComponent, ref, computed, watch, onMounted } from \"vue\";\nimport { useGeneralStore } from \"../../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nconst MonetizableFilter = defineAsyncComponent(\n    () => import(\"./MonetizableFilter.vue\"),\n);\nconst CategorySearchFilter = defineAsyncComponent(\n    () => import(\"./CategorySearchFilter.vue\"),\n);\nconst RubriqueFilter = defineAsyncComponent(\n    () => import(\"./RubriqueFilter.vue\"),\n);\nconst ClassicSelect = defineAsyncComponent(\n    () => import(\"../../form/ClassicSelect.vue\"),\n);\nconst ClassicTagInput = defineAsyncComponent(\n    () => import(\"../../form/ClassicTagInput.vue\"),\n);\nconst ClassicCheckbox = defineAsyncComponent(\n    () => import(\"../../form/ClassicCheckbox.vue\"),\n);\nconst DateFilter = defineAsyncComponent(() => import(\"./DateFilter.vue\"));\nconst SearchOrder = defineAsyncComponent(() => import(\"./SearchOrder.vue\"));\nimport { ROUTE_PARAMS } from '../../composable/route/types';\nimport { EmissionGroup, groupsApi } from \"../../../api/groupsApi\";\nimport EmissionGroupChooser from \"../emission/EmissionGroupChooser.vue\";\n\n//Props \nconst props = withDefaults(defineProps<{\n    organisationId?: string;\n    /** Indicates that the filters apply to emissions */\n    isEmission?: boolean;\n    includeHidden?: boolean;\n    sort?: string;\n    onlyVideo?: boolean;\n    monetisable?: string;\n    iabId?: number;\n    searchPattern?: string;\n    fromDate?: string;\n    toDate?: string;\n    validity?: string;\n    /** The filter on beneficiaries */\n    beneficiaries?: Array<string>;\n    rubriqueFilter?: Array<RubriquageFilter>;\n    /** The filter on groups */\n    emissionGroups?: Array<EmissionGroup>;\n    /** Force hide the emission group filter */\n    hideEmissionGroups?: boolean;\n}>(), {\n    sort: \"DATE\",\n    monetisable: \"UNDEFINED\",\n    searchPattern: \"\",\n    validity: \"\"\n});\n\n//Emits\nconst emit = defineEmits([\n    \"update:toDate\",\n    \"update:fromDate\",\n    \"update:monetisable\",\n    \"update:iabId\",\n    \"update:sort\",\n    \"update:includeHidden\",\n    \"update:validity\",\n    \"update:rubriqueFilter\",\n    \"update:onlyVideo\",\n    \"update:beneficiaries\",\n    \"update:emission-groups\"\n]);\n\n//Data \nconst showFilters = ref(false);\nconst firstLoaded = ref(false);\nconst showEmissionGroups = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst { stringifyRubriquesFilter,updateRouteParamAdvanced } = useRubriquesFilterParam();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst authStore = useAuthStore();\n\nonMounted(async() => {\n    if (props.hideEmissionGroups) {\n        showEmissionGroups.value = false;\n        return;\n    }\n    // Only show emission groups if there are some\n    const nbGroups = await groupsApi.count({\n        organisationIds: [props.organisationId]\n    });\n    showEmissionGroups.value = nbGroups > 0;\n});\n\n//Computed\nconst organisationRight = computed(() => isEditRights(props.organisationId));\nconst organisation = computed(() => props.organisationId ?? filterStore.filterOrgaId);\nconst textNotVisible = computed(() => props.isEmission ? t(\"Consider podcasts no visible\"): t(\"See podcasts no visible\"));\nconst isSelectValidity = computed(() => {\n    return (\n        undefined !== organisation.value &&\n        organisationRight.value &&\n        (authStore.isRoleContribution || authStore.isRolePublication) &&\n        !isPodcastmaker.value &&\n        !props.isEmission &&\n        props.includeHidden\n    );\n});\n\n/** The beneficiaries filter is only displayed if beneficiaries are enabled */\nconst beneficiariesEnabled = computed(() => {\n    return authStore.authOrganisation.attributes['beneficiaries.enabled'] === 'true';\n});\n\n//Watch\nwatch(organisation, async () => {\n    const hidden = undefined !== organisation.value && organisationRight.value && !props.isEmission;\n    if (hidden !== props.includeHidden) {\n        updateIncludeHidden(hidden);\n    }\n});\n\nwatch(()=>props.searchPattern, (value: string) => {\n    const search = value.trim();\n    let valSort = \"SCORE\"\n    if(search.length <= 3){\n        valSort = props.isEmission? \"LAST_PODCAST_DESC\" : \"DATE\";\n    }\n    updateRouteParamAdvanced({\n        q: search.length ? search : undefined,\n        s: valSort,\n    });\n});\n\n//Methods\nfunction updateMonetisable(value: string): void {\n    emit(\"update:monetisable\", value);\n    updateRouteParamAdvanced({ m: \"UNDEFINED\" !== value ? value : undefined });\n}\n\nfunction updateIab(value: number | undefined) {\n    emit(\"update:iabId\", 0 !== value ? value : undefined);\n    let filterIab = {};\n    if (filterStore.filterIab && filterStore.filterIab.id !== value) {\n        filterIab = { iabId: undefined };\n    }\n    updateRouteParamAdvanced({\n        ...{ i: value ? value.toString() : undefined },\n        ...filterIab,\n    });\n}\n\nfunction updateSort(value: string) {\n    emit(\"update:sort\", value);\n    updateRouteParamAdvanced({ s: value });\n}\n\nfunction updateIncludeHidden(value: boolean) {\n    emit(\"update:includeHidden\", value);\n    updateRouteParamAdvanced({ h: value.toString() });\n}\n\nfunction updateValidity(value: boolean) {\n    emit(\"update:validity\", value);\n    updateRouteParamAdvanced({ vl: value.toString() });\n}\n\nfunction updateOnlyVideo(value: boolean) {\n    emit(\"update:onlyVideo\", value);\n    updateRouteParamAdvanced({ v: value ? \"true\" : undefined });\n}\n\nfunction updateDates(value: {\n    from: string | undefined;\n    to: string | undefined;\n}): void {\n    emit(\"update:fromDate\", value.from);\n    emit(\"update:toDate\", value.to);\n    updateRouteParamAdvanced({ from: value.from, to: value.to });\n}\n\nfunction updateRubriquageFilter(value: Array<RubriquageFilter>) {\n    emit(\"update:rubriqueFilter\", value);\n    let filterRubriques = {};\n    const valueString = stringifyRubriquesFilter(value);\n    if (\n        filterStore.filterRubrique.length &&\n        stringifyRubriquesFilter(filterStore.filterRubrique) !== valueString\n    ) {\n        filterRubriques = { rubriquesId: undefined };\n    }\n    updateRouteParamAdvanced({\n         r: valueString.length ? valueString : undefined,\n        ...filterRubriques,\n    });\n}\n\n/** Manage the checkbox enabling filtering on groups */\nconst emissionGroupCheckbox = computed({\n    get(): boolean {\n        return props.emissionGroups !== undefined && props.emissionGroups !== null;\n    },\n    set(value: boolean): void {\n        if (value) {\n            updateEmissionGroupFilter([]);\n        } else {\n            updateEmissionGroupFilter(undefined);\n        }\n    }\n});\n\n/** Update selected groups */\nfunction updateEmissionGroupFilter(groups: Array<EmissionGroup>|undefined): void {\n    if (groups !== undefined && groups.length === 0) {\n        emit('update:emission-groups', []);\n    } else {\n        updateRouteParamAdvanced({\n            [ROUTE_PARAMS.EmissionGroups]: groups?.map(g => g.groupId)\n        });\n        emit('update:emission-groups', groups);\n    }\n}\n\n/** Update the beneficiaries filter */\nfunction updateBeneficiaries(value: string[]|undefined): void {\n    emit('update:beneficiaries', value);\n    if (value === undefined) {\n        updateRouteParamAdvanced({ [ROUTE_PARAMS.Beneficiaries]: undefined });\n    } else {\n        updateRouteParamAdvanced({ [ROUTE_PARAMS.Beneficiaries]: value });\n    }\n}\n\n/** Update the value of the beneficiaries checkbox */\nfunction updateBeneficiariesCheckbox(value: boolean): void {\n    if (value === true) {\n        emit('update:beneficiaries', []);\n    } else {\n        updateBeneficiaries(undefined);\n    }\n}\n\nfunction clickShowFilters(): void {\n    if (!firstLoaded.value) {\n        firstLoaded.value = true;\n    }\n    showFilters.value = !showFilters.value;\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app {\n  .advanced-search-container {\n    background: var(--octopus-background);\n    display: flex;\n    width: 100%;\n    padding-bottom: 1rem;\n    justify-content: space-around;\n\n    @media (width <= 720px) {\n      flex-wrap: wrap;\n    }\n  }\n\n  .advanced-search-enter-active,\n  .advanced-search-leave-active {\n    transition: 0.3s all;\n    opacity: 1;\n    max-height: 900px;\n    height: auto;\n    overflow: hidden;\n  }\n\n  .advanced-search-enter-from,\n  .advanced-search-leave-to {\n      opacity: 0;\n      max-height: 0;\n      overflow: hidden;\n  }\n}\n</style>\n"],"mappings":"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"}