@@ -138,7 +138,25 @@ qx.Class.define("osparc.ui.markdown.Markdown", {
138138 } else {
139139 this . setMinHeight ( elemHeight ) ;
140140 }
141+
142+ const elemMaxWidth = this . __getChildrenElementMaxWidth ( domElement . children ) ;
143+ if ( this . getMaxWidth ( ) && elemMaxWidth > this . getMaxWidth ( ) ) {
144+ this . setWidth ( elemMaxWidth ) ;
145+ } else {
146+ this . setMinWidth ( elemMaxWidth ) ;
147+ }
148+ }
149+ } ,
150+
151+ __getDomElement : function ( ) {
152+ if ( ! this . getContentElement || this . getContentElement ( ) === null ) {
153+ return null ;
141154 }
155+ const domElement = this . getContentElement ( ) . getDomElement ( ) ;
156+ if ( domElement ) {
157+ return domElement ;
158+ }
159+ return null ;
142160 } ,
143161
144162 __getChildrenElementHeight : function ( children ) {
@@ -155,23 +173,37 @@ qx.Class.define("osparc.ui.markdown.Markdown", {
155173 if ( this . getNoMargin ( ) ) {
156174 element . style . marginTop = 0 ;
157175 element . style . marginBottom = 0 ;
158- const size = qx . bom . element . Dimension . getSize ( element ) ;
176+ const size = this . __getElementSize ( element ) ;
159177 return size . height ;
160178 }
161- const size = qx . bom . element . Dimension . getSize ( element ) ;
179+ const size = this . __getElementSize ( element ) ;
162180 // add padding
163181 return size . height + 20 ;
164182 } ,
165183
166- __getDomElement : function ( ) {
167- if ( ! this . getContentElement || this . getContentElement ( ) === null ) {
168- return null ;
184+ __getChildrenElementMaxWidth : function ( children ) {
185+ let maxWidth = 0 ;
186+ for ( let i = 0 ; i < children . length ; i ++ ) {
187+ maxWidth = Math . max ( this . __getElementWidth ( children [ i ] ) , maxWidth ) ;
169188 }
170- const domElement = this . getContentElement ( ) . getDomElement ( ) ;
171- if ( domElement ) {
172- return domElement ;
189+ return maxWidth ;
190+ } ,
191+
192+ __getElementWidth : function ( element ) {
193+ const size = this . __getElementSize ( element ) ;
194+ return size . width ;
195+ } ,
196+
197+ __getElementSize : function ( element ) {
198+ if (
199+ element &&
200+ element . children &&
201+ element . children . length &&
202+ element . children [ 0 ] . localName === "img"
203+ ) {
204+ return qx . bom . element . Dimension . getSize ( element . children [ 0 ] ) ;
173205 }
174- return null ;
175- }
206+ return qx . bom . element . Dimension . getSize ( element ) ;
207+ } ,
176208 }
177209} ) ;
0 commit comments