Chore: Typescript: Rewrite GlobalSettings (#20837)
Co-authored-by: Michael Geers <michael@geers.tv>
This commit is contained in:
parent
617c06b376
commit
e0421cc7d8
118 changed files with 252 additions and 241 deletions
|
|
@ -60,9 +60,9 @@
|
|||
<script lang="ts">
|
||||
import GenericModal from "../Helper/GenericModal.vue";
|
||||
import Modal from "bootstrap/js/dist/modal";
|
||||
import api from "../../api.js";
|
||||
import api from "@/api";
|
||||
import { updateAuthStatus, getAndClearNextUrl, getAndClearNextModal, isLoggedIn } from "./auth";
|
||||
import { docsPrefix } from "../../i18n.js";
|
||||
import { docsPrefix } from "@/i18n";
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@
|
|||
<script type="ts">
|
||||
import GenericModal from "../Helper/GenericModal.vue";
|
||||
import FormRow from "../Helper/FormRow.vue";
|
||||
import api from "../../api.js";
|
||||
import api from "@/api";
|
||||
import { updateAuthStatus, isConfigured } from "./auth";
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { reactive, watch } from "vue";
|
||||
import api from "../../api.js";
|
||||
import store from "../../store.js";
|
||||
import api from "@/api";
|
||||
import store from "@/store";
|
||||
import Modal from "bootstrap/js/dist/modal";
|
||||
import { isSystemError } from "../../utils/fatal.js";
|
||||
import { isSystemError } from "@/utils/fatal.js";
|
||||
|
||||
const auth = reactive({
|
||||
configured: true,
|
||||
|
|
|
|||
|
|
@ -257,12 +257,12 @@ import "@h2d2/shopicons/es/regular/home";
|
|||
import SmartCostLimit from "../Tariff/SmartCostLimit.vue";
|
||||
import CustomSelect from "../Helper/CustomSelect.vue";
|
||||
import GenericModal from "../Helper/GenericModal.vue";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter.js";
|
||||
import collector from "../../mixins/collector.js";
|
||||
import api from "../../api.js";
|
||||
import smartCostAvailable from "../../utils/smartCostAvailable.js";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import collector from "@/mixins/collector";
|
||||
import api from "@/api";
|
||||
import smartCostAvailable from "@/utils/smartCostAvailable";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import type { Battery, SelectOption } from "../../types/evcc.js";
|
||||
import type { Battery, SelectOption } from "@/types/evcc";
|
||||
|
||||
export default defineComponent({
|
||||
name: "BatterySettingsModal",
|
||||
|
|
|
|||
|
|
@ -60,9 +60,9 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { distanceUnit } from "../../units.js";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import type { SelectOption } from "../../types/evcc";
|
||||
import { distanceUnit } from "@/units";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import type { SelectOption } from "@/types/evcc";
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
|
|
|
|||
|
|
@ -108,14 +108,14 @@ import LabelAndValue from "../Helper/LabelAndValue.vue";
|
|||
import PlansSettings from "./PlansSettings.vue";
|
||||
import Arrival from "./Arrival.vue";
|
||||
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import collector from "../../mixins/collector.js";
|
||||
import api from "../../api.js";
|
||||
import { optionStep, fmtEnergy } from "../../utils/energyOptions.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import collector from "@/mixins/collector";
|
||||
import api from "@/api";
|
||||
import { optionStep, fmtEnergy } from "@/utils/energyOptions";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import type { CURRENCY, Timeout, Vehicle } from "../../types/evcc.js";
|
||||
import type { StaticPlan, StaticSocPlan, StaticEnergyPlan, RepeatingPlan } from "./types.js";
|
||||
import type { Forecast } from "../../types/evcc.ts";
|
||||
import type { CURRENCY, Timeout, Vehicle } from "@/types/evcc";
|
||||
import type { StaticPlan, StaticSocPlan, StaticEnergyPlan, RepeatingPlan } from "./types";
|
||||
import type { Forecast } from "@/types/evcc.ts";
|
||||
const ONE_MINUTE = 60 * 1000;
|
||||
|
||||
export default defineComponent({
|
||||
|
|
|
|||
|
|
@ -166,12 +166,12 @@
|
|||
|
||||
<script lang="ts">
|
||||
import "@h2d2/shopicons/es/regular/trash";
|
||||
import { distanceUnit } from "../../units.js";
|
||||
import { distanceUnit } from "@/units";
|
||||
import MultiSelect from "../Helper/MultiSelect.vue";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import deepEqual from "../../utils/deepEqual.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import deepEqual from "@/utils/deepEqual";
|
||||
import PreconditionSelect from "./PreconditionSelect.vue";
|
||||
import type { SelectOption } from "../../types/evcc";
|
||||
import type { SelectOption } from "@/types/evcc";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
|
|
|
|||
|
|
@ -179,10 +179,10 @@
|
|||
|
||||
<script lang="ts">
|
||||
import "@h2d2/shopicons/es/regular/checkmark";
|
||||
import { distanceUnit } from "../../units.js";
|
||||
import { distanceUnit } from "@/units";
|
||||
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import { energyOptions } from "../../utils/energyOptions.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import { energyOptions } from "@/utils/energyOptions";
|
||||
import { defineComponent } from "vue";
|
||||
import PreconditionSelect from "./PreconditionSelect.vue";
|
||||
|
||||
|
|
|
|||
|
|
@ -30,10 +30,10 @@
|
|||
|
||||
<script lang="ts">
|
||||
import PlanRepeatingSettings from "./PlanRepeatingSettings.vue";
|
||||
import deepEqual from "../../utils/deepEqual.js";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import deepEqual from "@/utils/deepEqual";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import type { RepeatingPlan } from "./types.js";
|
||||
import type { RepeatingPlan } from "./types";
|
||||
|
||||
const DEFAULT_WEEKDAYS = [1, 2, 3, 4, 5];
|
||||
const DEFAULT_TARGET_TIME = "07:00";
|
||||
|
|
|
|||
|
|
@ -72,14 +72,14 @@ import Preview from "./Preview.vue";
|
|||
import PlanStaticSettings from "./PlanStaticSettings.vue";
|
||||
import RepeatingSettings from "./PlansRepeatingSettings.vue";
|
||||
import Warnings from "./Warnings.vue";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import collector from "../../mixins/collector.js";
|
||||
import api from "../../api.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import collector from "@/mixins/collector";
|
||||
import api from "@/api";
|
||||
import CustomSelect from "../Helper/CustomSelect.vue";
|
||||
import deepEqual from "../../utils/deepEqual.js";
|
||||
import convertRates from "../../utils/convertRates";
|
||||
import deepEqual from "@/utils/deepEqual";
|
||||
import convertRates from "@/utils/convertRates";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import type { Vehicle, PartialBy, Timeout, SelectOption, CURRENCY } from "../../types/evcc";
|
||||
import type { Vehicle, PartialBy, Timeout, SelectOption, CURRENCY, Forecast } from "@/types/evcc";
|
||||
import type {
|
||||
StaticPlan,
|
||||
RepeatingPlan,
|
||||
|
|
@ -87,8 +87,7 @@ import type {
|
|||
StaticSocPlan,
|
||||
StaticEnergyPlan,
|
||||
PlanResponse,
|
||||
} from "./types.js";
|
||||
import type { Forecast } from "../../types/evcc.ts";
|
||||
} from "./types";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ChargingPlansSettings",
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import CustomSelect from "../Helper/CustomSelect.vue";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
|
||||
export default defineComponent({
|
||||
name: "PreconditionSelect",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { CURRENCY, type Rate } from "../../types/evcc.js";
|
||||
import { CURRENCY, type Rate } from "@/types/evcc";
|
||||
import Preview from "./Preview.vue";
|
||||
import type { StoryFn } from "@storybook/vue3";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { mount, config } from "@vue/test-utils";
|
||||
import { beforeAll, describe, expect, test } from "vitest";
|
||||
import Preview from "./Preview.vue";
|
||||
import type { Slot } from "../../types/evcc.js";
|
||||
import type { Slot } from "@/types/evcc";
|
||||
|
||||
config.global.mocks["$i18n"] = { locale: "de-DE" };
|
||||
config.global.mocks["$t"] = (a: any) => a;
|
||||
|
|
|
|||
|
|
@ -36,10 +36,10 @@
|
|||
|
||||
<script lang="ts">
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import { CO2_TYPE } from "../../units.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import { CO2_TYPE } from "@/units";
|
||||
import TariffChart from "../Tariff/TariffChart.vue";
|
||||
import type { CURRENCY, Rate, Slot } from "../../types/evcc.js";
|
||||
import type { CURRENCY, Rate, Slot } from "@/types/evcc";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ChargingPlanPreview",
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@
|
|||
|
||||
<script lang="ts">
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import type { PlanWrapper } from "./types.js";
|
||||
import type { Tariff } from "../../types/evcc.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import type { PlanWrapper } from "./types";
|
||||
import type { Tariff } from "@/types/evcc";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ChargingPlanWarnings",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import type { Rate } from "../../types/evcc";
|
||||
import type { Rate } from "@/types/evcc";
|
||||
|
||||
export interface RepeatingPlan {
|
||||
weekdays: number[];
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ import FormRow from "./FormRow.vue";
|
|||
import PropertyEntry from "./PropertyEntry.vue";
|
||||
import PropertyCollapsible from "./PropertyCollapsible.vue";
|
||||
import TestResult from "./TestResult.vue";
|
||||
import api from "../../api";
|
||||
import api from "@/api";
|
||||
import test from "./mixins/test";
|
||||
import Modbus from "./Modbus.vue";
|
||||
import GenericModal from "../Helper/GenericModal.vue";
|
||||
|
|
|
|||
|
|
@ -82,8 +82,8 @@
|
|||
<script>
|
||||
import GenericModal from "../Helper/GenericModal.vue";
|
||||
import FormRow from "./FormRow.vue";
|
||||
import store from "../../store";
|
||||
import api from "../../api";
|
||||
import store from "@/store";
|
||||
import api from "@/api";
|
||||
|
||||
export default {
|
||||
name: "ControlModal",
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
|
||||
const NO_TRUNCATE = ["phasePowers", "phaseVoltages", "phaseCurrents"];
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { docsPrefix } from "../../i18n";
|
||||
import { docsPrefix } from "@/i18n";
|
||||
import Markdown from "./Markdown.vue";
|
||||
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -109,10 +109,10 @@
|
|||
import Modal from "bootstrap/js/dist/modal";
|
||||
import TitleModal from "./TitleModal.vue";
|
||||
import EditIcon from "../MaterialIcon/Edit.vue";
|
||||
import api from "../../api";
|
||||
import settings from "../../settings";
|
||||
import store from "../../store";
|
||||
import formatter from "../../mixins/formatter";
|
||||
import api from "@/api";
|
||||
import settings from "@/settings";
|
||||
import store from "@/store";
|
||||
import formatter from "@/mixins/formatter";
|
||||
|
||||
export default {
|
||||
name: "GeneralConfig",
|
||||
|
|
|
|||
|
|
@ -64,9 +64,9 @@
|
|||
|
||||
<script>
|
||||
import GenericModal from "../Helper/GenericModal.vue";
|
||||
import api from "../../api";
|
||||
import { docsPrefix } from "../../i18n";
|
||||
import store from "../../store";
|
||||
import api from "@/api";
|
||||
import { docsPrefix } from "@/i18n";
|
||||
import store from "@/store";
|
||||
|
||||
export default {
|
||||
name: "JsonModal",
|
||||
|
|
|
|||
|
|
@ -552,11 +552,11 @@
|
|||
import FormRow from "./FormRow.vue";
|
||||
import PropertyField from "./PropertyField.vue";
|
||||
import SelectGroup from "../Helper/SelectGroup.vue";
|
||||
import api from "../../api";
|
||||
import api from "@/api";
|
||||
import GenericModal from "../Helper/GenericModal.vue";
|
||||
import deepClone from "../../utils/deepClone";
|
||||
import deepEqual from "../../utils/deepEqual";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter";
|
||||
import deepClone from "@/utils/deepClone";
|
||||
import deepEqual from "@/utils/deepEqual";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import EditIcon from "../MaterialIcon/Edit.vue";
|
||||
|
||||
const nsPerMin = 60 * 1e9;
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ import FormRow from "./FormRow.vue";
|
|||
import PropertyEntry from "./PropertyEntry.vue";
|
||||
import PropertyCollapsible from "./PropertyCollapsible.vue";
|
||||
import TestResult from "./TestResult.vue";
|
||||
import api from "../../api";
|
||||
import api from "@/api";
|
||||
import test from "./mixins/test";
|
||||
import NewDeviceButton from "./NewDeviceButton.vue";
|
||||
import Modbus from "./Modbus.vue";
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@
|
|||
import "@h2d2/shopicons/es/regular/minus";
|
||||
import VehicleIcon from "../VehicleIcon";
|
||||
import SelectGroup from "../Helper/SelectGroup.vue";
|
||||
import formatter from "../../mixins/formatter";
|
||||
import formatter from "@/mixins/formatter";
|
||||
|
||||
const NS_PER_SECOND = 1000000000;
|
||||
|
||||
|
|
|
|||
|
|
@ -66,9 +66,9 @@ import JsonModal from "./JsonModal.vue";
|
|||
import FormRow from "./FormRow.vue";
|
||||
import Sponsor, { VICTRON_DEVICE } from "../Savings/Sponsor.vue";
|
||||
import SponsorTokenExpires from "../Savings/SponsorTokenExpires.vue";
|
||||
import store from "../../store";
|
||||
import { docsPrefix } from "../../i18n";
|
||||
import { cleanYaml } from "../../utils/cleanYaml";
|
||||
import store from "@/store";
|
||||
import { docsPrefix } from "@/i18n";
|
||||
import { cleanYaml } from "@/utils/cleanYaml";
|
||||
export default {
|
||||
name: "SponsorModal",
|
||||
components: { FormRow, JsonModal, Sponsor, SponsorTokenExpires },
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@ import PropertyEntry from "./PropertyEntry.vue";
|
|||
import PropertyCollapsible from "./PropertyCollapsible.vue";
|
||||
import GenericModal from "../Helper/GenericModal.vue";
|
||||
import Markdown from "./Markdown.vue";
|
||||
import api from "../../api";
|
||||
import api from "@/api";
|
||||
import test from "./mixins/test";
|
||||
|
||||
const initialValues = { type: "template", icon: "car" };
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
<script>
|
||||
import { VueMonacoEditor, loader } from "@guolao/vue-monaco-editor";
|
||||
import { cleanYaml } from "../../utils/cleanYaml";
|
||||
import { cleanYaml } from "@/utils/cleanYaml.js";
|
||||
|
||||
const $html = document.querySelector("html");
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@
|
|||
|
||||
<script>
|
||||
import GenericModal from "../Helper/GenericModal.vue";
|
||||
import api from "../../api";
|
||||
import { docsPrefix } from "../../i18n";
|
||||
import api from "@/api";
|
||||
import { docsPrefix } from "@/i18n";
|
||||
import YamlEditor from "./YamlEditor.vue";
|
||||
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default defineComponent({
|
||||
name: "BatteryIcon",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import type { Meta, StoryFn } from "@storybook/vue3";
|
||||
import Energyflow from "./Energyflow.vue";
|
||||
import { CURRENCY } from "../../types/evcc";
|
||||
import { CURRENCY } from "@/types/evcc";
|
||||
|
||||
export default {
|
||||
title: "Energyflow/Energyflow",
|
||||
|
|
|
|||
|
|
@ -284,13 +284,13 @@ import "@h2d2/shopicons/es/filled/square";
|
|||
import Modal from "bootstrap/js/dist/modal";
|
||||
import Visualization from "./Visualization.vue";
|
||||
import Entry from "./Entry.vue";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import AnimatedNumber from "../Helper/AnimatedNumber.vue";
|
||||
import settings from "../../settings";
|
||||
import { CO2_TYPE } from "../../units";
|
||||
import collector from "../../mixins/collector";
|
||||
import settings from "@/settings";
|
||||
import { CO2_TYPE } from "@/units";
|
||||
import collector from "@/mixins/collector";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import type { Battery, CURRENCY, Forecast, LoadpointCompact } from "../../types/evcc";
|
||||
import type { Battery, CURRENCY, Forecast, LoadpointCompact } from "@/types/evcc";
|
||||
|
||||
export default defineComponent({
|
||||
name: "Energyflow",
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ import "@h2d2/shopicons/es/regular/home";
|
|||
import "@h2d2/shopicons/es/regular/arrowdropdown";
|
||||
import Tooltip from "bootstrap/js/dist/tooltip";
|
||||
import BatteryIcon from "./BatteryIcon.vue";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import AnimatedNumber from "../Helper/AnimatedNumber.vue";
|
||||
import VehicleIcon from "../VehicleIcon";
|
||||
import ForecastIcon from "../MaterialIcon/Forecast.vue";
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import BatteryIcon from "./BatteryIcon.vue";
|
||||
import LabelBar from "./LabelBar.vue";
|
||||
import AnimatedNumber from "../Helper/AnimatedNumber.vue";
|
||||
|
|
@ -116,7 +116,7 @@ import QuestionIcon from "../MaterialIcon/Question.vue";
|
|||
import "@h2d2/shopicons/es/regular/sun";
|
||||
import "@h2d2/shopicons/es/regular/home";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import type { LoadpointCompact } from "../../types/evcc";
|
||||
import type { LoadpointCompact } from "@/types/evcc";
|
||||
|
||||
export default defineComponent({
|
||||
name: "Visualization",
|
||||
|
|
|
|||
|
|
@ -77,8 +77,8 @@ import { defineComponent, type PropType } from "vue";
|
|||
import "@h2d2/shopicons/es/regular/car1";
|
||||
import CloudOffline from "../MaterialIcon/CloudOffline.vue";
|
||||
import Sync from "../MaterialIcon/Sync.vue";
|
||||
import restart, { performRestart, restartComplete } from "../../restart.js";
|
||||
import type { FatalError } from "assets/js/types/evcc.js";
|
||||
import restart, { performRestart, restartComplete } from "@/restart";
|
||||
import type { FatalError } from "@/types/evcc";
|
||||
|
||||
export default defineComponent({
|
||||
name: "OfflineIndicator",
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@
|
|||
import Modal from "bootstrap/js/dist/modal";
|
||||
import "@h2d2/shopicons/es/regular/gift";
|
||||
import "@h2d2/shopicons/es/regular/moonstars";
|
||||
import api from "../../api.js";
|
||||
import api from "@/api";
|
||||
import Logo from "./Logo.vue";
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@
|
|||
|
||||
<script lang="ts">
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import formatter from "../../mixins/formatter";
|
||||
import { isForecastSlot, type ForecastSlot, type TimeseriesEntry } from "./types.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import { isForecastSlot, type ForecastSlot, type TimeseriesEntry } from "./types";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ForecastActiveSlot",
|
||||
|
|
|
|||
|
|
@ -33,11 +33,11 @@ import {
|
|||
import ChartDataLabels, { type Context } from "chartjs-plugin-datalabels";
|
||||
import "chartjs-adapter-dayjs-4/dist/chartjs-adapter-dayjs-4.esm";
|
||||
import { registerChartComponents, commonOptions } from "../Sessions/chartConfig";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter.ts";
|
||||
import colors, { lighterColor } from "../../colors.ts";
|
||||
import type { CURRENCY } from "../../types/evcc.ts";
|
||||
import { ForecastType, highestSlotIndexByDay } from "../../utils/forecast.ts";
|
||||
import type { ForecastSlot, SolarDetails, TimeseriesEntry } from "./types.ts";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import colors, { lighterColor } from "@/colors";
|
||||
import type { CURRENCY } from "@/types/evcc";
|
||||
import { ForecastType, highestSlotIndexByDay } from "@/utils/forecast";
|
||||
import type { ForecastSlot, SolarDetails, TimeseriesEntry } from "./types";
|
||||
|
||||
registerChartComponents([
|
||||
BarController,
|
||||
|
|
|
|||
|
|
@ -64,11 +64,11 @@
|
|||
|
||||
<script lang="ts">
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter.ts";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import AnimatedNumber from "../Helper/AnimatedNumber.vue";
|
||||
import type { CURRENCY, Timeout } from "../../types/evcc.ts";
|
||||
import { ForecastType } from "../../utils/forecast.ts";
|
||||
import type { ForecastSlot, SolarDetails } from "./types.ts";
|
||||
import type { CURRENCY, Timeout } from "@/types/evcc";
|
||||
import { ForecastType } from "@/utils/forecast";
|
||||
import type { ForecastSlot, SolarDetails } from "./types";
|
||||
const LOCALES_WITHOUT_DAY_AFTER_TOMORROW = ["en", "tr"];
|
||||
|
||||
export interface Energy {
|
||||
|
|
|
|||
|
|
@ -59,11 +59,11 @@ import TypeSelect from "./TypeSelect.vue";
|
|||
import Details from "./Details.vue";
|
||||
import ActiveSlot from "./ActiveSlot.vue";
|
||||
|
||||
import formatter from "../../mixins/formatter.ts";
|
||||
import settings from "../../settings";
|
||||
import type { CURRENCY, Forecast } from "../../types/evcc.ts";
|
||||
import { ForecastType, adjustedSolar } from "../../utils/forecast.ts";
|
||||
import type { ForecastSlot, TimeseriesEntry } from "./types.ts";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import settings from "@/settings";
|
||||
import type { CURRENCY, Forecast } from "@/types/evcc";
|
||||
import { ForecastType, adjustedSolar } from "@/utils/forecast";
|
||||
import type { ForecastSlot, TimeseriesEntry } from "./types";
|
||||
export default defineComponent({
|
||||
name: "ForecastModal",
|
||||
components: {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import { defineComponent } from "vue";
|
|||
import IconSelectItem from "../Helper/IconSelectItem.vue";
|
||||
import IconSelectGroup from "../Helper/IconSelectGroup.vue";
|
||||
import DynamicPriceIcon from "../MaterialIcon/DynamicPrice.vue";
|
||||
import { ForecastType } from "../../utils/forecast.ts";
|
||||
import { ForecastType } from "@/utils/forecast";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ForecastTypeSelect",
|
||||
|
|
|
|||
|
|
@ -28,14 +28,16 @@
|
|||
</Teleport>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
<script lang="ts">
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import UserInterfaceSettings from "./UserInterfaceSettings.vue";
|
||||
import type { Sponsor } from "@/types/evcc";
|
||||
|
||||
export default {
|
||||
export default defineComponent({
|
||||
name: "GlobalSettingsModal",
|
||||
components: { UserInterfaceSettings },
|
||||
props: {
|
||||
sponsor: { type: Object, default: () => ({}) },
|
||||
sponsor: { type: Object as PropType<Sponsor>, default: () => ({}) },
|
||||
},
|
||||
};
|
||||
});
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
class="form-select form-select-sm w-75"
|
||||
>
|
||||
<option value="">{{ $t("settings.language.auto") }}</option>
|
||||
<option v-for="option in languageOptions" :key="option" :value="option.value">
|
||||
<option v-for="option in languageOptions" :key="option.value" :value="option.value">
|
||||
{{ option.name }}
|
||||
</option>
|
||||
</select>
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
/>
|
||||
</FormRow>
|
||||
<FormRow id="telemetryEnabled" :label="$t('settings.telemetry.label')">
|
||||
<TelemetrySettings :sponsorActive="!!sponsor.name" class="mt-1 mb-0" />
|
||||
<TelemetrySettings :sponsorActive="sponsor && !!sponsor.name" class="mt-1 mb-0" />
|
||||
</FormRow>
|
||||
<FormRow id="hiddenFeaturesEnabled" :label="`${$t('settings.hiddenFeatures.label')} 🧪`">
|
||||
<div class="form-check form-switch my-1">
|
||||
|
|
@ -76,26 +76,23 @@
|
|||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
<script lang="ts">
|
||||
import TelemetrySettings from "../TelemetrySettings.vue";
|
||||
import FormRow from "../Helper/FormRow.vue";
|
||||
import SelectGroup from "../Helper/SelectGroup.vue";
|
||||
import {
|
||||
getLocalePreference,
|
||||
setLocalePreference,
|
||||
LOCALES,
|
||||
removeLocalePreference,
|
||||
} from "../../i18n.js";
|
||||
import { getThemePreference, setThemePreference, THEMES } from "../../theme.js";
|
||||
import { getUnits, setUnits, UNITS } from "../../units.js";
|
||||
import { getHiddenFeatures, setHiddenFeatures } from "../../featureflags.js";
|
||||
import { isApp } from "../../utils/native.js";
|
||||
import { getLocalePreference, setLocalePreference, LOCALES, removeLocalePreference } from "@/i18n";
|
||||
import { getThemePreference, setThemePreference, THEMES } from "@/theme";
|
||||
import { getUnits, setUnits, UNITS } from "@/units";
|
||||
import { getHiddenFeatures, setHiddenFeatures } from "@/featureflags";
|
||||
import { isApp } from "@/utils/native";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import type { Sponsor } from "@/types/evcc";
|
||||
|
||||
export default {
|
||||
export default defineComponent({
|
||||
name: "UserInterfaceSettings",
|
||||
components: { TelemetrySettings, FormRow, SelectGroup },
|
||||
props: {
|
||||
sponsor: Object,
|
||||
sponsor: Object as PropType<Sponsor>,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -120,7 +117,8 @@ export default {
|
|||
fullscreenAvailable: () => {
|
||||
const isSupported = document.fullscreenEnabled;
|
||||
const isPwa =
|
||||
navigator.standalone || window.matchMedia("(display-mode: standalone)").matches;
|
||||
(navigator as any).standalone ||
|
||||
window.matchMedia("(display-mode: standalone)").matches;
|
||||
return isSupported && !isPwa && !isApp();
|
||||
},
|
||||
},
|
||||
|
|
@ -135,7 +133,7 @@ export default {
|
|||
setHiddenFeatures(value);
|
||||
},
|
||||
language(value) {
|
||||
const i18n = this.$root.$i18n;
|
||||
const i18n = this.$root?.$i18n;
|
||||
if (value) {
|
||||
setLocalePreference(i18n, value);
|
||||
} else {
|
||||
|
|
@ -160,5 +158,5 @@ export default {
|
|||
this.fullscreenActive = !!document.fullscreenElement;
|
||||
},
|
||||
},
|
||||
};
|
||||
});
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -138,8 +138,8 @@
|
|||
|
||||
<script>
|
||||
import Modal from "bootstrap/js/dist/modal";
|
||||
import { docsPrefix } from "../i18n.js";
|
||||
import { performRestart } from "../restart.js";
|
||||
import { docsPrefix } from "../i18n";
|
||||
import { performRestart } from "../restart";
|
||||
import { isLoggedIn, openLoginModal } from "./Auth/auth";
|
||||
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import type { SelectOption } from "../../types/evcc";
|
||||
import type { SelectOption } from "@/types/evcc";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
|
|
|
|||
|
|
@ -50,9 +50,9 @@
|
|||
|
||||
<script lang="ts">
|
||||
import Dropdown from "bootstrap/js/dist/dropdown";
|
||||
import deepEqual from "../../utils/deepEqual.js";
|
||||
import deepEqual from "@/utils/deepEqual";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
import type { SelectOption } from "assets/js/types/evcc.js";
|
||||
import type { SelectOption } from "@/types/evcc";
|
||||
|
||||
export default defineComponent({
|
||||
name: "MultiSelect",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import { reactive } from "vue";
|
||||
import SelectGroup from "./SelectGroup.vue";
|
||||
import type { SelectOption } from "assets/js/types/evcc";
|
||||
import type { SelectOption } from "@/types/evcc";
|
||||
|
||||
const state = reactive({
|
||||
value: "orange",
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import type { SelectOption } from "assets/js/types/evcc";
|
||||
import type { SelectOption } from "@/types/evcc";
|
||||
import { defineComponent, type PropType } from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
|
|
|
|||
|
|
@ -93,18 +93,18 @@
|
|||
<script>
|
||||
import "@h2d2/shopicons/es/regular/lightning";
|
||||
import "@h2d2/shopicons/es/regular/adjust";
|
||||
import api from "../../api.js";
|
||||
import api from "@/api";
|
||||
import Mode from "./Mode.vue";
|
||||
import Vehicle from "../Vehicles/Vehicle.vue";
|
||||
import Phases from "./Phases.vue";
|
||||
import LabelAndValue from "../Helper/LabelAndValue.vue";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter.js";
|
||||
import collector from "../../mixins/collector.js";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import collector from "@/mixins/collector";
|
||||
import SettingsButton from "./SettingsButton.vue";
|
||||
import SettingsModal from "./SettingsModal.vue";
|
||||
import VehicleIcon from "../VehicleIcon/index.js";
|
||||
import VehicleIcon from "../VehicleIcon";
|
||||
import SessionInfo from "./SessionInfo.vue";
|
||||
import smartCostAvailable from "../../utils/smartCostAvailable.js";
|
||||
import smartCostAvailable from "@/utils/smartCostAvailable";
|
||||
import Modal from "bootstrap/js/dist/modal";
|
||||
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@
|
|||
<script>
|
||||
import LabelAndValue from "../Helper/LabelAndValue.vue";
|
||||
import CustomSelect from "../Helper/CustomSelect.vue";
|
||||
import formatter from "../../mixins/formatter.ts";
|
||||
import { getSessionInfo, setSessionInfo } from "./session.ts";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import { getSessionInfo, setSessionInfo } from "./session";
|
||||
|
||||
export default {
|
||||
name: "LoadpointSessionInfo",
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
|
||||
export default {
|
||||
mixins: [formatter],
|
||||
|
|
|
|||
|
|
@ -156,10 +156,10 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import collector from "../../mixins/collector.js";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import collector from "@/mixins/collector";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import SmartCostLimit from "../Tariff/SmartCostLimit.vue";
|
||||
import smartCostAvailable from "../../utils/smartCostAvailable.js";
|
||||
import smartCostAvailable from "@/utils/smartCostAvailable";
|
||||
import SettingsBatteryBoost from "./SettingsBatteryBoost.vue";
|
||||
|
||||
const V = 230;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import settings from "../../settings.js";
|
||||
import settings from "@/settings";
|
||||
|
||||
export function getSessionInfo(index: number, fallback: string) {
|
||||
return settings.sessionInfo[index - 1] || fallback;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Add",
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "BatteryBoost",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Circuits",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Climater",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "CloudOffline",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Dropdown",
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "DynamicPrice",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Edit",
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Eebus",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Forecast",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Hems",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Influx",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Loadpoint",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "ModbusProxy",
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Mqtt",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Notification",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "PlanEnd",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "PlanStart",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Play",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Question",
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Reconnect",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Record",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Restart",
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "RfidWait",
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "SunDown",
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "SunUp",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Sync",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "TempLimit",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Total",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "VehicleLimit",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "VehicleLimitReached",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "VehicleLimitWarning",
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "VehicleMinSoc",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import icon from "../../mixins/icon";
|
||||
import icon from "@/mixins/icon";
|
||||
|
||||
export default {
|
||||
name: "Welcome",
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@
|
|||
<script>
|
||||
import Tile from "./Tile.vue";
|
||||
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import communityApi from "./communityApi.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import communityApi from "./communityApi";
|
||||
|
||||
const UPDATE_INTERVAL_SECONDS = 10;
|
||||
|
||||
|
|
|
|||
|
|
@ -203,16 +203,16 @@
|
|||
|
||||
<script>
|
||||
import Modal from "bootstrap/js/dist/modal";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import Sponsor from "./Sponsor.vue";
|
||||
import Tile from "./Tile.vue";
|
||||
import LiveCommunity from "./LiveCommunity.vue";
|
||||
import TelemetrySettings from "../TelemetrySettings.vue";
|
||||
import CustomSelect from "../Helper/CustomSelect.vue";
|
||||
import co2Reference from "./co2Reference.js";
|
||||
import settings from "../../settings.js";
|
||||
import api, { allowClientError } from "../../api.js";
|
||||
import { docsPrefix } from "../../i18n.js";
|
||||
import co2Reference from "./co2Reference";
|
||||
import settings from "@/settings";
|
||||
import api, { allowClientError } from "@/api";
|
||||
import { docsPrefix } from "@/i18n";
|
||||
|
||||
export default {
|
||||
name: "Savings",
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ import confetti from "canvas-confetti";
|
|||
import "@h2d2/shopicons/es/regular/heart";
|
||||
import "@h2d2/shopicons/es/regular/stars";
|
||||
import "@h2d2/shopicons/es/regular/clock";
|
||||
import { docsPrefix } from "../../i18n.js";
|
||||
import { docsPrefix } from "@/i18n";
|
||||
|
||||
export const TRIAL = "trial";
|
||||
export const VICTRON_DEVICE = "victron";
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import { TRIAL } from "./Sponsor.vue";
|
||||
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ import "@h2d2/shopicons/es/regular/receivepayment";
|
|||
import "@h2d2/shopicons/es/regular/car3";
|
||||
import "@h2d2/shopicons/es/regular/eco1";
|
||||
import AnimatedNumber from "../Helper/AnimatedNumber.vue";
|
||||
import formatter from "../../mixins/formatter.js";
|
||||
import formatter from "@/mixins/formatter";
|
||||
|
||||
export default {
|
||||
name: "SavingsTile",
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@
|
|||
import { PolarArea } from "vue-chartjs";
|
||||
import { RadialLinearScale, ArcElement, Legend, Tooltip } from "chart.js";
|
||||
import { registerChartComponents, commonOptions, tooltipLabelColor } from "./chartConfig";
|
||||
import formatter from "../../mixins/formatter";
|
||||
import colors, { dimColor } from "../../colors";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import colors, { dimColor } from "@/colors";
|
||||
import { TYPES, GROUPS } from "./types";
|
||||
import LegendList from "./LegendList.vue";
|
||||
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ import { Doughnut } from "vue-chartjs";
|
|||
import { DoughnutController, ArcElement, LinearScale, Legend, Tooltip } from "chart.js";
|
||||
import LegendList from "./LegendList.vue";
|
||||
import { registerChartComponents, commonOptions, tooltipLabelColor } from "./chartConfig";
|
||||
import formatter from "../../mixins/formatter";
|
||||
import colors from "../../colors";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import colors from "@/colors";
|
||||
import { TYPES, GROUPS } from "./types";
|
||||
|
||||
registerChartComponents([DoughnutController, ArcElement, LinearScale, Legend, Tooltip]);
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ import {
|
|||
} from "chart.js";
|
||||
import { registerChartComponents, commonOptions, tooltipLabelColor } from "./chartConfig";
|
||||
import LegendList from "./LegendList.vue";
|
||||
import formatter from "../../mixins/formatter";
|
||||
import colors from "../../colors";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import colors from "@/colors";
|
||||
import { TYPES, GROUPS, PERIODS } from "./types";
|
||||
|
||||
registerChartComponents([
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@
|
|||
<script>
|
||||
import CustomSelect from "../Helper/CustomSelect.vue";
|
||||
import DateNavigatorButton from "./DateNavigatorButton.vue";
|
||||
import formatter from "../../mixins/formatter";
|
||||
import formatter from "@/mixins/formatter";
|
||||
|
||||
export default {
|
||||
name: "DateNavigator",
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ import { Doughnut } from "vue-chartjs";
|
|||
import { DoughnutController, ArcElement, LinearScale, Legend, Tooltip } from "chart.js";
|
||||
import LegendList from "./LegendList.vue";
|
||||
import { registerChartComponents, commonOptions, tooltipLabelColor } from "./chartConfig";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter";
|
||||
import colors from "../../colors";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import colors from "@/colors";
|
||||
import { GROUPS } from "./types";
|
||||
|
||||
registerChartComponents([DoughnutController, ArcElement, LinearScale, Legend, Tooltip]);
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import { Bar } from "vue-chartjs";
|
|||
import { BarController, BarElement, CategoryScale, LinearScale, Legend, Tooltip } from "chart.js";
|
||||
import { registerChartComponents, commonOptions, tooltipLabelColor } from "./chartConfig";
|
||||
import LegendList from "./LegendList.vue";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter";
|
||||
import colors from "../../colors";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import colors from "@/colors";
|
||||
import { GROUPS, PERIODS } from "./types";
|
||||
|
||||
registerChartComponents([BarController, BarElement, CategoryScale, LinearScale, Legend, Tooltip]);
|
||||
|
|
|
|||
|
|
@ -197,11 +197,11 @@
|
|||
<script>
|
||||
import "@h2d2/shopicons/es/regular/checkmark";
|
||||
import Modal from "bootstrap/js/dist/modal";
|
||||
import formatter from "../../mixins/formatter";
|
||||
import formatter from "@/mixins/formatter";
|
||||
import Options from "../Vehicles/Options.vue";
|
||||
import CustomSelect from "../Helper/CustomSelect.vue";
|
||||
import { distanceUnit, distanceValue } from "../../units";
|
||||
import api from "../../api";
|
||||
import { distanceUnit, distanceValue } from "@/units";
|
||||
import api from "@/api";
|
||||
|
||||
export default {
|
||||
name: "SessionDetailsModal",
|
||||
|
|
|
|||
|
|
@ -158,9 +158,9 @@
|
|||
|
||||
<script>
|
||||
import CustomSelect from "../Helper/CustomSelect.vue";
|
||||
import formatter, { POWER_UNIT } from "../../mixins/formatter";
|
||||
import breakpoint from "../../mixins/breakpoint";
|
||||
import settings from "../../settings";
|
||||
import formatter, { POWER_UNIT } from "@/mixins/formatter";
|
||||
import breakpoint from "@/mixins/breakpoint";
|
||||
import settings from "@/settings";
|
||||
|
||||
const COLUMNS_PER_BREAKPOINT = {
|
||||
xs: 1,
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue