]>
git.immae.eu Git - perso/Immae/Projets/packagist/ludivine-ckeditor-component.git/blob - sources/plugins/liststyle/dialogs/liststyle.js
4f8f39b0d7b2abb92f289868497a23dca54deb12
2 * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
7 function getListElement( editor
, listTag
) {
10 range
= editor
.getSelection().getRanges()[ 0 ];
15 range
.shrink( CKEDITOR
.SHRINK_TEXT
);
16 return editor
.elementPath( range
.getCommonAncestor() ).contains( listTag
, 1 );
19 var listItem = function( node
) {
20 return node
.type
== CKEDITOR
.NODE_ELEMENT
&& node
.is( 'li' );
34 function listStyle( editor
, startupPage
) {
35 var lang
= editor
.lang
.liststyle
;
36 if ( startupPage
== 'bulletedListStyle' ) {
38 title: lang
.bulletedTitle
,
52 [ lang
.circle
, 'circle' ],
53 [ lang
.disc
, 'disc' ],
54 [ lang
.square
, 'square' ]
56 setup: function( element
) {
57 var value
= element
.getStyle( 'list-style-type' ) || mapListStyle
[ element
.getAttribute( 'type' ) ] || element
.getAttribute( 'type' ) || '';
59 this.setValue( value
);
61 commit: function( element
) {
62 var value
= this.getValue();
64 element
.setStyle( 'list-style-type', value
);
66 element
.removeStyle( 'list-style-type' );
71 var editor
= this.getParentEditor(),
72 element
= getListElement( editor
, 'ul' );
74 element
&& this.setupContent( element
);
77 var editor
= this.getParentEditor(),
78 element
= getListElement( editor
, 'ul' );
80 element
&& this.commitContent( element
);
83 } else if ( startupPage
== 'numberedListStyle' ) {
85 var listStyleOptions
= [
87 [ lang
.lowerRoman
, 'lower-roman' ],
88 [ lang
.upperRoman
, 'upper-roman' ],
89 [ lang
.lowerAlpha
, 'lower-alpha' ],
90 [ lang
.upperAlpha
, 'upper-alpha' ],
91 [ lang
.decimal, 'decimal' ]
94 if ( !CKEDITOR
.env
.ie
|| CKEDITOR
.env
.version
> 7 ) {
95 listStyleOptions
.concat( [
96 [ lang
.armenian
, 'armenian' ],
97 [ lang
.decimalLeadingZero
, 'decimal-leading-zero' ],
98 [ lang
.georgian
, 'georgian' ],
99 [ lang
.lowerGreek
, 'lower-greek' ]
104 title: lang
.numberedTitle
,
112 widths: [ '25%', '75%' ],
117 validate: CKEDITOR
.dialog
.validate
.integer( lang
.validateStartNumber
),
118 setup: function( element
) {
119 // List item start number dominates.
120 var value
= element
.getFirst( listItem
).getAttribute( 'value' ) || element
.getAttribute( 'start' ) || 1;
121 value
&& this.setValue( value
);
123 commit: function( element
) {
124 var firstItem
= element
.getFirst( listItem
);
125 var oldStart
= firstItem
.getAttribute( 'value' ) || element
.getAttribute( 'start' ) || 1;
127 // Force start number on list root.
128 element
.getFirst( listItem
).removeAttribute( 'value' );
129 var val
= parseInt( this.getValue(), 10 );
131 element
.removeAttribute( 'start' );
133 element
.setAttribute( 'start', val
);
135 // Update consequent list item numbering.
136 var nextItem
= firstItem
,
138 startNumber
= isNaN( val
) ? 1 : val
;
139 while ( ( nextItem
= nextItem
.getNext( listItem
) ) && conseq
++ ) {
140 if ( nextItem
.getAttribute( 'value' ) == conseq
)
141 nextItem
.setAttribute( 'value', startNumber
+ conseq
- oldStart
);
149 style: 'width: 100%;',
150 items: listStyleOptions
,
151 setup: function( element
) {
152 var value
= element
.getStyle( 'list-style-type' ) || mapListStyle
[ element
.getAttribute( 'type' ) ] || element
.getAttribute( 'type' ) || '';
154 this.setValue( value
);
156 commit: function( element
) {
157 var value
= this.getValue();
159 element
.setStyle( 'list-style-type', value
);
161 element
.removeStyle( 'list-style-type' );
167 var editor
= this.getParentEditor(),
168 element
= getListElement( editor
, 'ol' );
170 element
&& this.setupContent( element
);
173 var editor
= this.getParentEditor(),
174 element
= getListElement( editor
, 'ol' );
176 element
&& this.commitContent( element
);
182 CKEDITOR
.dialog
.add( 'numberedListStyle', function( editor
) {
183 return listStyle( editor
, 'numberedListStyle' );
186 CKEDITOR
.dialog
.add( 'bulletedListStyle', function( editor
) {
187 return listStyle( editor
, 'bulletedListStyle' );