🍧 Collects all icons
This commit is contained in:
@@ -9,14 +9,10 @@
|
||||
import { page } from '$app/stores';
|
||||
import { notifications } from '$lib/components/toasts/notifications';
|
||||
import { TIME_ZONES } from './timezones';
|
||||
import NTP from '~icons/tabler/clock-check';
|
||||
import Server from '~icons/tabler/server';
|
||||
import Clock from '~icons/tabler/clock';
|
||||
import UTC from '~icons/tabler/clock-pin';
|
||||
import Stopwatch from '~icons/tabler/24-hours';
|
||||
import type { NTPSettings, NTPStatus } from '$lib/types/models';
|
||||
import { api } from '$lib/api';
|
||||
import { useFeatureFlags } from '$lib/stores/featureFlags';
|
||||
import { NTP, UTC, Stopwatch, Clock, Server } from '$lib/components/icons';
|
||||
|
||||
const features = useFeatureFlags();
|
||||
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
<script lang="ts">
|
||||
import SettingsCard from "$lib/components/SettingsCard.svelte";
|
||||
import Camera from '~icons/mdi/camera-outline'
|
||||
import Record from '~icons/mdi/radio-button-unchecked'
|
||||
import CameraSetting from './CameraSetting.svelte';
|
||||
import Stream from '$lib/components/Stream.svelte';
|
||||
import { Camera } from "$lib/components/icons";
|
||||
</script>
|
||||
|
||||
<SettingsCard collapsible={false}>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<script lang="ts">
|
||||
import SettingsCard from "$lib/components/SettingsCard.svelte";
|
||||
import MdiConnection from '~icons/mdi/connection';
|
||||
import { onMount } from "svelte";
|
||||
import { socket } from "$lib/stores";
|
||||
import type { I2CDevice } from "$lib/types/models";
|
||||
import { Connection } from "$lib/components/icons";
|
||||
|
||||
const i2cDevices = [
|
||||
{address:30, part_number: "HMC5883", name: "3-Axis Digital Compass/Magnetometer IC"},
|
||||
@@ -27,7 +27,7 @@
|
||||
</script>
|
||||
|
||||
<SettingsCard collapsible={false}>
|
||||
<MdiConnection slot="icon" class="lex-shrink-0 mr-2 h-6 w-6 self-end" />
|
||||
<Connection slot="icon" class="lex-shrink-0 mr-2 h-6 w-6 self-end" />
|
||||
<span slot="title">I<sup>2</sup>C</span>
|
||||
|
||||
<div class="grid">
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<script lang="ts">
|
||||
import SettingsCard from "$lib/components/SettingsCard.svelte";
|
||||
import Rotate3d from '~icons/mdi/rotate-3d';
|
||||
import { imu } from '$lib/stores/imu';
|
||||
import { Chart, registerables } from 'chart.js';
|
||||
import { cubicOut } from "svelte/easing";
|
||||
@@ -10,6 +9,7 @@
|
||||
import { socket } from "$lib/stores";
|
||||
import type { IMU } from "$lib/types/models";
|
||||
import { useFeatureFlags } from "$lib/stores/featureFlags";
|
||||
import { Rotate3d } from "$lib/components/icons";
|
||||
|
||||
const features = useFeatureFlags();
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<script lang="ts">
|
||||
import SettingsCard from '$lib/components/SettingsCard.svelte';
|
||||
import type { ServoConfiguration, Servo } from '$lib/types/models';
|
||||
import MotorOutline from '~icons/mdi/motor-outline';
|
||||
import ServoController from './servo.svelte';
|
||||
import Spinner from '$lib/components/Spinner.svelte';
|
||||
|
||||
import { socket } from '$lib/stores';
|
||||
import { onDestroy, onMount } from 'svelte';
|
||||
import { throttler as Throttler } from '$lib/utilities';
|
||||
import { MotorOutline } from '$lib/components/icons';
|
||||
|
||||
let isLoading = false;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script>
|
||||
import FileIcon from '~icons/mdi/file';
|
||||
import { FileIcon } from '$lib/components/icons';
|
||||
import { createEventDispatcher } from 'svelte';
|
||||
|
||||
export let name;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<script lang="ts">
|
||||
import SettingsCard from "$lib/components/SettingsCard.svelte";
|
||||
import Spinner from "$lib/components/Spinner.svelte";
|
||||
import FolderIcon from '~icons/mdi/folder-outline';
|
||||
import Folder from "./Folder.svelte";
|
||||
import { api } from "$lib/api";
|
||||
import type { Directory } from "$lib/types/models";
|
||||
import { FolderIcon } from "$lib/components/icons";
|
||||
|
||||
let filename = '';
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<script lang="ts">
|
||||
import File from './File.svelte';
|
||||
import FolderIcon from '~icons/mdi/folder-outline';
|
||||
import FolderOpenOutline from '~icons/mdi/folder-open-outline';
|
||||
import { createEventDispatcher } from 'svelte';
|
||||
import { FolderIcon, FolderOpenOutline } from '$lib/components/icons';
|
||||
|
||||
export let expanded = false;
|
||||
export let name;
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
import { slide } from 'svelte/transition';
|
||||
import { cubicOut } from 'svelte/easing';
|
||||
import { Chart, registerables } from 'chart.js';
|
||||
import Metrics from '~icons/tabler/report-analytics';
|
||||
|
||||
import { daisyColor } from '$lib/utilities';
|
||||
import { analytics } from '$lib/stores/analytics';
|
||||
import { Metrics } from '$lib/components/icons';
|
||||
|
||||
Chart.register(...registerables);
|
||||
|
||||
|
||||
@@ -8,46 +8,49 @@
|
||||
import Spinner from '$lib/components/Spinner.svelte';
|
||||
import { slide } from 'svelte/transition';
|
||||
import { cubicOut } from 'svelte/easing';
|
||||
import CPU from '~icons/tabler/cpu';
|
||||
import CPP from '~icons/tabler/binary';
|
||||
import Power from '~icons/tabler/reload';
|
||||
import Sleep from '~icons/tabler/zzz';
|
||||
import FactoryReset from '~icons/tabler/refresh-dot';
|
||||
import Speed from '~icons/tabler/activity';
|
||||
import Flash from '~icons/tabler/device-sd-card';
|
||||
import Pyramid from '~icons/tabler/pyramid';
|
||||
import Sketch from '~icons/tabler/chart-pie';
|
||||
import Folder from '~icons/tabler/folder';
|
||||
import Heap from '~icons/tabler/box-model';
|
||||
import Cancel from '~icons/tabler/x';
|
||||
import Temperature from '~icons/tabler/temperature';
|
||||
import Health from '~icons/tabler/stethoscope';
|
||||
import Stopwatch from '~icons/tabler/24-hours';
|
||||
import SDK from '~icons/tabler/sdk';
|
||||
|
||||
import type { SystemInformation, Analytics } from '$lib/types/models';
|
||||
import { socket } from '$lib/stores/socket';
|
||||
import { api } from '$lib/api';
|
||||
import { convertSeconds } from '$lib/utilities';
|
||||
|
||||
import { useFeatureFlags } from '$lib/stores/featureFlags';
|
||||
|
||||
const features = useFeatureFlags()
|
||||
import { useFeatureFlags } from '$lib/stores/featureFlags';
|
||||
import {
|
||||
Cancel,
|
||||
Power,
|
||||
FactoryReset,
|
||||
Sleep,
|
||||
Health,
|
||||
CPU,
|
||||
SDK,
|
||||
CPP,
|
||||
Speed,
|
||||
Heap,
|
||||
Pyramid,
|
||||
Sketch,
|
||||
Flash,
|
||||
Folder,
|
||||
Temperature,
|
||||
Stopwatch
|
||||
} from '$lib/components/icons';
|
||||
|
||||
const features = useFeatureFlags();
|
||||
|
||||
let systemInformation: SystemInformation;
|
||||
|
||||
async function getSystemStatus() {
|
||||
const result = await api.get<SystemInformation>('/api/systemStatus');
|
||||
if (result.isErr()){
|
||||
console.error('Error:', result.inner);
|
||||
return
|
||||
}
|
||||
systemInformation = result.inner
|
||||
const result = await api.get<SystemInformation>('/api/systemStatus');
|
||||
if (result.isErr()) {
|
||||
console.error('Error:', result.inner);
|
||||
return;
|
||||
}
|
||||
systemInformation = result.inner;
|
||||
return systemInformation;
|
||||
}
|
||||
|
||||
const postFactoryReset = async () => await api.post('/api/factoryReset')
|
||||
|
||||
const postSleep = async () => await api.post('api/sleep')
|
||||
const postFactoryReset = async () => await api.post('/api/factoryReset');
|
||||
|
||||
const postSleep = async () => await api.post('api/sleep');
|
||||
|
||||
onMount(() => socket.on('analytics', handleSystemData));
|
||||
|
||||
|
||||
@@ -6,17 +6,13 @@
|
||||
import ConfirmDialog from '$lib/components/ConfirmDialog.svelte';
|
||||
import Spinner from '$lib/components/Spinner.svelte';
|
||||
import SettingsCard from '$lib/components/SettingsCard.svelte';
|
||||
import Github from '~icons/tabler/brand-github';
|
||||
import CloudDown from '~icons/tabler/cloud-download';
|
||||
import Cancel from '~icons/tabler/x';
|
||||
import Prerelease from '~icons/tabler/test-pipe';
|
||||
import Error from '~icons/tabler/circle-x';
|
||||
|
||||
import { compareVersions } from 'compare-versions';
|
||||
import GithubUpdateDialog from '$lib/components/GithubUpdateDialog.svelte';
|
||||
import InfoDialog from '$lib/components/InfoDialog.svelte';
|
||||
import Check from '~icons/tabler/check';
|
||||
import { api } from '$lib/api';
|
||||
import { useFeatureFlags } from '$lib/stores';
|
||||
import { Cancel, Check, CloudDown, Github, Prerelease } from '$lib/components/icons';
|
||||
|
||||
const features = useFeatureFlags();
|
||||
|
||||
|
||||
@@ -2,10 +2,9 @@
|
||||
import { openModal, closeModal } from 'svelte-modals';
|
||||
import ConfirmDialog from '$lib/components/ConfirmDialog.svelte';
|
||||
import SettingsCard from '$lib/components/SettingsCard.svelte';
|
||||
import OTA from '~icons/tabler/file-upload';
|
||||
import Warning from '~icons/tabler/alert-triangle';
|
||||
import Cancel from '~icons/tabler/x';
|
||||
|
||||
import { api } from '$lib/api';
|
||||
import { Cancel, OTA, Warning } from '$lib/components/icons';
|
||||
|
||||
let files: FileList;
|
||||
|
||||
|
||||
@@ -4,23 +4,24 @@
|
||||
import { slide } from 'svelte/transition';
|
||||
import { cubicOut } from 'svelte/easing';
|
||||
import { user } from '$lib/stores/user';
|
||||
import type { userProfile } from '$lib/stores/user';
|
||||
import { page } from '$app/stores';
|
||||
import { notifications } from '$lib/components/toasts/notifications';
|
||||
import InputPassword from '$lib/components/input/InputPassword.svelte';
|
||||
import SettingsCard from '$lib/components/SettingsCard.svelte';
|
||||
import ConfirmDialog from '$lib/components/ConfirmDialog.svelte';
|
||||
import EditUser from './EditUser.svelte';
|
||||
import Spinner from '$lib/components/Spinner.svelte';
|
||||
import Delete from '~icons/tabler/trash';
|
||||
import AddUser from '~icons/tabler/user-plus';
|
||||
import Edit from '~icons/tabler/pencil';
|
||||
import Admin from '~icons/tabler/key';
|
||||
import Users from '~icons/tabler/users';
|
||||
import Warning from '~icons/tabler/alert-triangle';
|
||||
import Cancel from '~icons/tabler/x';
|
||||
import Check from '~icons/tabler/check';
|
||||
|
||||
import { api } from '$lib/api';
|
||||
import {
|
||||
Cancel,
|
||||
Check,
|
||||
Users,
|
||||
AddUser,
|
||||
Admin,
|
||||
Edit,
|
||||
Delete,
|
||||
Warning
|
||||
} from '$lib/components/icons';
|
||||
|
||||
type userSetting = {
|
||||
username: string;
|
||||
@@ -36,30 +37,30 @@
|
||||
let securitySettings: SecuritySettings;
|
||||
|
||||
async function getSecuritySettings() {
|
||||
const result = await api.get<SecuritySettings>('/api/securitySettings')
|
||||
if (result.isErr()){
|
||||
console.error('Error:', result.inner);
|
||||
return
|
||||
}
|
||||
securitySettings = result.inner
|
||||
const result = await api.get<SecuritySettings>('/api/securitySettings');
|
||||
if (result.isErr()) {
|
||||
console.error('Error:', result.inner);
|
||||
return;
|
||||
}
|
||||
securitySettings = result.inner;
|
||||
}
|
||||
|
||||
async function postSecuritySettings(data: SecuritySettings) {
|
||||
const result = await api.post<SecuritySettings>('/api/securitySettings', data)
|
||||
if (result.isErr()){
|
||||
console.error('Error:', result.inner);
|
||||
notifications.error('User not authorized.', 3000);
|
||||
return
|
||||
}
|
||||
securitySettings = result.inner
|
||||
if (await validateUser()) {
|
||||
notifications.success('Security settings updated.', 3000);
|
||||
}
|
||||
const result = await api.post<SecuritySettings>('/api/securitySettings', data);
|
||||
if (result.isErr()) {
|
||||
console.error('Error:', result.inner);
|
||||
notifications.error('User not authorized.', 3000);
|
||||
return;
|
||||
}
|
||||
securitySettings = result.inner;
|
||||
if (await validateUser()) {
|
||||
notifications.success('Security settings updated.', 3000);
|
||||
}
|
||||
}
|
||||
|
||||
async function validateUser() {
|
||||
const result = await api.get('/api/verifyAuthorization')
|
||||
if (result.isErr()) user.invalidate();
|
||||
const result = await api.get('/api/verifyAuthorization');
|
||||
if (result.isErr()) user.invalidate();
|
||||
return result.isOk();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
<script lang="ts">
|
||||
import { onMount, onDestroy } from 'svelte';
|
||||
import { onMount } from 'svelte';
|
||||
import { closeModal } from 'svelte-modals';
|
||||
import { fly } from 'svelte/transition';
|
||||
import InputPassword from '$lib/components/input/InputPassword.svelte';
|
||||
import Cancel from '~icons/tabler/x';
|
||||
import Save from '~icons/tabler/device-floppy';
|
||||
import { Cancel, Save } from '$lib/components/icons';
|
||||
|
||||
// provided by <Modals />
|
||||
export let isOpen: boolean;
|
||||
@@ -93,8 +92,10 @@
|
||||
>
|
||||
<button
|
||||
class="btn btn-primary text-primary-content inline-flex items-center"
|
||||
type="submit"><Save class="mr-2 h-5 w-5" /><span>Save</span></button
|
||||
>
|
||||
type="submit"
|
||||
><Save class="mr-2 h-5 w-5" />
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -8,13 +8,10 @@
|
||||
import { page } from '$app/stores';
|
||||
import { notifications } from '$lib/components/toasts/notifications';
|
||||
import Spinner from '$lib/components/Spinner.svelte';
|
||||
import AP from '~icons/tabler/access-point';
|
||||
import MAC from '~icons/tabler/dna-2';
|
||||
import Home from '~icons/tabler/home';
|
||||
import Devices from '~icons/tabler/devices';
|
||||
import type { ApSettings, ApStatus } from '$lib/types/models';
|
||||
import { api } from '$lib/api';
|
||||
import { useFeatureFlags } from '$lib/stores';
|
||||
import { AP, Devices, Home, MAC } from '$lib/components/icons';
|
||||
|
||||
const features = useFeatureFlags();
|
||||
|
||||
|
||||
@@ -2,15 +2,12 @@
|
||||
import { closeModal } from 'svelte-modals';
|
||||
import { focusTrap } from 'svelte-focus-trap';
|
||||
import { fly } from 'svelte/transition';
|
||||
import Network from '~icons/tabler/router';
|
||||
import AP from '~icons/tabler/access-point';
|
||||
import Cancel from '~icons/tabler/x';
|
||||
import Reload from '~icons/tabler/reload';
|
||||
|
||||
import { onMount, onDestroy } from 'svelte';
|
||||
import RssiIndicator from '$lib/components/statusbar/RSSIIndicator.svelte';
|
||||
import type { NetworkItem } from '$lib/types/models';
|
||||
import type { NetworkItem, NetworkList } from '$lib/types/models';
|
||||
import { api } from '$lib/api';
|
||||
import type { NetworkList } from '$lib/types/models';
|
||||
import { AP, Network, Reload, Cancel } from '$lib/components/icons';
|
||||
|
||||
// provided by <Modals />
|
||||
export let isOpen: boolean;
|
||||
@@ -115,8 +112,7 @@
|
||||
<div class="flex-grow" />
|
||||
<RssiIndicator
|
||||
showDBm={true}
|
||||
rssi_dbm={network.rssi}
|
||||
class="text-base-content h-10 w-10"
|
||||
rssi={network.rssi}
|
||||
/>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
@@ -14,29 +14,31 @@
|
||||
import ConfirmDialog from '$lib/components/ConfirmDialog.svelte';
|
||||
import ScanNetworks from './Scan.svelte';
|
||||
import Spinner from '$lib/components/Spinner.svelte';
|
||||
import AP from '~icons/tabler/access-point';
|
||||
import Router from '~icons/tabler/router';
|
||||
import MAC from '~icons/tabler/dna-2';
|
||||
import Home from '~icons/tabler/home';
|
||||
import WiFi from '~icons/tabler/wifi';
|
||||
import SSID from '~icons/tabler/router';
|
||||
import Down from '~icons/tabler/chevron-down';
|
||||
import DNS from '~icons/tabler/address-book';
|
||||
import Gateway from '~icons/tabler/torii';
|
||||
import Subnet from '~icons/tabler/grid-dots';
|
||||
import Channel from '~icons/tabler/antenna';
|
||||
import Scan from '~icons/tabler/radar-2';
|
||||
import Add from '~icons/tabler/circle-plus';
|
||||
import Edit from '~icons/tabler/pencil';
|
||||
import Delete from '~icons/tabler/trash';
|
||||
import Cancel from '~icons/tabler/x';
|
||||
import Check from '~icons/tabler/check';
|
||||
import InfoDialog from '$lib/components/InfoDialog.svelte';
|
||||
import type { KnownNetworkItem, WifiSettings, WifiStatus } from '$lib/types/models';
|
||||
import { socket, useFeatureFlags } from '$lib/stores';
|
||||
import { api } from '$lib/api';
|
||||
import {
|
||||
Cancel,
|
||||
Delete,
|
||||
Check,
|
||||
Router,
|
||||
AP,
|
||||
SSID,
|
||||
Home,
|
||||
WiFi,
|
||||
Down,
|
||||
MAC,
|
||||
Channel,
|
||||
Gateway,
|
||||
Subnet,
|
||||
DNS,
|
||||
Add,
|
||||
Scan,
|
||||
Edit
|
||||
} from '$lib/components/icons';
|
||||
|
||||
const features = useFeatureFlags();
|
||||
const features = useFeatureFlags();
|
||||
|
||||
let networkEditable: KnownNetworkItem = {
|
||||
ssid: '',
|
||||
@@ -49,7 +51,7 @@
|
||||
dns_ip_2: undefined
|
||||
};
|
||||
|
||||
let static_ip_config = false
|
||||
let static_ip_config = false;
|
||||
|
||||
let newNetwork: boolean = true;
|
||||
let showNetworkEditor: boolean = false;
|
||||
@@ -75,44 +77,44 @@
|
||||
let formErrorhostname = false;
|
||||
|
||||
async function getWifiStatus() {
|
||||
const result = await api.get<WifiStatus>('/api/wifiStatus');
|
||||
if (result.isErr()){
|
||||
console.error(`Error occurred while fetching: `, result.inner);
|
||||
return
|
||||
}
|
||||
wifiStatus = result.inner
|
||||
const result = await api.get<WifiStatus>('/api/wifiStatus');
|
||||
if (result.isErr()) {
|
||||
console.error(`Error occurred while fetching: `, result.inner);
|
||||
return;
|
||||
}
|
||||
wifiStatus = result.inner;
|
||||
return wifiStatus;
|
||||
}
|
||||
|
||||
async function getWifiSettings() {
|
||||
const result = await api.get<WifiSettings>('/api/wifiSettings');
|
||||
if (result.isErr()){
|
||||
console.error(`Error occurred while fetching: `, result.inner);
|
||||
return
|
||||
}
|
||||
wifiSettings = result.inner
|
||||
dndNetworkList = wifiSettings.wifi_networks;
|
||||
const result = await api.get<WifiSettings>('/api/wifiSettings');
|
||||
if (result.isErr()) {
|
||||
console.error(`Error occurred while fetching: `, result.inner);
|
||||
return;
|
||||
}
|
||||
wifiSettings = result.inner;
|
||||
dndNetworkList = wifiSettings.wifi_networks;
|
||||
return wifiSettings;
|
||||
}
|
||||
|
||||
onDestroy(() => socket.off('WiFiSettings'));
|
||||
|
||||
onMount(() => {
|
||||
socket.on<WifiSettings>('WiFiSettings', (data) => {
|
||||
wifiSettings = data
|
||||
dndNetworkList = wifiSettings.wifi_networks
|
||||
})
|
||||
socket.on<WifiSettings>('WiFiSettings', (data) => {
|
||||
wifiSettings = data;
|
||||
dndNetworkList = wifiSettings.wifi_networks;
|
||||
});
|
||||
});
|
||||
|
||||
async function postWiFiSettings(data: WifiSettings) {
|
||||
const result = await api.post<WifiSettings>('/api/wifiSettings', data);
|
||||
if (result.isErr()){
|
||||
console.error(`Error occurred while fetching: `, result.inner);
|
||||
notifications.error('User not authorized.', 3000);
|
||||
return
|
||||
}
|
||||
wifiSettings = result.inner
|
||||
notifications.success('Wi-Fi settings updated.', 3000);
|
||||
const result = await api.post<WifiSettings>('/api/wifiSettings', data);
|
||||
if (result.isErr()) {
|
||||
console.error(`Error occurred while fetching: `, result.inner);
|
||||
notifications.error('User not authorized.', 3000);
|
||||
return;
|
||||
}
|
||||
wifiSettings = result.inner;
|
||||
notifications.success('Wi-Fi settings updated.', 3000);
|
||||
}
|
||||
|
||||
function validateHostName() {
|
||||
@@ -139,7 +141,7 @@
|
||||
formErrors.ssid = false;
|
||||
}
|
||||
|
||||
networkEditable.static_ip_config = static_ip_config;
|
||||
networkEditable.static_ip_config = static_ip_config;
|
||||
|
||||
if (networkEditable.static_ip_config) {
|
||||
// RegEx for IPv4
|
||||
@@ -736,4 +738,4 @@
|
||||
{/await}
|
||||
</div>
|
||||
{/if}
|
||||
</SettingsCard>
|
||||
</SettingsCard>
|
||||
|
||||
Reference in New Issue
Block a user