diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f70702b16f0e2877e00fab759e3b13c5956ee0e..881f64e935449c02070f7b12d56205daef7864f0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,6 +4,10 @@ <component name="FrameworkDetectionExcludesConfiguration"> <file type="web" url="file://$PROJECT_DIR$" /> </component> + <component name="PWA"> + <option name="enabled" value="true" /> + <option name="wasEnabledAtLeastOnce" value="true" /> + </component> <component name="ProjectRootManager" version="2" languageLevel="JDK_16_PREVIEW" project-jdk-name="16" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/out" /> </component> diff --git a/build.gradle.kts b/build.gradle.kts index 2c07b8fe7dae2eb162dc82af8edb8707ce438ae7..f4b287456520dcc740f58bd745036d99a1e27fa1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,6 +14,15 @@ repositories { maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") } +tasks.register("fixGapiBindingBug") { + doFirst { + exec { + // TODO, make it cross platform, maybe not exec + commandLine("bash", "-c", "sed -i 's/@file:Suppress(/@file:Suppress(\"NAME_CONTAINS_ILLEGAL_CHARS\", /g' build/externals/kemence/src/*.kt") + } + } +} + kotlin { js(IR) { browser { @@ -26,7 +35,11 @@ kotlin { implementation(compose.web.core) implementation(compose.runtime) implementation("com.github.doyaaaaaken:kotlin-csv-js:1.2.0") + //implementation(npm("@types/gapi", "0.0.41", generateExternals = true)) + //implementation(npm("@types/gapi.client.sheets", "4.0.20201029", generateExternals = true)) + //implementation(npm("@types/gapi.auth2", "0.0.55", generateExternals = true)) } + //project.tasks.named("jsGenerateExternalsIntegrated") { finalizedBy("fixGapiBindingBug") } } } } diff --git a/gradle.properties b/gradle.properties index 65c9278611beb854769bad4b045ede51a75faa83..3c040b323b4886faafa87fea9ef93450f0932d90 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,3 +2,4 @@ kotlin.code.style=official kotlin.mpp.enableGranularSourceSetsMetadata=true kotlin.native.enableDependencyPropagation=false kotlin.js.webpack.major.version=4 +kotlin.js.generate.externals=true \ No newline at end of file diff --git a/src/jsMain/kotlin/DataInjector.kt b/src/jsMain/kotlin/DataInjector.kt deleted file mode 100644 index eb87a906c78776d0924624450551a6590a6dd274..0000000000000000000000000000000000000000 --- a/src/jsMain/kotlin/DataInjector.kt +++ /dev/null @@ -1,14 +0,0 @@ -object DataInjector { - @JsName("Test") - var test = "" - @JsName("alma") - var alma = "" -} - -operator fun DataInjector.get(key: String): String? { - return DataInjector.asDynamic()[key] as? String -} - -operator fun DataInjector.set(key: String, value: String) { - DataInjector.asDynamic()[key] = value -} \ No newline at end of file diff --git a/src/jsMain/kotlin/Main.kt b/src/jsMain/kotlin/Main.kt index 08cac8cb21288074407c07737fb3c33db17ada34..c044e3bff96dcdcc447329c978bf2e79dc034251 100644 --- a/src/jsMain/kotlin/Main.kt +++ b/src/jsMain/kotlin/Main.kt @@ -1,15 +1,15 @@ -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue +import androidx.compose.runtime.* +import gapi.initGapi +import gapi.loadGapi import kotlinx.browser.document +import kotlinx.coroutines.launch import org.jetbrains.compose.web.attributes.disabled import org.jetbrains.compose.web.dom.* import org.jetbrains.compose.web.renderComposable +import processing.format +import ui.* +import ui.State -sealed class State -class ImportInProgress(val progress: Double): State() -object Ready: State() fun main() { val row = document.querySelector("#content-main > div.uk-clearfix.uk-margin-bottom") @@ -21,13 +21,20 @@ fun main() { document.title = document.title.replace("PéK", "PéK \uD83D\uDC68\u200D\uD83C\uDF73") renderComposable(root = rootDiv) { + var google by remember { mutableStateOf(false) } var state by remember { mutableStateOf<State>(Ready) } + val scope = rememberCoroutineScope() + scope.launch { + loadGapi() + initGapi() + google = true + } divFloatRight { val magicId = "csv-magic" Button({ classes("uk-button", "uk-button-small", "uk-button-success") - attr("data-uk-modal", "{ target: '#$magicId' }") + attr("data-uk-ui.modal", "{ target: '#$magicId' }") if (state != Ready) disabled() }){ @@ -44,9 +51,35 @@ fun main() { } Div({ id(magicId) - classes("uk-modal") + classes("uk-ui.modal") + }) { + csvModal { state = it } + } + } + divFloatRight { + val magicId = "google-magic" + Button({ + classes("uk-button", "uk-button-small", "uk-button-success") + attr("data-uk-ui.modal", "{ target: '#$magicId' }") + if (state != Ready || !google) + disabled() + }){ + var txt = "..." + val curState = state + if (curState == Ready) { + txt = "Google Sheets import \uD83D\uDC68\u200D\uD83C\uDF73" + } else if (curState is ImportInProgress) { + val progress = (curState.progress * 100.0).format() + txt = "Importálás ($progress%)" + } + + Text(txt) + } + Div({ + id(magicId) + classes("uk-ui.modal") }) { - modal { state = it } + sheetsModal { state = it } } } } diff --git a/src/jsMain/kotlin/Modal.kt b/src/jsMain/kotlin/Modal.kt deleted file mode 100644 index b9da873db8402a720c457c017ea1e0119f24b79f..0000000000000000000000000000000000000000 --- a/src/jsMain/kotlin/Modal.kt +++ /dev/null @@ -1,151 +0,0 @@ -import androidx.compose.runtime.* -import kotlinx.browser.document -import kotlinx.browser.window -import kotlinx.coroutines.DelicateCoroutinesApi -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch -import org.jetbrains.compose.web.attributes.InputType -import org.jetbrains.compose.web.attributes.disabled -import org.jetbrains.compose.web.css.background -import org.jetbrains.compose.web.css.color -import org.jetbrains.compose.web.css.rgb -import org.jetbrains.compose.web.dom.* -import org.w3c.dom.HTMLAnchorElement -import org.w3c.dom.HTMLElement -import org.w3c.files.get - -@Composable -fun modal(setState: (State) -> Unit) { - Div({ - classes("uk-modal-dialog", "uk-text-justify") - }) { - val closeId = "kemence-modal-close" - A(attrs = { - id(closeId) - classes("uk-modal-close", "uk-close") - }) { } - H2 { - Text("CSV import") - } - H4 { - Text("Mi is ez?") - } - Text("Válassz ki egy CSV filet, ami megfelel a következő követelményeknek:") - Ul { - Li { Text("az első sorában a pontozási elvek szerepelnek") } - } - Ul { - Li { Text("az első oszlopa az emberek neveit tartalmazza") } - } - Ul { - Li { Text("a közte lévő rész értelemszerűen van kitöltve") } - } - Ul { - Li { Text("tartalmazhat a táblázat szumma oszlopokat, " + - "azok automatikusan ignorálva lesznek, amennyiben tartalmazzák a szumma szót") } - } - P { Text("Példa táblázat:") } - Table({classes("uk-table")}) { - Thead { Tr { - Th { Text("Név") } - Th { Text("Gyűlésen alvás") } - Th { Text("Közös liftezés") } - Th { Text("Szumma munka") } - } } - Tbody { Tr { - Td { Text("Teszt Elek") } - Td { Text("5") } - Td { Text("8") } - Td { Text("13") } - } } - Tbody { Tr { - Td { Text("Techno Kolos ") } - Td { Text("7") } - Td { Text("3") } - Td { Text("10") } - } } - } - Hr { } - val scope = rememberCoroutineScope() - var csvTable by remember { mutableStateOf<CSVTable?>(null) } - - val valassz = "hint: válassz ki fájlt" - var hint by remember { mutableStateOf(valassz) } - - Input(type = InputType.File, attrs = { - classes("uk-button", "uk-button-small") - onChange { - if (it.value.isBlank()) { - hint = valassz - return@onChange - } - scope.launch { - val content = it.target.getFileContents() - content?.let { csv -> - try { - csvTable = CSVTable(csv) - } catch (e: Exception) { - hint = "hibás CSV fájl (infó a console-ban)" - e.printStackTrace() - } - hint = "" - } - } - } - }) - Hr { } - divFloatRight { - Button({ - classes("uk-button", "uk-button-primary") - onClick { - scope.launch { - try { - csvTable?.process { setState(ImportInProgress(it)) } - } catch (e: ProcessingError) { - delay(100) - window.alert(e.toString()) - } - setState(Ready) - } - (document.getElementById(closeId) as HTMLElement).click() - } - if (hint.isNotBlank()) { - disabled() - } - }) { - Text("Zsa!") - } - } - - divFloatRight { - Button({ - classes("uk-button", "uk-button-danger") - onClick { - scope.launch { - PekTable.clear { setState(ImportInProgress(it)) } - setState(Ready) - } - (document.getElementById(closeId) as HTMLElement).click() - } - }) { - Text("PéKen lévő adatok törlése") - } - } - divFloatRight { - Button({ - classes("uk-button") - style { - background("#0000") - color(rgb(0x55, 0x55, 0x55)) - } - disabled() - }) { - Text(hint) - } - } - - Br { } - } - -} \ No newline at end of file diff --git a/src/jsMain/kotlin/CSVTable.kt b/src/jsMain/kotlin/datasources/CSVTable.kt similarity index 95% rename from src/jsMain/kotlin/CSVTable.kt rename to src/jsMain/kotlin/datasources/CSVTable.kt index c2fb95db8657f9c8dde8e80f83a6b015709a3b52..39dc918852752856cdbc22155483c12488028060 100644 --- a/src/jsMain/kotlin/CSVTable.kt +++ b/src/jsMain/kotlin/datasources/CSVTable.kt @@ -1,4 +1,7 @@ +package datasources + import com.github.doyaaaaaken.kotlincsv.dsl.csvReader +import pekstuff.trimAsPrinciple class CSVTable(data: String) { private val rows = csvReader().readAll(data) diff --git a/src/jsMain/kotlin/datasources/GSheet.kt b/src/jsMain/kotlin/datasources/GSheet.kt new file mode 100644 index 0000000000000000000000000000000000000000..cec5899f78a7b7a1a667cd636b857d8eb666b16f --- /dev/null +++ b/src/jsMain/kotlin/datasources/GSheet.kt @@ -0,0 +1,48 @@ +package datasources + +import gapi.gapi +import gapi.isSignedIn +import gapi.sheets +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException +import kotlin.coroutines.suspendCoroutine + +class GSheet private constructor() { + companion object { + suspend fun new(url: String): GSheet { + if (!isSignedIn()) throw Error("You must sign in to get gapi.sheets") + + val sheet = GSheet() + sheet.setUrl(url) + return sheet + } + } + + private var _url = "" + suspend fun setUrl(value: String){ + _url = value + loadSheet() + } + + val url: String get() = _url + + private suspend fun getSheetFromUrl() = suspendCoroutine<sheets.Spreadsheet> { cont -> + gapi.client.sheets.spreadsheets.get(object: sheets.SpreadsheetGetType { + override var spreadsheetId = url + .removePrefix("https://docs.google.com/spreadsheets/d/") + .split("/")[0] + }).execute { + if (it.status != 200) { + cont.resumeWithException(Error("unable to load sheet: ${it.statusText}")) + return@execute Unit + } + cont.resume(it.result) + } + } + + private suspend fun loadSheet() { + sheet = getSheetFromUrl() + } + + private lateinit var sheet: sheets.Spreadsheet +} diff --git a/src/jsMain/kotlin/gapi/Gapi.kt b/src/jsMain/kotlin/gapi/Gapi.kt new file mode 100644 index 0000000000000000000000000000000000000000..92b6da6d804c75445b3f7e7bdabf82abe8cadbec --- /dev/null +++ b/src/jsMain/kotlin/gapi/Gapi.kt @@ -0,0 +1,59 @@ +package gapi + +import kotlin.coroutines.resume +import kotlin.coroutines.suspendCoroutine + +object authObj: client.AuthType { + override var apiKey: String? = "AIzaSyAllJ7f4_uUKUUhbYg6U6edtJHah94HJow" + override var clientId: String? = "418498906920-jom9gd0his9sr91843qeqekf90h1hocj.apps.googleusercontent.com" + override var scope: String? = "https://www.googleapis.com/auth/spreadsheets.readonly" + override var discoveryDocs: Array<String>? = arrayOf("https://sheets.googleapis.com/\$discovery/rest?version=v4") +} + +private val listeners = mutableListOf<(Boolean) -> Unit>() + +fun listenForLoginEvents(callback: (Boolean) -> Unit) { + listeners += callback +} + +suspend fun loadGapi() = suspendCoroutine<Unit> { cont -> + gapi.load(apiName = "gapi.client:gapi.auth2") { cont.resume(Unit) } +} + +private fun handleLoginEvent(isSignedIn: Boolean) { + listeners.forEach { + it(isSignedIn) + } +} + +suspend fun initGapi() = suspendCoroutine<Unit> { cont -> + gapi.client.init(authObj).then({ + cont.resume(Unit) + gapi.auth2.getAuthInstance().isSignedIn.listen { isSignedIn: Boolean -> + handleLoginEvent(isSignedIn) + println(isSignedIn) + } + + logIn = { + gapi.auth2.getAuthInstance().signIn() + } + + logOut = { + gapi.auth2.getAuthInstance().signOut() + } + + isSignedIn = { + gapi.auth2.getAuthInstance().isSignedIn.get() + } + + handleLoginEvent(isSignedIn()) + }, { error: Throwable -> + println(error) + }) + + Unit +} + +var logIn: () -> Unit = { throw Error("gapi.getGapi has not been initialized yet") } +var logOut: () -> Unit = { throw Error("gapi.getGapi has not been initialized yet") } +var isSignedIn: () -> Boolean = { false } \ No newline at end of file diff --git a/src/jsMain/kotlin/gapi/GapiBinding.kt b/src/jsMain/kotlin/gapi/GapiBinding.kt new file mode 100644 index 0000000000000000000000000000000000000000..b25b4266bdce32e28b9939b731b90e1af9eb1272 --- /dev/null +++ b/src/jsMain/kotlin/gapi/GapiBinding.kt @@ -0,0 +1,4898 @@ +@file:Suppress("NAME_CONTAINS_ILLEGAL_CHARS", "INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +package gapi + +import kotlin.js.Promise + +external val gapi: Gapi = definedExternally + +external class auth { + interface `T$1` { + var client_id: String? + get() = definedExternally + set(value) = definedExternally + var immediate: Boolean? + get() = definedExternally + set(value) = definedExternally + var response_type: String? + get() = definedExternally + set(value) = definedExternally + var scope: Any? + get() = definedExternally + set(value) = definedExternally + var authuser: Number? + get() = definedExternally + set(value) = definedExternally + } + + fun authorize(params: `T$1`, callback: (token: GoogleApiOAuth2TokenObject) -> Any) + + fun init(callback: () -> Any) + + fun getToken(): GoogleApiOAuth2TokenObject + + fun setToken(token: GoogleApiOAuth2TokenObject) + + interface `T$2` { + var clientid: String? + get() = definedExternally + set(value) = definedExternally + var cookiepolicy: String? + get() = definedExternally + set(value) = definedExternally + var callback: (() -> Unit)? + get() = definedExternally + set(value) = definedExternally + var includegrantedscopes: Boolean? + get() = definedExternally + set(value) = definedExternally + var requestvisibleactions: Any? + get() = definedExternally + set(value) = definedExternally + var scope: Any? + get() = definedExternally + set(value) = definedExternally + var apppackagename: String? + get() = definedExternally + set(value) = definedExternally + } + + fun signIn(params: `T$2`) + + fun signOut() + + interface GoogleApiOAuth2TokenObject { + var access_token: String + var error: String + var expires_in: String + var state: String + } + + interface `T$3` { + var client_id: String? + get() = definedExternally + set(value) = definedExternally + var immediate: Boolean? + get() = definedExternally + set(value) = definedExternally + var response_type: String? + get() = definedExternally + set(value) = definedExternally + var scope: dynamic /* String? | Array<String>? */ + get() = definedExternally + set(value) = definedExternally + } + + fun authorize(params: `T$3`, callback: (authResult: GoogleApiOAuth2TokenObject) -> Unit) +} + +external class auth2 { + interface `T$33` { + var error: String + var details: String + } + + interface `T$34` { + var code: String + } + + open class GoogleAuth { + open var isSignedIn: IsSignedIn + open var currentUser: CurrentUser + open fun then(onInit: (googleAuth: GoogleAuth) -> Any, onFailure: (reason: `T$33`) -> Any = definedExternally): Any + open fun signIn(options: SigninOptions = definedExternally): Promise<GoogleUser> + open fun signIn(): Promise<GoogleUser> + open fun signIn(options: SigninOptionsBuilder = definedExternally): Promise<GoogleUser> + open fun signOut(): Any + open fun disconnect(): Any + open fun grantOfflineAccess(options: OfflineAccessOptions = definedExternally): Promise<`T$34`> + open fun attachClickHandler(container: Any, options: SigninOptions, onsuccess: (googleUser: GoogleUser) -> Any, onfailure: (reason: String) -> Any): Any + } + + interface IsSignedIn { + fun get(): Boolean + fun listen(listener: (signedIn: Boolean) -> Any) + } + + interface CurrentUser { + fun get(): GoogleUser + fun listen(listener: (user: GoogleUser) -> Any) + } + + interface SigninOptions { + var app_package_name: String? + get() = definedExternally + set(value) = definedExternally + var fetch_basic_profile: Boolean? + get() = definedExternally + set(value) = definedExternally + var prompt: String? + get() = definedExternally + set(value) = definedExternally + var scope: String? + get() = definedExternally + set(value) = definedExternally + var ux_mode: String? /* "popup" | "redirect" */ + get() = definedExternally + set(value) = definedExternally + var redirect_uri: String? + get() = definedExternally + set(value) = definedExternally + var login_hint: String? + get() = definedExternally + set(value) = definedExternally + } + + interface OfflineAccessOptions { + var scope: String? + get() = definedExternally + set(value) = definedExternally + var prompt: String? /* "select_account" | "consent" */ + get() = definedExternally + set(value) = definedExternally + var app_package_name: String? + get() = definedExternally + set(value) = definedExternally + } + + interface ClientConfig { + var client_id: String? + get() = definedExternally + set(value) = definedExternally + var cookie_policy: String? + get() = definedExternally + set(value) = definedExternally + var scope: String? + get() = definedExternally + set(value) = definedExternally + var fetch_basic_profile: Boolean? + get() = definedExternally + set(value) = definedExternally + var hosted_domain: String? + get() = definedExternally + set(value) = definedExternally + var openid_realm: String? + get() = definedExternally + set(value) = definedExternally + var ux_mode: String? /* "popup" | "redirect" */ + get() = definedExternally + set(value) = definedExternally + var redirect_uri: String? + get() = definedExternally + set(value) = definedExternally + } + + open class SigninOptionsBuilder { + open fun setAppPackageName(name: String): Any + open fun setFetchBasicProfile(fetch: Boolean): Any + open fun setPrompt(prompt: String): Any + open fun setScope(scope: String): Any + open fun setLoginHint(hint: String): Any + } + + interface BasicProfile { + fun getId(): String + fun getName(): String + fun getGivenName(): String + fun getFamilyName(): String + fun getImageUrl(): String + fun getEmail(): String + } + + interface AuthResponse { + var access_token: String + var id_token: String + var login_hint: String + var scope: String + var expires_in: Number + var first_issued_at: Number + var expires_at: Number + } + + interface AuthorizeConfig { + var client_id: String + var scope: String + var response_type: String? + get() = definedExternally + set(value) = definedExternally + var prompt: String? + get() = definedExternally + set(value) = definedExternally + var cookie_policy: String? + get() = definedExternally + set(value) = definedExternally + var hosted_domain: String? + get() = definedExternally + set(value) = definedExternally + var login_hint: String? + get() = definedExternally + set(value) = definedExternally + var app_package_name: String? + get() = definedExternally + set(value) = definedExternally + var openid_realm: String? + get() = definedExternally + set(value) = definedExternally + var include_granted_scopes: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface AuthorizeResponse { + var access_token: String + var id_token: String + var code: String + var scope: String + var expires_in: Number + var first_issued_at: Number + var expires_at: Number + var error: String + var error_subtype: String + } + + interface GoogleUser { + fun getId(): String + fun isSignedIn(): Boolean + fun getHostedDomain(): String + fun getGrantedScopes(): String + fun getBasicProfile(): BasicProfile + fun getAuthResponse(includeAuthorizationData: Boolean = definedExternally): AuthResponse + fun reloadAuthResponse(): Promise<AuthResponse> + fun hasGrantedScopes(scopes: String): Boolean + fun grant(options: SigninOptions = definedExternally): Promise<Any> + fun grant(): Promise<Any> + fun grant(options: SigninOptionsBuilder = definedExternally): Promise<Any> + fun grantOfflineAccess(options: OfflineAccessOptions = definedExternally): Promise<`T$34`> + fun disconnect() + } + + fun init(params: ClientConfig): GoogleAuth + + fun getAuthInstance(): GoogleAuth + + fun authorize(params: AuthorizeConfig, callback: (response: AuthorizeResponse) -> Unit) +} + +external class client { + interface AuthType { + var apiKey: String? + get() = definedExternally + set(value) = definedExternally + var discoveryDocs: Array<String>? + get() = definedExternally + set(value) = definedExternally + var clientId: String? + get() = definedExternally + set(value) = definedExternally + var scope: String? + get() = definedExternally + set(value) = definedExternally + var hosted_domain: String? + get() = definedExternally + set(value) = definedExternally + } + + fun init(args: AuthType): Promise<Unit> + + interface RequestOptions { + var path: String + var method: String? + get() = definedExternally + set(value) = definedExternally + var params: Any? + get() = definedExternally + set(value) = definedExternally + var headers: Any? + get() = definedExternally + set(value) = definedExternally + var body: Any? + get() = definedExternally + set(value) = definedExternally + var callback: (() -> Any)? + get() = definedExternally + set(value) = definedExternally + } + + interface TokenObject { + var access_token: String + } + + fun load(name: String /* "gapi.sheets" */, version: String /* "v4" */): dynamic /* Promise | PromiseLike */ + + fun load(name: String, version: String, callback: () -> Any, url: String = definedExternally) + + fun load(name: String /* "gapi.sheets" */, version: String /* "v4" */, callback: () -> Any) + + fun request(args: RequestOptions): HttpRequest<Any> + + interface HttpRequestFulfilled<T> { + var result: T + var body: String + var headers: Array<Any>? + get() = definedExternally + set(value) = definedExternally + var status: Number? + get() = definedExternally + set(value) = definedExternally + var statusText: String? + get() = definedExternally + set(value) = definedExternally + } + + interface HttpRequestRejected { + var result: dynamic /* Any | Boolean */ + get() = definedExternally + set(value) = definedExternally + var body: String + var headers: Array<Any>? + get() = definedExternally + set(value) = definedExternally + var status: Number? + get() = definedExternally + set(value) = definedExternally + var statusText: String? + get() = definedExternally + set(value) = definedExternally + } + + open class HttpRequestPromise<T> { + open fun then(onfulfilled: ((response: HttpRequestFulfilled<T>) -> Any?)? = definedExternally, onrejected: ((reason: HttpRequestRejected) -> Any?)? = definedExternally, opt_context: Any = definedExternally): Promise<dynamic /* TResult1 | TResult2 */> + } + + interface `T$5` { + var body: String + var headers: Array<Any> + var status: Number + var statusText: String + } + + open class HttpRequest<T> : HttpRequestPromise<T> { + open fun execute(callback: (jsonResp: T, rawResp: `T$5`) -> Any) + } + + interface `T$6` { + var id: String + var callback: (individualResponse: Any, rawBatchResponse: Any) -> Any + } + + open class HttpBatch { + open fun add(httpRequest: HttpRequest<Any>, opt_params: `T$6` = definedExternally) + open fun execute(callback: (responseMap: Any, rawBatchResponse: String) -> Any) + } + + open class RpcRequest { + open fun callback(callback: (jsonResp: Any, rawResp: String) -> Unit) + } + + interface `T$7` { + var path: String + var method: String? + get() = definedExternally + set(value) = definedExternally + var params: Any? + get() = definedExternally + set(value) = definedExternally + var headers: Any? + get() = definedExternally + set(value) = definedExternally + var body: Any? + get() = definedExternally + set(value) = definedExternally + } + + fun request(args: `T$7`): Request<Any> + + interface `T$8` { + @nativeGetter + operator fun get(headerName: String): String? + @nativeSetter + operator fun set(headerName: String, value: String) + } + + interface Response<T> { + var result: T + var body: String + var headers: `T$8`? + get() = definedExternally + set(value) = definedExternally + var status: Number? + get() = definedExternally + set(value) = definedExternally + var statusText: String? + get() = definedExternally + set(value) = definedExternally + } + + interface Request<T> : Promise<Response<T>> { + fun execute(callback: (response: Response<T>) -> Any) + } + + interface ResponseMap<T> { + @nativeGetter + operator fun get(id: String): Response<T>? + @nativeSetter + operator fun set(id: String, value: Response<T>) + } + + interface `T$9`<T> { + var id: String + fun callback(individualResponse: Response<T>, rawBatchResponse: String): Any + } + + interface Batch<T> : Promise<Response<ResponseMap<T>>> { + fun <T> add(request: Request<T>, opt_params: `T$9`<T> = definedExternally) + fun execute(callback: (responseMap: ResponseMap<T>, rawBatchResponse: String) -> Any) + } + + fun newBatch(): Batch<Any> + + val sheets: sheets = definedExternally +} + +external class sheets { + interface AddBandingRequest { + var bandedRange: BandedRange? + get() = definedExternally + set(value) = definedExternally + } + + interface AddBandingResponse { + var bandedRange: BandedRange? + get() = definedExternally + set(value) = definedExternally + } + + interface AddChartRequest { + var chart: EmbeddedChart? + get() = definedExternally + set(value) = definedExternally + } + + interface AddChartResponse { + var chart: EmbeddedChart? + get() = definedExternally + set(value) = definedExternally + } + + interface AddConditionalFormatRuleRequest { + var index: Number? + get() = definedExternally + set(value) = definedExternally + var rule: ConditionalFormatRule? + get() = definedExternally + set(value) = definedExternally + } + + interface AddDataSourceRequest { + var dataSource: DataSource? + get() = definedExternally + set(value) = definedExternally + } + + interface AddDataSourceResponse { + var dataExecutionStatus: DataExecutionStatus? + get() = definedExternally + set(value) = definedExternally + var dataSource: DataSource? + get() = definedExternally + set(value) = definedExternally + } + + interface AddDimensionGroupRequest { + var range: DimensionRange? + get() = definedExternally + set(value) = definedExternally + } + + interface AddDimensionGroupResponse { + var dimensionGroups: Array<DimensionGroup>? + get() = definedExternally + set(value) = definedExternally + } + + interface AddFilterViewRequest { + var filter: FilterView? + get() = definedExternally + set(value) = definedExternally + } + + interface AddFilterViewResponse { + var filter: FilterView? + get() = definedExternally + set(value) = definedExternally + } + + interface AddNamedRangeRequest { + var namedRange: NamedRange? + get() = definedExternally + set(value) = definedExternally + } + + interface AddNamedRangeResponse { + var namedRange: NamedRange? + get() = definedExternally + set(value) = definedExternally + } + + interface AddProtectedRangeRequest { + var protectedRange: ProtectedRange? + get() = definedExternally + set(value) = definedExternally + } + + interface AddProtectedRangeResponse { + var protectedRange: ProtectedRange? + get() = definedExternally + set(value) = definedExternally + } + + interface AddSheetRequest { + var properties: SheetProperties? + get() = definedExternally + set(value) = definedExternally + } + + interface AddSheetResponse { + var properties: SheetProperties? + get() = definedExternally + set(value) = definedExternally + } + + interface AddSlicerRequest { + var slicer: Slicer? + get() = definedExternally + set(value) = definedExternally + } + + interface AddSlicerResponse { + var slicer: Slicer? + get() = definedExternally + set(value) = definedExternally + } + + interface AppendCellsRequest { + var fields: String? + get() = definedExternally + set(value) = definedExternally + var rows: Array<RowData>? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface AppendDimensionRequest { + var dimension: String? + get() = definedExternally + set(value) = definedExternally + var length: Number? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface AppendValuesResponse { + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + var tableRange: String? + get() = definedExternally + set(value) = definedExternally + var updates: UpdateValuesResponse? + get() = definedExternally + set(value) = definedExternally + } + + interface AutoFillRequest { + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var sourceAndDestination: SourceAndDestination? + get() = definedExternally + set(value) = definedExternally + var useAlternateSeries: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface AutoResizeDimensionsRequest { + var dataSourceSheetDimensions: DataSourceSheetDimensionRange? + get() = definedExternally + set(value) = definedExternally + var dimensions: DimensionRange? + get() = definedExternally + set(value) = definedExternally + } + + interface BandedRange { + var bandedRangeId: Number? + get() = definedExternally + set(value) = definedExternally + var columnProperties: BandingProperties? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var rowProperties: BandingProperties? + get() = definedExternally + set(value) = definedExternally + } + + interface BandingProperties { + var firstBandColor: Color? + get() = definedExternally + set(value) = definedExternally + var firstBandColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var footerColor: Color? + get() = definedExternally + set(value) = definedExternally + var footerColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var headerColor: Color? + get() = definedExternally + set(value) = definedExternally + var headerColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var secondBandColor: Color? + get() = definedExternally + set(value) = definedExternally + var secondBandColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + } + + interface BaselineValueFormat { + var comparisonType: String? + get() = definedExternally + set(value) = definedExternally + var description: String? + get() = definedExternally + set(value) = definedExternally + var negativeColor: Color? + get() = definedExternally + set(value) = definedExternally + var negativeColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var position: TextPosition? + get() = definedExternally + set(value) = definedExternally + var positiveColor: Color? + get() = definedExternally + set(value) = definedExternally + var positiveColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var textFormat: TextFormat? + get() = definedExternally + set(value) = definedExternally + } + + interface BasicChartAxis { + var format: TextFormat? + get() = definedExternally + set(value) = definedExternally + var position: String? + get() = definedExternally + set(value) = definedExternally + var title: String? + get() = definedExternally + set(value) = definedExternally + var titleTextPosition: TextPosition? + get() = definedExternally + set(value) = definedExternally + var viewWindowOptions: ChartAxisViewWindowOptions? + get() = definedExternally + set(value) = definedExternally + } + + interface BasicChartDomain { + var domain: ChartData? + get() = definedExternally + set(value) = definedExternally + var reversed: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface BasicChartSeries { + var color: Color? + get() = definedExternally + set(value) = definedExternally + var colorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var dataLabel: DataLabel? + get() = definedExternally + set(value) = definedExternally + var lineStyle: LineStyle? + get() = definedExternally + set(value) = definedExternally + var pointStyle: PointStyle? + get() = definedExternally + set(value) = definedExternally + var series: ChartData? + get() = definedExternally + set(value) = definedExternally + var styleOverrides: Array<BasicSeriesDataPointStyleOverride>? + get() = definedExternally + set(value) = definedExternally + var targetAxis: String? + get() = definedExternally + set(value) = definedExternally + var type: String? + get() = definedExternally + set(value) = definedExternally + } + + interface BasicChartSpec { + var axis: Array<BasicChartAxis>? + get() = definedExternally + set(value) = definedExternally + var chartType: String? + get() = definedExternally + set(value) = definedExternally + var compareMode: String? + get() = definedExternally + set(value) = definedExternally + var domains: Array<BasicChartDomain>? + get() = definedExternally + set(value) = definedExternally + var headerCount: Number? + get() = definedExternally + set(value) = definedExternally + var interpolateNulls: Boolean? + get() = definedExternally + set(value) = definedExternally + var legendPosition: String? + get() = definedExternally + set(value) = definedExternally + var lineSmoothing: Boolean? + get() = definedExternally + set(value) = definedExternally + var series: Array<BasicChartSeries>? + get() = definedExternally + set(value) = definedExternally + var stackedType: String? + get() = definedExternally + set(value) = definedExternally + var threeDimensional: Boolean? + get() = definedExternally + set(value) = definedExternally + var totalDataLabel: DataLabel? + get() = definedExternally + set(value) = definedExternally + } + + interface BasicFilter { + var criteria: Any? + get() = definedExternally + set(value) = definedExternally + var filterSpecs: Array<FilterSpec>? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var sortSpecs: Array<SortSpec>? + get() = definedExternally + set(value) = definedExternally + } + + interface BasicSeriesDataPointStyleOverride { + var color: Color? + get() = definedExternally + set(value) = definedExternally + var colorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var index: Number? + get() = definedExternally + set(value) = definedExternally + var pointStyle: PointStyle? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchClearValuesByDataFilterRequest { + var dataFilters: Array<DataFilter>? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchClearValuesByDataFilterResponse { + var clearedRanges: Array<String>? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchClearValuesRequest { + var ranges: Array<String>? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchClearValuesResponse { + var clearedRanges: Array<String>? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchGetValuesByDataFilterRequest { + var dataFilters: Array<DataFilter>? + get() = definedExternally + set(value) = definedExternally + var dateTimeRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var majorDimension: String? + get() = definedExternally + set(value) = definedExternally + var valueRenderOption: String? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchGetValuesByDataFilterResponse { + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + var valueRanges: Array<MatchedValueRange>? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchGetValuesResponse { + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + var valueRanges: Array<ValueRange>? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchUpdateSpreadsheetRequest { + var includeSpreadsheetInResponse: Boolean? + get() = definedExternally + set(value) = definedExternally + var requests: Array<Request>? + get() = definedExternally + set(value) = definedExternally + var responseIncludeGridData: Boolean? + get() = definedExternally + set(value) = definedExternally + var responseRanges: Array<String>? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchUpdateSpreadsheetResponse { + var replies: Array<Response>? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + var updatedSpreadsheet: Spreadsheet? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchUpdateValuesByDataFilterRequest { + var data: Array<DataFilterValueRange>? + get() = definedExternally + set(value) = definedExternally + var includeValuesInResponse: Boolean? + get() = definedExternally + set(value) = definedExternally + var responseDateTimeRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var responseValueRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var valueInputOption: String? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchUpdateValuesByDataFilterResponse { + var responses: Array<UpdateValuesByDataFilterResponse>? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + var totalUpdatedCells: Number? + get() = definedExternally + set(value) = definedExternally + var totalUpdatedColumns: Number? + get() = definedExternally + set(value) = definedExternally + var totalUpdatedRows: Number? + get() = definedExternally + set(value) = definedExternally + var totalUpdatedSheets: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchUpdateValuesRequest { + var data: Array<ValueRange>? + get() = definedExternally + set(value) = definedExternally + var includeValuesInResponse: Boolean? + get() = definedExternally + set(value) = definedExternally + var responseDateTimeRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var responseValueRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var valueInputOption: String? + get() = definedExternally + set(value) = definedExternally + } + + interface BatchUpdateValuesResponse { + var responses: Array<UpdateValuesResponse>? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + var totalUpdatedCells: Number? + get() = definedExternally + set(value) = definedExternally + var totalUpdatedColumns: Number? + get() = definedExternally + set(value) = definedExternally + var totalUpdatedRows: Number? + get() = definedExternally + set(value) = definedExternally + var totalUpdatedSheets: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface BigQueryDataSourceSpec { + var projectId: String? + get() = definedExternally + set(value) = definedExternally + var querySpec: BigQueryQuerySpec? + get() = definedExternally + set(value) = definedExternally + var tableSpec: BigQueryTableSpec? + get() = definedExternally + set(value) = definedExternally + } + + interface BigQueryQuerySpec { + var rawQuery: String? + get() = definedExternally + set(value) = definedExternally + } + + interface BigQueryTableSpec { + var datasetId: String? + get() = definedExternally + set(value) = definedExternally + var tableId: String? + get() = definedExternally + set(value) = definedExternally + var tableProjectId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface BooleanCondition { + var type: String? + get() = definedExternally + set(value) = definedExternally + var values: Array<ConditionValue>? + get() = definedExternally + set(value) = definedExternally + } + + interface BooleanRule { + var condition: BooleanCondition? + get() = definedExternally + set(value) = definedExternally + var format: CellFormat? + get() = definedExternally + set(value) = definedExternally + } + + interface Border { + var color: Color? + get() = definedExternally + set(value) = definedExternally + var colorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var style: String? + get() = definedExternally + set(value) = definedExternally + var width: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface Borders { + var bottom: Border? + get() = definedExternally + set(value) = definedExternally + var left: Border? + get() = definedExternally + set(value) = definedExternally + var right: Border? + get() = definedExternally + set(value) = definedExternally + var top: Border? + get() = definedExternally + set(value) = definedExternally + } + + interface BubbleChartSpec { + var bubbleBorderColor: Color? + get() = definedExternally + set(value) = definedExternally + var bubbleBorderColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var bubbleLabels: ChartData? + get() = definedExternally + set(value) = definedExternally + var bubbleMaxRadiusSize: Number? + get() = definedExternally + set(value) = definedExternally + var bubbleMinRadiusSize: Number? + get() = definedExternally + set(value) = definedExternally + var bubbleOpacity: Number? + get() = definedExternally + set(value) = definedExternally + var bubbleSizes: ChartData? + get() = definedExternally + set(value) = definedExternally + var bubbleTextStyle: TextFormat? + get() = definedExternally + set(value) = definedExternally + var domain: ChartData? + get() = definedExternally + set(value) = definedExternally + var groupIds: ChartData? + get() = definedExternally + set(value) = definedExternally + var legendPosition: String? + get() = definedExternally + set(value) = definedExternally + var series: ChartData? + get() = definedExternally + set(value) = definedExternally + } + + interface CandlestickChartSpec { + var data: Array<CandlestickData>? + get() = definedExternally + set(value) = definedExternally + var domain: CandlestickDomain? + get() = definedExternally + set(value) = definedExternally + } + + interface CandlestickData { + var closeSeries: CandlestickSeries? + get() = definedExternally + set(value) = definedExternally + var highSeries: CandlestickSeries? + get() = definedExternally + set(value) = definedExternally + var lowSeries: CandlestickSeries? + get() = definedExternally + set(value) = definedExternally + var openSeries: CandlestickSeries? + get() = definedExternally + set(value) = definedExternally + } + + interface CandlestickDomain { + var data: ChartData? + get() = definedExternally + set(value) = definedExternally + var reversed: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface CandlestickSeries { + var data: ChartData? + get() = definedExternally + set(value) = definedExternally + } + + interface CellData { + var dataSourceFormula: DataSourceFormula? + get() = definedExternally + set(value) = definedExternally + var dataSourceTable: DataSourceTable? + get() = definedExternally + set(value) = definedExternally + var dataValidation: DataValidationRule? + get() = definedExternally + set(value) = definedExternally + var effectiveFormat: CellFormat? + get() = definedExternally + set(value) = definedExternally + var effectiveValue: ExtendedValue? + get() = definedExternally + set(value) = definedExternally + var formattedValue: String? + get() = definedExternally + set(value) = definedExternally + var hyperlink: String? + get() = definedExternally + set(value) = definedExternally + var note: String? + get() = definedExternally + set(value) = definedExternally + var pivotTable: PivotTable? + get() = definedExternally + set(value) = definedExternally + var textFormatRuns: Array<TextFormatRun>? + get() = definedExternally + set(value) = definedExternally + var userEnteredFormat: CellFormat? + get() = definedExternally + set(value) = definedExternally + var userEnteredValue: ExtendedValue? + get() = definedExternally + set(value) = definedExternally + } + + interface CellFormat { + var backgroundColor: Color? + get() = definedExternally + set(value) = definedExternally + var backgroundColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var borders: Borders? + get() = definedExternally + set(value) = definedExternally + var horizontalAlignment: String? + get() = definedExternally + set(value) = definedExternally + var hyperlinkDisplayType: String? + get() = definedExternally + set(value) = definedExternally + var numberFormat: NumberFormat? + get() = definedExternally + set(value) = definedExternally + var padding: Padding? + get() = definedExternally + set(value) = definedExternally + var textDirection: String? + get() = definedExternally + set(value) = definedExternally + var textFormat: TextFormat? + get() = definedExternally + set(value) = definedExternally + var textRotation: TextRotation? + get() = definedExternally + set(value) = definedExternally + var verticalAlignment: String? + get() = definedExternally + set(value) = definedExternally + var wrapStrategy: String? + get() = definedExternally + set(value) = definedExternally + } + + interface ChartAxisViewWindowOptions { + var viewWindowMax: Number? + get() = definedExternally + set(value) = definedExternally + var viewWindowMin: Number? + get() = definedExternally + set(value) = definedExternally + var viewWindowMode: String? + get() = definedExternally + set(value) = definedExternally + } + + interface ChartCustomNumberFormatOptions { + var prefix: String? + get() = definedExternally + set(value) = definedExternally + var suffix: String? + get() = definedExternally + set(value) = definedExternally + } + + interface ChartData { + var aggregateType: String? + get() = definedExternally + set(value) = definedExternally + var columnReference: DataSourceColumnReference? + get() = definedExternally + set(value) = definedExternally + var groupRule: ChartGroupRule? + get() = definedExternally + set(value) = definedExternally + var sourceRange: ChartSourceRange? + get() = definedExternally + set(value) = definedExternally + } + + interface ChartDateTimeRule { + var type: String? + get() = definedExternally + set(value) = definedExternally + } + + interface ChartGroupRule { + var dateTimeRule: ChartDateTimeRule? + get() = definedExternally + set(value) = definedExternally + var histogramRule: ChartHistogramRule? + get() = definedExternally + set(value) = definedExternally + } + + interface ChartHistogramRule { + var intervalSize: Number? + get() = definedExternally + set(value) = definedExternally + var maxValue: Number? + get() = definedExternally + set(value) = definedExternally + var minValue: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface ChartSourceRange { + var sources: Array<GridRange>? + get() = definedExternally + set(value) = definedExternally + } + + interface ChartSpec { + var altText: String? + get() = definedExternally + set(value) = definedExternally + var backgroundColor: Color? + get() = definedExternally + set(value) = definedExternally + var backgroundColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var basicChart: BasicChartSpec? + get() = definedExternally + set(value) = definedExternally + var bubbleChart: BubbleChartSpec? + get() = definedExternally + set(value) = definedExternally + var candlestickChart: CandlestickChartSpec? + get() = definedExternally + set(value) = definedExternally + var dataSourceChartProperties: DataSourceChartProperties? + get() = definedExternally + set(value) = definedExternally + var filterSpecs: Array<FilterSpec>? + get() = definedExternally + set(value) = definedExternally + var fontName: String? + get() = definedExternally + set(value) = definedExternally + var hiddenDimensionStrategy: String? + get() = definedExternally + set(value) = definedExternally + var histogramChart: HistogramChartSpec? + get() = definedExternally + set(value) = definedExternally + var maximized: Boolean? + get() = definedExternally + set(value) = definedExternally + var orgChart: OrgChartSpec? + get() = definedExternally + set(value) = definedExternally + var pieChart: PieChartSpec? + get() = definedExternally + set(value) = definedExternally + var scorecardChart: ScorecardChartSpec? + get() = definedExternally + set(value) = definedExternally + var sortSpecs: Array<SortSpec>? + get() = definedExternally + set(value) = definedExternally + var subtitle: String? + get() = definedExternally + set(value) = definedExternally + var subtitleTextFormat: TextFormat? + get() = definedExternally + set(value) = definedExternally + var subtitleTextPosition: TextPosition? + get() = definedExternally + set(value) = definedExternally + var title: String? + get() = definedExternally + set(value) = definedExternally + var titleTextFormat: TextFormat? + get() = definedExternally + set(value) = definedExternally + var titleTextPosition: TextPosition? + get() = definedExternally + set(value) = definedExternally + var treemapChart: TreemapChartSpec? + get() = definedExternally + set(value) = definedExternally + var waterfallChart: WaterfallChartSpec? + get() = definedExternally + set(value) = definedExternally + } + + interface ClearBasicFilterRequest { + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface ClearValuesRequest + + interface ClearValuesResponse { + var clearedRange: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface Color { + var alpha: Number? + get() = definedExternally + set(value) = definedExternally + var blue: Number? + get() = definedExternally + set(value) = definedExternally + var green: Number? + get() = definedExternally + set(value) = definedExternally + var red: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface ColorStyle { + var rgbColor: Color? + get() = definedExternally + set(value) = definedExternally + var themeColor: String? + get() = definedExternally + set(value) = definedExternally + } + + interface ConditionalFormatRule { + var booleanRule: BooleanRule? + get() = definedExternally + set(value) = definedExternally + var gradientRule: GradientRule? + get() = definedExternally + set(value) = definedExternally + var ranges: Array<GridRange>? + get() = definedExternally + set(value) = definedExternally + } + + interface ConditionValue { + var relativeDate: String? + get() = definedExternally + set(value) = definedExternally + var userEnteredValue: String? + get() = definedExternally + set(value) = definedExternally + } + + interface CopyPasteRequest { + var destination: GridRange? + get() = definedExternally + set(value) = definedExternally + var pasteOrientation: String? + get() = definedExternally + set(value) = definedExternally + var pasteType: String? + get() = definedExternally + set(value) = definedExternally + var source: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface CopySheetToAnotherSpreadsheetRequest { + var destinationSpreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface CreateDeveloperMetadataRequest { + var developerMetadata: DeveloperMetadata? + get() = definedExternally + set(value) = definedExternally + } + + interface CreateDeveloperMetadataResponse { + var developerMetadata: DeveloperMetadata? + get() = definedExternally + set(value) = definedExternally + } + + interface CutPasteRequest { + var destination: GridCoordinate? + get() = definedExternally + set(value) = definedExternally + var pasteType: String? + get() = definedExternally + set(value) = definedExternally + var source: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface DataExecutionStatus { + var errorCode: String? + get() = definedExternally + set(value) = definedExternally + var errorMessage: String? + get() = definedExternally + set(value) = definedExternally + var lastRefreshTime: String? + get() = definedExternally + set(value) = definedExternally + var state: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DataFilter { + var a1Range: String? + get() = definedExternally + set(value) = definedExternally + var developerMetadataLookup: DeveloperMetadataLookup? + get() = definedExternally + set(value) = definedExternally + var gridRange: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface DataFilterValueRange { + var dataFilter: DataFilter? + get() = definedExternally + set(value) = definedExternally + var majorDimension: String? + get() = definedExternally + set(value) = definedExternally + var values: Array<Array<Any>>? + get() = definedExternally + set(value) = definedExternally + } + + interface DataLabel { + var customLabelData: ChartData? + get() = definedExternally + set(value) = definedExternally + var placement: String? + get() = definedExternally + set(value) = definedExternally + var textFormat: TextFormat? + get() = definedExternally + set(value) = definedExternally + var type: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSource { + var calculatedColumns: Array<DataSourceColumn>? + get() = definedExternally + set(value) = definedExternally + var dataSourceId: String? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + var spec: DataSourceSpec? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceChartProperties { + var dataExecutionStatus: DataExecutionStatus? + get() = definedExternally + set(value) = definedExternally + var dataSourceId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceColumn { + var formula: String? + get() = definedExternally + set(value) = definedExternally + var reference: DataSourceColumnReference? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceColumnReference { + var name: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceFormula { + var dataExecutionStatus: DataExecutionStatus? + get() = definedExternally + set(value) = definedExternally + var dataSourceId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceObjectReference { + var chartId: Number? + get() = definedExternally + set(value) = definedExternally + var dataSourceFormulaCell: GridCoordinate? + get() = definedExternally + set(value) = definedExternally + var dataSourcePivotTableAnchorCell: GridCoordinate? + get() = definedExternally + set(value) = definedExternally + var dataSourceTableAnchorCell: GridCoordinate? + get() = definedExternally + set(value) = definedExternally + var sheetId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceObjectReferences { + var references: Array<DataSourceObjectReference>? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceParameter { + var name: String? + get() = definedExternally + set(value) = definedExternally + var namedRangeId: String? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceRefreshDailySchedule { + var startTime: TimeOfDay? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceRefreshMonthlySchedule { + var daysOfMonth: Array<Number>? + get() = definedExternally + set(value) = definedExternally + var startTime: TimeOfDay? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceRefreshSchedule { + var dailySchedule: DataSourceRefreshDailySchedule? + get() = definedExternally + set(value) = definedExternally + var enabled: Boolean? + get() = definedExternally + set(value) = definedExternally + var monthlySchedule: DataSourceRefreshMonthlySchedule? + get() = definedExternally + set(value) = definedExternally + var nextRun: Interval? + get() = definedExternally + set(value) = definedExternally + var refreshScope: String? + get() = definedExternally + set(value) = definedExternally + var weeklySchedule: DataSourceRefreshWeeklySchedule? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceRefreshWeeklySchedule { + var daysOfWeek: Array<String>? + get() = definedExternally + set(value) = definedExternally + var startTime: TimeOfDay? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceSheetDimensionRange { + var columnReferences: Array<DataSourceColumnReference>? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceSheetProperties { + var columns: Array<DataSourceColumn>? + get() = definedExternally + set(value) = definedExternally + var dataExecutionStatus: DataExecutionStatus? + get() = definedExternally + set(value) = definedExternally + var dataSourceId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceSpec { + var bigQuery: BigQueryDataSourceSpec? + get() = definedExternally + set(value) = definedExternally + var parameters: Array<DataSourceParameter>? + get() = definedExternally + set(value) = definedExternally + } + + interface DataSourceTable { + var columns: Array<DataSourceColumnReference>? + get() = definedExternally + set(value) = definedExternally + var columnSelectionType: String? + get() = definedExternally + set(value) = definedExternally + var dataExecutionStatus: DataExecutionStatus? + get() = definedExternally + set(value) = definedExternally + var dataSourceId: String? + get() = definedExternally + set(value) = definedExternally + var filterSpecs: Array<FilterSpec>? + get() = definedExternally + set(value) = definedExternally + var rowLimit: Number? + get() = definedExternally + set(value) = definedExternally + var sortSpecs: Array<SortSpec>? + get() = definedExternally + set(value) = definedExternally + } + + interface DataValidationRule { + var condition: BooleanCondition? + get() = definedExternally + set(value) = definedExternally + var inputMessage: String? + get() = definedExternally + set(value) = definedExternally + var showCustomUi: Boolean? + get() = definedExternally + set(value) = definedExternally + var strict: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface DateTimeRule { + var type: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteBandingRequest { + var bandedRangeId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteConditionalFormatRuleRequest { + var index: Number? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteConditionalFormatRuleResponse { + var rule: ConditionalFormatRule? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteDataSourceRequest { + var dataSourceId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteDeveloperMetadataRequest { + var dataFilter: DataFilter? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteDeveloperMetadataResponse { + var deletedDeveloperMetadata: Array<DeveloperMetadata>? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteDimensionGroupRequest { + var range: DimensionRange? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteDimensionGroupResponse { + var dimensionGroups: Array<DimensionGroup>? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteDimensionRequest { + var range: DimensionRange? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteDuplicatesRequest { + var comparisonColumns: Array<DimensionRange>? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteDuplicatesResponse { + var duplicatesRemovedCount: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteEmbeddedObjectRequest { + var objectId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteFilterViewRequest { + var filterId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteNamedRangeRequest { + var namedRangeId: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteProtectedRangeRequest { + var protectedRangeId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteRangeRequest { + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var shiftDimension: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DeleteSheetRequest { + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DeveloperMetadata { + var location: DeveloperMetadataLocation? + get() = definedExternally + set(value) = definedExternally + var metadataId: Number? + get() = definedExternally + set(value) = definedExternally + var metadataKey: String? + get() = definedExternally + set(value) = definedExternally + var metadataValue: String? + get() = definedExternally + set(value) = definedExternally + var visibility: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DeveloperMetadataLocation { + var dimensionRange: DimensionRange? + get() = definedExternally + set(value) = definedExternally + var locationType: String? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + var spreadsheet: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface DeveloperMetadataLookup { + var locationMatchingStrategy: String? + get() = definedExternally + set(value) = definedExternally + var locationType: String? + get() = definedExternally + set(value) = definedExternally + var metadataId: Number? + get() = definedExternally + set(value) = definedExternally + var metadataKey: String? + get() = definedExternally + set(value) = definedExternally + var metadataLocation: DeveloperMetadataLocation? + get() = definedExternally + set(value) = definedExternally + var metadataValue: String? + get() = definedExternally + set(value) = definedExternally + var visibility: String? + get() = definedExternally + set(value) = definedExternally + } + + interface DimensionGroup { + var collapsed: Boolean? + get() = definedExternally + set(value) = definedExternally + var depth: Number? + get() = definedExternally + set(value) = definedExternally + var range: DimensionRange? + get() = definedExternally + set(value) = definedExternally + } + + interface DimensionProperties { + var dataSourceColumnReference: DataSourceColumnReference? + get() = definedExternally + set(value) = definedExternally + var developerMetadata: Array<DeveloperMetadata>? + get() = definedExternally + set(value) = definedExternally + var hiddenByFilter: Boolean? + get() = definedExternally + set(value) = definedExternally + var hiddenByUser: Boolean? + get() = definedExternally + set(value) = definedExternally + var pixelSize: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DimensionRange { + var dimension: String? + get() = definedExternally + set(value) = definedExternally + var endIndex: Number? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + var startIndex: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DuplicateFilterViewRequest { + var filterId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DuplicateFilterViewResponse { + var filter: FilterView? + get() = definedExternally + set(value) = definedExternally + } + + interface DuplicateSheetRequest { + var insertSheetIndex: Number? + get() = definedExternally + set(value) = definedExternally + var newSheetId: Number? + get() = definedExternally + set(value) = definedExternally + var newSheetName: String? + get() = definedExternally + set(value) = definedExternally + var sourceSheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface DuplicateSheetResponse { + var properties: SheetProperties? + get() = definedExternally + set(value) = definedExternally + } + + interface Editors { + var domainUsersCanEdit: Boolean? + get() = definedExternally + set(value) = definedExternally + var groups: Array<String>? + get() = definedExternally + set(value) = definedExternally + var users: Array<String>? + get() = definedExternally + set(value) = definedExternally + } + + interface EmbeddedChart { + var border: EmbeddedObjectBorder? + get() = definedExternally + set(value) = definedExternally + var chartId: Number? + get() = definedExternally + set(value) = definedExternally + var position: EmbeddedObjectPosition? + get() = definedExternally + set(value) = definedExternally + var spec: ChartSpec? + get() = definedExternally + set(value) = definedExternally + } + + interface EmbeddedObjectBorder { + var color: Color? + get() = definedExternally + set(value) = definedExternally + var colorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + } + + interface EmbeddedObjectPosition { + var newSheet: Boolean? + get() = definedExternally + set(value) = definedExternally + var overlayPosition: OverlayPosition? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface ErrorValue { + var message: String? + get() = definedExternally + set(value) = definedExternally + var type: String? + get() = definedExternally + set(value) = definedExternally + } + + interface ExtendedValue { + var boolValue: Boolean? + get() = definedExternally + set(value) = definedExternally + var errorValue: ErrorValue? + get() = definedExternally + set(value) = definedExternally + var formulaValue: String? + get() = definedExternally + set(value) = definedExternally + var numberValue: Number? + get() = definedExternally + set(value) = definedExternally + var stringValue: String? + get() = definedExternally + set(value) = definedExternally + } + + interface FilterCriteria { + var condition: BooleanCondition? + get() = definedExternally + set(value) = definedExternally + var hiddenValues: Array<String>? + get() = definedExternally + set(value) = definedExternally + var visibleBackgroundColor: Color? + get() = definedExternally + set(value) = definedExternally + var visibleBackgroundColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var visibleForegroundColor: Color? + get() = definedExternally + set(value) = definedExternally + var visibleForegroundColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + } + + interface FilterSpec { + var columnIndex: Number? + get() = definedExternally + set(value) = definedExternally + var dataSourceColumnReference: DataSourceColumnReference? + get() = definedExternally + set(value) = definedExternally + var filterCriteria: FilterCriteria? + get() = definedExternally + set(value) = definedExternally + } + + interface FilterView { + var criteria: Any? + get() = definedExternally + set(value) = definedExternally + var filterSpecs: Array<FilterSpec>? + get() = definedExternally + set(value) = definedExternally + var filterViewId: Number? + get() = definedExternally + set(value) = definedExternally + var namedRangeId: String? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var sortSpecs: Array<SortSpec>? + get() = definedExternally + set(value) = definedExternally + var title: String? + get() = definedExternally + set(value) = definedExternally + } + + interface FindReplaceRequest { + var allSheets: Boolean? + get() = definedExternally + set(value) = definedExternally + var find: String? + get() = definedExternally + set(value) = definedExternally + var includeFormulas: Boolean? + get() = definedExternally + set(value) = definedExternally + var matchCase: Boolean? + get() = definedExternally + set(value) = definedExternally + var matchEntireCell: Boolean? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var replacement: String? + get() = definedExternally + set(value) = definedExternally + var searchByRegex: Boolean? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface FindReplaceResponse { + var formulasChanged: Number? + get() = definedExternally + set(value) = definedExternally + var occurrencesChanged: Number? + get() = definedExternally + set(value) = definedExternally + var rowsChanged: Number? + get() = definedExternally + set(value) = definedExternally + var sheetsChanged: Number? + get() = definedExternally + set(value) = definedExternally + var valuesChanged: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface GetSpreadsheetByDataFilterRequest { + var dataFilters: Array<DataFilter>? + get() = definedExternally + set(value) = definedExternally + var includeGridData: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface GradientRule { + var maxpoint: InterpolationPoint? + get() = definedExternally + set(value) = definedExternally + var midpoint: InterpolationPoint? + get() = definedExternally + set(value) = definedExternally + var minpoint: InterpolationPoint? + get() = definedExternally + set(value) = definedExternally + } + + interface GridCoordinate { + var columnIndex: Number? + get() = definedExternally + set(value) = definedExternally + var rowIndex: Number? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface GridData { + var columnMetadata: Array<DimensionProperties>? + get() = definedExternally + set(value) = definedExternally + var rowData: Array<RowData>? + get() = definedExternally + set(value) = definedExternally + var rowMetadata: Array<DimensionProperties>? + get() = definedExternally + set(value) = definedExternally + var startColumn: Number? + get() = definedExternally + set(value) = definedExternally + var startRow: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface GridProperties { + var columnCount: Number? + get() = definedExternally + set(value) = definedExternally + var columnGroupControlAfter: Boolean? + get() = definedExternally + set(value) = definedExternally + var frozenColumnCount: Number? + get() = definedExternally + set(value) = definedExternally + var frozenRowCount: Number? + get() = definedExternally + set(value) = definedExternally + var hideGridlines: Boolean? + get() = definedExternally + set(value) = definedExternally + var rowCount: Number? + get() = definedExternally + set(value) = definedExternally + var rowGroupControlAfter: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface GridRange { + var endColumnIndex: Number? + get() = definedExternally + set(value) = definedExternally + var endRowIndex: Number? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + var startColumnIndex: Number? + get() = definedExternally + set(value) = definedExternally + var startRowIndex: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface HistogramChartSpec { + var bucketSize: Number? + get() = definedExternally + set(value) = definedExternally + var legendPosition: String? + get() = definedExternally + set(value) = definedExternally + var outlierPercentile: Number? + get() = definedExternally + set(value) = definedExternally + var series: Array<HistogramSeries>? + get() = definedExternally + set(value) = definedExternally + var showItemDividers: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface HistogramRule { + var end: Number? + get() = definedExternally + set(value) = definedExternally + var interval: Number? + get() = definedExternally + set(value) = definedExternally + var start: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface HistogramSeries { + var barColor: Color? + get() = definedExternally + set(value) = definedExternally + var barColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var data: ChartData? + get() = definedExternally + set(value) = definedExternally + } + + interface InsertDimensionRequest { + var inheritFromBefore: Boolean? + get() = definedExternally + set(value) = definedExternally + var range: DimensionRange? + get() = definedExternally + set(value) = definedExternally + } + + interface InsertRangeRequest { + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var shiftDimension: String? + get() = definedExternally + set(value) = definedExternally + } + + interface InterpolationPoint { + var color: Color? + get() = definedExternally + set(value) = definedExternally + var colorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var type: String? + get() = definedExternally + set(value) = definedExternally + var value: String? + get() = definedExternally + set(value) = definedExternally + } + + interface Interval { + var endTime: String? + get() = definedExternally + set(value) = definedExternally + var startTime: String? + get() = definedExternally + set(value) = definedExternally + } + + interface IterativeCalculationSettings { + var convergenceThreshold: Number? + get() = definedExternally + set(value) = definedExternally + var maxIterations: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface KeyValueFormat { + var position: TextPosition? + get() = definedExternally + set(value) = definedExternally + var textFormat: TextFormat? + get() = definedExternally + set(value) = definedExternally + } + + interface LineStyle { + var type: String? + get() = definedExternally + set(value) = definedExternally + var width: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface Link { + var uri: String? + get() = definedExternally + set(value) = definedExternally + } + + interface ManualRule { + var groups: Array<ManualRuleGroup>? + get() = definedExternally + set(value) = definedExternally + } + + interface ManualRuleGroup { + var groupName: ExtendedValue? + get() = definedExternally + set(value) = definedExternally + var items: Array<ExtendedValue>? + get() = definedExternally + set(value) = definedExternally + } + + interface MatchedDeveloperMetadata { + var dataFilters: Array<DataFilter>? + get() = definedExternally + set(value) = definedExternally + var developerMetadata: DeveloperMetadata? + get() = definedExternally + set(value) = definedExternally + } + + interface MatchedValueRange { + var dataFilters: Array<DataFilter>? + get() = definedExternally + set(value) = definedExternally + var valueRange: ValueRange? + get() = definedExternally + set(value) = definedExternally + } + + interface MergeCellsRequest { + var mergeType: String? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface MoveDimensionRequest { + var destinationIndex: Number? + get() = definedExternally + set(value) = definedExternally + var source: DimensionRange? + get() = definedExternally + set(value) = definedExternally + } + + interface NamedRange { + var name: String? + get() = definedExternally + set(value) = definedExternally + var namedRangeId: String? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface NumberFormat { + var pattern: String? + get() = definedExternally + set(value) = definedExternally + var type: String? + get() = definedExternally + set(value) = definedExternally + } + + interface OrgChartSpec { + var labels: ChartData? + get() = definedExternally + set(value) = definedExternally + var nodeColor: Color? + get() = definedExternally + set(value) = definedExternally + var nodeColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var nodeSize: String? + get() = definedExternally + set(value) = definedExternally + var parentLabels: ChartData? + get() = definedExternally + set(value) = definedExternally + var selectedNodeColor: Color? + get() = definedExternally + set(value) = definedExternally + var selectedNodeColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var tooltips: ChartData? + get() = definedExternally + set(value) = definedExternally + } + + interface OverlayPosition { + var anchorCell: GridCoordinate? + get() = definedExternally + set(value) = definedExternally + var heightPixels: Number? + get() = definedExternally + set(value) = definedExternally + var offsetXPixels: Number? + get() = definedExternally + set(value) = definedExternally + var offsetYPixels: Number? + get() = definedExternally + set(value) = definedExternally + var widthPixels: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface Padding { + var bottom: Number? + get() = definedExternally + set(value) = definedExternally + var left: Number? + get() = definedExternally + set(value) = definedExternally + var right: Number? + get() = definedExternally + set(value) = definedExternally + var top: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface PasteDataRequest { + var coordinate: GridCoordinate? + get() = definedExternally + set(value) = definedExternally + var data: String? + get() = definedExternally + set(value) = definedExternally + var delimiter: String? + get() = definedExternally + set(value) = definedExternally + var html: Boolean? + get() = definedExternally + set(value) = definedExternally + var type: String? + get() = definedExternally + set(value) = definedExternally + } + + interface PieChartSpec { + var domain: ChartData? + get() = definedExternally + set(value) = definedExternally + var legendPosition: String? + get() = definedExternally + set(value) = definedExternally + var pieHole: Number? + get() = definedExternally + set(value) = definedExternally + var series: ChartData? + get() = definedExternally + set(value) = definedExternally + var threeDimensional: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface PivotFilterCriteria { + var condition: BooleanCondition? + get() = definedExternally + set(value) = definedExternally + var visibleByDefault: Boolean? + get() = definedExternally + set(value) = definedExternally + var visibleValues: Array<String>? + get() = definedExternally + set(value) = definedExternally + } + + interface PivotFilterSpec { + var columnOffsetIndex: Number? + get() = definedExternally + set(value) = definedExternally + var dataSourceColumnReference: DataSourceColumnReference? + get() = definedExternally + set(value) = definedExternally + var filterCriteria: PivotFilterCriteria? + get() = definedExternally + set(value) = definedExternally + } + + interface PivotGroup { + var dataSourceColumnReference: DataSourceColumnReference? + get() = definedExternally + set(value) = definedExternally + var groupLimit: PivotGroupLimit? + get() = definedExternally + set(value) = definedExternally + var groupRule: PivotGroupRule? + get() = definedExternally + set(value) = definedExternally + var label: String? + get() = definedExternally + set(value) = definedExternally + var repeatHeadings: Boolean? + get() = definedExternally + set(value) = definedExternally + var showTotals: Boolean? + get() = definedExternally + set(value) = definedExternally + var sortOrder: String? + get() = definedExternally + set(value) = definedExternally + var sourceColumnOffset: Number? + get() = definedExternally + set(value) = definedExternally + var valueBucket: PivotGroupSortValueBucket? + get() = definedExternally + set(value) = definedExternally + var valueMetadata: Array<PivotGroupValueMetadata>? + get() = definedExternally + set(value) = definedExternally + } + + interface PivotGroupLimit { + var applyOrder: Number? + get() = definedExternally + set(value) = definedExternally + var countLimit: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface PivotGroupRule { + var dateTimeRule: DateTimeRule? + get() = definedExternally + set(value) = definedExternally + var histogramRule: HistogramRule? + get() = definedExternally + set(value) = definedExternally + var manualRule: ManualRule? + get() = definedExternally + set(value) = definedExternally + } + + interface PivotGroupSortValueBucket { + var buckets: Array<ExtendedValue>? + get() = definedExternally + set(value) = definedExternally + var valuesIndex: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface PivotGroupValueMetadata { + var collapsed: Boolean? + get() = definedExternally + set(value) = definedExternally + var value: ExtendedValue? + get() = definedExternally + set(value) = definedExternally + } + + interface PivotTable { + var columns: Array<PivotGroup>? + get() = definedExternally + set(value) = definedExternally + var criteria: Any? + get() = definedExternally + set(value) = definedExternally + var dataExecutionStatus: DataExecutionStatus? + get() = definedExternally + set(value) = definedExternally + var dataSourceId: String? + get() = definedExternally + set(value) = definedExternally + var filterSpecs: Array<PivotFilterSpec>? + get() = definedExternally + set(value) = definedExternally + var rows: Array<PivotGroup>? + get() = definedExternally + set(value) = definedExternally + var source: GridRange? + get() = definedExternally + set(value) = definedExternally + var valueLayout: String? + get() = definedExternally + set(value) = definedExternally + var values: Array<PivotValue>? + get() = definedExternally + set(value) = definedExternally + } + + interface PivotValue { + var calculatedDisplayType: String? + get() = definedExternally + set(value) = definedExternally + var dataSourceColumnReference: DataSourceColumnReference? + get() = definedExternally + set(value) = definedExternally + var formula: String? + get() = definedExternally + set(value) = definedExternally + var name: String? + get() = definedExternally + set(value) = definedExternally + var sourceColumnOffset: Number? + get() = definedExternally + set(value) = definedExternally + var summarizeFunction: String? + get() = definedExternally + set(value) = definedExternally + } + + interface PointStyle { + var shape: String? + get() = definedExternally + set(value) = definedExternally + var size: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface ProtectedRange { + var description: String? + get() = definedExternally + set(value) = definedExternally + var editors: Editors? + get() = definedExternally + set(value) = definedExternally + var namedRangeId: String? + get() = definedExternally + set(value) = definedExternally + var protectedRangeId: Number? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var requestingUserCanEdit: Boolean? + get() = definedExternally + set(value) = definedExternally + var unprotectedRanges: Array<GridRange>? + get() = definedExternally + set(value) = definedExternally + var warningOnly: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface RandomizeRangeRequest { + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface RefreshDataSourceObjectExecutionStatus { + var dataExecutionStatus: DataExecutionStatus? + get() = definedExternally + set(value) = definedExternally + var reference: DataSourceObjectReference? + get() = definedExternally + set(value) = definedExternally + } + + interface RefreshDataSourceRequest { + var dataSourceId: String? + get() = definedExternally + set(value) = definedExternally + var force: Boolean? + get() = definedExternally + set(value) = definedExternally + var isAll: Boolean? + get() = definedExternally + set(value) = definedExternally + var references: DataSourceObjectReferences? + get() = definedExternally + set(value) = definedExternally + } + + interface RefreshDataSourceResponse { + var statuses: Array<RefreshDataSourceObjectExecutionStatus>? + get() = definedExternally + set(value) = definedExternally + } + + interface RepeatCellRequest { + var cell: CellData? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface Request { + var addBanding: AddBandingRequest? + get() = definedExternally + set(value) = definedExternally + var addChart: AddChartRequest? + get() = definedExternally + set(value) = definedExternally + var addConditionalFormatRule: AddConditionalFormatRuleRequest? + get() = definedExternally + set(value) = definedExternally + var addDataSource: AddDataSourceRequest? + get() = definedExternally + set(value) = definedExternally + var addDimensionGroup: AddDimensionGroupRequest? + get() = definedExternally + set(value) = definedExternally + var addFilterView: AddFilterViewRequest? + get() = definedExternally + set(value) = definedExternally + var addNamedRange: AddNamedRangeRequest? + get() = definedExternally + set(value) = definedExternally + var addProtectedRange: AddProtectedRangeRequest? + get() = definedExternally + set(value) = definedExternally + var addSheet: AddSheetRequest? + get() = definedExternally + set(value) = definedExternally + var addSlicer: AddSlicerRequest? + get() = definedExternally + set(value) = definedExternally + var appendCells: AppendCellsRequest? + get() = definedExternally + set(value) = definedExternally + var appendDimension: AppendDimensionRequest? + get() = definedExternally + set(value) = definedExternally + var autoFill: AutoFillRequest? + get() = definedExternally + set(value) = definedExternally + var autoResizeDimensions: AutoResizeDimensionsRequest? + get() = definedExternally + set(value) = definedExternally + var clearBasicFilter: ClearBasicFilterRequest? + get() = definedExternally + set(value) = definedExternally + var copyPaste: CopyPasteRequest? + get() = definedExternally + set(value) = definedExternally + var createDeveloperMetadata: CreateDeveloperMetadataRequest? + get() = definedExternally + set(value) = definedExternally + var cutPaste: CutPasteRequest? + get() = definedExternally + set(value) = definedExternally + var deleteBanding: DeleteBandingRequest? + get() = definedExternally + set(value) = definedExternally + var deleteConditionalFormatRule: DeleteConditionalFormatRuleRequest? + get() = definedExternally + set(value) = definedExternally + var deleteDataSource: DeleteDataSourceRequest? + get() = definedExternally + set(value) = definedExternally + var deleteDeveloperMetadata: DeleteDeveloperMetadataRequest? + get() = definedExternally + set(value) = definedExternally + var deleteDimension: DeleteDimensionRequest? + get() = definedExternally + set(value) = definedExternally + var deleteDimensionGroup: DeleteDimensionGroupRequest? + get() = definedExternally + set(value) = definedExternally + var deleteDuplicates: DeleteDuplicatesRequest? + get() = definedExternally + set(value) = definedExternally + var deleteEmbeddedObject: DeleteEmbeddedObjectRequest? + get() = definedExternally + set(value) = definedExternally + var deleteFilterView: DeleteFilterViewRequest? + get() = definedExternally + set(value) = definedExternally + var deleteNamedRange: DeleteNamedRangeRequest? + get() = definedExternally + set(value) = definedExternally + var deleteProtectedRange: DeleteProtectedRangeRequest? + get() = definedExternally + set(value) = definedExternally + var deleteRange: DeleteRangeRequest? + get() = definedExternally + set(value) = definedExternally + var deleteSheet: DeleteSheetRequest? + get() = definedExternally + set(value) = definedExternally + var duplicateFilterView: DuplicateFilterViewRequest? + get() = definedExternally + set(value) = definedExternally + var duplicateSheet: DuplicateSheetRequest? + get() = definedExternally + set(value) = definedExternally + var findReplace: FindReplaceRequest? + get() = definedExternally + set(value) = definedExternally + var insertDimension: InsertDimensionRequest? + get() = definedExternally + set(value) = definedExternally + var insertRange: InsertRangeRequest? + get() = definedExternally + set(value) = definedExternally + var mergeCells: MergeCellsRequest? + get() = definedExternally + set(value) = definedExternally + var moveDimension: MoveDimensionRequest? + get() = definedExternally + set(value) = definedExternally + var pasteData: PasteDataRequest? + get() = definedExternally + set(value) = definedExternally + var randomizeRange: RandomizeRangeRequest? + get() = definedExternally + set(value) = definedExternally + var refreshDataSource: RefreshDataSourceRequest? + get() = definedExternally + set(value) = definedExternally + var repeatCell: RepeatCellRequest? + get() = definedExternally + set(value) = definedExternally + var setBasicFilter: SetBasicFilterRequest? + get() = definedExternally + set(value) = definedExternally + var setDataValidation: SetDataValidationRequest? + get() = definedExternally + set(value) = definedExternally + var sortRange: SortRangeRequest? + get() = definedExternally + set(value) = definedExternally + var textToColumns: TextToColumnsRequest? + get() = definedExternally + set(value) = definedExternally + var trimWhitespace: TrimWhitespaceRequest? + get() = definedExternally + set(value) = definedExternally + var unmergeCells: UnmergeCellsRequest? + get() = definedExternally + set(value) = definedExternally + var updateBanding: UpdateBandingRequest? + get() = definedExternally + set(value) = definedExternally + var updateBorders: UpdateBordersRequest? + get() = definedExternally + set(value) = definedExternally + var updateCells: UpdateCellsRequest? + get() = definedExternally + set(value) = definedExternally + var updateChartSpec: UpdateChartSpecRequest? + get() = definedExternally + set(value) = definedExternally + var updateConditionalFormatRule: UpdateConditionalFormatRuleRequest? + get() = definedExternally + set(value) = definedExternally + var updateDataSource: UpdateDataSourceRequest? + get() = definedExternally + set(value) = definedExternally + var updateDeveloperMetadata: UpdateDeveloperMetadataRequest? + get() = definedExternally + set(value) = definedExternally + var updateDimensionGroup: UpdateDimensionGroupRequest? + get() = definedExternally + set(value) = definedExternally + var updateDimensionProperties: UpdateDimensionPropertiesRequest? + get() = definedExternally + set(value) = definedExternally + var updateEmbeddedObjectBorder: UpdateEmbeddedObjectBorderRequest? + get() = definedExternally + set(value) = definedExternally + var updateEmbeddedObjectPosition: UpdateEmbeddedObjectPositionRequest? + get() = definedExternally + set(value) = definedExternally + var updateFilterView: UpdateFilterViewRequest? + get() = definedExternally + set(value) = definedExternally + var updateNamedRange: UpdateNamedRangeRequest? + get() = definedExternally + set(value) = definedExternally + var updateProtectedRange: UpdateProtectedRangeRequest? + get() = definedExternally + set(value) = definedExternally + var updateSheetProperties: UpdateSheetPropertiesRequest? + get() = definedExternally + set(value) = definedExternally + var updateSlicerSpec: UpdateSlicerSpecRequest? + get() = definedExternally + set(value) = definedExternally + var updateSpreadsheetProperties: UpdateSpreadsheetPropertiesRequest? + get() = definedExternally + set(value) = definedExternally + } + + interface Response { + var addBanding: AddBandingResponse? + get() = definedExternally + set(value) = definedExternally + var addChart: AddChartResponse? + get() = definedExternally + set(value) = definedExternally + var addDataSource: AddDataSourceResponse? + get() = definedExternally + set(value) = definedExternally + var addDimensionGroup: AddDimensionGroupResponse? + get() = definedExternally + set(value) = definedExternally + var addFilterView: AddFilterViewResponse? + get() = definedExternally + set(value) = definedExternally + var addNamedRange: AddNamedRangeResponse? + get() = definedExternally + set(value) = definedExternally + var addProtectedRange: AddProtectedRangeResponse? + get() = definedExternally + set(value) = definedExternally + var addSheet: AddSheetResponse? + get() = definedExternally + set(value) = definedExternally + var addSlicer: AddSlicerResponse? + get() = definedExternally + set(value) = definedExternally + var createDeveloperMetadata: CreateDeveloperMetadataResponse? + get() = definedExternally + set(value) = definedExternally + var deleteConditionalFormatRule: DeleteConditionalFormatRuleResponse? + get() = definedExternally + set(value) = definedExternally + var deleteDeveloperMetadata: DeleteDeveloperMetadataResponse? + get() = definedExternally + set(value) = definedExternally + var deleteDimensionGroup: DeleteDimensionGroupResponse? + get() = definedExternally + set(value) = definedExternally + var deleteDuplicates: DeleteDuplicatesResponse? + get() = definedExternally + set(value) = definedExternally + var duplicateFilterView: DuplicateFilterViewResponse? + get() = definedExternally + set(value) = definedExternally + var duplicateSheet: DuplicateSheetResponse? + get() = definedExternally + set(value) = definedExternally + var findReplace: FindReplaceResponse? + get() = definedExternally + set(value) = definedExternally + var refreshDataSource: RefreshDataSourceResponse? + get() = definedExternally + set(value) = definedExternally + var trimWhitespace: TrimWhitespaceResponse? + get() = definedExternally + set(value) = definedExternally + var updateConditionalFormatRule: UpdateConditionalFormatRuleResponse? + get() = definedExternally + set(value) = definedExternally + var updateDataSource: UpdateDataSourceResponse? + get() = definedExternally + set(value) = definedExternally + var updateDeveloperMetadata: UpdateDeveloperMetadataResponse? + get() = definedExternally + set(value) = definedExternally + var updateEmbeddedObjectPosition: UpdateEmbeddedObjectPositionResponse? + get() = definedExternally + set(value) = definedExternally + } + + interface RowData { + var values: Array<CellData>? + get() = definedExternally + set(value) = definedExternally + } + + interface ScorecardChartSpec { + var aggregateType: String? + get() = definedExternally + set(value) = definedExternally + var baselineValueData: ChartData? + get() = definedExternally + set(value) = definedExternally + var baselineValueFormat: BaselineValueFormat? + get() = definedExternally + set(value) = definedExternally + var customFormatOptions: ChartCustomNumberFormatOptions? + get() = definedExternally + set(value) = definedExternally + var keyValueData: ChartData? + get() = definedExternally + set(value) = definedExternally + var keyValueFormat: KeyValueFormat? + get() = definedExternally + set(value) = definedExternally + var numberFormatSource: String? + get() = definedExternally + set(value) = definedExternally + var scaleFactor: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface SearchDeveloperMetadataRequest { + var dataFilters: Array<DataFilter>? + get() = definedExternally + set(value) = definedExternally + } + + interface SearchDeveloperMetadataResponse { + var matchedDeveloperMetadata: Array<MatchedDeveloperMetadata>? + get() = definedExternally + set(value) = definedExternally + } + + interface SetBasicFilterRequest { + var filter: BasicFilter? + get() = definedExternally + set(value) = definedExternally + } + + interface SetDataValidationRequest { + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var rule: DataValidationRule? + get() = definedExternally + set(value) = definedExternally + } + + interface Sheet { + var bandedRanges: Array<BandedRange>? + get() = definedExternally + set(value) = definedExternally + var basicFilter: BasicFilter? + get() = definedExternally + set(value) = definedExternally + var charts: Array<EmbeddedChart>? + get() = definedExternally + set(value) = definedExternally + var columnGroups: Array<DimensionGroup>? + get() = definedExternally + set(value) = definedExternally + var conditionalFormats: Array<ConditionalFormatRule>? + get() = definedExternally + set(value) = definedExternally + var data: Array<GridData>? + get() = definedExternally + set(value) = definedExternally + var developerMetadata: Array<DeveloperMetadata>? + get() = definedExternally + set(value) = definedExternally + var filterViews: Array<FilterView>? + get() = definedExternally + set(value) = definedExternally + var merges: Array<GridRange>? + get() = definedExternally + set(value) = definedExternally + var properties: SheetProperties? + get() = definedExternally + set(value) = definedExternally + var protectedRanges: Array<ProtectedRange>? + get() = definedExternally + set(value) = definedExternally + var rowGroups: Array<DimensionGroup>? + get() = definedExternally + set(value) = definedExternally + var slicers: Array<Slicer>? + get() = definedExternally + set(value) = definedExternally + } + + interface SheetProperties { + var dataSourceSheetProperties: DataSourceSheetProperties? + get() = definedExternally + set(value) = definedExternally + var gridProperties: GridProperties? + get() = definedExternally + set(value) = definedExternally + var hidden: Boolean? + get() = definedExternally + set(value) = definedExternally + var index: Number? + get() = definedExternally + set(value) = definedExternally + var rightToLeft: Boolean? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + var sheetType: String? + get() = definedExternally + set(value) = definedExternally + var tabColor: Color? + get() = definedExternally + set(value) = definedExternally + var tabColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var title: String? + get() = definedExternally + set(value) = definedExternally + } + + interface Slicer { + var position: EmbeddedObjectPosition? + get() = definedExternally + set(value) = definedExternally + var slicerId: Number? + get() = definedExternally + set(value) = definedExternally + var spec: SlicerSpec? + get() = definedExternally + set(value) = definedExternally + } + + interface SlicerSpec { + var applyToPivotTables: Boolean? + get() = definedExternally + set(value) = definedExternally + var backgroundColor: Color? + get() = definedExternally + set(value) = definedExternally + var backgroundColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var columnIndex: Number? + get() = definedExternally + set(value) = definedExternally + var dataRange: GridRange? + get() = definedExternally + set(value) = definedExternally + var filterCriteria: FilterCriteria? + get() = definedExternally + set(value) = definedExternally + var horizontalAlignment: String? + get() = definedExternally + set(value) = definedExternally + var textFormat: TextFormat? + get() = definedExternally + set(value) = definedExternally + var title: String? + get() = definedExternally + set(value) = definedExternally + } + + interface SortRangeRequest { + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var sortSpecs: Array<SortSpec>? + get() = definedExternally + set(value) = definedExternally + } + + interface SortSpec { + var backgroundColor: Color? + get() = definedExternally + set(value) = definedExternally + var backgroundColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var dataSourceColumnReference: DataSourceColumnReference? + get() = definedExternally + set(value) = definedExternally + var dimensionIndex: Number? + get() = definedExternally + set(value) = definedExternally + var foregroundColor: Color? + get() = definedExternally + set(value) = definedExternally + var foregroundColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var sortOrder: String? + get() = definedExternally + set(value) = definedExternally + } + + interface SourceAndDestination { + var dimension: String? + get() = definedExternally + set(value) = definedExternally + var fillLength: Number? + get() = definedExternally + set(value) = definedExternally + var source: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface Spreadsheet { + var dataSources: Array<DataSource>? + get() = definedExternally + set(value) = definedExternally + var dataSourceSchedules: Array<DataSourceRefreshSchedule>? + get() = definedExternally + set(value) = definedExternally + var developerMetadata: Array<DeveloperMetadata>? + get() = definedExternally + set(value) = definedExternally + var namedRanges: Array<NamedRange>? + get() = definedExternally + set(value) = definedExternally + var properties: SpreadsheetProperties? + get() = definedExternally + set(value) = definedExternally + var sheets: Array<Sheet>? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetUrl: String? + get() = definedExternally + set(value) = definedExternally + } + + interface SpreadsheetProperties { + var autoRecalc: String? + get() = definedExternally + set(value) = definedExternally + var defaultFormat: CellFormat? + get() = definedExternally + set(value) = definedExternally + var iterativeCalculationSettings: IterativeCalculationSettings? + get() = definedExternally + set(value) = definedExternally + var locale: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetTheme: SpreadsheetTheme? + get() = definedExternally + set(value) = definedExternally + var timeZone: String? + get() = definedExternally + set(value) = definedExternally + var title: String? + get() = definedExternally + set(value) = definedExternally + } + + interface SpreadsheetTheme { + var primaryFontFamily: String? + get() = definedExternally + set(value) = definedExternally + var themeColors: Array<ThemeColorPair>? + get() = definedExternally + set(value) = definedExternally + } + + interface TextFormat { + var bold: Boolean? + get() = definedExternally + set(value) = definedExternally + var fontFamily: String? + get() = definedExternally + set(value) = definedExternally + var fontSize: Number? + get() = definedExternally + set(value) = definedExternally + var foregroundColor: Color? + get() = definedExternally + set(value) = definedExternally + var foregroundColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var italic: Boolean? + get() = definedExternally + set(value) = definedExternally + var link: Link? + get() = definedExternally + set(value) = definedExternally + var strikethrough: Boolean? + get() = definedExternally + set(value) = definedExternally + var underline: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface TextFormatRun { + var format: TextFormat? + get() = definedExternally + set(value) = definedExternally + var startIndex: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface TextPosition { + var horizontalAlignment: String? + get() = definedExternally + set(value) = definedExternally + } + + interface TextRotation { + var angle: Number? + get() = definedExternally + set(value) = definedExternally + var vertical: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface TextToColumnsRequest { + var delimiter: String? + get() = definedExternally + set(value) = definedExternally + var delimiterType: String? + get() = definedExternally + set(value) = definedExternally + var source: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface ThemeColorPair { + var color: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var colorType: String? + get() = definedExternally + set(value) = definedExternally + } + + interface TimeOfDay { + var hours: Number? + get() = definedExternally + set(value) = definedExternally + var minutes: Number? + get() = definedExternally + set(value) = definedExternally + var nanos: Number? + get() = definedExternally + set(value) = definedExternally + var seconds: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface TreemapChartColorScale { + var maxValueColor: Color? + get() = definedExternally + set(value) = definedExternally + var maxValueColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var midValueColor: Color? + get() = definedExternally + set(value) = definedExternally + var midValueColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var minValueColor: Color? + get() = definedExternally + set(value) = definedExternally + var minValueColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var noDataColor: Color? + get() = definedExternally + set(value) = definedExternally + var noDataColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + } + + interface TreemapChartSpec { + var colorData: ChartData? + get() = definedExternally + set(value) = definedExternally + var colorScale: TreemapChartColorScale? + get() = definedExternally + set(value) = definedExternally + var headerColor: Color? + get() = definedExternally + set(value) = definedExternally + var headerColorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var hideTooltips: Boolean? + get() = definedExternally + set(value) = definedExternally + var hintedLevels: Number? + get() = definedExternally + set(value) = definedExternally + var labels: ChartData? + get() = definedExternally + set(value) = definedExternally + var levels: Number? + get() = definedExternally + set(value) = definedExternally + var maxValue: Number? + get() = definedExternally + set(value) = definedExternally + var minValue: Number? + get() = definedExternally + set(value) = definedExternally + var parentLabels: ChartData? + get() = definedExternally + set(value) = definedExternally + var sizeData: ChartData? + get() = definedExternally + set(value) = definedExternally + var textFormat: TextFormat? + get() = definedExternally + set(value) = definedExternally + } + + interface TrimWhitespaceRequest { + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface TrimWhitespaceResponse { + var cellsChangedCount: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface UnmergeCellsRequest { + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateBandingRequest { + var bandedRange: BandedRange? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateBordersRequest { + var bottom: Border? + get() = definedExternally + set(value) = definedExternally + var innerHorizontal: Border? + get() = definedExternally + set(value) = definedExternally + var innerVertical: Border? + get() = definedExternally + set(value) = definedExternally + var left: Border? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var right: Border? + get() = definedExternally + set(value) = definedExternally + var top: Border? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateCellsRequest { + var fields: String? + get() = definedExternally + set(value) = definedExternally + var range: GridRange? + get() = definedExternally + set(value) = definedExternally + var rows: Array<RowData>? + get() = definedExternally + set(value) = definedExternally + var start: GridCoordinate? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateChartSpecRequest { + var chartId: Number? + get() = definedExternally + set(value) = definedExternally + var spec: ChartSpec? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateConditionalFormatRuleRequest { + var index: Number? + get() = definedExternally + set(value) = definedExternally + var newIndex: Number? + get() = definedExternally + set(value) = definedExternally + var rule: ConditionalFormatRule? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateConditionalFormatRuleResponse { + var newIndex: Number? + get() = definedExternally + set(value) = definedExternally + var newRule: ConditionalFormatRule? + get() = definedExternally + set(value) = definedExternally + var oldIndex: Number? + get() = definedExternally + set(value) = definedExternally + var oldRule: ConditionalFormatRule? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateDataSourceRequest { + var dataSource: DataSource? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateDataSourceResponse { + var dataExecutionStatus: DataExecutionStatus? + get() = definedExternally + set(value) = definedExternally + var dataSource: DataSource? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateDeveloperMetadataRequest { + var dataFilters: Array<DataFilter>? + get() = definedExternally + set(value) = definedExternally + var developerMetadata: DeveloperMetadata? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateDeveloperMetadataResponse { + var developerMetadata: Array<DeveloperMetadata>? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateDimensionGroupRequest { + var dimensionGroup: DimensionGroup? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateDimensionPropertiesRequest { + var dataSourceSheetRange: DataSourceSheetDimensionRange? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var properties: DimensionProperties? + get() = definedExternally + set(value) = definedExternally + var range: DimensionRange? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateEmbeddedObjectBorderRequest { + var border: EmbeddedObjectBorder? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var objectId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateEmbeddedObjectPositionRequest { + var fields: String? + get() = definedExternally + set(value) = definedExternally + var newPosition: EmbeddedObjectPosition? + get() = definedExternally + set(value) = definedExternally + var objectId: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateEmbeddedObjectPositionResponse { + var position: EmbeddedObjectPosition? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateFilterViewRequest { + var fields: String? + get() = definedExternally + set(value) = definedExternally + var filter: FilterView? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateNamedRangeRequest { + var fields: String? + get() = definedExternally + set(value) = definedExternally + var namedRange: NamedRange? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateProtectedRangeRequest { + var fields: String? + get() = definedExternally + set(value) = definedExternally + var protectedRange: ProtectedRange? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateSheetPropertiesRequest { + var fields: String? + get() = definedExternally + set(value) = definedExternally + var properties: SheetProperties? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateSlicerSpecRequest { + var fields: String? + get() = definedExternally + set(value) = definedExternally + var slicerId: Number? + get() = definedExternally + set(value) = definedExternally + var spec: SlicerSpec? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateSpreadsheetPropertiesRequest { + var fields: String? + get() = definedExternally + set(value) = definedExternally + var properties: SpreadsheetProperties? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateValuesByDataFilterResponse { + var dataFilter: DataFilter? + get() = definedExternally + set(value) = definedExternally + var updatedCells: Number? + get() = definedExternally + set(value) = definedExternally + var updatedColumns: Number? + get() = definedExternally + set(value) = definedExternally + var updatedData: ValueRange? + get() = definedExternally + set(value) = definedExternally + var updatedRange: String? + get() = definedExternally + set(value) = definedExternally + var updatedRows: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface UpdateValuesResponse { + var spreadsheetId: String? + get() = definedExternally + set(value) = definedExternally + var updatedCells: Number? + get() = definedExternally + set(value) = definedExternally + var updatedColumns: Number? + get() = definedExternally + set(value) = definedExternally + var updatedData: ValueRange? + get() = definedExternally + set(value) = definedExternally + var updatedRange: String? + get() = definedExternally + set(value) = definedExternally + var updatedRows: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface ValueRange { + var majorDimension: String? + get() = definedExternally + set(value) = definedExternally + var range: String? + get() = definedExternally + set(value) = definedExternally + var values: Array<Array<Any>>? + get() = definedExternally + set(value) = definedExternally + } + + interface WaterfallChartColumnStyle { + var color: Color? + get() = definedExternally + set(value) = definedExternally + var colorStyle: ColorStyle? + get() = definedExternally + set(value) = definedExternally + var label: String? + get() = definedExternally + set(value) = definedExternally + } + + interface WaterfallChartCustomSubtotal { + var dataIsSubtotal: Boolean? + get() = definedExternally + set(value) = definedExternally + var label: String? + get() = definedExternally + set(value) = definedExternally + var subtotalIndex: Number? + get() = definedExternally + set(value) = definedExternally + } + + interface WaterfallChartDomain { + var data: ChartData? + get() = definedExternally + set(value) = definedExternally + var reversed: Boolean? + get() = definedExternally + set(value) = definedExternally + } + + interface WaterfallChartSeries { + var customSubtotals: Array<WaterfallChartCustomSubtotal>? + get() = definedExternally + set(value) = definedExternally + var data: ChartData? + get() = definedExternally + set(value) = definedExternally + var dataLabel: DataLabel? + get() = definedExternally + set(value) = definedExternally + var hideTrailingSubtotal: Boolean? + get() = definedExternally + set(value) = definedExternally + var negativeColumnsStyle: WaterfallChartColumnStyle? + get() = definedExternally + set(value) = definedExternally + var positiveColumnsStyle: WaterfallChartColumnStyle? + get() = definedExternally + set(value) = definedExternally + var subtotalColumnsStyle: WaterfallChartColumnStyle? + get() = definedExternally + set(value) = definedExternally + } + + interface WaterfallChartSpec { + var connectorLineStyle: LineStyle? + get() = definedExternally + set(value) = definedExternally + var domain: WaterfallChartDomain? + get() = definedExternally + set(value) = definedExternally + var firstValueIsTotal: Boolean? + get() = definedExternally + set(value) = definedExternally + var hideConnectorLines: Boolean? + get() = definedExternally + set(value) = definedExternally + var series: Array<WaterfallChartSeries>? + get() = definedExternally + set(value) = definedExternally + var stackedType: String? + get() = definedExternally + set(value) = definedExternally + var totalDataLabel: DataLabel? + get() = definedExternally + set(value) = definedExternally + } + + interface `T$10` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var metadataId: Number + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + } + + interface `T$11` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: SearchDeveloperMetadataRequest + } + + interface `T$12` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + } + + interface `T$13` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: CopySheetToAnotherSpreadsheetRequest + } + + interface `T$14` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var sheetId: Number + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + } + + interface SheetsResource + + interface `T$15` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var includeValuesInResponse: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertDataOption: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var range: String + var responseDateTimeRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var responseValueRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var valueInputOption: String? + get() = definedExternally + set(value) = definedExternally + var resource: ValueRange + } + + interface `T$16` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var includeValuesInResponse: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertDataOption: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var range: String + var responseDateTimeRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var responseValueRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var valueInputOption: String? + get() = definedExternally + set(value) = definedExternally + } + + interface `T$17` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: BatchClearValuesRequest + } + + interface `T$18` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: BatchClearValuesByDataFilterRequest + } + + interface `T$19` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var dateTimeRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var majorDimension: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var ranges: dynamic /* String? | Array<String>? */ + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var valueRenderOption: String? + get() = definedExternally + set(value) = definedExternally + } + + interface `T$20` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: BatchGetValuesByDataFilterRequest + } + + interface `T$21` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: BatchUpdateValuesRequest + } + + interface `T$22` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: BatchUpdateValuesByDataFilterRequest + } + + interface `T$23` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var range: String + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: ClearValuesRequest + } + + interface `T$24` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var range: String + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + } + + interface `T$25` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var dateTimeRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var majorDimension: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var range: String + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var valueRenderOption: String? + get() = definedExternally + set(value) = definedExternally + } + + interface `T$26` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var includeValuesInResponse: Boolean? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var range: String + var responseDateTimeRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var responseValueRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var valueInputOption: String? + get() = definedExternally + set(value) = definedExternally + var resource: ValueRange + } + + interface `T$27` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var includeValuesInResponse: Boolean? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var range: String + var responseDateTimeRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var responseValueRenderOption: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var valueInputOption: String? + get() = definedExternally + set(value) = definedExternally + } + + interface ValuesResource { + fun append(request: `T$15`): client.Request<AppendValuesResponse> + fun append(request: `T$16`, body: ValueRange): client.Request<AppendValuesResponse> + fun batchClear(request: `T$17`): client.Request<BatchClearValuesResponse> + fun batchClear(request: `T$12`, body: BatchClearValuesRequest): client.Request<BatchClearValuesResponse> + fun batchClearByDataFilter(request: `T$18`): client.Request<BatchClearValuesByDataFilterResponse> + fun batchClearByDataFilter(request: `T$12`, body: BatchClearValuesByDataFilterRequest): client.Request<BatchClearValuesByDataFilterResponse> + fun batchGet(request: `T$19` = definedExternally): client.Request<BatchGetValuesResponse> + fun batchGetByDataFilter(request: `T$20`): client.Request<BatchGetValuesByDataFilterResponse> + fun batchGetByDataFilter(request: `T$12`, body: BatchGetValuesByDataFilterRequest): client.Request<BatchGetValuesByDataFilterResponse> + fun batchUpdate(request: `T$21`): client.Request<BatchUpdateValuesResponse> + fun batchUpdate(request: `T$12`, body: BatchUpdateValuesRequest): client.Request<BatchUpdateValuesResponse> + fun batchUpdateByDataFilter(request: `T$22`): client.Request<BatchUpdateValuesByDataFilterResponse> + fun batchUpdateByDataFilter(request: `T$12`, body: BatchUpdateValuesByDataFilterRequest): client.Request<BatchUpdateValuesByDataFilterResponse> + fun clear(request: `T$23`): client.Request<ClearValuesResponse> + fun clear(request: `T$24`, body: ClearValuesRequest): client.Request<ClearValuesResponse> + fun get(request: `T$25` = definedExternally): client.Request<ValueRange> + fun update(request: `T$26`): client.Request<UpdateValuesResponse> + fun update(request: `T$27`, body: ValueRange): client.Request<UpdateValuesResponse> + } + + interface `T$28` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: BatchUpdateSpreadsheetRequest + } + + interface `T$29` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: Spreadsheet + } + + interface `T$30` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + } + + interface SpreadsheetGetType { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var includeGridData: Boolean? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var ranges: dynamic /* String? | Array<String>? */ + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + } + + interface `T$32` { + var `$.xgafv`: String? + get() = definedExternally + set(value) = definedExternally + var access_token: String? + get() = definedExternally + set(value) = definedExternally + var alt: String? + get() = definedExternally + set(value) = definedExternally + var callback: String? + get() = definedExternally + set(value) = definedExternally + var fields: String? + get() = definedExternally + set(value) = definedExternally + var key: String? + get() = definedExternally + set(value) = definedExternally + var oauth_token: String? + get() = definedExternally + set(value) = definedExternally + var prettyPrint: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotaUser: String? + get() = definedExternally + set(value) = definedExternally + var spreadsheetId: String + var upload_protocol: String? + get() = definedExternally + set(value) = definedExternally + var uploadType: String? + get() = definedExternally + set(value) = definedExternally + var resource: GetSpreadsheetByDataFilterRequest + } + + interface SpreadsheetsResource { + fun batchUpdate(request: `T$28`): client.Request<BatchUpdateSpreadsheetResponse> + fun batchUpdate(request: `T$12`, body: BatchUpdateSpreadsheetRequest): client.Request<BatchUpdateSpreadsheetResponse> + fun create(request: `T$29`): client.Request<Spreadsheet> + fun create(request: `T$30`, body: Spreadsheet): client.Request<Spreadsheet> + fun get(request: SpreadsheetGetType = definedExternally): client.Request<Spreadsheet> + fun getByDataFilter(request: `T$32`): client.Request<Spreadsheet> + fun getByDataFilter(request: `T$12`, body: GetSpreadsheetByDataFilterRequest): client.Request<Spreadsheet> + var sheets: SheetsResource + var values: ValuesResource + } + + var spreadsheets: SpreadsheetsResource +} + +external class signin2 { + interface `T$35` { + var error: String + } + + interface `T$36` { + var scope: String? + get() = definedExternally + set(value) = definedExternally + var width: Number? + get() = definedExternally + set(value) = definedExternally + var height: Number? + get() = definedExternally + set(value) = definedExternally + var longtitle: Boolean? + get() = definedExternally + set(value) = definedExternally + var theme: String? + get() = definedExternally + set(value) = definedExternally + val onsuccess: ((user: auth2.GoogleUser) -> Unit)? + val onfailure: ((reason: `T$35`) -> Unit)? + var app_package_name: String? + get() = definedExternally + set(value) = definedExternally + } + + fun render(id: Any, options: `T$36`) +} + + +external class Gapi { + fun load(apiName: String, callback: (Any) -> Unit) + val auth: auth = definedExternally + val auth2: auth2 = definedExternally + val client: client = definedExternally + val signin2: signin2 = definedExternally +} diff --git a/src/jsMain/kotlin/PekDelay.kt b/src/jsMain/kotlin/pekstuff/PekDelay.kt similarity index 92% rename from src/jsMain/kotlin/PekDelay.kt rename to src/jsMain/kotlin/pekstuff/PekDelay.kt index f0525dad9ec2e653fb61eb2a027cc038b4d5f202..87ac7548e336157b12fc03bdf6cfdb387a75e905 100644 --- a/src/jsMain/kotlin/PekDelay.kt +++ b/src/jsMain/kotlin/pekstuff/PekDelay.kt @@ -1,6 +1,6 @@ -import kotlinx.atomicfu.AtomicInt +package pekstuff + import kotlinx.browser.document -import kotlinx.coroutines.delay import org.w3c.dom.HTMLDivElement import org.w3c.dom.MutationObserver import org.w3c.dom.MutationObserverInit @@ -21,7 +21,6 @@ object PekDelay { private val observer = MutationObserver { _, _ -> if (!isUpdating) { - println("run called") val conts = continuations.toList() conts.forEach { it.resume(Unit) } continuations.removeAll(conts) diff --git a/src/jsMain/kotlin/PekTable.kt b/src/jsMain/kotlin/pekstuff/PekTable.kt similarity index 99% rename from src/jsMain/kotlin/PekTable.kt rename to src/jsMain/kotlin/pekstuff/PekTable.kt index d656b0cd143ea37feb80f429521da9b3d0c1bc4a..2da963e33372113179f2f44c4538350d40e759a4 100644 --- a/src/jsMain/kotlin/PekTable.kt +++ b/src/jsMain/kotlin/pekstuff/PekTable.kt @@ -1,3 +1,5 @@ +package pekstuff + import kotlinx.browser.document import kotlinx.coroutines.* import org.w3c.dom.Element diff --git a/src/jsMain/kotlin/Utils.kt b/src/jsMain/kotlin/pekstuff/Utils.kt similarity index 93% rename from src/jsMain/kotlin/Utils.kt rename to src/jsMain/kotlin/pekstuff/Utils.kt index ed2f64c767f36a0a66c0ac84c26cf00ae91d4aa7..65d4b60e9d8f4b4329ab02b7e07c1e9bd1643eb7 100644 --- a/src/jsMain/kotlin/Utils.kt +++ b/src/jsMain/kotlin/pekstuff/Utils.kt @@ -1,3 +1,6 @@ +package pekstuff + +import processing.calcProgress import kotlinx.browser.document import org.w3c.dom.* import org.w3c.files.Blob @@ -90,8 +93,3 @@ suspend fun PekTable.clear( } } } - -fun Double.format() = this.asDynamic().toFixed(1) as String - -fun calcProgress(i: Int, j: Int, iMax: Int, jMax: Int) = - (i*jMax + j).toDouble() / (iMax*jMax).toDouble() \ No newline at end of file diff --git a/src/jsMain/kotlin/Process.kt b/src/jsMain/kotlin/processing/ProcessCSV.kt similarity index 95% rename from src/jsMain/kotlin/Process.kt rename to src/jsMain/kotlin/processing/ProcessCSV.kt index df0c4ece41ec0fea664a7e8623440b292523855d..01c9a9d6e85468db4043ba01d4a5a58428955cb0 100644 --- a/src/jsMain/kotlin/Process.kt +++ b/src/jsMain/kotlin/processing/ProcessCSV.kt @@ -1,3 +1,8 @@ +package processing + +import datasources.CSVTable +import pekstuff.PekDelay +import pekstuff.PekTable import kotlin.math.max class ProcessingError(private val errors: List<String>): Exception(errors.toString()) { diff --git a/src/jsMain/kotlin/processing/ProcessGSheet.kt b/src/jsMain/kotlin/processing/ProcessGSheet.kt new file mode 100644 index 0000000000000000000000000000000000000000..1f5e19f81f3067b436f16a0943ff906288d622db --- /dev/null +++ b/src/jsMain/kotlin/processing/ProcessGSheet.kt @@ -0,0 +1 @@ +package processing \ No newline at end of file diff --git a/src/jsMain/kotlin/processing/Utils.kt b/src/jsMain/kotlin/processing/Utils.kt new file mode 100644 index 0000000000000000000000000000000000000000..45f09a1609483dc220da42744586ca569ff5f484 --- /dev/null +++ b/src/jsMain/kotlin/processing/Utils.kt @@ -0,0 +1,7 @@ +package processing + + +fun Double.format() = this.asDynamic().toFixed(1) as String + +fun calcProgress(i: Int, j: Int, iMax: Int, jMax: Int) = + (i*jMax + j).toDouble() / (iMax*jMax).toDouble() \ No newline at end of file diff --git a/src/jsMain/kotlin/ui/CSVModal.kt b/src/jsMain/kotlin/ui/CSVModal.kt new file mode 100644 index 0000000000000000000000000000000000000000..068cfdd247c44982c352d7648f18315177ce692e --- /dev/null +++ b/src/jsMain/kotlin/ui/CSVModal.kt @@ -0,0 +1,83 @@ +package ui + +import datasources.CSVTable +import processing.ProcessingError +import androidx.compose.runtime.* +import pekstuff.getFileContents +import kotlinx.browser.document +import kotlinx.browser.window +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import org.jetbrains.compose.web.attributes.InputType +import org.jetbrains.compose.web.attributes.disabled +import org.jetbrains.compose.web.dom.* +import org.w3c.dom.HTMLElement +import processing.process + +private object csvModal: ModalType { + override val title = "CSV import" + override val tutorial = "Válassz ki egy CSV filet, ami megfelel a következő követelményeknek:" + + override @Composable fun content( + closeId: String, + setState: (State) -> Unit, + hint: String, + setHint: (String) -> Unit + ) { + val scope = rememberCoroutineScope() + var csvTable by remember { mutableStateOf<CSVTable?>(null) } + + val valassz = "hint: válassz ki fájlt" + + Input(type = InputType.File, attrs = { + classes("uk-button", "uk-button-small") + onChange { + if (it.value.isBlank()) { + setHint(valassz) + return@onChange + } + scope.launch { + val content = it.target.getFileContents() + content?.let { csv -> + try { + csvTable = CSVTable(csv) + } catch (e: Exception) { + setHint("hibás CSV fájl (infó a console-ban)") + e.printStackTrace() + } + setHint("") + } + } + } + }) + Hr { } + divFloatRight { + Button({ + classes("uk-button", "uk-button-primary") + onClick { + scope.launch { + try { + csvTable?.process { setState(ImportInProgress(it)) } + } catch (e: ProcessingError) { + delay(100) + window.alert(e.toString()) + } + setState(Ready) + } + (document.getElementById(closeId) as HTMLElement).click() + } + if (hint.isNotBlank()) { + disabled() + } + }) { + Text("Zsa!") + } + } + } + +} + +@Composable +fun csvModal(setState: (State) -> Unit) { + modal(csvModal, setState) +} \ No newline at end of file diff --git a/src/jsMain/kotlin/HTMLUtils.kt b/src/jsMain/kotlin/ui/HTMLUtils.kt similarity index 95% rename from src/jsMain/kotlin/HTMLUtils.kt rename to src/jsMain/kotlin/ui/HTMLUtils.kt index e9984968838f721ba2aa15e1f44abc664987cf1b..3cc1848d0124343c6b5cdeee633e1e7a61cda2e0 100644 --- a/src/jsMain/kotlin/HTMLUtils.kt +++ b/src/jsMain/kotlin/ui/HTMLUtils.kt @@ -1,3 +1,5 @@ +package ui + import androidx.compose.runtime.Composable import org.jetbrains.compose.web.dom.Div diff --git a/src/jsMain/kotlin/ui/Modal.kt b/src/jsMain/kotlin/ui/Modal.kt new file mode 100644 index 0000000000000000000000000000000000000000..aaf1b6baf89933aebceb24c86fdf0535d1e795b6 --- /dev/null +++ b/src/jsMain/kotlin/ui/Modal.kt @@ -0,0 +1,115 @@ +package ui + +import pekstuff.PekTable +import androidx.compose.runtime.* +import clear +import kotlinx.browser.document +import kotlinx.coroutines.launch +import org.jetbrains.compose.web.attributes.disabled +import org.jetbrains.compose.web.css.background +import org.jetbrains.compose.web.css.color +import org.jetbrains.compose.web.css.rgb +import org.jetbrains.compose.web.dom.* +import org.w3c.dom.HTMLElement + +interface ModalType { + val title: String + val tutorial: String + @Composable fun content(closeId: String, setState: (State) -> Unit, hint: String, setHint: (String) -> Unit) +} + +@Composable +fun modal(type: ModalType, setState: (State) -> Unit) { + Div({ + classes("uk-ui.modal-dialog", "uk-text-justify") + }) { + val closeId = "kemence${type::class.simpleName}-ui.modal-close" + A(attrs = { + id(closeId) + classes("uk-ui.modal-close", "uk-close") + }) { } + H2 { + Text(type.title) + } + H4 { + Text("Mi is ez?") + } + Text(type.tutorial) + Ul { + Li { Text("az első sorában a pontozási elvek szerepelnek") } + } + Ul { + Li { Text("az első oszlopa az emberek neveit tartalmazza") } + } + Ul { + Li { Text("a közte lévő rész értelemszerűen van kitöltve") } + } + Ul { + Li { Text("tartalmazhat a táblázat szumma oszlopokat, " + + "azok automatikusan ignorálva lesznek, amennyiben tartalmazzák a szumma szót") } + } + P { Text("Példa táblázat:") } + Table({classes("uk-table")}) { + Thead { Tr { + Th { Text("Név") } + Th { Text("Gyűlésen alvás") } + Th { Text("Közös liftezés") } + Th { Text("Szumma munka") } + } } + Tbody { Tr { + Td { Text("Teszt Elek") } + Td { Text("5") } + Td { Text("8") } + Td { Text("13") } + } } + Tbody { Tr { + Td { Text("Techno Kolos ") } + Td { Text("7") } + Td { Text("3") } + Td { Text("10") } + } } + } + Hr { } + var hint by remember { mutableStateOf("") } + + type.content(closeId, setState, hint) { hint = it } + + pekClear(closeId) { setState(it) } + + divFloatRight { + Button({ + classes("uk-button") + style { + background("#0000") + color(rgb(0x55, 0x55, 0x55)) + } + disabled() + }) { + Text(hint) + } + } + + Br { } + } + +} + +@Composable +fun pekClear(closeId: String, setState: (State) -> Unit) { + val scope = rememberCoroutineScope() + + divFloatRight { + Button({ + classes("uk-button", "uk-button-danger") + onClick { + scope.launch { + PekTable.clear { setState(ImportInProgress(it)) } + setState(Ready) + } + (document.getElementById(closeId) as HTMLElement).click() + } + }) { + Text("PéKen lévő adatok törlése") + } + } +} \ No newline at end of file diff --git a/src/jsMain/kotlin/Params.kt b/src/jsMain/kotlin/ui/Params.kt similarity index 77% rename from src/jsMain/kotlin/Params.kt rename to src/jsMain/kotlin/ui/Params.kt index 49ea7fa088837d54c2c4afcd9a50a3c3b2f7b668..7aee1f4e9e20f55a5e85fc5e479b11edf8e0dcf4 100644 --- a/src/jsMain/kotlin/Params.kt +++ b/src/jsMain/kotlin/ui/Params.kt @@ -1,17 +1,8 @@ +package ui + import androidx.compose.runtime.* -import org.jetbrains.compose.web.css.maxWidth import org.jetbrains.compose.web.dom.* -@Composable -fun params() { - var test by mutableStateOf("") - Table({ - classes("uk-table") - }) { - inputWithLabel("test", test) { test = it } - } -} - @Composable fun inputWithLabel( name: String, diff --git a/src/jsMain/kotlin/ui/SheetsModal.kt b/src/jsMain/kotlin/ui/SheetsModal.kt new file mode 100644 index 0000000000000000000000000000000000000000..c40ab28a035b7d86e152407d90f1ab16b179b22f --- /dev/null +++ b/src/jsMain/kotlin/ui/SheetsModal.kt @@ -0,0 +1,99 @@ +package ui + +import datasources.GSheet +import androidx.compose.runtime.* +import gapi.isSignedIn +import kotlinx.browser.document +import kotlinx.coroutines.launch +import gapi.listenForLoginEvents +import gapi.logIn +import gapi.logOut +import org.jetbrains.compose.web.attributes.InputType +import org.jetbrains.compose.web.attributes.disabled +import org.jetbrains.compose.web.dom.* +import org.w3c.dom.HTMLElement + +private object SheetsModal: ModalType { + override val title = "Google Sheets import" + override val tutorial = "Jelentkezz be, majd illesz be egy linket egy Google Sheetre, ami megfelel a következő követelményeknek:" + + override @Composable fun content( + closeId: String, + setState: (State) -> Unit, + hint: String, + setHint: (String) -> Unit + ) { + val scope = rememberCoroutineScope() + + var signedIn by remember { mutableStateOf(isSignedIn()) } + SideEffect { + listenForLoginEvents { signedIn = it } + } + + var sheet by remember { mutableStateOf<GSheet?>(null) } + + setHint( + if (!signedIn) "Jelentkezz be" + else if (sheet == null) "Adj meg egy Google Sheet URL-t" + else "" + ) + + Button({ + if (signedIn) { + classes("uk-button", "uk-button-danger") + } else { + classes("uk-button", "uk-button-primary") + } + onClick { + if(signedIn) { + logOut() + } else { + logIn() + } + } + }) { + Text( + if(signedIn) { "Kijelentkezés" } else { "Bejelentkezés" } + ) + } + + Br {} + + val inputId = "kemence-sheet-input" + Label(inputId, { + classes("form-label-required", "uk-margin-right") + }) { + Text("Google Sheet URL") + } + var sheetUrl by remember { mutableStateOf("") } + Input(type = InputType.Text, attrs = { + id(inputId) + classes("uk-input") + onChange { sheetUrl = it.value } + value(sheetUrl) + }) + Hr { } + divFloatRight { + Button({ + classes("uk-button", "uk-button-primary") + onClick { + scope.launch { + println("zsa") + } + (document.getElementById(closeId) as HTMLElement).click() + } + if (hint.isNotBlank()) { + disabled() + } + }) { + Text("Zsa!") + } + } + } + +} + +@Composable +fun sheetsModal(setState: (State) -> Unit) { + modal(SheetsModal, setState) +} \ No newline at end of file diff --git a/src/jsMain/kotlin/ui/State.kt b/src/jsMain/kotlin/ui/State.kt new file mode 100644 index 0000000000000000000000000000000000000000..aec83df3838583d969e5ce38f9f8bcd7cccd09bb --- /dev/null +++ b/src/jsMain/kotlin/ui/State.kt @@ -0,0 +1,6 @@ +package ui + + +sealed class State +class ImportInProgress(val progress: Double): State() +object Ready: State() \ No newline at end of file diff --git a/src/jsMain/resources/inject.js b/src/jsMain/resources/inject.js index 1ee9b0baefc0d82f29a76862965b75657ccad710..daefc99d9ea2a5e873f48e3e65530a08ae20e1d3 100644 --- a/src/jsMain/resources/inject.js +++ b/src/jsMain/resources/inject.js @@ -1,7 +1,14 @@ +// chrome workaround if (typeof browser === "undefined") { window.browser = chrome; } + +const gapiScript = document.createElement("script"); +gapiScript.src = "https://apis.google.com/js/api.js"; +document.body.appendChild(gapiScript); + +// inject kemence.js const kemenceURL = browser.runtime.getURL("kemence.js"); -const script = document.createElement("script"); -script.src = kemenceURL; -document.body.appendChild(script); \ No newline at end of file +const kemenceScript = document.createElement("script"); +kemenceScript.src = kemenceURL; +document.body.appendChild(kemenceScript); \ No newline at end of file