@@ -43,30 +43,44 @@ export const init = (
4343 return question . getType ( ) === componentName ;
4444 } ,
4545 init : ( ) => {
46- if ( Serializer . findClass ( componentName ) ) return ;
47- Serializer . addClass (
48- componentName ,
49- [
50- { name : 'hasOther:boolean' , visible : false } ,
51- { name : 'hasSelectAll:boolean' , visible : false } ,
52- { name : 'hasNone:boolean' , visible : false } ,
53- { name : 'otherText' , visible : false } ,
54- { name : 'selectAllText' , visible : false } ,
55- { name : 'noneText' , visible : false } ,
56- ] ,
57- ( ) => null ,
58- 'checkbox'
59- ) ;
60- Serializer . addProperty ( componentName , {
61- name : 'placeholder' ,
62- category : 'general' ,
63- default : '' ,
64- } ) ;
65- Serializer . addProperty ( componentName , {
66- name : 'allowAddNewTag:boolean' ,
67- category : 'general' ,
68- default : false ,
69- } ) ;
46+ if ( Serializer . findClass ( componentName ) ) {
47+ Serializer . addProperty ( componentName , {
48+ name : 'useSummaryTagMode' ,
49+ type : 'boolean' ,
50+ category : 'general' ,
51+ default : false ,
52+ } ) ;
53+ } else {
54+ Serializer . addClass (
55+ componentName ,
56+ [
57+ { name : 'hasOther:boolean' , visible : false } ,
58+ { name : 'hasSelectAll:boolean' , visible : false } ,
59+ { name : 'hasNone:boolean' , visible : false } ,
60+ { name : 'otherText' , visible : false } ,
61+ { name : 'selectAllText' , visible : false } ,
62+ { name : 'noneText' , visible : false } ,
63+ ] ,
64+ ( ) => null ,
65+ 'checkbox'
66+ ) ;
67+ Serializer . addProperty ( componentName , {
68+ name : 'placeholder' ,
69+ category : 'general' ,
70+ default : '' ,
71+ } ) ;
72+ Serializer . addProperty ( componentName , {
73+ name : 'useSummaryTagMode' ,
74+ type : 'boolean' ,
75+ category : 'general' ,
76+ default : false ,
77+ } ) ;
78+ Serializer . addProperty ( componentName , {
79+ name : 'allowAddNewTag:boolean' ,
80+ category : 'general' ,
81+ default : false ,
82+ } ) ;
83+ }
7084 } ,
7185 isDefaultRender : false ,
7286 afterRender : ( question : any , el : HTMLElement ) : void => {
@@ -142,6 +156,18 @@ export const init = (
142156 tagboxInstance . disabled = value ;
143157 }
144158 ) ;
159+ question . registerFunctionOnPropertyValueChanged (
160+ 'useSummaryTagMode' ,
161+ ( value : boolean ) => {
162+ if ( value ) {
163+ tagboxInstance . tagMapper = ( tags : any [ ] ) => {
164+ return tags . length < 2 ? tags : [ tags ] ;
165+ } ;
166+ } else {
167+ tagboxInstance . tagMapper = ( ) => null ;
168+ }
169+ }
170+ ) ;
145171 if ( question . visibleChoices . length ) {
146172 updateChoices ( tagboxInstance , question , currentSearchValue ) ;
147173 }
@@ -186,9 +212,12 @@ export const init = (
186212 tagboxInstance . valueField = 'value' ;
187213 tagboxInstance . popupSettings = { appendTo : 'component' } ;
188214 tagboxInstance . fillMode = 'none' ;
189- tagboxInstance . tagMapper = ( tags : any [ ] ) => {
190- return tags . length < 2 ? tags : [ tags ] ;
191- } ;
215+ if ( question . useSummaryTagMode ) {
216+ tagboxInstance . tagMapper = ( tags : any [ ] ) => {
217+ return tags . length < 2 ? tags : [ tags ] ;
218+ } ;
219+ }
220+
192221 return tagboxInstance ;
193222 } ;
194223 // ⚠ danger ⚠
0 commit comments