forked from mbk-lab/rui_orig
Added IsTimingFunctionValid function
This commit is contained in:
parent
f3f3ddb084
commit
38a8fd2920
|
@ -5,7 +5,7 @@
|
|||
* Added "overflow", "arrow", "arrow-align", "arrow-size", "arrow-width", and "arrow-offset" properties
|
||||
* Added "@ruiArrowSize" and "@ruiArrowWidth" constants to the default theme
|
||||
* Added Transition, Transitions, and SetTransition functions to the ViewStyle interface
|
||||
* Added GetOverflow, and GetTransitions functions
|
||||
* Added GetOverflow, IsTimingFunctionValid, and GetTransitions functions
|
||||
* Changed GetTransition functions
|
||||
|
||||
# v0.8.0
|
||||
|
|
42
animation.go
42
animation.go
|
@ -493,37 +493,41 @@ func (animation *animationData) writeTransitionString(tag string, buffer *string
|
|||
|
||||
func (animation *animationData) timingFunctionCSS(session Session) string {
|
||||
if timingFunction, ok := stringProperty(animation, TimingFunction, session); ok {
|
||||
if timingFunction, ok = session.resolveConstants(timingFunction); ok && validateTimingFunction(timingFunction) {
|
||||
if timingFunction, ok = session.resolveConstants(timingFunction); ok && IsTimingFunctionValid(timingFunction, session) {
|
||||
return timingFunction
|
||||
}
|
||||
}
|
||||
return ("ease")
|
||||
}
|
||||
|
||||
func validateTimingFunction(timingFunction string) bool {
|
||||
// IsTimingFunctionValid returns "true" if the "timingFunction" argument is the valid timing function.
|
||||
func IsTimingFunctionValid(timingFunction string, session Session) bool {
|
||||
switch timingFunction {
|
||||
case "", EaseTiming, EaseInTiming, EaseOutTiming, EaseInOutTiming, LinearTiming:
|
||||
return true
|
||||
}
|
||||
|
||||
size := len(timingFunction)
|
||||
if size > 0 && timingFunction[size-1] == ')' {
|
||||
if index := strings.IndexRune(timingFunction, '('); index > 0 {
|
||||
args := timingFunction[index+1 : size-1]
|
||||
switch timingFunction[:index] {
|
||||
case "steps":
|
||||
if _, err := strconv.Atoi(strings.Trim(args, " \t\n")); err == nil {
|
||||
return true
|
||||
}
|
||||
|
||||
case "cubic-bezier":
|
||||
if params := strings.Split(args, ","); len(params) == 4 {
|
||||
for _, param := range params {
|
||||
if _, err := strconv.ParseFloat(strings.Trim(param, " \t\n"), 64); err != nil {
|
||||
return false
|
||||
}
|
||||
if timingFunc, ok := session.resolveConstants(timingFunction); ok {
|
||||
timingFunction = timingFunc
|
||||
size := len(timingFunction)
|
||||
if size > 0 && timingFunction[size-1] == ')' {
|
||||
if index := strings.IndexRune(timingFunction, '('); index > 0 {
|
||||
args := timingFunction[index+1 : size-1]
|
||||
switch timingFunction[:index] {
|
||||
case "steps":
|
||||
if _, err := strconv.Atoi(strings.Trim(args, " \t\n")); err == nil {
|
||||
return true
|
||||
}
|
||||
|
||||
case "cubic-bezier":
|
||||
if params := strings.Split(args, ","); len(params) == 4 {
|
||||
for _, param := range params {
|
||||
if _, err := strconv.ParseFloat(strings.Trim(param, " \t\n"), 64); err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,7 +59,6 @@ ul:focus {
|
|||
outline: none;
|
||||
}
|
||||
|
||||
|
||||
.ruiRoot {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
|
|
Loading…
Reference in New Issue