mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-17 07:18:04 +08:00
* Upgrade to Vue CLI 5 (fails to compile) * Upgrade versions with last few weeks of changes * Updated to fork-ts-checker-webpack-plugin 7.2.3 * Remove package.json overrides in lieu of the fixed fork-ts-checker-webpack-plugin@6.5.1 * Fix svg importing * Comments * For debugging only: added infrastructureLogging to vue.config.js * Now works on Windows, waiting on fork-ts-checker-webpack-plugin backport if possible * Switch to the fixed fork-ts-checker-webpack-plugin@6.5.2 * Fix license checker build compilation Co-authored-by: 0hypercube <0hypercube@gmail.com>
48 lines
1.1 KiB
Vue
48 lines
1.1 KiB
Vue
<template>
|
|
<div class="widget-layout">
|
|
<template v-for="(layoutRow, index) in layout.layout" :key="index">
|
|
<component :is="layoutRowType(layoutRow)" :widgetData="layoutRow" :layoutTarget="layout.layout_target"></component>
|
|
</template>
|
|
</div>
|
|
</template>
|
|
|
|
<style lang="scss">
|
|
.widget-layout {
|
|
height: 100%;
|
|
flex: 0 0 auto;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
</style>
|
|
|
|
<script lang="ts">
|
|
import { defineComponent, PropType } from "vue";
|
|
|
|
import { isWidgetRow, isWidgetSection, LayoutRow, WidgetLayout } from "@/dispatcher/js-messages";
|
|
|
|
import WidgetRow from "@/components/widgets/WidgetRow.vue";
|
|
import WidgetSection from "@/components/widgets/WidgetSection.vue";
|
|
|
|
export default defineComponent({
|
|
props: {
|
|
layout: { type: Object as PropType<WidgetLayout>, required: true },
|
|
},
|
|
methods: {
|
|
layoutRowType(layoutRow: LayoutRow): unknown {
|
|
if (isWidgetRow(layoutRow)) return WidgetRow;
|
|
if (isWidgetSection(layoutRow)) return WidgetSection;
|
|
|
|
throw new Error("Layout row type does not exist");
|
|
},
|
|
},
|
|
data: () => ({
|
|
isWidgetRow,
|
|
isWidgetSection,
|
|
}),
|
|
components: {
|
|
WidgetRow,
|
|
WidgetSection,
|
|
},
|
|
});
|
|
</script>
|