// Copyright (C) 2022 Aravinth Manivannan // SPDX-FileCopyrightText: 2023 Aravinth Manivannan // // SPDX-License-Identifier: AGPL-3.0-or-later import getNumLevels from "./levels/getNumLevels"; import { Level } from "./levels/index"; import CONST from "./const"; import addLevelButtonAddEventListener from "./addLevelButton"; /** get rid of all whitespaces, useful when comparing DOM states */ export const trim = (s: string): string => s.replace(/\s/g, ""); export const level1: Level = { difficulty_factor: 200, visitor_threshold: 500, }; export const level1diffErr: Level = { difficulty_factor: 100, visitor_threshold: 600, }; export const level1visErr: Level = { difficulty_factor: 600, visitor_threshold: 400, }; export const level2: Level = { difficulty_factor: 400, visitor_threshold: 700, }; /** add level to DOM by filling add level form and clicking "Add" button */ export const addLevel = (visitor: number, diff: number): void => { fillAddLevel(visitor, diff); const addLevelButton = ( document.querySelector(`.${CONST.ADD_LEVEL_BUTTON}`) ); addLevelButton.click(); }; /** Fill add level form without clicking add button */ export const fillAddLevel = ( visitor: number | string, diff: number | string ): void => { addLevelButtonAddEventListener(); const level = getNumLevels(); const visitorField = ( document.getElementById(`${CONST.VISITOR_WITHOUT_LEVEL}${level}`) ); visitorField.value = visitor.toString(); const diffField = ( document.getElementById(`${CONST.DIFFICULTY_WITHOUT_LEVEL}${level}`) ); diffField.value = diff.toString(); }; /** Fill add level form without clicking add button */ export const editLevel = ( level: number, visitor?: number, diff?: number ): void => { if (visitor !== undefined) { const visitorField = ( document.getElementById(`${CONST.VISITOR_WITHOUT_LEVEL}${level}`) ); visitorField.value = visitor.toString(); } if (diff !== undefined) { const diffField = ( document.getElementById(`${CONST.DIFFICULTY_WITHOUT_LEVEL}${level}`) ); diffField.value = diff.toString(); } }; /** Fill description in add level form */ export const fillDescription = (description: string): void => { const inputElement = document.getElementById("description"); inputElement.value = description; }; /** Fill duration in add level form */ export const fillDuration = (duration: number | string): void => { const inputElement = document.getElementById("duration"); inputElement.value = duration.toString(); }; export const getAddForm = (): string => `

Add Sitekey

Level 1
`; /** get initial form to test remove button functionality */ export const getRemoveButtonHTMLForm = (): string => { return `

Add Sitekey

Level 1
Level 2
Level 3
Level 4
`; };