PluginProbe
Elementor Website Builder – more than just a page builder / 4.1.0-beta1
Elementor Website Builder – more than just a page builder v4.1.0-beta1
4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 All 456 releases
← All changes | modules/atomic-widgets/styles/size-constants.php +38 -4 4.0.9 → 4.1.0-beta1 View file →
@@ -26,8 +26,28 @@
26 26 const UNIT_CUSTOM = 'custom';
27 27
28 28 const DEFAULT_UNIT = self::UNIT_PX;
29 29
30 + private const ORDER = [
31 + self::UNIT_PX,
32 + self::UNIT_PERCENT,
33 + self::UNIT_EM,
34 + self::UNIT_REM,
35 + self::UNIT_VW,
36 + self::UNIT_VH,
37 + self::UNIT_CH,
38 + self::UNIT_VMIN,
39 + self::UNIT_VMAX,
40 + self::UNIT_DEG,
41 + self::UNIT_RAD,
42 + self::UNIT_GRAD,
43 + self::UNIT_TURN,
44 + self::UNIT_SECOND,
45 + self::UNIT_MILLI_SECOND,
46 + self::UNIT_AUTO,
47 + self::UNIT_CUSTOM,
48 + ];
49 +
30 50 private const LENGTH_UNITS = [
31 51 self::UNIT_PX,
32 52 self::UNIT_EM,
33 53 self::UNIT_REM,
@@ -65,10 +85,10 @@
65 85 ];
66 86
67 87 private static function presets(): array {
68 88 return [
69 - 'layout' => self::NUMERIC_UNITS,
70 - 'spacing' => self::NUMERIC_UNITS,
89 + 'layout' => self::sort_by_preferred_order( self::NUMERIC_UNITS ),
90 + 'spacing' => self::sort_by_preferred_order( self::NUMERIC_UNITS ),
71 91 'position' => self::NUMERIC_UNITS,
72 92 'typography' => self::NUMERIC_UNITS,
73 93 'border' => self::NUMERIC_UNITS,
74 94 'box_shadow' => self::NUMERIC_UNITS,
@@ -129,15 +149,25 @@
129 149 ],
130 150 ];
131 151 }
132 152
153 + private static function sort_by_preferred_order( array $units ): array {
154 + $index = array_flip( self::ORDER );
155 +
156 + usort( $units, fn( $a, $b ) =>
157 + ( $index[ $a ] ?? PHP_INT_MAX ) <=> ( $index[ $b ] ?? PHP_INT_MAX )
158 + );
159 +
160 + return $units;
161 + }
162 +
133 163 public static function standard_units(): array {
134 - return [
164 + return self::sort_by_preferred_order( [
135 165 ...self::LENGTH_UNITS,
136 166 self::UNIT_PERCENT,
137 167 self::UNIT_AUTO,
138 168 self::UNIT_CUSTOM,
139 - ];
169 + ] );
140 170 }
141 171
142 172 public static function all_supported_units(): array {
143 173 return [
@@ -176,8 +206,12 @@
176 206 }
177 207
178 208 public static function time(): array {
179 209 return self::by_group( 'time' );
210 + }
211 +
212 + public static function angle(): array {
213 + return self::by_group( 'angle' );
180 214 }
181 215
182 216 public static function layout(): array {
183 217 return self::get_preset( 'layout' );