SYMBOL INDEX (1507 symbols across 74 files) FILE: api/subscriptions/get_ical_feed.php function getPriceConverted (line 29) | function getPriceConverted($price, $currency, $database) FILE: api/subscriptions/get_subscriptions.php function getPriceConverted (line 111) | function getPriceConverted($price, $currency, $database) FILE: calendar.php function getPriceConverted (line 4) | function getPriceConverted($price, $currency, $database, $userId) FILE: endpoints/admin/adduser.php function validate (line 96) | function validate($value) FILE: endpoints/ai/generate_recommendations.php function getPricePerMonth (line 7) | function getPricePerMonth($cycle, $frequency, $price) function describeFrequency (line 23) | function describeFrequency($cycle, $frequency) function describeCurrency (line 40) | function describeCurrency($currencyId, $currencies) FILE: endpoints/categories/category.php function handleAddCategory (line 26) | function handleAddCategory($db, $userId, $i18n) function handleEditCategory (line 64) | function handleEditCategory($db, $userId, $i18n) function handleDeleteCategory (line 98) | function handleDeleteCategory($db, $userId, $i18n) function handleSortCategories (line 145) | function handleSortCategories($db, $userId, $i18n) FILE: endpoints/cronjobs/sendnotifications.php function getDaysText (line 30) | function getDaysText($days) function formatPrice (line 41) | function formatPrice($price, $currencyCode, $currencySymbol) FILE: endpoints/cronjobs/storetotalyearlycost.php function getPricePerMonth (line 15) | function getPricePerMonth($cycle, $frequency, $price) function getPriceConverted (line 33) | function getPriceConverted($price, $currency, $database, $userId) FILE: endpoints/currency/currency.php function handleAddCurrency (line 24) | function handleAddCurrency($db, $userId, $i18n) function handleEditCurrency (line 47) | function handleEditCurrency($db, $userId, $i18n) function handleDeleteCurrency (line 85) | function handleDeleteCurrency($db, $userId, $i18n) FILE: endpoints/db/backup.php function addFolderToZip (line 5) | function addFolderToZip($dir, $zipArchive, $zipdir = '') FILE: endpoints/db/import.php function emptyRestoreFolder (line 13) | function emptyRestoreFolder() { FILE: endpoints/db/migrate.php function errorHandler (line 2) | function errorHandler($severity, $message, $file, $line) FILE: endpoints/db/restore.php function emptyRestoreFolder (line 5) | function emptyRestoreFolder() FILE: endpoints/household/household.php function handleAddMember (line 23) | function handleAddMember($db, $userId, $i18n) function handleEditMember (line 48) | function handleEditMember($db, $userId, $i18n) function handleDeleteMember (line 85) | function handleDeleteMember($db, $userId, $i18n) FILE: endpoints/logos/search.php function applyProxy (line 5) | function applyProxy($ch) { function curlGet (line 18) | function curlGet($url, $headers = []) { function getVqdToken (line 40) | function getVqdToken($query) { function fetchDDGImages (line 48) | function fetchDDGImages($query, $vqd) { function fetchBraveImages (line 71) | function fetchBraveImages($query) { FILE: endpoints/notifications/testserverchannotifications.php function sc_send (line 19) | function sc_send($text, $desp = '', $key = '') { FILE: endpoints/payments/add.php function sanitizeFilename (line 13) | function sanitizeFilename($filename) function validateFileExtension (line 21) | function validateFileExtension($fileExtension) function getLogoFromUrl (line 27) | function getLogoFromUrl($url, $uploadDir, $name, $i18n, $settings) function saveLogo (line 78) | function saveLogo($imageData, $uploadFile, $name, $settings) function resizeAndUploadLogo (line 120) | function resizeAndUploadLogo($uploadedFile, $uploadDir, $name) FILE: endpoints/payments/rename.php function validate (line 6) | function validate($value) FILE: endpoints/payments/search.php function applyProxy (line 4) | function applyProxy($ch) { function curlGet (line 16) | function curlGet($url, $headers = []) { function getVqdToken (line 44) | function getVqdToken($query) { function fetchDDGImages (line 52) | function fetchDDGImages($query, $vqd) { function fetchBraveImages (line 75) | function fetchBraveImages($query) { FILE: endpoints/subscription/add.php function sanitizeFilename (line 13) | function sanitizeFilename($filename) function validateFileExtension (line 21) | function validateFileExtension($fileExtension) function getLogoFromUrl (line 27) | function getLogoFromUrl($url, $uploadDir, $name, $settings, $i18n) function saveLogo (line 92) | function saveLogo($imageData, $uploadFile, $name, $settings) function resizeAndUploadLogo (line 139) | function resizeAndUploadLogo($uploadedFile, $uploadDir, $name, $settings) FILE: endpoints/user/disable_totp.php function trigger_deprecation (line 8) | function trigger_deprecation($package, $version, $message, ...$args) FILE: endpoints/user/enable_totp.php function trigger_deprecation (line 8) | function trigger_deprecation($package, $version, $message, ...$args) function base32_encode (line 23) | function base32_encode($hex) FILE: endpoints/user/save_user.php function update_exchange_rate (line 11) | function update_exchange_rate($db, $userId) function sanitizeFilename (line 108) | function sanitizeFilename($filename) function validateFileExtension (line 116) | function validateFileExtension($fileExtension) function resizeAndUploadAvatar (line 122) | function resizeAndUploadAvatar($uploadedFile, $uploadDir, $name) FILE: includes/currency_formatter.php class CurrencyFormatter (line 3) | final class CurrencyFormatter method getInstance (line 7) | private static function getInstance() method format (line 20) | public static function format($amount, $currency) FILE: includes/header.php function hex2rgb (line 63) | function hex2rgb($hex) FILE: includes/i18n/getlang.php function translate (line 12) | function translate($text, $translations) FILE: includes/inputvalidation.php function validate (line 3) | function validate($value) FILE: includes/list_subscriptions.php function getBillingCycle (line 5) | function getBillingCycle($cycle, $frequency, $i18n) function getSubscriptionProgress (line 19) | function getSubscriptionProgress($cycle, $frequency, $next_payment) function getPricePerMonth (line 49) | function getPricePerMonth($cycle, $frequency, $price) function getPriceConverted (line 68) | function getPriceConverted($price, $currency, $database) function formatPrice (line 84) | function formatPrice($price, $currencyCode, $currencies) function formatDate (line 105) | function formatDate($date, $lang = 'en') function printSubscriptions (line 134) | function printSubscriptions($subscriptions, $sort, $categories, $members... FILE: includes/oidc/handle_oidc_callback.php function generate_username_from_email (line 3) | function generate_username_from_email($email) FILE: includes/ssrf_helper.php function is_cgnat_ip (line 8) | function is_cgnat_ip($ip) { function validate_webhook_url_for_ssrf (line 23) | function validate_webhook_url_for_ssrf($url, $db, $i18n) { function is_url_safe_for_ssrf (line 92) | function is_url_safe_for_ssrf($url, $db) { FILE: includes/stats_calculations.php function getPricePerMonth (line 3) | function getPricePerMonth($cycle, $frequency, $price) function getPriceConverted (line 21) | function getPriceConverted($price, $currency, $database, $userId) FILE: index.php function formatPrice (line 6) | function formatPrice($price, $currencyCode, $currencies) function formatDate (line 27) | function formatDate($date, $lang = 'en') FILE: libs/OTPHP/Factory.php class Factory (line 18) | final class Factory implements FactoryInterface method loadFromProvisioningUri (line 20) | public static function loadFromProvisioningUri(string $uri, ?ClockInte... method populateParameters (line 44) | private static function populateParameters(OTPInterface $otp, Url $dat... method populateOTP (line 51) | private static function populateOTP(OTPInterface $otp, Url $data): void method createOTP (line 74) | private static function createOTP(Url $parsed_url, ClockInterface $clo... method getLabel (line 96) | private static function getLabel(string $data): string FILE: libs/OTPHP/FactoryInterface.php type FactoryInterface (line 7) | interface FactoryInterface method loadFromProvisioningUri (line 15) | public static function loadFromProvisioningUri(string $uri): OTPInterf... FILE: libs/OTPHP/HOTP.php class HOTP (line 13) | final class HOTP extends OTP implements HOTPInterface method create (line 17) | public static function create( method createFromSecret (line 34) | public static function createFromSecret(string $secret): self method generate (line 44) | public static function generate(): self method getCounter (line 52) | public function getCounter(): int method getProvisioningUri (line 60) | public function getProvisioningUri(): string method verify (line 72) | public function verify(string $otp, null|int $counter = null, null|int... method setCounter (line 85) | public function setCounter(int $counter): void method getParameterMap (line 93) | protected function getParameterMap(): array method updateCounter (line 105) | private function updateCounter(int $counter): void method getWindow (line 113) | private function getWindow(null|int $window): int method verifyOtpWithWindow (line 123) | private function verifyOtpWithWindow(string $otp, int $counter, null|i... FILE: libs/OTPHP/HOTPInterface.php type HOTPInterface (line 7) | interface HOTPInterface extends OTPInterface method getCounter (line 14) | public function getCounter(): int; method create (line 28) | public static function create( method setCounter (line 35) | public function setCounter(int $counter): void; FILE: libs/OTPHP/InternalClock.php class InternalClock (line 13) | final class InternalClock implements ClockInterface method now (line 15) | public function now(): DateTimeImmutable FILE: libs/OTPHP/OTP.php class OTP (line 17) | abstract class OTP implements OTPInterface method __construct (line 26) | protected function __construct(string $secret) method getQrCodeUri (line 31) | public function getQrCodeUri(string $uri, string $placeholder): string method at (line 41) | public function at(int $input): string method generateSecret (line 49) | final protected static function generateSecret(): string method generateOTP (line 61) | protected function generateOTP(int $input): string method filterOptions (line 78) | protected function filterOptions(array &$options): void method generateURI (line 99) | protected function generateURI(string $type, array $options): string method compareOTP (line 120) | protected function compareOTP(string $safe, string $user): bool method getDecodedSecret (line 128) | private function getDecodedSecret(): string method intToByteString (line 140) | private function intToByteString(int $int): string FILE: libs/OTPHP/OTPInterface.php type OTPInterface (line 7) | interface OTPInterface method createFromSecret (line 18) | public static function createFromSecret(string $secret): self; method generate (line 23) | public static function generate(): self; method setSecret (line 28) | public function setSecret(string $secret): void; method setDigits (line 30) | public function setDigits(int $digits): void; method setDigest (line 35) | public function setDigest(string $digest): void; method at (line 44) | public function at(int $input): string; method verify (line 54) | public function verify(string $otp, null|int $input = null, null|int $... method getSecret (line 59) | public function getSecret(): string; method setLabel (line 64) | public function setLabel(string $label): void; method getLabel (line 69) | public function getLabel(): null|string; method getIssuer (line 74) | public function getIssuer(): ?string; method setIssuer (line 79) | public function setIssuer(string $issuer): void; method isIssuerIncludedAsParameter (line 84) | public function isIssuerIncludedAsParameter(): bool; method setIssuerIncludedAsParameter (line 86) | public function setIssuerIncludedAsParameter(bool $issuer_included_as_... method getDigits (line 91) | public function getDigits(): int; method getDigest (line 96) | public function getDigest(): string; method getParameter (line 101) | public function getParameter(string $parameter): mixed; method hasParameter (line 106) | public function hasParameter(string $parameter): bool; method getParameters (line 111) | public function getParameters(): array; method setParameter (line 116) | public function setParameter(string $parameter, mixed $value): void; method getProvisioningUri (line 123) | public function getProvisioningUri(): string; method getQrCodeUri (line 131) | public function getQrCodeUri(string $uri, string $placeholder): string; FILE: libs/OTPHP/ParameterTrait.php type ParameterTrait (line 14) | trait ParameterTrait method getParameters (line 36) | public function getParameters(): array method getSecret (line 47) | public function getSecret(): string method getLabel (line 55) | public function getLabel(): null|string method setLabel (line 60) | public function setLabel(string $label): void method getIssuer (line 65) | public function getIssuer(): null|string method setIssuer (line 70) | public function setIssuer(string $issuer): void method isIssuerIncludedAsParameter (line 75) | public function isIssuerIncludedAsParameter(): bool method setIssuerIncludedAsParameter (line 80) | public function setIssuerIncludedAsParameter(bool $issuer_included_as_... method getDigits (line 85) | public function getDigits(): int method getDigest (line 93) | public function getDigest(): string method hasParameter (line 101) | public function hasParameter(string $parameter): bool method getParameter (line 106) | public function getParameter(string $parameter): mixed method setParameter (line 115) | public function setParameter(string $parameter, mixed $value): void method setSecret (line 131) | public function setSecret(string $secret): void method setDigits (line 136) | public function setDigits(int $digits): void method setDigest (line 141) | public function setDigest(string $digest): void method getParameterMap (line 149) | protected function getParameterMap(): array method hasColon (line 189) | private function hasColon(string $value): bool FILE: libs/OTPHP/TOTP.php class TOTP (line 15) | final class TOTP extends OTP implements TOTPInterface method __construct (line 19) | public function __construct(string $secret, ?ClockInterface $clock = n... method create (line 34) | public static function create( method createFromSecret (line 54) | public static function createFromSecret(string $secret, ?ClockInterfac... method generate (line 65) | public static function generate(?ClockInterface $clock = null): self method getPeriod (line 70) | public function getPeriod(): int method getEpoch (line 78) | public function getEpoch(): int method expiresIn (line 86) | public function expiresIn(): int method at (line 98) | public function at(int $input): string method now (line 103) | public function now(): string method verify (line 119) | public function verify(string $otp, null|int $timestamp = null, null|i... method getProvisioningUri (line 143) | public function getProvisioningUri(): string method setPeriod (line 157) | public function setPeriod(int $period): void method setEpoch (line 162) | public function setEpoch(int $epoch): void method getParameterMap (line 170) | protected function getParameterMap(): array method filterOptions (line 192) | protected function filterOptions(array &$options): void method timecode (line 208) | private function timecode(int $timestamp): int FILE: libs/OTPHP/TOTPInterface.php type TOTPInterface (line 7) | interface TOTPInterface extends OTPInterface method create (line 25) | public static function create( method setPeriod (line 32) | public function setPeriod(int $period): void; method setEpoch (line 34) | public function setEpoch(int $epoch): void; method now (line 41) | public function now(): string; method getPeriod (line 46) | public function getPeriod(): int; method expiresIn (line 48) | public function expiresIn(): int; method getEpoch (line 50) | public function getEpoch(): int; FILE: libs/OTPHP/Url.php class Url (line 14) | final class Url method __construct (line 23) | public function __construct( method getScheme (line 35) | public function getScheme(): string method getHost (line 43) | public function getHost(): string method getPath (line 51) | public function getPath(): string method getSecret (line 59) | public function getSecret(): string method getQuery (line 67) | public function getQuery(): array method fromString (line 75) | public static function fromString(string $uri): self FILE: libs/PHPMailer/Exception.php class Exception (line 29) | class Exception extends \Exception method errorMessage (line 36) | public function errorMessage() FILE: libs/PHPMailer/PHPMailer.php class PHPMailer (line 32) | class PHPMailer method __construct (line 826) | public function __construct($exceptions = null) method __destruct (line 838) | public function __destruct() method mailPassthru (line 858) | private function mailPassthru($to, $subject, $body, $header, $params) method edebug (line 892) | protected function edebug($str) method isHTML (line 947) | public function isHTML($isHtml = true) method isSMTP (line 959) | public function isSMTP() method isMail (line 967) | public function isMail() method isSendmail (line 975) | public function isSendmail() method isQmail (line 990) | public function isQmail() method addAddress (line 1012) | public function addAddress($address, $name = '') method addCC (line 1027) | public function addCC($address, $name = '') method addBCC (line 1042) | public function addBCC($address, $name = '') method addReplyTo (line 1057) | public function addReplyTo($address, $name = '') method addOrEnqueueAnAddress (line 1076) | protected function addOrEnqueueAnAddress($kind, $address, $name) method setBoundaries (line 1135) | public function setBoundaries() method addAnAddress (line 1155) | protected function addAnAddress($kind, $address, $name = '') method parseAddresses (line 1216) | public static function parseAddresses($addrstr, $useimap = true, $char... method setFrom (line 1305) | public function setFrom($address, $name = '', $auto = true) method getLastMessageID (line 1346) | public function getLastMessageID() method validateAddress (line 1375) | public static function validateAddress($address, $patternselect = null) method idnSupported (line 1442) | public static function idnSupported() method punyencodeAddress (line 1461) | public function punyencodeAddress($address) method send (line 1509) | public function send() method preSend (line 1535) | public function preSend() method postSend (line 1673) | public function postSend() method sendmailSend (line 1719) | protected function sendmailSend($header, $body) method isShellSafe (line 1827) | protected static function isShellSafe($string) method isPermittedPath (line 1868) | protected static function isPermittedPath($path) method fileIsAccessible (line 1881) | protected static function fileIsAccessible($path) method mailSend (line 1906) | protected function mailSend($header, $body) method getSMTPInstance (line 1983) | public function getSMTPInstance() method setSMTPInstance (line 1997) | public function setSMTPInstance(SMTP $smtp) method smtpSend (line 2019) | protected function smtpSend($header, $body) method smtpConnect (line 2104) | public function smtpConnect($options = null) method smtpClose (line 2253) | public function smtpClose() method setLanguage (line 2273) | public function setLanguage($langcode = 'en', $lang_path = '') method getTranslations (line 2397) | public function getTranslations() method addrAppend (line 2417) | public function addrAppend($type, $addr) method addrFormat (line 2435) | public function addrFormat($addr) method wrapText (line 2457) | public function wrapText($message, $length, $qp_mode = false) method utf8CharBoundary (line 2557) | public function utf8CharBoundary($encodedText, $maxLength) method setWordWrap (line 2601) | public function setWordWrap() method createHeader (line 2625) | public function createHeader() method getMailMIME (line 2725) | public function getMailMIME() method getSentMIMEMessage (line 2777) | public function getSentMIMEMessage() method generateId (line 2788) | protected function generateId() method createBody (line 2820) | public function createBody() method getBoundaries (line 3100) | public function getBoundaries() method getBoundary (line 3118) | protected function getBoundary($boundary, $charSet, $contentType, $enc... method endBoundary (line 3149) | protected function endBoundary($boundary) method setMessageType (line 3158) | protected function setMessageType() method headerLine (line 3185) | public function headerLine($name, $value) method textLine (line 3197) | public function textLine($value) method addAttachment (line 3219) | public function addAttachment( method getAttachments (line 3272) | public function getAttachments() method attachAll (line 3288) | protected function attachAll($disposition_type, $boundary) method encodeFile (line 3398) | protected function encodeFile($path, $encoding = self::ENCODING_BASE64) method encodeString (line 3433) | public function encodeString($str, $encoding = self::ENCODING_BASE64) method encodeHeader (line 3479) | public function encodeHeader($str, $position = 'text') method hasMultiBytes (line 3568) | public function hasMultiBytes($str) method has8bitChars (line 3585) | public function has8bitChars($text) method base64EncodeWrapMB (line 3602) | public function base64EncodeWrapMB($str, $linebreak = null) method encodeQP (line 3643) | public function encodeQP($string) method encodeQ (line 3658) | public function encodeQ($str, $position = 'text') method addStringAttachment (line 3716) | public function addStringAttachment( method addEmbeddedImage (line 3779) | public function addEmbeddedImage( method addStringEmbeddedImage (line 3849) | public function addStringEmbeddedImage( method validateEncoding (line 3898) | protected function validateEncoding($encoding) method cidExists (line 3920) | protected function cidExists($cid) method inlineImageExists (line 3936) | public function inlineImageExists() method attachmentExists (line 3952) | public function attachmentExists() method alternativeExists (line 3968) | public function alternativeExists() method clearQueuedAddresses (line 3978) | public function clearQueuedAddresses($kind) method clearAddresses (line 3991) | public function clearAddresses() method clearCCs (line 4003) | public function clearCCs() method clearBCCs (line 4015) | public function clearBCCs() method clearReplyTos (line 4027) | public function clearReplyTos() method clearAllRecipients (line 4036) | public function clearAllRecipients() method clearAttachments (line 4048) | public function clearAttachments() method clearCustomHeaders (line 4056) | public function clearCustomHeaders() method setError (line 4066) | protected function setError($msg) method rfcDate (line 4092) | public static function rfcDate() method serverHostname (line 4107) | protected function serverHostname() method isValidHost (line 4134) | public static function isValidHost($host) method lang (line 4166) | protected function lang($key) method getSmtpErrorMessage (line 4193) | private function getSmtpErrorMessage($base_key) method isError (line 4212) | public function isError() method addCustomHeader (line 4228) | public function addCustomHeader($name, $value = null) method getCustomHeaders (line 4254) | public function getCustomHeaders() method msgHTML (line 4280) | public function msgHTML($message, $basedir = '', $advanced = false) method html2text (line 4398) | public function html2text($html, $advanced = false) method _mime_types (line 4418) | public static function _mime_types($ext = '') method filenameToType (line 4551) | public static function filenameToType($filename) method mb_pathinfo (line 4575) | public static function mb_pathinfo($path, $options = null) method set (line 4625) | public function set($name, $value = '') method secureHeader (line 4644) | public function secureHeader($str) method normalizeBreaks (line 4659) | public static function normalizeBreaks($text, $breaktype = null) method stripTrailingWSP (line 4681) | public static function stripTrailingWSP($text) method stripTrailingBreaks (line 4693) | public static function stripTrailingBreaks($text) method getLE (line 4703) | public static function getLE() method setLE (line 4713) | protected static function setLE($le) method sign (line 4726) | public function sign($cert_filename, $key_filename, $key_pass, $extrac... method DKIM_QP (line 4741) | public function DKIM_QP($txt) method DKIM_Sign (line 4766) | public function DKIM_Sign($signHeader) method DKIM_HeaderC (line 4808) | public function DKIM_HeaderC($signHeader) method DKIM_BodyC (line 4852) | public function DKIM_BodyC($body) method DKIM_Add (line 4875) | public function DKIM_Add($headers_line, $subject, $body) method hasLineLongerThanMax (line 5019) | public static function hasLineLongerThanMax($str) method quotedString (line 5034) | public static function quotedString($str) method getToAddresses (line 5052) | public function getToAddresses() method getCcAddresses (line 5063) | public function getCcAddresses() method getBccAddresses (line 5074) | public function getBccAddresses() method getReplyToAddresses (line 5085) | public function getReplyToAddresses() method getAllRecipientAddresses (line 5096) | public function getAllRecipientAddresses() method doCallback (line 5113) | protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body... method getOAuth (line 5125) | public function getOAuth() method setOAuth (line 5133) | public function setOAuth(OAuthTokenProvider $oauth) FILE: libs/PHPMailer/SMTP.php class SMTP (line 31) | class SMTP method edebug (line 264) | protected function edebug($str, $level = 0) method connect (line 323) | public function connect($host, $port = null, $timeout = 30, $options =... method getSMTPConnection (line 382) | protected function getSMTPConnection($host, $port = null, $timeout = 3... method startTLS (line 457) | public function startTLS() method authenticate (line 498) | public function authenticate( method hmac (line 632) | protected function hmac($data, $key) method connected (line 664) | public function connected() method close (line 691) | public function close() method data (line 716) | public function data($msg_data) method hello (line 809) | public function hello($host = '') method sendHello (line 835) | protected function sendHello($hello, $host) method parseHelloFields (line 854) | protected function parseHelloFields($type) method mail (line 902) | public function mail($from) method quit (line 922) | public function quit($close_on_error = true) method recipient (line 946) | public function recipient($address, $dsn = '') method reset (line 981) | public function reset() method sendCommand (line 995) | protected function sendCommand($command, $commandstring, $expect) method sendAndMail (line 1069) | public function sendAndMail($from) method verify (line 1081) | public function verify($name) method noop (line 1092) | public function noop() method turn (line 1106) | public function turn() method client_send (line 1122) | public function client_send($data, $command = '') method getError (line 1146) | public function getError() method getServerExtList (line 1156) | public function getServerExtList() method getServerExt (line 1178) | public function getServerExt($name) method getLastReply (line 1206) | public function getLastReply() method get_lines (line 1220) | protected function get_lines() method setVerp (line 1309) | public function setVerp($enabled = false) method getVerp (line 1319) | public function getVerp() method setError (line 1332) | protected function setError($message, $detail = '', $smtp_code = '', $... method setDebugOutput (line 1347) | public function setDebugOutput($method = 'echo') method getDebugOutput (line 1357) | public function getDebugOutput() method setDebugLevel (line 1367) | public function setDebugLevel($level = 0) method getDebugLevel (line 1377) | public function getDebugLevel() method setTimeout (line 1387) | public function setTimeout($timeout = 0) method getTimeout (line 1397) | public function getTimeout() method errorHandler (line 1410) | protected function errorHandler($errno, $errmsg, $errfile = '', $errli... method recordLastTransactionID (line 1433) | protected function recordLastTransactionID() method getLastTransactionID (line 1462) | public function getLastTransactionID() FILE: libs/Psr/Clock/ClockInterface.php type ClockInterface (line 7) | interface ClockInterface method now (line 12) | public function now(): DateTimeImmutable; FILE: libs/constant_time_encoding/Base32.php class Base32 (line 38) | abstract class Base32 implements EncoderInterface method decode (line 47) | public static function decode( method decodeUpper (line 62) | public static function decodeUpper( method encode (line 77) | public static function encode( method encodeUnpadded (line 91) | public static function encodeUnpadded( method encodeUpper (line 105) | public static function encodeUpper( method encodeUpperUnpadded (line 119) | public static function encodeUpperUnpadded( method decode5Bits (line 133) | protected static function decode5Bits(int $src): int method decode5BitsUpper (line 155) | protected static function decode5BitsUpper(int $src): int method encode5Bits (line 175) | protected static function encode5Bits(int $src): string method encode5BitsUpper (line 194) | protected static function encode5BitsUpper(int $src): string method decodeNoPadding (line 209) | public static function decodeNoPadding( method doDecode (line 244) | protected static function doDecode( method doEncode (line 455) | protected static function doEncode( FILE: libs/constant_time_encoding/Base32Hex.php class Base32Hex (line 34) | abstract class Base32Hex extends Base32 method decode5Bits (line 43) | protected static function decode5Bits(int $src): int method decode5BitsUpper (line 63) | protected static function decode5BitsUpper(int $src): int method encode5Bits (line 83) | protected static function encode5Bits(int $src): string method encode5BitsUpper (line 102) | protected static function encode5BitsUpper(int $src): string FILE: libs/constant_time_encoding/Base64.php class Base64 (line 38) | abstract class Base64 implements EncoderInterface method encode (line 50) | public static function encode( method encodeUnpadded (line 67) | public static function encodeUnpadded( method doEncode (line 81) | protected static function doEncode( method decode (line 140) | public static function decode( method decodeNoPadding (line 239) | public static function decodeNoPadding( method decode6Bits (line 272) | protected static function decode6Bits(int $src): int method encode6Bits (line 301) | protected static function encode6Bits(int $src): string FILE: libs/constant_time_encoding/Base64DotSlash.php class Base64DotSlash (line 34) | abstract class Base64DotSlash extends Base64 method decode6Bits (line 47) | protected static function decode6Bits(int $src): int method encode6Bits (line 73) | protected static function encode6Bits(int $src): string FILE: libs/constant_time_encoding/Base64DotSlashOrdered.php class Base64DotSlashOrdered (line 34) | abstract class Base64DotSlashOrdered extends Base64 method decode6Bits (line 47) | protected static function decode6Bits(int $src): int method encode6Bits (line 70) | protected static function encode6Bits(int $src): string FILE: libs/constant_time_encoding/Base64UrlSafe.php class Base64UrlSafe (line 34) | abstract class Base64UrlSafe extends Base64 method decode6Bits (line 48) | protected static function decode6Bits(int $src): int method encode6Bits (line 77) | protected static function encode6Bits(int $src): string FILE: libs/constant_time_encoding/Binary.php class Binary (line 38) | abstract class Binary method safeStrlen (line 48) | public static function safeStrlen( method safeSubstr (line 74) | public static function safeSubstr( FILE: libs/constant_time_encoding/EncoderInterface.php type EncoderInterface (line 32) | interface EncoderInterface method encode (line 41) | public static function encode(string $binString): string; method decode (line 51) | public static function decode(string $encodedString, bool $strictPaddi... FILE: libs/constant_time_encoding/Encoding.php class Encoding (line 34) | abstract class Encoding method base32Encode (line 43) | public static function base32Encode( method base32EncodeUpper (line 57) | public static function base32EncodeUpper( method base32Decode (line 71) | public static function base32Decode( method base32DecodeUpper (line 85) | public static function base32DecodeUpper( method base32HexEncode (line 99) | public static function base32HexEncode( method base32HexEncodeUpper (line 113) | public static function base32HexEncodeUpper( method base32HexDecode (line 127) | public static function base32HexDecode( method base32HexDecodeUpper (line 141) | public static function base32HexDecodeUpper( method base64Encode (line 155) | public static function base64Encode( method base64Decode (line 169) | public static function base64Decode( method base64EncodeDotSlash (line 184) | public static function base64EncodeDotSlash( method base64DecodeDotSlash (line 201) | public static function base64DecodeDotSlash( method base64EncodeDotSlashOrdered (line 216) | public static function base64EncodeDotSlashOrdered( method base64DecodeDotSlashOrdered (line 233) | public static function base64DecodeDotSlashOrdered( method hexEncode (line 248) | public static function hexEncode( method hexDecode (line 263) | public static function hexDecode( method hexEncodeUpper (line 278) | public static function hexEncodeUpper( method hexDecodeUpper (line 292) | public static function hexDecodeUpper( FILE: libs/constant_time_encoding/Hex.php class Hex (line 35) | abstract class Hex implements EncoderInterface method encode (line 45) | public static function encode( method encodeUpper (line 74) | public static function encodeUpper( method decode (line 105) | public static function decode( FILE: libs/constant_time_encoding/RFC4648.php class RFC4648 (line 37) | abstract class RFC4648 method base64Encode (line 49) | public static function base64Encode( method base64Decode (line 66) | public static function base64Decode( method base64UrlSafeEncode (line 83) | public static function base64UrlSafeEncode( method base64UrlSafeDecode (line 100) | public static function base64UrlSafeDecode( method base32Encode (line 117) | public static function base32Encode( method base32Decode (line 134) | public static function base32Decode( method base32HexEncode (line 151) | public static function base32HexEncode( method base32HexDecode (line 168) | public static function base32HexDecode( method base16Encode (line 185) | public static function base16Encode( method base16Decode (line 200) | public static function base16Decode( FILE: libs/csrf.php function generate_csrf_token (line 7) | function generate_csrf_token(): string { function verify_csrf_token (line 14) | function verify_csrf_token(?string $token): bool { FILE: registration.php function validate (line 11) | function validate($value) FILE: scripts/admin.js function makeFetchCall (line 1) | function makeFetchCall(url, data, button) { function testSmtpSettingsButton (line 26) | function testSmtpSettingsButton() { function saveSmtpSettingsButton (line 49) | function saveSmtpSettingsButton() { function backupDB (line 95) | function backupDB() { function openRestoreDBFileSelect (line 138) | function openRestoreDBFileSelect() { function restoreDB (line 142) | function restoreDB() { function saveAccountRegistrationsButton (line 190) | function saveAccountRegistrationsButton() { function saveSecuritySettingsButton (line 232) | function saveSecuritySettingsButton() { function removeUser (line 266) | function removeUser(userId) { function addUserButton (line 295) | function addUserButton() { function deleteUnusedLogos (line 334) | function deleteUnusedLogos() { function toggleUpdateNotification (line 362) | function toggleUpdateNotification() { function executeCronJob (line 393) | function executeCronJob(job) { function toggleOidcEnabled (line 411) | function toggleOidcEnabled() { function saveOidcSettingsButton (line 445) | function saveOidcSettingsButton() { FILE: scripts/calendar.js function nextMonth (line 1) | function nextMonth(currentMonth, currentYear) { function prevMonth (line 11) | function prevMonth(currentMonth, currentYear) { function currentMoth (line 21) | function currentMoth() { function closeSubscriptionModal (line 25) | function closeSubscriptionModal() { function openSubscriptionModal (line 30) | function openSubscriptionModal(subscriptionId) { function decodeHtmlEntities (line 76) | function decodeHtmlEntities(str) { function exportCalendar (line 82) | function exportCalendar(subscriptionId) { function showExportPopup (line 110) | function showExportPopup() { function closePopup (line 120) | function closePopup() { function copyToClipboard (line 124) | function copyToClipboard() { FILE: scripts/common.js function toggleDropdown (line 3) | function toggleDropdown() { function showErrorMessage (line 9) | function showErrorMessage(message) { function showSuccessMessage (line 40) | function showSuccessMessage(message) { function getCookie (line 106) | function getCookie(name) { FILE: scripts/dashboard.js function updateAiRecommendationNumbers (line 2) | function updateAiRecommendationNumbers() { FILE: scripts/i18n/getlang.js function translate (line 1) | function translate(key) { FILE: scripts/libs/chart.js method Colors (line 13) | get Colors(){return Go} method Decimation (line 13) | get Decimation(){return Qo} method Filler (line 13) | get Filler(){return ma} method Legend (line 13) | get Legend(){return ya} method SubTitle (line 13) | get SubTitle(){return ka} method Title (line 13) | get Title(){return Ma} method Tooltip (line 13) | get Tooltip(){return Ba} function e (line 13) | function e(){} function s (line 13) | function s(t){return null==t} function n (line 13) | function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object... function o (line 13) | function o(t){return null!==t&&"[object Object]"===Object.prototype.toSt... function a (line 13) | function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(... function r (line 13) | function r(t,e){return a(t)?t:e} function l (line 13) | function l(t,e){return void 0===t?e:t} function d (line 13) | function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)} function u (line 13) | function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--... function f (line 13) | function f(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(... function g (line 13) | function g(t){if(n(t))return t.map(g);if(o(t)){const e=Object.create(nul... function p (line 13) | function p(t){return-1===["__proto__","prototype","constructor"].indexOf... function m (line 13) | function m(t,e,i,s){if(!p(t))return;const n=e[t],a=i[t];o(n)&&o(a)?b(n,a... function b (line 13) | function b(t,e,i){const s=n(e)?e:[e],a=s.length;if(!o(t))return t;const ... function x (line 13) | function x(t,e){return b(t,e,{merger:_})} function _ (line 13) | function _(t,e,i){if(!p(t))return;const s=e[t],n=i[t];o(s)&&o(n)?x(s,n):... function v (line 13) | function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s... function M (line 13) | function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{... function w (line 13) | function w(t){return t.charAt(0).toUpperCase()+t.slice(1)} function D (line 13) | function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"=... function V (line 13) | function V(t,e,i){return Math.abs(t-e)=t} function j (line 13) | function j(t,e,i){let s,n,o;for(s=0,n=t.length;s=Math.min(e,i)-s&&t<=Math.max(e,i)+s} function et (line 13) | function et(t,e,i){i=i||(i=>t[i]1;)s... function nt (line 13) | function nt(t,e,i){let s=0,n=t.length;for(;ss&&t[... function at (line 13) | function at(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineP... function rt (line 13) | function rt(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s... function lt (line 13) | function lt(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)} function ct (line 13) | function ct(t,e){let i=[],s=!1;return function(...n){i=n,s||(s=!0,ht.cal... function dt (line 13) | function dt(t,e){let i;return function(...s){return e?(clearTimeout(i),i... function pt (line 13) | function pt(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iSca... function mt (line 13) | function mt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,x... class bt (line 13) | class bt{constructor(){this._request=null,this._charts=new Map,this._run... method constructor (line 13) | constructor(){this._request=null,this._charts=new Map,this._running=!1... method _notify (line 13) | _notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({... method _refresh (line 13) | _refresh(){this._request||(this._running=!0,this._request=ht.call(wind... method _update (line 13) | _update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.runn... method _getAnims (line 13) | _getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running... method listen (line 13) | listen(t,e,i){this._getAnims(t).listeners[e].push(i)} method add (line 13) | add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)} method has (line 13) | has(t){return this._getAnims(t).items.length>0} method start (line 13) | start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now... method running (line 13) | running(t){if(!this._running)return!1;const e=this._charts.get(t);retu... method stop (line 13) | stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;cons... method remove (line 13) | remove(t){return this._charts.delete(t)} function _t (line 19) | function _t(t){return t+.5|0} function vt (line 19) | function vt(t){return yt(_t(2.55*t),0,255)} function Mt (line 19) | function Mt(t){return yt(_t(255*t),0,255)} function wt (line 19) | function wt(t){return yt(_t(t/2.55)/100,0,1)} function kt (line 19) | function kt(t){return yt(_t(100*t),0,100)} function At (line 19) | function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;re... function Lt (line 19) | function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Ma... function Et (line 19) | function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4... function Rt (line 19) | function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i... function It (line 19) | function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=M... function zt (line 19) | function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s))... function Ft (line 19) | function Ft(t,e,i){return zt(Lt,t,e,i)} function Vt (line 19) | function Vt(t){return(t%360+360)%360} function Bt (line 19) | function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=... function jt (line 19) | function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Nt),i=Object.... function Xt (line 19) | function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*... function qt (line 19) | function qt(t,e){return t?Object.assign(e||{},t):t} function Kt (line 19) | function Kt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.lengt... function Gt (line 19) | function Gt(t){return"r"===t.charAt(0)?function(t){const e=$t.exec(t);le... class Zt (line 19) | class Zt{constructor(t){if(t instanceof Zt)return t;const e=typeof t;let... method constructor (line 19) | constructor(t){if(t instanceof Zt)return t;const e=typeof t;let i;var ... method valid (line 19) | get valid(){return this._valid} method rgb (line 19) | get rgb(){var t=qt(this._rgb);return t&&(t.a=wt(t.a)),t} method rgb (line 19) | set rgb(t){this._rgb=Kt(t)} method rgbString (line 19) | rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, $... method hexString (line 19) | hexString(){return this._valid?At(this._rgb):void 0} method hslString (line 19) | hslString(){return this._valid?function(t){if(!t)return;const e=It(t),... method mix (line 19) | mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o... method interpolate (line 19) | interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Ut(wt(t.... method clone (line 19) | clone(){return new Zt(this.rgb)} method alpha (line 19) | alpha(t){return this._rgb.a=Mt(t),this} method clearer (line 19) | clearer(t){return this._rgb.a*=1-t,this} method greyscale (line 19) | greyscale(){const t=this._rgb,e=_t(.3*t.r+.59*t.g+.11*t.b);return t.r=... method opaquer (line 19) | opaquer(t){return this._rgb.a*=1+t,this} method negate (line 19) | negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,... method lighten (line 19) | lighten(t){return Xt(this._rgb,2,t),this} method darken (line 19) | darken(t){return Xt(this._rgb,2,-t),this} method saturate (line 19) | saturate(t){return Xt(this._rgb,1,t),this} method desaturate (line 19) | desaturate(t){return Xt(this._rgb,1,-t),this} method rotate (line 19) | rotate(t){return function(t,e){var i=It(t);i[0]=Vt(i[0]+e),i=Ft(i),t.r... function Jt (line 19) | function Jt(t){if(t&&"object"==typeof t){const e=t.toString();return"[ob... function Qt (line 19) | function Qt(t){return Jt(t)?t:new Zt(t)} function te (line 19) | function te(t){return Jt(t)?t:new Zt(t).saturate(.5).darken(.1).hexStrin... function ne (line 19) | function ne(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify... method numeric (line 19) | numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let ... method logarithmic (line 19) | logarithmic(t,e,i){if(0===t)return"0";const s=i[e].significand||t/Math.p... function he (line 19) | function he(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.len... function ce (line 19) | function ce(t,e,i){return"string"==typeof e?b(he(t,e),i):b(he(t,""),e)} class de (line 19) | class de{constructor(t,e){this.animation=void 0,this.backgroundColor="rg... method constructor (line 19) | constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,... method set (line 19) | set(t,e){return ce(this,t,e)} method get (line 19) | get(t){return he(this,t)} method describe (line 19) | describe(t,e){return ce(le,t,e)} method override (line 19) | override(t,e){return ce(re,t,e)} method route (line 19) | route(t,e,i,s){const n=he(this,t),a=he(this,i),r="_"+e;Object.definePr... method apply (line 19) | apply(t){t.forEach((t=>t(this)))} function fe (line 19) | function fe(){return"undefined"!=typeof window&&"undefined"!=typeof docu... function ge (line 19) | function ge(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.to... function pe (line 19) | function pe(t,e,i){let s;return"string"==typeof t?(s=parseInt(t,10),-1!=... function be (line 19) | function be(t,e){return me(t).getPropertyValue(e)} function _e (line 19) | function _e(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=... function ve (line 19) | function ve(t,e){if("native"in t)return t;const{canvas:i,currentDevicePi... function we (line 19) | function we(t,e,i,s){const n=me(t),o=_e(n,"margin"),a=pe(n.maxWidth,t,"c... function ke (line 19) | function ke(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.... method passive (line 19) | get passive(){return t=!0,!1} function Pe (line 19) | function Pe(t,e){const i=be(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);retur... function De (line 19) | function De(t){return!t||s(t.size)||s(t.family)?null:(t.style?t.style+" ... function Ce (line 19) | function Ce(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).wid... function Oe (line 19) | function Oe(t,e,i,s){let o=(s=s||{}).data=s.data||{},a=s.garbageCollect=... function Ae (line 19) | function Ae(t,e,i){const s=t.currentDevicePixelRatio,n=0!==i?Math.max(i/... function Te (line 19) | function Te(t,e){(e=e||t.getContext("2d")).save(),e.resetTransform(),e.c... function Le (line 19) | function Le(t,e,i,s){Ee(t,e,i,s,null)} function Ee (line 19) | function Ee(t,e,i,s,n){let o,a,r,l,h,c,d,u;const f=e.pointStyle,g=e.rota... function Re (line 19) | function Re(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.x0&&""!==r... function He (line 19) | function He(t,e){const{x:i,y:s,w:n,h:o,radius:a}=e;t.arc(i+a.topLeft,s+a... function je (line 19) | function je(t,e=[""],i,s,n=(()=>t[0])){const o=i||t;void 0===s&&(s=ti("_... function $e (line 19) | function $e(t,e,i,s){const a={_cacheable:!1,_proxy:t,_context:e,_subProx... function Ye (line 19) | function Ye(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scri... function qe (line 19) | function qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t... function Ke (line 19) | function Ke(t,e,i){return S(t)?t(e,i):t} function Ze (line 19) | function Ze(t,e,i,s,n){for(const o of e){const e=Ge(i,o);if(e){t.add(e);... function Je (line 19) | function Je(t,e,i,s){const a=e._rootScopes,r=Ke(e._fallback,i,s),l=[...t... function Qe (line 19) | function Qe(t,e,i,s,n){for(;i;)i=Ze(t,e,i,s,n);return i} function ti (line 19) | function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if(void 0... function ei (line 19) | function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=ne... function ii (line 19) | function ii(t,e,i,s){const{iScale:n}=t,{key:o="r"}=this._parsing,a=new A... function ai (line 19) | function ai(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=q(o,n),l=q(a,... function ri (line 19) | function ri(t,e="x"){const i=oi(e),s=t.length,n=Array(s).fill(0),o=Array... function li (line 19) | function li(t,e,i){return Math.max(Math.min(t,i),e)} function hi (line 19) | function hi(t,e,i,s,n){let o,a,r,l;if(e.spanGaps&&(t=t.filter((t=>!t.ski... method easeInOutElastic (line 19) | easeInOutElastic(t){const e=.1125;return ci(t)?t:t<.5?.5*di(2*t,e,.45):.... method easeInBack (line 19) | easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)} method easeOutBack (line 19) | easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1} method easeInOutBack (line 19) | easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*... method easeOutBounce (line 19) | easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.... function gi (line 19) | function gi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}} function pi (line 19) | function pi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.... function mi (line 19) | function mi(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a... function _i (line 19) | function _i(t,e){const i=(""+t).match(bi);if(!i||"normal"===i[1])return ... function vi (line 19) | function vi(t,e){const i={},s=o(e),n=s?Object.keys(e):e,a=o(t)?s?i=>l(t[... function Mi (line 19) | function Mi(t){return vi(t,{top:"y",right:"x",bottom:"y",left:"x"})} function wi (line 19) | function wi(t){return vi(t,["topLeft","topRight","bottomLeft","bottomRig... function ki (line 19) | function ki(t){const e=Mi(t);return e.width=e.left+e.right,e.height=e.to... function Si (line 19) | function Si(t,e){t=t||{},e=e||ue.font;let i=l(t.size,e.size);"string"==t... function Pi (line 19) | function Pi(t,e,i,s){let o,a,r,l=!0;for(o=0,a=t.length;oi&&0===t... function Ci (line 19) | function Ci(t,e){return Object.assign(Object.create(t),e)} function Oi (line 19) | function Oi(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t... function Ai (line 19) | function Ai(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.ge... function Ti (line 19) | function Ti(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.... function Li (line 19) | function Li(t){return"angle"===t?{between:Z,compare:K,normalize:G}:{betw... function Ei (line 19) | function Ei({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end... function Ri (line 19) | function Ri(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e... function Ii (line 19) | function Ii(t,e){const i=[],s=t.segments;for(let n=0;nt.pos===e))} function Gi (line 19) | function Gi(t,e){return t.filter((t=>-1===qi.indexOf(t.pos)&&t.box.axis=... function Zi (line 19) | function Zi(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.w... function Ji (line 19) | function Ji(t,e){const i=function(t){const e={};for(const i of t){const{... function Qi (line 19) | function Qi(t,e,i,s){return Math.max(t[i],e[i])+Math.max(t[s],e[s])} function ts (line 19) | function ts(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.le... function es (line 19) | function es(t,e,i,s){const{pos:n,box:a}=i,r=t.maxPadding;if(!o(n)){i.siz... function is (line 19) | function is(t,e){const i=e.maxPadding;function s(t){const s={left:0,top:... function ss (line 19) | function ss(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;o... function ns (line 19) | function ns(t,e,i,s,n){t.top=i,t.left=e,t.right=e+s,t.bottom=i+n,t.width... function os (line 19) | function os(t,e,i,s){const n=i.padding;let{x:o,y:a}=e;for(const r of t){... method addBox (line 19) | addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e... method removeBox (line 19) | removeBox(t,e){const i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.spl... method configure (line 19) | configure(t,e,i){e.fullSize=i.fullSize,e.position=i.position,e.weight=i.... method update (line 19) | update(t,e,i,s){if(!t)return;const n=ki(t.options.layout.padding),o=Math... class rs (line 19) | class rs{acquireContext(t,e){}releaseContext(t){return!1}addEventListene... method acquireContext (line 19) | acquireContext(t,e){} method releaseContext (line 19) | releaseContext(t){return!1} method addEventListener (line 19) | addEventListener(t,e,i){} method removeEventListener (line 19) | removeEventListener(t,e,i){} method getDevicePixelRatio (line 19) | getDevicePixelRatio(){return 1} method getMaximumSize (line 19) | getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,... method isAttached (line 19) | isAttached(t){return!0} method updateConfig (line 19) | updateConfig(t){} class ls (line 19) | class ls extends rs{acquireContext(t){return t&&t.getContext&&t.getConte... method acquireContext (line 19) | acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null} method updateConfig (line 19) | updateConfig(t){t.options.animation=!1} function fs (line 19) | function fs(t,e,i){t.canvas.removeEventListener(e,i,us)} function gs (line 19) | function gs(t,e){for(const i of t)if(i===e||i.contains(e))return!0} function ps (line 19) | function ps(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1... function ms (line 19) | function ms(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1... function _s (line 19) | function _s(){const t=window.devicePixelRatio;t!==xs&&(xs=t,bs.forEach((... function ys (line 19) | function ys(t,e,i){const s=t.canvas,n=s&&ge(s);if(!n)return;const o=ct((... function vs (line 19) | function vs(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){bs.delete... function Ms (line 19) | function Ms(t,e,i){const s=t.canvas,n=ct((e=>{null!==t.ctx&&i(function(t... class ws (line 19) | class ws extends rs{acquireContext(t,e){const i=t&&t.getContext&&t.getCo... method acquireContext (line 19) | acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return... method releaseContext (line 19) | releaseContext(t){const e=t.canvas;if(!e[hs])return!1;const i=e[hs].in... method addEventListener (line 19) | addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxi... method removeEventListener (line 19) | removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if... method getDevicePixelRatio (line 19) | getDevicePixelRatio(){return window.devicePixelRatio} method getMaximumSize (line 19) | getMaximumSize(t,e,i,s){return we(t,e,i,s)} method isAttached (line 19) | isAttached(t){const e=ge(t);return!(!e||!e.isConnected)} function ks (line 19) | function ks(t){return!fe()||"undefined"!=typeof OffscreenCanvas&&t insta... method color (line 19) | color(t,e,i){const s=Qt(t||Ps),n=s.valid&&Qt(e||Ps);return n&&n.valid?n.... class Cs (line 19) | class Cs{constructor(t,e,i,s){const n=e[i];s=Pi([t.to,s,n,t.from]);const... method constructor (line 19) | constructor(t,e,i,s){const n=e[i];s=Pi([t.to,s,n,t.from]);const o=Pi([... method active (line 19) | active(){return this._active} method update (line 19) | update(t,e,i){if(this._active){this._notify(!1);const s=this._target[t... method cancel (line 19) | cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._no... method tick (line 19) | tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._fr... method wait (line 19) | wait(){const t=this._promises||(this._promises=[]);return new Promise(... method _notify (line 19) | _notify(t){const e=t?"res":"rej",i=this._promises||[];for(let t=0;ti[t].... function Vs (line 19) | function Vs(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if... class Ns (line 19) | class Ns{static defaults={};static datasetElementType=null;static dataEl... method constructor (line 19) | constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cache... method initialize (line 19) | initialize(){const t=this._cachedMeta;this.configure(),this.linkScales... method updateIndex (line 19) | updateIndex(t){this.index!==t&&Vs(this._cachedMeta),this.index=t} method linkScales (line 19) | linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset()... method getDataset (line 19) | getDataset(){return this.chart.data.datasets[this.index]} method getMeta (line 19) | getMeta(){return this.chart.getDatasetMeta(this.index)} method getScaleForId (line 19) | getScaleForId(t){return this.chart.scales[t]} method _getOtherScale (line 19) | _getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScal... method reset (line 19) | reset(){this._update("reset")} method _destroy (line 19) | _destroy(){const t=this._cachedMeta;this._data&&rt(this._data,this),t.... method _dataCheck (line 19) | _dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._d... method addElements (line 19) | addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetE... method buildOrUpdateElements (line 19) | buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();... method configure (line 19) | configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type)... method parse (line 19) | parse(t,e){const{_cachedMeta:i,_data:s}=this,{iScale:a,_stacked:r}=i,l... method parsePrimitiveData (line 19) | parsePrimitiveData(t,e,i,s){const{iScale:n,vScale:o}=t,a=n.axis,r=o.ax... method parseArrayData (line 19) | parseArrayData(t,e,i,s){const{xScale:n,yScale:o}=t,a=new Array(s);let ... method parseObjectData (line 19) | parseObjectData(t,e,i,s){const{xScale:n,yScale:o}=t,{xAxisKey:a="x",yA... method getParsed (line 19) | getParsed(t){return this._cachedMeta._parsed[t]} method getDataElement (line 19) | getDataElement(t){return this._cachedMeta.data[t]} method applyStack (line 19) | applyStack(t,e,i){const s=this.chart,n=this._cachedMeta,o=e[t.axis];re... method updateRangeFromParsed (line 19) | updateRangeFromParsed(t,e,i,s){const n=i[e.axis];let o=null===n?NaN:n;... method getMinMax (line 19) | getMinMax(t,e){const i=this._cachedMeta,s=i._parsed,n=i._sorted&&t===i... method getAllParsedValues (line 19) | getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;... method getMaxOverflow (line 19) | getMaxOverflow(){return!1} method getLabelAndValue (line 19) | getLabelAndValue(t){const e=this._cachedMeta,i=e.iScale,s=e.vScale,n=t... method _update (line 19) | _update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=... method update (line 19) | update(t){} method draw (line 19) | draw(){const t=this._ctx,e=this.chart,i=this._cachedMeta,s=i.data||[],... method getStyle (line 19) | getStyle(t,e){const i=e?"active":"default";return void 0===t&&this._ca... method getContext (line 19) | getContext(t,e,i){const s=this.getDataset();let n;if(t>=0&&te.length-1?null:th... method getPixelForDecimal (line 19) | getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._start... method getDecimalForPixel (line 19) | getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return... method getBasePixel (line 19) | getBasePixel(){return this.getPixelForValue(this.getBaseValue())} method getBaseValue (line 19) | getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0} method getContext (line 19) | getContext(t){const e=this.ticks||[];if(t>=0&&t{const s=i||this._getRegistryForType(e... method _exec (line 19) | _exec(t,e,i){const s=w(t);d(i["before"+s],[],i),e[t](i),d(i["after"+s]... method _getRegistryForType (line 19) | _getRegistryForType(t){for(let e=0;e[[`datasets.${t}`,""]]))} method datasetAnimationScopeKeys (line 19) | datasetAnimationScopeKeys(t,e){return pn(`${t}.transition.${e}`,(()=>[... method datasetElementScopeKeys (line 19) | datasetElementScopeKeys(t,e){return pn(`${t}-${e}`,(()=>[[`datasets.${... method pluginScopeKeys (line 19) | pluginScopeKeys(t){const e=t.id;return pn(`${this.type}-plugin-${e}`,(... method _cachedScopes (line 19) | _cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!... method getOptionScopes (line 19) | getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScop... method chartOptionScopes (line 19) | chartOptionScopes(){const{options:t,type:e}=this;return[t,re[e]||{},ue... method resolveNamedOptions (line 19) | resolveNamedOptions(t,e,i,s=[""]){const o={$shared:!0},{resolver:a,sub... method createResolver (line 19) | createResolver(t,e,i=[""],s){const{resolver:n}=xn(this._resolverCache,... function xn (line 19) | function xn(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.jo... function vn (line 19) | function vn(t,e){return"top"===t||"bottom"===t||-1===yn.indexOf(t)&&"x"=... function Mn (line 19) | function Mn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-... function wn (line 19) | function wn(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("af... function kn (line 19) | function kn(t){const e=t.chart,i=e.options.animation;d(i&&i.onProgress,[... function Sn (line 19) | function Sn(t){return fe()&&"string"==typeof t?t=document.getElementById... function Cn (line 19) | function Cn(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;i... function On (line 19) | function On(t,e,i){return t.options.clip?t[i]:e[i]} class An (line 19) | class An{static defaults=ue;static instances=Pn;static overrides=re;stat... method register (line 19) | static register(...t){en.add(...t),Tn()} method unregister (line 19) | static unregister(...t){en.remove(...t),Tn()} method constructor (line 19) | constructor(t,e){const s=this.config=new bn(e),n=Sn(t),o=Dn(n);if(o)th... method aspectRatio (line 19) | get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},... method data (line 19) | get data(){return this.config.data} method data (line 19) | set data(t){this.config.data=t} method options (line 19) | get options(){return this._options} method options (line 19) | set options(t){this.config.options=t} method registry (line 19) | get registry(){return en} method _initialize (line 19) | _initialize(){return this.notifyPlugins("beforeInit"),this.options.res... method clear (line 19) | clear(){return Te(this.canvas,this.ctx),this} method stop (line 19) | stop(){return xt.stop(this),this} method resize (line 19) | resize(t,e){xt.running(this)?this._resizeBeforeDraw={width:t,height:e}... method _resize (line 19) | _resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRati... method ensureScalesHaveIDs (line 19) | ensureScalesHaveIDs(){u(this.options.scales||{},((t,e)=>{t.id=e}))} method buildOrUpdateScales (line 19) | buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=... method _updateMetasets (line 19) | _updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i... method _removeUnreferencedMetasets (line 19) | _removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=thi... method buildOrUpdateControllers (line 19) | buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for... method _resetElements (line 19) | _resetElements(){u(this.data.datasets,((t,e)=>{this.getDatasetMeta(e).... method reset (line 19) | reset(){this._resetElements(),this.notifyPlugins("reset")} method update (line 19) | update(t){const e=this.config;e.update();const i=this._options=e.creat... method _updateScales (line 19) | _updateScales(){u(this.scales,(t=>{as.removeBox(this,t)})),this.ensure... method _checkEventBindings (line 19) | _checkEventBindings(){const t=this.options,e=new Set(Object.keys(this.... method _updateHiddenIndices (line 19) | _updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniform... method _getUniformDataChanges (line 19) | _getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)re... method _updateLayout (line 19) | _updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable... method _updateDatasets (line 19) | _updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{... method _updateDataset (line 19) | _updateDataset(t,e){const i=this.getDatasetMeta(t),s={meta:i,index:t,m... method render (line 19) | render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(xt.... method draw (line 19) | draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._... method _getSortedDatasetMetas (line 19) | _getSortedDatasetMetas(t){const e=this._sortedMetasets,i=[];let s,n;fo... method getSortedVisibleDatasetMetas (line 19) | getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)} method _drawDatasets (line 19) | _drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cance... method _drawDataset (line 19) | _drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,n=function(t,... method isPointInArea (line 19) | isPointInArea(t){return Re(t,this.chartArea,this._minPadding)} method getElementsAtEventForMode (line 19) | getElementsAtEventForMode(t,e,i,s){const n=Xi.modes[e];return"function... method getDatasetMeta (line 19) | getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s... method getContext (line 19) | getContext(){return this.$context||(this.$context=Ci(null,{chart:this,... method getVisibleDatasetCount (line 19) | getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().le... method isDatasetVisible (line 19) | isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const... method setDatasetVisibility (line 19) | setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e} method toggleDataVisibility (line 19) | toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]} method getDataVisibility (line 19) | getDataVisibility(t){return!this._hiddenIndices[t]} method _updateVisibility (line 19) | _updateVisibility(t,e,i){const s=i?"show":"hide",n=this.getDatasetMeta... method hide (line 19) | hide(t,e){this._updateVisibility(t,e,!1)} method show (line 19) | show(t,e){this._updateVisibility(t,e,!0)} method _destroyDatasetMeta (line 19) | _destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.co... method _stop (line 19) | _stop(){let t,e;for(this.stop(),xt.remove(this),t=0,e=this.data.datase... method destroy (line 19) | destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:e}=th... method toBase64Image (line 19) | toBase64Image(...t){return this.canvas.toDataURL(...t)} method bindEvents (line 19) | bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindRe... method bindUserEvents (line 19) | bindUserEvents(){const t=this._listeners,e=this.platform,i=(i,s)=>{e.a... method bindResponsiveEvents (line 19) | bindResponsiveEvents(){this._responsiveListeners||(this._responsiveLis... method unbindEvents (line 19) | unbindEvents(){u(this._listeners,((t,e)=>{this.platform.removeEventLis... method updateHoverStyle (line 19) | updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("data... method getActiveElements (line 19) | getActiveElements(){return this._active||[]} method setActiveElements (line 19) | setActiveElements(t){const e=this._active||[],i=t.map((({datasetIndex:... method notifyPlugins (line 19) | notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)} method isPluginEnabled (line 19) | isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin... method _updateHoverStyles (line 19) | _updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter... method _eventHandler (line 19) | _eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea... method _handleEvent (line 19) | _handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._get... method _getActiveElements (line 19) | _getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)retu... function Tn (line 19) | function Tn(){return u(An.instances,(t=>t._plugins.invalidate()))} function Ln (line 19) | function Ln(){throw new Error("This method is not implemented: Check tha... class En (line 19) | class En{static override(t){Object.assign(En.prototype,t)}options;constr... method override (line 19) | static override(t){Object.assign(En.prototype,t)} method constructor (line 19) | constructor(t){this.options=t||{}} method init (line 19) | init(){} method formats (line 19) | formats(){return Ln()} method parse (line 19) | parse(){return Ln()} method format (line 19) | format(){return Ln()} method add (line 19) | add(){return Ln()} method diff (line 19) | diff(){return Ln()} method startOf (line 19) | startOf(){return Ln()} method endOf (line 19) | endOf(){return Ln()} function In (line 19) | function In(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const... function zn (line 19) | function zn(t,e,i,s){return n(t)?function(t,e,i,s){const n=i.parse(t[0],... function Fn (line 19) | function Fn(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o... function Vn (line 19) | function Vn(t){return t&&void 0!==t.barStart&&void 0!==t.barEnd} function Bn (line 19) | function Bn(t,e,i,s){let n=e.borderSkipped;const o={};if(!n)return void(... function Wn (line 19) | function Wn(t,e,i,s){var n,o,a;return s?(a=i,t=Nn(t=(n=t)===(o=e)?a:n===... function Nn (line 19) | function Nn(t,e,i){return"start"===t?e:"end"===t?i:t} function Hn (line 19) | function Hn(t,{inflateAmount:e},i){t.inflateAmount="auto"===e?1===i?.33:... class jn (line 19) | class jn extends Ns{static id="doughnut";static defaults={datasetElement... method generateLabels (line 19) | generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length... method onClick (line 19) | onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()} method constructor (line 19) | constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadi... method linkScales (line 19) | linkScales(){} method parse (line 19) | parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===t... method _getRotation (line 19) | _getRotation(){return $(this.options.rotation-90)} method _getCircumference (line 19) | _getCircumference(){return $(this.options.circumference)} method _getRotationExtents (line 19) | _getRotationExtents(){let t=O,e=-O;for(let i=0;i0&&!... method getLabelAndValue (line 19) | getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.lab... method getMaxBorderWidth (line 19) | getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)fo... method getMaxOffset (line 19) | getMaxOffset(t){let e=0;for(let i=0,s=t.length;i("... function po (line 19) | function po(t){const e=this.getLabels();return t>=0&&t=0&&t=e... function Wo (line 19) | function Wo(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a=t[r].pos&&e<=t[l].... method constructor (line 19) | constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this.... method init (line 19) | init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();... method parse (line 19) | parse(t,e){if(s(t))return null;const i=this.getLabels();return((t,e)=>nu... method determineDataLimits (line 19) | determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBound... method buildTicks (line 19) | buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let ... method getLabelForValue (line 19) | getLabelForValue(t){return po.call(this,t)} method configure (line 19) | configure(){super.configure(),this.isHorizontal()||(this._reversePixels=... method getPixelForValue (line 19) | getPixelForValue(t){return"number"!=typeof t&&(t=this.parse(t)),null===t... method getPixelForTick (line 19) | getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this... method getValueForPixel (line 19) | getValueForPixel(t){return Math.round(this._startValue+this.getDecimalFo... method getBasePixel (line 19) | getBasePixel(){return this.bottom} method constructor (line 19) | constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRa... method initOffsets (line 19) | initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.b... method buildLookupTable (line 19) | buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(... method _generate (line 19) | _generate(){const t=this.min,e=this.max;let i=super.getDataTimestamps();... method _getTimestampsForTable (line 19) | _getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;... method getDecimalForValue (line 19) | getDecimalForValue(t){return(Ho(this._table,t)-this._minPos)/this._table... method getValueForPixel (line 19) | getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e... function Uo (line 19) | function Uo(t){return $o[t%$o.length]} function Xo (line 19) | function Xo(t){return Yo[t%Yo.length]} function qo (line 19) | function qo(t){let e=0;return(i,s)=>{const n=t.getDatasetMeta(s).control... function Ko (line 19) | function Ko(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColo... method beforeLayout (line 19) | beforeLayout(t,e,i){if(!i.enabled)return;const{data:{datasets:s},options... function Zo (line 19) | function Zo(t){if(t._decimated){const e=t._data;delete t._decimated,dele... function Jo (line 19) | function Jo(t){t.data.datasets.forEach((t=>{Zo(t)}))} method destroy (line 19) | destroy(t){Jo(t)} function ta (line 19) | function ta(t,e,i,s){if(s)return;let n=e[t],o=i[t];return"angle"===t&&(n... function ea (line 19) | function ea(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y... function ia (line 19) | function ia(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0} function sa (line 19) | function sa(t,e){let i=[],s=!1;return n(t)?(s=!0,i=t):i=function(t,e){co... function na (line 19) | function na(t){return t&&!1!==t.fill} function oa (line 19) | function oa(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(... function aa (line 19) | function aa(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=... function ra (line 19) | function ra(t,e,i){const s=[];for(let n=0;n0){const e=t[0],i=e.chart.data.labels,s=i?i.length:... method label (line 19) | label(t){if(this&&this.options&&"dataset"===this.options.mode)return t.l... method labelColor (line 19) | labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.... method labelTextColor (line 19) | labelTextColor(){return this.options.bodyColor} method labelPointStyle (line 19) | labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex).contro... function Fa (line 19) | function Fa(t,e,i,s){const n=t[e].call(i,s);return void 0===n?za[e].call... class Va (line 19) | class Va extends Hs{static positioners=Sa;constructor(t){super(),this.op... method constructor (line 19) | constructor(t){super(),this.opacity=0,this._active=[],this._eventPosit... method initialize (line 19) | initialize(t){this.options=t,this._cachedAnimations=void 0,this.$conte... method _resolveAnimations (line 19) | _resolveAnimations(){const t=this._cachedAnimations;if(t)return t;cons... method getContext (line 19) | getContext(){return this.$context||(this.$context=(t=this.chart.getCon... method getTitle (line 19) | getTitle(t,e){const{callbacks:i}=e,s=Fa(i,"beforeTitle",this,t),n=Fa(i... method getBeforeBody (line 19) | getBeforeBody(t,e){return Ra(Fa(e.callbacks,"beforeBody",this,t))} method getBody (line 19) | getBody(t,e){const{callbacks:i}=e,s=[];return u(t,(t=>{const e={before... method getAfterBody (line 19) | getAfterBody(t,e){return Ra(Fa(e.callbacks,"afterBody",this,t))} method getFooter (line 19) | getFooter(t,e){const{callbacks:i}=e,s=Fa(i,"beforeFooter",this,t),n=Fa... method _createItems (line 19) | _createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];... method update (line 19) | update(t,e){const i=this.options.setContext(this.getContext()),s=this.... method drawCaret (line 19) | drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,... method getCaretPosition (line 19) | getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cor... method drawTitle (line 19) | drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l... method _drawColorBox (line 19) | _drawColorBox(t,e,i,s,n){const a=this.labelColors[i],r=this.labelPoint... method drawBody (line 19) | drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayC... method drawFooter (line 19) | drawFooter(t,e,i){const s=this.footer,n=s.length;let o,a;if(n){const r... method drawBackground (line 19) | drawBackground(t,e,i,s){const{xAlign:n,yAlign:o}=this,{x:a,y:r}=t,{wid... method _updateAnimationTarget (line 19) | _updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i... method _willRender (line 19) | _willRender(){return!!this.opacity} method draw (line 19) | draw(t){const e=this.options.setContext(this.getContext());let i=this.... method getActiveElements (line 19) | getActiveElements(){return this._active||[]} method setActiveElements (line 19) | setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,... method handleEvent (line 19) | handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ig... method _getActiveElements (line 19) | _getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.typ... method _positionChanged (line 19) | _positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Sa[n.p... method afterInit (line 19) | afterInit(t,e,i){i&&(t.tooltip=new Va({chart:t,options:i}))} method beforeUpdate (line 19) | beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)} method reset (line 19) | reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)} method afterDraw (line 19) | afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e... method afterEvent (line 19) | afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.e... FILE: scripts/notifications.js function openNotificationsSettings (line 1) | function openNotificationsSettings(type) { function makeFetchCall (line 22) | function makeFetchCall(url, data, button) { function saveNotifications (line 47) | function saveNotifications() { function saveNotificationsEmailButton (line 58) | function saveNotificationsEmailButton() { function testNotificationEmailButton (line 85) | function testNotificationEmailButton() { function saveNotificationsWebhookButton (line 108) | function saveNotificationsWebhookButton() { function testNotificationsWebhookButton (line 131) | function testNotificationsWebhookButton() { function saveNotificationsTelegramButton (line 156) | function saveNotificationsTelegramButton() { function testNotificationsTelegramButton (line 173) | function testNotificationsTelegramButton() { function testNotificationsPushPlusButton (line 190) | function testNotificationsPushPlusButton() { function saveNotificationsPushPlusButton (line 205) | function saveNotificationsPushPlusButton() { function testNotificationsMattermostButton (line 220) | function testNotificationsMattermostButton() { function saveNotificationsMattermostButton (line 239) | function saveNotificationsMattermostButton() { function saveNotificationsGotifyButton (line 258) | function saveNotificationsGotifyButton() { function testNotificationsGotifyButton (line 278) | function testNotificationsGotifyButton() { function saveNotificationsPushoverButton (line 297) | function saveNotificationsPushoverButton() { function testNotificationsPushoverButton (line 314) | function testNotificationsPushoverButton() { function saveNotificationsDiscordButton (line 331) | function saveNotificationsDiscordButton() { function testNotificationsDiscordButton (line 350) | function testNotificationsDiscordButton() { function testNotificationsNtfyButton (line 369) | function testNotificationsNtfyButton() { function saveNotificationsNtfyButton (line 388) | function saveNotificationsNtfyButton() { function testNotificationsServerchanButton (line 409) | function testNotificationsServerchanButton() { function saveNotificationsServerchanButton (line 424) | function saveNotificationsServerchanButton() { FILE: scripts/profile.js function toggleAvatarSelect (line 45) | function toggleAvatarSelect() { function closeAvatarSelect (line 54) | function closeAvatarSelect() { function changeAvatar (line 67) | function changeAvatar(src) { function successfulUpload (line 71) | function successfulUpload(field, msg) { function deleteAvatar (line 91) | function deleteAvatar(path) { function enableTotp (line 117) | function enableTotp() { function openTotpPopup (line 150) | function openTotpPopup() { function closeTotpPopup (line 158) | function closeTotpPopup() { function submitTotp (line 170) | function submitTotp() { function copyBackupCodes (line 210) | function copyBackupCodes() { function downloadBackupCodes (line 223) | function downloadBackupCodes() { function closeTotpDisablePopup (line 238) | function closeTotpDisablePopup() { function disableTotp (line 243) | function disableTotp() { function submitDisableTotp (line 248) | function submitDisableTotp() { function regenerateApiKey (line 275) | function regenerateApiKey() { function exportAsJson (line 304) | function exportAsJson() { function exportAsCsv (line 327) | function exportAsCsv() { function deleteAccount (line 352) | function deleteAccount(userId) { FILE: scripts/registration.js function setCookie (line 1) | function setCookie(name, value, days) { function storeFormFieldValue (line 11) | function storeFormFieldValue(fieldId) { function storeFormFields (line 18) | function storeFormFields() { function restoreFormFieldValue (line 28) | function restoreFormFieldValue(fieldId) { function restoreFormFields (line 35) | function restoreFormFields() { function removeFromStorage (line 45) | function removeFromStorage() { function changeLanguage (line 55) | function changeLanguage(selectedLanguage) { function runDatabaseMigration (line 61) | function runDatabaseMigration() { function showErrorMessage (line 71) | function showErrorMessage(message) { function showSuccessMessage (line 102) | function showSuccessMessage(message) { function openRestoreDBFileSelect (line 134) | function openRestoreDBFileSelect() { function restoreDB (line 138) | function restoreDB() { function checkThemeNeedsUpdate (line 173) | function checkThemeNeedsUpdate() { function enableGoToLoginButton (line 185) | function enableGoToLoginButton() { FILE: scripts/settings.js function saveBudget (line 21) | function saveBudget() { function addMemberButton (line 53) | function addMemberButton(memberId) { function removeMember (line 126) | function removeMember(memberId) { function editMember (line 160) | function editMember(memberId) { function addCategoryButton (line 211) | function addCategoryButton(categoryId) { function removeCategory (line 285) | function removeCategory(categoryId) { function editCategory (line 319) | function editCategory(categoryId) { function addCurrencyButton (line 368) | function addCurrencyButton(currencyId) { function removeCurrency (line 452) | function removeCurrency(currencyId) { function editCurrency (line 485) | function editCurrency(currencyId) { function togglePayment (line 538) | function togglePayment(paymentId) { function renamePayment (line 608) | function renamePayment(paymentId, newName) { function handleFileSelect (line 653) | function handleFileSelect(event) { function setSearchButtonStatus (line 672) | function setSearchButtonStatus() { function searchPaymentIcon (line 685) | function searchPaymentIcon() { function displayImageResults (line 709) | function displayImageResults(imageSources) { function selectWebIcon (line 726) | function selectWebIcon(url) { function closeIconSearch (line 735) | function closeIconSearch() { function resetFormIcon (line 742) | function resetFormIcon() { function reloadPaymentMethods (line 748) | function reloadPaymentMethods() { function addPaymentMethod (line 759) | function addPaymentMethod() { function deletePaymentMethod (line 797) | function deletePaymentMethod(paymentId) { function savePaymentMethodsSorting (line 823) | function savePaymentMethodsSorting() { function addFixerKeyButton (line 886) | function addFixerKeyButton() { function storeSettingsOnDB (line 934) | function storeSettingsOnDB(endpoint, value) { function setShowMonthlyPrice (line 953) | function setShowMonthlyPrice() { function setConvertCurrency (line 960) | function setConvertCurrency() { function setRemoveBackground (line 967) | function setRemoveBackground() { function setHideDisabled (line 974) | function setHideDisabled() { function setDisabledToBottom (line 981) | function setDisabledToBottom() { function setShowOriginalPrice (line 988) | function setShowOriginalPrice() { function setMobileNavigation (line 995) | function setMobileNavigation() { function setShowSubscriptionProgress (line 1002) | function setShowSubscriptionProgress() { function saveCategorySorting (line 1009) | function saveCategorySorting() { function fetch_ai_models (line 1049) | function fetch_ai_models() { function toggleAiInputs (line 1083) | function toggleAiInputs() { function toggleAiApiKeyVisibility (line 1115) | function toggleAiApiKeyVisibility() { function saveAiSettingsButton (line 1132) | function saveAiSettingsButton() { function runAiRecommendations (line 1166) | function runAiRecommendations() { FILE: scripts/stats.js function loadGraph (line 1) | function loadGraph(container, dataPoints, currency, run) { function loadLineGraph (line 48) | function loadLineGraph(container, dataPoints, currency, run) { function closeSubMenus (line 93) | function closeSubMenus() { function toggleSubMenu (line 122) | function toggleSubMenu(subMenu) { function clearFilters (line 177) | function clearFilters() { FILE: scripts/subscriptions.js function toggleOpenSubscription (line 5) | function toggleOpenSubscription(subId) { function toggleSortOptions (line 10) | function toggleSortOptions() { function toggleNotificationDays (line 16) | function toggleNotificationDays() { function resetForm (line 22) | function resetForm() { function fillEditFormFields (line 54) | function fillEditFormFields(subscription) { function openEditSubscription (line 133) | function openEditSubscription(event, id) { function addSubscription (line 161) | function addSubscription() { function closeAddSubscription (line 173) | function closeAddSubscription() { function handleFileSelect (line 184) | function handleFileSelect(event) { function deleteSubscription (line 203) | function deleteSubscription(event, id) { function cloneSubscription (line 236) | function cloneSubscription(event, id) { function renewSubscription (line 269) | function renewSubscription(event, id) { function setSearchButtonStatus (line 302) | function setSearchButtonStatus() { function searchLogo (line 315) | function searchLogo() { function displayImageResults (line 339) | function displayImageResults(imageSources) { function selectWebLogo (line 356) | function selectWebLogo(url) { function closeLogoSearch (line 365) | function closeLogoSearch() { function fetchSubscriptions (line 372) | function fetchSubscriptions(id, event, initiator) { function setSortOption (line 423) | function setSortOption(sortOption) { function convertSvgToPng (line 442) | function convertSvgToPng(file, callback) { function dataURLtoFile (line 463) | function dataURLtoFile(dataurl, filename) { function submitFormData (line 477) | function submitFormData(formData, submitButton, endpoint) { function searchSubscriptions (line 543) | function searchSubscriptions() { function clearSearch (line 565) | function clearSearch() { function closeSubMenus (line 572) | function closeSubMenus() { function setSwipeElements (line 580) | function setSwipeElements() { function toggleSubMenu (line 666) | function toggleSubMenu(subMenu) { function toggleReplacementSub (line 676) | function toggleReplacementSub() { function clearFilters (line 760) | function clearFilters() { function expandActions (line 787) | function expandActions(event, subscriptionId) { function swipeHintAnimation (line 812) | function swipeHintAnimation() { function autoFillNextPaymentDate (line 836) | function autoFillNextPaymentDate(e) { function toISOStringWithTimezone (line 883) | function toISOStringWithTimezone(date) { FILE: scripts/theme.js function switchTheme (line 1) | function switchTheme() { function setDarkTheme (line 34) | function setDarkTheme(theme) { function setTheme (line 100) | function setTheme(themeColor) { function resetCustomColors (line 158) | function resetCustomColors() { function saveCustomColors (line 202) | function saveCustomColors() { function saveCustomCss (line 237) | function saveCustomCss() { FILE: service-worker.js constant STATIC_CACHE (line 1) | const STATIC_CACHE = 'static-cache-v1'; constant PAGES_CACHE (line 2) | const PAGES_CACHE = 'pages-cache-v1'; constant LOGOS_CACHE (line 3) | const LOGOS_CACHE = 'logos-cache-v1';