{{!
    This file is part of Moodle - http://moodle.org/

    Moodle is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Moodle is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
}}
{{!
    @template core_calendar/minicalendar_day_link

    Displays link to calendar day in mini calendar, with hover tooltip.

    Example context (json):
    {
        "day": "Today",
        "url": "http://example.com/",
        "title": "Monday 2nd January",
        "content": "<img class='icon smallicon' src='../../../pix/i/siteevent.svg'>Test site event"
    }
}}
<a {{!
    }} id="calendar-day-popover-link-{{courseid}}-{{year}}-{{yday}}-{{uniqid}}"{{!
    }} href="{{$url}}{{url}}{{/url}}"{{!
    }} data-bs-container="body"{{!
    }} data-bs-toggle="popover"{{!
    }} data-bs-html="true"{{!
    }} data-region="mini-day-link"{{!
    }} data-bs-trigger="hover focus"{{!
    }} data-bs-placement="top"{{!
    }} data-year="{{year}}"{{!
    }} data-month="{{date.mon}}"{{!
    }} data-courseid="{{courseid}}"{{!
    }} data-categoryid="{{categoryid}}"{{!
    }} data-bs-title="{{$title}}{{title}}{{/title}}"{{!
    }} data-alternate="{{$nocontent}}{{/nocontent}}"{{!
    }} aria-label="{{viewdaylinktitle}}"{{!
}}>{{$day}}{{day}}{{/day}}</a>
<div class="hidden">
    {{$content}}{{/content}}
</div>
{{#js}}
require(['jquery'], function($) {
    require(['theme_boost/bootstrap/popover'], function() {
        const target = document.getElementById("calendar-day-popover-link-{{courseid}}-{{year}}-{{yday}}-{{uniqid}}");
        new Popover(target, {
            content: function() {
                var source = target.next().find("> *:not('.hidden')");
                var content = $('<div>');

                if (source.length) {
                    content.html(source.clone(false));
                } else {
                    content.html(target.data('alternate'));
                }

                return content.html();
            }
        });
    });
});
{{/js}}
