mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
f1563c9890
Initial commit Add notification for divkit Allow overwrite for migration [migration] browser/bitbucket/personal/booster/divkit Note: mandatory check (NEED_CHECK) was skipped DivKit files moved dIVKIT-0: Fix ts builder build update div-gallery visibility screenshots update div-gallery visibility screens a.yaml cleanup updated codegen scripts change gallery alignment change internal types in expressions removed copyrights remove permissions TemplatesSupportTests refactoring Ничего не поменялось. Отрефакторил и почистил тесты. Split package.json send all public removed yandex-team links URL added type as ArgumentType added camera permission description safe area insets for errors count view `EdgeInsets` for debug view with errors count. Needed for fullscreen divs. Naming corresponds to mapping `EdgeInsets` to div-variables. Will be used here: https://nda.ya.ru/t/Lhr5Lxgb5KN6nX fixed compiler warnings fix DivKitComponents variables setup, add update func fix DivKitComponents variables setup, add update func authors clean up Удалил коллег из инфраструктуры, тестирования и мессенджера. Половину людей я вообще тут не знаю. Список какой-то косячный, в нём, например, @booster и @askvortsov нет. Предлагаю заново вручную составить и записать туда тех, кто точно дивкитом занимался, а не просто мимо проходил. Fix DivKit pods compilability Fix DivKit pods compilability use only english in demo app translate divKit demo app russian text Scroll when keyboard opened Scroll when keyboard opened Fix gallery scroll in a11y Это копия пр-а, который я делал в репо алискита: https://bitbucket.browser.yandex-team.ru/projects/ML/repos/mobile-alice-library-android/pull-requests/18808/overview authors clean up2 SwiftGenerator flake8 errors fix & ya.make edit swift generation tests swift references swift generator implementation init swift generator code refactoring 1) rename to modeling 2) rename kind to PropertyType 3) delete apply_pluralization_rules 4) description default value is empty string 5) remove entity_type_field_alias, typename_alias, client_optional, profileEntities, ignore_properties, generate_plain_constructor 6) remove client prefix Add XcodeBuild in ignore Add XcodeBuild in ignore introduce new global variable api introduce new global variable api Revert commit bdcbc0081395ebe44ed7fe24bf5f4b25569c6df0 LayoutKitSnapshotTests Fix sandboxRelease dependencies. support zero value for width and height remove unused css variables "CONTRIBUTING.md" README draft updated gitignore/arcignore introduce color type in expressions introduce color type in expressions added xcconfig files fixed swift formatting fail tests if updating references Чтобы уж точно не забыть вернуть False. Layout changes Fix expression parsing don't change clickable state in a11y don't change clickable state in a11y Update items checks Parse description references to translations add licence file link fixed expression properties generation add ability to track requests to global variables Добавляем в GlobalVariableController возможность подписаться на запросы к глобальным переменным. Нужно дляОткрыт Накопительная палитра , а так же в целом полезная функциональность, через которую можно делать ленивый прогрев глобальных переменных Changelog Minor fixes bump divkit version up to 3.0.0 fixed snapshot tests depdendencies Иногда не запускалась сборка SnapshotTestsHostApp перед стартом тестов. used new api-generator deserialization refactoring removed gitignore samples text fixes fixed samples text remove theme button remove theme button demo activity redesign demo activity redesign habr sample app change deleted images in screenshot tests change deleted images in screenshot tests new ic_launcher new ic_launcher more readme Binding variable for div input Biding variable for div input Implement documentation generator Rename max_lines to max_visible_lines Rename max_lines to max_visible_lines add habr and medium fix div-functions doc Fix link in description Text selecting for demo app enabled Text selecting for demo app enabled KotlinGenerator kotlin code generation kotlin generation tests kotlin generation references add gradle wrapper to kotlin json builder add gradle wrapper to kotlin json builder DemoApp redesign fixed codegen scripts debugView safeAreaInsets DebugView safe area insets TypeScript Generator ya.make changes TypeScript generator TypeScript tests TypeScript test references fix enumeration aliases debugInfoParams fix compile Fix black box flicker in video-custom Fixed stub image showing by moving it away from PlayerView. Increased stub loading speed by adding VideoViewModel warmup. Fixed redundant redraws by combining stub visibility and bitmap data. PlayerView background was set to transparent. DivExpression fix DivExpression fix Implement translations Save & share bind globalVariableController to divContext bind variableController to divContext used new TypeScript generator Подключил генератор на питоне. Изменения в сгенерированных файлах связаны в основном с переводом описаний на английский язык. moved LivePreview Перенёс LivePreview из отдельного модуля в DivKitDemoApp. Добавил сканер кодов в UrlInputView. Удалил часть дублирующегося кода. remove sms and phone_state permission fix links interception fix links interception Fix link in documentation remove site from "config.stable.json" Support highlight_color and keyboardType in div input Support highlight_color in div input Action animation fix for iOS
312 lines
11 KiB
Swift
312 lines
11 KiB
Swift
// Generated code. Do not modify.
|
|
|
|
import CommonCore
|
|
import Foundation
|
|
import Serialization
|
|
import TemplatesSupport
|
|
|
|
public final class DivCustom: DivBase {
|
|
public static let type: String = "custom"
|
|
public let accessibility: DivAccessibility
|
|
public let alignmentHorizontal: Expression<DivAlignmentHorizontal>?
|
|
public let alignmentVertical: Expression<DivAlignmentVertical>?
|
|
public let alpha: Expression<Double> // constraint: number >= 0.0 && number <= 1.0; default value: 1.0
|
|
public let background: [DivBackground]? // at least 1 elements
|
|
public let border: DivBorder
|
|
public let columnSpan: Expression<Int>? // constraint: number >= 0
|
|
public let customProps: [String: Any]?
|
|
public let customType: String
|
|
public let extensions: [DivExtension]? // at least 1 elements
|
|
public let focus: DivFocus?
|
|
public let height: DivSize // default value: .divWrapContentSize(DivWrapContentSize())
|
|
public let id: String? // at least 1 char
|
|
public let items: [Div]? // at least 1 elements
|
|
public let margins: DivEdgeInsets
|
|
public let paddings: DivEdgeInsets
|
|
public let rowSpan: Expression<Int>? // constraint: number >= 0
|
|
public let selectedActions: [DivAction]? // at least 1 elements
|
|
public let tooltips: [DivTooltip]? // at least 1 elements
|
|
public let transform: DivTransform
|
|
public let transitionChange: DivChangeTransition?
|
|
public let transitionIn: DivAppearanceTransition?
|
|
public let transitionOut: DivAppearanceTransition?
|
|
public let transitionTriggers: [DivTransitionTrigger]? // at least 1 elements
|
|
public let visibility: Expression<DivVisibility> // default value: visible
|
|
public let visibilityAction: DivVisibilityAction?
|
|
public let visibilityActions: [DivVisibilityAction]? // at least 1 elements
|
|
public let width: DivSize // default value: .divMatchParentSize(DivMatchParentSize())
|
|
|
|
public func resolveAlignmentHorizontal(_ resolver: ExpressionResolver) -> DivAlignmentHorizontal? {
|
|
resolver.resolveStringBasedValue(expression: alignmentHorizontal, initializer: DivAlignmentHorizontal.init(rawValue:))
|
|
}
|
|
|
|
public func resolveAlignmentVertical(_ resolver: ExpressionResolver) -> DivAlignmentVertical? {
|
|
resolver.resolveStringBasedValue(expression: alignmentVertical, initializer: DivAlignmentVertical.init(rawValue:))
|
|
}
|
|
|
|
public func resolveAlpha(_ resolver: ExpressionResolver) -> Double {
|
|
resolver.resolveNumericValue(expression: alpha) ?? 1.0
|
|
}
|
|
|
|
public func resolveColumnSpan(_ resolver: ExpressionResolver) -> Int? {
|
|
resolver.resolveNumericValue(expression: columnSpan)
|
|
}
|
|
|
|
public func resolveRowSpan(_ resolver: ExpressionResolver) -> Int? {
|
|
resolver.resolveNumericValue(expression: rowSpan)
|
|
}
|
|
|
|
public func resolveVisibility(_ resolver: ExpressionResolver) -> DivVisibility {
|
|
resolver.resolveStringBasedValue(expression: visibility, initializer: DivVisibility.init(rawValue:)) ?? DivVisibility.visible
|
|
}
|
|
|
|
static let accessibilityValidator: AnyValueValidator<DivAccessibility> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let alignmentHorizontalValidator: AnyValueValidator<DivAlignmentHorizontal> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let alignmentVerticalValidator: AnyValueValidator<DivAlignmentVertical> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let alphaValidator: AnyValueValidator<Double> =
|
|
makeValueValidator(valueValidator: { $0 >= 0.0 && $0 <= 1.0 })
|
|
|
|
static let backgroundValidator: AnyArrayValueValidator<DivBackground> =
|
|
makeArrayValidator(minItems: 1)
|
|
|
|
static let borderValidator: AnyValueValidator<DivBorder> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let columnSpanValidator: AnyValueValidator<Int> =
|
|
makeValueValidator(valueValidator: { $0 >= 0 })
|
|
|
|
static let customPropsValidator: AnyValueValidator<[String: Any]> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let extensionsValidator: AnyArrayValueValidator<DivExtension> =
|
|
makeArrayValidator(minItems: 1)
|
|
|
|
static let focusValidator: AnyValueValidator<DivFocus> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let heightValidator: AnyValueValidator<DivSize> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let idValidator: AnyValueValidator<String> =
|
|
makeStringValidator(minLength: 1)
|
|
|
|
static let itemsValidator: AnyArrayValueValidator<Div> =
|
|
makeArrayValidator(minItems: 1)
|
|
|
|
static let marginsValidator: AnyValueValidator<DivEdgeInsets> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let paddingsValidator: AnyValueValidator<DivEdgeInsets> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let rowSpanValidator: AnyValueValidator<Int> =
|
|
makeValueValidator(valueValidator: { $0 >= 0 })
|
|
|
|
static let selectedActionsValidator: AnyArrayValueValidator<DivAction> =
|
|
makeArrayValidator(minItems: 1)
|
|
|
|
static let tooltipsValidator: AnyArrayValueValidator<DivTooltip> =
|
|
makeArrayValidator(minItems: 1)
|
|
|
|
static let transformValidator: AnyValueValidator<DivTransform> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let transitionChangeValidator: AnyValueValidator<DivChangeTransition> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let transitionInValidator: AnyValueValidator<DivAppearanceTransition> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let transitionOutValidator: AnyValueValidator<DivAppearanceTransition> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let transitionTriggersValidator: AnyArrayValueValidator<DivTransitionTrigger> =
|
|
makeArrayValidator(minItems: 1)
|
|
|
|
static let visibilityValidator: AnyValueValidator<DivVisibility> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let visibilityActionValidator: AnyValueValidator<DivVisibilityAction> =
|
|
makeNoOpValueValidator()
|
|
|
|
static let visibilityActionsValidator: AnyArrayValueValidator<DivVisibilityAction> =
|
|
makeArrayValidator(minItems: 1)
|
|
|
|
static let widthValidator: AnyValueValidator<DivSize> =
|
|
makeNoOpValueValidator()
|
|
|
|
init(
|
|
accessibility: DivAccessibility? = nil,
|
|
alignmentHorizontal: Expression<DivAlignmentHorizontal>? = nil,
|
|
alignmentVertical: Expression<DivAlignmentVertical>? = nil,
|
|
alpha: Expression<Double>? = nil,
|
|
background: [DivBackground]? = nil,
|
|
border: DivBorder? = nil,
|
|
columnSpan: Expression<Int>? = nil,
|
|
customProps: [String: Any]? = nil,
|
|
customType: String,
|
|
extensions: [DivExtension]? = nil,
|
|
focus: DivFocus? = nil,
|
|
height: DivSize? = nil,
|
|
id: String? = nil,
|
|
items: [Div]? = nil,
|
|
margins: DivEdgeInsets? = nil,
|
|
paddings: DivEdgeInsets? = nil,
|
|
rowSpan: Expression<Int>? = nil,
|
|
selectedActions: [DivAction]? = nil,
|
|
tooltips: [DivTooltip]? = nil,
|
|
transform: DivTransform? = nil,
|
|
transitionChange: DivChangeTransition? = nil,
|
|
transitionIn: DivAppearanceTransition? = nil,
|
|
transitionOut: DivAppearanceTransition? = nil,
|
|
transitionTriggers: [DivTransitionTrigger]? = nil,
|
|
visibility: Expression<DivVisibility>? = nil,
|
|
visibilityAction: DivVisibilityAction? = nil,
|
|
visibilityActions: [DivVisibilityAction]? = nil,
|
|
width: DivSize? = nil
|
|
) {
|
|
self.accessibility = accessibility ?? DivAccessibility()
|
|
self.alignmentHorizontal = alignmentHorizontal
|
|
self.alignmentVertical = alignmentVertical
|
|
self.alpha = alpha ?? .value(1.0)
|
|
self.background = background
|
|
self.border = border ?? DivBorder()
|
|
self.columnSpan = columnSpan
|
|
self.customProps = customProps
|
|
self.customType = customType
|
|
self.extensions = extensions
|
|
self.focus = focus
|
|
self.height = height ?? .divWrapContentSize(DivWrapContentSize())
|
|
self.id = id
|
|
self.items = items
|
|
self.margins = margins ?? DivEdgeInsets()
|
|
self.paddings = paddings ?? DivEdgeInsets()
|
|
self.rowSpan = rowSpan
|
|
self.selectedActions = selectedActions
|
|
self.tooltips = tooltips
|
|
self.transform = transform ?? DivTransform()
|
|
self.transitionChange = transitionChange
|
|
self.transitionIn = transitionIn
|
|
self.transitionOut = transitionOut
|
|
self.transitionTriggers = transitionTriggers
|
|
self.visibility = visibility ?? .value(.visible)
|
|
self.visibilityAction = visibilityAction
|
|
self.visibilityActions = visibilityActions
|
|
self.width = width ?? .divMatchParentSize(DivMatchParentSize())
|
|
}
|
|
}
|
|
|
|
#if DEBUG
|
|
// WARNING: this == is incomplete because of [String: Any] in class fields
|
|
extension DivCustom: Equatable {
|
|
public static func ==(lhs: DivCustom, rhs: DivCustom) -> Bool {
|
|
guard
|
|
lhs.accessibility == rhs.accessibility,
|
|
lhs.alignmentHorizontal == rhs.alignmentHorizontal,
|
|
lhs.alignmentVertical == rhs.alignmentVertical
|
|
else {
|
|
return false
|
|
}
|
|
guard
|
|
lhs.alpha == rhs.alpha,
|
|
lhs.background == rhs.background,
|
|
lhs.border == rhs.border
|
|
else {
|
|
return false
|
|
}
|
|
guard
|
|
lhs.columnSpan == rhs.columnSpan,
|
|
lhs.customType == rhs.customType,
|
|
lhs.extensions == rhs.extensions
|
|
else {
|
|
return false
|
|
}
|
|
guard
|
|
lhs.focus == rhs.focus,
|
|
lhs.height == rhs.height,
|
|
lhs.id == rhs.id
|
|
else {
|
|
return false
|
|
}
|
|
guard
|
|
lhs.items == rhs.items,
|
|
lhs.margins == rhs.margins,
|
|
lhs.paddings == rhs.paddings
|
|
else {
|
|
return false
|
|
}
|
|
guard
|
|
lhs.rowSpan == rhs.rowSpan,
|
|
lhs.selectedActions == rhs.selectedActions,
|
|
lhs.tooltips == rhs.tooltips
|
|
else {
|
|
return false
|
|
}
|
|
guard
|
|
lhs.transform == rhs.transform,
|
|
lhs.transitionChange == rhs.transitionChange,
|
|
lhs.transitionIn == rhs.transitionIn
|
|
else {
|
|
return false
|
|
}
|
|
guard
|
|
lhs.transitionOut == rhs.transitionOut,
|
|
lhs.transitionTriggers == rhs.transitionTriggers,
|
|
lhs.visibility == rhs.visibility
|
|
else {
|
|
return false
|
|
}
|
|
guard
|
|
lhs.visibilityAction == rhs.visibilityAction,
|
|
lhs.visibilityActions == rhs.visibilityActions,
|
|
lhs.width == rhs.width
|
|
else {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
}
|
|
#endif
|
|
|
|
extension DivCustom: Serializable {
|
|
public func toDictionary() -> [String: ValidSerializationValue] {
|
|
var result: [String: ValidSerializationValue] = [:]
|
|
result["type"] = Self.type
|
|
result["accessibility"] = accessibility.toDictionary()
|
|
result["alignment_horizontal"] = alignmentHorizontal?.toValidSerializationValue()
|
|
result["alignment_vertical"] = alignmentVertical?.toValidSerializationValue()
|
|
result["alpha"] = alpha.toValidSerializationValue()
|
|
result["background"] = background?.map { $0.toDictionary() }
|
|
result["border"] = border.toDictionary()
|
|
result["column_span"] = columnSpan?.toValidSerializationValue()
|
|
result["custom_props"] = customProps
|
|
result["custom_type"] = customType
|
|
result["extensions"] = extensions?.map { $0.toDictionary() }
|
|
result["focus"] = focus?.toDictionary()
|
|
result["height"] = height.toDictionary()
|
|
result["id"] = id
|
|
result["items"] = items?.map { $0.toDictionary() }
|
|
result["margins"] = margins.toDictionary()
|
|
result["paddings"] = paddings.toDictionary()
|
|
result["row_span"] = rowSpan?.toValidSerializationValue()
|
|
result["selected_actions"] = selectedActions?.map { $0.toDictionary() }
|
|
result["tooltips"] = tooltips?.map { $0.toDictionary() }
|
|
result["transform"] = transform.toDictionary()
|
|
result["transition_change"] = transitionChange?.toDictionary()
|
|
result["transition_in"] = transitionIn?.toDictionary()
|
|
result["transition_out"] = transitionOut?.toDictionary()
|
|
result["transition_triggers"] = transitionTriggers?.map { $0.rawValue }
|
|
result["visibility"] = visibility.toValidSerializationValue()
|
|
result["visibility_action"] = visibilityAction?.toDictionary()
|
|
result["visibility_actions"] = visibilityActions?.map { $0.toDictionary() }
|
|
result["width"] = width.toDictionary()
|
|
return result
|
|
}
|
|
}
|