@@ -27,46 +27,51 @@ class SortingParser extends TypeParser<Literal> {
2727 }
2828
2929 private parseToPlainText ( wrapped : WrappedLiteral ) {
30- let plainText : string ;
3130 switch ( wrapped . type ) {
3231 case 'boolean' :
3332 case 'number' :
34- plainText = wrapped . value . toString ( ) ;
35- break ;
33+ return wrapped . value . toString ( ) ;
3634 case 'array' :
37- plainText = wrapped . value
35+ if ( DataviewService . isSTaskArray ( wrapped . value ) ) {
36+ return wrapped . value . reduce ( ( acc , curr ) => {
37+ if ( ! curr . completed ) {
38+ acc += 1 ;
39+ }
40+ return acc
41+ } , 0 ) ;
42+ }
43+ return wrapped . value
3844 . map (
3945 v => this . parse (
4046 DataviewService . wrapLiteral ( v ) ,
4147 )
4248 ) . join ( ', ' ) ;
43- break ;
4449 case 'link' :
45- plainText = wrapped . value . markdown ( ) ;
46- break ;
50+ return wrapped . value . markdown ( ) ;
4751 case 'date' :
4852 if ( wrapped . value . hour === 0 && wrapped . value . minute === 0 && wrapped . value . second === 0 ) {
4953 // Parse date
50-
51- plainText = parseLuxonDatetimeToString ( wrapped . value , this . config . date_format ) ;
54+ return parseLuxonDatetimeToString ( wrapped . value , this . config . date_format ) ;
5255 } else {
5356 // Parse datetime
54- plainText = parseLuxonDateToString ( wrapped . value , this . config . datetime_format ) ;
57+ return parseLuxonDateToString ( wrapped . value , this . config . datetime_format ) ;
5558 }
56- break ;
5759 case 'object' :
5860 if ( DateTime . isDateTime ( wrapped . value ) ) {
59- plainText = this . parse ( { type : 'date' , value : wrapped . value } ) ;
60- } else {
61- plainText = JSON . stringify ( wrapped . value ) ;
61+ return this . parse ( { type : 'date' , value : wrapped . value } ) ;
6262 }
63- break ;
63+
64+ if ( DataviewService . isStasks ( wrapped . value ) ) {
65+ return wrapped . value . completed ? '0' : '1' ;
66+ }
67+
68+ return JSON . stringify ( wrapped . value ) ;
6469 default :
65- plainText = wrapped . value ?. toString ( ) . trim ( ) ;
70+ return wrapped . value ?. toString ( ) . trim ( ) ;
6671 }
67-
68- return plainText ;
6972 }
73+
74+
7075}
7176
7277export default SortingParser ;
0 commit comments