Dropdown values based on Datatable output

I have the datepicker component which filters the datatable (top 10 songs on that specific date).Also I would like to have the bar chart which shows the total number of streamed songs of that top 10 songs (10 bars accordingly) preferably with dropdown core component with the options of the titles of songs that where filtered based on the date (the ones that datatable shows). with the below codem, the dropdown component shows all unique song titles thate are in the df but as I already said I want only the ones which will be picked after filtering on date.

Viz: Imgur: The magic of the Internet

import dash
import dash_core_components as dcc
import dash_html_components as html
import dash_table
from dash.dependencies import Output, Input
import plotly.express as px
import dash_bootstrap_components as dbc
from datetime import date
import pandas as pd

df = pd.read_csv('bel.csv')


app = dash.Dash(__name__, external_stylesheets=[dbc.themes.LITERA],
                meta_tags=[{'name' : 'viewport',
                            'content': 'width=device-width, initial-scale=1.0' }]
                )



# layout

app.layout = dbc.Container([
    dbc.Row([
        dbc.Col([
            html.H1('Top songs in Belgium',className='text-center text-primary,mb-4'),

            html.P ('Analyze the Top streamed songs in a month of between March & April',
                    className='text-center'),

        ], width= 12)

    ]),

    dbc.Row([
        dbc.Col([
            dcc.DatePickerSingle(
                id = 'my-date-picker-single',
                min_date_allowed=date(2022,3,1),
                max_date_allowed= date(2022,5,1),
                initial_visible_month=date(2022,3,1),
                date= date(2022,3,1)


            ),
            dash_table.DataTable(
                id ='datatable-interactivity',
                columns=[
                    {"name": i, "id": i, "deletable": False, "selectable": True, "hideable": True}
                    if i == "iso_alpha3" or i == "year" or i == "id"
                    else {"name": i, "id": i, "deletable": False, "selectable": True}
                    for i in df.loc[0:4,['Rank', 'Title']]
                ],
                data =df.to_dict('records'),
                editable= False,
                style_as_list_view=True,
                style_header={
                    'backgroundColor': 'white',
                    'fontWeight': 'bold',

                },
                style_data={
                        'whiteSpace': 'normal',
                        'height':'auto',
                        'backgroundColor': 'rgb(50, 50, 50)',
                        'color': 'white'},



            ),





        ], width=5),
        dbc.Col([
            dcc.Dropdown(id='my-dpdn', multi=True,
                         placeholder="Select a title",
                         options=[{'label': x, 'value': x}
                                  for x in sorted(df['Title'].unique())]),


            dcc.Graph(id='bar-fig', figure={}),

        ], width ={'size':5})


    ]),


    dbc.Row([

    ]),


], fluid= True)

def date_string_to_date(date_string):
    return pd.to_datetime(date_string, infer_datetime_format=True)

@app.callback(
    dash.dependencies.Output('datatable-interactivity', 'data'),
    dash.dependencies.Input('my-date-picker-single','date')
)
def  update_data (date):
    data = df.to_dict('records')
    if date:
        mask = (date_string_to_date(df['Chart Date']) == date_string_to_date(date))
        data= df.loc[mask].head(10).to_dict('records')
        return data


# -------------------------------------------------------------------------
if __name__ == '__main__':
    app.run_server(debug=True)