@@ -34,38 +34,8 @@ public function buildForm(FormBuilderInterface $builder, array $options)
3434 'error_bubbling ' => true ,
3535 'attr ' => [
3636 'data-controller ' => trim (($ options ['attr ' ]['data-controller ' ] ?? '' ).' symfony--ux-cropperjs--cropper ' ),
37- 'data-public-url ' => $ options ['public_url ' ],
38- 'data-view-mode ' => $ options ['view_mode ' ],
39- 'data-drag-mode ' => $ options ['drag_mode ' ],
40- 'data-aspect-ratio ' => $ options ['aspect_ratio ' ] ?: false ,
41- 'data-initial-aspect-ratio ' => $ options ['initial_aspect_ratio ' ] ?: false ,
42- 'data-responsive ' => $ options ['responsive ' ],
43- 'data-restore ' => $ options ['restore ' ],
44- 'data-check-cross-origin ' => $ options ['check_cross_origin ' ],
45- 'data-check-orientation ' => $ options ['check_orientation ' ],
46- 'data-modal ' => $ options ['modal ' ],
47- 'data-guides ' => $ options ['guides ' ],
48- 'data-center ' => $ options ['center ' ],
49- 'data-highlight ' => $ options ['highlight ' ],
50- 'data-background ' => $ options ['background ' ],
51- 'data-auto-crop ' => $ options ['auto_crop ' ],
52- 'data-auto-crop-area ' => $ options ['auto_crop_area ' ],
53- 'data-movable ' => $ options ['movable ' ],
54- 'data-rotatable ' => $ options ['rotatable ' ],
55- 'data-scalable ' => $ options ['scalable ' ],
56- 'data-zoomable ' => $ options ['zoomable ' ],
57- 'data-zoom-on-touch ' => $ options ['zoom_on_touch ' ],
58- 'data-zoom-on-wheel ' => $ options ['zoom_on_wheel ' ],
59- 'data-wheel-zoom-ratio ' => $ options ['wheel_zoom_ratio ' ],
60- 'data-crop-box-movable ' => $ options ['crop_box_movable ' ],
61- 'data-crop-box-resizable ' => $ options ['crop_box_resizable ' ],
62- 'data-toggle-drag-mode-on-dblclick ' => $ options ['toggle_drag_mode_on_dblclick ' ],
63- 'data-min-container-width ' => $ options ['min_container_width ' ],
64- 'data-min-container-height ' => $ options ['min_container_height ' ],
65- 'data-min-canvas-width ' => $ options ['min_canvas_width ' ],
66- 'data-min-canvas-height ' => $ options ['min_canvas_height ' ],
67- 'data-min-crop-box-width ' => $ options ['min_crop_box_width ' ],
68- 'data-min-crop-box-height ' => $ options ['min_crop_box_height ' ],
37+ 'data-symfony--ux-cropperjs--cropper-public-url-value ' => $ options ['public_url ' ],
38+ 'data-symfony--ux-cropperjs--cropper-options-value ' => json_encode ($ options ['cropper_options ' ]),
6939 ],
7040 ])
7141 ;
@@ -85,107 +55,11 @@ public function configureOptions(OptionsResolver $resolver)
8555 {
8656 $ resolver ->setRequired ('public_url ' );
8757 $ resolver ->setAllowedTypes ('public_url ' , 'string ' );
88-
89- $ resolver ->setDefined ([
90- 'view_mode ' ,
91- 'drag_mode ' ,
92- 'aspect_ratio ' ,
93- 'initial_aspect_ratio ' ,
94- 'responsive ' ,
95- 'restore ' ,
96- 'check_cross_origin ' ,
97- 'check_orientation ' ,
98- 'modal ' ,
99- 'guides ' ,
100- 'center ' ,
101- 'highlight ' ,
102- 'background ' ,
103- 'auto_crop ' ,
104- 'auto_crop_area ' ,
105- 'movable ' ,
106- 'rotatable ' ,
107- 'scalable ' ,
108- 'zoomable ' ,
109- 'zoom_on_touch ' ,
110- 'zoom_on_wheel ' ,
111- 'wheel_zoom_ratio ' ,
112- 'crop_box_movable ' ,
113- 'crop_box_resizable ' ,
114- 'toggle_drag_mode_on_dblclick ' ,
115- 'min_container_width ' ,
116- 'min_container_height ' ,
117- 'min_canvas_width ' ,
118- 'min_canvas_height ' ,
119- 'min_crop_box_width ' ,
120- 'min_crop_box_height ' ,
121- ]);
122-
123- $ resolver ->setAllowedTypes ('view_mode ' , ['int ' ]);
124- $ resolver ->setAllowedTypes ('drag_mode ' , ['string ' ]);
125- $ resolver ->setAllowedTypes ('aspect_ratio ' , ['double ' , 'null ' ]);
126- $ resolver ->setAllowedTypes ('initial_aspect_ratio ' , ['double ' , 'null ' ]);
127- $ resolver ->setAllowedTypes ('responsive ' , ['bool ' ]);
128- $ resolver ->setAllowedTypes ('restore ' , ['bool ' ]);
129- $ resolver ->setAllowedTypes ('check_cross_origin ' , ['bool ' ]);
130- $ resolver ->setAllowedTypes ('check_orientation ' , ['bool ' ]);
131- $ resolver ->setAllowedTypes ('modal ' , ['bool ' ]);
132- $ resolver ->setAllowedTypes ('guides ' , ['bool ' ]);
133- $ resolver ->setAllowedTypes ('center ' , ['bool ' ]);
134- $ resolver ->setAllowedTypes ('highlight ' , ['bool ' ]);
135- $ resolver ->setAllowedTypes ('background ' , ['bool ' ]);
136- $ resolver ->setAllowedTypes ('auto_crop ' , ['bool ' ]);
137- $ resolver ->setAllowedTypes ('auto_crop_area ' , ['float ' ]);
138- $ resolver ->setAllowedTypes ('movable ' , ['bool ' ]);
139- $ resolver ->setAllowedTypes ('rotatable ' , ['bool ' ]);
140- $ resolver ->setAllowedTypes ('scalable ' , ['bool ' ]);
141- $ resolver ->setAllowedTypes ('zoomable ' , ['bool ' ]);
142- $ resolver ->setAllowedTypes ('zoom_on_touch ' , ['bool ' ]);
143- $ resolver ->setAllowedTypes ('zoom_on_wheel ' , ['bool ' ]);
144- $ resolver ->setAllowedTypes ('wheel_zoom_ratio ' , ['float ' ]);
145- $ resolver ->setAllowedTypes ('crop_box_movable ' , ['bool ' ]);
146- $ resolver ->setAllowedTypes ('crop_box_resizable ' , ['bool ' ]);
147- $ resolver ->setAllowedTypes ('toggle_drag_mode_on_dblclick ' , ['bool ' ]);
148- $ resolver ->setAllowedTypes ('min_container_width ' , ['int ' ]);
149- $ resolver ->setAllowedTypes ('min_container_height ' , ['int ' ]);
150- $ resolver ->setAllowedTypes ('min_canvas_width ' , ['int ' ]);
151- $ resolver ->setAllowedTypes ('min_canvas_height ' , ['int ' ]);
152- $ resolver ->setAllowedTypes ('min_crop_box_width ' , ['int ' ]);
153- $ resolver ->setAllowedTypes ('min_crop_box_height ' , ['int ' ]);
58+ $ resolver ->setDefault ('cropper_options ' , []);
15459
15560 $ resolver ->setDefaults ([
15661 'label ' => false ,
15762 'data_class ' => Crop::class,
158- 'view_mode ' => 0 ,
159- 'drag_mode ' => 'crop ' ,
160- 'initial_aspect_ratio ' => null ,
161- 'aspect_ratio ' => null ,
162- 'responsive ' => true ,
163- 'restore ' => true ,
164- 'check_cross_origin ' => true ,
165- 'check_orientation ' => true ,
166- 'modal ' => true ,
167- 'guides ' => true ,
168- 'center ' => true ,
169- 'highlight ' => true ,
170- 'background ' => true ,
171- 'auto_crop ' => true ,
172- 'auto_crop_area ' => 0.8 ,
173- 'movable ' => false ,
174- 'rotatable ' => true ,
175- 'scalable ' => false ,
176- 'zoomable ' => false ,
177- 'zoom_on_touch ' => true ,
178- 'zoom_on_wheel ' => true ,
179- 'wheel_zoom_ratio ' => 0.1 ,
180- 'crop_box_movable ' => true ,
181- 'crop_box_resizable ' => true ,
182- 'toggle_drag_mode_on_dblclick ' => true ,
183- 'min_container_width ' => 200 ,
184- 'min_container_height ' => 100 ,
185- 'min_canvas_width ' => 0 ,
186- 'min_canvas_height ' => 0 ,
187- 'min_crop_box_width ' => 0 ,
188- 'min_crop_box_height ' => 0 ,
18963 ]);
19064 }
19165
0 commit comments