From 2c91d63f3a61ec09375c76ada2b26d3bca937e4a Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 07:45:48 -0700 Subject: [PATCH 01/42] Revert "Revert "Delete toMargins methods" (#162)" (#166) This reverts commit 244d4a1302b177e3d972242b4e539ffd9bde97b3. --- Sources/Layout/LayoutItem.swift | 38 ------------------ Tests/LayoutTests/LayoutItemTests.swift | 32 --------------- .../testToMargins.iPhone-13-mini-portrait.png | Bin 72040 -> 0 bytes .../testToMargins.iPhone-13-mini-portrait.txt | 2 - .../testToMargins.iPhone-13-portrait.png | Bin 76879 -> 0 bytes .../testToMargins.iPhone-13-portrait.txt | 2 - .../testToMargins.iPhone-8-portrait.png | Bin 59957 -> 0 bytes .../testToMargins.iPhone-8-portrait.txt | 2 - .../testToMargins.iPhone-SE-portrait.png | Bin 44025 -> 0 bytes .../testToMargins.iPhone-SE-portrait.txt | 2 - .../testToMargins.iPhone-X-portrait.png | Bin 72121 -> 0 bytes .../testToMargins.iPhone-X-portrait.txt | 2 - ...ndWithPriority.iPhone-13-mini-portrait.png | Bin 89420 -> 0 bytes ...ndWithPriority.iPhone-13-mini-portrait.txt | 3 -- ...ets_andWithPriority.iPhone-13-portrait.png | Bin 96302 -> 0 bytes ...ets_andWithPriority.iPhone-13-portrait.txt | 3 -- ...sets_andWithPriority.iPhone-8-portrait.png | Bin 75051 -> 0 bytes ...sets_andWithPriority.iPhone-8-portrait.txt | 3 -- ...ets_andWithPriority.iPhone-SE-portrait.png | Bin 57227 -> 0 bytes ...ets_andWithPriority.iPhone-SE-portrait.txt | 3 -- ...sets_andWithPriority.iPhone-X-portrait.png | Bin 89673 -> 0 bytes ...sets_andWithPriority.iPhone-X-portrait.txt | 3 -- ...ndWithPriority.iPhone-13-mini-portrait.png | Bin 89420 -> 0 bytes ...ndWithPriority.iPhone-13-mini-portrait.txt | 3 -- ...set_andWithPriority.iPhone-13-portrait.png | Bin 96302 -> 0 bytes ...set_andWithPriority.iPhone-13-portrait.txt | 3 -- ...nset_andWithPriority.iPhone-8-portrait.png | Bin 75051 -> 0 bytes ...nset_andWithPriority.iPhone-8-portrait.txt | 3 -- ...set_andWithPriority.iPhone-SE-portrait.png | Bin 57227 -> 0 bytes ...set_andWithPriority.iPhone-SE-portrait.txt | 3 -- ...nset_andWithPriority.iPhone-X-portrait.png | Bin 89673 -> 0 bytes ...nset_andWithPriority.iPhone-X-portrait.txt | 3 -- 32 files changed, 110 deletions(-) delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-mini-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-mini-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-8-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-8-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-SE-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-SE-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-X-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-X-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-mini-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-mini-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-8-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-8-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-SE-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-SE-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-X-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-X-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-mini-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-mini-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-8-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-8-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-SE-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-SE-portrait.txt delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-X-portrait.png delete mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index 1491087b..68c97982 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -203,44 +203,6 @@ extension LayoutItem { } } - /// Constrains the view to the margins of the superview with `insets`. - /// - /// - Parameters: - /// - insets: (optional) insets of view within margin edges. - /// - priority: (optional) priority of constraint - public func toMargins( - insets: NSDirectionalEdgeInsets = .zero, - priority: UILayoutPriority = .required - ) -> LayoutItem { - addingSuperviewConstraints { - $0.layoutItemView - .constraint(for: .top, toSuperview: .topMargin, constant: insets.top) - .withPriority(priority) - $0.layoutItemView - .constraint(for: .bottom, toSuperview: .bottomMargin, constant: -insets.bottom) - .withPriority(priority) - $0.layoutItemView - .constraint(for: .leading, toSuperview: .leadingMargin, constant: insets.leading) - .withPriority(priority) - $0.layoutItemView - .constraint(for: .trailing, toSuperview: .trailingMargin, constant: -insets.trailing) - .withPriority(priority) - } - } - - /// Constrains the view to the margins of the superview with an `inset`. - /// - /// - Parameters: - /// - inset: inset of view within margin edges. - /// - priority: (optional) priority of constraint - public func toMargins( - _ inset: CGFloat, - priority: UILayoutPriority = .required - ) -> LayoutItem { - toMargins(insets: NSDirectionalEdgeInsets(top: inset, leading: inset, bottom: inset, trailing: inset), - priority: priority) - } - /// Centers the view in the superview with an `offset` /// /// - Parameters: diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index fa71d37f..dbd69f2b 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -234,38 +234,6 @@ final class LayoutItemTests: XCTestCase { } } - func testToMargins() { - assertLayout { view in - view.layout(pinkView.toMargins()) - } - } - - func testToMarginsWithDirectionalInsets_andWithPriority() { - let insets12: NSDirectionalEdgeInsets = .init(top: 12, leading: 12, bottom: 12, trailing: 12) - let insets36: NSDirectionalEdgeInsets = .init(top: 36, leading: 36, bottom: 36, trailing: 36) - assertLayout { view in - view.layout { - pinkView - .toMargins(insets: insets12) - yellowView - .toMargins(priority: .low) - .toMargins(insets: insets36, priority: .high) - } - } - } - - func testToMarginsWithInset_andWithPriority() { - assertLayout { view in - view.layout { - pinkView - .toMargins(12) - yellowView - .toMargins(0, priority: .low) - .toMargins(36, priority: .high) - } - } - } - func testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-mini-portrait.png deleted file mode 100644 index 9e4893860ffc93cb5bbf5d89313f3debc2e0dd02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72040 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 - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-portrait.png deleted file mode 100644 index 834624a8adb859a0d2a9f2ce8c49ffc4ed027abf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76879 zcmeI5e{hra9ml^Rhm*8mMeR5 zpGEpM{?ns>Z~ebmT54~5G-gZP&lrdwHovi|-@PXjR!+qx-F>F~SUCO+<&ei(f<9&g)?di8QoS$=B zv*B=s$2R@zBYhi-A79WhkaJgFXIXEN`OuQCu9nD-U8nBb9{gTK!~9uQmP7SP?sT0z z)7tr}Gc@JHLj}Ft%C6_BZCNxp-E3rpF}RSFq#7fnOdrXamq`;;NKzK404jhAL?4!z z4O9RXKm}X{ycE0?EW4EDh?jzwf|r67Z^~VefFSKMmh8ey!ArqQ!ArqQA!|>qLaM@p zWE06Il1-F9rEHXhF5so$rQoIDrQoGd!b;)pXr2uR2?q%W>3_sQ>VC1XFSQnc`H}_# zUIJbMUIJbM-Y{W4VLo9#VLo9#VLo9#VLq3Er?R5SE8qbn00}?>kN_kA2|xmn03-lO z`-Wg4SO^w^gqT64Nbe|?1A=(%+3Cuv2Go}F^ljLTe0OLE@+`u?i; zN|I~NXI){HN7se=*h@ui^Okrr{=Uh*cU$R%Ye5$HkEUH;+PL0wk&a%j@?yywf1T$4 zbb*;^Z%c-8+BMxWO5k{L1N* zSBOud}`IxPr1Rpb_Sxd^uvP_KTWMqVBBie~H8gsKW z&6t}(uo4gq(uTANsB|nrKt(`>J%T-=L#B~S3~|9m*#H*|v(pvE?6lg>h67II}{byge|3um0!4q4LJu;AeYwp&LB{I!AoV{;fYmFyz-Qh$nvw741eTOr2{6N=B zQ|{PQT`x}_SrPuhwzr0ci=Is@`I^ssTw>4u6|s5WJbsV==+GN|8R_y_T{|3y{MB{4 zgFDsX$(gMz2xlDjyj4=q|^Khv#nj zj;C(wnJ20R)oIezFWdh1P}}y*u6;S<-_&!F-hqb(r-!<$es;BU+?$HcbY1Sfdw(Hs zIoULP%Ce8pvBi*MEK7MqzQmwGvBf0DBqbY!d0FrmC?XmJ6cMTlW6K5sML-dPN7)CU zF9{o11lB$hfxZN6KwqLkpf3p<7(p080H<{#!MYcyVK|^K(Ij|ZvO%CP0UOYlXb|WN z`oiv$eE|A`zOegb9{@NdUt#xI`v`WQa4y0CC%_3~OTNP46gmNLS|<|hK7kt8ePYB= zk4*`>?gKcSg0BEh(IC(l^o7GI`vAZRaN=;vK7hk1!VXgEvOxe&!B+sMXb^x?!UlGq zFfTqM`dYF3gTB;S09>)IdnI;(=!oQ}WP_mIs5f?j>;s?CgvBJqB*o%6@sN|Kil_<{ zk<$=?q`+0?WohBEM3NXZc-qp!rE1qYXmCY@szP6~K|m3qs#pZFK|m3!s#3x#=3Poy zrK+-|un6)=&`4GNBBRKu-T9^S47X#MyQiu9PVWl`>mU8wKkA!S#xlF^+catPYtR$l z*{C*z7aV79agj&y=AO7FiKDd zv#_ELr~~SNDx!+0BCJScVIBpjBC2Ta53nMv2rHtBs3NKeE5eHAQGhC2f&c&j diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-portrait.txt deleted file mode 100644 index d474e5ec..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-13-portrait.txt +++ /dev/null @@ -1,2 +0,0 @@ -> - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-8-portrait.png deleted file mode 100644 index df80e647c7bb63b2f66904c9c4752c596d7d224f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59957 zcmeHQZBSEJ8a~NQBhcWg=xl)K;74f!J5E%vbaiPcAOycKi-=RCVVKmVE?dBkNYQS> zZk001f*Y!K+>)-O)s~{&Z7o{RppLp3{3zX8hozDA1KRo#EmN`T4ts8LgZG5n{nKCD zKAD6Ya+BP9&$;J$p7%NLee-Jel8o@Ms4zlExG^)$M2Nyd$e2$;l=KzH%2^J&kgYXk zJWX29XuhKVtheMDpIf|`#L?#=L?MeJkMM7yk7QZ&$nymDc*iEpT7}5k}vJe5tWZMIf3CILw0y5#yiySzR1V{qr3j>NjS%?0Y zw_5HIlGw}F0>Cwl0xlq`U;z?@!L|pY3Pcr%Di{I$e$Yk3CkO{~HWCAi_#K4F_ z#hVds1TBIVL5rY8&?0CNv4WB>Lx6E*RRA~%0fmRVlUjZ~oa)uMKNZaA1@r1hQ;+p4^O7DYV1PBb4g^wio18fT9!zFdDL zW{l{{5Zbx6eYWzw+gew+H*iCq$2%X^w)TJXCff&-bZ6r&n(h-*|B*5_Q21JS+p~0> zJhp0|{X6B&j-}OX8(D4PTyebVjTP>s=B=rt3tS&ox}8~v3Uq_vy;V&L_J9Z%t?bTi zp1;ptmKnWy#+WCA+G9hwePQE^9j5;1wxMK+;@HjaWmXpGF4xZ;YaCl1)E;-EwAd zA;ZIaax10;e)IKu&-*1@$~Z;m(wcwkhqLRHsp{QjcPGTGEj#-1=_u}319zIv4rz|8 zW15G;itD~A-%~t)`|y9f+`y^3>`&}b#quCLzu=oE7PL;4pgf;DgZi2wOCmH?A5}0Xzt#4cA^)8g>X_z|{>kInbuwiXw#qU8&3x7LfCbL+iLr8(yMf3^{0xHo*RE*$l7d99Jf90+F;hs zN!H4YKeFqrwiB+N+T+wb?kuh@^4>Yah(P`RsG5b1-&Q)i!d&gskFx7rh9YxG`Xy>< z_9b+_Us1JsR0})Z_u5U*J!1BZFJ#x59kccyn0C9}w4n6$z6&3B%wc=IMS00&*;t_a zyIk+B5i>2n1LxFv&orzr&`nQTTzdTrPox-ZWy)NxZ13Na_n}+St-{%g(dr*u7_9urU|1Baj^tnAq{R z1hONL9l>U#!;XL*0XqU0Yv39jA1*>NK{7!y;fgt22gc?n#(d07` zF!zeNSIoVlq8bY2`Sdc<)sU{nhSHdO#oQ|!N<%V1GC?vyGC?vyGKrleOw3_o?*C?D zZg9=Xx)NfwjjOqFBr!EV<+7}xq26e_w4ru-#lfJ`;yK*FGH3D&_PwO{{;0C=ch!5| zJ@uVOyF01r(y3K91+f@VOrNtv&O0Qu+3v+U}Vgcw~?ekPrd0(1#H}*oEL8d+q#<>cf*y5_&VHFG*{C H+Fbo#a*J$D diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-8-portrait.txt deleted file mode 100644 index b5de1b2f..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-8-portrait.txt +++ /dev/null @@ -1,2 +0,0 @@ -> - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-SE-portrait.png deleted file mode 100644 index c6d519493e8036256affa91b7dfcc529a59e604b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44025 zcmeHPacmP+7=PDWZH3zo&1m=zEiV{EOO z=oFc&QAc7}qeQ2YG9jA9$ass3L$f$Sf^Lbj%7`$)&;=RISXbY*ch}MWx%dakuesh` z-|l*^Z+GACec$i*eNF2t$_+DeW)MOQ4!dn5Av`5SXwMK>%QKFXI=12VY%DJ!fnRe+ z*oWGkTO3vE){(_*KZB%kIYcWR!rrSnv$|i#DYLX@&Q^B^`o|(wi&&C|_iaxz)DHO>E09D7|=T zKQF$O_BUTRSn{WfkTt|%vu>*8ZVYz6;8xH9lDki}M>{>-gsrdPSaLsEdtXZDJLznr z#nbloVDqafUA1_!Q^%n8l12#4&cEA|-1(qJu<)skl}<_;9;qrmpEA;vRHghPXRt|U zqLn>2%D+$Ps)_28MxK4d;LEoV1|N66^0eOHW+xos!$Z;j-o^sa!wDvJ)o_t69Xcm; z_$KNde+;~rt^UCjHVgXTs5Wb)Cd+Ynw<~d$zeZdc4fNmDb@*;Sy>NbZJ|(=~5?h_K zxVQO-ZyLnXm$MuX?oND}D4isp=r_}+ep`CvkgG>Mg|7LL?)4r%Q{b8N<%R`?XT6Eu zdAq!$p3|#q$m3hjxSsIMQm(=-W#E6;7EN9xn~#;XT%MOc49!hL{n8QD9aTW}CqT za7Y4j7zG%G_=FBd0Y*WdrNbz|D8MMF?k8pnm?_9N1KbC=5Am28i~@`TjKaO~V}ybc z+eSOQ#XaV+zSfsW zT4H;5*(I{KNaXdhJ*Hihh|= ztkAOFaESjdV5Dd>fq|4j0(b&s#6&`2sDO+>Mj#`Q5y%Li5iT|&5^}@P2dBB7|^Xi=A+;Pf@%n=A*hC+nxs<% zG6ETaj6g<{2%ix?BYZ~qj8Nb}fdd5&6gW`eU`m9vHe>-JpD~us3F#H2SCC$TV21Q+ z8q%wl^UjY6$tskJ)q;Tl0|5pCH6>6TLzQg-Tc&|6z!TsJ@C0}QJOQ4d+7hagp@os2d(k0#As&CD;guNW46}CW$`1*f=?n=4< diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-SE-portrait.txt deleted file mode 100644 index 48a28960..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-SE-portrait.txt +++ /dev/null @@ -1,2 +0,0 @@ -> - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-X-portrait.png deleted file mode 100644 index 0f172fcbe3db1587895f7e156d2e79a659f5c08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72121 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 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-X-portrait.txt deleted file mode 100644 index 61f9fd1b..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMargins.iPhone-X-portrait.txt +++ /dev/null @@ -1,2 +0,0 @@ -> - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-mini-portrait.png deleted file mode 100644 index 1e75326b760271713eb76e6d2202e6b29eadf6c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89420 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 - | > - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-portrait.png deleted file mode 100644 index d9aa6cc27f642e75c7bca97567d384ff02754328..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96302 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 B0TloM diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-portrait.txt deleted file mode 100644 index 0635c99e..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-13-portrait.txt +++ /dev/null @@ -1,3 +0,0 @@ -> - | > - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-8-portrait.png deleted file mode 100644 index 8da4359065efcb277b4c06240bbf79721eb9af8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75051 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 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-8-portrait.txt deleted file mode 100644 index d800452a..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-8-portrait.txt +++ /dev/null @@ -1,3 +0,0 @@ -> - | > - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-SE-portrait.png deleted file mode 100644 index f5f50148c93371db9ecdda0afe7a8e6f61d8c716..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57227 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 Nb$0r!!!rzT{R`fir7Hjc diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-SE-portrait.txt deleted file mode 100644 index 52403cf5..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-SE-portrait.txt +++ /dev/null @@ -1,3 +0,0 @@ -> - | > - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalInsets_andWithPriority.iPhone-X-portrait.png deleted file mode 100644 index 9fcb1440f1be52cfd14089c41670b0474b22f63c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89673 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 - | > - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-mini-portrait.png deleted file mode 100644 index 1e75326b760271713eb76e6d2202e6b29eadf6c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89420 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 - | > - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-portrait.png deleted file mode 100644 index d9aa6cc27f642e75c7bca97567d384ff02754328..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96302 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 B0TloM diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-portrait.txt deleted file mode 100644 index 0635c99e..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-13-portrait.txt +++ /dev/null @@ -1,3 +0,0 @@ -> - | > - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-8-portrait.png deleted file mode 100644 index 8da4359065efcb277b4c06240bbf79721eb9af8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75051 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 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-8-portrait.txt deleted file mode 100644 index d800452a..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-8-portrait.txt +++ /dev/null @@ -1,3 +0,0 @@ -> - | > - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-SE-portrait.png deleted file mode 100644 index f5f50148c93371db9ecdda0afe7a8e6f61d8c716..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57227 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 Nb$0r!!!rzT{R`fir7Hjc diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-SE-portrait.txt deleted file mode 100644 index 52403cf5..00000000 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-SE-portrait.txt +++ /dev/null @@ -1,3 +0,0 @@ -> - | > - | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithInset_andWithPriority.iPhone-X-portrait.png deleted file mode 100644 index 9fcb1440f1be52cfd14089c41670b0474b22f63c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89673 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 - | > - | > \ No newline at end of file From d03d93bbb0f41775fbbc21112691f20e3ec0cd34 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 07:57:07 -0700 Subject: [PATCH 02/42] Refactor Layout horizontal to not use AnchorAttribute (#168) Refactor equalAttribute out of Layout.horizontal --- Sources/Layout/Layout.swift | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/Sources/Layout/Layout.swift b/Sources/Layout/Layout.swift index 8d73e368..a6235170 100644 --- a/Sources/Layout/Layout.swift +++ b/Sources/Layout/Layout.swift @@ -419,18 +419,26 @@ public final class Layout { // swiftlint:disable:this type_body_length guard views.count >= 2, let first = views.first else { return self } - var anchor: NSLayoutAnchor = first.anchor(for: direction.attributes.1) - for view in views.dropFirst() { - adding( - view - .anchor(for: direction.attributes.0) - .constraint(equalTo: anchor, constant: spacing) - .withPriority(priority) - ) - anchor = view.anchor(for: direction.attributes.1) + switch direction { + case .leadingToTrailing: + var anchor: NSLayoutXAxisAnchor = first.trailing + for view in views.dropFirst() { + adding(view.leading.constraint(equalTo: anchor, constant: spacing).withPriority(priority)) + anchor = view.trailing + } + case .leftToRight: + var anchor: NSLayoutXAxisAnchor = first.right + for view in views.dropFirst() { + adding(view.left.constraint(equalTo: anchor, constant: spacing).withPriority(priority)) + anchor = view.right + } } for attribute: YAxisAttribute in alignment { - adding(equalAttribute(attribute, views).withPriority(priority)) + let firstAnchor: NSLayoutYAxisAnchor = first.anchor(for: attribute) + let constraints: [NSLayoutConstraint] = views + .dropFirst() + .map { $0.anchor(for: attribute).constraint(equalTo: firstAnchor) } + adding(constraints.withPriority(priority)) } return self } From b20d2ca9c89e6f0a64e798d383578eb3fe24a9ed Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 09:46:11 -0700 Subject: [PATCH 03/42] Refactor Layout vertical to not use AnchorAttribute (#169) --- Sources/Layout/Layout.swift | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Sources/Layout/Layout.swift b/Sources/Layout/Layout.swift index a6235170..4f2dcaa0 100644 --- a/Sources/Layout/Layout.swift +++ b/Sources/Layout/Layout.swift @@ -459,18 +459,17 @@ public final class Layout { // swiftlint:disable:this type_body_length guard views.count >= 2, let first = views.first else { return self } - var anchor: NSLayoutAnchor = first.anchor(for: YAxisAttribute.bottom) + var anchor: NSLayoutYAxisAnchor = first.bottom for view in views.dropFirst() { - adding( - view - .anchor(for: YAxisAttribute.top) - .constraint(equalTo: anchor, constant: spacing) - .withPriority(priority) - ) - anchor = view.anchor(for: YAxisAttribute.bottom) + adding(view.top.constraint(equalTo: anchor, constant: spacing).withPriority(priority)) + anchor = view.bottom } for attribute: XAxisAttribute in alignment { - adding(equalAttribute(attribute, views).withPriority(priority)) + let firstAnchor: NSLayoutXAxisAnchor = first.anchor(for: attribute) + let constraints: [NSLayoutConstraint] = views + .dropFirst() + .map { $0.anchor(for: attribute).constraint(equalTo: firstAnchor) } + adding(constraints.withPriority(priority)) } return self } From 732ea8747abbbe9b44e84b41c5b6d06a2a97f3f4 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 09:50:50 -0700 Subject: [PATCH 04/42] Improve LayoutBuilderTests.swift (#167) * Improve LayoutBuilderTests.swift * Move Array extension to Array.swift * Improve extension Co-authored-by: Christopher Fuller * Fix --------- Co-authored-by: Christopher Fuller --- Tests/LayoutTests/LayoutBuilderTests.swift | 36 ++++++++-------------- Tests/LayoutTests/Support/Array.swift | 15 +++++++++ 2 files changed, 28 insertions(+), 23 deletions(-) create mode 100644 Tests/LayoutTests/Support/Array.swift diff --git a/Tests/LayoutTests/LayoutBuilderTests.swift b/Tests/LayoutTests/LayoutBuilderTests.swift index c90289fb..4a00e592 100644 --- a/Tests/LayoutTests/LayoutBuilderTests.swift +++ b/Tests/LayoutTests/LayoutBuilderTests.swift @@ -14,52 +14,42 @@ import XCTest @MainActor final class LayoutBuilderTests: XCTestCase { - private final class LayoutItemMock: Equatable, LayoutItem { - - nonisolated static func == (lhs: LayoutItemMock, rhs: LayoutItemMock) -> Bool { - lhs === rhs - } - - let layoutItemView: UIView = .init() - let superviewConstraints: SuperviewConstraints = { _ in [] } - } - func testLayoutBuilder() { // GIVEN - let layoutItem: LayoutItemMock = .init() + let layoutItem: LayoutItem = UIView() // THEN expect(LayoutBuilder.buildExpression(Optional.none)).to(beEmpty()) - expect(LayoutBuilder.buildExpression(layoutItem) as? [LayoutItemMock]) == [layoutItem] + expect(LayoutBuilder.buildExpression(layoutItem) === [layoutItem]) == true expect(LayoutBuilder.buildExpression(Optional<[LayoutItem]>.none)).to(beEmpty()) - expect(LayoutBuilder.buildExpression([layoutItem]) as? [LayoutItemMock]) == [layoutItem] + expect(LayoutBuilder.buildExpression([layoutItem]) === [layoutItem]) == true expect(LayoutBuilder.buildBlock()).to(beEmpty()) - expect(LayoutBuilder.buildBlock([layoutItem]) as? [LayoutItemMock]) == [layoutItem] + expect(LayoutBuilder.buildBlock([layoutItem]) === [layoutItem]) == true - expect(LayoutBuilder.buildBlock([layoutItem], [layoutItem], [layoutItem]) as? [LayoutItemMock]) == [ + expect(LayoutBuilder.buildBlock([layoutItem], [layoutItem], [layoutItem]) === [ layoutItem, layoutItem, layoutItem - ] + ]) == true expect(LayoutBuilder.buildOptional(nil)).to(beEmpty()) - expect(LayoutBuilder.buildOptional([layoutItem]) as? [LayoutItemMock]) == [layoutItem] + expect(LayoutBuilder.buildOptional([layoutItem]) === [layoutItem]) == true - expect(LayoutBuilder.buildEither(first: [layoutItem]) as? [LayoutItemMock]) == [layoutItem] - expect(LayoutBuilder.buildEither(second: [layoutItem]) as? [LayoutItemMock]) == [layoutItem] + expect(LayoutBuilder.buildEither(first: [layoutItem]) === [layoutItem]) == true + expect(LayoutBuilder.buildEither(second: [layoutItem]) === [layoutItem]) == true - expect(LayoutBuilder.buildArray([[layoutItem], [layoutItem], [layoutItem]]) as? [LayoutItemMock]) == [ + expect(LayoutBuilder.buildArray([[layoutItem], [layoutItem], [layoutItem]]) === [ layoutItem, layoutItem, layoutItem - ] + ]) == true - expect(LayoutBuilder.buildLimitedAvailability([layoutItem]) as? [LayoutItemMock]) == [layoutItem] - expect(LayoutBuilder.buildFinalResult([layoutItem]) as? [LayoutItemMock]) == [layoutItem] + expect(LayoutBuilder.buildLimitedAvailability([layoutItem]) === [layoutItem]) == true + expect(LayoutBuilder.buildFinalResult([layoutItem]) === [layoutItem]) == true } } diff --git a/Tests/LayoutTests/Support/Array.swift b/Tests/LayoutTests/Support/Array.swift new file mode 100644 index 00000000..4343270b --- /dev/null +++ b/Tests/LayoutTests/Support/Array.swift @@ -0,0 +1,15 @@ +// +// All Contributions by Match Group +// +// Copyright © 2023 Tinder (Match Group, LLC) +// +// Licensed under the Match Group Modified 3-Clause BSD License. +// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. +// + +extension Array where Element == AnyObject { + + internal static func === (lhs: Self, rhs: Self) -> Bool { + zip(lhs, rhs).allSatisfy { $0.0 === $0.1 } + } +} From fe625104820efa9e348443d38d3b5799db3873a9 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 09:58:16 -0700 Subject: [PATCH 05/42] Delete DimensionAttribute (#170) --- Sources/Layout/AnchorAttribute.swift | 34 +----------------- Tests/LayoutTests/AnchorAttributeTests.swift | 38 -------------------- 2 files changed, 1 insertion(+), 71 deletions(-) diff --git a/Sources/Layout/AnchorAttribute.swift b/Sources/Layout/AnchorAttribute.swift index 3a0505b1..82d42379 100644 --- a/Sources/Layout/AnchorAttribute.swift +++ b/Sources/Layout/AnchorAttribute.swift @@ -23,7 +23,7 @@ internal protocol AnchorAttribute { internal enum AnchorAttributeType { - case xAxisAnchor, yAxisAnchor, dimension + case xAxisAnchor, yAxisAnchor } public enum XAxisAttribute: AnchorAttribute { @@ -78,26 +78,6 @@ public enum YAxisAttribute: AnchorAttribute { } } -public enum DimensionAttribute: AnchorAttribute { - - case width, height - - internal typealias AnchorType = NSLayoutDimension - - internal var attributeType: AnchorAttributeType { - .dimension - } - - internal var attribute: NSLayoutConstraint.Attribute { - switch self { - case .width: - return .width - case .height: - return .height - } - } -} - extension LayoutAnchoring { internal func anchor(for attribute: T) -> NSLayoutAnchor { @@ -109,9 +89,6 @@ extension LayoutAnchoring { case .yAxisAnchor: let attribute: YAxisAttribute = attribute as! YAxisAttribute return yAnchor(for: attribute) as! NSLayoutAnchor - case .dimension: - let attribute: DimensionAttribute = attribute as! DimensionAttribute - return sizeAnchor(for: attribute) as! NSLayoutAnchor } // swiftlint:enable force_cast } @@ -145,13 +122,4 @@ extension LayoutAnchoring { return bottom } } - - private func sizeAnchor(for attribute: DimensionAttribute) -> NSLayoutDimension { - switch attribute { - case .width: - return width - case .height: - return height - } - } } diff --git a/Tests/LayoutTests/AnchorAttributeTests.swift b/Tests/LayoutTests/AnchorAttributeTests.swift index 9488a6db..c8f492e7 100644 --- a/Tests/LayoutTests/AnchorAttributeTests.swift +++ b/Tests/LayoutTests/AnchorAttributeTests.swift @@ -138,32 +138,6 @@ final class AnchorAttributeTests: XCTestCase { expect(anchorAttribute.attribute) == .bottom } - // MARK: DimensionAttribute - - func testDimensionAttributeWidth() { - - // GIVEN - - let anchorAttribute: DimensionAttribute = .width - - // THEN - - expect(anchorAttribute.attributeType) == .dimension - expect(anchorAttribute.attribute) == .width - } - - func testDimensionAttributeHeight() { - - // GIVEN - - let anchorAttribute: DimensionAttribute = .height - - // THEN - - expect(anchorAttribute.attributeType) == .dimension - expect(anchorAttribute.attribute) == .height - } - // MARK: LayoutAnchoring func testAnchorForXAxisAttributes() { @@ -195,16 +169,4 @@ final class AnchorAttributeTests: XCTestCase { expect(view.anchor(for: YAxisAttribute.lastBaseline)) == view.lastBaseline expect(view.anchor(for: YAxisAttribute.bottom)) == view.bottom } - - func testAnchorForDimensionAttributes() { - - // GIVEN - - let view: UIView = .init() - - // THEN - - expect(view.anchor(for: DimensionAttribute.width)) == view.width - expect(view.anchor(for: DimensionAttribute.height)) == view.height - } } From 42b687531aad0cf7f6a6e443ba1191a38d1487a0 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:21:11 -0700 Subject: [PATCH 06/42] Add Boundary Center Size & Baseline conformances to LayoutItem and UILayoutGuide (#153) Add Boundary Center Size & Baseline conformance --- Sources/Layout/LayoutAnchoring.swift | 2 +- Sources/Layout/LayoutItem.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/Layout/LayoutAnchoring.swift b/Sources/Layout/LayoutAnchoring.swift index 979cc954..52d8bc12 100644 --- a/Sources/Layout/LayoutAnchoring.swift +++ b/Sources/Layout/LayoutAnchoring.swift @@ -47,7 +47,7 @@ extension UIView: LayoutAnchoring { public var height: NSLayoutDimension { heightAnchor } } -extension UILayoutGuide: LayoutAnchoring { +extension UILayoutGuide: LayoutAnchoring, LayoutBoundary, LayoutCenter, LayoutSize { public var left: NSLayoutXAxisAnchor { leftAnchor } public var centerX: NSLayoutXAxisAnchor { centerXAnchor } diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index 68c97982..b96a99cb 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -25,7 +25,7 @@ public typealias SuperviewConstraints = (LayoutItem) -> [NSLayoutConstraint] /// ```` @preconcurrency @MainActor -public protocol LayoutItem: AnyObject { +public protocol LayoutItem: AnyObject, LayoutBoundary, LayoutCenter, LayoutSize, LayoutBaseline { /// View of the LayoutItem var layoutItemView: UIView { get } From 3fc15cfeb3e9af2931fed165e6d29544b7faa579 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:35:55 -0700 Subject: [PATCH 07/42] Delete equalAttribute method (#182) --- Sources/Layout/Layout.swift | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/Sources/Layout/Layout.swift b/Sources/Layout/Layout.swift index 4f2dcaa0..edc94083 100644 --- a/Sources/Layout/Layout.swift +++ b/Sources/Layout/Layout.swift @@ -592,22 +592,6 @@ public final class Layout { // swiftlint:disable:this type_body_length ]) } - @discardableResult - private func equalAttribute( - _ attribute: T, - _ views: [UIView] - ) -> [NSLayoutConstraint] { - guard views.count >= 2, - let first = views.first - else { return [] } - let firstAnchor: NSLayoutAnchor = first.anchor(for: attribute) - return views.dropFirst().map { view in - view - .anchor(for: attribute) - .constraint(equalTo: firstAnchor) - } - } - /// Adds LayoutItems /// /// - Note: From 1d2c5190ce9fb816dd72b8b2050271e8e626098b Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:42:25 -0700 Subject: [PATCH 08/42] Remove protocol conformance from XAxisAttribute (#183) --- Sources/Layout/AnchorAttribute.swift | 23 +------- Tests/LayoutTests/AnchorAttributeTests.swift | 62 -------------------- 2 files changed, 1 insertion(+), 84 deletions(-) diff --git a/Sources/Layout/AnchorAttribute.swift b/Sources/Layout/AnchorAttribute.swift index 82d42379..691195b2 100644 --- a/Sources/Layout/AnchorAttribute.swift +++ b/Sources/Layout/AnchorAttribute.swift @@ -26,30 +26,9 @@ internal enum AnchorAttributeType { case xAxisAnchor, yAxisAnchor } -public enum XAxisAttribute: AnchorAttribute { +public enum XAxisAttribute { case left, centerX, right, leading, trailing - - internal typealias AnchorType = NSLayoutXAxisAnchor - - internal var attributeType: AnchorAttributeType { - .xAxisAnchor - } - - internal var attribute: NSLayoutConstraint.Attribute { - switch self { - case .left: - return .left - case .centerX: - return .centerX - case .right: - return .right - case .leading: - return .leading - case .trailing: - return .trailing - } - } } public enum YAxisAttribute: AnchorAttribute { diff --git a/Tests/LayoutTests/AnchorAttributeTests.swift b/Tests/LayoutTests/AnchorAttributeTests.swift index c8f492e7..04fd0b4d 100644 --- a/Tests/LayoutTests/AnchorAttributeTests.swift +++ b/Tests/LayoutTests/AnchorAttributeTests.swift @@ -14,68 +14,6 @@ import XCTest @MainActor final class AnchorAttributeTests: XCTestCase { - // MARK: XAxisAttribute - - func testXAxisAttributeLeft() { - - // GIVEN - - let anchorAttribute: XAxisAttribute = .left - - // THEN - - expect(anchorAttribute.attributeType) == .xAxisAnchor - expect(anchorAttribute.attribute) == .left - } - - func testXAxisAttributeCenterX() { - - // GIVEN - - let anchorAttribute: XAxisAttribute = .centerX - - // THEN - - expect(anchorAttribute.attributeType) == .xAxisAnchor - expect(anchorAttribute.attribute) == .centerX - } - - func testXAxisAttributeRight() { - - // GIVEN - - let anchorAttribute: XAxisAttribute = .right - - // THEN - - expect(anchorAttribute.attributeType) == .xAxisAnchor - expect(anchorAttribute.attribute) == .right - } - - func testXAxisAttributeLeading() { - - // GIVEN - - let anchorAttribute: XAxisAttribute = .leading - - // THEN - - expect(anchorAttribute.attributeType) == .xAxisAnchor - expect(anchorAttribute.attribute) == .leading - } - - func testXAxisAttributeTrailing() { - - // GIVEN - - let anchorAttribute: XAxisAttribute = .trailing - - // THEN - - expect(anchorAttribute.attributeType) == .xAxisAnchor - expect(anchorAttribute.attribute) == .trailing - } - // MARK: YAxisAttribute func testYAxisAttributeTop() { From c4b8cc4a4734ae05855b1b6823ba585f4dadcc97 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:53:21 -0700 Subject: [PATCH 09/42] Remove protocol conformance from YAxisAttribute (#184) --- Sources/Layout/AnchorAttribute.swift | 23 +------- Tests/LayoutTests/AnchorAttributeTests.swift | 62 -------------------- 2 files changed, 1 insertion(+), 84 deletions(-) diff --git a/Sources/Layout/AnchorAttribute.swift b/Sources/Layout/AnchorAttribute.swift index 691195b2..4f2f5678 100644 --- a/Sources/Layout/AnchorAttribute.swift +++ b/Sources/Layout/AnchorAttribute.swift @@ -31,30 +31,9 @@ public enum XAxisAttribute { case left, centerX, right, leading, trailing } -public enum YAxisAttribute: AnchorAttribute { +public enum YAxisAttribute { case top, centerY, firstBaseline, lastBaseline, bottom - - internal typealias AnchorType = NSLayoutYAxisAnchor - - internal var attributeType: AnchorAttributeType { - .yAxisAnchor - } - - internal var attribute: NSLayoutConstraint.Attribute { - switch self { - case .top: - return .top - case .centerY: - return .centerY - case .firstBaseline: - return .firstBaseline - case .lastBaseline: - return .lastBaseline - case .bottom: - return .bottom - } - } } extension LayoutAnchoring { diff --git a/Tests/LayoutTests/AnchorAttributeTests.swift b/Tests/LayoutTests/AnchorAttributeTests.swift index 04fd0b4d..ec3bc11e 100644 --- a/Tests/LayoutTests/AnchorAttributeTests.swift +++ b/Tests/LayoutTests/AnchorAttributeTests.swift @@ -14,68 +14,6 @@ import XCTest @MainActor final class AnchorAttributeTests: XCTestCase { - // MARK: YAxisAttribute - - func testYAxisAttributeTop() { - - // GIVEN - - let anchorAttribute: YAxisAttribute = .top - - // THEN - - expect(anchorAttribute.attributeType) == .yAxisAnchor - expect(anchorAttribute.attribute) == .top - } - - func testYAxisAttributeCenterY() { - - // GIVEN - - let anchorAttribute: YAxisAttribute = .centerY - - // THEN - - expect(anchorAttribute.attributeType) == .yAxisAnchor - expect(anchorAttribute.attribute) == .centerY - } - - func testYAxisAttributeFirstBaseline() { - - // GIVEN - - let anchorAttribute: YAxisAttribute = .firstBaseline - - // THEN - - expect(anchorAttribute.attributeType) == .yAxisAnchor - expect(anchorAttribute.attribute) == .firstBaseline - } - - func testYAxisAttributeLastBaseline() { - - // GIVEN - - let anchorAttribute: YAxisAttribute = .lastBaseline - - // THEN - - expect(anchorAttribute.attributeType) == .yAxisAnchor - expect(anchorAttribute.attribute) == .lastBaseline - } - - func testYAxisAttributeBottom() { - - // GIVEN - - let anchorAttribute: YAxisAttribute = .bottom - - // THEN - - expect(anchorAttribute.attributeType) == .yAxisAnchor - expect(anchorAttribute.attribute) == .bottom - } - // MARK: LayoutAnchoring func testAnchorForXAxisAttributes() { From 166c32e936c0afa774d9fea13c7a44078bb7f036 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:54:01 -0700 Subject: [PATCH 10/42] Delete LayoutAnchoring extension (#185) --- Sources/Layout/AnchorAttribute.swift | 46 ---------------------------- 1 file changed, 46 deletions(-) diff --git a/Sources/Layout/AnchorAttribute.swift b/Sources/Layout/AnchorAttribute.swift index 4f2f5678..a2140a55 100644 --- a/Sources/Layout/AnchorAttribute.swift +++ b/Sources/Layout/AnchorAttribute.swift @@ -35,49 +35,3 @@ public enum YAxisAttribute { case top, centerY, firstBaseline, lastBaseline, bottom } - -extension LayoutAnchoring { - - internal func anchor(for attribute: T) -> NSLayoutAnchor { - // swiftlint:disable force_cast - switch attribute.attributeType { - case .xAxisAnchor: - let attribute: XAxisAttribute = attribute as! XAxisAttribute - return xAnchor(for: attribute) as! NSLayoutAnchor - case .yAxisAnchor: - let attribute: YAxisAttribute = attribute as! YAxisAttribute - return yAnchor(for: attribute) as! NSLayoutAnchor - } - // swiftlint:enable force_cast - } - - private func xAnchor(for attribute: XAxisAttribute) -> NSLayoutXAxisAnchor { - switch attribute { - case .left: - return left - case .centerX: - return centerX - case .right: - return right - case .leading: - return leading - case .trailing: - return trailing - } - } - - private func yAnchor(for attribute: YAxisAttribute) -> NSLayoutYAxisAnchor { - switch attribute { - case .top: - return top - case .centerY: - return centerY - case .firstBaseline: - return firstBaseline - case .lastBaseline: - return lastBaseline - case .bottom: - return bottom - } - } -} From 744ecb80e5db8e1f26d69dbdce396f083fca544c Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 11:09:18 -0700 Subject: [PATCH 11/42] Remove AnchorAttribute and AnchorAttributeType (#186) --- Sources/Layout/AnchorAttribute.swift | 18 +------- Tests/LayoutTests/AnchorAttributeTests.swift | 48 -------------------- 2 files changed, 1 insertion(+), 65 deletions(-) delete mode 100644 Tests/LayoutTests/AnchorAttributeTests.swift diff --git a/Sources/Layout/AnchorAttribute.swift b/Sources/Layout/AnchorAttribute.swift index a2140a55..7f8e3b0e 100644 --- a/Sources/Layout/AnchorAttribute.swift +++ b/Sources/Layout/AnchorAttribute.swift @@ -1,3 +1,4 @@ +// swiftlint:disable:this file_name // // All Contributions by Match Group // @@ -9,23 +10,6 @@ import UIKit -// swiftlint:disable file_types_order - -internal protocol AnchorAttribute { - - associatedtype AnchorType: AnyObject - - var attributeType: AnchorAttributeType { get } - var attribute: NSLayoutConstraint.Attribute { get } -} - -// swiftlint:enable file_types_order - -internal enum AnchorAttributeType { - - case xAxisAnchor, yAxisAnchor -} - public enum XAxisAttribute { case left, centerX, right, leading, trailing diff --git a/Tests/LayoutTests/AnchorAttributeTests.swift b/Tests/LayoutTests/AnchorAttributeTests.swift deleted file mode 100644 index ec3bc11e..00000000 --- a/Tests/LayoutTests/AnchorAttributeTests.swift +++ /dev/null @@ -1,48 +0,0 @@ -// -// All Contributions by Match Group -// -// Copyright © 2023 Tinder (Match Group, LLC) -// -// Licensed under the Match Group Modified 3-Clause BSD License. -// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. -// - -@testable import Layout -import Nimble -import XCTest - -@MainActor -final class AnchorAttributeTests: XCTestCase { - - // MARK: LayoutAnchoring - - func testAnchorForXAxisAttributes() { - - // GIVEN - - let view: UIView = .init() - - // THEN - - expect(view.anchor(for: XAxisAttribute.left)) == view.left - expect(view.anchor(for: XAxisAttribute.centerX)) == view.centerX - expect(view.anchor(for: XAxisAttribute.right)) == view.right - expect(view.anchor(for: XAxisAttribute.leading)) == view.leading - expect(view.anchor(for: XAxisAttribute.trailing)) == view.trailing - } - - func testAnchorForYAxisAttributes() { - - // GIVEN - - let view: UIView = .init() - - // THEN - - expect(view.anchor(for: YAxisAttribute.top)) == view.top - expect(view.anchor(for: YAxisAttribute.centerY)) == view.centerY - expect(view.anchor(for: YAxisAttribute.firstBaseline)) == view.firstBaseline - expect(view.anchor(for: YAxisAttribute.lastBaseline)) == view.lastBaseline - expect(view.anchor(for: YAxisAttribute.bottom)) == view.bottom - } -} From ef98932fa66d0d3c1252b37551bc13399e4166ac Mon Sep 17 00:00:00 2001 From: Eman Haroutunian <104394983+tinder-emanharoutunian@users.noreply.github.com> Date: Wed, 18 Oct 2023 11:33:42 -0700 Subject: [PATCH 12/42] Add toEdge(_: inset: priority:) directional (#188) * Add toEdge(_: inset: priority:) directional * Documentatio fixes * Minor improvements --- Sources/Layout/LayoutItem.swift | 20 +++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 27 ++++++++++++++++++ ...sInsetPriority.iPhone-13-mini-portrait.png | Bin 0 -> 62615 bytes ...sInsetPriority.iPhone-13-mini-portrait.txt | 4 +++ ...oEdgesInsetPriority.iPhone-13-portrait.png | Bin 0 -> 67392 bytes ...oEdgesInsetPriority.iPhone-13-portrait.txt | 4 +++ ...ToEdgesInsetPriority.iPhone-8-portrait.png | Bin 0 -> 53170 bytes ...ToEdgesInsetPriority.iPhone-8-portrait.txt | 4 +++ ...oEdgesInsetPriority.iPhone-SE-portrait.png | Bin 0 -> 41458 bytes ...oEdgesInsetPriority.iPhone-SE-portrait.txt | 4 +++ ...ToEdgesInsetPriority.iPhone-X-portrait.png | Bin 0 -> 62615 bytes ...ToEdgesInsetPriority.iPhone-X-portrait.txt | 4 +++ 12 files changed, 67 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index b96a99cb..8d23ffbb 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -283,6 +283,26 @@ extension LayoutItem { } } + /// Constrains the view's edges to the superview's directional edges with an inset. + /// + /// - Parameters: + /// - edges: The edges to constrain + /// - inset: The inset amount + /// - priority: The priority of the constraint(s) + public func toEdges( + _ edges: [DirectionalEdge], + inset: CGFloat = 0, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let superview: UIView = layoutItem.layoutItemView.superview { + for edge: DirectionalEdge in edges { + layoutItem.constraint(to: edge, of: superview, inset: inset, priority: priority) + } + } + } + } + /// Constrains the `bottom` to the bottom margin with a minimum bottom inset /// Useful for bottom-aligned elements on iPhoneX family devices that require /// an additional bottom margin on non-iPhoneX devices. diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index dbd69f2b..9fc6f54f 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -412,6 +412,33 @@ final class LayoutItemTests: XCTestCase { } } + func testToEdgesInsetPriority() { + assertLayout { view in + view.layout { + + // To Top, Leading and Trailing + + pinkView + .size(height: 100) + .toEdges([.top, .leading, .trailing]) + + // To Bottom, Leading and Trailing with Inset + + yellowView + .size(height: 100) + .toEdges([.bottom, .leading, .trailing], inset: 25) + + // To Vertical Center, Leading and Trailing with Inset and with Priority + + blueView + .size(height: 100) + .to(.centerY) + .toEdges([.leading, .trailing], inset: 25, priority: .low) + .toEdges([.leading, .trailing], inset: 50, priority: .high) + } + } + } + func testToBottomMargin_andWithPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..9a2ef78869d149f5901e155fa10174383b2bae92 GIT binary patch literal 62615 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..3e4e8c06 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e0eee6ed83799829ee5a72e8cdaaa7bd97c1221d GIT binary patch literal 67392 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 MUbpHuC*Lps8;QQn7XSbN literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.txt new file mode 100644 index 00000000..e42d28fe --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..280bacaba1d0ad86f95918e03ad607add4705ba2 GIT binary patch literal 53170 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..a9dd7fd6e40b2c2d5be392df4fd40fb6d11f8473 GIT binary patch literal 41458 zcmeHQd011|woe#U#Mp8XuLIFnTUsZ)w<=a3p~dl1O>L{FAi-*jiV`f!n2Fok)N*aC z-eT24wAP_AgA6hxsfg&MfR#d+BvC+w1QLdX%;&9uO5*PS@4fFGzK<{A414eOThni^ zefHt_2bNHPAUIu{ff5d;f zedA}FHW3!W_elf?;w*xr=!@)WG*U&zO zPw3F{V{iHX=J==Odk}NUg6qo(gaE?EHSc~LPgJ!2{@vo@LdPwu7sPal-U|M=i(jTw z^yhCqX4R$LdGEmWxL%XGhl-gxv6=e<>}TEQIxW9IbRGLD);O74*#SMn^iReQOq|nl z?45Ek$9Bwl;@H@&$!p-meYcBAojoT66HUQY;e^>@r(Byu7hYW5)^iBIdK`Ql6WmU4 zZ+ISxaBsl90rv*n8^)Ol&LNU;ru2fQ;<*9O4R~(Aa|50mp3S-O+<@nXXW;;6N;p%R zDB9sn31><;Q^J`N&XjPbgs;Kat~9A6WNdx_mq4_0m^6Lf*cT$vepU3nZ#UQ+j$ z;V?Da_1TEVZw`1*OxPS+5csO~Fu24_tD(b%8z#*ZACHXPFd+{dT*h5tGfKP3AmicM zX&Y^Z0k-iRgRvgx%?~GdWw*?qY&{Gyp~+^HlNLBkmEB(9yTE1`GsUy4M@hiJ8b=xj z3%4vQN5S223=BMGjm2F&z>g;>JR6QBZ=5=e@eZ6i;MBp2OX8$-91NT~;M8Ga_J&gj zoH|&|(sAm5Q-`sMHclOI>VOyj#%9-erF1++;$`Kr*)?8+ALk4Bg2mW!2EJf1#uxC_ zopHW^FNKZGuKy>fgLaK9M^rP!nfhWUBG<{h-(JAnsOCR$oGN45NeRXV>JfHb;D-}C z7G;>LmXz%6@U!~Zbxs4Omve}ciOq>KSI8EvfU{QejYSuQihYCFnm5igaOIsX-YAm~{(i)gD#&vUdK9?9O zG?D5DE_PqM{A`0K$hK_1tTN}ixi^$k(0?@`+=A+ zElltItsl}kdoZn0`E>G3afL5-@3{ZVDmQioWzbK#E#t-no6pEz)?qQ>{ z4;~~)D>L_QL`5H|$)KmcvW)w7u&M2f&8XFAb5a^E)wgHjaNTK)GkzXlh1Zh-aOEHlurCtWbAXaQ{=%;(7E_^ z!K%l|-Kz%YHYwY^!wE`J=WAXgF9R3d6_iOY4HFZ>I8_nTRw2OEF;mnb#o&u=4DEd# z5+>&8XUQc?Axxa1tA6R+gaG%EbdRayp`DXzz~CRd8Ue0acvoMQ0ruV~Ng9Yofou2K zAxbFV63cb5r1V+@xL3*%K=(=4^%8o@KdPUnMuVF;=k(x}pa2tr8 zR2V^8iHgoXuWl;_UkzbsR5wx4&8y`SZ+8$qOwqds6}>?kVKS$I=ygf{?1iZ4qWgNn zA`tz1Nuv1!RCJ@yPC@u35Pfi)_o~xKgmn=<&`)xK+mD?|to-f`j>4G9yKEJMU8Vb3 zU$LNfp>M_GHAtYz)_y1t%miPT?CPECe9o9RT;Q2%6@=rM8S1x+AXKzPjhq^e-2Wn>Üt3t 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..9a2ef78869d149f5901e155fa10174383b2bae92 GIT binary patch literal 62615 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..3e4e8c06 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file From f4eb096a62480e071827764a2b8094496e898780 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 11:47:25 -0700 Subject: [PATCH 13/42] Remove LayoutAnchoring from UILayoutGuide (#190) * Remove LayoutAnchoring from UILayoutGuide * Use protocol constrained type --- Sources/Layout/LayoutAnchoring.swift | 2 +- Tests/LayoutTests/LayoutAnchoringTests.swift | 45 ++++++++++++++------ 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/Sources/Layout/LayoutAnchoring.swift b/Sources/Layout/LayoutAnchoring.swift index 52d8bc12..aea5e6d4 100644 --- a/Sources/Layout/LayoutAnchoring.swift +++ b/Sources/Layout/LayoutAnchoring.swift @@ -47,7 +47,7 @@ extension UIView: LayoutAnchoring { public var height: NSLayoutDimension { heightAnchor } } -extension UILayoutGuide: LayoutAnchoring, LayoutBoundary, LayoutCenter, LayoutSize { +extension UILayoutGuide: LayoutBoundary, LayoutCenter, LayoutSize { public var left: NSLayoutXAxisAnchor { leftAnchor } public var centerX: NSLayoutXAxisAnchor { centerXAnchor } diff --git a/Tests/LayoutTests/LayoutAnchoringTests.swift b/Tests/LayoutTests/LayoutAnchoringTests.swift index 4d353419..0c4e01a8 100644 --- a/Tests/LayoutTests/LayoutAnchoringTests.swift +++ b/Tests/LayoutTests/LayoutAnchoringTests.swift @@ -38,28 +38,47 @@ final class LayoutAnchoringTests: XCTestCase { expect(view.height) == view.heightAnchor } - func testLayoutGuideAnchors() { + func testUILayoutGuideLayoutBoundary() { // GIVEN let guide: UILayoutGuide = .init() + let boundary: LayoutBoundary = guide // THEN - expect(guide.left) == guide.leftAnchor - expect(guide.centerX) == guide.centerXAnchor - expect(guide.right) == guide.rightAnchor - expect(guide.leading) == guide.leadingAnchor - expect(guide.trailing) == guide.trailingAnchor + expect(boundary.left) == guide.leftAnchor + expect(boundary.right) == guide.rightAnchor + expect(boundary.leading) == guide.leadingAnchor + expect(boundary.trailing) == guide.trailingAnchor + expect(boundary.top) == guide.topAnchor + expect(boundary.bottom) == guide.bottomAnchor + } + + func testUILayoutGuideLayoutCenter() { + + // GIVEN + + let guide: UILayoutGuide = .init() + let center: LayoutCenter = guide + + // THEN - expect(guide.top) == guide.topAnchor - expect(guide.centerY) == guide.centerYAnchor - expect(guide.firstBaseline).to(throwAssertion()) - expect(guide.lastBaseline).to(throwAssertion()) - expect(guide.bottom) == guide.bottomAnchor + expect(center.centerX) == guide.centerXAnchor + expect(center.centerY) == guide.centerYAnchor + } + + func testUILayoutGuideLayoutSize() { + + // GIVEN + + let guide: UILayoutGuide = .init() + let size: LayoutSize = guide + + // THEN - expect(guide.width) == guide.widthAnchor - expect(guide.height) == guide.heightAnchor + expect(size.width) == guide.widthAnchor + expect(size.height) == guide.heightAnchor } func testLayoutSupportAnchors() { From 4b9ed123508263ae25fa2ea4e765b6dcfac52c56 Mon Sep 17 00:00:00 2001 From: Eman Haroutunian <104394983+tinder-emanharoutunian@users.noreply.github.com> Date: Wed, 18 Oct 2023 11:56:20 -0700 Subject: [PATCH 14/42] Add toEdges(canonical:inset:priority) (#187) * Add toEdges(canonical:inset:priority) * Fix doc * Review feedback * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller --------- Co-authored-by: Christopher Fuller --- Sources/Layout/LayoutItem.swift | 20 +++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 27 ++++++++++++++++++ ...sInsetPriority.iPhone-13-mini-portrait.png | Bin 0 -> 62615 bytes ...sInsetPriority.iPhone-13-mini-portrait.txt | 4 +++ ...lEdgesInsetPriority.iPhone-13-portrait.png | Bin 0 -> 67392 bytes ...lEdgesInsetPriority.iPhone-13-portrait.txt | 4 +++ ...alEdgesInsetPriority.iPhone-8-portrait.png | Bin 0 -> 53170 bytes ...alEdgesInsetPriority.iPhone-8-portrait.txt | 4 +++ ...lEdgesInsetPriority.iPhone-SE-portrait.png | Bin 0 -> 41458 bytes ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 4 +++ ...alEdgesInsetPriority.iPhone-X-portrait.png | Bin 0 -> 62615 bytes ...alEdgesInsetPriority.iPhone-X-portrait.txt | 4 +++ 12 files changed, 67 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index 8d23ffbb..2ad8d85d 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -303,6 +303,26 @@ extension LayoutItem { } } + /// Constrains the view's edges to the superview's canonical edges with an inset. + /// + /// - Parameters: + /// - edges: The edges to constrain + /// - inset: The inset amount + /// - priority: The priority of the constraint(s) + public func toEdges( + canonical edges: [CanonicalEdge] = CanonicalEdge.allCases, + inset: CGFloat = 0, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let superview: UIView = layoutItem.layoutItemView.superview { + for edge: CanonicalEdge in edges { + layoutItem.constraint(to: edge, of: superview, inset: inset, priority: priority) + } + } + } + } + /// Constrains the `bottom` to the bottom margin with a minimum bottom inset /// Useful for bottom-aligned elements on iPhoneX family devices that require /// an additional bottom margin on non-iPhoneX devices. diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 9fc6f54f..a0113da2 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -439,6 +439,33 @@ final class LayoutItemTests: XCTestCase { } } + func testToCanonicalEdgesInsetPriority() { + assertLayout { view in + view.layout { + + // To Top, Left and Right + + pinkView + .size(height: 100) + .toEdges(canonical: [.top, .left, .right]) + + // To Bottom, Left and Right with Inset + + yellowView + .size(height: 100) + .toEdges(canonical: [.bottom, .left, .right], inset: 25) + + // To Vertical Center, Left and Right with Inset and with Priority + + blueView + .size(height: 100) + .to(.centerY) + .toEdges(canonical: [.left, .right], inset: 25, priority: .low) + .toEdges(canonical: [.left, .right], inset: 50, priority: .high) + } + } + } + func testToBottomMargin_andWithPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..9a2ef78869d149f5901e155fa10174383b2bae92 GIT binary patch literal 62615 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..3e4e8c06 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e0eee6ed83799829ee5a72e8cdaaa7bd97c1221d GIT binary patch literal 67392 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 MUbpHuC*Lps8;QQn7XSbN literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt new file mode 100644 index 00000000..e42d28fe --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..280bacaba1d0ad86f95918e03ad607add4705ba2 GIT binary patch literal 53170 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..a9dd7fd6e40b2c2d5be392df4fd40fb6d11f8473 GIT binary patch literal 41458 zcmeHQd011|woe#U#Mp8XuLIFnTUsZ)w<=a3p~dl1O>L{FAi-*jiV`f!n2Fok)N*aC z-eT24wAP_AgA6hxsfg&MfR#d+BvC+w1QLdX%;&9uO5*PS@4fFGzK<{A414eOThni^ zefHt_2bNHPAUIu{ff5d;f zedA}FHW3!W_elf?;w*xr=!@)WG*U&zO zPw3F{V{iHX=J==Odk}NUg6qo(gaE?EHSc~LPgJ!2{@vo@LdPwu7sPal-U|M=i(jTw z^yhCqX4R$LdGEmWxL%XGhl-gxv6=e<>}TEQIxW9IbRGLD);O74*#SMn^iReQOq|nl z?45Ek$9Bwl;@H@&$!p-meYcBAojoT66HUQY;e^>@r(Byu7hYW5)^iBIdK`Ql6WmU4 zZ+ISxaBsl90rv*n8^)Ol&LNU;ru2fQ;<*9O4R~(Aa|50mp3S-O+<@nXXW;;6N;p%R zDB9sn31><;Q^J`N&XjPbgs;Kat~9A6WNdx_mq4_0m^6Lf*cT$vepU3nZ#UQ+j$ z;V?Da_1TEVZw`1*OxPS+5csO~Fu24_tD(b%8z#*ZACHXPFd+{dT*h5tGfKP3AmicM zX&Y^Z0k-iRgRvgx%?~GdWw*?qY&{Gyp~+^HlNLBkmEB(9yTE1`GsUy4M@hiJ8b=xj z3%4vQN5S223=BMGjm2F&z>g;>JR6QBZ=5=e@eZ6i;MBp2OX8$-91NT~;M8Ga_J&gj zoH|&|(sAm5Q-`sMHclOI>VOyj#%9-erF1++;$`Kr*)?8+ALk4Bg2mW!2EJf1#uxC_ zopHW^FNKZGuKy>fgLaK9M^rP!nfhWUBG<{h-(JAnsOCR$oGN45NeRXV>JfHb;D-}C z7G;>LmXz%6@U!~Zbxs4Omve}ciOq>KSI8EvfU{QejYSuQihYCFnm5igaOIsX-YAm~{(i)gD#&vUdK9?9O zG?D5DE_PqM{A`0K$hK_1tTN}ixi^$k(0?@`+=A+ zElltItsl}kdoZn0`E>G3afL5-@3{ZVDmQioWzbK#E#t-no6pEz)?qQ>{ z4;~~)D>L_QL`5H|$)KmcvW)w7u&M2f&8XFAb5a^E)wgHjaNTK)GkzXlh1Zh-aOEHlurCtWbAXaQ{=%;(7E_^ z!K%l|-Kz%YHYwY^!wE`J=WAXgF9R3d6_iOY4HFZ>I8_nTRw2OEF;mnb#o&u=4DEd# z5+>&8XUQc?Axxa1tA6R+gaG%EbdRayp`DXzz~CRd8Ue0acvoMQ0ruV~Ng9Yofou2K zAxbFV63cb5r1V+@xL3*%K=(=4^%8o@KdPUnMuVF;=k(x}pa2tr8 zR2V^8iHgoXuWl;_UkzbsR5wx4&8y`SZ+8$qOwqds6}>?kVKS$I=ygf{?1iZ4qWgNn zA`tz1Nuv1!RCJ@yPC@u35Pfi)_o~xKgmn=<&`)xK+mD?|to-f`j>4G9yKEJMU8Vb3 zU$LNfp>M_GHAtYz)_y1t%miPT?CPECe9o9RT;Q2%6@=rM8S1x+AXKzPjhq^e-2Wn>Üt3t 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..9a2ef78869d149f5901e155fa10174383b2bae92 GIT binary patch literal 62615 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..3e4e8c06 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file From 7d0cdc95f3b5e72cc563d12e235cf245bcf796d6 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 12:14:54 -0700 Subject: [PATCH 15/42] Remove LayoutAnchoring from ViewLayoutItem (#189) * Remove LayoutAnchoring from ViewLayoutItem * Improve tests Co-authored-by: Christopher Fuller * Fix --------- Co-authored-by: Christopher Fuller --- Sources/Layout/LayoutItem.swift | 2 +- Tests/LayoutTests/LayoutItemTests.swift | 62 +++++++++++++++++++------ 2 files changed, 49 insertions(+), 15 deletions(-) diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index 2ad8d85d..31b06ed1 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -524,7 +524,7 @@ extension LayoutItem { } // swiftlint:disable:next no_grouping_extension -extension ViewLayoutItem: LayoutAnchoring { +extension ViewLayoutItem { public var left: NSLayoutXAxisAnchor { layoutItemView.left } public var centerX: NSLayoutXAxisAnchor { layoutItemView.centerX } diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index a0113da2..921be17d 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -510,25 +510,59 @@ final class LayoutItemTests: XCTestCase { } } - func testViewLayoutItemLayoutAnchoring() { + func testViewLayoutItemLayoutBoundary() { // GIVEN - let item: ViewLayoutItem = .init(layoutItemView: UIView()) { _ in [] } + let view: UIView = .init() + let boundary: LayoutBoundary = ViewLayoutItem(layoutItemView: view) { _ in [] } + + // THEN + + expect(boundary.left) == view.left + expect(boundary.right) == view.right + expect(boundary.leading) == view.leading + expect(boundary.trailing) == view.trailing + expect(boundary.top) == view.top + expect(boundary.bottom) == view.bottom + } + + func testViewLayoutItemLayoutCenter() { + + // GIVEN + + let view: UIView = .init() + let center: LayoutCenter = ViewLayoutItem(layoutItemView: view) { _ in [] } + + // THEN + + expect(center.centerX) == view.centerX + expect(center.centerY) == view.centerY + } + + func testViewLayoutItemLayoutSize() { + + // GIVEN + + let view: UIView = .init() + let size: LayoutSize = ViewLayoutItem(layoutItemView: view) { _ in [] } + + // THEN + + expect(size.width) == view.width + expect(size.height) == view.height + } + + func testViewLayoutItemLayoutBaseline() { + + // GIVEN + + let view: UIView = .init() + let baseline: LayoutBaseline = ViewLayoutItem(layoutItemView: view) { _ in [] } // THEN - expect(item.left) == item.layoutItemView.left - expect(item.centerX) == item.layoutItemView.centerX - expect(item.right) == item.layoutItemView.right - expect(item.leading) == item.layoutItemView.leading - expect(item.trailing) == item.layoutItemView.trailing - expect(item.top) == item.layoutItemView.top - expect(item.centerY) == item.layoutItemView.centerY - expect(item.firstBaseline) == item.layoutItemView.firstBaseline - expect(item.lastBaseline) == item.layoutItemView.lastBaseline - expect(item.bottom) == item.layoutItemView.bottom - expect(item.width) == item.layoutItemView.width - expect(item.height) == item.layoutItemView.height + expect(baseline.firstBaseline) == view.firstBaseline + expect(baseline.lastBaseline) == view.lastBaseline } } From 5407673b0bc7e1ddc3f4821cd59d5cba7cf8ef21 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 12:15:09 -0700 Subject: [PATCH 16/42] Remove LayoutAnchoring from UIView (#193) --- Sources/Layout/LayoutAnchoring.swift | 2 +- Tests/LayoutTests/LayoutAnchoringTests.swift | 58 +++++++++++++++----- 2 files changed, 46 insertions(+), 14 deletions(-) diff --git a/Sources/Layout/LayoutAnchoring.swift b/Sources/Layout/LayoutAnchoring.swift index aea5e6d4..f109630d 100644 --- a/Sources/Layout/LayoutAnchoring.swift +++ b/Sources/Layout/LayoutAnchoring.swift @@ -29,7 +29,7 @@ public protocol LayoutAnchoring { var height: NSLayoutDimension { get } } -extension UIView: LayoutAnchoring { +extension UIView { public var left: NSLayoutXAxisAnchor { leftAnchor } public var centerX: NSLayoutXAxisAnchor { centerXAnchor } diff --git a/Tests/LayoutTests/LayoutAnchoringTests.swift b/Tests/LayoutTests/LayoutAnchoringTests.swift index 0c4e01a8..2760f8ca 100644 --- a/Tests/LayoutTests/LayoutAnchoringTests.swift +++ b/Tests/LayoutTests/LayoutAnchoringTests.swift @@ -14,28 +14,60 @@ import XCTest @MainActor final class LayoutAnchoringTests: XCTestCase { - func testViewAnchors() { + func testUIViewLayoutBoundary() { // GIVEN let view: UIView = .init() + let boundary: LayoutBoundary = view // THEN - expect(view.left) == view.leftAnchor - expect(view.centerX) == view.centerXAnchor - expect(view.right) == view.rightAnchor - expect(view.leading) == view.leadingAnchor - expect(view.trailing) == view.trailingAnchor + expect(boundary.left) == view.leftAnchor + expect(boundary.right) == view.rightAnchor + expect(boundary.leading) == view.leadingAnchor + expect(boundary.trailing) == view.trailingAnchor + expect(boundary.top) == view.topAnchor + expect(boundary.bottom) == view.bottomAnchor + } + + func testUIViewLayoutCenter() { + + // GIVEN + + let view: UIView = .init() + let center: LayoutCenter = view + + // THEN + + expect(center.centerX) == view.centerXAnchor + expect(center.centerY) == view.centerYAnchor + } + + func testUIViewLayoutSize() { + + // GIVEN - expect(view.top) == view.topAnchor - expect(view.centerY) == view.centerYAnchor - expect(view.firstBaseline) == view.firstBaselineAnchor - expect(view.lastBaseline) == view.lastBaselineAnchor - expect(view.bottom) == view.bottomAnchor + let view: UIView = .init() + let size: LayoutSize = view + + // THEN + + expect(size.width) == view.widthAnchor + expect(size.height) == view.heightAnchor + } + + func testUIViewLayoutBaseline() { + + // GIVEN + + let view: UIView = .init() + let baseline: LayoutBaseline = view + + // THEN - expect(view.width) == view.widthAnchor - expect(view.height) == view.heightAnchor + expect(baseline.firstBaseline) == view.firstBaseline + expect(baseline.lastBaseline) == view.lastBaseline } func testUILayoutGuideLayoutBoundary() { From 2598f3f502bbc129a2f10f71f865ffba5d6103ef Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:44:04 -0700 Subject: [PATCH 17/42] Delete LayoutAnchoring protocol (#194) --- Sources/Layout/LayoutAnchoring.swift | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/Sources/Layout/LayoutAnchoring.swift b/Sources/Layout/LayoutAnchoring.swift index f109630d..ff32b0f7 100644 --- a/Sources/Layout/LayoutAnchoring.swift +++ b/Sources/Layout/LayoutAnchoring.swift @@ -1,3 +1,4 @@ +// swiftlint:disable:this file_name // // All Contributions by Match Group // @@ -9,26 +10,6 @@ import UIKit -@preconcurrency -@MainActor -public protocol LayoutAnchoring { - - var left: NSLayoutXAxisAnchor { get } - var centerX: NSLayoutXAxisAnchor { get } - var right: NSLayoutXAxisAnchor { get } - var leading: NSLayoutXAxisAnchor { get } - var trailing: NSLayoutXAxisAnchor { get } - - var top: NSLayoutYAxisAnchor { get } - var centerY: NSLayoutYAxisAnchor { get } - var firstBaseline: NSLayoutYAxisAnchor { get } - var bottom: NSLayoutYAxisAnchor { get } - var lastBaseline: NSLayoutYAxisAnchor { get } - - var width: NSLayoutDimension { get } - var height: NSLayoutDimension { get } -} - extension UIView { public var left: NSLayoutXAxisAnchor { leftAnchor } From d510ba4017dcd9186b77d7757b61ce39700ae57e Mon Sep 17 00:00:00 2001 From: Eman Haroutunian <104394983+tinder-emanharoutunian@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:55:45 -0700 Subject: [PATCH 18/42] Add missing test for toEdges(canonical: inset: priority:) (#198) --- Tests/LayoutTests/LayoutItemTests.swift | 11 ++++++++--- ...sInsetPriority.iPhone-13-mini-portrait.png | Bin 62615 -> 67790 bytes ...sInsetPriority.iPhone-13-mini-portrait.txt | 7 ++++--- ...lEdgesInsetPriority.iPhone-13-portrait.png | Bin 67392 -> 72703 bytes ...lEdgesInsetPriority.iPhone-13-portrait.txt | 7 ++++--- ...alEdgesInsetPriority.iPhone-8-portrait.png | Bin 53170 -> 55289 bytes ...alEdgesInsetPriority.iPhone-8-portrait.txt | 7 ++++--- ...lEdgesInsetPriority.iPhone-SE-portrait.png | Bin 41458 -> 41669 bytes ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 7 ++++--- ...alEdgesInsetPriority.iPhone-X-portrait.png | Bin 62615 -> 67790 bytes ...alEdgesInsetPriority.iPhone-X-portrait.txt | 7 ++++--- 11 files changed, 28 insertions(+), 18 deletions(-) diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 921be17d..d9f81253 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -443,21 +443,26 @@ final class LayoutItemTests: XCTestCase { assertLayout { view in view.layout { - // To Top, Left and Right + // Defaults pinkView + .toEdges() + + // To Top, Left and Right + + yellowView .size(height: 100) .toEdges(canonical: [.top, .left, .right]) // To Bottom, Left and Right with Inset - yellowView + blueView .size(height: 100) .toEdges(canonical: [.bottom, .left, .right], inset: 25) // To Vertical Center, Left and Right with Inset and with Priority - blueView + orangeView .size(height: 100) .to(.centerY) .toEdges(canonical: [.left, .right], inset: 25, priority: .low) diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png index 9a2ef78869d149f5901e155fa10174383b2bae92..a2924c5094228efd4f6036c3a3cad4f94976f2f1 100644 GIT binary patch literal 67790 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 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt index 3e4e8c06..b6346608 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -1,4 +1,5 @@ > - | > - | > - | > \ No newline at end of file + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.png index e0eee6ed83799829ee5a72e8cdaaa7bd97c1221d..b1355d930dc4814cf269568f8b5157002320b490 100644 GIT binary patch literal 72703 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 PK@j|akm>ncLGr%=#Ktm& literal 67392 zcmeI5d0Z1$*T=)I0;1Lm$`Th8DplOU1p+7{MZ~&+3I??nD6g`(uoI{STPdRWR9X>& zwbd%6*os<3NJN1uLP(+_Tf(L&yD+kZEbketn#7y;{peLv6T17yhDeCOQX+&Smm zGsDa`>({yHkC`%tLZRrpu35E#LeWg6P)4_m(uQ}oIJ#-Ti`xDTE>4u+DokF$AK`nv zTt9brr_6@sQ4~$JDHJWT3H;cr8NXd#t!7CX`6xx5LOBvZ(fqs3I(Q|&p1=?Jnb)rx zS!#c`hWE16-?Y|D&C+sN9)_N3^$fUhVN2a4+|$4%jC9W}q}$2sU}I@+vSDr9`LntnS-?eMCv z&T&^;e9pSELwibPoc5wDHGO{v4Y|c!?PmuY^1pt61=(hwMxr_6v!NO8@}GF~;h(hi zT%BCcdS%Yxym?CwZIr6#nrN=Hv5|Jir_3`SJu_j~!E4I`6-*gf>$_%w`Q%iTISya2 zkDLE%;?YOdZNDn_0zNwJ-to`Y@K9a6sJ1e7{RYb|e%V(L0wkKROr7TXKXou8rvi6S zevjZih=(XX2IZU`EMg~vy(kV73h@<(2^=PHn80B|E_ueuwiljFD9uB0n80BIhY1`e zaF`%#EN`l6I85L$AzyRDbx~aSeXn?ri%z)cgo{qN==AP%7!DISOyDq~IGMslr~lNV z(}T!SqQPk8m-z{jWt=!-c>ZJ7UxT%)|*KANzXi0w7VZuD~nX_EvKL0lnE^c_A zZ4T^Rp{w3w`>x?B8iCPR5QQ;?M~Kp)hXuicy!NBmsVc=2EC?3lZScT(h*E}!1;K)h zWcxUEf9oV(FJM8iAa7^GIKRgEHO{YbvVfBXoGjq#q#M8{{AlrG%-_Xxt~{ASwn$-cV|6A6h&=MTm$ zyB@m!Q4|+e6!cM>+A8j>*U|Ii)J1Q@=-Y*HqrJ?X*P2a#`^KAv%g9=Sx$lXI^CP|n z@1}Tov!}aiD855>{6w7dhPy4(l-k0YB-HKg4B94_F^qc*;;l7*dX;dA^+L9~m+@JEBF56D;fqfibmM7ThmWvXhCOr#vEewS zM?lqUOC|0cx_QrqfKi%-A016O)Yx}~ISDADLDq0M(w6*} zLuJ;aEzu%sZ2s9j{z|evU((a~9fuj~#h(76@s6yQum5cqyMaSjcqY|gZ$)bm%gXlz z(N)b5Jxx4y_UCtZ{Ufc;s%2kDvuB96swMs8mm;k-ut7;%yPe6BUW#+(Wn0Kzh8d&O zrP7DRLoT4MncZM6trjUvcZ^h;P70Gb+)CezlsEQepN7X6FLS$y4k05io@;6(9#R}n zLZMh(lmry(Op!rhb>)IQ`5WFspAHxg-hRaKSYZjhZa6DzI*AmfxSkVq%L1ARevq{! z>Cai|rXXCU!}WNkw^aPsesXM^4h7jiL3K%3Cl%ihgeJKegDHhoNMpFKIGh!;U`tQp zWo`SB#ypa6x^K;dCXXXz9f4?Ld?=F2jj$yT(}8aL$4F!9DH5I=sZ2({0qYUcn8pt) zJ?tReAS!ptdN(4Cd1_i2R4@aYRBV+IZfIk6s7szKB$Y9F6-0Z8G)ABlwTuClve8Z;?cDid3wjiGBw8a^PEG3o23@sP#{H6=~D zq%vnh8;y~aqRo{a_ETX)>}fXkTok0lr!q(YNB&Jl$#>R^^7Q5?xE}|NdhOY1j=uCUxEWJ;H5bYF z!qABpy$u+|%YOR`6hn|)X-y{?(Km~Okc^|APP7=(xAZhFp_QW;&oU~5gdYMU>e?e~ zB;!(=6D@WNFgm!0Xb(_~uAItTI?0Iq<7xK-lpgo1oM?AuX>o_9hwOmoy6Rp$4l_@M2<&4*0jRW^G@2EI@ck z-=g};<#itbB<%c*!oQG^kfp?gR?Ux7D@cl%xv z68q&!p%4j)^dYvD0pt|5;b9djuKTvdaHBfG4b;TM?iLD=kf@!+u55s8p$hBLkdUrq zZu(vl5*>M1SdWB6?;*ZO0>~t)pv4mj>CNEgcY-6Ri8^#nScinf1Q4Ntq$Xzd9fn9q ze-5{HFA0eZy(6qeLSpw4k#3|WW_3i>64bFHD&P)xf-9(r*w-wqK|&ZI#Ftj2CT6wb zG$ce?&NbdgLc+h$6(DmIui%5kQC(6KvzkOtB;-y#cX=1Mf|{_;tpra{mUx9k5UK4j z*dCi!A2UQkN;|pR_mPl8yW9lG1jQ>fhB#dYkW;2lPE{>NX;LQPMsLqa(Ey!3q}qIN&?6v)5qsMkr2KqFTV?1LCyXx z*@A~iOAdZR{1HfMV)E!WLnNeX4zG3}2?^a$CP1bpUWby2n{K2gCJ(PwEkbEhYsVYz z0#{HIvaVggLs}Acf+(^gH8J5ArXe9hcb;(&2?_p0SI9*|!oMT#>ynz7@Jc+9kY*p= zat^qH(~Q+t!b&70;s=7)41=wN%B?U&LR$CowtJ9}SSL3j2MLMHAZqRaB#~PAxN0Fv zllB;16bD?v=@|P!VFeNrb(Uy42awfNjvx&Q=}zXQdytUmWl6$vBqaK0qU|t1w5b)( zJdu#T3|>A5T*2w6CE3CUNJz{@qIWl`iCKA!>jcmA(0Epgk?xbYz`q>Nor#D zpuY+k(1#0n!yIr0rz7UJ3-2Q#jNb{h8Kfp=WzsYxL{`o-TuVa2XX^-%`H5}tRbsRT zsfpSB1Wy#Cp{Sl`^8j4I>9AQA0%U$-8*+mf-wcDT#PnXWArey3$@5%GLJm!L5g_vu z+t31H@*RLAn*Q}&6)K=N+?Vje9)K%2ebCHLfXq*9_unR_odd{f)6$GIB&0&0pSG5S z9GG%MfXq*94-^w09R`TDY01x?NC?lAfBgZtg46paT@WDi6WfFLi21uoO-zb&43Ut> zbNE$jNl55~QUNkQu{~5yEL}-zVsiIt6)K=N)Y$O{9)K%29Wu66fXq*9!?=Xw3{n%5 zI|XS-h`^n1=uSd{$LI)=`H5}#BLdDpfF>qI#hyq=lMmnK6^ta2UvRI!9%^QMGR>X3 z8Jxu>>g{qvB;(m$zUNh7)K~-)1IP*2xhi+&W;o1eQ`wK0sBqrU7Q+ua2#lLjKL#?d zu#IXYc5a5s#cWwU6^ZCd=BF(N#A(qH1~MVAjebf5I0It3^eGb+KpT29_}5>7UXlG5 z7|2L&8}ot)Sqz9Nl1?fT(VxSwx(bMGy`>Cf2)2#wBqC-4VuJV;6BV)=LarnDJ|&m-$e>_>cyNzh`;b=*9C={8@(fd-^n@7!e)O`Az_l@zZZdc3B?};#IGdBnt z)zh8b_KW7%>CH0fpi6^}x=b?Anj)KjTy3(#cl`dzgSRha(p(!jLQafqlsHN)rT9ka zmv&J~?PPvznmTLTxE%T~qI9Wnjg-1|!Bh=}?_gUEd-u^|r-q80(^{qd znS;W2#pew|#*3jOP3h-T)Z^)+!sk`kLnW##PVX)IRCwNsZ3-KL z?FKK=pbb6gbD>#htr10Q#%eU&wjK8EX|+}~sV6e;kl>WRAmLO zOdjO6X3~a3)SP*x8a>&}ZZs;p+m10%3#cHW%#S5dfvVPF(!>FPy1RiGLzm^8^wKpjbul`*@}R+RMaDq+0>y=OL@5 zszBA|+A}2Cq*gnmrL0;NsF!|Bn(R|RxfsaWnVo2>+Pm!;vUE}_fuxmHqXIQ_gsH}y zxZXUbw}U0)ntgl4K${^|+S4pq@506;QmP#>J?VDa%;qQ#Ots0j>G8KOFvn9#P|x!u zW(U%w%Y*$3o1;jb>Z5y;RB-N2ASsehG!dnO!);~Gr;?nG zhHPd#+8&W~Ve58Mq57!)Koy*7oh(P@1mLvQ6aBk zB{?mX?aUWwd!%C*bsLlV)I~_GRB(olWW_Vb0jKG~FjWOdHeu0AT~Z(KA$AbqACafz zk3MVoFYU3>W2OwL!I;)L7TshKiS$Tk1}81*i-9)7Huk-`Dh!%IJ)CF{E-6xa*Dp3p zr@7vHivVA=hyu-Eh5mL2Tnn76*N3*b+XE z0lWV873d>lH}xxR+8i)QbgMP?4BDU@)=nqslfaj&(4Z^Yo7qGg*EHIJMNu{dO@=b(5!>*THVWo{z+Au6J2wCh*V)Sx7YukT=XO(DZ5(FyEno=xfB|um=dR$ z&B)^{xNP98odA48!9h-7Y_dz)xtWR~bgG8m!r*e9ADuIyk=?4;V<=1burKyPio-yXzo=t{E3oqPi zKY~so>Rx^4pYBPD2&qD86=`!PlUj;0`_v^_RKg-G>B zeoV-OMs^`3!?9nXMT(&xT@vXC{V)2^TCA@^qy*;CEs+k;h&?_?JX(cFu~sz~!PB$} zd+yU4RCI0VcmIpG;--JZC|b^lLmQMqPr7zV*D|%u@YVrF$|)B&g=7tUCFE;7j&oqK z)dou*8<)JYW`mrS+1Lmlw zZbt`thilrK<`_X9q?NM8tNL(A|7|#Ft++q4dOH0}GvlUT47+l-1U>v5nwq((;C?oA zeU_YHXXHnP)9`x~bNDIrlxx3^woLuPFsY**ZOSTpYR+Uxfr`g&*;<7*rB~w5IR&O1 z%zbc8g(=T8ct3swrnGry>_MBdjDCE{95CgRsxh5yXj8tjpO!NPoL9oJ&D$QKO(FCH zs*Zsv`?DXOS7A!q4Bj8$Z#F#Jl;eyxWgGp(wVY9wsk76LcD_KHa@T%Fjxi)Y&SN)k z=c7&OHw_Rbf+-;v>Q1RJrE4XxXf&A8w6XNx&${5cvUC+^`Xwqipn1Hv^ zI=0E1i#BC&PC)B049Wqa<&Cpwr*~ZZeID@&!f?CCL+?s7W@vFhdo5tD(=Bf@(U@_P zGkN__0aIqM$%li+i0lHo^8phkw8+muV~$I*@&+FPCY!_esX$|fodf#P0b@hAxRs8^ zjFbM9Cn^R^Qp(01*RXpGb+K(?IJMlh509U607cA3!l4V;5d#3|_pbWo94yRjNp zLr_ijjPSKk;i}?2+-QwX&?vzrV&_bB!em%DN0K-UL3Nm})I^oj)5}m%A4c#IZ&V@!khmLzbe(8HA2ChF!Q=I3AKON?E z|LNv%;y{&MW_1ZVsSJOn!8f?^2{d}NRIs%KsdYn!^;%ZTEa<;`Rk**Q3X#rwtff7j z4vm~k!vj7=@PbfziCS%pZV`$XVAa4Yqp-<0wAU=>!=Xvwud|Ig*r6SatRO7LW^X`S}Zx=2cy5wCOlL_1?XOiJFV@{IJmN7 zw7{E}IrU-60VW`4td{D@3&ADoQuu z{fGGm%V%e;S$1F66^!m!7|T}j$4TheNs$4kU&TI?wh;WWu&uF8tQ9rremxCZ$Lc%- z{W>GzpHwj|y+B(g`ExgHYc~;O(2w5r!`b}Y(agT#zhXtVT2y!=1dkk<>xpNCi+VYB^%w-*op zz3>dT$NI=!M2yG7$kSKx@q+z>{Qq0v@qotz9uGKw(8Tc($4B|Qa^dlS#{(V@c)p3} z*RRtf><_U&#QqTbL+lT+Ka{&EFRq{9`U$R|;Q9%!pS-@Y750bNA7X!q{UP>;*dHp~ z4i?u>aQy_=PjLMN*H3W$1lLdS^@{&N`M{MO8qM9W0qNL8z9E? z)r+eT>-xy&6`dS*RPNZs^$qE8OXI?!ebPY0x(K+Za_c=w)_Xcy_LKur7;PiFidc6G zMDA;eUH_hr69+#BVo+haY}@{22haCblFsOf--tFQ5}Hsa*1!lbyA%><^*F1?(>aCNES}Ecc|4xS;{uL+jS3fVaODnH?i31_xMT~@8OJ4C zT&sUKnIe~PtsbAG!6#`HjtP8rPTGXe&f&9j`0N}$J4ar2fiJ|s7h?RQufP#oYP(Y? zI@erRId1xQUX5d-eCgE4)rwN`l0?7hhDsMWj{JE(&Uu2)`xg(!sb7q9-f+Jq_5CaT zvfvXM_!IKil47k8;{lHnB~kDwQ4)mw6OR%lQSc~H66F7Sl(1>59rLdJ*G03@6!>y= MUbpHuC*Lps8;QQn7XSbN diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt index e42d28fe..dbcb1fd2 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt @@ -1,4 +1,5 @@ > - | > - | > - | > \ No newline at end of file + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.png index 280bacaba1d0ad86f95918e03ad607add4705ba2..51eff5b9075c987d04935d3da9a7e9a3f70ddc6f 100644 GIT binary patch literal 55289 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 literal 53170 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 - | > - | > - | > \ No newline at end of file + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.png index a9dd7fd6e40b2c2d5be392df4fd40fb6d11f8473..cdba2c998edcd4f304c16e4beec34da0af700b5e 100644 GIT binary patch literal 41669 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Üt3t za(5vpuJLF`%nwMMi>~(x5$uK3RNlMNdv%JH@M#s(+X)00Kg+uSAbdcoNfEZ{-%J7X zUwbB@VG9bxCg~wosy_gcURK_>00lz-xx6wHJYN#pz03J53IwZ6y}t+oM@ZCAehdnP zLY~DhSOY+O{$26hJtz0#EDQLvIxrRqO!=;()nvPtT4F41Uo z??~XH-S-rS3i^%`?X~LJJ51Pp1C`04OhXrW7CmI17jL zUy~q4k-}PC$O#Al<*GDE1d|2;DC^R-w-NJC*FKO3QoI0wxK9~O83KUnPH~uEXaxXJ zI6J9pIPql*i0_Kb;p=_?0Gf|g3>`)RSR_qi)fIz<77xhJ(&UH*ob?t`o_+)Xd?ZoV z@zM|gl+0oEM*6D&Kxr0_l7Rrg6YBNXND!zj8kC>~#IlC;<8) zc_rmF03c>7gLNMTpsAQH(6|Et-=9xZ#Gn8uT0I=OO_ZScZ7{W9j z^*jOqPc+5w)B|FG2feO_dzxMtLru^9umbTUBn(LjjOWc`UOp0N|_a*3r5V0Ce8Br$t|e`@0Lv zv5V;a2I<#nvUSk^osb=>vj`7ato?^#k_UtUkFfuI#b1uln3YVg*sly=fQEs+RbE3c zv!L9^L3x3p5CQ0MulrK&BP6PMFsu2kC}0YVvhQ9OR3jYhR8G~mhtI<3TaF#ntwMNA zc+Kc1JtaYazMRs;oQ2S!Na0N1yIVo~TP1ltmG2`2(qHkla2 z^Z@tw*mdU$|L>^qET7oaBoIDn;FCtLK}7hzn!L(T@P2xXdl}^}D!jVCd4CkJ1IEqc zp9(4w;q!BiqU&&q{du14!*ZFSOO-63dG@ep?Pz`q3 z8Js(8kM^D>J(bpX1BBB%rJC8u;DbbO_%`i^!KoY%n$)Q5^3lCLtHG@VYPz8fnYCn^ zeo}<5ht4kTlVS-??tu+IN+l2LC&m zvep}flN;9kMy7jwfAr(O_;E~!U(qIu=^T@;)3$_l$eyY_-X~a~>QVl!YOPGi5VCaEWJqAW!&%UPT(OhP7X$(wBF`llhlP2!4nkE?s z&Rpl{ppvB>8o*QqN&6G_TTQe4_RDzGt)>Q^<5V%v2RlPH-P_&6sIV@>v2`JhA{OK} zW}K3vzgKai+`5XFzFgHn&M*%a*g44xLa;WH8HK=9*hd#F1PDrpspfVR!om8jm~jh; z`1=V=UCl-nfQ6}*(!VStNZUsRoCDrVysfK3Uam%?bA}^0GM5%*P*O)w2+STC?n~jk z_dsH0gyv-k11f3Tg62T;I8CYgbmGgFb3t95QB^l-Cb$0JQKd5rQCkN+XIt5S zf!gyMY6T5JH9=OzIN3(~S}J`>9L#E&doPtypCC#*g0TxbTw!b{SW(!&5u@3M5hH&E zN-J|~Yscmb=ERztYOLzF7ch@ZcW)S*w_->fG4is?#bVm_Ac%4Va&y;lz7|orn`n2I zjs=~Mj>dPnA(Dr8tLiw8^0U!n7pHZwP=2-KX-6LMUUKA4DzHFGkE~ z`$$96B_`CdjTdX%N4BKD>^tENjF9@FxiG*u&F4U95&OALF7|x#w#5Jrc4w1@5br5t zKTJHA1I{PPKV3uNAqJFcDp#)}zXAyFeXW@FFT{PCHHM~PCQw@A30COnTZjea4mf8! z>%Rnq-P%f&fqsbp2y8u+YU7W<9G6lVc`F4(~JQl0X2c);Owi3WiY^g-;xm>67+LNBC@L!VLq$vo?W6I zM50%?Tp3!gjsgvojWYThkenUfPufM&9Dwr~#SCR76#<}wUYf3`1ps`M9gibW((qVN z>e*if=RFu5Pu6n~6RZ^-^>0f8A5lImYorYz05(!%{o5nqe9ptthkugt%Q*dsrBK%9 zN=svE1Z{{3*Kh_B%g?}hdg$nMo90h4 zz5=U~PnN+-{-%`lMnnnT`d;}KI>ZU~ z@1IrlZb7V2wn@bDm&3$XtZc~$_WuRZLYTT!QYl;qAf3xflzf4Z7jYTel-ODffk2x7 zk$2K&#E;4qJvr4ZnA>V!pRF#cW+HZ2Y%;6Mm5`@Jdjw&lC<};xND3zzp|-7BRMg8N z>5x#QG&m}bOJQA$UAeSE^;gsoZVAMmI!B8k9DFdFJct^Cc6RgImQbLSUJ9mML^064 z)*P4v=X0b##X*_%W%^w{9GrW#1NeW3FwmPtK_M84$gK{8^I^hw8LV>D4CKo2`U>Cz z={Q~7OWgOQeeHH+m4x<71@Vq$p58 zx>mNN(EN`hEY0H7l8~l7>fWDeXF|x|^5UNdjkVD>>ucw8!#+)Q zH$O=}bTP@3mt!-m>7?a7j7&z#q8ZU8t3s{b1pp&D4Zs|5-?2){^Y> - | > - | > - | > \ No newline at end of file + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.png index 9a2ef78869d149f5901e155fa10174383b2bae92..a2924c5094228efd4f6036c3a3cad4f94976f2f1 100644 GIT binary patch literal 67790 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 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt index 3e4e8c06..b6346608 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt @@ -1,4 +1,5 @@ > - | > - | > - | > \ No newline at end of file + | > + | > + | > + | > \ No newline at end of file From 353202a4c091a10a4d74ce29af9f8b6d53209b07 Mon Sep 17 00:00:00 2001 From: Eman Haroutunian <104394983+tinder-emanharoutunian@users.noreply.github.com> Date: Thu, 19 Oct 2023 12:45:20 -0700 Subject: [PATCH 19/42] Add toEdges(insets: priority:) (#192) --- Sources/Layout/LayoutItem.swift | 20 ++++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 18 ++++++++++++++++ ...InsetsPriority.iPhone-13-mini-portrait.png | Bin 0 -> 98751 bytes ...InsetsPriority.iPhone-13-mini-portrait.txt | 3 +++ ...nicalInsetsPriority.iPhone-13-portrait.png | Bin 0 -> 102215 bytes ...nicalInsetsPriority.iPhone-13-portrait.txt | 3 +++ ...onicalInsetsPriority.iPhone-8-portrait.png | Bin 0 -> 80005 bytes ...onicalInsetsPriority.iPhone-8-portrait.txt | 3 +++ ...nicalInsetsPriority.iPhone-SE-portrait.png | Bin 0 -> 62697 bytes ...nicalInsetsPriority.iPhone-SE-portrait.txt | 3 +++ ...onicalInsetsPriority.iPhone-X-portrait.png | Bin 0 -> 98751 bytes ...onicalInsetsPriority.iPhone-X-portrait.txt | 3 +++ 12 files changed, 53 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index 31b06ed1..d9bb1395 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -283,6 +283,26 @@ extension LayoutItem { } } + /// Constrains the view's canonical edges to the superview's edges with insets. + /// + /// - Parameters: + /// - insets: The canonical edge insets + /// - priority: The priority of the constraints + /// + /// - Returns: The LayoutItem + public func toEdges( + insets: UIEdgeInsets, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let superview: UIView = layoutItem.layoutItemView.superview { + for edge: CanonicalEdge in insets.edgeType.allCases { + layoutItem.constraint(to: edge, of: superview, insets: insets, priority: priority) + } + } + } + } + /// Constrains the view's edges to the superview's directional edges with an inset. /// /// - Parameters: diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index d9f81253..c9ec79db 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -412,6 +412,24 @@ final class LayoutItemTests: XCTestCase { } } + func testToEdgesWithCanonicalInsetsPriority() { + assertLayout { view in + view.layout { + + // To Edges with Insets + + pinkView + .toEdges(insets: UIEdgeInsets(top: 0, left: 5, bottom: 10, right: 15)) + + // To Edges with Insets and Priority + + yellowView + .toEdges(insets: UIEdgeInsets(top: 0, left: 5, bottom: 10, right: 15), priority: .low) + .toEdges(insets: UIEdgeInsets(top: 50, left: 50, bottom: 50, right: 50), priority: .high) + } + } + } + func testToEdgesInsetPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3b98e2fee4377860f543a694bc793fa6b8fedb GIT binary patch literal 98751 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..06c2a7d6 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..6b4b5e0df44be8381b11d3070728d1c659a51091 GIT binary patch literal 102215 zcmeI53p|wR+sB8ILnS&(31wGhche%3b6U|BI;oWC?66XQ$|=U^Kx0X*8O$o$Z`OG@4utji&TQQ6Bxq$?8WsdXVv5G%l5olE+(Gd^IYi-@iv>FjV|axX^ZU&Um8t&2JtQP!*A2v&@ab%%yC$P9+5%f zpIi(2F-iPLJpV&iefO+WG@2#NZjRNG0Gam{3m-Qo43RIiuNzYPm@z5wz@Z3p`2)}Y zxD-95eT}j9#-VSfGDID%#;+M7QR^KG&paA^uzv3!zl{BKVtzs$M_8NMH0a)pVMdD$ zHEu-b`>rNUuIWc%% z*_b|m^x1LCaMnKMQ5kDn@HBScI$Er>jEG zA@4}IJ7CO#aTVr{KBJ==%*fz%fM*r11M?%yk1#*N{0Q^o|AkfgePyNQIL2C&Pji)f zH5l`Ix^Ww;GHxM?A`H{Xk>6z-ZrCeS5MOG^kAAzSBO-e9>%Dtw?kW>M?wBe%Du3XSs^Www#S1Q(n0w)nJfl6VhO z^wGULq<}T+(Dtz?I^ywY}!2U&g(|s!RIRX zXw`2|PhxRTjpWH%#i&b$cPvjamkL=8HNu5~%DA<{>kZy|TBk|bin0e0 zg!T2-$Pk2Gxz<@g*IY4CdtaZx(Rm~NC%<=i zFK`$?J8QqLdaP!AiDiSMKk6e%`BPPz*xizCRCvn&M#zCv=@qIvl?S$$w3?*9a?!F~ zM3?M#lMF9ij%Bj$^sEVvJMxwT^Q9dB1q^>-NBpnfB1TxZ1bTTwc@+ul;!ImQIY?Sq(uQr1hU7jmG93FE| zm6XawXETdq3J<&@C)8TA_W^mZ`_pEI*Kg>DPN>5jJ*Lc^2Z}M4f2Qmw$ z5x3ddilUUD&BWJJGBR=oZ!#>iZVXkG%&zE>742h(YJaBHv z2%If8{QA}pZS!ZoJW8MVap}t=3VbJqWE&N7YuYmP8r0@xD_cF8r)un4fjw{LiQp&S z6;yruLy$>jhll?PwbrhXfqIyeZp-KJcF*1t;Nv1meTeZn$swQDQ zM)~qa>lxVY7SDAl=4~v^Sh=rldsb`l<8N4AjVe3V@85;#aJDM7nMP)TiuKc3?tYWS_&Afi$^A^qmlp5}_xUrm?0OBs@r8L8LkqUGcAq~>8Q-I;Qs9v> z;k6Ni?x&{BF=X7RO-?<}M3c{fVE`?EZ-AYU|Q1Lpc_&l8yd` zx4uFc+mPJwmb9LxUHX$EzPq($dv#Vm%-T+kZ^v%?vW3j3uQ3oigx86 z!}mW{DfEorc0L>5{KgxLX zo0l`$zs(+DHB9n#`i@@J>E^AsYL&!>qlS+zGI+ad-H>0NE!*un{>4h6$+8cfY6l^fPPY~@c*#+-EFAW`n<@$8)M-}sNN^^G zGCr1NYMNNGC~`udEeucPlck$jpG+ykTVG8GN;tXYA#*75As*}uPO^|}qdFho&Wgj^ z$a&o3tH=|njo9|CB2!M^p$e;@+O+SG31ryIUbIrQYA5p`04uHjOIC_^4o>W`pT)Zf7G}D~_{F zclnKVFq~y!nZztT)r4>IcxzsOU>tdyWoa~Cto6rw5pGL4wON6TB~K{hzyBIho9>Kp zBbddV4~NI;QiknU%_%rE{J>1C?<6Diwr6CgiRW>)+}73%{B3sax^833`<}_{$nI$c z+{84=gSqEnwoOP+yAvo)?n&7O1v)+4k2+lfMDuA;twI&8<9h`M= z)+OR-p32~?i$nSlS%=7aued%$)*-Tv5BWi4UA%J$k#)(vk-<;ZA+jzG=|f~4BI~^s z84y_yKMRp{kiqn*l#r+iWH2Cu0U3-$EJBUYU4aay6=X0VgXyEY0vQa*U@&Skkiq;* z%3u^vKMd+&0gz%#h_Zuz9rWvXF*E4bLB9_A^)IO`yX8T@j*_uJzYh9!iHtc%FVL?S zb%1^yoBId)bx1aaWK)Sq>Of^kHicwUNHLO1o~WK&2sg=AA)sw*U$s_HzJeN&yHD{3v7@-Hj)y!4d@pgcjI%ge;@HAB1e77$MufE7}7Q9{G3n zsuUfk2#NHH0)f@c zw&)M5S!YCIHG^i~O-F2O!RuQQ?h7bH^=mw$njpxc_P)>`jlIwv(b)a&mnVu1H%?ah z!&HQexu+r;yD0c&38Jx!8{CuG)h&p;!XgpX($)z?bs|BKMb_`_Igh8YtD`hj5|(UF zwK;)w;L%+Jr3tcyUT)_QL6(IGvhxu^Hp{}YfjM1FklinZEOwhs5@hSswQaLByh}Q9 z6jwv_^CZjE;j3Z-N?sY)9~ZohawV{zR{PB>&I+h4Ws4hdI0Z~q~=Ob%zgRjf53>AgkT2Vk^d!?-tJE@Ba1U|C9 z-ufw?P`w{1d`W<8Pn#0}Sw1t>R2qR_XLN}`;5#4$egZ<^S8B$$Tb>Xj@TG4veK7*x zube>OU-cB?0J7@JOGp@dVvGj?qHl8OkChxmvXZZ{s9|l!2W@An?m!8??tnMKf)nk1 zu|I0Bp*l)eicR}S84kX`b6SB2L+vf}LeyT->VS+Is=+TKYOl!rRq`gH?f}L*QFq`1 z!h#dl)3iPD)Lt8UXC+C%r`nt#;5P{Jma(L<;BD&52`qRb!h(~-n@V9&`~oo+T>3UU zD#n7(LhS#|b5~|y3HbZvFOq=j#rM*Q{X~9Zf5jeh$YKwx9H?RK{kdV!)9-99<3E&$_~^Sp|S&vsW(vB0r5Px9F-klAXKse!D7c) zCs^!H5h|Im{#>=6vIA#igquk!IMwC^6}&y9TCYGFl^mp;j8MrH1S**v-W1%;3cnVk zlBI96`C?RZEQ&j4o?$yzxVuzM!~20RCzcfS;mE4Quv0B15 z@~Ky%S`S2fPw5ZEzF!`p*b|dOD8sB4w}-7F42r#t0LE}euSO_#@jRA{Q0$zj84Y6y zKDD%Ul282()p{VT{}kB|ioGZ-G?OT6(m=I2QP!l>y!r4Z=~@pt@=mDMLnEs7ARgZ6 z>EqppleHc&x7pX?S`Wx^LbV>8*x0frXP9C((vt5fBscq$16FB?t`Yr5uhyr=>j z(la<&V1teL_e6X53(>HlBRuuuQgh0%Lm-$0swznZRx`1cGEDaM?{Ng&yFtOP5FkmmMPO5Lw3-e}u?7MArM18imL@5z>dqx^x+3h^#|o9U|-4 z($x@Ihsb)LLg^rYsj~NHl!E|9s;(>uU_bx^0+_cqb4uc5Br;ptGG_`w00ROTs~B|& zXkDHq2w({14G3TcE|jzTg7`$wEI|MR0vHg$s5G&=CGQK+sT0a!lnw?u^`1&eWU?UW z)Cqw+=+vc|$e>dPojT~$1Go6}s<#L_byBwsI`!zY@{;})=+tv!o4V6Mr#^dxRqxDV zNGFAKQb;F-bke-fCCwq76w*l*W1jX|heJ9kq?1BA=@)_(q?1BADNtYDCrRTdfcgT| zmk&}!i-GzA)EA(>d|73oXP`|7Z8~VvL7V<1P!H6Xe@i&y0Ud{XG}?dyyE#@%rYWFO zrqWI`2w*?}gXi`Es1XD(i6tO_`7%om{+9qXhSF#>k;rTE_Oc$#%lq;*kK3<#%NK4w z|DeA6NX(P4)`|D#>pzJ;lHeyd;)g{3l@0Ii%4%{%tx+6kJY#*erf7It zS5z+rIgRcu-+g{rD>t{~cTw#8gnF*INf3kf>Dw?@XBF*5@AVWCdcEHA40CFGWKGMR zj+>zqia$=(EE3RnS?r1bZq3CH8|tgx6@1>_A(kL@%XHgnE-xnNa&pUu*VdiW;K{Bz z-uDmg&3WVP%c2l(J}cb{1ZBg$F_}T}5yA$upO&#HIPRIG!X^_p1H*)-AxY1Q-=#_l z5mxzF@=W9XtD@Ftb-!)h_*~O5RC7a_y3+S+U1we^>9ghF*S@n!PX&<|7tk2eAi4o?pM6G)q{U+9Msey>YAE{ z0S$+-+6#h9Q=fiK!2)v^1+;#us@Z~vVg|kCwci)zeoay_g@Os49N+23t@Ww~gzFed ze8w;)qLGSGKs_|l4bxl%f@)EPI*u?cD!tMn3OQ3dgyNAl=gRPYZm7o7P;;N@9WUn8 zD3YJSsw*|}%Db0^`!Eza5^QJ`(z>{e`Fd!Mh1*Y;}AAmtZNciM-P zQpl>KS&lU>nqhe2rA&@b2v6YeHI6_>KjFIgiMpeV6Z*NLB^FJ~I7^OD<^@0AHa_Cx zt%~cY4&6?1U2_|TQZPcs5;;+$z>#se9~xox=$yFVuAISIB#y97G``a!DGvW37^SHl zJfo0idzYRtPwa#aW3J4~>!UD|i}hV&cZOtLNxJEPb2KHxU(hL8`HD%8bj)L)%Fm)m404(z--MC`oxb*r5U${ zD*U$J^|p~HX^#y|;m1^;+4wHdc8QS_(Ri_hLXTE1b?0kb8l&#|o9sC4QIb7Mzgd{O z&_`3?R~3*Y6s{@qerRD(eNIC#?`VSLIH8a5*ae+NBB4o6*XQvpmsc$)cUD}85UJzU z`UuFIGt7&2bQ@SJ64+~{H=%Ip=Zq1J>X)>_(2NiYSa&ymx7Cm!MxuXow$8!Bv1Cw<|TRkrHoj!{}jx- z@XyhZcYH=rZyjp(mmsKH-uDdrhjvdZ;P!{07GMz6{ay6`5)BzHIvEZnx!-WnQ4NV1 z(9`k0O>YD>3@?8w*A#{q7+&lf3>;u0MHO5A0m3~DFEG5&2aBtgfXn!ItCqm<0>cYF zDh7+AzgH9qh8GxK^uSLCKOOw^f4mYE`03!MgP&d_gm^ktT@WTxm`GtFg^Bc4GHloV zvy@U;k-~};R-|Ib8aAduf&n{6e|;5j@YBIh2R|MBbnw&v`Dy~-r-PpkemeN+@-UIY zL<$orOr$-jRv?vD)p@RJG&Ud7U&vJ^@dLDsuty4eq!M|p`ViWM(C%Lz+P&*2yRwG` z0IO42oxMa$r8Xy(M!2~8!m`GtFbqbonX{?9Xi#fzz zAoc>W7l^&cZEelaaK=?-x^`VR7R02mT?gBBuw4h+b>K3B%Xkx9MsOLyWdxT|x_Adf z8J|?tH$jwfnB@L7h)H3)4z}xHyAHPNh*DROe+2nQsyY`y;YADwsNUPZmCGpNrf7U+ zrfA$5 zUW=@{@bx%fw_E-tpC0Vo)Vok#osU;%MeMf0MD;Nb-N+NX#=?C$meFVX)-&ym9m{Y>TWwH>YC^NacUo2jJjK@pZBikxKtP`c;E1r zREM-!z3+Rq$o-CC2NTo0+e!=-{`o!F%KU~L~_Ab2WHk%h97)RR9(r8TK`@7#>t!2B2E-@Xd zxf@#+#qMoXP$TW4Sury!94eiL7{7b7$|*b+MlLsAlqxW&1g%0arT> zB-$vf`)UHGa>X6TS>B2<+rzJQR1IN2!_+6-++>${LqL|MYb|D_>DP3G4AjH4cUwM} zpPytTE{#`n$CJ5AB#2BZy~`ZRUHW>e3X9z>sV#u64qY9(`j;UFMs*m~VN}OVD@cq4 z4h%Rj;J|>dj+|HU)&F1k>a{z3AN8;RWF(eCute3ig(a$;r^GUrM&BTTujh7|_EIjw1vcLHY&KuP;6$dIrHpP&ulD$`MqK;=l?q zHbAfuf{mbE|1wJ!La-6E>yV})nE(L6Mo7~*T?83PkdgFRw*tXN2sT3U-RIi@f{l=8 z3VEhddBvb?1Z5+nR6|Pj=jaLq8zI;T!N$+GgFY_U$cf8$p6GRpfQ)>3;g%E39TSQ_ z9&s={u9^AmC4R<*-V6`)TFb-YmxQ0ac-vodtWvM{6MrdL&Hd+{Eh?jQ*xy|8@>Z1m z^Q0li4O(%v>B4hb7d$^y-m%H={Rz-Z^yJH5#dqx-V5c|ez4KUEDFaK!+^wDI&6sR^ z(Rl~|@N60-BWEnPh3?<3LAJH_qD@C#_CDgNWSSvM;XkQnln0F zxZA)Ra}2%VQ0s#Bu=U%gr4f zwjTXBeJS>Eb;Cf#nB0_WwHI*bbv~~U9p3ZZNe}#)=ar3A)d_LgTCf;*+K$Xq=&-WO zjAAGJ;Z!{>+s>?4tVG;t$IDuy!|GXE64>~|uFEW=+qT^{bHJUp<$yg-meGcOFXyks zAI?n))2eUS7tF%9=wNo3mPcLwv8(vQ(BSwM{oifyY89*T5uuyq4%O4pKf537=cLSb G3;z%LZjW*R literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.txt new file mode 100644 index 00000000..5f6ff2b7 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5200df1734297f0bd76c08acb58780a03d2afb GIT binary patch literal 80005 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 gKz#q#;-fDw{tyu> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e99df2f038d5401eee6d222f164836592fa8dd93 GIT binary patch literal 62697 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.txt new file mode 100644 index 00000000..1596bbcd --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3b98e2fee4377860f543a694bc793fa6b8fedb GIT binary patch literal 98751 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..06c2a7d6 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file From d00a73feca56178491b03dcf9b07ae34e498a5d1 Mon Sep 17 00:00:00 2001 From: Eman Haroutunian <104394983+tinder-emanharoutunian@users.noreply.github.com> Date: Thu, 19 Oct 2023 20:31:07 -0700 Subject: [PATCH 20/42] Add toSideEdges(inset: priority:) (#203) * Add toSideEdges(inset: priority:) * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller * Update Tests/LayoutTests/LayoutItemTests.swift Co-authored-by: Christopher Fuller * Update Tests/LayoutTests/LayoutItemTests.swift Co-authored-by: Christopher Fuller * Update doc comments and test name --------- Co-authored-by: Christopher Fuller Co-authored-by: Garric Nahapetian --- Sources/Layout/LayoutItem.swift | 14 +++++++++ Tests/LayoutTests/LayoutItemTests.swift | 29 ++++++++++++++++++ ...hInsetPriority.iPhone-13-mini-portrait.png | Bin 0 -> 61884 bytes ...hInsetPriority.iPhone-13-mini-portrait.txt | 4 +++ ...esWithInsetPriority.iPhone-13-portrait.png | Bin 0 -> 66514 bytes ...esWithInsetPriority.iPhone-13-portrait.txt | 4 +++ ...gesWithInsetPriority.iPhone-8-portrait.png | Bin 0 -> 52541 bytes ...gesWithInsetPriority.iPhone-8-portrait.txt | 4 +++ ...esWithInsetPriority.iPhone-SE-portrait.png | Bin 0 -> 40798 bytes ...esWithInsetPriority.iPhone-SE-portrait.txt | 4 +++ ...gesWithInsetPriority.iPhone-X-portrait.png | Bin 0 -> 61884 bytes ...gesWithInsetPriority.iPhone-X-portrait.txt | 4 +++ 12 files changed, 63 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index d9bb1395..5d761562 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -343,6 +343,20 @@ extension LayoutItem { } } + /// Constrains the view's leading and trailing edges to the superview's edges with an inset. + /// + /// - Parameters: + /// - inset: The inset distance + /// - priority: The priority of the constraints + /// + /// - Returns: The LayoutItem + public func toSideEdges( + inset: CGFloat = 0, + priority: UILayoutPriority = .required + ) -> LayoutItem { + toEdges(canonical: [.left, .right], inset: inset, priority: priority) + } + /// Constrains the `bottom` to the bottom margin with a minimum bottom inset /// Useful for bottom-aligned elements on iPhoneX family devices that require /// an additional bottom margin on non-iPhoneX devices. diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index c9ec79db..86fee988 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -489,6 +489,35 @@ final class LayoutItemTests: XCTestCase { } } + func testToSideEdgesWithInsetPriority() { + assertLayout { view in + view.layout { + + // Defaults + + pinkView + .size(height: 100) + .to(.top) + .toSideEdges() + + // To Side Edges with Inset + + yellowView + .size(height: 100) + .to(.centerY) + .toSideEdges(inset: 50) + + // To Side Edges with Inset and Priority + + blueView + .size(height: 100) + .to(.bottom) + .toSideEdges(inset: 0, priority: .low) + .toSideEdges(inset: 50, priority: .high) + } + } + } + func testToBottomMargin_andWithPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e4dee214224d0aa87ce2b16f2b58970803255490 GIT binary patch literal 61884 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 LbkmJrXea*%5rSyF literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..7960dd71 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..b70039b7d9da4005be647d3b3baa593b86f81e0c GIT binary patch literal 66514 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..cc08c0daaf2331bf2ac185e200252b2721fb2ab2 GIT binary patch literal 52541 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.txt new file mode 100644 index 00000000..85f60861 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..7b33e49d5dad37fe2cbef0a9dc9b9999688e9b39 GIT binary patch literal 40798 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 dSz$> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e4dee214224d0aa87ce2b16f2b58970803255490 GIT binary patch literal 61884 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 LbkmJrXea*%5rSyF literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..7960dd71 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file From 925fe6a28d8aed635478b8ad1cdf1ac6ab3a7d81 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Thu, 19 Oct 2023 20:32:00 -0700 Subject: [PATCH 21/42] Improve implementation of priority and constant (#208) --- Sources/Layout/NSLayoutConstraint.swift | 7 ++----- Tests/LayoutTests/NSLayoutConstraintTests.swift | 10 +++++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Sources/Layout/NSLayoutConstraint.swift b/Sources/Layout/NSLayoutConstraint.swift index 0588a467..4fcccd32 100644 --- a/Sources/Layout/NSLayoutConstraint.swift +++ b/Sources/Layout/NSLayoutConstraint.swift @@ -48,19 +48,16 @@ extension NSLayoutConstraint { return self } - @discardableResult public func withConstant(_ constant: CGFloat) -> NSLayoutConstraint { self.constant = constant return self } - @discardableResult public func withPriority(_ priority: UILayoutPriority) -> NSLayoutConstraint { self.priority = priority return self } - @discardableResult public func require() -> NSLayoutConstraint { withPriority(.required) } @@ -153,11 +150,11 @@ extension Array where Element == NSLayoutConstraint { @preconcurrency @MainActor - @discardableResult public func withPriority( _ priority: UILayoutPriority ) -> [NSLayoutConstraint] { - map { $0.withPriority(priority) } + prioritize(priority) + return self } @preconcurrency diff --git a/Tests/LayoutTests/NSLayoutConstraintTests.swift b/Tests/LayoutTests/NSLayoutConstraintTests.swift index 3fbe781b..644b0fc3 100644 --- a/Tests/LayoutTests/NSLayoutConstraintTests.swift +++ b/Tests/LayoutTests/NSLayoutConstraintTests.swift @@ -108,7 +108,7 @@ final class NSLayoutConstraintTests: XCTestCase { } } - func testOffset() { + func testWithConstant() { // GIVEN @@ -120,14 +120,14 @@ final class NSLayoutConstraintTests: XCTestCase { // WHEN - constraint.withConstant(5) + _ = constraint.withConstant(5) // THEN expect(constraint.constant) == 5 } - func testPriority() { + func testWithPriority() { // GIVEN @@ -139,7 +139,7 @@ final class NSLayoutConstraintTests: XCTestCase { // WHEN - constraint.withPriority(.high) + _ = constraint.withPriority(.high) // THEN @@ -159,7 +159,7 @@ final class NSLayoutConstraintTests: XCTestCase { // WHEN - constraint.require() + _ = constraint.require() // THEN From 4bd76eaf1276a47909d58b818b37d7bcb1197bc8 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Thu, 19 Oct 2023 20:32:23 -0700 Subject: [PATCH 22/42] Add toSafeArea(_:inset:priority) (#204) * Add toSafeArea(_:inset:priority) * Improve documentation comment Co-authored-by: Christopher Fuller * Update doc comment and test name --------- Co-authored-by: Christopher Fuller --- Sources/Layout/LayoutItem.swift | 22 ++++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 15 ++++++++++++ ...sInsetPriority.iPhone-13-mini-portrait.png | Bin 0 -> 88164 bytes ...sInsetPriority.iPhone-13-mini-portrait.txt | 4 ++++ ...lEdgesInsetPriority.iPhone-13-portrait.png | Bin 0 -> 89467 bytes ...lEdgesInsetPriority.iPhone-13-portrait.txt | 4 ++++ ...alEdgesInsetPriority.iPhone-8-portrait.png | Bin 0 -> 73825 bytes ...alEdgesInsetPriority.iPhone-8-portrait.txt | 4 ++++ ...lEdgesInsetPriority.iPhone-SE-portrait.png | Bin 0 -> 55196 bytes ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 4 ++++ ...alEdgesInsetPriority.iPhone-X-portrait.png | Bin 0 -> 88391 bytes ...alEdgesInsetPriority.iPhone-X-portrait.txt | 4 ++++ 12 files changed, 57 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index 5d761562..dd9d8c3a 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -478,6 +478,28 @@ extension LayoutItem { // swiftlint:enable anonymous_argument_in_multiline_closure + /// Constrains the view's directional edges to the superview's safe area with an inset. + /// + /// - Parameters: + /// - edges: The edges to constrain + /// - inset: The inset distance + /// - priority: The priority of the constraint(s) + /// + /// - Returns: The LayoutItem + public func toSafeArea( + _ edges: [DirectionalEdge], + inset: CGFloat = 0, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let layoutGuide: UILayoutGuide = layoutItem.safeAreaGuide { + for edge: DirectionalEdge in edges { + layoutItem.constraint(to: edge, of: layoutGuide, inset: inset, priority: priority) + } + } + } + } + private func constraint( to edge: CanonicalEdge, of boundary: LayoutBoundary, diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 86fee988..04192398 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -617,4 +617,19 @@ final class LayoutItemTests: XCTestCase { expect(baseline.firstBaseline) == view.firstBaseline expect(baseline.lastBaseline) == view.lastBaseline } + + func testToSafeAreaWithDirectionalEdgesInsetPriority() { + assertLayout { view in + view.layout { + pinkView + .toSafeArea(DirectionalEdge.allCases) + blueView + .toSafeArea(DirectionalEdge.allCases, inset: 0, priority: .low) + .toSafeArea(DirectionalEdge.allCases, inset: 25, priority: .high) + orangeView + .toSafeArea(DirectionalEdge.allCases, inset: 25, priority: .high) + .toSafeArea(DirectionalEdge.allCases, inset: 50) + } + } + } } diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..8509255dc6029e02383efbaa91980eb1bf01691e GIT binary patch literal 88164 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..5c3ac6c8b0f0faa263dd8596097a4807408b0329 GIT binary patch literal 89467 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 RUlqVV4)YxC66etN{(oJYm~{XE literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt new file mode 100644 index 00000000..63a41998 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e28e3317dc206eb352488b16e565382fb72c8d39 GIT binary patch literal 73825 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e37dc478654f6d0e3e115292deef7a34d1e448d8 GIT binary patch literal 55196 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..550eee5e74d99ddf12f41e24a83235fc04876581 GIT binary patch literal 88391 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 Q0{-m3UT&ND6>GNjc>n+a literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..82207d90 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file From d5c957c5e29290e8694ef9012d8487c6f5f00de4 Mon Sep 17 00:00:00 2001 From: Eman Haroutunian <104394983+tinder-emanharoutunian@users.noreply.github.com> Date: Thu, 19 Oct 2023 20:50:43 -0700 Subject: [PATCH 23/42] Add directional toEdges(insets: priority:) (#200) Add directional toEdges(insets: priority) --- Sources/Layout/LayoutItem.swift | 20 ++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 22 ++++++++++++++++++ ...InsetsPriority.iPhone-13-mini-portrait.png | Bin 0 -> 98751 bytes ...InsetsPriority.iPhone-13-mini-portrait.txt | 3 +++ ...ionalInsetsPriority.iPhone-13-portrait.png | Bin 0 -> 102215 bytes ...ionalInsetsPriority.iPhone-13-portrait.txt | 3 +++ ...tionalInsetsPriority.iPhone-8-portrait.png | Bin 0 -> 80005 bytes ...tionalInsetsPriority.iPhone-8-portrait.txt | 3 +++ ...ionalInsetsPriority.iPhone-SE-portrait.png | Bin 0 -> 62697 bytes ...ionalInsetsPriority.iPhone-SE-portrait.txt | 3 +++ ...tionalInsetsPriority.iPhone-X-portrait.png | Bin 0 -> 98751 bytes ...tionalInsetsPriority.iPhone-X-portrait.txt | 3 +++ 12 files changed, 57 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index dd9d8c3a..15a302be 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -283,6 +283,26 @@ extension LayoutItem { } } + /// Constrains the view's directional edges to the superview's edges with insets. + /// + /// - Parameters: + /// - insets: The directional edge insets + /// - priority: The priority of the constraints + /// + /// - Returns: The LayoutItem + public func toEdges( + insets: NSDirectionalEdgeInsets, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let superview: UIView = layoutItem.layoutItemView.superview { + for edge: DirectionalEdge in insets.edgeType.allCases { + layoutItem.constraint(to: edge, of: superview, insets: insets, priority: priority) + } + } + } + } + /// Constrains the view's canonical edges to the superview's edges with insets. /// /// - Parameters: diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 04192398..88400b28 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -412,6 +412,28 @@ final class LayoutItemTests: XCTestCase { } } + func testToEdgesWithDirectionalInsetsPriority() { + assertLayout { view in + view.layout { + + // Insets + pinkView + .toEdges(insets: NSDirectionalEdgeInsets(top: 0, leading: 5, bottom: 10, trailing: 15)) + + // Insets with Priority + yellowView + .toEdges( + insets: NSDirectionalEdgeInsets(top: 5, leading: 5, bottom: 5, trailing: 5), + priority: .low + ) + .toEdges( + insets: NSDirectionalEdgeInsets(top: 50, leading: 50, bottom: 50, trailing: 50), + priority: .high + ) + } + } + } + func testToEdgesWithCanonicalInsetsPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3b98e2fee4377860f543a694bc793fa6b8fedb GIT binary patch literal 98751 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..06c2a7d6 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..6b4b5e0df44be8381b11d3070728d1c659a51091 GIT binary patch literal 102215 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 G3;z%LZjW*R literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.txt new file mode 100644 index 00000000..5f6ff2b7 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5200df1734297f0bd76c08acb58780a03d2afb GIT binary patch literal 80005 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 gKz#q#;-fDw{tyu> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e99df2f038d5401eee6d222f164836592fa8dd93 GIT binary patch literal 62697 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.txt new file mode 100644 index 00000000..1596bbcd --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3b98e2fee4377860f543a694bc793fa6b8fedb GIT binary patch literal 98751 zcmeHQX;f3$vJRqg=pgNMn?VHI38Ym90cCDc6lHRP20`eC2p9v>%z_DV0QJgXgCZbP ztDqv#3Id`KY(Nl@&_+Rs5GFz9Q6LbKcM>Ey@!cPHt@qYj>-8VKpbL5ft^B(!-eP;Gi zJX!3^yOGzD=gqx)K0aA|?)l;iypOGIb1g<57N6c{abedaa zM#G5XREp7mN(^6Yh<+46JdXY#Z=4?4Z!0I6vFt&+uReiO`Qt^frZ`T z&J2=q2e(`cNTsrgCBsb54|U2f&Yix9)?C`s`NY)ppFH~VPZCPASVxD~KJB8eSntFC z_6u4XXM`b*(@({+JD9N>$lYH0P4CBFJxU+xjXA;UVr6WviB>ubsM1O&{UO?#|epkvzTZfJ`6# zp>4E^Z?{zlE*<#*GGtM;5y_7hB+FZ@gDxaW?n2v(MSlG0mVWfu^A;6{F}%35Z#)op z7g?%K-<XVkzA9$0+g)6$v%V}+_K8tgBv>RwvBFM*;|4kj6gOBmftLv` z0QgDZCxJ5w9yebl!fgrMyTJ`EL;)aF0`a6T;XjBc&4wl+=mwEVK`a{lB=D2KPXa#) z{3P&`z)ynYBxGiJ_(>VfKQq&o&)F&KyLtg1JE0Q-T?H5 z2S5gh^4|xd%p@J|pW^}mOg8}Ep*jFcD4@<{&d!6S`}J4Jq%rU;z+L0V@}4m&GS!H=byYb=FS+_D9$H)|P z*M%I_$mk#|eyMOuxH_&)jP+xkh zgKdwCFkX#BXvnN`=0F8MY-uDNzsY5;nSfXnsxJjjOF^g8xjf-)hUT?^sJbcQ;HgAH zlO(%JeR-RN+Ea z%*e&zQ*Xb1z>KlFwE!!P>LF2VC@XH$@XBXm=6y=z?oP9?-aHAKzHZYQH-(=SOGMjZ zcvqd0>%GhqjT7VZyWzDD+-S-7>8DulHuIFOG5R;M8qCLX7|HJf{g?lX|`7lXe7``VA{a6fsZ8Y-32}p z_(Fc|$olifcaLGC`_4i4_%AQS+h0Ej6;ObKF25S)bIBt*F(%Kas0 z0_hS+mq6YP@@{kKLCCv70v8gvfCK;}z??<|NC`kn0GkBZB)}%|$i@KV1|T;;O9EOF zV7GI)R)CZMqy!)(e{)C)z(|mM0l-KAMglMrfRO-<1YjfpBLNr*z(@c_0x%M&x`nD+ zDBp(i?Jr~ikRpMqTd2B)s#~bKg{oUVgb0{PfZ_%yZh$N4i#i0ZBnpsjArxW%yQEti z2PPI`FkG(k8|5kt#t_3ReeY{Hn7LkQ>4MsZ+8P7bDWDYxOn8}@CwHs(m##0Qqi)}cEg-|ynyyN;yi^tP)YQptUt_j(R?pNMjA&H^Q z^M6BfttfqZa%AYy(!f`9UY=%~k~bj|Jf)ekimR*5SP%nMV}5K^@{CWnbNc$)d%vZ+5Q7rRNL zGfgkspVS-F;xN9?XxHJ8FX68_Lys`e`C1f(t*|Cu%_Wk8bCE8!1%3rV85;%`dHBB- zUQx@h;;Vjr-|toJr(&Ey{@IcYZlThK((=gXWmz&9AWL>@06u5<5)WauN zY|3n`jo!JyA}_$3KcHM`Y!wHYus|&1pD|GLx8uZ7OjUMX~=RV#mvpnuA)n6Q=+mRhOLcEoK z(kX{HDxRZPyZLP){Uc$E=U)Gk+gRbH$H*cXXZIwhqGyl#rO7SC2M@5t*ygHXFDz zPxq2N_Aegx%-l+LwLyy#kv(~kH5lDkipYLD-uwlfxQ0JwpxJp7)Ks@>)o#i5v9ov* zULBP)LLbP#T(>=KTB(%aEIei^#fF>2AGh6lnEyE3v+Y6HUp>_k*UQEjUFW$^_RdbU zZ6xpeI+}3v6=$*AJzP5KEp3Uel{<6^OCv(9J}i)tKFQnWLi6~zJ+5y@b|!BhpRBeB zJTc6!V--{Tu7zAk#R=ZWKNv$BBw2llL9)ofkRmeJ7@}m(5}!eDmhFKL%bJH!I}{Q7 z=8iuYT{j2aPfd63ILh*z4mrjRJiPx>gqIJ?s0uAgME0CO8aeIlMnv{0N?uD6-A6z1 z$0W#@qNaNKDaAcDqy5YSALqn7*OPq9&2mzAHd(AazV0hN%E(n+&SlqquJW{kl?&yzo4XyP9-+=hQw%i&9%UlG{AWRC;n5 zk-cl>t#fG%U2Wc&6LHum)Ku-uF>Fm!ag0@$8T>YjaRp^GDa!nhIJB)&7?(@V#|RwBMo{i%{e37xW;u= zPjmOklNEb~Vu^*}UIgh5wYyva>1YYXzUq^2%SP z`bS@I8*k4})RT2=8QQ+KSaXK+)JF)489Y}hQ6se6NEvaJa416rt`fLP;3|Qu1g;Xe zO0yOb@sPn)`Vy}IR|#AtVf+W8N)T0os1ih#c#$fIDhY1iA*uvXC6*YtO5iGit0WAM zgR2Ct61Ym>DnSB{pC^W>5+vXt0S5^<1XKlBB?Ny4SS7$J0agjHN`O^D;od$u16B#J zN`O@YShpyG5n$Z_>jqdiz`6m}Ey%Eds|2uafOSI!98|!GltMuT98|zT1sqhsiQYf{ ze~K#6o?H-t`cx80UagKQ34$$&{2M&zXdu_!Ljjsxo9~|_9`+wFCZicF-W9zv(Bn30YB^NH~a8tPGD(C#F z+@s3;*mP&bo}N|*+ZuF(#P#A+)Gm%k%&Fho3bq)<+7FpB%I{Rw+q4~5cl-_2#j+Kf z`uWrf8lCvPm!B<*Xc2U&Cg;S|{mWXS4dYC(V^;`g%C>o3z0#YTdC-M)RyuW}8R@7sOXt&e`J@0R?)N(wy`H+e6;gqm{;-PaDeE;4O~ zxwT<;na{BhwP!7{xe+EYS=pt9CyLh#qpg$@3De$&jfrWD-JJtDBaFn!Zxh^Jj~!m& z5h>CVH467>RsGl%hfb+g^+fyIHS8%h)4@W6Ne7zi>`Yg4(l3pw3qX-7L+RXMa^M)! zSdXC=eNdOVGGZIjSP!S>EPP9Gv6T3ka*s3R*Pr^vSA4K{A~BRpMvqU6lSi-O*5gEa zG&=r9(VB^*W^{YpZY#(joQiiyerMPlIn9@R_|P{II3csuQmxt)Nu9G1tZw55<*Wyl zS#|s zopWi_-)LV{gLG*WixOFSl?<17|3vo{vCrt09)WE}-l-aN3$y1xiZmcJRZF(EqbrkQ zosQV$`GjeY_ExDBPHN%P9y~wH0;*@jy|3W%`x>s2m4+kCAEkZhes#HV@ z4?ITP3HM2k+AU|@*~mNdVJu=6juzN2$$qV_7O5iIEZGFxJZ8knO{IqMPW>YyiDD(5 zVKl&(yw0E7bWw+S#|Ohu{k}21&NNwk*7FCOspjOC8m?~io6^1Za-6##*+Ld_9CBUU zzyYrBtBr{G)uI~~&~nb276c`17|;;kD6;g9wlvLQ-KLFderea4*u;~(-vtMM)L}lIPg#2QeRp8Bg;wS9fTKrA37p~tZh+$5 z%Mk_I>;qM36^dLJcj5!L|2H#4{CLIeZxY?6Z+f$|kwza_Q<0@F&PgP;1r#7k)Lfa` ze_8Uc*g8`KjbW@vXH=C}!N)z#vL^B2d==VLowcoGtatTa2X3M$LvN-&}cCtYCyX@VKk0$$soqKf720@62m-<`t^x4n8p$(xO!u z{%I-F)q10}KV6c=h~sGTPW{VV)&g6JoTX1K_>x~l9YP)Emeb;LQ-9DWZYH@$7mhr5 zz}B9j=x|3Z_pgxm@tKUdfmWf&b#Vrtav2-q5%E`9p7>6eKCa3)O7*y#qD$|l$0!~3 zMwDoR6^XGz{&)3^SklQh36X}Dh;=M%i#tACwVJO&-^MyPgmf29Eadh|oAGCQsf4`B z6MgDQpA9%35gd(ZU&Ml3>56X~zKaxs{TPBe@KRDvhJ%x4gZXOpyfaUz_6WrLHxtM$ z9*Nf|7g9u;5u2(FrOJ=wY0MD$r=B?aO^%GK+^Gp zfgg_^W%*2r`*FHbqBrXI^bBp=f>xo(bKc$g9E?ft35 zoasa=I5=LJ{$QkcY~cW#W~5{m^!6P%P6Au^Z#ho;lCT+78lokhX)g-E1}v@J@ht0=yI8odE9ycqhO+&0z-t?*w=!0Ez=p9Dw2g6bGQV z0J94~aR7?@gaJ?-fZ|YLxA#A=!j40?pjD{3Im11a>OicRMIjw-zT zg4rVCakb)Wm{>m404D3AZz&p9uFU-_c(`^Yq1RBK$yl zsMQ3U4vri+a;P%_-aB~jU)>b_ySHpyt!O1iuH=p2`Rf(L7Vk5hw>(ntv~Yz=boUIq z?>PF!+5e}cE|#j?e)e?kmajjwJkoG*J`R7zz~EVoU?jny$!_yP)Xd~>5f6xb6aW8f zb;OKfn`yLx4gYN>%U$DwQ%va#T^NFqgr6TXFSbmb7|jm+YWlpl#%**|q>sI5$o&tv wyc@WR5DZ3)VzT?kBVR2ANb>(~qZS)P8E0$8@2NP4L4Hj3nD5Tq<#_JD0M+KZzW@LL literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..06c2a7d6 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file From c631b1b0e32d254c8c5a34cce54d150ab9d44b47 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Fri, 20 Oct 2023 12:42:13 -0700 Subject: [PATCH 24/42] Update doc comments and test names (#207) --- Sources/Layout/LayoutItem.swift | 12 ++++++++---- Tests/LayoutTests/LayoutItemTests.swift | 4 ++-- ...lEdgesInsetPriority.iPhone-13-mini-portrait.png} | Bin ...lEdgesInsetPriority.iPhone-13-mini-portrait.txt} | 0 ...onicalEdgesInsetPriority.iPhone-13-portrait.png} | Bin ...onicalEdgesInsetPriority.iPhone-13-portrait.txt} | 0 ...nonicalEdgesInsetPriority.iPhone-8-portrait.png} | Bin ...nonicalEdgesInsetPriority.iPhone-8-portrait.txt} | 0 ...onicalEdgesInsetPriority.iPhone-SE-portrait.png} | Bin ...onicalEdgesInsetPriority.iPhone-SE-portrait.txt} | 0 ...nonicalEdgesInsetPriority.iPhone-X-portrait.png} | Bin ...nonicalEdgesInsetPriority.iPhone-X-portrait.txt} | 0 ...lEdgesInsetPriority.iPhone-13-mini-portrait.png} | Bin ...lEdgesInsetPriority.iPhone-13-mini-portrait.txt} | 0 ...tionalEdgesInsetPriority.iPhone-13-portrait.png} | Bin ...tionalEdgesInsetPriority.iPhone-13-portrait.txt} | 0 ...ctionalEdgesInsetPriority.iPhone-8-portrait.png} | Bin ...ctionalEdgesInsetPriority.iPhone-8-portrait.txt} | 0 ...tionalEdgesInsetPriority.iPhone-SE-portrait.png} | Bin ...tionalEdgesInsetPriority.iPhone-SE-portrait.txt} | 0 ...ctionalEdgesInsetPriority.iPhone-X-portrait.png} | Bin ...ctionalEdgesInsetPriority.iPhone-X-portrait.txt} | 0 22 files changed, 10 insertions(+), 6 deletions(-) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-13-portrait.png => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-8-portrait.png => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-8-portrait.txt => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.png => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-X-portrait.png => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt => testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-13-mini-portrait.png => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-13-mini-portrait.txt => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-13-portrait.png => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-13-portrait.txt => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-8-portrait.png => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-8-portrait.txt => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-SE-portrait.png => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-SE-portrait.txt => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-X-portrait.png => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToEdgesInsetPriority.iPhone-X-portrait.txt => testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt} (100%) diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index 15a302be..ad04948f 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -323,12 +323,14 @@ extension LayoutItem { } } - /// Constrains the view's edges to the superview's directional edges with an inset. + /// Constrains the view's directional edges to the superview's edges with an inset. /// /// - Parameters: /// - edges: The edges to constrain - /// - inset: The inset amount + /// - inset: The inset distance /// - priority: The priority of the constraint(s) + /// + /// - Returns: The LayoutItem public func toEdges( _ edges: [DirectionalEdge], inset: CGFloat = 0, @@ -343,12 +345,14 @@ extension LayoutItem { } } - /// Constrains the view's edges to the superview's canonical edges with an inset. + /// Constrains the view's canonical edges to the superview's edges with an inset. /// /// - Parameters: /// - edges: The edges to constrain - /// - inset: The inset amount + /// - inset: The inset distance /// - priority: The priority of the constraint(s) + /// + /// - Returns: The LayoutItem public func toEdges( canonical edges: [CanonicalEdge] = CanonicalEdge.allCases, inset: CGFloat = 0, diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 88400b28..792e45cc 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -452,7 +452,7 @@ final class LayoutItemTests: XCTestCase { } } - func testToEdgesInsetPriority() { + func testToEdgesWithDirectionalEdgesInsetPriority() { assertLayout { view in view.layout { @@ -479,7 +479,7 @@ final class LayoutItemTests: XCTestCase { } } - func testToCanonicalEdgesInsetPriority() { + func testToEdgesWithCanonicalEdgesInsetPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-13-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-8-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToCanonicalEdgesInsetPriority.iPhone-X-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-mini-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-13-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-8-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-8-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-SE-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-SE-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesInsetPriority.iPhone-X-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt From 47a49092ef7051b183c43712217ce39acd6b3087 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Fri, 20 Oct 2023 13:01:04 -0700 Subject: [PATCH 25/42] Add toSafeArea(canonical:inset:priority) (#202) * Add toSafeArea(canonical:inset:priority) * Improve doc comment and test name Co-authored-by: Christopher Fuller * Record snapshots * Update doc comment and test name * Fix typo --------- Co-authored-by: Christopher Fuller --- Sources/Layout/LayoutItem.swift | 22 ++++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 17 ++++++++++++++ ...sInsetPriority.iPhone-13-mini-portrait.png | Bin 0 -> 91843 bytes ...sInsetPriority.iPhone-13-mini-portrait.txt | 5 ++++ ...lEdgesInsetPriority.iPhone-13-portrait.png | Bin 0 -> 95888 bytes ...lEdgesInsetPriority.iPhone-13-portrait.txt | 5 ++++ ...alEdgesInsetPriority.iPhone-8-portrait.png | Bin 0 -> 76949 bytes ...alEdgesInsetPriority.iPhone-8-portrait.txt | 5 ++++ ...lEdgesInsetPriority.iPhone-SE-portrait.png | Bin 0 -> 58708 bytes ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 5 ++++ ...alEdgesInsetPriority.iPhone-X-portrait.png | Bin 0 -> 92118 bytes ...alEdgesInsetPriority.iPhone-X-portrait.txt | 5 ++++ 12 files changed, 64 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index ad04948f..b1bcac18 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -524,6 +524,28 @@ extension LayoutItem { } } + /// Constrains the view's canonical edges to the superview's safe area with an inset. + /// + /// - Parameters: + /// - edges: The edges to constrain + /// - inset: The inset distance + /// - priority: The priority of the constraint(s) + /// + /// - Returns: The LayoutItem + public func toSafeArea( + canonical edges: [CanonicalEdge] = CanonicalEdge.allCases, + inset: CGFloat = 0, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let layoutGuide: UILayoutGuide = layoutItem.safeAreaGuide { + for edge: CanonicalEdge in edges { + layoutItem.constraint(to: edge, of: layoutGuide, inset: inset, priority: priority) + } + } + } + } + private func constraint( to edge: CanonicalEdge, of boundary: LayoutBoundary, diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 792e45cc..447de5ae 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -654,4 +654,21 @@ final class LayoutItemTests: XCTestCase { } } } + + func testToSafeAreaWithCanonicalEdgesInsetPriority() { + assertLayout { view in + view.layout { + pinkView + .toSafeArea() + blueView + .toSafeArea(inset: 0, priority: .high) + .toSafeArea(inset: 25) + orangeView + .toSafeArea(inset: 0, priority: .low) + .toSafeArea(inset: 50, priority: .high) + yellowView + .toSafeArea(canonical: [.top, .left, .right, .bottom], inset: 75) + } + } + } } diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..8765c72684c68be86104e38d291854dc70a38bad GIT binary patch literal 91843 zcmeHw3sj6-|Nl&rCQL=Vx?ysO9MQ!kQq52zIuZ^MH6$Sv@m8vtMvkPCLm|_>b;A z=)+q675@J6kQ3#4Q5Xyvm6?>SBjKk>YTWWrYM^zrs9F0u2 z9xx!NU-hcQFDLAE7^?Mn_@DiB-7|EyFZ;?HP7(0h>mg(4I#{2xm{;lAtFerWvo86P z0CF~&oHmXeVfDrGEiEgiS_w;hcgw)8UN7_&J-u@kVcwY>6J+!e(d)`pd^6#iXp0jjQ zRH;R%wxlCZeMcU&H77bUmIP|gN;G1s1l z!Bby+M+L^GlKh6Zmt|^8I_vFsRa+CZU6#ym)OcI#n-*{zUlK=gvvc7$}tQ)ppdZ@}ZF%F;R`J#zF2Gsj=;OO9H}sEDW_G2xo?% zRMh^AJsQd*P9=|gtR2#b;oNiBH;Ih-P=eyxb${_brtSSYN{Pm>m0P)q?M>$xp3oR~ zv)RYB{kLliYcZ~35a|dMjblC}MV#q5R>KL?O1(r4^s!~BxzsUGdND9)@K&vL4iz26 zc^g=Ii&sL#c3ig2S|pAgSEgs7F^szp=bcRSmUuy9MparjY6pISJwD5voF%#ivArcQ zpm6;2+T+qa@tW&p34e^QX^s5(_EYOL$yqiua*a6heK5p(NWueKwG+40>4ImNPo-=t zi0#DQ##QHvT0T1t)mm>+#1HW`cQ7qr-{s;x8syw;WDRO6Urag#F=Vg9zG>R37*j>h z)jKejIuT-fcby4;Ugwlt=4+)MDsl$F-5=ts^BGa^qGW@q8sxD4g;M!6pHl5~OC+Y95OUCBS-D{v*im3-Gl16RVLYq@CPO2V{VG;k$9 z>`DeDI>^M`l~q!TCVpbGm3u^Xu%($ZjG;GI3ZzQ=xLqe5<9d|txgh!&bM2ZZvFw06cbO~gmm$jZ-u(aa7ZsPfS~2 z&YpM|>Z}p+=!bE;szPSA*ygJ8g@HlR$hs9qnbEgUSee~@7#;9*ABN;{?q;%cKWPL# zfvusq=Y6oWu*`Cx?e(m2P*(CA(Pr_+8|-(X>oniEZ0LZs{{0EJfC&D=!l%g~Z z+}S+v6I-xb%@gh)Fm^JkvT)$Skp)Fmz21>UW!z6jAy@pCqMuj5#xnaCb=~0xEJ);( z-^hB$Op6-zS!7()ZY93LPbf%u&RmSnCSUGg@#90quA(yjpMHT4FF?6?Xhq|EQQ47& zY3-!6GL0~7vyEH3EcH|C6uo@CzOt8m8njx7k@q>4FC`YbvX7EGs1&g7ZJcGtiUZvb zJvVhr9B>Guq>+;yU5~A6oT6qHYb=b=WVmmVCy|iwo_|GnWw7v!+t=_iASMjzF8=gj zWSfn4mT-00S2#%zA%%TxwM4zJ27!cpT2kVS>7AY7PfgmV=y}WN?>nMCYou%Rh@pZz z+z@7eX>*z=HinlWouA=2E7kV3MZi50mBsA9HIN>fpqc4hk7XJawfAx@n8Beb6Y?Kh zRThp&f+x)KDU&TUS1$re)e0);0RfLH7`3K_=A*^oOc_*GWKhL|~hcsRtxerG*iD`={W*#?YriQxI(8hImyluCNX__x8Z)#5~ zFKOkDL~}?QjYsqnQqQcrQ?3^}9kK4%V^g#{G^X!tGnv~4G~Ha*NSLr;5MhFi2Lx=1 zbPiNsjU@S|iDX5kfqO@wADq?n70q;R#owJ%%j~Zq&l<$aOXbxXWaY~zpr11hvGR?x zwXFQTbP}(KW-GmmE|$2YaPonu2^Hezt5dQ^w;;;i!lre({TaB&0{zgB5WWl*sZ|zO zD;*xMHO00ugy6g&V)$5Dp5zV+;=aj^xSAHIj26WTQaE^y$R#>tQ`C-$J}m~zkBkCV$+eW>AD#7Q`2 z(a!y(eEYejNtc56Ih^u(gHO_tF-#&q6f~hK8&=0x{AEWWQ8awDYyp}KfenIEL+&rz zof0eY63mWCq2u2yH`+@hN@F!-!whHfcjZeaijFL96t-Uq?y(JO(04&JO(u>Y37kzu zTQz`X?`=QoHAi)5d(CFg+4aHgjy7m^a#=LqR~Q@H20^T$`bW>b6gr>52` z?I`cW?F-Z9HF7EfGL5Pfu{UZ)0@_w6@L9kjOpLtT=>^5IL@_05)`KoHaY{cl@zVt3 z@VXhbyQ%^f_~GWQf$;`7fB46wP2Rf21r zKC*4|#I8l1Ua~V)7AMP(2vTfcGcrlPyHrc>qRotwi=z@_nuNuURCa^8pZ|&ZX;E%N z0`55$?S^8($;oPm0BHc_H^}5x9D+0?a>`s$D^&)2cqmJe{+rUuF%${kbH=MlWBsC} zYt2Lc5i=M@v+gJ_+1a^zilY$4EPtfQ_Z>U$N!L=#3)lW6wT6yCn=gyr_bZCouD>8s zH`XHyl_E^m;N+xgn3Io)hd*}tqB#?XWBmKuMjol_D$$>ox)>#(p>L;iVLrm_{BY@V z^YdHo8IEg_aAjR7BF;nmBn*DYbOG-IzPrObep&o(+D9Qto~E4Q3j4Ws)u9){?NE|c zdYEH73GNp9w6I%glxSUhbWfEv5q4i=24*6$eqfL|_!@e3To!X0^h$g9mF|UgJI~5p zw8)RXiZ-6h$)zz+qiesK7~Pe!j&UMTevQk4`i1av6q!*a%t~1o?vd=)oKy|NI{N0@ zHr~$i+DVC7T7(i&7*_@{|66Hhl!Rv8#*+p0*#4nWFbFyf>*@m<>LqY;3MT=QjfHhR zY*m67i*I>1pk{@BCdml#M;ozAzlAiNLpMpcko>egZXd8RZzq?Vwrt>J0l*i)4xt_fzz!9ic>up+@BqO^ zHX4B@0NmUMeH5ha1uFySqkvWvyrTy6Q9vIB^prtc9@!7@KVL6{8X45cphgBYGT5R7 zc6ot~a?lP)u-6dag{qT0051f1q2gd7zzYFhsIhe&;DrD$1bCt9j2zfs1NPT|{WSnD z1bYp^UPEvm4;*QnDFnU{_(I?dfiDEU5cop)Xg)ZP2Wn(cBZC?l$qQu(!)DlFF?(iO z-juyKF>7?!khylw?ye(jmj)kn$RUiYq3SYCu-)ma2^0*@l!ei=s}9V5^{Y`^z`-%^ zY%b_n{g#wAB4}<#*QkZFc3PFTy&5hb6-Vcot&e!^)>|_&a07Lg|Ha3ngXWqoIxEqq z+Uk57UxGX;4oje9my_@GC;r78{qxi1OZ&_lX)?~O@_<9zob277=k2Y(}hf2ET9zDpl)BO+Q!1~nL=!aFJXOn2X?%T9+BREX~CSL71{6|~0DhvV8N#;lhe zoa`CA{9o3ID9(W+YtPEnC ze1R@{f2|T#ORY8>eEi2x3yp6ROq_szTYN-_j95GrUZ*4jMs zu1I>Gp`fCeKbuSqGF3Ntvw<#ThBw=5C1|xSTS26GV2j{jT^hRq$Pz3N&&@#eFacF;PHUR1ECg#S`cbMjt6o)P+a^s78mDzO8a9lc9ov)GndFq z2vBH%3Kvwk09pai3aD^Fg$pWNP~n0K7gV^Q!UYvBsBr%qD_l_3g1#->9|wI~uwejf z7yx}+uu}!>Q~_J0z!oVf*dhh?=7GI=U{fgA6sp(&3pRy<-N;}!GS~(Ww!ses+u)7b z!1)Vs{sJ8Q0SAA;!5?tq44gOvM;*aYN96b)IAaUW*n%^*|EY(&TW}bROm@;GfTsKn zhaX-RZw;Dm=>BBe?~lxAmEkFs@djr*9wPzl8ZqcH!HQkyd#OEBG+|n7jJA$M%y0_qXg-o__bxd%8T*M`H5nROe&f zsi3DM8#IGjL zX(O~2s0$Wo3OERK5OGJqNPwGB+-3qCHHai27K3B~q+1|ih3^Uj88wRqY7#|N2Z|;q zP&9$UU7jj~q6rjDplAZ{8vrl?!U|u~3ovSc@`E-6XykxS6X?}}ZYOBR%6sGhJW_56 z0N@b-kHD@E_;-dtzx)D#M*utm;1K|i0C)tzBLE&DCq2N^uTHkHF3&u=5D) zJVJiIBmj>9c%(dP1HdBy9s%$OoC*Wy>cFuzaBK~L=-_lLIA8o9dH~vJFXJcWT>$da z>mYdr$ty@+LGlWcSCG7dwjqS3KCXuK@+$^3f#d3-(m)~EQ7)w6z-sK z2ZcK*+(F?E3U^SrgTfsY?x1i77Z-ygY~XHcaJx6SejHrj4vzAIJNgv}3Aq0V+78t{nAy^G^2|1wa_C!; zpvz^(b_W&)N3erFCJ}Pj_fqmmJIK?w2BiC}=?zJ7fW~_D%;b_MHIbWQKf5Z%lIP&w zT?sqQW0=~Wr9NtNo8K%|4y|r~-4^}tw`-A?Lm%r*=Q4h^SVemux2>`0r_-ffwdO&| z4jvhw<5~1|W%RP%x3P+`^!<8IgI{~plI;DxB**F#4p&Mn6hpI{O6r9lsvjs8N~p3s z;M(8uw)7dcxit0{kHoh8DV3(s*mrn3?ol!>Mfjw*LNRuj0YVgQP2tg=DL0HJr1v^1 zhR!TcxWWJPK#ZSUe#n4^*jY2tB+{Vf|O0cslA@|t4eA}}apEgMNi<#AR<_qgU zXlxEq*KqPA!^sVE_@fkKw@;Q6mDs-KeeFxvt4ls|ltYIR8;XJx7AO`U&HHQj%fe=BzVxtC1kP$$>IShnE_ zMD)-Hiy)V&_ppTvUM>qttCOyPG^)({5Ou(`>Z)ngk;J>Him}yCeqT@0QX7Y7U_nAw8(gN=a zyemipKpFtj0FbYOd==!Yps)gk6+i$WSOXvc2(0nnivXN`63Hgq!Ah6}0d>~0EWG}24X8M~*o<|tdDWk-gg!91 zu>=@CO26FvUXFP|zz2yIgqV-~gU&RKEWAFEmN(_5)7;2cY#!777gHF`!3+Mv3tqh| zb!ZFeu`oivdajwEm-1RTb4E$CtnU$@vvKzm3Iro!cKYTFACmWQxDp|PG*oDTj4Zy# z|C1+cFYm&n_X zUI`|`h>|5PwRSixqGh!5E+<*QngIX&2HzM=ek_J_ViE5euP1X5YQ3h@RNqU zhP;8+paK-xy{94{ShQSiEgbM%NTc3LgE=9D?cEJOc;*0@cb)gR+KiI)~5X{ZXz2VC|~!#~~~j zN3fo=<}TI0$I?Hfx*30gUo%22B0^eLlRr>MDy)zdSB>~WOJ9*GbD z*-~LNB!rfFjnn%k7NsiOW7znrYcpG3J*fK>ev6JQJIcRz#D~>q2B8R#Hh^8g*s?JQ zlo^=T&fbVJ5DM2;Z+N~-B_qUO0gR-dg&q_B2A{;7S=Z~R-w@4rQ9X*~j?>EsiLbg- zgTT{f2!@@T&{CRkHoEbciU#fi90J6jwaXrw*x8fO5+8Y~_ykEDGrvM?ad2CD7t07k+cRH{uSzLbjf-op;9Hm|1OWZb~b=9td)pU(73cpnReC9nKRSHuN zo5mZy-C=eePJ7wvOCMD{8V9riZO9? zrNA~IO#{f{%uZKb=_;u!nQx2I=`J%nMAv`CHqX6S%N|B74KZ-e>2k>_Y;6cvjiW!% z6Hkn6iztrB9mGuamK>9w@ml>BVF_dS+(X2?=B))nG# zLwrMk>cv<+=^ZSr!liXe3yoN`{y|`_oU+_A3kP*{~T{3Bj|BN=& z`bDwd)Ua$HDh!8V#Ycvz)H4ylZ>fOCAf?r?nI31*#ViN1qA% zrH7DT$}=?f7j~4(V@`8GZLlmt+OiA%RO;!kSn|%dlCp#>e&T$UGSWF~zt6!?TO>Ah zd=~URG9qy-7;08Ci#6i$5I7zSEU4>yhC3Ikmt{)fPQ+173cK!b@6;r6%5$kd%NCur z`z#tT#C5kfNzCtg&F2-AsttzR@IyRYRq+K64>AHi-NiTHRHDY}eVjx&aBFHs;S4iB z>O@D_iSJK#pi)-J=x5TGs!4*Hrw?GF!lTm9Q!+k}*lJ6CixMxKyB)VvCc*7cCB zC}u(nrPmXdD0|>rdb!IJNVTh7K5M8^$`8!nyfW_96=pYjK331wV3WGdZPTcvOhMxf zv)`5d@|Ru3R}5)+B|G1uVhsjo@dNYgZ({BQ(>gTf6JpHk)D@g>DO$de7`IGXsLb1M zwZ#VyldeqYtd2(udg>3%zp)kjZ??2WW4@_qa)G*ietEB!Cca#kt?a{x*W=kv;#-Ei zlW5mP*z^PQLz{FyWJw-r%(oM4pr~8zfdhk4K>#B3<|DGQXWw$&C~Jo(eAo*&je4|h z{Xd`IP}Zl;r8iS!K80JuQtuxr8~IqR;P7{0nRI1;ziKnlnI~vP#bI zg25gc^L+Cq-KXh#8qOB-=`oH-h3Jj;p-9xRq_C_9?cHJ}E;8PD+CY`(AOV3j1i>|? zq-lC*Xr2y~6w}}O4Iv3Pyh7Db$P>9p`CDdQsTowDBnpf3$RKYY|5}*7&|(2Q@bjzDJRdan9oV;dxu~0LMf|jcfJx=$OUteba?!VTTXs)C{ z4tN=$L1BbKdK~t&mu1i4`|Q{iH?-0cQ_&WLNK+?lN&bFk2SX+X|9jOiuilJFTKYfe{$+ynt3H*lRYeAUpMWA zQ{*Bp3Th8$yx6R{KCE7m#ozM%hA}mu@3kjdi8dt(MmWAH;?EP37`<1wXysLQf>%gk z^DVyLP8amf`#oiLV3N2ZpB()oYS_e;Au%Vur9ssy*oTd+u9xby)~7J7Z}J_O7OZl>v{2S6cWJ=1V5cbep1`ya2lV$*i`A4W%Z=0N zXPvG2At2dO(z+RABWCs)ypW95_~5dMrwM(&n37G-MuL{rzqBWiv8M?*FdpznrAj~_ vAaelv0Q3RvcY!_teE|CK3gi!Dx(tUi2olG-?HrGR{&>z_;GQ>&vg`i<<{8d$ literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..9d36a351 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,5 @@ +> + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..07f2c44cdb310f31992ea3af90257363c8f0e9aa GIT binary patch literal 95888 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 + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..53c05ff063a004099f9a853499cdab7c86b1e8d9 GIT binary patch literal 76949 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt new file mode 100644 index 00000000..3719fce6 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt @@ -0,0 +1,5 @@ +> + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..9eb3b550b658e69d40db4b53749c3b55a9e463a5 GIT binary patch literal 58708 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 + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..83d6b17231914363de91ce7461e582a5bdfe9327 GIT binary patch literal 92118 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 KnKz5F`@aCG3KAdy literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..f00f395f --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt @@ -0,0 +1,5 @@ +> + | > + | > + | > + | > \ No newline at end of file From 0c202466c944107b7e555917e6f7fe110cd129a3 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Fri, 20 Oct 2023 13:57:31 -0700 Subject: [PATCH 26/42] Add toMargins(insets:NSDirectionalEdgesInsets) (#201) * Add toMargins(insets:NSDirectionalEdgesInsets) * Improve doc comment and test name Co-authored-by: Christopher Fuller * Record snapshots * Update doc comment --------- Co-authored-by: Christopher Fuller --- Sources/Layout/LayoutItem.swift | 20 ++++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 16 ++++++++++++++ ...InsetsPriority.iPhone-13-mini-portrait.png | Bin 0 -> 102141 bytes ...InsetsPriority.iPhone-13-mini-portrait.txt | 4 ++++ ...lEdgeInsetsPriority.iPhone-13-portrait.png | Bin 0 -> 109379 bytes ...lEdgeInsetsPriority.iPhone-13-portrait.txt | 4 ++++ ...alEdgeInsetsPriority.iPhone-8-portrait.png | Bin 0 -> 86059 bytes ...alEdgeInsetsPriority.iPhone-8-portrait.txt | 4 ++++ ...lEdgeInsetsPriority.iPhone-SE-portrait.png | Bin 0 -> 65633 bytes ...lEdgeInsetsPriority.iPhone-SE-portrait.txt | 4 ++++ ...alEdgeInsetsPriority.iPhone-X-portrait.png | Bin 0 -> 102473 bytes ...alEdgeInsetsPriority.iPhone-X-portrait.txt | 4 ++++ 12 files changed, 56 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index b1bcac18..d8aa54f9 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -381,6 +381,26 @@ extension LayoutItem { toEdges(canonical: [.left, .right], inset: inset, priority: priority) } + /// Constrains the view's directional edges to the superview's margins with insets. + /// + /// - Parameters: + /// - insets: The directional insets + /// - priority: The priority of constraints + /// + /// - Returns: The LayoutItem + public func toMargins( + insets: NSDirectionalEdgeInsets, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let layoutGuide: UILayoutGuide = layoutItem.marginsGuide { + for edge: DirectionalEdge in insets.edgeType.allCases { + layoutItem.constraint(to: edge, of: layoutGuide, insets: insets, priority: priority) + } + } + } + } + /// Constrains the `bottom` to the bottom margin with a minimum bottom inset /// Useful for bottom-aligned elements on iPhoneX family devices that require /// an additional bottom margin on non-iPhoneX devices. diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 447de5ae..f1513648 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -540,6 +540,22 @@ final class LayoutItemTests: XCTestCase { } } + func testToMarginsWithDirectionalEdgeInsetsPriority() { + assertLayout { view in + view.layout { + pinkView + .toMargins(insets: NSDirectionalEdgeInsets.zero) + blueView + .toMargins(insets: .zero, priority: .high) + .toMargins(insets: NSDirectionalEdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 80)) + orangeView + .toMargins(insets: .zero, priority: .low) + .toMargins(insets: NSDirectionalEdgeInsets(top: 20, leading: 30, bottom: 50, trailing: 90), + priority: .high) + } + } + } + func testToBottomMargin_andWithPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c173dca7f3d670c2d1a95f515851537296a737 GIT binary patch literal 102141 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..ba7a723ddbf0a957a90ca2ee0541e271650eac01 GIT binary patch literal 109379 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 ja8o{ZwEm;q6b6F%f=JR)9=iA|2K}Mht+l> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f7e94fec406edba19a8b9ca3855886362a4eef GIT binary patch literal 86059 zcmeI5c{r8Z_rP&<3^^rKhOQwBsSFvK4583~kf<(lGLOxfokFQZNg54J6lJ=a4aux- zBvTTJCW>Tsob%iJJtL`qzR&M@?jO5H>AJi3yzg3jt-bbo*Iu7Ub5kP%zc@b!2M58# z*wBK5gWHLNgQtcU4}OwltC|G9aqhJ+(&xDQ@4PSIKMpzBm^g3R#IXqcotJ}~Q=DTO z90Gppa7r-$zK&CY1Bd;bi-Y5+8wWRij4AjIe>H;N@ZZqB{BWL|p_vu<4n7e6!oizWpnb=E=HR%^ zU11QT!NH-&VPd$(>JVr5n>A-Vv!dj-d3{z+8M0i}VDuuWZ_$}!{l&=_7OLktX!Y&j z`u9}`#p6~ef9h0U>08@$yX04zPqWgS>Z`3l(n;E!bM_QpBxS3@YtQE%|86|h|K*(B ztMF{94+M7+n9L>VlyAPz==RhDjKuK2xtrr)H<(Ak|+ zN?dPRzBy;Kn!Um!*)3BJD7+?soBAnw!}$-L9nr7(>(GJ=X@bhO}HlIq{+nj6Wz5 z(2w2?o%zKl(3o=6n|!f_)>%7x!ErchZH<3Ov#vUPZ^SQ z3N$YGV9@Cl6ws|OMT4Y*<_c!;Y!-C0+hFu1xrA&)U>UmT@CqDt zNfkGxb&MKZM&!^c_|U^JC(A(@w|w1(z&eX1Vob}WG=v(>h@K}PA~D>*rK5`a?%GKs zF=~|rwM&*Y`D*dpeeHU7=RVm4IDD&$UX&=Q`z!%r z4QW?uQBu(2PpZSDr^>n}f&NdZH#Rnv-Q}cu;;hXEb}^irsNgYO-eM=e%GS}DlsmdX zvq$<0h7>FhM2d_*%jA`O<sv?BWHOo8B$&7HL$ zzy}AVi}$|NbQrKQV=9@GG<-yF$GH^p9co+aXzkY1%G7{pHK+Jv$xo}v*?hB`SQi>{k25XBUyV7Kw^)k1J$rSh&o~dYJ~97z;7Du0S;fbO z0)z-W>tpf3^`S`=o+JLY{}Ov~M;Hr;lT;d>oI|kDu8U<(3O#9xv|xOvVn~ zx^8S*;OMHN&bHF@=HR&pbVXlR?U6hpB}(qQR+&-;K6uPVqb<>^@awGv)|}w_!9#km z*lc7w^=ZKXV|lAwI_uZDm`Z(`WOweTD7mmLUTTYu_Pc9fD&9s@5lr6ybt<;H7gEO) zliPLOnNvrlx4JOIxr1C9@;k$6b+w=d+~g69wqR*9gAnLd51gOm97@|Wt|QcO-NzJ6 z`(`eR_GP`ncQ%hl%XAC~whxIBY0iVxh0oXQlB^P;e(Fs#r4Aj%c^?$58eP8oXMMcpbvrAl#AKd>Ig zhjCYe$E5^q#zv?mC&B)EYn$j-aCy?(Yph7CkcgvR&`R_nm&qPAnt?w~2plnKul?}p zjgq~jleKs}HLbdtniey9Tbbc9dK2RwYHE-2c9f9FHj=wEY?g$)I{$rZ{;8m_TaljK zVnPDPS@)hn@O+;8MPQ8bWBCrvk8k!x=-JIH zkM3M!eWVTu<>5$GLsqm37_4n@MkbPJmuY);4u8+OT%wmnf=XZ9+12QD`eJ$MyDoh9 z5W$ZnJBhtsD-EQTXLOYHNvAz^ABin}O9q3D&V#`TG8Hk!Ovl{&hW32>463!y<%lY1 znuF)NawG7s$BQk5n;HXJLdWxEqM5RDAl}{NGEsk*3gFUe2?j5d6Fb9Fh@AxXe22Yx zAC>KygDb&TCaT}eIh#R@U+X?!A|OK|vsJ5uB|A*nq$kT`q^gdjgDABV z4vvsB5Mn9B1BX3dHDS$=&A*OGje6ku_MPk7-<@r|X&13)KW=a=Vl_*4n6hK$^7Ik? zV(J`nfwH|RV6f~)F!*K6E@MaL%6!O+_I!_IK1){Ff*?Zy%+G%<@=yIe2hPtt@512L zm@=m9XvzkmM)2a9+2ZNvblsl6uxC!@GXf?og`mldCNrAM$TQPC7xK*5fFd=P-+gP=CITwO3i`YBFZzPJTuBO zqn9QE=%opI1Bl)LqBnr(bvFG~D|(%cUT34)3}$T&s?9*P8K}?*6&j(cIaD==s^(A$ zC@KL(C7`I#=s!?sWFR%C@Kd<<)Ek> z^gmDzib_CH2`DN7MJ1r9@i=Ncjv9}nF8Zj8J_8AXy67V$1VTapLdE~iHyNciWf3Jf z^hNQZV?G4jgH3WuMkYVhhl)P}ibw>Yi1c#|2C;93WI-XmNME~ta5^1tLB{$?@YM=7 zH42{zW9v@qhLZsA9FspsTn$L46IDK#(TE%dyNEvi9Ao+H+>Fzp$1%U(ZW-NrI`@PE zxf$bOZpS>k`AqcLP#^!0q5yrxe4jy$c0HX=@%`Q zQeAY02o+jSaFIFys)Wh0F<>0t6s`mHV+xOwKTCGeNgum{LYK@EuTQisQnwd~+$GsIEmHE?gDwJIqTLwPeO`go2 z>Ffj;sE?SrbNh%vH0a5PR!D#`I}a3{5F^J1t=TBi2*tKmOQeOUP3P={WMiBb_;j_n z#-VWbf>WrE@)OfXvUF%PoF6`rrXs%)DB8?eh^;Z-O@b#B+f|9<-?I|v%o<%9zy~~C z-WSg9F@3fJPnbSBO2WxDQZzEqFoxL?z6lg9FUQAr5}+2Z3B^`JSUY6%lFolgq``2| zG=7DqF`CB68`A)L$Qv{HkH{M{Xk3N=v7n;g=JIk54#fv1hHI=)fI$oRP=Em{SFnH& z#mUfxVF4eCli`bd6elxil-RxnZTDcPg9UtOy9c13wCy*_TEOEVC~H9ve^F2YrUPwD zgn|m@mIwtE%qyu$j9!JHS0NyX4ke*CdW?Vx<&c>H6Ureo1E&924jJW* z(H0MF@lbsQs;@w0La0oL7P_G_AsETSyauXvgWZv^{3oh*W7L+TEgoY|sGuz#+Tx+w zaJavMxeSXg zcWqn$Z9mU|aIC+)ZdZ)m!_~DmRdyp9o}5v$Zyzby+9=!Wh{g8sk4C&>K+8_;@JvTz z8`YBie%G_CseK;&|4^xyv-B67-My%kar-L1jfJ_7VvCnt7qn0@_e@&-O0e>5_{zxn zxn=wOa~Hlpa0$mydfRnUquu>gzm=}lt0zWBKgYw_|ogqq*M^5X0N!z^zP*ytf#uH8N<74 z@Vt0mdqkj(Zu!?Eb$!M}@GwHOV@5G@c_L4 zvx@JA&!k4Zw#PVzuUGi6--)4tP|`E}-MFd+-|r<9Qn#iS6<*>@-gpQfvEU-q*X3aM z51$V1sbHw~vX)?T*NiSj^?n~ho=fXk#PhDEa7-CW9wP((f(8^YbH)N^-K$Y8W2Uh^ zaanoaW9;-rWlxU8;wxpNa=*sgKbunxrF&@mF~&=Ahqg?T$A0<9F*D8E&qn25`uet6 zNxJbmRnAE>JpG2aGIv|7@8cJo4AJ?%((}yNUN6imjpq?er;K%3( zlkk(@NEoW^p0E~67+%t|%DYuHI!Xv5nZYr2JZYV$OYIIn0+XT0CVAW1SI!mlXeBOi zvRziEOJi_mlr}E!{jP&of8^X=KcdlHB@FZ|mMk*iF20(AyU;g=dhRneP_UfyRqps} z$)6pO$6neA2eLgHxazq9ZmzI)4pMGwh^&!96*{}DmClRVTN&>G{X z{g^i0ot6~X&2%g;$kN}Rs9dDE^5c2NlsNANC-JKdyu>iokXL%p=ZyDxG;)bU>H17( z*~UCg-#g#sc2g_X?YBwn5SuaMa-}RGd1I4foPtHb#uRH0A#XOvXDWW|+x{wlF3#dM zj>B~!Aua1M2`c~zOUs;{DB%lRrStz;I^?c? z)wscYNTYj$sFGEh@tegLm~JnW6ib&zDJ40}B}waYx2bxt^%li~h#)^`pt5IKju+~= z#iV_X1+OB|vpHrG`d6SyB&?qGqsim258I;wADx|`7ivCFI&*N$r-Rq2Xqk$@exNu4 zw>-ljIdDe_JCx$rztx{1!-Ffq7o9Fnd6wanK^CeEyy3gz;hsGuEET`en;+9ebT2<4 z(YJG4I&G$Pm26ZV_kR0l`C&j`&0&|{g$)Om(w&~eBjEKW`cgv3=lfo3j?Z3{e6k^q zF&Sw7d};iHW`8cKeKJ4J2Op;PUQG0y>q1}=dq;0YCAL;9U>J|@J7DRn(o?Fd3pDx@ zf_fy>GF;|j)BR3*XG7N-fe|h1)bBsnHm)n1w~Vm}G#afN90`rG!w zgzb7j#|j_3WLUNV++W=lx$nA7sWZA_S3i47vh=$yb5?PCy3ktp=r6C`Hx+%;06HoC@ID*c?1cmUtm{D>evVz~QklS>QsG9F7n1@n7Q8jZT@g97~#u`Q9MFK;jE z1j~RKG|(`M33rjU%H*v+zsxkCXUrsQQ)7WiJdc&1uM@DTm+jH$-c;~7j=MgX8Z{4F z1(Htz#gW>=7zT;?=uV5s?d38Z4xk6}@-xHxhI6~)?Da2Xh%A-gYI>LTRHhQf+-dyH#X8mdQcUe7!NixMbS-aWtSl^F`hMp4y(PvlxcKo% zjWHQ${=8G@;C8b%s*=^twilu13s>Ww3B7<8VXB+^}Y8M>78%(s+wWjEjP&GgPoDkK+TU&xC^irZ#R~?4)u(g#Pt2pB>egei(NAK^4T7Z z?oIV~hZer+DL5?)R{@pRKym7VmszVN^wB#O?Vi3OY@UFK1h0`$;*5fGd3_rce#RAb zc2ri(W<8bL9|Jfq;XVGs?LWncG%b_9{OU`|$*uRMDO#t7so8CHW=sZAY{lHs?%l;l z4hdf*@I*`y2AeilFF=do1KTbJUphIrz6a7dSmo_`O*m8{^onqCH!&brCpVb$v|H*H@x-ICQ&oY!%12=EZE$jE(|PU#rW&e zmpvV47{;^QhaP%=ZWZ@`nLk9h(2z47o9@>2eO&|65o8G^tD%wkp4W({7%L*F2~J{} zyfBq@qCe%~*21GsxgcUm66XHy39@VhY#2ZwIh5#Wb#%Za;eA`-Eo^_a#2VXQx&LN= zr6({$+Gc#H;SNp0YSyXTLi%D8CG7Vb37Z17dCGgUgwgz`m>~D~^%rN@H<{4yP27ll zaM=^L?mGZ{` z?*69oFPo0NbU8`a@=eCd!t$lPM}wQ^T*r1be_vos2HJ|bC-U(f`CjVm+bX@zdRVX- z=?pC*CGpMh$dw&xjOG0kJ@h7wZ#U>^8p@aX>3@JW-7B{R=SddFgb>5O>ez>Q?R&1u zm=Y?@a1vjS7cAu^Qm%uo1@X=(hz6#qL+QSo!)6<_K#~$0^)*wcV%fZT%j2*eY{?=R zubbYfmwW5Y3N*0I4cvwtd&R@Y;zNLUHelHa0 z*u1n^pJf|h!vF)xknGKW)yw-u9KoevJJ@?R3qZVHd#mnZ7<=Xe+uVR{2#4zOP=|q5 z`};yzQl}Cnbx=|VC3R3z2L=Qvse_U_D5=AU;ZRZsyaqu@9ojaa5G8d&QBsGo!GfCr zl+^jdTRD`}K}j8y)ImudT8bPcbx=|VyzrsFU_q5Ss8R<8)u>XZFc($o(DT`-QU{#Y zLX|r74Hm40LX|qGQU_J)FkV8_-aDd79qd&ws??$TNmQvrFE>M#I-qqEt!frk>hPmV z9aw*eDs@0@E2`9?ZLrYsE4(N=enl@!#tyil<5%eT6{{o|9lt`yuNY;v^gt3Fze2~a z=u-k6zXB!Q^rO(fKYkUS^Id|`3jiI(LPxRCQ7m*6>zCu%=qMIwFoBL@VTaw&Q7mwl z9v#I(N3l?U9n@b3_1B?oworc^a55S7*FpVtSjXN`e;wG74jsipN3l?U9n@b3_18iD zbx?mD)L-WhEqzgc9n@b3HBClMlTp)T)HE4ZNW*jrYMP9iCZndw%&v#9ngcaWrWJ(J z*$}8{GHRMkZ+?ZECW8}JbbtYBn(T_2Cc_{KHBI*DL`{?FWL4BOxezr?W>5?e2}=Nx zun-9gk+2X63&PZ~P18 zr;d%)@z?2X@6&$F+hD!*U-e<`^IiXBF%CVTGY;&pn{_^qg+o=J4aW=MAoQSbjA)Z$Z4 zeh0vyS=)o3rvC-qJ0vw{Ts{t&M~<;u98X`=(9RV<;=3w}$vLAjWdV*@PaWd2#y&x& zEU&tO*!Ev>S*QILm|{S(A_&m*9#Q=^TQ^KCdhrhV#AAoN%-HabHvt`JnTLD%bghmT z0Pk2}vqaMExnk;IO}ByQ_S8}c=@Vd_ho(dNEkIHkrXmrwB?z*YuMI;YjKCo*T7S=$gq zX6*#XEJ>1cq%+jnV}N+1Xiq{sLV1lwN4(3+7$aP04FGh|169!%a)*Be$X+C$Tmooo zkPa%!L@VV%&ekRx9W)LPrUbEGIavLY9&tJVA58-Ftvh&TxqVZrW>@UnXQd>|9}wN^ znZ16oMb6C>YoefciYk++jdeCS0hw8)fSDCSeG9;{;KmieWhXPUGypS85u=hpie}>y z-J5ysN6kN;4)21R`^L_AR0rH==S>8^_YqHQ0rz=sT8V7bifMH^7lU|-)9Y*isqZ9n z2GdA=ldN=DENwloj-&EW(3AL}*H)Qa#`vJ&1QCepE78AFJYT~jA#i?sZW%|bDUsO~ z4oIv7Fmv_a1Aq;c1_Kz5KU>)W-x%=g_glT}&)-3)I;Qh$W5(^vXx?cYQN_raO8^ zQ>J7Npes(|W<`N+Jl25om=CyFI*^+sTMf8bKxfWFDVpyJCUG92ybP!{)sKhv7s&h! z=%E>O&K%ufAH�0kpL03uYBi3m-)59!_}7$Wq^E4?4a#OI?W(ayrIz?dqBC(-&o zn+knWlBjbIIupr%49*sfE}I3wSv3%x)sqP6vcN{2 zz-1@X(ARzZjg4M`n$uu$x3yJTNH!U$9jvQpeI2>_sK_EVvx{GQaj}J*`&tWTz7sEYi9UlP_(Vtjp^B- z#B9u@^%NkQn2J$CqxF`(1}<$f)mj`-twk`ZH3ar`pOdP!`(dE)v%ILYBJLMppDmzT zKalZ(#N`rqpa|17xzWy2MU8Ye@u8qnx@%2(4DY}eaNen}8kd=CT}}sBYomg?h1VM) zVRjM`{dCoWf8Di7t&oU*6c+bzUj#&SptEku>(a5INw7yKug|*T{zLiSwRQ#f08S_{ zXy^L&vYsf{zGc7_euA7(B9jx^4>_TlG*0MNaRo`YlePuJHJ)5iz?j5ZCnEcxgAa7N z_9oqI&rAs((-O$F&Z=0HW&Gk|!nUY253ZE%>+|*D;8>tyVz|bNktL+*5&C;+afnAB z-wScGz+Qnf`~{C*{$y%4%U@1}wQ0SAWp;3U~&5uz-HNlE5SSbR4vmjvb>x(?rAc+fP zTc?5a<^Yl|Z#ZBTQ>Yj=be3zxO5olmW3FZ6*I&jk*WrXP*~peY;v1!4UMET02df|U zO(yvLevPKViZht7;(ZWStl6cgK4>ov3RdQ0iW55>``mXNZvu(0&IIiszB>%#Y^B86CpkHB$FOm4e6oHG8;EY=P%DI9ygK16QCt7J#V%BXD-HSnopr9x5 zL*YI_@w%Xeig_bg(Ls<0(6b<5_*fx7-!4F)mu;Pfy?VeVL0SY-i>Vku)F?^pD{yI( zf!9$0c+HOiuQdg+nA9y}SmvzXuJ?T%m9a_;c4sK5_K#~cjd1gXi7l>%*kZV4Y7BAf z7E6^dtv6LCUu$(2w!q?#NwD0B>_UO=542yy=~9 zGQ+F&OA+z{?1v=O3Wfke6fD5YJbru_TBkk&_Ceo&LWHO)6Cvsk5u%r92vH>%LYAi6 zlU+4Qr7%|Tna=DhGe}(1QfW+V?A*=`- zt)NmRR?s$?e*u>^nRwt!i0MX2wpTB}81K88*OL&lrOcJ+C*7+>P_88(?CAQv%tasyH)e{i&43u%-wBPSd4Hf9mWV>Zq@I8en!*Z$->%E_t{Es1gc3n05rh&!0w@uL5yqwER8L6tgAC1>U_sEDev0QPE0##m zOsW}w^?44KE*~<-Vw2dC+UaNgHPl{T# z*0{%{PUlP;<@Z7SI(BZ-^KN&agX4@_^QHYmG=o?VVkU9O>DspRm%C?judBizusq#6 z0ADZF{rbR}Zw2ObEqG$~v`mQ*W)RoX2gV71X`XA?^YUgiYn$zc0~wkV11r9h3SFBD zy%!1P+rjq@{{AG3mp9qAAwOk1ygX+CS*eF+Z=~stbYRi~Wb?-kU5Y(59&KuHm_{Y;hYc`*~@>xYqTkSl(TP~Kx ztZ@f$RWBT}?25)j0zuM!xmD8=IPP@*uQRY0yza9}{2Y^L1*l@!SiB&|_yu@C7#V{=4%%Rtsek^ODC=@I z@)!DGATT6qW&$0XdT4Sn-8V8P> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7db75c5eb53409993d885c107d60ced5fae068 GIT binary patch literal 65633 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 pG;ULE6Be_gf;O7D88SNu2@juWI|~_b`dj$R*> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..09d8b47615df32e6ce72050a42b48b19b563f727 GIT binary patch literal 102473 zcmeHw2{@GPzdy!1mXJ`{3PrY(EmD?A8!DtiktIplOOz~Qvb2gqlCr$*QOHj!%4AQZ zl2FMKQj{(GnEBt&GxN-hx8+>d`JZ!s=UmtQURN*aG0%N}@9*ck-QVSerTKb6eo1}~ z4h}(6lQmWx9NexP9DEVHc<_@0AW3d%{1usPY<1PmOQ=)%G zzONeIJ9Bmv2M2+}bj_-*hdF!StvctL6D_~Pt9$8<(Jd<**4Kobn{E1`zcf8*k#?s` ze#Jv>@@pd1!<4`!5*x-XFU!ei!umE-u|IWKbe__*A7cOB?--*gjQxfE_ee8E`jv)O zb)Sj<=>x&z^IgS%ei8V&jC||nuJD)hlz;Uy{VH|#H!vSDG$CK9=1E^^^{dq%j(28l zg>9k1v0>|zW*Q&5`p@km&-5#m{A$%AW3rqvnlcgJP1xy!eQ4|EDCUybN!Y&%Y}b&t z`Rp%f3sx?G`_<1|!@2dVf`uO~RQT1F*Gu5p-+(KW=8w%N%2JL{63=c&<&z5EhLef{lk$*ib}{9j%y96qw`&ZO^QCP z9z4{4i23>SH;rw<$r#E6k438YuN0vC*w*oh*tfa-*pHQl@NirX$Xp}Z} zrh>yew4$Z$)A|Ge?aknMt6-YLK*F`f5=`V$8^YEL#YhW?NsWEUsH~uUymETI1ns#L zt!E*N`Recj9c8${CjE+cI1d!!W6DOIJ&o(TX%|1yE|#z)5xHfVlVzy7l1y@)_{2-g z@wlkjmaZ%bxY!M%fuR&Op388BAHqn*Jti~sm&%Y`VR?;|BKj` z7UKEBrJo0H6nbv#%K$Y|(^aN`i*jg2wtnX`=4+i~sZR;^Iu_%0v~Xfi>XVbfls<#1 z_?-(b;y2;g1R1d*Y}J&E^qc2h`go#KKa(yl+rntxoab-ov*;pFY9xOAd6zP=huH5k zRcCWHhV~e2Wy6}fw0%tCi95CSNvhwZg@+$$x>V6RQy`RbbFl6ccy&l7e}Bso@?g9o z^Yvk*F&^ChCjCyIshQL}#0izbfud2REdeL?N@@$T$z#e+9DbPSYq>OeNSs1?8Y8nU z^hhCibXo5HV?Sn{7#Nh{!NPUbU zUbl?osE~>I9M89;uwIXEmk}s+9f~g+HX6&PGFW0`lfvIWpUxZF(^ZeL)7d)yWnjK* zm7(=tV|{a+0;}SfuO|~I;iLziDTDb`9@<-@klEv7EkW_h1#7egFXEXz#)+riF*5jgWn)vtZ4O#9*J6u6O{T^ZKTcE^PORBNeM@U?nYfX)K!z3+ zqv@J>{Q9ao=0oaalo@F}Jj3_&VxG!~Q^q!T-lzbtp0u6aT4Wd2scgY|J#JtozWrWc zRm+47#g4|%QP+D#UTN=@Wa&}yu>!onS6XYDgU)A-FF1J42&%=dqyWJL?=8m47L(`Yk~ z(gtKC7_yCQhf5uP8HeoLj&c9mbLuHchiJ+(buGd3umC0!1Cwi*p}4V4k~ z4;=1rN^2xnScn)Igx-BT*tvPnHQ(_f{>M{A{LgHjVCx|htta07=ys7^I=?ceCOi|L zfh>Khsv##vefHUCgH1=*on_*(HIEeiMCY>eOTqB(IeMq)Yu~aRJp6nCc=&O{UyXep zgDl?HnRs_Fid1-5)<|dOJ;}`TM*FI39G{#CiMVy#vv=P)ZBuL&9Jnk&&mVbT1j4<= z560AN2f9Ux`1(SX)sr(j=O7P1RwIWx##J!IclN7>>spA08P5rft#`_!n7VjV2mN~& zZd|+D#Uk#iDf^K+UCG+yCVsFaEy(l5uCzwNcw9Mhn!Wc-z{7q1oFkJL^_j4y?{FG9 z{Du;<)JK|8~yo-B%C9t?elm8Wcp1Ok_exM-Q_QJ`^@{~oU zaivVk^}i#pb4-4r-W|1SwDD3IA%`@m7=3Foc-ZwUc=%%vSMTVuK-R&aJ0v*h$I2x0 zY!|eCo~qr|wbZe~uz2eloe^!*i}EbWHQ><$U!^PXsG@5z{-j{M(Y}qY%8nIkr;vvo z<~kK+J#%4VjlRRdb`qsgztTN>2iT!5aeT$dtm_Nz<=ilREzhD{p$`4PA347?&~ekS z^h^T>uCif#MZor};Nj6n9FrlN=Cck4-C^w9nH?2ftE|K8!44meKWDP^xkV?Kl!Gh{ zSsJo5l+r9&1En;S($MgLh6ieVL&F2w($JQEp$=_nhK~*1L+BpDhzE>#paBFDjCjBx z9t`41;9(Gt5io^uX&9G=acOwfg5LSStCmghsznms9>Uv0?9LNjh{FqUcp(mRJkUfB znBxI+JYd?An>b8c!t(t7Eon;zhqiyldI7+!JeZY-<{iR-9t`NgL{pe(>IHMBVeT}{ zordKASP=s(2Y?kWu)+maxS-}SEZTxaTd-&g)*&*h>0liqtV4vQwXn1nz3+ylwXn1n zme#`3T3A{O8z8`*9-MfX?*a2YV7>>;_ke9`VCN;+dC3X7htNHQ?jdv!p?e73L+Bnt z_Yk&xgk4OLKCQ4E;NMyf080R12>>hsfW4;wkM^3T8LbTP#1VK)IDBb$oH_DO?Cw-j zPU%W%lrC8OTDYk(c|Q5cQudzQ9iTVlxF zx}2#At3mk%o$Rxq*Y`-WN&N^y&qc7cCf|pXLdez~^>03V)fgCiSsWDp%_e(*!fzV1^saaDy3c zu)GvrMq?E;FvAU2NyB3QXjtqIi~V8G3VI`7SYC=L$N#Xr6qc02l2Xq!3M?sw9fV*9 zAx3cJe{D%A{~3NY4i5gyrfXJhjfPFJU{fsE6bmbUhPlVgR2rCjjHS}Rf+ps50W4@@ zxZJ{vD^nkxOs z@{1zjf{~xGL2lDpg$9es;Zz!xBJe1y=d*`R0YKfik(~D^u5`&&VJme@&ouql!d3B+D^4uPt2lThZ&6!7G7b|Ptyf8n z4*8ji!m?sKyqQzfRGC>-5pGW6Uv1MxOn6*4NkkkX~u7n4X(#AsglY$WoPgopt z1WQ$jA2(}T5xAf|_woa_`5L$rggr60CPZ*jq@2HA<($rj zF3iFacS4tN$krk~hq$*_qFYe0Kr}ja+qSAKXU7zFFDj(lbu#7Z6xIPj#y??kOK@G?p{2q3W7Qe(dVX zr-U4mul&H5evc;Aq6ke#Wqb3xm+V=)x}+1!yL;q<&V^El`~A$V378Lx9t6fd2hGu?Uj)X!XGJl_I*u>%!HR+?5;>NrBD8@*a?J@ zO7M3Ro-2I6pF*bD+$<(1bEa=RjE_>dh@97@Q1?%t4;^@h9qlDu;rBg4J<8fYd;}l6 zwM<4;_cTSKhoR~*K72%YH5G8qWbmx}uQV!{rjsWw=kfPg2V?Ptr^n;)RSTo@z9u@B z%z24W_pse@%&u^1%_e#HE1sCN(79bQAz$n3+q!lBK3>rtzH?cTw*8-?G}_L+s2Rp6wyoJLd1}Rk%4RIihfS_U-qJI({rF{j7xnxK6Ni z&;lw;E#x6z2yXmNvf?9i#DY6F;ma8_!ou z&R(O1AfnE~i$XD1lVFG&(hx&_L{aagkM;(�DA^(AnK}Ns+_MU6n;S#{Q{Gi*;6X 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 ZoCM0I0UZM%TsSyP*P5@nYwUFN{{g>v1Ni^| literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..e33fbd3d --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file From 75eb200edcdc6ad99c55f04856a90158e7b3947e Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Fri, 20 Oct 2023 14:13:59 -0700 Subject: [PATCH 27/42] Add toMargins(insets:UIEdgeInsets) (#199) * Add toMargins(insets:UIEdgeInsets) * Improve doc comment and test name Co-authored-by: Christopher Fuller * Record snapshots * Improve doc comment Co-authored-by: Christopher Fuller * Update doc comment * Fix * Fix --------- Co-authored-by: Christopher Fuller --- Sources/Layout/LayoutItem.swift | 20 ++++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 19 +++++++++++++++-- ...InsetsPriority.iPhone-13-mini-portrait.png | Bin 0 -> 102141 bytes ...InsetsPriority.iPhone-13-mini-portrait.txt | 4 ++++ ...lEdgeInsetsPriority.iPhone-13-portrait.png | Bin 0 -> 109379 bytes ...lEdgeInsetsPriority.iPhone-13-portrait.txt | 4 ++++ ...alEdgeInsetsPriority.iPhone-8-portrait.png | Bin 0 -> 86059 bytes ...alEdgeInsetsPriority.iPhone-8-portrait.txt | 4 ++++ ...lEdgeInsetsPriority.iPhone-SE-portrait.png | Bin 0 -> 65633 bytes ...lEdgeInsetsPriority.iPhone-SE-portrait.txt | 4 ++++ ...alEdgeInsetsPriority.iPhone-X-portrait.png | Bin 0 -> 102473 bytes ...alEdgeInsetsPriority.iPhone-X-portrait.txt | 4 ++++ 12 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index d8aa54f9..31063ead 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -401,6 +401,26 @@ extension LayoutItem { } } + /// Constrains the view's canonical edges to the superview's margins with insets. + /// + /// - Parameters: + /// - insets: The canonical insets + /// - priority: The priority of the constraints + /// + /// - Returns: The LayoutItem + public func toMargins( + insets: UIEdgeInsets, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let layoutGuide: UILayoutGuide = layoutItem.marginsGuide { + for edge: CanonicalEdge in insets.edgeType.allCases { + layoutItem.constraint(to: edge, of: layoutGuide, insets: insets, priority: priority) + } + } + } + } + /// Constrains the `bottom` to the bottom margin with a minimum bottom inset /// Useful for bottom-aligned elements on iPhoneX family devices that require /// an additional bottom margin on non-iPhoneX devices. diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index f1513648..d4dab743 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -546,16 +546,31 @@ final class LayoutItemTests: XCTestCase { pinkView .toMargins(insets: NSDirectionalEdgeInsets.zero) blueView - .toMargins(insets: .zero, priority: .high) + .toMargins(insets: NSDirectionalEdgeInsets.zero, priority: .high) .toMargins(insets: NSDirectionalEdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 80)) orangeView - .toMargins(insets: .zero, priority: .low) + .toMargins(insets: NSDirectionalEdgeInsets.zero, priority: .low) .toMargins(insets: NSDirectionalEdgeInsets(top: 20, leading: 30, bottom: 50, trailing: 90), priority: .high) } } } + func testToMarginsWithCanonicalEdgeInsetsPriority() { + assertLayout { view in + view.layout { + pinkView + .toMargins(insets: UIEdgeInsets.zero) + blueView + .toMargins(insets: UIEdgeInsets.zero, priority: .high) + .toMargins(insets: UIEdgeInsets(top: 10, left: 20, bottom: 40, right: 80)) + orangeView + .toMargins(insets: UIEdgeInsets.zero, priority: .low) + .toMargins(insets: UIEdgeInsets(top: 20, left: 30, bottom: 50, right: 90), priority: .high) + } + } + } + func testToBottomMargin_andWithPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c173dca7f3d670c2d1a95f515851537296a737 GIT binary patch literal 102141 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..ba7a723ddbf0a957a90ca2ee0541e271650eac01 GIT binary patch literal 109379 zcmeHQc~n!^)=vx#(1tRInt)|8GFU|r5UU78##oV|s8|&P2!f(uwGK=%f=r4)(4wM( zid9<_u*K3kBut`AqNrdkqaq>*VGa;--%TI`$oJO!*8AtZzRg-B7qaiYC+F_7&p!M2 z+xx`1taVWMRP9p?2BScAv~|N^WSAI?{2Mtu`k(cbuW{%bcCVYmD$LEQx$Wp52Yo%L zeoju91?aIHMh2^f`9vUs{#s(y#mDwoeT?u_%nS@BCIBNdA+r{J7yQ(rzk+kd-*Fk( z32F3y88bxEGRzE|=ve-Z;57RXzb)vSe6Zujy%>!4GQls_?gwKU`p>xmw$AS8J9yG%-y+_b3JxlORX90sd~=Ishs;)@XKqd zM~mbXD!8g)Rm)RlI2~3<9$5=3?`S@Ia6%IcPgR=!v#`}{ zt@dx$M3ASwE-k5e@{L5dXJ3^eFfB{oI81HHxB#9?fZI*&8tBaFbO}^tnvnvk0;(c5 z@?fGxvyPNfzyu`L4=MWrssgGar4HyJOs|vsL+F&j^eSaZ#fP9OpeiEs`L~~5M`WqU zV`Q`u8A&7%X@{|R>6eTG_SHR=tkHRqnfPt|1VfuipQ6J2Xa@a&eSiB_zoa)dJax@W ztjnxx1O>Yh#pl?fhcDRD|#P^}3uY^bJ zMk7vlRjlP$Ie{4#OMh+Cf1v-slpFaQaRN5?b@Lx;UB{lGUoKCY{M-&RSYAzy=as`p zQc2`tCFDWOyY6@0Q*KmEYpThA+c=g?al{GSHk8Gkr^ddHE#k`UJ#U_ru+WZ8? zCyh@UlPBK@6y$H9Ag97(ku$8*$U`Y*X1v1lH@zt34)IxZA539AD)3rl3T`P<3WD#@ zI7352+r_7F)A0m9f*(48Lh~S66wKkb`<%naxAxjd2y?$yJfVoFH3LwyO>Iws>8Z`S*Ng# zitmEPWRVwE=il&p>5W>~J5^jw_0^=l1&tlttoZqyvXF1^bQ&jBmSVNC0TuIEH$}{P zCK9Q8KTEd%H-03&BYo|65yPyYB=`Ms`coU2&ykJ!%=ex_q?Hl3JTfC)0~H(0T`)x~ zBMza=-1-7HvI!|*4LIw4#o{%Zqn%>=QKxL?Miw2t)o`*vlgMkOR68f4Vxu0jru1EP zF_ICtxC1+O18Hg;xtelrE5BQvd}@nMJl+l`Z4HQqyn^Oc8-vQ46bbxZt#?;TQL*r> zsbc;u^y=c&fy4Y4bWYG%4Yg`9GNiyPGgP*Vyu^?;9E3Uirr?WN=Dr+RJpGVTf6Z%D z%yRuyG1DF^|CaI)YkG$j_cwk!xh)kL#Z!G#V=qyjOfuflpV5Q!U0$Ru;o>4$7IGu) zJ*b%G&r`+Day3nRd{<_$1~hq_kbTU)awI%5^VZk4Pcr-`O(;c2t(I-p?{FgV7zJB3 zWXAdrqGE~briwZ76wh*RX;e3kDDrR6mp>YAMebAFUe3QXRj-;0HRl?hoX|hTBdGqN zVx>P#6$ADAf2kj9ohfgKPMC!xW2KZ8vBDu|mJFNoFaKYoCE|7RNcwg)9a5&TM2k3T z+`N&yS&7Dk;m9H-JTl7qFd`h;5xWa}zbABOuXIOVhnvn)S>h$OdHK7WYTx(ygjXZ` ziwv(KV_q?x{BGY3meFTYv%|h98r!LOio!(J&6a9iA_H0DFrbbYd-Sk4UKw@P!^8(# z*8`OX)Dxc}7JVbgl}897TYzvhNn*={{LI+;^W*XnqD^AUMcJK58@X7fhQ(&218FTmULj^DB;%2R zWIbyMaPbvb=4CI6ZmDJckm&Vx;LEM0mWBPXft>~_s_|0h^e%qsj-GwdZ!JvQN<(b$ z@d_tVY2AfeOAU_+rPUfPQFNtxsqR`y4Jlf##3ssT<-(r}b_^5!cJq6`@0_K(qm( z&A&yoG3c;4BB})d#4^!v0!G|82N9@zK%Nv)@WJ5%hYK7o(F}pIrvaS+bOO)`Kqmm5 z0CWP-2|y3#4k303Ir>msKv(zJB3Ty<53@ro4*<=kuj26)(I{Wn`sWtW zV5htS-9K2bD@xoL+Pq^|O$f^IF><9L9_u5Y_ZnBY3us`FZIg9Ui%k>8Soxb7JrZTGmP$ z1KkbX4cd*42L>1uFeYHTC-&fAB*0V&Q>74<0M7&*LGZi(_x$c(f+~GPwE$qrBbCem zD@<5n!h#;+C&C~K#7`i80`U`wpFl7cV&4EY0Mr1;4ghI@TaM$4fLj7gyluQ54#Z3# zW&$x2h?zjl1Smehs2X>VfO7%_HsA{aJrn4ez=j3#F>t+w)H{foK+FVUCW4^=nGBFP z0(m;3j3nTh0M7(?CcrZRo(b?wfM)_c6X2Nu&jffTz%zkz1Xa@8&;ic`cqYIz0iFr) zOn_$sJQLuVK%pe4O9f@X{_QegG9T&}U@&udR9lKWRA7S&Y-qtbD0m0;1);v60G@?% zj!-=lij|@R0SIhR8y14G6BQJJzy_6%q0qD_0)@o`fei?3Kwv}10~DHus`ao*fM{ZX zLesD(gU$E`M^I?`Ke*6z9|nU#5b{?;R8dXf&c9sa=NYTWRR2+}vAz3s+R*A8{ITA2 zS=r{WPrNOkrwnABT-9}-|7SYF8|n_K&cDfG6>~$g;uOrpD)xEG=0STcFX@V?R8OIUgyr&}POD1~a@YCMG`pNa>s&@J(LTw2w(b10&o0y?yjoCL z{c5{m}BD3(ss;icA|8f16<&`)ix3j%titQB_XX{oHRgiaO_C z8zl{DA2<8yIeFI)&qVnh0>?nm3d_#9{7E|gU=O}t*x!%wX_$3oBc^HIq zc<<3ZuQn~O;xwZpj0Wqx6-RqYZ@-$IiS{vB{;8zXh!cIhtBq)ttrg3dgFBKL{7Lkc zoH*UQwtap38Z55Igoqz9ArO~4Hk`9JNvUOi6sIec71tkjpqbcO(_Z_2E8k*kaT47p zVTTztZT=*+GgW$(uJ{!qmn7q86_8;Oz42$-ut^{`!E6DAsg)qsx5JDy#?JHCR9@>T z))rOmZ)k2x%Cd-7CZAfge!Mlm#&e9Mo?(;Vx~b=VqI4r|X0GpM#p?<6s0{Q7^a%85 z!Ww`*0(%7W8q90pAAx@a{t@`uf@K)^*|1)N^%|`E(bx*C`^E7wh#yJfJP<#EI3&a& zAr1-gY=~zAE&{lSz)1rC2>c@fP7C-N;Ix3#il`5OuK~UW_!{7A;2#0L2KXA_Yk;o- z9}@VGz^esbE%38}pAGzM;Q0g3AM!;YUqqC019?Z|Jpuj^_($L$fqw-45%@>oAAx@a z{?R|p%P!t57a*zy06E&gMS@&^$n}Ss5s=FUwMU@#2-L6{uM-5hY>>+awUD3|64ca! znp#ks4QjJNjlYSSi-5HO)&^J`U~Pc40oDds8(?jKwf$494e&L<*8pDwd=2n5z}Em@ z1AGneHNe+kuMya51oj$%J!@dk8rb^?_CA{6nLsYvcq9$*HNe*ZUjuv%@HN2K0AKrW zz}L82R}9_OxvugF_L+0GReH*>i%Z;XxsU~Qd8t~snmK8~XHs*vi(oP=en0;9lP~A5 zEjjKT%_zhdnw8a;CwgUbFFKBt6}MK_jJ&04^oqH+#M5|{`A_fusB$qlt~yY${5|7& zi&@3oBRe!JH45u&&2*{9=946)gpG34VsAW7`w)3jS=Ltu_x)$j|6EkTGX8Y7)!CI6 zxpAwLGo^PTrERCFulT9>x`%6)kxQL*kD7h5dsgh~HEw-p8!Qr(Jl9HHIScRI(dRu% zyyDROG%~M^-bYPVU7JCAUuS#8)|G55*#jrXBqzbsV9x?SRTF~hQl*=&U7ity&=N(v zryFz)gD$)DV8faUtmK(a?6{K^odrQ9k@1euSBXg`8%r8Ak&yCx$ zhB^D|C6Z@DqnQcLdWq;KsR}kDJ*Z$}U(n+43)Xb0s{vCrKnnNiBn0|6oLWZzZf|{H zP@Be5!$9UZIa}{2HjW`SM@)c*MbY&G^jhHJckOZUkL;qpc{}EjK{RRi|?2 z0_9Irbys7xoLcPwty!u@HtddW0M-^1Fy;P|s@z;vUX4&nPHFC|Z zCnZ;A@6ft!x%hUXYly1hN{>*!dAcgKS?27;6He}{RqdpA0$zc8_3o6)Rd0LaB5N;P zvs!CcYiZ5~o(nnLx25-OKzJWn@sLFQ*Wlt*0zAKobIG^$za8T{z~0fL=Jz=zFVRoY zEAWz9N@fX@AQ^~64~60vZIy$Rve?KaM;Lz`-SJ`e1N!YPyR74#+~di1YEnHh-j3~g z;m6ZAC>OJ1uy$_C7=DWaC!XF%?Z_QC^hO3US_;O-8-?$gnRqdQODN!7ee?|B_Q z?<|j$cI^Q3AJoyoVX%dZEFil{Zz%-3p2QW>Or`*4f*Tm7xTO+Ck03H;0P~brcmj~cM z!Qu`UcapUd8nl4L-T2C2jbNDui#v!rLEH)AP9l>4aVJ4g6}%?!n!sxUuSo!CKu8?W zIza0Htpl_U&^jOz0FeNQ1j4l<5D9?e1RN(U3M&K0X@b!M94Fv70sRu_mq5P+`X$gW zfqn_haA1Z5GaQmuAZbOgOgzkhq!p=L4oF&oq!q}gBS1bKd1L7P<28&R4k{(!=_CdaWR5O1_m{ICL_vHC6_2-!-b3>02#IjiY2+>8C zXMLtRaB+EO%*z(D<2u*tigxa)-oB^F^G>a3rHaAPNjU~c-N`wxYJNY^wWUYn5t8iw zL7Tr*r)Ow3Ng_t*H+I>j`MPc01tX4E#=(>~=FIrK+S#(S~gUIVbW0A9tynA+d@m(>vaDuxa`TCR|ntZL_KpsxW^!|`nLP;-S zgnsZe5oe6^eAz$pe7^AvbZ%?-{Xj`5nFXB(o%cVbc~3o&K5M!~wFO5!D#nL7hpr|l zTfnsny4k&pBUO1|JROmtrw}DbD<4v)I(u{O5e%hl&G-d^{hD^C%;bmIJ$+d@V612* zH9W^COWCLKFT*~=xZ|{z+cAr}-MqHcg7;AyIhl-L<$XiF@tJzYTu=NQDFZxC zrCeqb{M#dW`aPZY&bK3{W74IYCzQBgs$_Vi%hNNtpNwxTZz`17w27nb_^zd2HD_-i zpReDn*~gI>pNZD8Q}Bg$)%E3HGA|T2g_1T)D4Y{VO%?2VT|M4FeC97{9X=WnAGPt| zQ|o-WKSB@LJxw8oEsp%`qmDjD%767HishNSZ~xx#ilWCKwb5BkZVu(Z;%vtdmB?=2 zV6Trl+5~qX?Hs4}OJ>#Xn~8_Gq^auAM8!4hyz6S61?e6BhL+yceI|Nl5|*x ztc8^vGQO7AXBw8gNtyItv4AR-Fx^>L`OT}XllK|urjx~@(ig~Z^q%HksA!YhjQGs2 zjfcsS7D!(Jt%Ubc3x%Jjs<@E1#6QxbPJ3B>CUNTb8oz4($-_GBZfh*5AAfOyKyvYv z-k4|$`-+SzHPyS9I(=i%3Ubn4R??k@^D`X(P)%`WPJ3Awvav)|`U1fQSi7fJPKPlk zKbncg9M*{w9Zmim9^EwE36E}?kpQD^8Y2dyPTB@d3?(p_)0lji>!z8lVXm7z8w=-X ja8o{ZwEm;q6b6F%f=JR)9=iA|2K}Mht+l> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f7e94fec406edba19a8b9ca3855886362a4eef GIT binary patch literal 86059 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�0kpL03uYBi3m-)59!_}7$Wq^E4?4a#OI?W(ayrIz?dqBC(-&o zn+knWlBjbIIupr%49*sfE}I3wSv3%x)sqP6vcN{2 zz-1@X(ARzZjg4M`n$uu$x3yJTNH!U$9jvQpeI2>_sK_EVvx{GQaj}J*`&tWTz7sEYi9UlP_(Vtjp^B- z#B9u@^%NkQn2J$CqxF`(1}<$f)mj`-twk`ZH3ar`pOdP!`(dE)v%ILYBJLMppDmzT zKalZ(#N`rqpa|17xzWy2MU8Ye@u8qnx@%2(4DY}eaNen}8kd=CT}}sBYomg?h1VM) zVRjM`{dCoWf8Di7t&oU*6c+bzUj#&SptEku>(a5INw7yKug|*T{zLiSwRQ#f08S_{ zXy^L&vYsf{zGc7_euA7(B9jx^4>_TlG*0MNaRo`YlePuJHJ)5iz?j5ZCnEcxgAa7N z_9oqI&rAs((-O$F&Z=0HW&Gk|!nUY253ZE%>+|*D;8>tyVz|bNktL+*5&C;+afnAB z-wScGz+Qnf`~{C*{$y%4%U@1}wQ0SAWp;3U~&5uz-HNlE5SSbR4vmjvb>x(?rAc+fP zTc?5a<^Yl|Z#ZBTQ>Yj=be3zxO5olmW3FZ6*I&jk*WrXP*~peY;v1!4UMET02df|U zO(yvLevPKViZht7;(ZWStl6cgK4>ov3RdQ0iW55>``mXNZvu(0&IIiszB>%#Y^B86CpkHB$FOm4e6oHG8;EY=P%DI9ygK16QCt7J#V%BXD-HSnopr9x5 zL*YI_@w%Xeig_bg(Ls<0(6b<5_*fx7-!4F)mu;Pfy?VeVL0SY-i>Vku)F?^pD{yI( zf!9$0c+HOiuQdg+nA9y}SmvzXuJ?T%m9a_;c4sK5_K#~cjd1gXi7l>%*kZV4Y7BAf z7E6^dtv6LCUu$(2w!q?#NwD0B>_UO=542yy=~9 zGQ+F&OA+z{?1v=O3Wfke6fD5YJbru_TBkk&_Ceo&LWHO)6Cvsk5u%r92vH>%LYAi6 zlU+4Qr7%|Tna=DhGe}(1QfW+V?A*=`- zt)NmRR?s$?e*u>^nRwt!i0MX2wpTB}81K88*OL&lrOcJ+C*7+>P_88(?CAQv%tasyH)e{i&43u%-wBPSd4Hf9mWV>Zq@I8en!*Z$->%E_t{Es1gc3n05rh&!0w@uL5yqwER8L6tgAC1>U_sEDev0QPE0##m zOsW}w^?44KE*~<-Vw2dC+UaNgHPl{T# z*0{%{PUlP;<@Z7SI(BZ-^KN&agX4@_^QHYmG=o?VVkU9O>DspRm%C?judBizusq#6 z0ADZF{rbR}Zw2ObEqG$~v`mQ*W)RoX2gV71X`XA?^YUgiYn$zc0~wkV11r9h3SFBD zy%!1P+rjq@{{AG3mp9qAAwOk1ygX+CS*eF+Z=~stbYRi~Wb?-kU5Y(59&KuHm_{Y;hYc`*~@>xYqTkSl(TP~Kx ztZ@f$RWBT}?25)j0zuM!xmD8=IPP@*uQRY0yza9}{2Y^L1*l@!SiB&|_yu@C7#V{=4%%Rtsek^ODC=@I z@)!DGATT6qW&$0XdT4Sn-8V8P> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7db75c5eb53409993d885c107d60ced5fae068 GIT binary patch literal 65633 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 pG;ULE6Be_gf;O7D88SNu2@juWI|~_b`dj$R*> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..09d8b47615df32e6ce72050a42b48b19b563f727 GIT binary patch literal 102473 zcmeHw2{@GPzdy!1mXJ`{3PrY(EmD?A8!DtiktIplOOz~Qvb2gqlCr$*QOHj!%4AQZ zl2FMKQj{(GnEBt&GxN-hx8+>d`JZ!s=UmtQURN*aG0%N}@9*ck-QVSerTKb6eo1}~ z4h}(6lQmWx9NexP9DEVHc<_@0AW3d%{1usPY<1PmOQ=)%G zzONeIJ9Bmv2M2+}bj_-*hdF!StvctL6D_~Pt9$8<(Jd<**4Kobn{E1`zcf8*k#?s` ze#Jv>@@pd1!<4`!5*x-XFU!ei!umE-u|IWKbe__*A7cOB?--*gjQxfE_ee8E`jv)O zb)Sj<=>x&z^IgS%ei8V&jC||nuJD)hlz;Uy{VH|#H!vSDG$CK9=1E^^^{dq%j(28l zg>9k1v0>|zW*Q&5`p@km&-5#m{A$%AW3rqvnlcgJP1xy!eQ4|EDCUybN!Y&%Y}b&t z`Rp%f3sx?G`_<1|!@2dVf`uO~RQT1F*Gu5p-+(KW=8w%N%2JL{63=c&<&z5EhLef{lk$*ib}{9j%y96qw`&ZO^QCP z9z4{4i23>SH;rw<$r#E6k438YuN0vC*w*oh*tfa-*pHQl@NirX$Xp}Z} zrh>yew4$Z$)A|Ge?aknMt6-YLK*F`f5=`V$8^YEL#YhW?NsWEUsH~uUymETI1ns#L zt!E*N`Recj9c8${CjE+cI1d!!W6DOIJ&o(TX%|1yE|#z)5xHfVlVzy7l1y@)_{2-g z@wlkjmaZ%bxY!M%fuR&Op388BAHqn*Jti~sm&%Y`VR?;|BKj` z7UKEBrJo0H6nbv#%K$Y|(^aN`i*jg2wtnX`=4+i~sZR;^Iu_%0v~Xfi>XVbfls<#1 z_?-(b;y2;g1R1d*Y}J&E^qc2h`go#KKa(yl+rntxoab-ov*;pFY9xOAd6zP=huH5k zRcCWHhV~e2Wy6}fw0%tCi95CSNvhwZg@+$$x>V6RQy`RbbFl6ccy&l7e}Bso@?g9o z^Yvk*F&^ChCjCyIshQL}#0izbfud2REdeL?N@@$T$z#e+9DbPSYq>OeNSs1?8Y8nU z^hhCibXo5HV?Sn{7#Nh{!NPUbU zUbl?osE~>I9M89;uwIXEmk}s+9f~g+HX6&PGFW0`lfvIWpUxZF(^ZeL)7d)yWnjK* zm7(=tV|{a+0;}SfuO|~I;iLziDTDb`9@<-@klEv7EkW_h1#7egFXEXz#)+riF*5jgWn)vtZ4O#9*J6u6O{T^ZKTcE^PORBNeM@U?nYfX)K!z3+ zqv@J>{Q9ao=0oaalo@F}Jj3_&VxG!~Q^q!T-lzbtp0u6aT4Wd2scgY|J#JtozWrWc zRm+47#g4|%QP+D#UTN=@Wa&}yu>!onS6XYDgU)A-FF1J42&%=dqyWJL?=8m47L(`Yk~ z(gtKC7_yCQhf5uP8HeoLj&c9mbLuHchiJ+(buGd3umC0!1Cwi*p}4V4k~ z4;=1rN^2xnScn)Igx-BT*tvPnHQ(_f{>M{A{LgHjVCx|htta07=ys7^I=?ceCOi|L zfh>Khsv##vefHUCgH1=*on_*(HIEeiMCY>eOTqB(IeMq)Yu~aRJp6nCc=&O{UyXep zgDl?HnRs_Fid1-5)<|dOJ;}`TM*FI39G{#CiMVy#vv=P)ZBuL&9Jnk&&mVbT1j4<= z560AN2f9Ux`1(SX)sr(j=O7P1RwIWx##J!IclN7>>spA08P5rft#`_!n7VjV2mN~& zZd|+D#Uk#iDf^K+UCG+yCVsFaEy(l5uCzwNcw9Mhn!Wc-z{7q1oFkJL^_j4y?{FG9 z{Du;<)JK|8~yo-B%C9t?elm8Wcp1Ok_exM-Q_QJ`^@{~oU zaivVk^}i#pb4-4r-W|1SwDD3IA%`@m7=3Foc-ZwUc=%%vSMTVuK-R&aJ0v*h$I2x0 zY!|eCo~qr|wbZe~uz2eloe^!*i}EbWHQ><$U!^PXsG@5z{-j{M(Y}qY%8nIkr;vvo z<~kK+J#%4VjlRRdb`qsgztTN>2iT!5aeT$dtm_Nz<=ilREzhD{p$`4PA347?&~ekS z^h^T>uCif#MZor};Nj6n9FrlN=Cck4-C^w9nH?2ftE|K8!44meKWDP^xkV?Kl!Gh{ zSsJo5l+r9&1En;S($MgLh6ieVL&F2w($JQEp$=_nhK~*1L+BpDhzE>#paBFDjCjBx z9t`41;9(Gt5io^uX&9G=acOwfg5LSStCmghsznms9>Uv0?9LNjh{FqUcp(mRJkUfB znBxI+JYd?An>b8c!t(t7Eon;zhqiyldI7+!JeZY-<{iR-9t`NgL{pe(>IHMBVeT}{ zordKASP=s(2Y?kWu)+maxS-}SEZTxaTd-&g)*&*h>0liqtV4vQwXn1nz3+ylwXn1n zme#`3T3A{O8z8`*9-MfX?*a2YV7>>;_ke9`VCN;+dC3X7htNHQ?jdv!p?e73L+Bnt z_Yk&xgk4OLKCQ4E;NMyf080R12>>hsfW4;wkM^3T8LbTP#1VK)IDBb$oH_DO?Cw-j zPU%W%lrC8OTDYk(c|Q5cQudzQ9iTVlxF zx}2#At3mk%o$Rxq*Y`-WN&N^y&qc7cCf|pXLdez~^>03V)fgCiSsWDp%_e(*!fzV1^saaDy3c zu)GvrMq?E;FvAU2NyB3QXjtqIi~V8G3VI`7SYC=L$N#Xr6qc02l2Xq!3M?sw9fV*9 zAx3cJe{D%A{~3NY4i5gyrfXJhjfPFJU{fsE6bmbUhPlVgR2rCjjHS}Rf+ps50W4@@ zxZJ{vD^nkxOs z@{1zjf{~xGL2lDpg$9es;Zz!xBJe1y=d*`R0YKfik(~D^u5`&&VJme@&ouql!d3B+D^4uPt2lThZ&6!7G7b|Ptyf8n z4*8ji!m?sKyqQzfRGC>-5pGW6Uv1MxOn6*4NkkkX~u7n4X(#AsglY$WoPgopt z1WQ$jA2(}T5xAf|_woa_`5L$rggr60CPZ*jq@2HA<($rj zF3iFacS4tN$krk~hq$*_qFYe0Kr}ja+qSAKXU7zFFDj(lbu#7Z6xIPj#y??kOK@G?p{2q3W7Qe(dVX zr-U4mul&H5evc;Aq6ke#Wqb3xm+V=)x}+1!yL;q<&V^El`~A$V378Lx9t6fd2hGu?Uj)X!XGJl_I*u>%!HR+?5;>NrBD8@*a?J@ zO7M3Ro-2I6pF*bD+$<(1bEa=RjE_>dh@97@Q1?%t4;^@h9qlDu;rBg4J<8fYd;}l6 zwM<4;_cTSKhoR~*K72%YH5G8qWbmx}uQV!{rjsWw=kfPg2V?Ptr^n;)RSTo@z9u@B z%z24W_pse@%&u^1%_e#HE1sCN(79bQAz$n3+q!lBK3>rtzH?cTw*8-?G}_L+s2Rp6wyoJLd1}Rk%4RIihfS_U-qJI({rF{j7xnxK6Ni z&;lw;E#x6z2yXmNvf?9i#DY6F;ma8_!ou z&R(O1AfnE~i$XD1lVFG&(hx&_L{aagkM;(�DA^(AnK}Ns+_MU6n;S#{Q{Gi*;6X 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 ZoCM0I0UZM%TsSyP*P5@nYwUFN{{g>v1Ni^| literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..e33fbd3d --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file From 8cf6763dd45e998ecc194c2a7c19b453a5297e35 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Fri, 20 Oct 2023 14:29:18 -0700 Subject: [PATCH 28/42] Add toMargins(_:inset:priority) (#196) * Add toMargins(_:inset:priority) * Improve doc comment and test name Co-authored-by: Christopher Fuller * Record snapshots * Update doc comment and test name --------- Co-authored-by: Christopher Fuller --- Sources/Layout/LayoutItem.swift | 22 ++++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 14 +++++++++++ ...sInsetPriority.iPhone-13-mini-portrait.png | Bin 0 -> 99863 bytes ...sInsetPriority.iPhone-13-mini-portrait.txt | 4 ++++ ...lEdgesInsetPriority.iPhone-13-portrait.png | Bin 0 -> 101486 bytes ...lEdgesInsetPriority.iPhone-13-portrait.txt | 4 ++++ ...alEdgesInsetPriority.iPhone-8-portrait.png | Bin 0 -> 83981 bytes ...alEdgesInsetPriority.iPhone-8-portrait.txt | 4 ++++ ...lEdgesInsetPriority.iPhone-SE-portrait.png | Bin 0 -> 66389 bytes ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 4 ++++ ...alEdgesInsetPriority.iPhone-X-portrait.png | Bin 0 -> 100163 bytes ...alEdgesInsetPriority.iPhone-X-portrait.txt | 4 ++++ 12 files changed, 56 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index 31063ead..abdb64a9 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -421,6 +421,28 @@ extension LayoutItem { } } + /// Constrains the view's directional edges to the superview's margins with an inset. + /// + /// - Parameters: + /// - edges: The edges to constrain + /// - inset: The inset distance + /// - priority: The priority of the constraint(s) + /// + /// - Returns: The LayoutItem + public func toMargins( + _ edges: [DirectionalEdge], + inset: CGFloat = 0, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let layoutGuide: UILayoutGuide = layoutItem.marginsGuide { + for edge: DirectionalEdge in edges { + layoutItem.constraint(to: edge, of: layoutGuide, inset: inset, priority: priority) + } + } + } + } + /// Constrains the `bottom` to the bottom margin with a minimum bottom inset /// Useful for bottom-aligned elements on iPhoneX family devices that require /// an additional bottom margin on non-iPhoneX devices. diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index d4dab743..1bfa0e20 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -571,6 +571,20 @@ final class LayoutItemTests: XCTestCase { } } + func testToMarginsWithDirectionalEdgesInsetPriority() { + assertLayout { view in + view.layout { + pinkView + .toMargins([.top, .leading, .trailing, .bottom]) + blueView + .toMargins([.top, .leading, .trailing, .bottom], inset: 25) + orangeView + .toMargins([.top, .leading, .trailing, .bottom], inset: 0, priority: .low) + .toMargins([.top, .leading, .trailing, .bottom], inset: 50, priority: .high) + } + } + } + func testToBottomMargin_andWithPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..5f6b589072d895c6533a3ce7c1a96c297731d317 GIT binary patch literal 99863 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..bb18951e --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..7295a818a892e4c8f2a4bb3a3377f77c66035660 GIT binary patch literal 101486 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 + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..cb08e043d6660f76640247bdadd57c395a091cf8 GIT binary patch literal 83981 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 JElbz${|Pne2t@z@ literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt new file mode 100644 index 00000000..c385738e --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..19b67f8af33960fd5a3eebf07ab630a62004bdc7 GIT binary patch literal 66389 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 W{U`3vnSp@+RxNY<>c*F>1OEpfw&Dr^ literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt new file mode 100644 index 00000000..2fa2020f --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..3d5d894fb8d2fad072a30492a20460e039811418 GIT binary patch literal 100163 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..fab5e749 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt @@ -0,0 +1,4 @@ +> + | > + | > + | > \ No newline at end of file From 07ed50e57a6f39892991133445de233020b1f7ff Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Fri, 20 Oct 2023 16:44:44 -0700 Subject: [PATCH 29/42] Add toMargins(canonical:inset:priority) (#195) * Add toMargins(canonical:inset:priority) * Improve doc comment and test name Co-authored-by: Christopher Fuller * Record snapshots * Update doc comment and test name --------- Co-authored-by: Christopher Fuller --- Sources/Layout/LayoutItem.swift | 22 ++++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 16 +++++++++++++ ...sInsetPriority.iPhone-13-mini-portrait.png | Bin 0 -> 117046 bytes ...sInsetPriority.iPhone-13-mini-portrait.txt | 5 ++++ ...lEdgesInsetPriority.iPhone-13-portrait.png | Bin 0 -> 121262 bytes ...lEdgesInsetPriority.iPhone-13-portrait.txt | 5 ++++ ...alEdgesInsetPriority.iPhone-8-portrait.png | Bin 0 -> 98880 bytes ...alEdgesInsetPriority.iPhone-8-portrait.txt | 5 ++++ ...lEdgesInsetPriority.iPhone-SE-portrait.png | Bin 0 -> 76251 bytes ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 5 ++++ ...alEdgesInsetPriority.iPhone-X-portrait.png | Bin 0 -> 117607 bytes ...alEdgesInsetPriority.iPhone-X-portrait.txt | 5 ++++ 12 files changed, 63 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index abdb64a9..d3fcecd5 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -443,6 +443,28 @@ extension LayoutItem { } } + /// Constrains the view's canonical edges to the superview's margins with an inset. + /// + /// - Parameters: + /// - edges: The edges to constrain + /// - inset: The inset distance + /// - priority: The priority of the constraint(s) + /// + /// - Returns: The LayoutItem + public func toMargins( + canonical edges: [CanonicalEdge] = CanonicalEdge.allCases, + inset: CGFloat = 0, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let layoutGuide: UILayoutGuide = layoutItem.marginsGuide { + for edge: CanonicalEdge in edges { + layoutItem.constraint(to: edge, of: layoutGuide, inset: inset, priority: priority) + } + } + } + } + /// Constrains the `bottom` to the bottom margin with a minimum bottom inset /// Useful for bottom-aligned elements on iPhoneX family devices that require /// an additional bottom margin on non-iPhoneX devices. diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 1bfa0e20..55ad91ce 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -585,6 +585,22 @@ final class LayoutItemTests: XCTestCase { } } + func testToMarginsWithCanonicalEdgesInsetPriority() { + assertLayout { view in + view.layout { + pinkView + .toMargins() + blueView + .toMargins(inset: 25) + orangeView + .toMargins(inset: 0, priority: .low) + .toMargins(inset: 50, priority: .high) + yellowView + .toMargins(canonical: [.top, .left, .right, .bottom], inset: 75, priority: .required) + } + } + } + func testToBottomMargin_andWithPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..ab98c41f482bfd5d9ddbe6fbcfa74517a54109f4 GIT binary patch literal 117046 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 GSN{j?O4?Zf literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..d9ec95e2 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,5 @@ +> + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..ea4f88d3eef33ec364b96206ac5aadbb0c56a007 GIT binary patch literal 121262 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%0DSQ0$u@l1>hBcR{)7% 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt new file mode 100644 index 00000000..5f9bc313 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt @@ -0,0 +1,5 @@ +> + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..ca32736ce56983ef01d083e9a63b486d998cba3a GIT binary patch literal 98880 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt new file mode 100644 index 00000000..74365e45 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt @@ -0,0 +1,5 @@ +> + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..c8e0bf71cce5615879b5137fecb6d3431e0243d6 GIT binary patch literal 76251 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 BWr6?z literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt new file mode 100644 index 00000000..654d06e1 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt @@ -0,0 +1,5 @@ +> + | > + | > + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..d75d585265372d4e2306d2d4805736f1975414e6 GIT binary patch literal 117607 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 yI> + | > + | > + | > + | > \ No newline at end of file From 538e6d9f9fb2b915500197ed4d10b2f72da496d9 Mon Sep 17 00:00:00 2001 From: Eman Haroutunian <104394983+tinder-emanharoutunian@users.noreply.github.com> Date: Mon, 23 Oct 2023 10:01:42 -0700 Subject: [PATCH 30/42] Add toSafeArea(insets: priority:) (#205) * Add toSafeArea(insets: priority:) * Fix docs * Lint * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller * Update Tests/LayoutTests/LayoutItemTests.swift Co-authored-by: Christopher Fuller * Redo snapshots * Update doc comment --------- Co-authored-by: Christopher Fuller Co-authored-by: Garric Nahapetian --- Sources/Layout/LayoutItem.swift | 20 ++++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 18 ++++++++++++++++ ...InsetsPriority.iPhone-13-mini-portrait.png | Bin 0 -> 95668 bytes ...InsetsPriority.iPhone-13-mini-portrait.txt | 3 +++ ...lEdgeInsetsPriority.iPhone-13-portrait.png | Bin 0 -> 99404 bytes ...lEdgeInsetsPriority.iPhone-13-portrait.txt | 3 +++ ...alEdgeInsetsPriority.iPhone-8-portrait.png | Bin 0 -> 79805 bytes ...alEdgeInsetsPriority.iPhone-8-portrait.txt | 3 +++ ...lEdgeInsetsPriority.iPhone-SE-portrait.png | Bin 0 -> 61884 bytes ...lEdgeInsetsPriority.iPhone-SE-portrait.txt | 3 +++ ...alEdgeInsetsPriority.iPhone-X-portrait.png | Bin 0 -> 95975 bytes ...alEdgeInsetsPriority.iPhone-X-portrait.txt | 3 +++ 12 files changed, 53 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index d3fcecd5..a8415cdf 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -586,6 +586,26 @@ extension LayoutItem { // swiftlint:enable anonymous_argument_in_multiline_closure + /// Constrains the view's canonical edges to the superview's safe area with insets. + /// + /// - Parameters: + /// - insets: The canonical insets + /// - priority: The priority of the constraints + /// + /// - Returns: The LayoutItem + public func toSafeArea( + insets: UIEdgeInsets, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let layoutGuide: UILayoutGuide = layoutItem.safeAreaGuide { + for edge: CanonicalEdge in insets.edgeType.allCases { + layoutItem.constraint(to: edge, of: layoutGuide, insets: insets, priority: priority) + } + } + } + } + /// Constrains the view's directional edges to the superview's safe area with an inset. /// /// - Parameters: diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 55ad91ce..2fdb8197 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -701,6 +701,24 @@ final class LayoutItemTests: XCTestCase { expect(baseline.lastBaseline) == view.lastBaseline } + func testToSafeAreaWithDirectionalEdgeInsetsPriority() { + assertLayout { view in + view.layout { + + // To Insets + + pinkView + .toSafeArea(insets: UIEdgeInsets(top: 0, left: 5, bottom: 10, right: 15)) + + // To Insets with Priority + + yellowView + .toSafeArea(insets: UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5), priority: .low) + .toSafeArea(insets: UIEdgeInsets(top: 50, left: 50, bottom: 50, right: 50), priority: .high) + } + } + } + func testToSafeAreaWithDirectionalEdgesInsetPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc215ab0df1d1465fece44a15f36c958df2c6e6 GIT binary patch literal 95668 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 Ad;kCd literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..7d998e58 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..d82af748bce2fee444684d865525956473120b50 GIT binary patch literal 99404 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 i@rA+3|1ZR+s-3xb#(VY;1<5$a# literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt new file mode 100644 index 00000000..f8951f71 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..cdcafdc5bb4d3e372998c6153e0e2001c6a53883 GIT binary patch literal 79805 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt new file mode 100644 index 00000000..77ca2c27 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..75dc387b04e29fb30c97e2c78c546d843c87132f GIT binary patch literal 61884 zcmeHQc~n!^*1t(4D3d;0D+&r$ELLbi5s(5x)e6)Bt0evS%Y_r2EK~a_H8&~ zlYFzvP}}rjXoN$l@uy{iSI+B*Gf&W`80ZtGIoeNL=IS%-J`%09`$p*(UM5k4@h@eu z+ip186TIG?6+6l+kkz$`KIgrf^%=9KEoK?bzpeM_WOEax)l5lBbbL%uiLCG)Ubsks zxbaKEP8q3_KWsC|Kyo5$s6W3?-eQ&p-Z8v1>)4bJIkOU55>NkY$Mp#+XWyr5rrSw6 zvE=1a;mP;O%RtQV3gy)p&D=zHwb^O6`F+-XNFgh-Sb8JnE20|jSY?mH*Y9_RSR=0x zZxon3IhBCP@~H$fd2+qx{=bV0Mln%jhYGprl9L3IhA9id-*W3&hhn!AEV6{;MzfKc zITSj9tUdmA*D?bUT9!+WufWTW-<4ZVCu)qTy^(AWN1K+-sXl?1r*QU@)N+Y85VOhJ zu`45u#jK1Rx@64zS`3Z0$6sDQg~O&}rHxpMa&&OS+^n*L$7^uBWv zVSAT8Uf(EHwLQmHUAbW3$c}byd$F^uLiK|*2mK_P-(^vwhZWCHzQ_HI{QNqN8Tfib zXi$K&Us;AI_Vku|N5S=?P)?PcJ4ZFwxB15Q9jL6j@VdD!?f01b`x1P2Y*Xq5<(XJe z(SE_QD(|B0NkP=R1%kTv)8R_AaoCdDQt>C;5~qaTo*!$PHnwhDI_6iC;>~UoKG<^%$_Q6gVj01{R zAF!8z2??xfU{wP{BiLTS9DP(1Oh{lt0uvILkidilCL}l$273wEOTb+4O2k80mK_XyaB`;>*$a9fUyR!bAZGL;DqmENdn>x zAl?At4IthC_A9so141x>CPTQ=|2bTVh30vyT4_AcpMjugclq?o1%AhD%C21XJL)b) z8OPAC1BLvD=mo>7yy~>yML{u6X@ZTrW=nS8@`#L5fcfs}jTjzITFG?^y^(LY%+9cO zvk=X2W}oD_hIN!bQ8@Pq$&bHQnq)p;V6_bcEZ58JW3@I1yufhHf5=pw1T3e#(h{|r z;kD(IQqYlT&i~LVyFH>m+p9y?>Xzff#p*}ySFV&atJe)}cMJG(2n_Ep$rfPjoarX=k>W)?nE0IEsOv zzvz$$MIHgSm#;{yDRan`7Vh$T!YsZ zXwr;|=Z`A4T0An+7JbbXFXwVa+;{L>US6Wz@WHUyq|wK+xtV53;d4*$Zd7lu%6g{K^4b{wO+iHdTD;Y#^W1cV#!7q( zdd~2U?!;>=nB9X?r;C(ZZ4(OnY#Xo3$^~3|OpUm2I@(;R7k$5|%t`b{HaF{aa``6B z0{&vFtu5YXMD_x7aVGmDvL&qJ`}cJ#Eaq=woBYYA3tB`OGWO^W?f{*@pObs4m4lL49CSXePwheThit3lNqi<J-T2cbPNzA$aLAZeZ!0h;3hFGlK0rFmT)ip9 zbpI%0j~FKoA(@k+-imLpEqM{V8o86#8Dy+VO;!1v@TXj`IO;TH)^|N|cv`Sytkil? zuaV%B@Fyq&P1 zPvo5_q;hNIKC0*u$E=RC9bV_4&N!Xr6$m|qq587`B=IMGUaZwYaF`E-45@_ zrllE8)V_j<>+jvq+F!+n3SyvoE!GU zfHf^|a?ody#s-$g3TnPM!V7+NZ(DWZxr)Iy;URP=L0Vs);dJJ^0xF&_h2xsjwKv-D zhfS?}rm`&RQ)^#27}XIMY*U=Qv16$#WBojfe`zmXU2ix1`%A$sF@t%)p*$U#%&oa; zDevmYV2io?$A=?ynvz|p^gHD3ara!ctiybr?|rrn=kSW>_Hk(=g8?;$RsLoQd z%#dzc88U<8<2_Gu#a}*qv4Qmx7B#VdvA_m)20h|Fzkr*i8{YZQ>SLShxMmX~*cCQ5cyfR5 z8EU_lE!w;=o?ASuD(S>TGI25+sC@q>t)qbbKJJ; zj$A%)LP+zX*iX`zrW>TxmV|Gmrb^0hq5`5lJwA5-XyTb6d3w}Yq^Mr5S9D72VIH=g z*(&u-X;(s<&*^ZF@^0XnZ9?uca)v6sJ)8>%qa#`bm6Dh1e!aTXasx4S#v^>~nPPLz zMDIyT{S9BKoC*9zbk==+d#T;1cYl_&zUTp-j(2weK82}6=OuR>woUz|?FbUYuW7NN z{`%5*hL3!TYl9F0Ap$}Kga`-`&_qBJ0Zn8=eFsehwllDuf$a=zXTT-`HW9FijDuo; zO#}?9U|1cuMq|eUU|0piDi~JbbOugm;B*E~XW)oeYB-D2fg@fx;)Nq#nO_9>iGZI7 z_=!k2jNm5%&Sv0jHgUEH&Sv0j1|F*u4$J!Bu?ilm;IRrGtKjwyZtvjs4sP$`ZvGHE z1F~kED1gJ#7TLrw;34B?=TLrvT0Br`)W&mvl&}Kk>2jq9DuQ3GUK`qqh2Lop_a5e*HGjKNh?{_w9SCJ=-k*3l~-K{UpQ1c<(xng&l)^0q3kTgq7mbTkR zzI-$n@i_3J^9xfv@zpqLi3>@fdoSoJ60>AmclaiGE*s38geAzy*S>(psc@>*Et?qk z6=td^bJygkxbV!G6H4K@YlQ3kk%3zg&U>tvzfnc0`PJ>_s z!T5I-j11bdoI@W>_0cCE6a@6@F4wp9Ae?>i_Pok>oIhAW4?E*DIgj-EZcaZ!UYfXdok7%Qq)haJJx0NAnfRS)aiYJW zWgTg>$xR%rw_9GJ^jB!`KaHiM7Ic2G*GzqTIzk{$nL0yy!MH{zcyxsSH2Dqo(>5ZR z_chxSFEd^^OHG@#HMnx(F4^srMHD3Gb=xAS5O_E~ZKj8FuOF`78oLEcRE;=&wQ> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4ebf76bce4f99a27bbbbc77295c24c99ededa8 GIT binary patch literal 95975 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 r*aFxB*a8P&fI;UrIF literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..ef107a5a --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file From ca52ced407d0f41099d8ee49e1feea7bab814a85 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Mon, 23 Oct 2023 11:00:27 -0700 Subject: [PATCH 31/42] Fix test name (#210) --- Tests/LayoutTests/LayoutItemTests.swift | 2 +- ...lEdgeInsetsPriority.iPhone-13-mini-portrait.png} | Bin ...lEdgeInsetsPriority.iPhone-13-mini-portrait.txt} | 0 ...onicalEdgeInsetsPriority.iPhone-13-portrait.png} | Bin ...onicalEdgeInsetsPriority.iPhone-13-portrait.txt} | 0 ...nonicalEdgeInsetsPriority.iPhone-8-portrait.png} | Bin ...nonicalEdgeInsetsPriority.iPhone-8-portrait.txt} | 0 ...onicalEdgeInsetsPriority.iPhone-SE-portrait.png} | Bin ...onicalEdgeInsetsPriority.iPhone-SE-portrait.txt} | 0 ...nonicalEdgeInsetsPriority.iPhone-X-portrait.png} | Bin ...nonicalEdgeInsetsPriority.iPhone-X-portrait.txt} | 0 11 files changed, 1 insertion(+), 1 deletion(-) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.png} (100%) rename Tests/LayoutTests/__Snapshots__/LayoutItemTests/{testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt => testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt} (100%) diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 2fdb8197..ab4b3ca4 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -701,7 +701,7 @@ final class LayoutItemTests: XCTestCase { expect(baseline.lastBaseline) == view.lastBaseline } - func testToSafeAreaWithDirectionalEdgeInsetsPriority() { + func testToSafeAreaWithCanonicalEdgeInsetsPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.png similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.png diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt similarity index 100% rename from Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt rename to Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt From a8c862f1518ca144419e416c15d0febf8dee2696 Mon Sep 17 00:00:00 2001 From: Eman Haroutunian <104394983+tinder-emanharoutunian@users.noreply.github.com> Date: Mon, 23 Oct 2023 16:49:15 -0700 Subject: [PATCH 32/42] Add directional toSafeArea(insets: priority:) (#206) * Add directional toSafeArea(insets: priority:) * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller * Update Sources/Layout/LayoutItem.swift Co-authored-by: Christopher Fuller * Update Tests/LayoutTests/LayoutItemTests.swift Co-authored-by: Christopher Fuller * Redo snapshots * Update doc comment * Fix tests --------- Co-authored-by: Christopher Fuller Co-authored-by: Garric Nahapetian --- Sources/Layout/LayoutItem.swift | 20 ++++++++++++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 24 ++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index a8415cdf..e8e2ce08 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -586,6 +586,26 @@ extension LayoutItem { // swiftlint:enable anonymous_argument_in_multiline_closure + /// Constrains the view's directional edges to the superview's safe area with insets. + /// + /// - Parameters: + /// - insets: The directional insets + /// - priority: The priority of the constraints + /// + /// - Returns: The LayoutItem + public func toSafeArea( + insets: NSDirectionalEdgeInsets, + priority: UILayoutPriority = .required + ) -> LayoutItem { + addingSuperviewConstraints { layoutItem in + if let layoutGuide: UILayoutGuide = layoutItem.safeAreaGuide { + for edge: DirectionalEdge in insets.edgeType.allCases { + layoutItem.constraint(to: edge, of: layoutGuide, insets: insets, priority: priority) + } + } + } + } + /// Constrains the view's canonical edges to the superview's safe area with insets. /// /// - Parameters: diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index ab4b3ca4..c5bd4433 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -701,6 +701,30 @@ final class LayoutItemTests: XCTestCase { expect(baseline.lastBaseline) == view.lastBaseline } + func testToSafeAreaWithCanonicalEdgeInsetsPriority() { + assertLayout { view in + view.layout { + + // To Insets + + pinkView + .toSafeArea(insets: NSDirectionalEdgeInsets(top: 0, leading: 5, bottom: 10, trailing: 15)) + + // To Insets with Priority + + yellowView + .toSafeArea( + insets: NSDirectionalEdgeInsets(top: 5, leading: 5, bottom: 5, trailing: 5), + priority: .low + ) + .toSafeArea( + insets: NSDirectionalEdgeInsets(top: 50, leading: 50, bottom: 50, trailing: 50), + priority: .high + ) + } + } + } + func testToSafeAreaWithCanonicalEdgeInsetsPriority() { assertLayout { view in view.layout { From 8aa63eed7ca8cde553513940c22ee614b39da30a Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Mon, 23 Oct 2023 21:33:04 -0700 Subject: [PATCH 33/42] Fix test name (#211) --- Tests/LayoutTests/LayoutItemTests.swift | 2 +- ...geInsetsPriority.iPhone-13-mini-portrait.png | Bin 0 -> 95668 bytes ...geInsetsPriority.iPhone-13-mini-portrait.txt | 3 +++ ...nalEdgeInsetsPriority.iPhone-13-portrait.png | Bin 0 -> 99404 bytes ...nalEdgeInsetsPriority.iPhone-13-portrait.txt | 3 +++ ...onalEdgeInsetsPriority.iPhone-8-portrait.png | Bin 0 -> 79805 bytes ...onalEdgeInsetsPriority.iPhone-8-portrait.txt | 3 +++ ...nalEdgeInsetsPriority.iPhone-SE-portrait.png | Bin 0 -> 61884 bytes ...nalEdgeInsetsPriority.iPhone-SE-portrait.txt | 3 +++ ...onalEdgeInsetsPriority.iPhone-X-portrait.png | Bin 0 -> 95975 bytes ...onalEdgeInsetsPriority.iPhone-X-portrait.txt | 3 +++ 11 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index c5bd4433..6269ef03 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -701,7 +701,7 @@ final class LayoutItemTests: XCTestCase { expect(baseline.lastBaseline) == view.lastBaseline } - func testToSafeAreaWithCanonicalEdgeInsetsPriority() { + func testToSafeAreaWithDirectionalEdgeInsetsPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc215ab0df1d1465fece44a15f36c958df2c6e6 GIT binary patch literal 95668 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 Ad;kCd literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..7d998e58 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..d82af748bce2fee444684d865525956473120b50 GIT binary patch literal 99404 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 i@rA+3|1ZR+s-3xb#(VY;1<5$a# literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt new file mode 100644 index 00000000..f8951f71 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..cdcafdc5bb4d3e372998c6153e0e2001c6a53883 GIT binary patch literal 79805 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt new file mode 100644 index 00000000..77ca2c27 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..75dc387b04e29fb30c97e2c78c546d843c87132f GIT binary patch literal 61884 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 + | > + | > \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4ebf76bce4f99a27bbbbc77295c24c99ededa8 GIT binary patch literal 95975 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 r*aFxB*a8P&fI;UrIF literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..ef107a5a --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt @@ -0,0 +1,3 @@ +> + | > + | > \ No newline at end of file From 360f1548bac3084e45a23d9b0dd682b089de2c70 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Tue, 24 Oct 2023 09:12:17 -0700 Subject: [PATCH 34/42] Add color name to test snapshots (#209) --- .../LayoutTests/Support/SnapshotTesting.swift | 9 +- Tests/LayoutTests/Support/View.swift | 100 ++++++++++++++++++ Tests/LayoutTests/Support/Views.swift | 80 -------------- ...ndWithPriority.iPhone-13-mini-portrait.txt | 6 +- ...tio_andWithPriority.iPhone-13-portrait.txt | 6 +- ...atio_andWithPriority.iPhone-8-portrait.txt | 6 +- ...tio_andWithPriority.iPhone-SE-portrait.txt | 6 +- ...atio_andWithPriority.iPhone-X-portrait.txt | 6 +- ...ingAndTrailing.iPhone-13-mini-portrait.txt | 4 +- ...nLeadingAndTrailing.iPhone-13-portrait.txt | 4 +- ...enLeadingAndTrailing.iPhone-8-portrait.txt | 4 +- ...nLeadingAndTrailing.iPhone-SE-portrait.txt | 4 +- ...enLeadingAndTrailing.iPhone-X-portrait.txt | 4 +- ...enTopAndBottom.iPhone-13-mini-portrait.txt | 4 +- ...BetweenTopAndBottom.iPhone-13-portrait.txt | 4 +- ...rBetweenTopAndBottom.iPhone-8-portrait.txt | 4 +- ...BetweenTopAndBottom.iPhone-SE-portrait.txt | 4 +- ...rBetweenTopAndBottom.iPhone-X-portrait.txt | 4 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 12 +-- ...ier_andWithPriority.iPhone-13-portrait.txt | 12 +-- ...lier_andWithPriority.iPhone-8-portrait.txt | 12 +-- ...ier_andWithPriority.iPhone-SE-portrait.txt | 12 +-- ...lier_andWithPriority.iPhone-X-portrait.txt | 12 +-- ...ndWithPriority.iPhone-13-mini-portrait.txt | 8 +- ...set_andWithPriority.iPhone-13-portrait.txt | 8 +- ...fset_andWithPriority.iPhone-8-portrait.txt | 8 +- ...set_andWithPriority.iPhone-SE-portrait.txt | 8 +- ...fset_andWithPriority.iPhone-X-portrait.txt | 8 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 14 +-- ...ion_andWithPriority.iPhone-13-portrait.txt | 14 +-- ...tion_andWithPriority.iPhone-8-portrait.txt | 14 +-- ...ion_andWithPriority.iPhone-SE-portrait.txt | 14 +-- ...tion_andWithPriority.iPhone-X-portrait.txt | 14 +-- ...ndWithPriority.iPhone-13-mini-portrait.txt | 6 +- ...ght_andWithPriority.iPhone-13-portrait.txt | 6 +- ...ight_andWithPriority.iPhone-8-portrait.txt | 6 +- ...ght_andWithPriority.iPhone-SE-portrait.txt | 6 +- ...ight_andWithPriority.iPhone-X-portrait.txt | 6 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 14 +-- ...ion_andWithPriority.iPhone-13-portrait.txt | 14 +-- ...tion_andWithPriority.iPhone-8-portrait.txt | 14 +-- ...ion_andWithPriority.iPhone-SE-portrait.txt | 14 +-- ...tion_andWithPriority.iPhone-X-portrait.txt | 14 +-- ...ndWithPriority.iPhone-13-mini-portrait.txt | 6 +- ...ize_andWithPriority.iPhone-13-portrait.txt | 6 +- ...Size_andWithPriority.iPhone-8-portrait.txt | 6 +- ...ize_andWithPriority.iPhone-SE-portrait.txt | 6 +- ...Size_andWithPriority.iPhone-X-portrait.txt | 6 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 6 +- ...gth_andWithPriority.iPhone-13-portrait.txt | 6 +- ...ngth_andWithPriority.iPhone-8-portrait.txt | 6 +- ...gth_andWithPriority.iPhone-SE-portrait.txt | 6 +- ...ngth_andWithPriority.iPhone-X-portrait.txt | 6 +- ...uareWithHeight.iPhone-13-mini-portrait.txt | 6 +- ...andSquareWithHeight.iPhone-13-portrait.txt | 6 +- ..._andSquareWithHeight.iPhone-8-portrait.txt | 6 +- ...andSquareWithHeight.iPhone-SE-portrait.txt | 6 +- ..._andSquareWithHeight.iPhone-X-portrait.txt | 6 +- ...teWithRelation.iPhone-13-mini-portrait.txt | 10 +- ...tributeWithRelation.iPhone-13-portrait.txt | 10 +- ...ttributeWithRelation.iPhone-8-portrait.txt | 10 +- ...tributeWithRelation.iPhone-SE-portrait.txt | 10 +- ...ttributeWithRelation.iPhone-X-portrait.txt | 10 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 12 +-- ...ier_andWithPriority.iPhone-13-portrait.txt | 12 +-- ...lier_andWithPriority.iPhone-8-portrait.txt | 12 +-- ...ier_andWithPriority.iPhone-SE-portrait.txt | 12 +-- ...lier_andWithPriority.iPhone-X-portrait.txt | 12 +-- ...ndWithPriority.iPhone-13-mini-portrait.txt | 8 +- ...ant_andWithPriority.iPhone-13-portrait.txt | 8 +- ...tant_andWithPriority.iPhone-8-portrait.txt | 8 +- ...ant_andWithPriority.iPhone-SE-portrait.txt | 8 +- ...tant_andWithPriority.iPhone-X-portrait.txt | 8 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 6 +- ...gin_andWithPriority.iPhone-13-portrait.txt | 6 +- ...rgin_andWithPriority.iPhone-8-portrait.txt | 6 +- ...gin_andWithPriority.iPhone-SE-portrait.txt | 6 +- ...rgin_andWithPriority.iPhone-X-portrait.txt | 6 +- ...sInsetPriority.iPhone-13-mini-portrait.txt | 10 +- ...lEdgesInsetPriority.iPhone-13-portrait.txt | 10 +- ...alEdgesInsetPriority.iPhone-8-portrait.txt | 10 +- ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 10 +- ...alEdgesInsetPriority.iPhone-X-portrait.txt | 10 +- ...InsetsPriority.iPhone-13-mini-portrait.txt | 6 +- ...nicalInsetsPriority.iPhone-13-portrait.txt | 6 +- ...onicalInsetsPriority.iPhone-8-portrait.txt | 6 +- ...nicalInsetsPriority.iPhone-SE-portrait.txt | 6 +- ...onicalInsetsPriority.iPhone-X-portrait.txt | 6 +- ...sInsetPriority.iPhone-13-mini-portrait.txt | 8 +- ...lEdgesInsetPriority.iPhone-13-portrait.txt | 8 +- ...alEdgesInsetPriority.iPhone-8-portrait.txt | 8 +- ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 8 +- ...alEdgesInsetPriority.iPhone-X-portrait.txt | 8 +- ...InsetsPriority.iPhone-13-mini-portrait.txt | 6 +- ...ionalInsetsPriority.iPhone-13-portrait.txt | 6 +- ...tionalInsetsPriority.iPhone-8-portrait.txt | 6 +- ...ionalInsetsPriority.iPhone-SE-portrait.txt | 6 +- ...tionalInsetsPriority.iPhone-X-portrait.txt | 6 +- ...InsetsPriority.iPhone-13-mini-portrait.txt | 8 +- ...lEdgeInsetsPriority.iPhone-13-portrait.txt | 8 +- ...alEdgeInsetsPriority.iPhone-8-portrait.txt | 8 +- ...lEdgeInsetsPriority.iPhone-SE-portrait.txt | 8 +- ...alEdgeInsetsPriority.iPhone-X-portrait.txt | 8 +- ...sInsetPriority.iPhone-13-mini-portrait.txt | 10 +- ...lEdgesInsetPriority.iPhone-13-portrait.txt | 10 +- ...alEdgesInsetPriority.iPhone-8-portrait.txt | 10 +- ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 10 +- ...alEdgesInsetPriority.iPhone-X-portrait.txt | 10 +- ...InsetsPriority.iPhone-13-mini-portrait.txt | 8 +- ...lEdgeInsetsPriority.iPhone-13-portrait.txt | 8 +- ...alEdgeInsetsPriority.iPhone-8-portrait.txt | 8 +- ...lEdgeInsetsPriority.iPhone-SE-portrait.txt | 8 +- ...alEdgeInsetsPriority.iPhone-X-portrait.txt | 8 +- ...sInsetPriority.iPhone-13-mini-portrait.txt | 8 +- ...lEdgesInsetPriority.iPhone-13-portrait.txt | 8 +- ...alEdgesInsetPriority.iPhone-8-portrait.txt | 8 +- ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 8 +- ...alEdgesInsetPriority.iPhone-X-portrait.txt | 8 +- ...InsetsPriority.iPhone-13-mini-portrait.txt | 6 +- ...lEdgeInsetsPriority.iPhone-13-portrait.txt | 6 +- ...alEdgeInsetsPriority.iPhone-8-portrait.txt | 6 +- ...lEdgeInsetsPriority.iPhone-SE-portrait.txt | 6 +- ...alEdgeInsetsPriority.iPhone-X-portrait.txt | 6 +- ...sInsetPriority.iPhone-13-mini-portrait.txt | 10 +- ...lEdgesInsetPriority.iPhone-13-portrait.txt | 10 +- ...alEdgesInsetPriority.iPhone-8-portrait.txt | 10 +- ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 10 +- ...alEdgesInsetPriority.iPhone-X-portrait.txt | 10 +- ...InsetsPriority.iPhone-13-mini-portrait.txt | 6 +- ...lEdgeInsetsPriority.iPhone-13-portrait.txt | 6 +- ...alEdgeInsetsPriority.iPhone-8-portrait.txt | 6 +- ...lEdgeInsetsPriority.iPhone-SE-portrait.txt | 6 +- ...alEdgeInsetsPriority.iPhone-X-portrait.txt | 6 +- ...sInsetPriority.iPhone-13-mini-portrait.txt | 8 +- ...lEdgesInsetPriority.iPhone-13-portrait.txt | 8 +- ...alEdgesInsetPriority.iPhone-8-portrait.txt | 8 +- ...lEdgesInsetPriority.iPhone-SE-portrait.txt | 8 +- ...alEdgesInsetPriority.iPhone-X-portrait.txt | 8 +- ...hInsetPriority.iPhone-13-mini-portrait.txt | 8 +- ...esWithInsetPriority.iPhone-13-portrait.txt | 8 +- ...gesWithInsetPriority.iPhone-8-portrait.txt | 8 +- ...esWithInsetPriority.iPhone-SE-portrait.txt | 8 +- ...gesWithInsetPriority.iPhone-X-portrait.txt | 8 +- ...terViewBetween.iPhone-13-mini-portrait.txt | 4 +- ...stCenterViewBetween.iPhone-13-portrait.txt | 4 +- ...estCenterViewBetween.iPhone-8-portrait.txt | 4 +- ...stCenterViewBetween.iPhone-SE-portrait.txt | 4 +- ...estCenterViewBetween.iPhone-X-portrait.txt | 4 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 6 +- ...een_andWithPriority.iPhone-13-portrait.txt | 6 +- ...ween_andWithPriority.iPhone-8-portrait.txt | 6 +- ...een_andWithPriority.iPhone-SE-portrait.txt | 6 +- ...ween_andWithPriority.iPhone-X-portrait.txt | 6 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 10 +- ...ant_andWithPriority.iPhone-13-portrait.txt | 10 +- ...tant_andWithPriority.iPhone-8-portrait.txt | 10 +- ...ant_andWithPriority.iPhone-SE-portrait.txt | 10 +- ...tant_andWithPriority.iPhone-X-portrait.txt | 10 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 6 +- ...ion_andWithPriority.iPhone-13-portrait.txt | 6 +- ...tion_andWithPriority.iPhone-8-portrait.txt | 6 +- ...ion_andWithPriority.iPhone-SE-portrait.txt | 6 +- ...tion_andWithPriority.iPhone-X-portrait.txt | 6 +- ...ndWithPriority.iPhone-13-mini-portrait.txt | 6 +- ...ant_andWithPriority.iPhone-13-portrait.txt | 6 +- ...tant_andWithPriority.iPhone-8-portrait.txt | 6 +- ...ant_andWithPriority.iPhone-SE-portrait.txt | 6 +- ...tant_andWithPriority.iPhone-X-portrait.txt | 6 +- ...ndWithConstant.iPhone-13-mini-portrait.txt | 6 +- ...ion_andWithConstant.iPhone-13-portrait.txt | 6 +- ...tion_andWithConstant.iPhone-8-portrait.txt | 6 +- ...ion_andWithConstant.iPhone-SE-portrait.txt | 6 +- ...tion_andWithConstant.iPhone-X-portrait.txt | 6 +- ...trainWithInset.iPhone-13-mini-portrait.txt | 4 +- ...tConstrainWithInset.iPhone-13-portrait.txt | 4 +- ...stConstrainWithInset.iPhone-8-portrait.txt | 4 +- ...tConstrainWithInset.iPhone-SE-portrait.txt | 4 +- ...stConstrainWithInset.iPhone-X-portrait.txt | 4 +- ...ectionalInsets.iPhone-13-mini-portrait.txt | 6 +- ...thDirectionalInsets.iPhone-13-portrait.txt | 6 +- ...ithDirectionalInsets.iPhone-8-portrait.txt | 6 +- ...thDirectionalInsets.iPhone-SE-portrait.txt | 6 +- ...ithDirectionalInsets.iPhone-X-portrait.txt | 6 +- ..._andWithInsets.iPhone-13-mini-portrait.txt | 6 +- ...train_andWithInsets.iPhone-13-portrait.txt | 6 +- ...strain_andWithInsets.iPhone-8-portrait.txt | 6 +- ...train_andWithInsets.iPhone-SE-portrait.txt | 6 +- ...strain_andWithInsets.iPhone-X-portrait.txt | 6 +- ...ibuteWithViews.iPhone-13-mini-portrait.txt | 6 +- ...lAttributeWithViews.iPhone-13-portrait.txt | 6 +- ...alAttributeWithViews.iPhone-8-portrait.txt | 6 +- ...lAttributeWithViews.iPhone-SE-portrait.txt | 6 +- ...alAttributeWithViews.iPhone-X-portrait.txt | 6 +- ...butesWithViews.iPhone-13-mini-portrait.txt | 6 +- ...AttributesWithViews.iPhone-13-portrait.txt | 6 +- ...lAttributesWithViews.iPhone-8-portrait.txt | 6 +- ...AttributesWithViews.iPhone-SE-portrait.txt | 6 +- ...lAttributesWithViews.iPhone-X-portrait.txt | 6 +- .../testEqualSize.iPhone-13-mini-portrait.txt | 6 +- .../testEqualSize.iPhone-13-portrait.txt | 6 +- .../testEqualSize.iPhone-8-portrait.txt | 6 +- .../testEqualSize.iPhone-SE-portrait.txt | 6 +- .../testEqualSize.iPhone-X-portrait.txt | 6 +- ...ionAndPriority.iPhone-13-mini-portrait.txt | 10 +- ...irectionAndPriority.iPhone-13-portrait.txt | 10 +- ...DirectionAndPriority.iPhone-8-portrait.txt | 10 +- ...irectionAndPriority.iPhone-SE-portrait.txt | 10 +- ...DirectionAndPriority.iPhone-X-portrait.txt | 10 +- ...WithAlignments.iPhone-13-mini-portrait.txt | 6 +- ...ontalWithAlignments.iPhone-13-portrait.txt | 6 +- ...zontalWithAlignments.iPhone-8-portrait.txt | 6 +- ...ontalWithAlignments.iPhone-SE-portrait.txt | 6 +- ...zontalWithAlignments.iPhone-X-portrait.txt | 6 +- ...andWithSpacing.iPhone-13-mini-portrait.txt | 10 +- ...ment_andWithSpacing.iPhone-13-portrait.txt | 10 +- ...nment_andWithSpacing.iPhone-8-portrait.txt | 10 +- ...ment_andWithSpacing.iPhone-SE-portrait.txt | 10 +- ...nment_andWithSpacing.iPhone-X-portrait.txt | 10 +- ...WithAlignments.iPhone-13-mini-portrait.txt | 6 +- ...ticalWithAlignments.iPhone-13-portrait.txt | 6 +- ...rticalWithAlignments.iPhone-8-portrait.txt | 6 +- ...ticalWithAlignments.iPhone-SE-portrait.txt | 6 +- ...rticalWithAlignments.iPhone-X-portrait.txt | 6 +- ...FormatLanguage.iPhone-13-mini-portrait.txt | 4 +- ...isualFormatLanguage.iPhone-13-portrait.txt | 4 +- ...VisualFormatLanguage.iPhone-8-portrait.txt | 4 +- ...isualFormatLanguage.iPhone-SE-portrait.txt | 4 +- ...VisualFormatLanguage.iPhone-X-portrait.txt | 4 +- ...ge_rightToLeft.iPhone-13-mini-portrait.txt | 4 +- ...anguage_rightToLeft.iPhone-13-portrait.txt | 4 +- ...Language_rightToLeft.iPhone-8-portrait.txt | 4 +- ...anguage_rightToLeft.iPhone-SE-portrait.txt | 4 +- ...Language_rightToLeft.iPhone-X-portrait.txt | 4 +- 233 files changed, 948 insertions(+), 921 deletions(-) create mode 100644 Tests/LayoutTests/Support/View.swift delete mode 100644 Tests/LayoutTests/Support/Views.swift diff --git a/Tests/LayoutTests/Support/SnapshotTesting.swift b/Tests/LayoutTests/Support/SnapshotTesting.swift index 2e2b5efc..1cf4f155 100644 --- a/Tests/LayoutTests/Support/SnapshotTesting.swift +++ b/Tests/LayoutTests/Support/SnapshotTesting.swift @@ -16,6 +16,13 @@ import XCTest extension XCTestCase { + private final class ViewController: UIViewController { + + override func loadView() { + view = View(named: "", with: .white) + } + } + @MainActor internal func assertLayout( devices: [Device] = Device.portraitTestDevices, @@ -25,7 +32,7 @@ extension XCTestCase { layout: (UIView) -> Layout ) { for device: Device in devices { - let viewController: UIViewController = .init() + let viewController: ViewController = .init() let view: UIView = viewController.view view.backgroundColor = .white layout(view).activate() diff --git a/Tests/LayoutTests/Support/View.swift b/Tests/LayoutTests/Support/View.swift new file mode 100644 index 00000000..74ff791b --- /dev/null +++ b/Tests/LayoutTests/Support/View.swift @@ -0,0 +1,100 @@ +// +// All Contributions by Match Group +// +// Copyright © 2023 Tinder (Match Group, LLC) +// +// Licensed under the Match Group Modified 3-Clause BSD License. +// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. +// + +import UIKit + +internal final class View: UIView { + + override internal var description: String { + let identifier: String + if let accessibilityIdentifier, !accessibilityIdentifier.isEmpty { + identifier = "View; name = \(accessibilityIdentifier)" + } else { + identifier = "View" + } + if #available(iOS 15.0, *) { + let minX: String = frame.minX.formatted() + let minY: String = frame.minY.formatted() + let width: String = frame.width.formatted() + let height: String = frame.height.formatted() + return "<\(identifier); frame = (x: \(minX), y: \(minY), width: \(width), height: \(height))>" + } + fatalError("iOS 15+ required for unit tests.") + } + + internal convenience init(named name: String, with color: UIColor) { + self.init() + accessibilityIdentifier = name + backgroundColor = color + } +} + +internal var pinkView: UIView { + View(named: "Pink", with: UIColor(red: 1, green: 0.176471, blue: 0.333333, alpha: 1)) +} + +internal var blackView: UIView { + View(named: "Black", with: .black) +} + +internal var darkGrayView: UIView { + View(named: "DarkGray", with: .darkGray) +} + +internal var lightGrayView: UIView { + View(named: "LightGray", with: .lightGray) +} + +internal var whiteView: UIView { + View(named: "White", with: .white) +} + +internal var grayView: UIView { + View(named: "Gray", with: .gray) +} + +internal var redView: UIView { + View(named: "Red", with: .red) +} + +internal var greenView: UIView { + View(named: "Green", with: .green) +} + +internal var blueView: UIView { + View(named: "Blue", with: .blue) +} + +internal var cyanView: UIView { + View(named: "Cyan", with: .cyan) +} + +internal var yellowView: UIView { + View(named: "Yellow", with: .yellow) +} + +internal var magentaView: UIView { + View(named: "Magenta", with: .magenta) +} + +internal var orangeView: UIView { + View(named: "Orange", with: .orange) +} + +internal var purpleView: UIView { + View(named: "Purple", with: .purple) +} + +internal var brownView: UIView { + View(named: "Brown", with: .brown) +} + +internal var clearView: UIView { + View(named: "Clear", with: .clear) +} diff --git a/Tests/LayoutTests/Support/Views.swift b/Tests/LayoutTests/Support/Views.swift deleted file mode 100644 index c16771dd..00000000 --- a/Tests/LayoutTests/Support/Views.swift +++ /dev/null @@ -1,80 +0,0 @@ -// -// All Contributions by Match Group -// -// Copyright © 2023 Tinder (Match Group, LLC) -// -// Licensed under the Match Group Modified 3-Clause BSD License. -// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. -// - -import UIKit - -internal var pinkView: UIView { - view(with: UIColor(red: 1, green: 0.176471, blue: 0.333333, alpha: 1)) -} - -internal var blackView: UIView { - view(with: .black) -} - -internal var darkGrayView: UIView { - view(with: .darkGray) -} - -internal var lightGrayView: UIView { - view(with: .lightGray) -} - -internal var whiteView: UIView { - view(with: .white) -} - -internal var grayView: UIView { - view(with: .gray) -} - -internal var redView: UIView { - view(with: .red) -} - -internal var greenView: UIView { - view(with: .green) -} - -internal var blueView: UIView { - view(with: .blue) -} - -internal var cyanView: UIView { - view(with: .cyan) -} - -internal var yellowView: UIView { - view(with: .yellow) -} - -internal var magentaView: UIView { - view(with: .magenta) -} - -internal var orangeView: UIView { - view(with: .orange) -} - -internal var purpleView: UIView { - view(with: .purple) -} - -internal var brownView: UIView { - view(with: .brown) -} - -internal var clearView: UIView { - view(with: .clear) -} - -private func view(with backgroundColor: UIColor) -> UIView { - let view: UIView = .init() - view.backgroundColor = backgroundColor - return view -} diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-13-mini-portrait.txt index 61d2e390..0f1382d6 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-13-portrait.txt index 45e94892..1671eae4 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-8-portrait.txt index a13e7558..87970db8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-SE-portrait.txt index 0deea19a..61271e26 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-X-portrait.txt index 61d2e390..0f1382d6 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testAspectRatio_andWithPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-13-mini-portrait.txt index b38118de..aecb7edb 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-13-mini-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-13-portrait.txt index 824a20b4..60e994e0 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-13-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-8-portrait.txt index c5ca5a20..3f7b6af2 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-8-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-SE-portrait.txt index a349e386..06d656da 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-SE-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-X-portrait.txt index b38118de..aecb7edb 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenLeadingAndTrailing.iPhone-X-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-13-mini-portrait.txt index f002b9d2..d0b6fd99 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-13-mini-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-13-portrait.txt index 109a4cca..d058cf27 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-13-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-8-portrait.txt index 0a594d4c..ab1d83a8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-8-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-SE-portrait.txt index 6049306f..1e09562a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-SE-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-X-portrait.txt index d7923cab..875e6de8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterBetweenTopAndBottom.iPhone-X-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-13-mini-portrait.txt index 72c61b30..5eeea77a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-13-portrait.txt index 90c1a4f3..28d999ac 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-13-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-8-portrait.txt index dcfcdc4c..7de8d679 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-8-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-SE-portrait.txt index 9b6e8d05..78654b0b 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-SE-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-X-portrait.txt index 72c61b30..5eeea77a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithAxis_andWithOffset_andWithMultiplier_andWithPriority.iPhone-X-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-13-mini-portrait.txt index c88718e4..55b77a98 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-13-portrait.txt index 5c16f020..34f54825 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-13-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-8-portrait.txt index d548eb8c..bb4cd7c6 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-8-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-SE-portrait.txt index caba7d45..a6273053 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-SE-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-X-portrait.txt index c88718e4..55b77a98 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testCenterWithDefaultUIOffset_andWithCustomUIOffset_andWithPriority.iPhone-X-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-13-mini-portrait.txt index 1ba67666..f504f0a9 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-13-portrait.txt index 95216c4c..134778d7 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-13-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-8-portrait.txt index d8874f01..c901ef9e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-8-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-SE-portrait.txt index 20d61264..ea014119 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-SE-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-X-portrait.txt index 1ba67666..f504f0a9 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeHeight_andWithConstraintRelation_andWithPriority.iPhone-X-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-13-mini-portrait.txt index 3e1d82ea..583b27d5 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-13-portrait.txt index 0740c460..de293abf 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-8-portrait.txt index 4b4ec2d3..2baa99d8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-SE-portrait.txt index 6109b7b8..0eb677dd 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-X-portrait.txt index 3e1d82ea..583b27d5 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidthAndHeight_andWithPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-13-mini-portrait.txt index a6746bc4..b468153a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-13-portrait.txt index 88470b33..3818e947 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-13-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-8-portrait.txt index 5f6a9ac0..2bef4ccc 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-8-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-SE-portrait.txt index 619b3dd3..c40d2a1f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-SE-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-X-portrait.txt index a6746bc4..b468153a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWidth_andWithConstraintRelation_andWithPriority.iPhone-X-portrait.txt @@ -1,7 +1,7 @@ -> - | > - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-13-mini-portrait.txt index 3e1d82ea..583b27d5 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-13-portrait.txt index 0740c460..de293abf 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-8-portrait.txt index 4b4ec2d3..2baa99d8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-SE-portrait.txt index 6109b7b8..0eb677dd 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-X-portrait.txt index 3e1d82ea..583b27d5 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSizeWithCGSize_andWithPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-13-mini-portrait.txt index 877349d5..ecff013f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-13-portrait.txt index aefd7d32..65e10c3c 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-8-portrait.txt index 7ce11a30..77ab7933 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-SE-portrait.txt index 853f8239..164cfeac 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-X-portrait.txt index 877349d5..ecff013f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithLength_andWithPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-13-mini-portrait.txt index 877349d5..ecff013f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-13-portrait.txt index aefd7d32..65e10c3c 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-8-portrait.txt index 7ce11a30..77ab7933 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-SE-portrait.txt index 853f8239..164cfeac 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-X-portrait.txt index 877349d5..ecff013f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testSquareWithWidth_andSquareWithHeight.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-13-mini-portrait.txt index 8285045e..b70514af 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-13-mini-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-13-portrait.txt index eae99ab1..4f4558cf 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-13-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-8-portrait.txt index 463fb1a5..7b563aef 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-8-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-SE-portrait.txt index ed7dd268..d6e92d6d 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-SE-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-X-portrait.txt index 8285045e..b70514af 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributeWithRelation.iPhone-X-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-13-mini-portrait.txt index 1b209199..905c1620 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-13-portrait.txt index 4fa8a282..4422bed2 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-13-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-8-portrait.txt index 086da0e1..0ec118a4 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-8-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-SE-portrait.txt index 7fdf9abf..a33862d4 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-SE-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-X-portrait.txt index 1b209199..905c1620 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttribute_andWithConstant_andWithMultiplier_andWithPriority.iPhone-X-portrait.txt @@ -1,6 +1,6 @@ -> - | > - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt index 39b34403..e06d78d7 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-13-portrait.txt index a47fadc2..1ec93d49 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-13-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-8-portrait.txt index e1703cf7..df0dfb6b 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-8-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-SE-portrait.txt index 0ad9e49d..901ffb29 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-SE-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-X-portrait.txt index 39b34403..e06d78d7 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToAttributes_andWithConstant_andWithPriority.iPhone-X-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-13-mini-portrait.txt index 082bdadc..2ef5c19d 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-13-portrait.txt index 448b646a..13b7ba41 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-8-portrait.txt index 5215d955..4a53b970 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-SE-portrait.txt index 0f93019f..9d2b2bc1 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-X-portrait.txt index 082bdadc..2ef5c19d 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToBottomMargin_andWithPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt index b6346608..abe8d819 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt index dbcb1fd2..d63a7d5e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt index f6da63d4..ea409ca2 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt index ad76b3e9..64d753e3 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt index b6346608..abe8d819 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.txt index 06c2a7d6..b61d379b 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.txt index 5f6ff2b7..39a3dc2a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-8-portrait.txt index 1ee57914..beb8b592 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.txt index 1596bbcd..96902f99 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.txt index 06c2a7d6..b61d379b 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithCanonicalInsetsPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt index 3e4e8c06..5b95a7ac 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt index e42d28fe..aebdf305 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt index 8976ddd0..90e3df72 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt index 2a95ca3c..17f7fd69 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt index 3e4e8c06..5b95a7ac 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.txt index 06c2a7d6..b61d379b 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.txt index 5f6ff2b7..39a3dc2a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-8-portrait.txt index 1ee57914..beb8b592 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.txt index 1596bbcd..96902f99 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.txt index 06c2a7d6..b61d379b 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToEdgesWithDirectionalInsetsPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt index 2d4a4ff1..4f64d5d4 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt index b309e832..aacadc08 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt index 64387322..7ee22c13 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt index edeeca07..e50291e8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt index e33fbd3d..0910b93e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt index d9ec95e2..48e07bc1 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt index 5f9bc313..a07a39f7 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt index 74365e45..98012f7e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt index 654d06e1..96b2bc18 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt index a34b21d6..7fe5d26d 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt index 2d4a4ff1..4f64d5d4 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt index b309e832..aacadc08 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt index 64387322..7ee22c13 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt index edeeca07..e50291e8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt index e33fbd3d..0910b93e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt index bb18951e..15567482 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt index 9ab24049..68675b2e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt index c385738e..90236e1b 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt index 2fa2020f..c534759a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt index fab5e749..22025c74 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToMarginsWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt index 7d998e58..bf0bb3fe 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt index f8951f71..5c85d342 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt index 77ca2c27..f6f25ba8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt index af50e240..433b0f78 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt index ef107a5a..43ac4397 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgeInsetsPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt index 9d36a351..61a2e014 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt index 1a850b0d..b42a2bf8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-13-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt index 3719fce6..45340ef3 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-8-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt index 0594b48c..65acb325 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-SE-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt index f00f395f..afe73980 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithCanonicalEdgesInsetPriority.iPhone-X-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt index 7d998e58..bf0bb3fe 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt index f8951f71..5c85d342 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt index 77ca2c27..f6f25ba8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt index af50e240..433b0f78 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt index ef107a5a..43ac4397 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgeInsetsPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt index 23904bb5..0342a698 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-mini-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt index 63a41998..791418d7 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-13-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt index 339248ca..910f39b7 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-8-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt index 6e3a239e..4bf73f91 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-SE-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt index 82207d90..b2b2c93f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSafeAreaWithDirectionalEdgesInsetPriority.iPhone-X-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.txt index 7960dd71..abb32e17 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-mini-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-portrait.txt index 9b372e1b..0b609da6 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-13-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.txt index 85f60861..04641a71 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-8-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-SE-portrait.txt index b10e591b..8bed22ae 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-SE-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.txt index 7960dd71..abb32e17 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideEdgesWithInsetPriority.iPhone-X-portrait.txt @@ -1,4 +1,4 @@ -> - | > - | > - | > \ No newline at end of file + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-13-mini-portrait.txt index 2a3a23da..c621e974 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-13-mini-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-13-portrait.txt index 0b2e26a0..d4df0e9c 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-13-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-8-portrait.txt index 1055f6ba..d155a519 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-8-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-SE-portrait.txt index 895682fe..1e3d92c4 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-SE-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-X-portrait.txt index 2a3a23da..c621e974 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween.iPhone-X-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-13-mini-portrait.txt index 4e686482..cd3ffdb0 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-13-portrait.txt index 74ef44e1..a6b95c0e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-8-portrait.txt index 800058f2..27819f35 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-SE-portrait.txt index 85032e60..aa29f8b6 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-X-portrait.txt index 4e686482..cd3ffdb0 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testCenterViewBetween_andWithPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt index 250558d4..a16560cd 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-13-portrait.txt index 8805bd08..4f113a2f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-13-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-8-portrait.txt index 3ec62021..42845ede 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-8-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-SE-portrait.txt index b174f344..a6b4a1c2 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-SE-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-X-portrait.txt index 250558d4..a16560cd 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithMultiplier_andWithConstant_andWithPriority.iPhone-X-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-13-mini-portrait.txt index 1786b36d..4a784ce8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-13-portrait.txt index f4c9fd67..649f5381 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-8-portrait.txt index 26b8f1f8..bb550927 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-SE-portrait.txt index d9830fa2..c3ed8195 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-X-portrait.txt index 1786b36d..4a784ce8 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainAnchorDimension_andWithRelation_andWithPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt index 383ec230..47858b14 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-13-portrait.txt index fa7af79a..c793f51d 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-8-portrait.txt index 93b2ce24..24f4650f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-SE-portrait.txt index f782c742..9619bfd5 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-X-portrait.txt index 383ec230..47858b14 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAnchor_andWithRelation_andWithConstant_andWithPriority.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-13-mini-portrait.txt index 69765e8e..a7f4fed7 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-13-portrait.txt index d518f905..94a0186c 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-8-portrait.txt index 3ab0a3f3..85caf0c1 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-SE-portrait.txt index 2a751260..2cea1dc4 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-X-portrait.txt index 69765e8e..a7f4fed7 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainToAttribute_andWithRelation_andWithConstant.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-13-mini-portrait.txt index a8debb20..52b05e40 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-13-mini-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-13-portrait.txt index 107cd0e4..3ca225bf 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-13-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-8-portrait.txt index 6edcf7c3..a1c80a41 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-8-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-SE-portrait.txt index 2530468a..ea8b0290 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-SE-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-X-portrait.txt index a8debb20..52b05e40 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrainWithInset.iPhone-X-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-13-mini-portrait.txt index 76d20942..b3e544c9 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-13-portrait.txt index 1ccc95e8..e6688db1 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-8-portrait.txt index 58eacb64..62117bb6 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-SE-portrait.txt index 2f445e7f..230eaa5e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-X-portrait.txt index 76d20942..b3e544c9 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithDirectionalInsets.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-13-mini-portrait.txt index 76d20942..b3e544c9 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-13-portrait.txt index 1ccc95e8..e6688db1 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-8-portrait.txt index 58eacb64..62117bb6 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-SE-portrait.txt index 2f445e7f..230eaa5e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-X-portrait.txt index 76d20942..b3e544c9 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testConstrain_andWithInsets.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-13-mini-portrait.txt index 571d7fa7..7cb9d1b3 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-13-portrait.txt index a5223499..8b42db3c 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-8-portrait.txt index ba28ec3b..4dc3beac 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-SE-portrait.txt index d7237a03..d8671a58 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-X-portrait.txt index 571d7fa7..7cb9d1b3 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributeWithViews.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-13-mini-portrait.txt index 571d7fa7..7cb9d1b3 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-13-portrait.txt index a5223499..8b42db3c 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-8-portrait.txt index ba28ec3b..4dc3beac 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-SE-portrait.txt index d7237a03..d8671a58 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-X-portrait.txt index 571d7fa7..7cb9d1b3 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualAttributesWithViews.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-13-mini-portrait.txt index 571d7fa7..7cb9d1b3 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-13-portrait.txt index a5223499..8b42db3c 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-8-portrait.txt index ba28ec3b..4dc3beac 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-SE-portrait.txt index d7237a03..d8671a58 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-X-portrait.txt index 571d7fa7..7cb9d1b3 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testEqualSize.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-13-mini-portrait.txt index c8063abe..a54edb4f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-13-mini-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-13-portrait.txt index 7a854f32..e6084e21 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-13-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-8-portrait.txt index 24e98643..8a637426 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-8-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-SE-portrait.txt index c34bb25a..f5ed66fb 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-SE-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-X-portrait.txt index c8063abe..a54edb4f 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalViewsWithAlignment_andWithSpacingAndDirectionAndPriority.iPhone-X-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-13-mini-portrait.txt index 68483a41..65e38bdf 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-13-portrait.txt index c6d2c714..cc47d9d3 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-8-portrait.txt index 2e5f8f37..a07d2d96 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-SE-portrait.txt index 04689bab..d505dff4 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-X-portrait.txt index 68483a41..65e38bdf 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testHorizontalWithAlignments.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-13-mini-portrait.txt index 153b2509..4d797250 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-13-mini-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-13-portrait.txt index 82b0e40d..e9f64c1b 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-13-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-8-portrait.txt index 45c9e606..3d1e181a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-8-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-SE-portrait.txt index bd4212fa..6b4a9920 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-SE-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-X-portrait.txt index 153b2509..4d797250 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalViewsWithAlignment_andWithSpacing.iPhone-X-portrait.txt @@ -1,5 +1,5 @@ -> - | > - | > - | > - | > \ No newline at end of file + + | + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-13-mini-portrait.txt index 4cc4d866..29f65e5a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-13-mini-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-13-portrait.txt index 1930bfba..1aa7bd9e 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-13-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-8-portrait.txt index 524c6d1a..3f287012 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-8-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-SE-portrait.txt index babc2fde..ffaca680 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-SE-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-X-portrait.txt index 4cc4d866..29f65e5a 100644 --- a/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/LayoutTests/testVerticalWithAlignments.iPhone-X-portrait.txt @@ -1,3 +1,3 @@ -> - | > - | > \ No newline at end of file + + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-13-mini-portrait.txt index 0c37eb8d..8dbbea1f 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-13-mini-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-13-portrait.txt index f751d200..4e00c496 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-13-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-8-portrait.txt index 5a668648..ce63bf31 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-8-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-SE-portrait.txt index 5299790f..a4118335 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-SE-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-X-portrait.txt index 0c37eb8d..8dbbea1f 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage.iPhone-X-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-13-mini-portrait.txt index 98009e7c..7e3f9959 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-13-mini-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-13-mini-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-13-portrait.txt index f167a3d9..efc48826 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-13-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-13-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-8-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-8-portrait.txt index 68301231..eb154e4c 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-8-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-8-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-SE-portrait.txt index ffa9a789..90570f01 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-SE-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-SE-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-X-portrait.txt index 98009e7c..7e3f9959 100644 --- a/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-X-portrait.txt +++ b/Tests/LayoutTests/__Snapshots__/NSLayoutConstraintTests/testConstraintsWithVisualFormatLanguage_rightToLeft.iPhone-X-portrait.txt @@ -1,2 +1,2 @@ -> - | > \ No newline at end of file + + | \ No newline at end of file From a7a2aded43f23fedf9b5716ded625f6aafd9bc7f Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:26:13 -0700 Subject: [PATCH 35/42] Add toSideMargins(inset:priority:) (#212) * Add toSideMargins(inset:priority:) * Improve documentation comments Co-authored-by: Christopher Fuller * Record snapshots * Improve documentation comment Co-authored-by: Christopher Fuller * Improve documentation comment Co-authored-by: Christopher Fuller --------- Co-authored-by: Christopher Fuller --- Sources/Layout/LayoutItem.swift | 12 ++++++++++ Tests/LayoutTests/LayoutItemTests.swift | 21 ++++++++++++++++++ ...hInsetPriority.iPhone-13-mini-portrait.png | Bin 0 -> 62863 bytes ...hInsetPriority.iPhone-13-mini-portrait.txt | 4 ++++ ...nsWithInsetPriority.iPhone-13-portrait.png | Bin 0 -> 67660 bytes ...nsWithInsetPriority.iPhone-13-portrait.txt | 4 ++++ ...insWithInsetPriority.iPhone-8-portrait.png | Bin 0 -> 53234 bytes ...insWithInsetPriority.iPhone-8-portrait.txt | 4 ++++ ...nsWithInsetPriority.iPhone-SE-portrait.png | Bin 0 -> 40957 bytes ...nsWithInsetPriority.iPhone-SE-portrait.txt | 4 ++++ ...insWithInsetPriority.iPhone-X-portrait.png | Bin 0 -> 62863 bytes ...insWithInsetPriority.iPhone-X-portrait.txt | 4 ++++ 12 files changed, 53 insertions(+) create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-mini-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-mini-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-8-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-8-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-SE-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-SE-portrait.txt create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-X-portrait.png create mode 100644 Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-X-portrait.txt diff --git a/Sources/Layout/LayoutItem.swift b/Sources/Layout/LayoutItem.swift index e8e2ce08..40be0aca 100644 --- a/Sources/Layout/LayoutItem.swift +++ b/Sources/Layout/LayoutItem.swift @@ -465,6 +465,18 @@ extension LayoutItem { } } + /// Constrains the view's side edges to the superview's margins with an inset. + /// + /// - Parameters: + /// - inset: (optional) The inset distance. + /// - priority: (optional) The priority of constraints. + public func toSideMargins( + inset: CGFloat = 0, + priority: UILayoutPriority = .required + ) -> LayoutItem { + toMargins(canonical: [.left, .right], inset: inset, priority: priority) + } + /// Constrains the `bottom` to the bottom margin with a minimum bottom inset /// Useful for bottom-aligned elements on iPhoneX family devices that require /// an additional bottom margin on non-iPhoneX devices. diff --git a/Tests/LayoutTests/LayoutItemTests.swift b/Tests/LayoutTests/LayoutItemTests.swift index 6269ef03..25910f04 100644 --- a/Tests/LayoutTests/LayoutItemTests.swift +++ b/Tests/LayoutTests/LayoutItemTests.swift @@ -601,6 +601,27 @@ final class LayoutItemTests: XCTestCase { } } + func testToSideMarginsWithInsetPriority() { + assertLayout { view in + view.layout { + pinkView + .to(.top) + .size(height: 100) + .toSideMargins() + .toSideMargins(inset: 20, priority: .high) + blueView + .center(.vertical) + .size(height: 100) + .toSideMargins(inset: 20) + orangeView + .to(.bottom) + .size(height: 100) + .toSideMargins(inset: 20, priority: .low) + .toSideMargins(inset: 40, priority: .high) + } + } + } + func testToBottomMargin_andWithPriority() { assertLayout { view in view.layout { diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-mini-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-mini-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..879d506cac613b11b087cf1390705149b6426abc GIT binary patch literal 62863 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-mini-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-mini-portrait.txt new file mode 100644 index 00000000..c48ab3a7 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-mini-portrait.txt @@ -0,0 +1,4 @@ + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..501cf11b609d721092299013449462e31f20dea9 GIT binary patch literal 67660 zcmeHQdr(tn7QZ(MDInC8A|kRH5Gq=$}a>y zBtJ6eXf<=kj%E6jV|PZz1~6{sD&#$a?P)*$mlUM@eiF}h2 znqRVKAD(+~FDuKWzSW$6;`YQH zf>P_D!6ctP;)K8P%cjUH_J;Oa4O6}Sjd^a>&tqTajfxlcZEJndaJR>tjw(~1RBvu& z{#yRb_6}6igN7xihgC0B?~Xo@(aVjxLUX-(d0tNG^Oo$gDCWgS!Gf0j;rH_T&6$wnZ>N2oSH(=de#O7GB3@#(?NV=doOIPQBHMC z%8dG;ev!lC1ZT50(5WvwE`aYt3uVDSbwdSPth}|x!``HIpV=$$?Apr_(ajv_IR-z z`(QS=Y^_*Eey&)ydYr^h^Ojg{yPsH+{aRVLF<2}mKU{2WfWku?5-+xrKr5PM?^CJ% zN-QV8Qgm@Zh_29AbSXihSeiWuPCHIYl@bJ}AsBZBI9z1e4pfT3M6wwO(BWb$rJz!v zQfLbrR*J}iM_4JY3rt}aimWk(9WJt_7b*oRMHnoErzx@!9j?8|!hc{XG@hr@tAM4@ zku!x7Dg`Qq_WC)%v#yU!0X!@6h#KJGL42^oAw;ik0HS|d!;8*;wAVT9`)A(PZc;$l z@}iQO^7zDL$-Ap-pEQ3*Z|`TQV6%?M+BYoeSlL!n*xozYz8jvcvxuvzf9`K@UvfJ- zI%|{cv!(@2QPdWLx?P6tL;iNOI%~P&h^#1k&Fz2R-QoO{O_emIV)3Da>i%h5LDX!K z_WM3p(;1n;juI(u=(wcuUhhHW$N9BOS% zr6^$?!T{qLpNQGs$#n19`K3+Ct2&SPY36u@dv~chSvTJKsp@+9nJxDoRHPLq73qW0 zPR*x!=MtrJE)y%z~?Q^N7ug-@Tl z+$KAPbf*IL(Y;rG?--yqz;9JlEdVWmi2xG;YysE;Fb81{x_T6Ldlw!7JOVg{ zR;SP}apGu(k(e}bF-f!wXBQYah`yru^pn5MV z{o&@D`#U>-ia8wGe0k2DLz!(fM8$nuv3Pu%`h$9XLVc(U#6@~&+CSWMIJ<0?N7bK` zTL(;cftVZ>4$n?;fry$DrFA3Dw&asD6mba~2}pO(1*EfAz$KW;1S)_EyvTqTzzg7o zc`C;w0*Qb`Kq4R!wm>0lN3&l5Du4>S0|{OLFMt<>u?&}4GcJkB*U1Kao7ew=T6D)4s>oJ*B?QZ+3b=Q4>KnzyE@_;NZeE%; z8ACrWNA^A&d-;B&uOo@i+M)72o%&2)#${1?CD|(P{k}U~2DOZAiZ_B~sEc6?W4VF@ z!-mDv{haFJZ+zy#xU8l8jBN6E{&YWjP^#%=VENFWw7fCQozf#JviB$yFA00{sREJ!YZ1ON#ZFdjexfCNkE2tWdW1WVKoKmvdS zOB5JD0)PZdngD%J@JZmhYp z{Cu&!Z*mr4u|6S5%AeMJ0op+gkvmm~_3??BL-Urp)erQ#opxV1G^gTeTLT26=D1C4 zevDf!F_&wPFFNpU<+9ZA6!7V1K|!twh-B}LkV6H2x20LNleE7EnYq8=%a5K wM&_xBi%H_=7{soTroiV5AfWmG70_&cqj%%!{0j+THyQHM#E*+BAF2D|zp9WNNB{r; literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-portrait.txt new file mode 100644 index 00000000..72cb9cfc --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-13-portrait.txt @@ -0,0 +1,4 @@ + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-8-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-8-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..c73a8d569be767bab931ce9c7e79bb4e33a834ab GIT binary patch literal 53234 zcmeHQdsGuw9-c{J#7E>|s|c(?@PThdDD;#iXn}~Rh+2iCJSxV8;)9k|qw+{vSHuU@ z7Ufv1uyR^=D}vy$i-IN=Efy5C9)rhH3G6EEQfVkBl}AW+0?9BlY0v)CJ-hDta!#0G z?#$dfzx&oqUeQ1)PhW1EnPyC zHn@FH{Uet}g>6}}f|y0E+YtiNg&1Mph581PuJn2+=|%7dxAO=hD~S+T_E||S&7X(V z*L=*-l3zqx_NKNK@vM6bWJP@I`pA3c!#Z5U#!!n3O3{lG!KbixPwQE_W3|pCWQ-RsGz>|5}p4-`Jly z-(Nh*^psU<-ci{iaufR=@m})t!uyN^hgO@ns=daKk^B3Jb29x*+qnl{c*P;YsY7op z^iC!k`VVp|R|r26YTlR{xFfGC<)f^ckE@2;HFWwC(T(D|y;mc*h}3(;jy8=Cy05-+ z=tlcd@5w8>Qz}!NIL%XDQp(pxm-*F|kp4eyfmh*QrU@6nZ78|fn|IkzQeeAPd z+s!pil8c9IVf^aW554RUdF_bC1uv$K4d1HeFA0AQd^0cHRg00!Cu{~a*YAD3hd9PYKv?b)-2 zU*A&DU`!{AZ@2grZa3U7?p`ELpz~%}vNrapNYl4Yx`zg0#))o4JWAwGY(8b?ElWGdhb)xV6+8Zwwg9lJj0Y zp~x-CEuo)-u{;t~?ZT)d*1oYZJJe7g!Nk!F~Qh_m+0J4*Bl`B+nyldMqKcEyLL4Tjv(8mTIKyxP2aL>GQ!l z%Cg$q1M9f8FgmQ~R^P3+xEV~(DTnLO>UD-@X*9Q%;ST%Hfx?(jo3o7|HaQ%8rrJ6E z7BQnaBcxU8QJ(#pxG8dasJ37J__#NJ>;g4G{|VaK)=;}MFWYfd#j+Em&^cZ~|IsdT zD5&gy`**TUf@`_$F*6r24x>(RV|r)WM(Igsa@x7glNg6lCkW)DN*EUK!5{$@P;3h- z02P1=Kn0)z=Xf}kaGen#n8UCCNw2`3AWSCyH}YQVYgee3uHv&$QKZW^5nWB{Iu7AME_fMm|{2ueDa7ZkpKG z67vfJgtdj0n`3N65K7FkR-n`0?B1PkE2GdYgb8>s0Zb4D6Tk!%VS@``0-yi`!R)+& z3t$4E00RMBFc`~%4nc>Y!+%SMeFB2#e2QUPp40c2Yh5$o=A*?S4!Dzr} zz-Yi|Fv~88r4UOoxd3wm<_0Dnzz~R~5KCEo1&jua28;%b2Hd$u+<>@&=_ev?K-|E@ z13V>oO7N86DZx{Mrvy)lIWxXkp3?1xV>*JEnP`6P3U#}{{FV*sVqUCkK)cO-29FFL z+5eSCc7kv4%kJYOgVn~lMj8K6esw$bs6}UYi^*h+n;%=)U3{LE+|-bymhcXbcM5$M8>1uuW$gX=F8P!Mo zW=MRw;?K9+YRWG;$}gv-pD1J{Hf5FTJnPu0Q{+kNnnUVM)Fs@^N=Ww9z0=z_N5aaB z!YbEF^OUT!>%LZGy{x>+JK%lTzE%^eee#n&I)k0llv%FM_2RS6uKk3xpH10ktZaff z=loH1{gaN1221K$%W0V93UQ>6b#`?)fATuPgfY%_a{}EqxGMAOoBq(7#JWaiIVm|a zmUVVzzA&J~Zq9@SdC_V9pTEMJpI_Ga(|uO*SXOyP@FYvmSxz%wB#&~8niKDJaj=79 z=fxF1ImK0U%jND z)Rz%oj7Y27?^l~RTkG_IStJak)X|shChBI6f9zI#Ufr&{v`)f&bCd4EYWI!mv&-eF zM?UAxixjb5>Xe|aS*A=O3%yaX#i%ef{mL)%ySo4`3?~o> + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-SE-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-SE-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..83bc426972144b4020860ccfed2c983001a1c800 GIT binary patch literal 40957 zcmeHPdrTBZ7@xi6R^_FL4?Gc6Y9*k8RYU~=6$NTN(NK#D;mQ@_Bcg^1T9w;VtFbDl zX=6#N@wA$1RZ#4MR$DgO6w)AAt%`}(tx|0T1w;h|x$fSw5A?sLZ9?+9B$H=ZzL4E2`4IhUfeWNSn2zh@MBFz zazf_p*(69v_arWqf#}6cgl`lzSV_;M0txNR*AcRH332JX#weV{PqpwB>quwXPIX=_ z*@O(6D1NCKd&ZiCOy4E3bCQI!a6|D!i|Ih= zET-p#P8goPosbxk5IZ$#4OMsjm!qj=17hcns9Cw!5?H*WZ=Ze#o6|ivMTa*(u4^>h zZ!N2;b+k9tSMBe(!cvTnNjbE%G5Pgn{$&=&tx}UC;8H=?(&c;$JD#2Tv|ubpX!lV0 zV9Df2UJCg&deavl8r5v~(36HWk&dg;^`)eUtgrWaTe**kwSHh-ZH?;qjTFYLHrig( zwB~-C@#|gvq-ro1Om3}<)%4C}PdBC7ZKdICaN@qppH*o4aLigp=R9v>8eF+%KQFCJ zM|_e8{&}a~gLh53_c(Bz+-aeo+)}=gO?8~5&gvSzkK3%3HHf*Yf7Y^&F40|?H09?P zWinlhUICHtFNqp}iRV;9=#m77BIE%cXn=U9aRNL59u!AO@`wNrfCt$N1v~&A01pTO z5!Et22-GFo0^Ea>i2*|-@p2%&BnlAl0C)g_3{D(0KUOZ}OXGFdQ)!mPqfR5T9iET9=MQNex~76B?@SQG;a>nuVgTpZc;f}bctC7f+J z%z(3vh(!r51lJm2pBVKbc2+n75D)@Xf`Cvk0t5sI2rXX+0s;ht99)R5H3$e05OQ!K zy4D~dKtO00fM^lxyCe`YZZ z((IMbx6WF0ZpHIIW^P`jkIcEXw(iFJXVl`7uU>6mNVgPFw&QVo)UD;#dY_3CMm~zZ zMxthN=H`86m8m6e%64_DIeWMx+k-c|L>BukP_ilJ2Qy#2x7?9JxA;)Do4I}wxxbH5 zcgE*m*w$VZ#@f6Z%HNBd^lc*{o(jSb2zG(AKov&2k*i4xmn95x$CEfOo_;?N%cJ#%(Z>IeP{5hyG>7WU+0@z z^PZdSl*i&2+HjF&#@nqs8RKYg&$bP}$;;f~)N>2c!uw?PYN>v(zOLfjC{5+8 z<=)0+RMb`0cHDMc+iH%~s!+CvwcV^Ns~lA^t+TVjo%!m?yQ2&BEy=p5;;3Rt2B|~U zOEhIU5&jXUL)|oTm}_G@N(S)eUM=O%%9qOG3sp^@Th+3c`O0}HThlZFaG>5UnM1fXl-~)&P_=K&1VT56XVT56XVN^m5#1#ml5HTX! z2DJbl1ss&dF@Rx&VT56XVT56XVT56XVN}=Hu8t{682bl1t3Y7VT>)DX4?2SS8P-a literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-SE-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-SE-portrait.txt new file mode 100644 index 00000000..52ab9d4e --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-SE-portrait.txt @@ -0,0 +1,4 @@ + + | + | + | \ No newline at end of file diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-X-portrait.png b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-X-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..879d506cac613b11b087cf1390705149b6426abc GIT binary patch literal 62863 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 literal 0 HcmV?d00001 diff --git a/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-X-portrait.txt b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-X-portrait.txt new file mode 100644 index 00000000..c48ab3a7 --- /dev/null +++ b/Tests/LayoutTests/__Snapshots__/LayoutItemTests/testToSideMarginsWithInsetPriority.iPhone-X-portrait.txt @@ -0,0 +1,4 @@ + + | + | + | \ No newline at end of file From fca926658d764ab5437627e6f0107c67d4fbcf07 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Tue, 24 Oct 2023 13:53:28 -0700 Subject: [PATCH 36/42] Move extension to UIView-AutoresizingMask.swift (#181) --- .../Layout/NSLayoutConstraint-Attribute.swift | 47 +++++++++++++++++++ Sources/Layout/NSLayoutConstraint.swift | 38 --------------- 2 files changed, 47 insertions(+), 38 deletions(-) create mode 100644 Sources/Layout/NSLayoutConstraint-Attribute.swift diff --git a/Sources/Layout/NSLayoutConstraint-Attribute.swift b/Sources/Layout/NSLayoutConstraint-Attribute.swift new file mode 100644 index 00000000..015db9af --- /dev/null +++ b/Sources/Layout/NSLayoutConstraint-Attribute.swift @@ -0,0 +1,47 @@ +// swiftlint:disable:this file_name +// +// All Contributions by Match Group +// +// Copyright © 2023 Tinder (Match Group, LLC) +// +// Licensed under the Match Group Modified 3-Clause BSD License. +// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. +// + +import UIKit + +extension NSLayoutConstraint.Attribute { + + internal var canonicalAttribute: NSLayoutConstraint.Attribute { + switch self { + case .leftMargin: + return .left + case .rightMargin: + return .right + case .topMargin: + return .top + case .bottomMargin: + return .bottom + case .leadingMargin: + return .leading + case .trailingMargin: + return .trailing + case .centerXWithinMargins: + return .centerX + case .centerYWithinMargins: + return .centerY + case .left, .right, .top, .bottom, .leading, .trailing: + return self + case .centerX, .centerY: + return self + case .width, .height: + return self + case .firstBaseline, .lastBaseline: + return self + case .notAnAttribute: + return self + @unknown default: + return self + } + } +} diff --git a/Sources/Layout/NSLayoutConstraint.swift b/Sources/Layout/NSLayoutConstraint.swift index 4fcccd32..bdf55f8b 100644 --- a/Sources/Layout/NSLayoutConstraint.swift +++ b/Sources/Layout/NSLayoutConstraint.swift @@ -63,44 +63,6 @@ extension NSLayoutConstraint { } } -// MARK: - NSLayoutConstraint.Attribute Extension - -extension NSLayoutConstraint.Attribute { - - internal var canonicalAttribute: NSLayoutConstraint.Attribute { - switch self { - case .leftMargin: - return .left - case .rightMargin: - return .right - case .topMargin: - return .top - case .bottomMargin: - return .bottom - case .leadingMargin: - return .leading - case .trailingMargin: - return .trailing - case .centerXWithinMargins: - return .centerX - case .centerYWithinMargins: - return .centerY - case .left, .right, .top, .bottom, .leading, .trailing: - return self - case .centerX, .centerY: - return self - case .width, .height: - return self - case .firstBaseline, .lastBaseline: - return self - case .notAnAttribute: - return self - @unknown default: - return self - } - } -} - // MARK: - NSLayoutConstraint.Axis Extension extension NSLayoutConstraint.Axis { From 37d082e106cfcb69e213453935274e4b5b9561c2 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Tue, 24 Oct 2023 13:54:32 -0700 Subject: [PATCH 37/42] Move extension to UIViewController.swift (#179) --- Sources/Layout/LayoutAnchoring.swift | 11 ----------- Sources/Layout/UIViewController.swift | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 Sources/Layout/UIViewController.swift diff --git a/Sources/Layout/LayoutAnchoring.swift b/Sources/Layout/LayoutAnchoring.swift index ff32b0f7..6593231e 100644 --- a/Sources/Layout/LayoutAnchoring.swift +++ b/Sources/Layout/LayoutAnchoring.swift @@ -132,14 +132,3 @@ extension NSLayoutDimension { } // swiftlint:enable function_default_parameter_at_end - -extension UIViewController { - - public var safeTop: NSLayoutYAxisAnchor { - view.safeAreaLayoutGuide.top - } - - public var safeBottom: NSLayoutYAxisAnchor { - view.safeAreaLayoutGuide.bottom - } -} diff --git a/Sources/Layout/UIViewController.swift b/Sources/Layout/UIViewController.swift new file mode 100644 index 00000000..d859ccc3 --- /dev/null +++ b/Sources/Layout/UIViewController.swift @@ -0,0 +1,21 @@ +// +// All Contributions by Match Group +// +// Copyright © 2023 Tinder (Match Group, LLC) +// +// Licensed under the Match Group Modified 3-Clause BSD License. +// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. +// + +import UIKit + +extension UIViewController { + + public var safeTop: NSLayoutYAxisAnchor { + view.safeAreaLayoutGuide.top + } + + public var safeBottom: NSLayoutYAxisAnchor { + view.safeAreaLayoutGuide.bottom + } +} From b7ef1c7606bf21cf9243708e79c87b71db7d8a8f Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Tue, 24 Oct 2023 13:54:47 -0700 Subject: [PATCH 38/42] Move extension to NSLayoutDimension.swift (#178) --- Sources/Layout/LayoutAnchoring.swift | 36 ------------------- Sources/Layout/NSLayoutDimension.swift | 49 ++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 36 deletions(-) create mode 100644 Sources/Layout/NSLayoutDimension.swift diff --git a/Sources/Layout/LayoutAnchoring.swift b/Sources/Layout/LayoutAnchoring.swift index 6593231e..244d16bc 100644 --- a/Sources/Layout/LayoutAnchoring.swift +++ b/Sources/Layout/LayoutAnchoring.swift @@ -95,40 +95,4 @@ extension NSLayoutYAxisAnchor { } } -extension NSLayoutDimension { - - public func constraint( - is relation: NSLayoutConstraint.Relation = .equal, - to anchor: NSLayoutDimension, - constant: CGFloat = 0 - ) -> NSLayoutConstraint { - switch relation { - case .equal: - return constraint(equalTo: anchor, constant: constant) - case .greaterThanOrEqual: - return constraint(greaterThanOrEqualTo: anchor, constant: constant) - case .lessThanOrEqual: - return constraint(lessThanOrEqualTo: anchor, constant: constant) - @unknown default: - return constraint(equalTo: anchor, constant: constant) - } - } - - public func constraint( - is relation: NSLayoutConstraint.Relation = .equal, - _ constant: CGFloat - ) -> NSLayoutConstraint { - switch relation { - case .equal: - return constraint(equalToConstant: constant) - case .greaterThanOrEqual: - return constraint(greaterThanOrEqualToConstant: constant) - case .lessThanOrEqual: - return constraint(lessThanOrEqualToConstant: constant) - @unknown default: - return constraint(equalToConstant: constant) - } - } -} - // swiftlint:enable function_default_parameter_at_end diff --git a/Sources/Layout/NSLayoutDimension.swift b/Sources/Layout/NSLayoutDimension.swift new file mode 100644 index 00000000..ab17daf5 --- /dev/null +++ b/Sources/Layout/NSLayoutDimension.swift @@ -0,0 +1,49 @@ +// +// All Contributions by Match Group +// +// Copyright © 2023 Tinder (Match Group, LLC) +// +// Licensed under the Match Group Modified 3-Clause BSD License. +// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. +// + +import UIKit + +extension NSLayoutDimension { + + // swiftlint:disable function_default_parameter_at_end + public func constraint( + is relation: NSLayoutConstraint.Relation = .equal, + to anchor: NSLayoutDimension, + constant: CGFloat = 0 + ) -> NSLayoutConstraint { + switch relation { + case .equal: + return constraint(equalTo: anchor, constant: constant) + case .greaterThanOrEqual: + return constraint(greaterThanOrEqualTo: anchor, constant: constant) + case .lessThanOrEqual: + return constraint(lessThanOrEqualTo: anchor, constant: constant) + @unknown default: + return constraint(equalTo: anchor, constant: constant) + } + } + + public func constraint( + is relation: NSLayoutConstraint.Relation = .equal, + _ constant: CGFloat + ) -> NSLayoutConstraint { + switch relation { + case .equal: + return constraint(equalToConstant: constant) + case .greaterThanOrEqual: + return constraint(greaterThanOrEqualToConstant: constant) + case .lessThanOrEqual: + return constraint(lessThanOrEqualToConstant: constant) + @unknown default: + return constraint(equalToConstant: constant) + } + } + + // swiftlint:enable function_default_parameter_at_end +} From 170c5f4fbb43cef85ab03bf3e5afce388d9ad20f Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Tue, 24 Oct 2023 13:55:09 -0700 Subject: [PATCH 39/42] Move Collection extension to Collection.swift (#176) --- Sources/Layout/Collection.swift | 25 +++++++++++++++++++++++++ Sources/Layout/Layout.swift | 17 ----------------- 2 files changed, 25 insertions(+), 17 deletions(-) create mode 100644 Sources/Layout/Collection.swift diff --git a/Sources/Layout/Collection.swift b/Sources/Layout/Collection.swift new file mode 100644 index 00000000..ac35825f --- /dev/null +++ b/Sources/Layout/Collection.swift @@ -0,0 +1,25 @@ +// +// All Contributions by Match Group +// +// Copyright © 2023 Tinder (Match Group, LLC) +// +// Licensed under the Match Group Modified 3-Clause BSD License. +// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. +// + +extension Collection where Element == Layout { + + /// Activates all constraints of each instance + @preconcurrency + @MainActor + public func activate() { + forEach { $0.activate() } + } + + /// Deactivates all constraints of each instance + @preconcurrency + @MainActor + public func deactivate() { + forEach { $0.deactivate() } + } +} diff --git a/Sources/Layout/Layout.swift b/Sources/Layout/Layout.swift index edc94083..b0ff254c 100644 --- a/Sources/Layout/Layout.swift +++ b/Sources/Layout/Layout.swift @@ -664,20 +664,3 @@ public final class Layout { // swiftlint:disable:this type_body_length view?.updateConstraintsIfNeeded() } } - -extension Collection where Element == Layout { - - /// Activates all constraints of each instance - @preconcurrency - @MainActor - public func activate() { - forEach { $0.activate() } - } - - /// Deactivates all constraints of each instance - @preconcurrency - @MainActor - public func deactivate() { - forEach { $0.deactivate() } - } -} From 42609633229ba8cf739ada05b7d0e0bd0e2b9400 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Tue, 24 Oct 2023 13:55:36 -0700 Subject: [PATCH 40/42] Move extension to UILayoutSupport.swift (#173) --- Sources/Layout/LayoutAnchoring.swift | 7 ------- Sources/Layout/UILayoutSupport.swift | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 Sources/Layout/UILayoutSupport.swift diff --git a/Sources/Layout/LayoutAnchoring.swift b/Sources/Layout/LayoutAnchoring.swift index 244d16bc..455dbe20 100644 --- a/Sources/Layout/LayoutAnchoring.swift +++ b/Sources/Layout/LayoutAnchoring.swift @@ -46,13 +46,6 @@ extension UILayoutGuide: LayoutBoundary, LayoutCenter, LayoutSize { public var height: NSLayoutDimension { heightAnchor } } -extension UILayoutSupport { - - public var top: NSLayoutYAxisAnchor { topAnchor } - public var bottom: NSLayoutYAxisAnchor { bottomAnchor } - public var height: NSLayoutDimension { heightAnchor } -} - // swiftlint:disable function_default_parameter_at_end extension NSLayoutXAxisAnchor { diff --git a/Sources/Layout/UILayoutSupport.swift b/Sources/Layout/UILayoutSupport.swift new file mode 100644 index 00000000..6cf2c20a --- /dev/null +++ b/Sources/Layout/UILayoutSupport.swift @@ -0,0 +1,17 @@ +// +// All Contributions by Match Group +// +// Copyright © 2023 Tinder (Match Group, LLC) +// +// Licensed under the Match Group Modified 3-Clause BSD License. +// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. +// + +import UIKit + +extension UILayoutSupport { + + public var top: NSLayoutYAxisAnchor { topAnchor } + public var bottom: NSLayoutYAxisAnchor { bottomAnchor } + public var height: NSLayoutDimension { heightAnchor } +} From 331e575eb6f9707a1d20d07020631c394ed8353e Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Tue, 24 Oct 2023 16:04:57 -0700 Subject: [PATCH 41/42] Move extension to NSLayoutConstraint-Axis.swift (#180) * Move extension to NSLayoutConstraint-Axis.swift * Improve implementation Co-authored-by: Christopher Fuller --------- Co-authored-by: Christopher Fuller --- Sources/Layout/NSLayoutConstraint-Axis.swift | 36 ++++++++++++++++++++ Sources/Layout/NSLayoutConstraint.swift | 27 --------------- 2 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 Sources/Layout/NSLayoutConstraint-Axis.swift diff --git a/Sources/Layout/NSLayoutConstraint-Axis.swift b/Sources/Layout/NSLayoutConstraint-Axis.swift new file mode 100644 index 00000000..ca098176 --- /dev/null +++ b/Sources/Layout/NSLayoutConstraint-Axis.swift @@ -0,0 +1,36 @@ +// swiftlint:disable:this file_name +// +// All Contributions by Match Group +// +// Copyright © 2023 Tinder (Match Group, LLC) +// +// Licensed under the Match Group Modified 3-Clause BSD License. +// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. +// + +import UIKit + +extension NSLayoutConstraint.Axis { + + internal var orientation: String { + switch self { + case .horizontal: + return "H" + case .vertical: + return "V" + @unknown default: + return "H" + } + } + + internal var attribute: NSLayoutConstraint.Attribute { + switch self { + case .horizontal: + return .centerX + case .vertical: + return .centerY + @unknown default: + return .centerX + } + } +} diff --git a/Sources/Layout/NSLayoutConstraint.swift b/Sources/Layout/NSLayoutConstraint.swift index bdf55f8b..0a9b2782 100644 --- a/Sources/Layout/NSLayoutConstraint.swift +++ b/Sources/Layout/NSLayoutConstraint.swift @@ -63,33 +63,6 @@ extension NSLayoutConstraint { } } -// MARK: - NSLayoutConstraint.Axis Extension - -extension NSLayoutConstraint.Axis { - - internal var orientation: String { - switch self { - case .horizontal: - return "H" - case .vertical: - return "V" - @unknown default: - return "H" - } - } - - internal var attribute: NSLayoutConstraint.Attribute { - switch self { - case .horizontal: - return .centerX - case .vertical: - return .centerY - @unknown default: - return .notAnAttribute - } - } -} - // MARK: - NSLayoutConstraint Array Helpers extension Array where Element == NSLayoutConstraint { From 5db7d32a6531987798269d83d394ebcf48a4ae68 Mon Sep 17 00:00:00 2001 From: Garric Nahapetian <31713341+tinder-garricnahapetian@users.noreply.github.com> Date: Wed, 25 Oct 2023 12:29:14 -0700 Subject: [PATCH 42/42] Move testCanonicalAttribute (#214) --- .../NSLayoutConstraint-AttributeTests.swift | 47 +++++++++++++++++++ .../LayoutTests/NSLayoutConstraintTests.swift | 30 ------------ 2 files changed, 47 insertions(+), 30 deletions(-) create mode 100644 Tests/LayoutTests/NSLayoutConstraint-AttributeTests.swift diff --git a/Tests/LayoutTests/NSLayoutConstraint-AttributeTests.swift b/Tests/LayoutTests/NSLayoutConstraint-AttributeTests.swift new file mode 100644 index 00000000..04efbcef --- /dev/null +++ b/Tests/LayoutTests/NSLayoutConstraint-AttributeTests.swift @@ -0,0 +1,47 @@ +// swiftlint:disable:this file_name +// +// All Contributions by Match Group +// +// Copyright © 2023 Tinder (Match Group, LLC) +// +// Licensed under the Match Group Modified 3-Clause BSD License. +// See https://github.com/Tinder/Layout/blob/main/LICENSE for license information. +// + +@testable import Layout +import Nimble +import XCTest + +@MainActor +final class NSLayoutConstraintAttributeTests: XCTestCase { + + func testCanonicalAttribute() { + + expect(NSLayoutConstraint.Attribute.leftMargin.canonicalAttribute) == .left + expect(NSLayoutConstraint.Attribute.rightMargin.canonicalAttribute) == .right + expect(NSLayoutConstraint.Attribute.topMargin.canonicalAttribute) == .top + expect(NSLayoutConstraint.Attribute.bottomMargin.canonicalAttribute) == .bottom + expect(NSLayoutConstraint.Attribute.leadingMargin.canonicalAttribute) == .leading + expect(NSLayoutConstraint.Attribute.trailingMargin.canonicalAttribute) == .trailing + expect(NSLayoutConstraint.Attribute.centerXWithinMargins.canonicalAttribute) == .centerX + expect(NSLayoutConstraint.Attribute.centerYWithinMargins.canonicalAttribute) == .centerY + + expect(NSLayoutConstraint.Attribute.left.canonicalAttribute) == .left + expect(NSLayoutConstraint.Attribute.right.canonicalAttribute) == .right + expect(NSLayoutConstraint.Attribute.top.canonicalAttribute) == .top + expect(NSLayoutConstraint.Attribute.bottom.canonicalAttribute) == .bottom + expect(NSLayoutConstraint.Attribute.leading.canonicalAttribute) == .leading + expect(NSLayoutConstraint.Attribute.trailing.canonicalAttribute) == .trailing + + expect(NSLayoutConstraint.Attribute.centerX.canonicalAttribute) == .centerX + expect(NSLayoutConstraint.Attribute.centerY.canonicalAttribute) == .centerY + + expect(NSLayoutConstraint.Attribute.width.canonicalAttribute) == .width + expect(NSLayoutConstraint.Attribute.height.canonicalAttribute) == .height + + expect(NSLayoutConstraint.Attribute.firstBaseline.canonicalAttribute) == .firstBaseline + expect(NSLayoutConstraint.Attribute.lastBaseline.canonicalAttribute) == .lastBaseline + + expect(NSLayoutConstraint.Attribute.notAnAttribute.canonicalAttribute) == .notAnAttribute + } +} diff --git a/Tests/LayoutTests/NSLayoutConstraintTests.swift b/Tests/LayoutTests/NSLayoutConstraintTests.swift index 644b0fc3..fbf8f5c5 100644 --- a/Tests/LayoutTests/NSLayoutConstraintTests.swift +++ b/Tests/LayoutTests/NSLayoutConstraintTests.swift @@ -166,36 +166,6 @@ final class NSLayoutConstraintTests: XCTestCase { expect(constraint.priority) == .required } - func testCanonicalAttribute() { - - expect(NSLayoutConstraint.Attribute.leftMargin.canonicalAttribute) == .left - expect(NSLayoutConstraint.Attribute.rightMargin.canonicalAttribute) == .right - expect(NSLayoutConstraint.Attribute.topMargin.canonicalAttribute) == .top - expect(NSLayoutConstraint.Attribute.bottomMargin.canonicalAttribute) == .bottom - expect(NSLayoutConstraint.Attribute.leadingMargin.canonicalAttribute) == .leading - expect(NSLayoutConstraint.Attribute.trailingMargin.canonicalAttribute) == .trailing - expect(NSLayoutConstraint.Attribute.centerXWithinMargins.canonicalAttribute) == .centerX - expect(NSLayoutConstraint.Attribute.centerYWithinMargins.canonicalAttribute) == .centerY - - expect(NSLayoutConstraint.Attribute.left.canonicalAttribute) == .left - expect(NSLayoutConstraint.Attribute.right.canonicalAttribute) == .right - expect(NSLayoutConstraint.Attribute.top.canonicalAttribute) == .top - expect(NSLayoutConstraint.Attribute.bottom.canonicalAttribute) == .bottom - expect(NSLayoutConstraint.Attribute.leading.canonicalAttribute) == .leading - expect(NSLayoutConstraint.Attribute.trailing.canonicalAttribute) == .trailing - - expect(NSLayoutConstraint.Attribute.centerX.canonicalAttribute) == .centerX - expect(NSLayoutConstraint.Attribute.centerY.canonicalAttribute) == .centerY - - expect(NSLayoutConstraint.Attribute.width.canonicalAttribute) == .width - expect(NSLayoutConstraint.Attribute.height.canonicalAttribute) == .height - - expect(NSLayoutConstraint.Attribute.firstBaseline.canonicalAttribute) == .firstBaseline - expect(NSLayoutConstraint.Attribute.lastBaseline.canonicalAttribute) == .lastBaseline - - expect(NSLayoutConstraint.Attribute.notAnAttribute.canonicalAttribute) == .notAnAttribute - } - func testOrientation() { // GIVEN