|
| 1 | +import ECMAScript |
| 2 | +import JavaScriptKit |
| 3 | + |
| 4 | +// copied out of generated file to work around issue with `colorSpace` being more permissive than in superclass |
| 5 | +public class CSSColor: CSSColorValue { |
| 6 | + @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSColor].function } |
| 7 | + |
| 8 | + public required init(unsafelyWrapping jsObject: JSObject) { |
| 9 | + _colorSpace = ReadWriteAttribute(jsObject: jsObject, name: Strings.colorSpace) |
| 10 | + _channels = ReadWriteAttribute(jsObject: jsObject, name: Strings.channels) |
| 11 | + _alpha = ReadWriteAttribute(jsObject: jsObject, name: Strings.alpha) |
| 12 | + super.init(unsafelyWrapping: jsObject) |
| 13 | + } |
| 14 | + |
| 15 | + @inlinable public convenience init(colorSpace: CSSKeywordish, channels: [CSSColorPercent], alpha: CSSNumberish? = nil) { |
| 16 | + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(colorSpace), _toJSValue(channels), _toJSValue(alpha)])) |
| 17 | + } |
| 18 | + |
| 19 | + @available(*, unavailable) |
| 20 | + override public var colorSpace: CSSKeywordValue { |
| 21 | + get { colorSpaceOrString.cssKeywordValue! } |
| 22 | + set { colorSpaceOrString = .cssKeywordValue(newValue) } |
| 23 | + } |
| 24 | + |
| 25 | + @usableFromInline let _colorSpace: ReadWriteAttribute<CSSKeywordish> |
| 26 | + @inlinable public var colorSpaceOrString: CSSKeywordish { |
| 27 | + get { _colorSpace.wrappedValue } |
| 28 | + set { _colorSpace.wrappedValue = newValue } |
| 29 | + } |
| 30 | + |
| 31 | + @ReadWriteAttribute |
| 32 | + public var channels: [CSSColorPercent] |
| 33 | + |
| 34 | + @ReadWriteAttribute |
| 35 | + public var alpha: CSSNumberish |
| 36 | +} |
| 37 | + |
| 38 | +extension Strings { |
| 39 | + @usableFromInline static let CSSColor: JSString = "CSSColor" |
| 40 | + @usableFromInline static let channels: JSString = "channels" |
| 41 | +} |
0 commit comments