Skip to content

Commit

Permalink
Release build 5.10.0 [ci release]
Browse files Browse the repository at this point in the history
  • Loading branch information
shakyShane authored and github-actions[bot] committed Apr 9, 2024
1 parent 16c5229 commit b24ae2b
Show file tree
Hide file tree
Showing 45 changed files with 1,554 additions and 116 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ jobs:
os: [ ubuntu-20.04, windows-latest ]
steps:
- uses: actions/checkout@v2
- name: Use Node.js 18
- name: Use Node.js 20
uses: actions/setup-node@v1
with:
node-version: 18.x
node-version: 20.x
- uses: actions/cache@v2
with:
path: ~/.npm
Expand All @@ -45,10 +45,10 @@ jobs:
timeout-minutes: 10
steps:
- uses: actions/checkout@v2
- name: Use Node.js 18
- name: Use Node.js 20
uses: actions/setup-node@v1
with:
node-version: 18.x
node-version: 20.x
- uses: actions/cache@v2
with:
path: ~/.npm
Expand Down Expand Up @@ -94,10 +94,10 @@ jobs:
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/checkout@v2
- name: Use Node.js 18
- name: Use Node.js 20
uses: actions/setup-node@v1
with:
node-version: 18.x
node-version: 20.x
- name: Cache build outputs
id: docs-output
uses: actions/cache@v3
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
18
20
38 changes: 37 additions & 1 deletion Sources/ContentScopeScripts/dist/contentScope.js
Original file line number Diff line number Diff line change
Expand Up @@ -2168,6 +2168,42 @@
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
load(args) {
}
/**
* This is a wrapper around `this.messaging.notify` that applies the
* auto-generated types from the `src/types` folder. It's used
* to provide per-feature type information based on the schemas
* in `src/messages`
*
* @type {import("@duckduckgo/messaging").Messaging['notify']}
*/
notify(...args) {
const [name, params] = args;
this.messaging.notify(name, params);
}
/**
* This is a wrapper around `this.messaging.request` that applies the
* auto-generated types from the `src/types` folder. It's used
* to provide per-feature type information based on the schemas
* in `src/messages`
*
* @type {import("@duckduckgo/messaging").Messaging['request']}
*/
request(...args) {
const [name, params] = args;
return this.messaging.request(name, params);
}
/**
* This is a wrapper around `this.messaging.subscribe` that applies the
* auto-generated types from the `src/types` folder. It's used
* to provide per-feature type information based on the schemas
* in `src/messages`
*
* @type {import("@duckduckgo/messaging").Messaging['subscribe']}
*/
subscribe(...args) {
const [name, cb] = args;
return this.messaging.subscribe(name, cb);
}
/**
* @param {import('./content-scope-features.js').LoadArgs} args
*/
Expand Down Expand Up @@ -2416,7 +2452,7 @@
return Promise.reject(new DOMException("Share must be initiated by a user gesture", "InvalidStateError"));
}
const dataToSend = cleanShareData(data);
__privateSet(this, _activeShareRequest, this.messaging.request(MSG_WEB_SHARE, dataToSend));
__privateSet(this, _activeShareRequest, this.request(MSG_WEB_SHARE, dataToSend));
let resp;
try {
resp = await __privateGet(this, _activeShareRequest);
Expand Down
39 changes: 39 additions & 0 deletions Sources/ContentScopeScripts/dist/contentScopeIsolated.js
Original file line number Diff line number Diff line change
Expand Up @@ -2810,6 +2810,45 @@
load (args) {
}

/**
* This is a wrapper around `this.messaging.notify` that applies the
* auto-generated types from the `src/types` folder. It's used
* to provide per-feature type information based on the schemas
* in `src/messages`
*
* @type {import("@duckduckgo/messaging").Messaging['notify']}
*/
notify (...args) {
const [name, params] = args;
this.messaging.notify(name, params);
}

/**
* This is a wrapper around `this.messaging.request` that applies the
* auto-generated types from the `src/types` folder. It's used
* to provide per-feature type information based on the schemas
* in `src/messages`
*
* @type {import("@duckduckgo/messaging").Messaging['request']}
*/
request (...args) {
const [name, params] = args;
return this.messaging.request(name, params)
}

/**
* This is a wrapper around `this.messaging.subscribe` that applies the
* auto-generated types from the `src/types` folder. It's used
* to provide per-feature type information based on the schemas
* in `src/messages`
*
* @type {import("@duckduckgo/messaging").Messaging['subscribe']}
*/
subscribe (...args) {
const [name, cb] = args;
return this.messaging.subscribe(name, cb)
}

/**
* @param {import('./content-scope-features.js').LoadArgs} args
*/
Expand Down
38 changes: 37 additions & 1 deletion Sources/ContentScopeScripts/dist/pages/duckplayer/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1569,9 +1569,11 @@
* 2. If the video id is correctly formatted, it loads the YouTube video in the iframe, otherwise displays an error message
* @param {object} opts
* @param {string} opts.base
* @param {ImportMeta['env']} opts.env
*/
init: (opts) => {
VideoPlayer.loadVideoById();
VideoPlayer.autoFocusVideo(opts.env);
VideoPlayer.setTabTitle();
VideoPlayer.setClickListener(opts.base);
},
Expand Down Expand Up @@ -1688,6 +1690,39 @@
}
});
});
},
/**
* Wait for the video to load and then focus it
* @param {ImportMeta['env']} env
*/
autoFocusVideo: (env) => {
VideoPlayer.onIframeLoaded(() => {
const contentDocument = VideoPlayer.iframe().contentDocument;
if (!contentDocument)
return;
const maxAttempts = 1e3;
let attempt = 0;
function check() {
if (!contentDocument)
return;
if (attempt > maxAttempts)
return;
attempt += 1;
const video = (
/** @type {HTMLIFrameElement | null} */
contentDocument?.body.querySelector("#player video")
);
if (!video) {
requestAnimationFrame(check);
return;
}
video.focus();
if (env === "development") {
document.body.dataset.videoState = "loaded+focussed";
}
}
requestAnimationFrame(check);
});
}
};
var Comms = {
Expand Down Expand Up @@ -2125,7 +2160,8 @@
return;
}
VideoPlayer.init({
base: baseUrl("apple")
base: baseUrl("apple"),
env: "production"
});
Tooltip.init();
PlayOnYouTube.init({
Expand Down
38 changes: 37 additions & 1 deletion Sources/ContentScopeScripts/dist/pages/duckplayer/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -1255,9 +1255,11 @@
* 2. If the video id is correctly formatted, it loads the YouTube video in the iframe, otherwise displays an error message
* @param {object} opts
* @param {string} opts.base
* @param {ImportMeta['env']} opts.env
*/
init: (opts) => {
VideoPlayer.loadVideoById();
VideoPlayer.autoFocusVideo(opts.env);
VideoPlayer.setTabTitle();
VideoPlayer.setClickListener(opts.base);
},
Expand Down Expand Up @@ -1374,6 +1376,39 @@
}
});
});
},
/**
* Wait for the video to load and then focus it
* @param {ImportMeta['env']} env
*/
autoFocusVideo: (env) => {
VideoPlayer.onIframeLoaded(() => {
const contentDocument = VideoPlayer.iframe().contentDocument;
if (!contentDocument)
return;
const maxAttempts = 1e3;
let attempt = 0;
function check() {
if (!contentDocument)
return;
if (attempt > maxAttempts)
return;
attempt += 1;
const video = (
/** @type {HTMLIFrameElement | null} */
contentDocument?.body.querySelector("#player video")
);
if (!video) {
requestAnimationFrame(check);
return;
}
video.focus();
if (env === "development") {
document.body.dataset.videoState = "loaded+focussed";
}
}
requestAnimationFrame(check);
});
}
};
var Comms = {
Expand Down Expand Up @@ -1811,7 +1846,8 @@
return;
}
VideoPlayer.init({
base: baseUrl("apple")
base: baseUrl("apple"),
env: "production"
});
Tooltip.init();
PlayOnYouTube.init({
Expand Down
43 changes: 40 additions & 3 deletions build/android/contentScope.js
Original file line number Diff line number Diff line change
Expand Up @@ -3164,6 +3164,45 @@
load (args) {
}

/**
* This is a wrapper around `this.messaging.notify` that applies the
* auto-generated types from the `src/types` folder. It's used
* to provide per-feature type information based on the schemas
* in `src/messages`
*
* @type {import("@duckduckgo/messaging").Messaging['notify']}
*/
notify (...args) {
const [name, params] = args;
this.messaging.notify(name, params);
}

/**
* This is a wrapper around `this.messaging.request` that applies the
* auto-generated types from the `src/types` folder. It's used
* to provide per-feature type information based on the schemas
* in `src/messages`
*
* @type {import("@duckduckgo/messaging").Messaging['request']}
*/
request (...args) {
const [name, params] = args;
return this.messaging.request(name, params)
}

/**
* This is a wrapper around `this.messaging.subscribe` that applies the
* auto-generated types from the `src/types` folder. It's used
* to provide per-feature type information based on the schemas
* in `src/messages`
*
* @type {import("@duckduckgo/messaging").Messaging['subscribe']}
*/
subscribe (...args) {
const [name, cb] = args;
return this.messaging.subscribe(name, cb)
}

/**
* @param {import('./content-scope-features.js').LoadArgs} args
*/
Expand Down Expand Up @@ -7545,7 +7584,7 @@
}

const dataToSend = cleanShareData(data);
this.#activeShareRequest = this.messaging.request(MSG_WEB_SHARE, dataToSend);
this.#activeShareRequest = this.request(MSG_WEB_SHARE, dataToSend);
let resp;
try {
resp = await this.#activeShareRequest;
Expand Down Expand Up @@ -8067,8 +8106,6 @@
}
}

/** @typedef {{title?: string, url?: string, text?: string}} ShareRequestData */

const logoImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABNTSURBVHgBzV0LcFPXmf6PJFt+gkEY8wrYMSEbgst7m02ywZnOZiEJCQlJC+QB25lNs7OzlEJ2ptmZLGayfUy3EEhmW5rM7gCZBtjJgzxmSTvTRSST9IF5pCE0TUosmmBjHIKNZFmWLN2e78hHPvfqXuleSdfONyNLV7q6uve7//uc85vRlwAda25oTFK8lZGn0UPaLI2okUhrTH/KGnU7M+olTevlL0KaeM3e01LaKa/PE2p64dgpGmMwGgN0rGqtS1Ve2cB/fhk/gVbSqI5KAU4wvxlBTdNe9VJ5sOnAb0I0yhg1QiWJTGN3E0gcHQRTpO0dTXJdJ7RjzZJWflHrGaNVdiTRN2kalTfOIU9VLfnqp5ruM9TTxR+dlIqGKX7uI7IDLrl7PFS2zW1iXSMURGqkbaUc0uiprqWqxa1UOXcxVcxdxAmcRoUApMZDH9HAmeMU+8NxQbYV3Ca25ITCwaRY4immcYk0AUgcv3wtJ3CxeLgBEBw++jpF249akusWsSUltGPNoq0aY5vMVLviusU04b5HbJMoVLo/ItRaBUyBp7rGtjTHuNSGj75BkbdeN/2ckdbWdODENioRSkIopFLThl4hpi0wflZzy0pO5D9aEiDsIFfXQagtf4CAXCqronzWHHFc3CQ/f53rZuGYl198zorYEKOyW0shrUUT2rFu8bc1jdqMUplLIkFi9NhRCvOLA4mp/jCVAjAn+N2qJa1UvXSZkGYjQOylfTu4OQjqPxAhl7atef+JnVQEiiK0Y+2ipzSNq7gCXFT9o1vFRRkB6evnFxJ5642SkWgF4fD4OUxYba4dEW4GLr/0bJY2FGsCCiIUMaVWEX6FDB4cF1D/T1uzJANE4uTxPBaoWbbSlNgcZiDIYsl7mg6d6iWHcEyolb0MPLyFxq1Yq9sXqg31ihx9nb4MsCK298VnxQ3XQaNTjJXd49SuOiJUkEmJIyRy7TSgWg2bf5xlK/sO76defpJuq7ZTgMy61Y9Q7bI7de/Dlndvf8xoAhw7K9uECjX3R46okomTm/rEbt0dh1TixIzqDeI9lSPZD/ZDWDT0uT2PXmqYSSvI7HryUT2pkNTB5K121d82oZ+sWQzJbJXbZmRa3GWBces2UuXX7qOKigryeDy6z0A+wqbosaDIdEYLZtdgSiq3qVcfOH6rnWPaIlQE7MTacp1ImHvuL/Ztz63iE+qpZtN2qp8z13IX6Siix4OjYi7gQCdy+6+aADNSecKys3l/+3fyHc+bb4d0nMl+KLfNyIS9vPTfPyAtEbc8jvjevz5F45r/inIBpqF6aSvV/M1twiTYLX4UCpwzYlIRw17TMnIOS5aJ8E5eE5e8Gza2TO17+nTXb3IdLyehaSeUOsBfVsj3pv77z6hsWmNmH5AJycwFQeb3nqfBqvHU399P4XBYPMfjcWK8DOXz+bK+I4mFCo2GGRh479dZpFbMbhGkSvBzvWHTvFkHd53+zNKe5lR5bjc7SPHoE7h3rOPZjwTU/POftlE+4ORS5ZVEly+OvDm1UTw0bldRsmtoaCC/32/6/SvQgDw3rVSY9GibTv2zfps7qasPHl9o9X1LCYXd5HxnKkbIyQPrt2Q+h325uOOxnGqeOQfsE+vXvxnhN7krROzd/6PUlJkU9nOJrK4mrzf7lPxcaiCt0IxE57msgkkpAQdZNf9G8tYFMr8Ns5PoDKV3YDRl47zp7OnTnUGz75tK6HC82SG3jXbTwhM6Q0U1sZvvFERVz77e1PtbwSptLBVwndN/+PNMxocb+OnGu0acJM/7mVa20Cw+Nb2CFCW2qtsIhFUndPml5wq/mAmTiT2yjep2HKKZ/7CF6r+ylKqqqmyTCdRwlcQNRmXfDeDaEP5JgFjUJzLghSDUfM2+m3UVkE4uthvkNvJz1aZAOgpNJbWv3U/jnnyeZi5bQRMmTHBEohFprfmZa6RC9eFwJcCDmg2igI5RCeP3sq7IKJ2BhzdnXosY0Zjz2gHUm0vltAe/TYFAoCgiVUByQGqhQyf5gBxftddwyiqGh3j056RuGKUTjqhoVR8mc8bf/r2wk6VGmtTdIpIoNWRxRwISCk4UtBqlVEeoUTpRaZcAkYWoOtQ8MG+xaaxZKuCmj1u+ltwArlmtS6icABjRVbczhNqRTqfQFvGM57avU21t6aXnvTOd9PKb79O+l9rpnfYOGn/7WlekFFDNnBxykcDweMeqBZnRigyhmAqjHsSY2xbkiLh0Tpw4MbMZiQ5yAo7T1h2/oG89/iL9aHeQLvQ4jynfaQ8JEqsry6lhUi2dPXeJdr/4vmtSCgnVSalqS+HxK30b5GZGD73E1mvyTcNdKEg6m3hsOeWqjKqDuMf+43VOQA09vHoJNTcGqKbKL0h2ipuWNIqHEaloC115c78rRRUM3UhO8Cyyv+HfYZqG2TBiLEpIaDqQHynNVfHCwMhJhrMHtOzguqUi85GAet52y7W0/Ym7aP7caYJMQD6XAnBQmDjhBhAuqh7foA2tUu0FoVnqrngyjE4WdMeb5upy83uXt3DJdGdigwpjJb5UAJn9nAuJSsMIhVR7QejwBC4BqLsaLPcXIp0Az7vLy8szm1Pq3XEYRoh5US45J3UwT6q9BFf7VjynCfWMqDvGtVUUVDrjhWRx8BIF8FaQTk46OGxD7TEBwg1gQoaq9jrzwkjYSU/H/UsXqJMUVGcEz1aIumt1k/OSibDnP3cfoZ/se7cgTw/8ZN+vRdjUzb+/ekUL/fJouhjtFqFylouETu05h/BFnqQv1ah+ya+czKBL1XKQsIV7/F+89VFGygrx9t09V8RzJBrnEnpEhFOAf9a15BZUTjBjUEWSkq0ebj914+uq/SxmYkIqlbL87J3joczrmqp0Ovpue4icAtGCBGJRue1WwQRQJdRYQ2CkNfpI0+bLqqhRVYod4gWpZqof6R8pSr/85u/F880mcWU+IJ6Fs4NkNs8KZKIIT1UNuQWjTwGpsr6B9QE+D6M6GdAbp9Cod8MJWO9FzL+0JHT1innC/kmAlBsLIBRAbIuHCjte3sMVo2o2FyLuP+N8ZCbyAdmCsTgEIZTv8ZHhRp8mVlukRdQ4Pl0wBqLiCYNwZkWRe5d/RQT0cEwNnMx7V7RQKWE26068P0xi7fXc/l2l/8wuoQC4kVzpfwsqz1gdDYuoOqc9FY1QwcD4USxKiUTCchczySoVZGjjG8clqIGTN4M7qsnZJErEPiVHwPA2pSPDrHUAPquFBEXnw5zUoaEhKhpJfh69PEMZ5BoT78q/L394+H6z/oVLj42sNsWDi543yRFyDBI2ulek5KOEA5OnU8EY4Pb7Uz58Gy4s0rBLZtdBrsJ9VDK4R+jlnsIl9NIbRKE2chNQc0hmKckE3CP0Qkh4eTgmNafPi3ina2RCIsOnecHnT87tpl1wQrVQ1npKoqILDKzjA+HrBgYGnBHamb/2CmLiF7Pf940f/jyW3gfSl+DJ1BB/xP6cfi4FrKIIjNfrJBQr1Ea+VGRwzFUenn5w0OFxon/M+XHPYWchjhvAsh4JlTMuQb08rmchua16r5IMzXZ1UCwWc/adpHW4BiLHmkxAF6/rskkW8nC1PCc3jVMHiya185xwTI6cU611ETrp8N64AWN6rg+htD5O6IiEGrMjY23UMTrOiCfYUdsIWFfcx/PTKZ9MYwqjkKnpOefyFCc0FVJ3UEkttmoDxyR+NJ5/hl4GkNDASsuPpz/Mk5QVY0esWi82ajQv3Z3yeSkV1JRZjQNnTvBxmfRd8BdbqEUKygP8ft9sMQXHNq7azE+EO6eoeXGm5vr0A148zn3f4MW0V0+ZlFSRfiLILxufjgJkwA+v7zRDAlROsopHzBPyNR04Ffpk7eJemYKiBioHuuT4TFFpKFf7IT6+ZFV5MoWXhyXXvcBvxrPcsVnPpfINk4SCh2MUsOQN4ZIqoQNqKY+HTGjRIa5QS1FQvq8OGZdkfIYH+ACmgDvGtEeIWl7LaQIKQR/n4dIRcgzjWixdAV4jMSSaFhkPy4yPwmupO9beUtzFsDPHxLMjO6qinJufxq1pYhvbKOUp7AbDHIBI5O5fHEkH/06hrl+F/VT9Da/WH8KzCOw9/qE9WsybmUCKzgjyblRhVe/zRag97GhvD7ejPmd21AhO7BAfVTn/X9sxeCMKw3BM/vqRDEkFCEOWBBuLrMoss3ICaCtWOEuEs6YmpYL4Kwht2nOqt2PN4qCcPYKJ+hOGFyfgQDW33CneKxgfHKOhm253ZkdNgAmw8sYiF3crHzcDpFNNOdEtYgQsCF+EV5mrSzH2aua1Qe2rTZZqO0IxdlSBKOyOEdRpjMYmCYxSe+XrDKFQe9FkahjqFL5i+4MUbUfHGMapnWFl7VIaaXUHMoRC7bmnykip8S4Yp0M7grSjRUqom8PDuZBr4jGPvvZIdQd0Bo0XSvao2+o0RpPp0M4AO+o0rzfAqo+TEVE/o8MLy+hHd1fQQHlxXUDyTzxO6ro/6AhtOtAe5D8flNvG6dCB9ZsLr5MO5/XFSGmlDbMTvN5H2+73c0J99FmAie1CASKdSCdg4nKZjnHVlsLLFar6Mq93XM5TYMxUVFyqZfTMCj+9/NUynVT+9pq864MtYVyfpS5gSCOZ1Zsk69d2ne4MbWqZhuk5YtkwCqh+brvkglks1Ut378ozAmnEUEJMwk1yUurq9AOtF/o76YVP/ofe7v5/ev/ySUqk+LCJ10/Vvuzi9Nnuk/Re8iy9P8tLA34PNfSlhBTubS2n7rps+QC5X/04RZVxjZwg3R5pRHgw4bbvtT2Z7bR0ntxr/J7F0sQFjRrznpT5PSTjqmde0y3VO//dBxxPhtBu30DE49GpU6dSZWVl5v21h2+niC87cbi69hq6a+b91DJxIb392a/of//8PEWTepMBovq9Gnm81vHtA28nOKn2bbedpZiMkk1GdQdMzwI7ahrbJbdBYM9PR6QbxDZs+bFzezpsR41qf2HA/MZ8Ev6Ydn7wfXrglytp95mdWWQCkMBYbIA0zVoCv6ix75hwTcZ+AMb1Wbzuuc2MTPF9skDzgfY2fhsyDU5RNFGX6qFoEnhoMzmBtKNqwRnqXiwY81Aibj1LxQmhgYe2GMh81rgCJiS4sUDOPJBpyXvUYB+NBlSvj0YoaC9kG4hHOamQUDndcUr1NF7tym/ftBzTI7EkPJkjHBuwOeiKa6lR5uijAILliRlgFTIlc/YeyUmoUP2UpvNkxiYt6NXkiNTO9BCWGj5VeXOPjKLrg1bE53ZiUWPfKeOKZCCXqkvkrVQ0HzyxU2Oks6dGA40TwfJnOzaV/SGdhqpqP6V6ak4bCAlM8LTVah9I+1AiwR/mUjoxYn3sdGu5tiwys5q4cDKb97fn7Ytnq/TTvP/4JjXgN/tBqP/0H/w8/0hpV0iM10ej0cxbC+qXWpIhfo+rM8iMRvqFrcQjPhinAX6MSDhMc88O0sLzTLy+0ttHUS79g7FBcUyQXTFobi7kEvGaPB1xUE3KZTdV2I56Ny1peJWSnuX85RRspxeEHRXdY6Rkym4yObvZIB6dM5+0unqxOrmsrIy+iH1O73QeobLyMt2uIDHGJXmiN0Dfv/lp6rzyKSUScQqU1dOc2rnU0j+RVh3ppjs/9tEN5710z4c+uraH0cRwWmL7tDhFEjF6sJ1R3aBe7TGii4Y0+RthsVNscGjFrg8v2MpIHLZq4/EpeXWt2nBCaNVmLFzkamOh3XgH0R3rafz48aLoHEmE6Y5DN9G4upFKMSQQZK6evY6+Oe+fqaYs25zgpp3/7jpyAtx0ZHvGPn1wtt07HjMW0kNwQvnspgpHedmu0xd6N83jkso8raRIavhXL4lbo+baINhKWhk88l//HSWTSUEqsqKTF39H3dEu7q2TQpUDvkn0vZt20arZ3xCfm558XcBR1obsZ8rjT5v26et55t/0DWkgmSy5wgmZ4tqoAHRsWFBHMe8rmqHdpZO2ktoTe7jeVdGMGTPEZLKPL39IG498U5zQfXMepK9f+5CpVBoByep68ls597FqDisTluy1rCzIYkOj0+5Sxdk1S9qYoU2EVfdDQG3Dlly2WqSh6D2CBwDVt0OiEecfX5c1Rg7VxtBNtaFXiARI7Nm9LWusjJvtXc0Hj2+iAlF0y+Cz31i0iXnYVuPUcozBoF+JmdcXDu2zEEXG1YsYEk2wioHsbgYSy2fO4TdzZXpw0WTaoWVzWNEy2F5olAslamqd7awkrMxAKSGXDMp/KGCGdAOa58wbKQh7yVXcob00Q0kIlTAzARIgtparoFu9662Qs10xpJIXgezGmHZQUkKBYWlt4y/Xm30OSUWDA0ygcLPnEqbJXDls3d2BW5pDpCW/Uwqp1B2XXEI+YgHZigNeGJOwCiUY6hw7c0KQCGeTe1IGwzDPNgz3kAtwjVAJO8SqQFkQzgVk+yZZ/HOVz7sEacbpMJYQveq4RBLb6xaRIz81SgCxSfK0esmzXqN09wP3waWRpV6lgdSeQmLKgn6RxgAZcpnnbkFuCf9BFR8KD3K/f3Q0SdSfwpcAHevQVSLVmNLYAg+j+SBYLOrlNQ0TskP4k15swUIp0s5hFvZY/YcvI/4CeAZjCToTSnsAAAAASUVORK5CYII=';
const loadingImages = {
darkMode: 'data:image/svg+xml;utf8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%20%20%20%20%3Cstyle%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%40keyframes%20rotate%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20from%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20transform%3A%20rotate%280deg%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20to%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20transform%3A%20rotate%28359deg%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%3C%2Fstyle%3E%0A%20%20%20%20%20%20%20%20%3Cg%20style%3D%22transform-origin%3A%2050%25%2050%25%3B%20animation%3A%20rotate%201s%20infinite%20reverse%20linear%3B%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%2218.0968%22%20y%3D%2216.0861%22%20width%3D%223%22%20height%3D%227%22%20rx%3D%221.5%22%20transform%3D%22rotate%28136.161%2018.0968%2016.0861%29%22%20fill%3D%22%23111111%22%20fill-opacity%3D%220.1%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%228.49878%22%20width%3D%223%22%20height%3D%227%22%20rx%3D%221.5%22%20fill%3D%22%23111111%22%20fill-opacity%3D%220.4%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%2219.9976%22%20y%3D%228.37451%22%20width%3D%223%22%20height%3D%227%22%20rx%3D%221.5%22%20transform%3D%22rotate%2890%2019.9976%208.37451%29%22%20fill%3D%22%23111111%22%20fill-opacity%3D%220.2%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%2216.1727%22%20y%3D%221.9917%22%20width%3D%223%22%20height%3D%227%22%20rx%3D%221.5%22%20transform%3D%22rotate%2846.1607%2016.1727%201.9917%29%22%20fill%3D%22%23111111%22%20fill-opacity%3D%220.3%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%228.91309%22%20y%3D%226.88501%22%20width%3D%223%22%20height%3D%227%22%20rx%3D%221.5%22%20transform%3D%22rotate%28136.161%208.91309%206.88501%29%22%20fill%3D%22%23111111%22%20fill-opacity%3D%220.6%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%226.79602%22%20y%3D%2210.996%22%20width%3D%223%22%20height%3D%227%22%20rx%3D%221.5%22%20transform%3D%22rotate%2846.1607%206.79602%2010.996%29%22%20fill%3D%22%23111111%22%20fill-opacity%3D%220.7%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%227%22%20y%3D%228.62549%22%20width%3D%223%22%20height%3D%227%22%20rx%3D%221.5%22%20transform%3D%22rotate%2890%207%208.62549%29%22%20fill%3D%22%23111111%22%20fill-opacity%3D%220.8%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%228.49878%22%20y%3D%2213%22%20width%3D%223%22%20height%3D%227%22%20rx%3D%221.5%22%20fill%3D%22%23111111%22%20fill-opacity%3D%220.9%22%2F%3E%0A%20%20%20%20%20%20%20%20%3C%2Fg%3E%0A%20%20%20%20%3C%2Fsvg%3E',
Expand Down

0 comments on commit b24ae2b

Please sign in to comment.