2022-02-06 23:02:20 +01:00
|
|
|
<script>
|
|
|
|
|
import Card from "../components/Card.svelte";
|
|
|
|
|
import Input from "../widgets/Input.svelte";
|
2022-08-16 22:38:43 +02:00
|
|
|
import Range from "../widgets/Range.svelte";
|
2022-08-31 02:14:16 +02:00
|
|
|
import Chart from "../widgets/Chart.svelte";
|
2022-02-06 23:02:20 +01:00
|
|
|
import Toggle from "../widgets/Toggle.svelte";
|
|
|
|
|
import Anydata from "../widgets/Anydata.svelte";
|
2022-02-13 00:37:58 +01:00
|
|
|
import Alarm from "../components/Alarm.svelte";
|
2022-02-06 23:02:20 +01:00
|
|
|
|
|
|
|
|
export let layoutJson;
|
2022-11-26 16:10:54 +01:00
|
|
|
|
|
|
|
|
$: layoutJson.length, timeOut();
|
|
|
|
|
|
|
|
|
|
let empty = false;
|
|
|
|
|
|
|
|
|
|
function timeOut() {
|
|
|
|
|
empty = false;
|
2022-12-14 00:52:42 +01:00
|
|
|
setTimeout(timeIsOut, 3000);
|
2022-11-26 16:10:54 +01:00
|
|
|
}
|
|
|
|
|
|
2022-02-06 23:02:20 +01:00
|
|
|
export let pages;
|
|
|
|
|
|
2022-02-13 00:37:58 +01:00
|
|
|
export let show;
|
|
|
|
|
|
2022-02-06 23:02:20 +01:00
|
|
|
export let wsPush = (ws, topic, status) => {};
|
2022-11-22 15:07:41 +01:00
|
|
|
|
|
|
|
|
function timeIsOut() {
|
|
|
|
|
if (layoutJson.length === 0) {
|
|
|
|
|
empty = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-02-06 23:02:20 +01:00
|
|
|
</script>
|
|
|
|
|
|
2022-02-13 00:37:58 +01:00
|
|
|
{#if show}
|
2023-06-02 15:29:45 +02:00
|
|
|
<div class="my-4">
|
2023-06-08 22:37:43 +02:00
|
|
|
<div class="grd-1col1 animate-pulse">
|
|
|
|
|
{#if empty}
|
|
|
|
|
<Card title={"Ваша панель управления пуста, вначале добавьте новые элементы в конфигураторе!"} />
|
|
|
|
|
{/if}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="grd-3col1">
|
|
|
|
|
{#each pages as pagesName, p}
|
|
|
|
|
<Card title={pagesName.page}>
|
|
|
|
|
{#each layoutJson as widget, l}
|
|
|
|
|
{#if widget.page === pagesName.page}
|
|
|
|
|
{#if widget.widget === "input"}
|
|
|
|
|
<Input bind:value={widget.status} widget={widget} wsPush={(ws, topic, status) => wsPush(ws, topic, status)} />
|
|
|
|
|
{/if}
|
|
|
|
|
{#if widget.widget === "toggle"}
|
|
|
|
|
<Toggle bind:value={widget.status} widget={widget} wsPush={(ws, topic, status) => wsPush(ws, topic, status)} />
|
|
|
|
|
{/if}
|
|
|
|
|
{#if widget.widget === "anydata"}
|
|
|
|
|
<Anydata bind:value={widget.status} widget={widget} />
|
|
|
|
|
{/if}
|
|
|
|
|
{#if widget.widget === "range"}
|
|
|
|
|
<Range bind:value={widget.status} widget={widget} wsPush={(ws, topic, status) => wsPush(ws, topic, status)} />
|
|
|
|
|
{/if}
|
|
|
|
|
{#if widget.widget === "chart"}
|
|
|
|
|
<Chart bind:value={widget.status} widget={widget} />
|
|
|
|
|
{/if}
|
2022-08-31 02:14:16 +02:00
|
|
|
{/if}
|
2023-06-08 22:37:43 +02:00
|
|
|
{/each}
|
|
|
|
|
</Card>
|
|
|
|
|
{/each}
|
|
|
|
|
</div>
|
2022-02-13 00:37:58 +01:00
|
|
|
</div>
|
|
|
|
|
{:else}
|
|
|
|
|
<Alarm title="Загрузка..." />
|
|
|
|
|
{/if}
|