All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jsCommon.io.nacular.doodle.dom.File.kt Maven / Gradle / Ivy

There is a newer version: 0.10.2
Show newest version
package io.nacular.doodle.dom

internal actual open external class Blob: JsAny {
    actual val size    : JsNumber
    actual val type    : String
    actual val isClosed: Boolean
}

internal actual external class File: Blob {
    actual val name: String
    actual val lastModified: Int
}

internal actual abstract external class FileList {
    actual abstract val length: Int
    actual fun item(index: Int): File?
}

internal actual external class ProgressEvent: JsAny {
    actual val total           : JsNumber
    actual val loaded          : JsNumber
    actual val lengthComputable: Boolean
}

internal actual external class FileReader actual constructor(): JsAny {
    actual val result    : JsAny
    actual var onerror   : (             ) -> Unit
    actual var onloadend : (             ) -> Unit
    actual var onprogress: (ProgressEvent) -> Unit

    actual fun readAsText       (delegate: File                  )
    actual fun readAsText       (delegate: File, encoding: String)
    actual fun readAsDataURL    (delegate: File                  )
    actual fun readAsArrayBuffer(delegate: File                  )
}

internal actual external class ArrayBuffer: JsAny

internal actual external class Uint8Array actual constructor(array: ArrayBuffer) {
    actual val length: Int
}

internal actual fun FileList.asList(): List = object: AbstractList() {
    override val size: Int get() = [email protected]

    override fun get(index: Int): File = when (index) {
        in 0..lastIndex -> [email protected](index) as File
        else -> throw IndexOutOfBoundsException("index $index is not in range [0..$lastIndex]")
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy