66
77import { type Arsredovisning } from " @/model/arsredovisning/Arsredovisning.ts" ;
88import EditBelopprad from " @/components/edit/blocks/EditBelopprad.vue" ;
9+ import { createBeloppradInList } from " @/model/arsredovisning/Belopprad.ts" ;
10+ import { getTaxonomyManager } from " @/util/TaxonomyManager.ts" ;
11+ import { getValueColumnHeaderCell } from " @/util/noterUtils.ts" ;
12+ import { usePrepopulateSection } from " @/components/edit/composables/usePrepopulateSection.ts" ;
913import {
10- createBeloppradInList ,
11- deleteBelopprad ,
12- isBeloppradInTaxonomyItemList ,
13- } from " @/model/arsredovisning/Belopprad.ts" ;
14- import {
15- getTaxonomyManager ,
1614 type TaxonomyItem ,
1715 TaxonomyRootName ,
18- } from " @/util/TaxonomyManager.ts" ;
19- import EditItemSelector from " @/components/edit/blocks/EditItemSelector.vue" ;
20- import { getValueColumnHeaderCell } from " @/util/noterUtils.ts" ;
16+ } from " @/model/taxonomy/TaxonomyItem.ts" ;
2117
2218// TaxonomyManager och rader
2319const taxonomyManager = await getTaxonomyManager (TaxonomyRootName .NOTER );
@@ -37,17 +33,29 @@ function addBelopprad(taxonomyItem: TaxonomyItem) {
3733 taxonomyItem ,
3834 );
3935}
36+
37+ const { prepopulateSection, groupPrepopulatedSection } = usePrepopulateSection ({
38+ taxonomyManager ,
39+ availableTaxonomyItems ,
40+ arsredovisning: arsredovisning ,
41+ sectionName: " noter" ,
42+ maxNumPreviousYears: 1 ,
43+ });
44+
45+ const belopprader = prepopulateSection ();
46+ const groups = [
47+ availableTaxonomyItems .children [0 ].children [0 ],
48+ ... availableTaxonomyItems .children [0 ].children
49+ .slice (1 )
50+ .flatMap ((c ) => c .children ),
51+ ];
52+ const groupedBelopprader = groupPrepopulatedSection (belopprader , groups );
4053 </script >
4154
4255<template >
4356 <div class =" accordion" >
4457 <div
45- v-for =" (group, groupIndex) in [
46- availableTaxonomyItems.children[0].children[0],
47- ...availableTaxonomyItems.children[0].children
48- .slice(1)
49- .flatMap((c) => c.children),
50- ]"
58+ v-for =" (group, groupIndex) in groups"
5159 :key =" groupIndex"
5260 class =" accordion-item"
5361 >
@@ -89,45 +97,23 @@ function addBelopprad(taxonomyItem: TaxonomyItem) {
8997 "
9098 v-if =" arsredovisning.verksamhetsarTidigare.length > 0"
9199 />
92- <th scope =" col" ><!-- Ta bort-knapp --> </th >
93100 </tr >
94101 </thead >
95102 <tbody >
96103 <EditBelopprad
97- v-for =" [index, belopprad] in [
98- ...arsredovisning.noter.entries(),
99- ].filter(([, b]) =>
100- isBeloppradInTaxonomyItemList(
101- [group, ...group.childrenFlat],
102- b,
103- ),
104- )"
104+ v-for =" (belopprad, index) in groupedBelopprader[groupIndex]"
105105 :key =" belopprad.taxonomyItemName"
106- v-model:belopprad =" arsredovisning.noter [index]"
107- v-model:belopprader =" arsredovisning.noter "
106+ v-model:belopprad =" groupedBelopprader[groupIndex] [index]"
107+ v-model:belopprader =" groupedBelopprader[groupIndex] "
108108 :comparable-num-previous-years ="
109109 Math.min(arsredovisning.verksamhetsarTidigare.length, 1)
110110 "
111111 :string-minimum-level =" 1"
112112 :taxonomy-manager =" taxonomyManager"
113- allow-delete
114113 string-multiline
115- @delete ="
116- () =>
117- deleteBelopprad(
118- taxonomyManager,
119- belopprad,
120- arsredovisning.noter,
121- )
122- "
123114 />
124115 </tbody >
125116 </table >
126-
127- <EditItemSelector
128- :taxonomy-items =" [group, ...group.childrenFlat]"
129- @add-belopprad =" addBelopprad"
130- />
131117 </div >
132118 </div >
133119 </div >
0 commit comments