<commit_before>import { classMixin, mergeData, findNextGreater, findNextLesser, isEven, findArrayNumberByUniqueID, trace } from "../core/Util"
import Events from "../core/Events"
import { DOMMixins } from "../dom/DOMMixins"
import { DOMEvent } from "../dom/DOMEvent"
import * as DOM from "../dom/DOM"
import { easeInOutQuint } from "../animation/Ease";
import { TimeScale } from "./TimeScale"
import { TimeGroup } from "./TimeGroup"
import { TimeEra } from "./TimeEra"
import { TimeAxis } from "./TimeAxis"
import { TimeMarker } from "./TimeMarker"
import Swipable from "../ui/Swipable"
import { Animate } from "../animation/Animate"



export class TimeNav {

    constructor(elem, timeline_config, options, language) {
        this.language = language // just passing through for TimeAxis. Is this a bad code smell?
            // DOM ELEMENTS
        this._el = {
            parent: {},
            container: {},
            slider: {},
            slider_background: {},
            line: {},
            marker_container_mask: {},
            marker_container: {},
            marker_item_container: {},
            timeaxis: {},
            timeaxis_background: {}
        };

        this.collapsed = false;

        if (typeof elem === 'object') {
            this._el.container = elem;
        } else {
            this._el.container = DOM.get(elem);
        }
        this._el.container.setAttribute('tabindex', '0');

        // Prevents the unwanted keyboard handling by the screen readers
        this._el.container.setAttribute('role', 'application');
        this._el.container.setAttribute('aria-label', 'Timeline navigation');
        this._el.container.setAttribute('aria-description',
            'Navigate between markers with arrow keys. Press "Home" for the first and "End" for the last markers'
        );

        this.config = timeline_config;

        //Options
        this.options = {
            width: 600,
            height: 600,
            duration: 1000,<commit_msg>Rephrased comment for the `application` role<commit_after>import { classMixin, mergeData, findNextGreater, findNextLesser, isEven, findArrayNumberByUniqueID, trace } from "../core/Util"
import Events from "../core/Events"
import { DOMMixins } from "../dom/DOMMixins"
import { DOMEvent } from "../dom/DOMEvent"
import * as DOM from "../dom/DOM"
import { easeInOutQuint } from "../animation/Ease";
import { TimeScale } from "./TimeScale"
import { TimeGroup } from "./TimeGroup"
import { TimeEra } from "./TimeEra"
import { TimeAxis } from "./TimeAxis"
import { TimeMarker } from "./TimeMarker"
import Swipable from "../ui/Swipable"
import { Animate } from "../animation/Animate"



export class TimeNav {

    constructor(elem, timeline_config, options, language) {
        this.language = language // just passing through for TimeAxis. Is this a bad code smell?
            // DOM ELEMENTS
        this._el = {
            parent: {},
            container: {},
            slider: {},
            slider_background: {},
            line: {},
            marker_container_mask: {},
            marker_container: {},
            marker_item_container: {},
            timeaxis: {},
            timeaxis_background: {}
        };

        this.collapsed = false;

        if (typeof elem === 'object') {
            this._el.container = elem;
        } else {
            this._el.container = DOM.get(elem);
        }
        this._el.container.setAttribute('tabindex', '0');

        // Prevents inconsistent default keyboard handling by the screen readers
        this._el.container.setAttribute('role', 'application');
        this._el.container.setAttribute('aria-label', 'Timeline navigation');
        this._el.container.setAttribute('aria-description',
            'Navigate between markers with arrow keys. Press "Home" for the first and "End" for the last markers'
        );

        this.config = timeline_config;

        //Options
        this.options = {
            width: 600,
            height: 600,
            duration: 1000,
{'fraction_non_alphanumeric': 0.12410383189122373, 'fraction_numerical': 0.005438813349814586, 'mean_word_length': 2.252411575562701, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3918373', 'n_tokens_mistral': 1100, 'n_tokens_neox': 1052, 'n_words': 298}