Skip to content

Commit

Permalink
Release 25.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
robot-divkit committed May 29, 2023
1 parent 63eaf6e commit 23a53db
Show file tree
Hide file tree
Showing 50 changed files with 1,277 additions and 281 deletions.
2 changes: 1 addition & 1 deletion DivKit/DivKitInfo.swift
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
public enum DivKitInfo {
public static let version = "25.1.0"
public static let version = "25.2.0"
}
3 changes: 3 additions & 0 deletions DivKit/Expressions/Functions/Function.swift
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@ struct FunctionSignature: Decodable {
case datetime
case color
case url
case dict

func check(arg: Any) -> Bool {
type(of: arg) == swiftType
Expand All @@ -255,6 +256,8 @@ struct FunctionSignature: Decodable {
return Color.self
case .url:
return URL.self
case .dict:
return [String: Any].self
}
}

Expand Down
4 changes: 0 additions & 4 deletions DivKit/Expressions/Serialization/Expression+Helpers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,6 @@ func deserialize<T: ValidSerializationValue, U>(
)))
}

if case let .value(value) = result, validator?.isValid(value) == false {
return .failure(NonEmptyArray(.invalidValue(result: result, value: value)))
}

return .success(result)
}

Expand Down
6 changes: 6 additions & 0 deletions DivKit/Extensions/DivData/DivDataPatchExtensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ extension DivContainer {
columnSpan: columnSpan,
contentAlignmentHorizontal: contentAlignmentHorizontal,
contentAlignmentVertical: contentAlignmentVertical,
disappearActions: disappearActions,
doubletapActions: doubletapActions,
extensions: extensions,
focus: focus,
Expand Down Expand Up @@ -140,6 +141,7 @@ extension DivGallery {
crossContentAlignment: crossContentAlignment,
crossSpacing: crossSpacing,
defaultItem: defaultItem,
disappearActions: disappearActions,
extensions: extensions,
focus: focus,
height: height,
Expand Down Expand Up @@ -184,6 +186,7 @@ extension DivGrid {
columnSpan: columnSpan,
contentAlignmentHorizontal: contentAlignmentHorizontal,
contentAlignmentVertical: contentAlignmentVertical,
disappearActions: disappearActions,
doubletapActions: doubletapActions,
extensions: extensions,
focus: focus,
Expand Down Expand Up @@ -221,6 +224,7 @@ extension DivPager {
border: border,
columnSpan: columnSpan,
defaultItem: defaultItem,
disappearActions: disappearActions,
extensions: extensions,
focus: focus,
height: height,
Expand Down Expand Up @@ -268,6 +272,7 @@ extension DivState {
border: border,
columnSpan: columnSpan,
defaultStateId: defaultStateId,
disappearActions: disappearActions,
divId: divId,
extensions: extensions,
focus: focus,
Expand Down Expand Up @@ -310,6 +315,7 @@ extension DivTabs {
background: background,
border: border,
columnSpan: columnSpan,
disappearActions: disappearActions,
dynamicHeight: dynamicHeight,
extensions: extensions,
focus: focus,
Expand Down
1 change: 1 addition & 0 deletions DivKit/generated_sources/DivBase.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public protocol DivBase: DivBlockModeling {
var background: [DivBackground]? { get } // at least 1 elements
var border: DivBorder { get }
var columnSpan: Expression<Int>? { get } // constraint: number >= 0
var disappearActions: [DivDisappearAction]? { get } // at least 1 elements
var extensions: [DivExtension]? { get } // at least 1 elements
var focus: DivFocus? { get }
var height: DivSize { get } // default value: .divWrapContentSize(DivWrapContentSize())
Expand Down
52 changes: 34 additions & 18 deletions DivKit/generated_sources/DivContainer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public final class DivContainer: DivBase {
}

public final class Separator {
public let margins: DivEdgeInsets
public let showAtEnd: Expression<Bool> // default value: false
public let showAtStart: Expression<Bool> // default value: false
public let showBetween: Expression<Bool> // default value: true
Expand All @@ -36,6 +37,9 @@ public final class DivContainer: DivBase {
resolver.resolveNumericValue(expression: showBetween) ?? true
}

static let marginsValidator: AnyValueValidator<DivEdgeInsets> =
makeNoOpValueValidator()

static let showAtEndValidator: AnyValueValidator<Bool> =
makeNoOpValueValidator()

Expand All @@ -46,11 +50,13 @@ public final class DivContainer: DivBase {
makeNoOpValueValidator()

init(
margins: DivEdgeInsets? = nil,
showAtEnd: Expression<Bool>? = nil,
showAtStart: Expression<Bool>? = nil,
showBetween: Expression<Bool>? = nil,
style: DivDrawable
) {
self.margins = margins ?? DivEdgeInsets()
self.showAtEnd = showAtEnd ?? .value(false)
self.showAtStart = showAtStart ?? .value(false)
self.showBetween = showBetween ?? .value(true)
Expand All @@ -72,6 +78,7 @@ public final class DivContainer: DivBase {
public let columnSpan: Expression<Int>? // constraint: number >= 0
public let contentAlignmentHorizontal: Expression<DivAlignmentHorizontal> // default value: left
public let contentAlignmentVertical: Expression<DivAlignmentVertical> // default value: top
public let disappearActions: [DivDisappearAction]? // at least 1 elements
public let doubletapActions: [DivAction]? // at least 1 elements
public let extensions: [DivExtension]? // at least 1 elements
public let focus: DivFocus?
Expand Down Expand Up @@ -177,6 +184,9 @@ public final class DivContainer: DivBase {
static let contentAlignmentVerticalValidator: AnyValueValidator<DivAlignmentVertical> =
makeNoOpValueValidator()

static let disappearActionsValidator: AnyArrayValueValidator<DivDisappearAction> =
makeArrayValidator(minItems: 1)

static let doubletapActionsValidator: AnyArrayValueValidator<DivAction> =
makeArrayValidator(minItems: 1)

Expand Down Expand Up @@ -266,6 +276,7 @@ public final class DivContainer: DivBase {
columnSpan: Expression<Int>?,
contentAlignmentHorizontal: Expression<DivAlignmentHorizontal>?,
contentAlignmentVertical: Expression<DivAlignmentVertical>?,
disappearActions: [DivDisappearAction]?,
doubletapActions: [DivAction]?,
extensions: [DivExtension]?,
focus: DivFocus?,
Expand Down Expand Up @@ -305,6 +316,7 @@ public final class DivContainer: DivBase {
self.columnSpan = columnSpan
self.contentAlignmentHorizontal = contentAlignmentHorizontal ?? .value(.left)
self.contentAlignmentVertical = contentAlignmentVertical ?? .value(.top)
self.disappearActions = disappearActions
self.doubletapActions = doubletapActions
self.extensions = extensions
self.focus = focus
Expand Down Expand Up @@ -366,61 +378,62 @@ extension DivContainer: Equatable {
}
guard
lhs.contentAlignmentVertical == rhs.contentAlignmentVertical,
lhs.doubletapActions == rhs.doubletapActions,
lhs.extensions == rhs.extensions
lhs.disappearActions == rhs.disappearActions,
lhs.doubletapActions == rhs.doubletapActions
else {
return false
}
guard
lhs.extensions == rhs.extensions,
lhs.focus == rhs.focus,
lhs.height == rhs.height,
lhs.id == rhs.id
lhs.height == rhs.height
else {
return false
}
guard
lhs.id == rhs.id,
lhs.items == rhs.items,
lhs.layoutMode == rhs.layoutMode,
lhs.lineSeparator == rhs.lineSeparator
lhs.layoutMode == rhs.layoutMode
else {
return false
}
guard
lhs.lineSeparator == rhs.lineSeparator,
lhs.longtapActions == rhs.longtapActions,
lhs.margins == rhs.margins,
lhs.orientation == rhs.orientation
lhs.margins == rhs.margins
else {
return false
}
guard
lhs.orientation == rhs.orientation,
lhs.paddings == rhs.paddings,
lhs.rowSpan == rhs.rowSpan,
lhs.selectedActions == rhs.selectedActions
lhs.rowSpan == rhs.rowSpan
else {
return false
}
guard
lhs.selectedActions == rhs.selectedActions,
lhs.separator == rhs.separator,
lhs.tooltips == rhs.tooltips,
lhs.transform == rhs.transform
lhs.tooltips == rhs.tooltips
else {
return false
}
guard
lhs.transform == rhs.transform,
lhs.transitionChange == rhs.transitionChange,
lhs.transitionIn == rhs.transitionIn,
lhs.transitionOut == rhs.transitionOut
lhs.transitionIn == rhs.transitionIn
else {
return false
}
guard
lhs.transitionOut == rhs.transitionOut,
lhs.transitionTriggers == rhs.transitionTriggers,
lhs.visibility == rhs.visibility,
lhs.visibilityAction == rhs.visibilityAction
lhs.visibility == rhs.visibility
else {
return false
}
guard
lhs.visibilityAction == rhs.visibilityAction,
lhs.visibilityActions == rhs.visibilityActions,
lhs.width == rhs.width
else {
Expand Down Expand Up @@ -448,6 +461,7 @@ extension DivContainer: Serializable {
result["column_span"] = columnSpan?.toValidSerializationValue()
result["content_alignment_horizontal"] = contentAlignmentHorizontal.toValidSerializationValue()
result["content_alignment_vertical"] = contentAlignmentVertical.toValidSerializationValue()
result["disappear_actions"] = disappearActions?.map { $0.toDictionary() }
result["doubletap_actions"] = doubletapActions?.map { $0.toDictionary() }
result["extensions"] = extensions?.map { $0.toDictionary() }
result["focus"] = focus?.toDictionary()
Expand Down Expand Up @@ -481,13 +495,14 @@ extension DivContainer: Serializable {
extension DivContainer.Separator: Equatable {
public static func ==(lhs: DivContainer.Separator, rhs: DivContainer.Separator) -> Bool {
guard
lhs.margins == rhs.margins,
lhs.showAtEnd == rhs.showAtEnd,
lhs.showAtStart == rhs.showAtStart,
lhs.showBetween == rhs.showBetween
lhs.showAtStart == rhs.showAtStart
else {
return false
}
guard
lhs.showBetween == rhs.showBetween,
lhs.style == rhs.style
else {
return false
Expand All @@ -500,6 +515,7 @@ extension DivContainer.Separator: Equatable {
extension DivContainer.Separator: Serializable {
public func toDictionary() -> [String: ValidSerializationValue] {
var result: [String: ValidSerializationValue] = [:]
result["margins"] = margins.toDictionary()
result["show_at_end"] = showAtEnd.toValidSerializationValue()
result["show_at_start"] = showAtStart.toValidSerializationValue()
result["show_between"] = showBetween.toValidSerializationValue()
Expand Down
Loading

0 comments on commit 23a53db

Please sign in to comment.