@@ -3,10 +3,26 @@ import "./customList.scss";
33/**
44 * adding custom list item, alowing extra list style
55 */
6+
7+ export const STANDARD_LIST_TYPES = [ "ordered" , "checked" , "unchecked" , "bullet" ] ;
8+
69export default class CustomListItem extends ListItem {
10+ format ( name : string , value : string ) : void {
11+ if ( name === this . statics . blotName && value ) {
12+ if ( ! STANDARD_LIST_TYPES . find ( x => x === value ) ) {
13+ this . domNode . setAttribute ( "data-custom-list" , value ) ;
14+ this . domNode . setAttribute ( "data-list" , "ordered" ) ;
15+ } else {
16+ this . domNode . setAttribute ( "data-list" , value ) ;
17+ }
18+ } else {
19+ super . format ( name , value ) ;
20+ }
21+ }
22+
723 static create ( value : any ) : any {
824 const node = super . create ( value ) as HTMLElement ;
9- if ( ! [ "ordered" , "checked" , "unchecked" , "bullet" ] . find ( x => x === value ) ) {
25+ if ( ! STANDARD_LIST_TYPES . find ( x => x === value ) ) {
1026 node . setAttribute ( "data-custom-list" , value ) ;
1127 node . setAttribute ( "data-list" , "ordered" ) ;
1228 } else {
@@ -15,4 +31,8 @@ export default class CustomListItem extends ListItem {
1531 node . setAttribute ( "title" , this . blotName ) ;
1632 return node ;
1733 }
34+
35+ static formats ( domNode : HTMLElement ) : string | undefined {
36+ return domNode . dataset . customList || domNode . dataset . list || undefined ;
37+ }
1838}
0 commit comments