@@ -1708,18 +1708,18 @@ export function test_CascadingClassNamesAppliesAfterPageLoad() {
17081708export function test_evaluateCssCalcExpression ( ) {
17091709 TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(1px + 1px)' ) , '2px' , 'Simple calc (1)' ) ;
17101710 TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(50px - (20px - 30px))' ) , '60px' , 'Simple calc (2)' ) ;
1711- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100px - (100px - 100%))' ) , '100%' , 'Simple calc (3)' ) ;
1712- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100px + (100px - 100%))' ) , 'calc(200px - 100%)' , 'Simple calc (4)' ) ;
1713- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100% - 10px + 20px)' ) , 'calc(100% + 10px)' , 'Simple calc (5)' ) ;
1714- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100% + 10px - 20px)' ) , 'calc(100% - 10px)' , 'Simple calc (6)' ) ;
1715- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(10.px + .0px)' ) , '10px ' , 'Simple calc (8)' ) ;
1711+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100px - (100px - 100%))' ) , 'calc(100px - (100px - 100%)) ' , 'Simple calc (3)' ) ;
1712+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100px + (100px - 100%))' ) , 'calc(100px + (100px - 100%) )' , 'Simple calc (4)' ) ;
1713+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100% - 10px + 20px)' ) , 'calc(100% - 10px + 20px )' , 'Simple calc (5)' ) ;
1714+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100% + 10px - 20px)' ) , 'calc(100% + 10px - 20px )' , 'Simple calc (6)' ) ;
1715+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(10.px + .0px)' ) , 'calc(10.px + .0px) ' , 'Simple calc (8)' ) ;
17161716 TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'a calc(1px + 1px)' ) , 'a 2px' , 'Ignore value surrounding calc function (1)' ) ;
17171717 TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(1px + 1px) a' ) , '2px a' , 'Ignore value surrounding calc function (2)' ) ;
17181718 TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'a calc(1px + 1px) b' ) , 'a 2px b' , 'Ignore value surrounding calc function (3)' ) ;
17191719 TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'a calc(1px + 1px) b calc(1em + 2em) c' ) , 'a 2px b 3em c' , 'Ignore value surrounding calc function (4)' ) ;
17201720 TKUnit . assertEqual ( _evaluateCssCalcExpression ( `calc(\n1px \n* 2 \n* 1.5)` ) , '3px' , 'Handle new lines' ) ;
17211721 TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(1/100)' ) , '0.01' , 'Handle precision correctly (1)' ) ;
1722- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(5/1000000)' ) , '0.00001 ' , 'Handle precision correctly (2)' ) ;
1722+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(5/1000000)' ) , '0.000005 ' , 'Handle precision correctly (2)' ) ;
17231723 TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(5/100000)' ) , '0.00005' , 'Handle precision correctly (3)' ) ;
17241724}
17251725
@@ -1826,6 +1826,37 @@ export function test_nested_css_calc() {
18261826 TKUnit . assertDeepEqual ( stack . width , { unit : '%' , value : 0.5 } , 'Stack - width === 50%' ) ;
18271827}
18281828
1829+ export function test_evaluateCssColorMixExpression ( ) {
1830+ TKUnit . assertEqual ( new Color ( 'color-mix(in lch longer hue, hsl(200deg 50% 80%), coral)' ) . toRgbString ( ) , 'rgba(136, 202, 134, 1.00)' , 'Color mix (1)' ) ;
1831+ TKUnit . assertEqual ( new Color ( 'color-mix(in hsl, hsl(200 50 80), coral 80%)' ) . toRgbString ( ) , 'rgba(247, 103, 149, 1.00)' , 'Color mix (2)' ) ;
1832+ TKUnit . assertEqual ( new Color ( 'color-mix(in srgb, plum, #f00)' ) . toRgbString ( ) , 'rgba(238, 80, 110, 1.00)' , 'Color mix (4)' ) ;
1833+ TKUnit . assertEqual ( new Color ( 'color-mix(in lab, plum 60%, #f00 50%)' ) . toRgbString ( ) , 'rgba(247, 112, 125, 1.00)' , 'Color mix (5)' ) ;
1834+ TKUnit . assertEqual ( new Color ( 'color-mix(in --swop5c, red, blue)' ) . toRgbString ( ) , 'rgba(0, 0, 255, 0.00)' , 'Color mix (6)' ) ;
1835+ }
1836+
1837+ export function test_nested_css_color_mix ( ) {
1838+ const page = helper . getClearCurrentPage ( ) ;
1839+
1840+ const stack = new StackLayout ( ) ;
1841+ stack . css = `
1842+ StackLayout.coral {
1843+ background-color: color-mix(in hsl, hsl(200 50 80), coral 80%);
1844+ }
1845+ ` ;
1846+
1847+ const label = new Label ( ) ;
1848+ page . content = stack ;
1849+ stack . addChild ( label ) ;
1850+
1851+ stack . className = 'coral' ;
1852+
1853+ TKUnit . assertEqual ( ( stack . backgroundColor as Color ) . toRgbString ( ) , 'rgba(247, 103, 149, 1.00)' , 'Stack - backgroundColor === color-mix(in hsl, hsl(200 50 80), coral 80%)' ) ;
1854+
1855+ ( stack as any ) . style = `background-color: color-mix(in --swop5c, red, blue);` ;
1856+
1857+ TKUnit . assertDeepEqual ( ( stack . backgroundColor as Color ) . toRgbString ( ) , 'rgba(0, 0, 255, 0.00)' , 'Stack - backgroundColor === color-mix(in --swop5c, red, blue)' ) ;
1858+ }
1859+
18291860export function test_css_variables ( ) {
18301861 const blackColor = '#000000' ;
18311862 const redColor = '#FF0000' ;
0 commit comments