import { FlexboxLayout } from '@nativescript/core/ui/layouts/flexbox-layout' ; function set ( what ) { return function ( args ) { let containerCss = ' #container { ' + args . object . tag + ' }' ; args . object . page . addCss ( containerCss ) ; } ; } export const flexDirection = set ( 'flexDirection' ) ; export const flexWrap = set ( 'flexWrap' ) ; export const justifyContent = set ( 'justifyContent' ) ; export const alignItems = set ( 'alignItems' ) ; export const alignContent = set ( 'alignContent' ) ; let lastSelection = null ; export function select ( args ) { if ( lastSelection ) { lastSelection . selected = 'no' ; lastSelection . notify ( { eventName : 'selectedChange' , object : lastSelection } ) ; } lastSelection = args . object ; if ( lastSelection ) { lastSelection . selected = 'yes' ; lastSelection . notify ( { eventName : 'selectedChange' , object : lastSelection } ) ; } } let whenSelected = ( handler ) => ( args ) => lastSelection && handler ( args ) ; let setProperty = ( setter ) => ( value ) => setter ( lastSelection , value ) ; let intHandler = ( handler ) => ( { object } ) => handler ( parseInt ( object . text ) ) ; let stringHandler = ( handler ) => ( { object } ) => handler ( object . text ) ; let booleanHandler = ( handler ) => ( { object } ) => handler ( object . text === 'true' ) ; export const order = whenSelected ( intHandler ( setProperty ( FlexboxLayout . setOrder ) ) ) ; export const flexGrow = whenSelected ( intHandler ( setProperty ( FlexboxLayout . setFlexGrow ) ) ) ; export const flexShrink = whenSelected ( intHandler ( setProperty ( FlexboxLayout . setFlexShrink ) ) ) ; export const alignSelf = whenSelected ( stringHandler ( setProperty ( FlexboxLayout . setAlignSelf ) ) ) ; export const flexWrapBefore = whenSelected ( booleanHandler ( setProperty ( FlexboxLayout . setFlexWrapBefore ) ) ) ;