diff --git a/confiture-web-app/.eslintrc b/confiture-web-app/.eslintrc index 52745e466..1c1d68717 100644 --- a/confiture-web-app/.eslintrc +++ b/confiture-web-app/.eslintrc @@ -17,6 +17,18 @@ }, "rules": { "vue/multi-word-component-names": "off", + "no-irregular-whitespace": "off", + "vue/no-irregular-whitespace": [ + "error", + { + "skipStrings": true, + "skipComments": true, + "skipRegExps": true, + "skipTemplates": true, + "skipHTMLAttributeValues": true, + "skipHTMLTextContents": true + } + ], "vue/no-v-html": "off", "no-duplicate-imports": "error", "@typescript-eslint/no-explicit-any": "off", diff --git a/confiture-web-app/src/components/audit/AraTabs.vue b/confiture-web-app/src/components/audit/AraTabs.vue index 45711da3b..36d7daa89 100644 --- a/confiture-web-app/src/components/audit/AraTabs.vue +++ b/confiture-web-app/src/components/audit/AraTabs.vue @@ -1,61 +1,164 @@ - @@ -65,17 +168,21 @@ watch(currentTab, (currentTab) => { --> diff --git a/confiture-web-app/src/components/audit/AraTabsPanel.vue b/confiture-web-app/src/components/audit/AraTabsPanel.vue new file mode 100644 index 000000000..29fe3c1c8 --- /dev/null +++ b/confiture-web-app/src/components/audit/AraTabsPanel.vue @@ -0,0 +1,27 @@ + + + diff --git a/confiture-web-app/src/components/audit/AraTabsTabData.ts b/confiture-web-app/src/components/audit/AraTabsTabData.ts new file mode 100644 index 000000000..856482fd9 --- /dev/null +++ b/confiture-web-app/src/components/audit/AraTabsTabData.ts @@ -0,0 +1,32 @@ +import { type Component } from "vue"; + +import LayoutIcon from "../../components/icons/LayoutIcon.vue"; +import { slugify } from "../../utils"; + +export class AraTabsTabData { + label: string; + #slug: string; // do not allow slug to be defined from outside + icon: typeof LayoutIcon | undefined; + component: Component; + componentParams: object | undefined; + + constructor(data: { + label: string; + icon?: typeof LayoutIcon; + component: Component; + componentParams?: object; + }) { + const label = data.label; + this.label = label; + this.#slug = slugify(label); + this.icon = data.icon; + this.component = data.component; + this.componentParams = data.componentParams; + } + + // TODO: check how to expose "slug" to DevTools + // Currently it is not exposed because #slug is private + public get slug(): string { + return this.#slug; + } +} diff --git a/confiture-web-app/src/components/audit/AuditGenerationFilters.vue b/confiture-web-app/src/components/audit/AuditGenerationFilters.vue index 36edec1ab..da7315985 100644 --- a/confiture-web-app/src/components/audit/AuditGenerationFilters.vue +++ b/confiture-web-app/src/components/audit/AuditGenerationFilters.vue @@ -259,8 +259,8 @@ const notApplicableCount = computed( class="topic-filter-item" :style="{ '--topic-filter-value': topic.value + '%' }" > - {{ topic.number }}. @@ -269,7 +269,7 @@ const notApplicableCount = computed( >{{ topic.value }}%
- + diff --git a/confiture-web-app/src/components/audit/AuditGenerationHeader.vue b/confiture-web-app/src/components/audit/AuditGenerationHeader.vue index 90608224f..377019af8 100644 --- a/confiture-web-app/src/components/audit/AuditGenerationHeader.vue +++ b/confiture-web-app/src/components/audit/AuditGenerationHeader.vue @@ -289,7 +289,7 @@ onMounted(() => {
    diff --git a/confiture-web-app/src/components/audit/AuditSettingsForm.vue b/confiture-web-app/src/components/audit/AuditSettingsForm.vue index be36ed496..e84ed72b2 100644 --- a/confiture-web-app/src/components/audit/AuditSettingsForm.vue +++ b/confiture-web-app/src/components/audit/AuditSettingsForm.vue @@ -1,8 +1,8 @@