@@ -8,11 +8,139 @@ import about from '../content_md/about.js'
88// import demo from '../content_md/demo.js'
99// console.log('mksContent', mksContent)
1010
11+
12+ const sort_materialtype = ( entries ) => {
13+ // material_type
14+ // - controller
15+ // - input
16+ // - output
17+ // console.log('entries', entries)
18+ let materialtype_controller = entries . filter (
19+ ( [ , obj ] ) => obj . meta . material_type == 'controller' ,
20+ )
21+ let materialtype_input = entries . filter ( ( [ , obj ] ) => obj . meta . material_type == 'input' )
22+ let materialtype_output = entries . filter ( ( [ , obj ] ) => obj . meta . material_type == 'output' )
23+ let materialtype_rest = entries . filter (
24+ ( [ , obj ] ) => ! [ 'controller' , 'input' , 'output' ] . includes ( obj . meta . material_type ) ,
25+ )
26+
27+ const sort_local = ( [ key1 ] , [ key2 ] ) => {
28+ return key1 . localeCompare ( key2 )
29+ }
30+
31+ materialtype_controller . sort ( sort_local )
32+ materialtype_input . sort ( sort_local )
33+ materialtype_output . sort ( sort_local )
34+ materialtype_rest . sort ( sort_local )
35+
36+ // console.log('materialtype_controller', materialtype_controller)
37+ // console.log('materialtype_input', materialtype_input)
38+ // console.log('materialtype_output', materialtype_output)
39+ // console.log('materialtype_rest', materialtype_rest)
40+ const result = [
41+ ...materialtype_controller ,
42+ ...materialtype_input ,
43+ ...materialtype_output ,
44+ ...materialtype_rest ,
45+ ]
46+ return result
47+ }
48+
49+ const sort_difficulty = ( entries ) => {
50+ // difficulty
51+ // - recommend
52+ // - advanced
53+ // - expert
54+ // console.log('entries', entries)
55+ let difficulty_recommend = entries . filter ( ( [ , obj ] ) => obj . meta . difficulty == 'recommend' )
56+ let difficulty_advanced = entries . filter ( ( [ , obj ] ) => obj . meta . difficulty == 'advanced' )
57+ let difficulty_expert = entries . filter ( ( [ , obj ] ) => obj . meta . difficulty == 'expert' )
58+ let difficulty_rest = entries . filter (
59+ ( [ , obj ] ) => ! [ 'recommend' , 'advanced' , 'expert' ] . includes ( obj . meta . difficulty ) ,
60+ )
61+
62+ // const sort_local = ([key1], [key2]) => {
63+ // return key1.localeCompare(key2)
64+ // }
65+
66+ // difficulty_recommend.sort(sort_local)
67+ // difficulty_advanced.sort(sort_local)
68+ // difficulty_expert.sort(sort_local)
69+ // difficulty_rest.sort(sort_local)
70+
71+ difficulty_recommend = sort_materialtype ( difficulty_recommend )
72+ difficulty_advanced = sort_materialtype ( difficulty_advanced )
73+ difficulty_expert = sort_materialtype ( difficulty_expert )
74+ difficulty_rest = sort_materialtype ( difficulty_rest )
75+
76+ // console.log('difficulty_recommend', difficulty_recommend)
77+ // console.log('difficulty_advanced', difficulty_advanced)
78+ // console.log('difficulty_expert', difficulty_expert)
79+ // console.log('difficulty_rest', difficulty_rest)
80+ const result = [
81+ ...difficulty_recommend ,
82+ ...difficulty_advanced ,
83+ ...difficulty_expert ,
84+ ...difficulty_rest ,
85+ ]
86+ return result
87+ }
88+
89+ const mks_items_sorted = ( mks_parts_raw ) => {
90+ // sort:
91+ // status
92+ // - active
93+ // - deprecated
94+ // - EOL
95+ // every status group should be sorted by difficulty.
96+ // difficulty
97+ // - recommend
98+ // - advanced
99+ // - expert
100+ // console.group('mks_items_sorted')
101+ // console.log('mks_parts_raw', mks_parts_raw)
102+ const entries = Object . entries ( mks_parts_raw )
103+ // console.log('entries', entries)
104+ let status_active = entries . filter ( ( [ , obj ] ) => obj . meta . status == 'active' )
105+ let status_deprecated = entries . filter ( ( [ , obj ] ) => obj . meta . status == 'deprecated' )
106+ let status_EOL = entries . filter ( ( [ , obj ] ) => obj . meta . status == 'EOL' )
107+ let status_rest = entries . filter (
108+ ( [ , obj ] ) => ! [ 'active' , 'deprecated' , 'EOL' ] . includes ( obj . meta . status ) ,
109+ )
110+
111+ // for every group we sort it again with the difficulty:
112+ status_active = sort_difficulty ( status_active )
113+ status_deprecated = sort_difficulty ( status_deprecated )
114+ status_EOL = sort_difficulty ( status_EOL )
115+ status_rest = sort_difficulty ( status_rest )
116+
117+ // console.log('status_active', status_active)
118+ // console.log('status_deprecated', status_deprecated)
119+ // console.log('status_EOL', status_EOL)
120+ // console.log('status_rest', status_rest)
121+
122+ const sortedEntries = [
123+ ...status_active ,
124+ ...status_deprecated ,
125+ ...status_rest ,
126+ ...status_EOL ,
127+ // ...mks_parts.value,
128+ // ...entries,
129+ ]
130+ // console.log('sortedEntries', sortedEntries)
131+ const sortedEntriesObj = Object . fromEntries ( sortedEntries )
132+ // console.log('sortedEntriesObj', sortedEntriesObj)
133+ // console.groupEnd()
134+ return sortedEntriesObj
135+ // return sortedEntries
136+ }
137+
11138export const useMDContentStore = defineStore ( 'MDContent' , {
12139 state : ( ) => ( {
13140 mks : {
14141 welcome : mksContent . welcome ,
15142 parts : mksContent . parts ,
143+ parts_sorted : mks_items_sorted ( mksContent . parts ) ,
16144 tags : mksContent . tags ,
17145 // abbr: mksAbbr,
18146 } ,
0 commit comments