
    hF              
          d dl mZ d dlmZ d dlmZ d ZddiZi dg ddg d	d
g ddg ddg ddg ddg ddg ddg ddg ddg ddg ddg d ed       z   d!g d"d#g d$d%g d&d'g d(g d)d*d+gg d,g d-g d.g d/g d0g d1d2Zd3 Z	d4 Z
d5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zi d=e	d>e
d?ed@dA dBdC dDdE dFdG dHedIdJ dKdL dMedNedOdP dQdR dSdT dUdV dWdX ZdYZyZ)[    )settings)DEVICE_SIZESc                     g }t         D ]Y  }| D ]R  }|dk(  r|j                  | d| d        |dk(  r|j                  | d| d       =|j                  | d|        T [ |S )Nmlz_ml -> _msmrz_mr -> _me_)r   append)propslstsizeprops       b/home/dcms/DCMS/lib/python3.12/site-packages/djangocms_frontend/management/bootstrap4_migration.pybreakpointsr      s    
C - 	-Dt|

dV74&45

dV74&45

dV1TF+,	-- J    	CodeBlock
CodePluginz1bootstrap4_alerts.Bootstrap4Alerts -> alert.Alert)alert_contextz&alert_dismissable -> alert_dismissibletag_type
attributesP001M001-mM001-pM002z/bootstrap4_badge.Bootstrap4Badge -> badge.Badge)
badge_textbadge_contextbadge_pillsr   r   z+bootstrap4_card.Bootstrap4Card -> card.Card)	card_typez"card_context -> background_contextcard_alignmentcard_outlinecard_text_colorr   r   r   X002X003	A001_cardr   r   M003z5bootstrap4_card.Bootstrap4CardInner -> card.CardInner)
inner_typer   r   r   r   r&   z;bootstrap4_collapse.Bootstrap4Collapse -> collapse.Collapse)siblingsr   r   r   zMbootstrap4_collapse.Bootstrap4CollapseContainer -> collapse.CollapseContainer)z"identifier -> container_identifierr   r   zIbootstrap4_collapse.Bootstrap4CollapseTrigger -> collapse.CollapseTrigger)z identifier -> trigger_identifierr   r   r   z=bootstrap4_content.Bootstrap4Blockquote -> content.Blockquote)
quote_contentquote_originquote_alignmentr   r   
A001_quoter   r   r   r&   z6bootstrap4_content.Bootstrap4Code -> content.CodeBlock)code_contentztag_type -> code_typer   r   r   r   r   r&   z5bootstrap4_content.Bootstrap4Figure -> content.Figure)figure_captionfigure_alignmentr   r   r   r   r&   z=bootstrap4_grid.Bootstrap4GridContainer -> grid.GridContainer)container_typer   r   r   r   r   r   r&   z1bootstrap4_grid.Bootstrap4GridRow -> grid.GridRow)
horizontal_alignmentvertical_alignmentguttersr   r   r   r   r   r   r&   z7bootstrap4_grid.Bootstrap4GridColumn -> grid.GridColumn)
column_alignmentz() -> text_alignmentr   r   G001r   r   r   r   r&   )colorderr   r   offsetz?bootstrap4_jumbotron.Bootstrap4Jumbotron -> jumbotron.Jumbotron)zfluid -> jumbotron_fluidz(default) -> templatez() -> jumbotron_contextz() -> jumbotron_opacityr   r   r   r   r   r   r&   z+bootstrap4_link.Bootstrap4Link -> link.Link)templatenameexternal_linkanchormailtophone	link_typeztarget -> link_targetlink_context	link_sizelink_outline
link_blockinternal_link	icon_left
icon_right	file_linkr   r   r   r   	T001_LINKz?bootstrap4_listgroup.Bootstrap4ListGroup -> listgroup.ListGroup)list_group_flushr   r   r   r   r   zGbootstrap4_listgroup.Bootstrap4ListGroupItem -> listgroup.ListGroupItem)list_context
list_stater   r   r   r   )r   r   r   r   r   )r9   external_picturewidthheight	alignmentcaption_textzlink_url -> external_linklink_targetlink_attributesuse_automatic_scalinguse_no_croppinguse_cropuse_upscalepicture_fluidpicture_roundedpicture_thumbnailzlink_page -> internal_linkpicturethumbnail_optionsuse_responsive_imager   r   A001_picturer   r   T001_PICTURE)	r9   tab_typetab_alignment	tab_index
tab_effectr   r   r   	T001_TABS)	tab_titler   r   r   r   )space_propertyspace_sidesspace_device
space_sizer   r   r   )r9   carousel_intervalcarousel_controlscarousel_indicatorscarousel_keyboardcarousel_pausecarousel_ridecarousel_wrapcarousel_aspect_ratior   r   r   T001_CAROUSEL)r9   carousel_imagecarousel_contentr;   targetrD   rG   r   r   r   T001_CAROUSEL_SLIDE)z/bootstrap4_media.Bootstrap4Media -> media.Mediaz7bootstrap4_media.Bootstrap4MediaBody -> media.MediaBodyz3bootstrap4_picture.Bootstrap4Picture -> image.Imagez)bootstrap4_tabs.Bootstrap4Tab -> tabs.Tabz1bootstrap4_tabs.Bootstrap4TabItem -> tabs.TabItemz;bootstrap4_utilities.Bootstrap4Spacing -> utilities.Spacingz;bootstrap4_carousel.Bootstrap4Carousel -> carousel.CarouselzEbootstrap4_carousel.Bootstrap4CarouselSlide -> carousel.CarouselSlidec                 r   d|j                   v r&d d |j                   d   j                         }t        fd|      }t        fd|      }t        fd|      }t        fd|      }t        fd|      }t        fd	|      }t        fd
|      }t        fd|      }t        fd|      }t        fd|      }t        fd|      }t        fd|      }t        fd|      }t        fd|      }t        fd|      }dj                  |      |j                  d   d<   y y )Nclassc                     | |k(  r|S | S N itemoldnews      r   replacez*p001_left_right_migration.<locals>.replace-  s    s{
Kr   c                 J    | d t        |       |k(  r|| t        |      d  z   S | S ry   )lenr{   s      r   replace_leftz/p001_left_right_migration.<locals>.replace_left2  s/    Jc#h3&T#c()_,,Kr   c                      | dd      S )N	text-left
text-startrz   xr   s    r   <lambda>z+p001_left_right_migration.<locals>.<lambda>8  s    ; E r   c                      | dd      S )N
text-righttext-endrz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>9  s    < D r   c                      | dd      S )Nz
float-leftzfloat-startrz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>:  s    < G r   c                      | dd      S )Nzfloat-rightz	float-endrz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>;  s    =+ F r   c                      | dd      S )Nzborder-leftzborder-startrz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda><  s    =. I r   c                      | dd      S )Nzborder-rightz
border-endrz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>=  s    >< H r   c                      | dd      S )Nz	no-gutterzg-0rz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>>  s    ; > r   c                      | dd      S )Nztext-monospacezfont-monospacerz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>?  s    +;=M N r   c                      | dd      S )Nzsr-onlyzvisually-hiddenrz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>@  s    96G H r   c                      | dd      S )Nzleft-zstart-rz   r   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>A  s    Q B r   c                      | dd      S )Nzright-zend-rz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>B  s    Q& A r   c                      | dd      S )Nzml-zms-rz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>C      Qu = r   c                      | dd      S )Nzmr-zme-rz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>D  r   r   c                      | dd      S )Nzpl-zps-rz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>E  r   r   c                      | dd      S )Nzpr-zpe-rz   r   s    r   r   z+p001_left_right_migration.<locals>.<lambda>F  r   r    r   )r   splitmapjoinconfig)objnew_objclassesr   r   s      @@r   p001_left_right_migrationr   *  s   '$$$	
	
 $$W-335EwODgNGQFPI7SH'R>HNPWXH'RBGLA7K=wG=wG=wG=wG030A|$W-9 %r   c                 *   | j                   dk(  r%t        d       t        d       d|j                  d<   | j                   dk(  s| j                   dk(  rd|_        d|_        | j
                  j                  d	d
      j                         }d|v rA|j                  d       d|j                  d<   dj                  |      |j                  d   d	<   |j                  d   dk(  rd|j                  d<   y |j                  d   dk(  rd|j                  d<   y y )Nz	card-deckzB=> Detected bootstrap v4 card-deck which is not part of bootstrap5z+   Replaced it with Card Layout, grid cardsrowr   z
card-groupCardLayoutPlugin
CardLayoutrw    zh-100Tcard_full_heightr   r   r    r   r   r   r   )
r   printr   plugin_typeui_itemr   getr   remover   r   r   r   s      r   x002_replace_card_deckr   J  s    
}}#RS;<&+{#
}}#s}}'D0&nn  "-335G'w-1)*030A|$W-~~&';6+7'(	(	)\	9+5'( 
:r   c                     | j                   r,|j                  d   |j                  d<   d|j                  d<   y d|j                  d<   y )Nbackground_contextr!   r   )r!   r   )r   r   s     r   x003_card_contextr   ]  s@    
)08L)M~&/1+,)+~&r   c                     ||j                   v rn|j                   |   r^|j                   |   j                  dd       |j                   |   j                  dd       |j                   |   j                  dd       y y y )Nr   starttext-centercenterr   end)r   r   )r   r   fields      r   a001_alignmentr   e  sl    7>>%#8u%%k7;u%%mX>u%%lE: $9r   c                 4   |j                   d   j                  dd      j                         }|rt        t        j
                        |dk(  rdgng z   D ]}  \  }}|d    d| |v rK|j                  |d    d|        |j                  |d    d|        |j                  |d    d	|        t        j                  D ]}  \  }}|d    | d| |v s|j                   j                  | d
d       r5|d    | d| |j                   | d
<   d |j                   | d<   |j                  |d    | d|         t        j                  D ]}  \  }}|d    | d| |v s|j                   j                  | dd       r5|d    | d| |j                   | d<   d |j                   | d<   |j                  |d    | d|          |r"dj                  |      |j                   d   d<   y |j                   d   j                  d       y y )Nr   rw   r   margin)autor   r   -zx-zy-_x_devices_yr   )r   r   r   listr   SPACER_SIZE_CHOICESr   r   SPACER_X_SIDES_CHOICESSPACER_Y_SIDES_CHOICESr   pop)r   r   typer   r   r
   sides          r   m001_spacing_mixinr   l  s]   nn\*..w;AACGH889SW[cSc>N=Oikl 	>GD!q'!D6"g-$q'!D623$q'"TF34$q'"TF34#:: >a1gYtfAdV,7@R@RVZU[[]S^`d@e59!WIdV1TF2KGNNdV2;/8<GNNdV8#45NNd1gYtfAdV#<=	>
 $:: >a1gYtfAdV,7@R@RVZU[[]S^`d@e59!WIdV1TF2KGNNdV2;/8<GNNdV8#45NNd1gYtfAdV#<=	>	> 47HHW4EGNN<(1NN<(,,W5' r   c                 N   |j                   d   j                  dd      j                         }|rd}d}d}d}g }t        j                  D ]u  \  }}	|dk7  rd	| d
nd	}
|
 | |v r|rd}d}|j                  |
 |        |D ]'  }|
 | |v s|rd}d}|j                  |
 |        ) |se|j                  |       w |rR||j                   d<   |r"dj                  |      |j                   d   d<   y |j                   d   j                  d       y d |j                   d<   y y )Nr   rw   r   )blockflexnoneTFxszd-r   responsive_visibilityr   )	r   r   r   r   DEVICE_CHOICESr   r   r   r   )r   r   r   displayhiddenvisiblehit
responsivedevicer
   stumpr   s               r   m002_responsive_mixinr     sX   nn\*..w;AACG
 
!00 	*IFA&,nbN$E!W,%12 5WTF#w.w"GCNNeWTF#34	5
 !!&)	* 6@GNN238;8I|,W5|,0096:GNN23? r   c                    |j                   d   j                  dd      j                         }|rt        j                  D ]0  \  }}d| |v s||j                   d<   |j                  d|        2 dddd	d
j                         D ]*  \  }}||v s||j                   d<   |j                  |       , |r"dj                  |      |j                   d   d<   y |j                   d   j                  d       y y )Nr   rw   r   zbg-r   r   smreglg)zshadow-nonez	shadow-smshadowz	shadow-lgbackground_shadowr   )	r   r   r   r   COLOR_STYLE_CHOICESr   itemsr   r   )r   r   r   contextr
   clskeys          r   m003_background_mixinr     s    nn\*..w;AACG"66 	0JGQWI')7>34WI/	0
 "	

 %'	$HC g~6923s#	$ 47HHW4EGNN<(1NN<(,,W5# r   c                    | j                   dk7  rt        d| j                   d       |j                  d   j	                  dd      j                         }d|v sd|v r1|j                  d       |j                  d       d	|j                  d
<   d|v r |j                  d       d|j                  d
<   d|v r |j                  d       d|j                  d
<   d|v r |j                  d       d|j                  d
<   |r"dj                  |      |j                  d   d<   y d|j                  d   v r|j                  d   j                  d       y y )Nr6   z3Warning: Break column detected - not supported (id=)r   rw   r   r   r   r   text_alignmentr   r   r   r   r   r   )	column_typer   idr   r   r   r   r   r   r   s      r   g001_col_text_alignmentr     s3   
%CCFF81MNnn\*..w;AACGg!8{#|$+2'(}%+3'(Wz"+0'(w|$+0'(030A|$W-	GNN<0	0|$((1 
1r   c                 p    |D ]1  \  }}t        |t        t        f      rt        | |      s) y|| k(  s1 y y)NTF)
isinstancetupler   
in_choices)choicechoicesr   values       r   r   r     s?     
UeeT]+&%(f} r   c           	      ^   | j                   dk(  ry t        t        |d      }t        t        |d      }t        | j                   |      set	        d| j                    d| j
                   d| j                   d       t	        d|        t	        d       |s||k7  rt	        d	| d
       y y y y )Ndefaultrz   z=> Template 'z' in z (id: r   z   but not declared in zR   You will be able to edit the plugin but up saving the template will be changed.z   Remember to put z in your settings.py)r9   getattrdjango_settingr   r   r   r   )r   r   bs4_settingdcf_settingBS4DCFs         r   t001_templater     s    
||y 
.+r
2C
.+r
2CcllC(cll^50AxqQR'}56bc{k1'}4HIJ 2s	 )r   r   r#   r$   r,   c                     t        | |d      S )Nr+   r   r   ys     r   r   r     s    ~a4EF r   A001_figurec                     t        | |d      S )Nr/   r   r   s     r   r   r     s    q!5G H r   r]   c                     t        | |d      S )NrO   r   r   s     r   r   r     s    1k!B r   r%   c                     t        | |d      S )Nr    r   r   s     r   r   r     s    nQ3CD r   r5   r   c                     t        | |d      S )Nr   r   r   s     r   r   r     s    -aH= r   r   c                     t        | |d      S )Npaddingr  r   s     r   r   r     s    -aI> r   r   r&   r^   c                     t        | |dd      S )NDJANGOCMS_PICTURE_TEMPLATESr   r   s     r   r   r     s    q!5RTq!r r   rH   c                     t        | |dd      S )NDJANGOCMS_LINK_TEMPLATES(DJANGOCMS_FRONTEND_LINK_TEMPLATE_CHOICESr	  r   s     r   r   r     s    m	1(*T r   rc   c                     t        | |dd      S )N"DJANGOCMS_BOOTSTRAP4_TAB_TEMPLATES DJANGOCMS_FRONTEND_TAB_TEMPLATESr	  r   s     r   r   r     s    m	124V r   rq   c                     t        | |dd      S N'DJANGOCMS_BOOTSTRAP4_CAROUSEL_TEMPLATES%DJANGOCMS_FRONTEND_CAROUSEL_TEMPLATESr	  r   s     r   r   r     s    -		1/	# r   ru   c                     t        | |dd      S r  r	  r   s     r   r   r     s    		1/	) r   
Bootstrap4N)django.confr   r   djangocms_bootstrap4.constantsr   djangocms_frontendr   plugin_namesplugin_migrationsr   r   r   r   r   r   r   r   r   r   data_migrationplugin_prefixrz   r   r   <module>r     s   2 7 '
 
N7 	:N 6 8N$ 2 4%ND < >ENV B DWNb T VcNl P RmNx D FyNP = 	?QNd < >eNv D 	FwNJ 8 :KNb > @ 89@:cN| F H}NV 2 4WND F HENT N PUNd8 	@<8
2:DDNCN bB@6&,;60!;H6,2.
K 
% 
"    F	 
 H  B  D  #  =  >  !  !  r    "  # (  ) 4  5 D r   