From 4429bb40614af1a1594e3c3390378976efe28b06 Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Thu, 12 Sep 2024 15:44:03 +0200 Subject: [PATCH 01/11] first pass at redesigning submit --- DESCRIPTION | 2 +- NEWS.md | 28 +++++++++++++++++++++++++++- R/block-core.R | 8 -------- R/blocks.R | 21 +++++++++++++++------ R/server.R | 17 +++++++++++++++-- R/ui.R | 13 +++++++++++-- R/utils.R | 3 +-- _pkgdown.yml | 1 + man/new_filter_block.Rd | 6 ++++++ man/new_join_block.Rd | 7 ++++++- man/new_summarize_block.Rd | 12 +++++++++++- 11 files changed, 94 insertions(+), 24 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index f00e8569..48d799f3 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: blockr Title: A block-based framework for data manipulation and visualization -Version: 0.0.2.9010 +Version: 0.0.2.9020 Authors@R: c(person(given = "Nicolas", family = "Bennett", diff --git a/NEWS.md b/NEWS.md index e1ca26ef..a0c701de 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,32 @@ -# blockr 0.0.2.9000 +# blockr 0.0.2.9020 ## Feature +- Improved `submit` feature for blocks. Now submit isn't not added as a class but as an optional block attribute. When you design a block, you can pass the `submit` parameter like so: + +```r +new_super_block <- function(submit = 0, ...) { + fields <- list() + new_block( + fields = fields, + expr = quote(print("test")), + submit = submit, + ..., + class = "my_block" + ) +} +``` + +When `submit = 0`, it will add a submit button but computations are blocked (clicking on it is required). Internally, each time +the `input$submit` is clicked, the submit attribute is incremented by 1 to stay in sync with the UI button. This is useful when the stack is serialized, since this state is kept so that computations can be automatically re-triggered on restore, if `submit > 0`. + +```r +serve_stack(new_stack(new_dataset_block(), new_filter_block(columns = "Time", submit = 0))) + +# Simulate what happens when restoring a serialised stack +# with submit > 0 +serve_stack(new_stack(new_dataset_block(), new_filter_block(columns = "Time", submit = 1))) +``` + - Improved __add__ new block. - Added new `category` to the registry. Now when a block is registered, you may pass a category parameter (which is used by the add block feature to sort blocks): diff --git a/R/block-core.R b/R/block-core.R index 8d078a41..a1096536 100644 --- a/R/block-core.R +++ b/R/block-core.R @@ -25,14 +25,6 @@ new_block <- function(fields, expr, name = rand_names(), ..., is_string(name) ) - # Add submit button - if ("submit_block" %in% class) { - fields <- c( - fields, - submit = list(new_submit_field()) - ) - } - structure(fields, name = name, expr = expr, result = NULL, ..., class = c(class, "block") diff --git a/R/blocks.R b/R/blocks.R index 8e231a16..8b575b34 100644 --- a/R/blocks.R +++ b/R/blocks.R @@ -188,9 +188,13 @@ new_result_block <- function(...) { #' @param columns Columns used for filtering #' @param values Values used for filtering #' @param filter_fun Filter function for the expression +#' @param submit Whether this block requires to press a submit button to get +#' the results. Numeric, default to 0. If 0, then no computation is triggered +#' and the user needs to click on the button to see the block result. If > 0, +#' computation is automatically triggered. #' @export new_filter_block <- function(columns = character(), values = character(), - filter_fun = "==", ...) { + filter_fun = "==", submit = 0, ...) { sub_fields <- function(data, columns) { determine_field <- function(x) { switch(class(x), @@ -274,8 +278,9 @@ new_filter_block <- function(columns = character(), values = character(), new_block( fields = fields, expr = expr, + submit = submit, ..., - class = c("filter_block", "transform_block", "submit_block") + class = c("filter_block", "transform_block") ) } @@ -320,9 +325,10 @@ new_select_block <- function(columns = character(), ...) { #' you can also pass predefined selected column for each summary. #' Therefore when not of length 0, columns should have the same length #' as func. +#' @inheritParams new_filter_block #' @export new_summarize_block <- function(func = character(), - default_columns = character(), ...) { + default_columns = character(), submit = 0, ...) { if (length(default_columns) > 0) { stopifnot(length(func) == length(default_columns)) } @@ -422,8 +428,9 @@ new_summarize_block <- function(func = character(), new_block( fields = fields, expr = quote(.(expression)), + submit = submit, ..., - class = c("summarize_block", "transform_block", "submit_block") + class = c("summarize_block", "transform_block") ) } @@ -492,10 +499,11 @@ new_group_by_block <- function(columns = character(), ...) { #' @param y Second dataset for join. #' @param type Join type. #' @param by Join columns. +#' @inheritParams new_filter_block #' #' @export new_join_block <- function(y = NULL, type = character(), by = character(), - ...) { + submit = 0, ...) { by_choices <- function(data, y) { intersect(colnames(data), colnames(y)) } @@ -522,8 +530,9 @@ new_join_block <- function(y = NULL, type = character(), by = character(), new_block( fields = fields, expr = quote(.(join_func)(y = .(y), by = .(by))), + submit = submit, ..., - class = c("join_block", "transform_block", "submit_block") + class = c("join_block", "transform_block") ) } diff --git a/R/server.R b/R/server.R index 7077b68d..bc3e1311 100644 --- a/R/server.R +++ b/R/server.R @@ -190,7 +190,18 @@ generate_server_block <- function( # join that can have computationally intense tasks # and have nested fields, we require to click on # the action button before doing anything. - out_dat <- if ("submit_block" %in% class(x)) { + if (!is.null(attr(x, "submit"))) { + # Increment submit attribute for serialization + # So that if a block is serialised with submit > 0 + # computations are automatically triggered on restore + observeEvent(input$submit, { + tmp <- blk() + attr(tmp, "submit") <- attr(tmp, "submit") + 1 + blk(tmp) + }) + } + + out_dat <- if (!is.null(attr(x, "submit"))) { eventReactive(input$submit, { req(is_valid$block) if (is.null(in_dat())) { @@ -198,7 +209,9 @@ generate_server_block <- function( } else { evaluate_block(blk(), data = in_dat()) } - }) + # Trigger computation if submit attr is > 0 + # useful when restoring workspace + }, ignoreNULL = !attr(x, "submit") > 0) } else { reactive({ req(is_valid$block) diff --git a/R/ui.R b/R/ui.R index 04a8a93f..3c517092 100644 --- a/R/ui.R +++ b/R/ui.R @@ -159,7 +159,13 @@ block_header.block <- function(x, ns, hidden_class, ...) { ), data_info(x, ns), div( - class = "block-tools flex-shrink-1" + class = "block-tools flex-shrink-1", + if (!is.null(attr(x, "submit"))) { + actionLink( + ns("submit"), + iconPlay() + ) + } ) ) ) @@ -331,7 +337,6 @@ add_block_ui.default <- function(x, id, ...) { tags$head( tags$script(HTML(" function colorText(data) { - console.log(data); let text = `${data.label}`; return text; }" @@ -964,6 +969,10 @@ iconTrash <- function() { icon("trash") } +iconPlay <- function() { + icon("play") +} + #' Block icon generic #' #' Create a block icon depending in the block class diff --git a/R/utils.R b/R/utils.R index 94f07c36..41001578 100644 --- a/R/utils.R +++ b/R/utils.R @@ -259,8 +259,7 @@ send_error_to_ui <- function(blk, is_valid, session) { ) # Toggle submit field - # FIXME: maybe we want to handle this outside the function? - if ("submit_block" %in% class(blk)) { + if (!is.null(attr(blk, "submit"))) { session$sendCustomMessage( "toggle-submit", list(state = is_valid$block, id = ns("submit")) diff --git a/_pkgdown.yml b/_pkgdown.yml index ca9d55fd..36f46a70 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -199,6 +199,7 @@ reference: news: releases: + - text: "blockr 0.0.2.9020" - text: "blockr 0.0.2" - text: "blockr 0.0.1.9000" \ No newline at end of file diff --git a/man/new_filter_block.Rd b/man/new_filter_block.Rd index a0868bfe..34c5f5e1 100644 --- a/man/new_filter_block.Rd +++ b/man/new_filter_block.Rd @@ -8,6 +8,7 @@ new_filter_block( columns = character(), values = character(), filter_fun = "==", + submit = 0, ... ) } @@ -18,6 +19,11 @@ new_filter_block( \item{filter_fun}{Filter function for the expression} +\item{submit}{Whether this block requires to press a submit button to get +the results. Numeric, default to 0. If 0, then no computation is triggered +and the user needs to click on the button to see the block result. If > 0, +computation is automatically triggered.} + \item{...}{Further (metadata) attributes} } \description{ diff --git a/man/new_join_block.Rd b/man/new_join_block.Rd index cc3ba9c6..d4b9aced 100644 --- a/man/new_join_block.Rd +++ b/man/new_join_block.Rd @@ -4,7 +4,7 @@ \alias{new_join_block} \title{Join block} \usage{ -new_join_block(y = NULL, type = character(), by = character(), ...) +new_join_block(y = NULL, type = character(), by = character(), submit = 0, ...) } \arguments{ \item{y}{Second dataset for join.} @@ -13,6 +13,11 @@ new_join_block(y = NULL, type = character(), by = character(), ...) \item{by}{Join columns.} +\item{submit}{Whether this block requires to press a submit button to get +the results. Numeric, default to 0. If 0, then no computation is triggered +and the user needs to click on the button to see the block result. If > 0, +computation is automatically triggered.} + \item{...}{Further (metadata) attributes} } \description{ diff --git a/man/new_summarize_block.Rd b/man/new_summarize_block.Rd index 59453b5c..f43b5533 100644 --- a/man/new_summarize_block.Rd +++ b/man/new_summarize_block.Rd @@ -4,7 +4,12 @@ \alias{new_summarize_block} \title{Summarize block} \usage{ -new_summarize_block(func = character(), default_columns = character(), ...) +new_summarize_block( + func = character(), + default_columns = character(), + submit = 0, + ... +) } \arguments{ \item{func}{Summarize function to apply.} @@ -14,6 +19,11 @@ you can also pass predefined selected column for each summary. Therefore when not of length 0, columns should have the same length as func.} +\item{submit}{Whether this block requires to press a submit button to get +the results. Numeric, default to 0. If 0, then no computation is triggered +and the user needs to click on the button to see the block result. If > 0, +computation is automatically triggered.} + \item{...}{Further (metadata) attributes} } \description{ From f84269205cd7e9fb6c71199b3b9efbe6ecdaaddd Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Thu, 12 Sep 2024 15:45:27 +0200 Subject: [PATCH 02/11] txt --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index a0c701de..17fd5f04 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,7 @@ # blockr 0.0.2.9020 ## Feature -- Improved `submit` feature for blocks. Now submit isn't not added as a class but as an optional block attribute. When you design a block, you can pass the `submit` parameter like so: +- Improved `submit` feature for blocks. Now submit isn't added as a class but as an optional block attribute. When you design a block, you can pass the `submit` parameter like so: ```r new_super_block <- function(submit = 0, ...) { From ec351819413908c00d9408b2e1e9c98b37bf6d87 Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Fri, 13 Sep 2024 14:51:57 +0200 Subject: [PATCH 03/11] better styling for submit button --- R/ui.R | 15 ++++++++------- inst/assets/index.js | 2 +- srcjs/shiny.js | 4 +++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/R/ui.R b/R/ui.R index 3c517092..82102cc1 100644 --- a/R/ui.R +++ b/R/ui.R @@ -157,16 +157,17 @@ block_header.block <- function(x, ns, hidden_class, ...) { class = "fw-bold m-0" ) ), - data_info(x, ns), - div( - class = "block-tools flex-shrink-1", - if (!is.null(attr(x, "submit"))) { + if (!is.null(attr(x, "submit"))) { + div(class = "flex-grow-1", actionLink( ns("submit"), - iconPlay() + iconPlay(), + class = "p-0 btn btn-link" ) - } - ) + ) + }, + data_info(x, ns), + div(class = "block-tools flex-shrink-1") ) ) } diff --git a/inst/assets/index.js b/inst/assets/index.js index 8b4943d4..e18aee9e 100644 --- a/inst/assets/index.js +++ b/inst/assets/index.js @@ -1 +1 @@ -!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("Shiny")):"function"==typeof define&&define.amd?define(["Shiny"],n):"object"==typeof exports?exports.blockr=n(require("Shiny")):e.blockr=n(e.Shiny)}(self,(e=>(()=>{var n={826:()=>{window.Shiny.addCustomMessageHandler("blockr-copy-code",(e=>{var n;e.code?(n=e.code.map((e=>e.trim())).join("\n\t"),navigator.clipboard.writeText(n),window.Shiny.notifications.show({html:"Code copied to clipboard",type:"message"})):window.Shiny.notifications.show({html:"Failed to copy code to clipboard",type:"error"})}))},603:()=>{$((()=>{$("body").on("click",".stack-title-display",(e=>{const n=$(e.target).closest(".stack-title");n.find(".stack-title-display").addClass("d-none"),n.find(".stack-title-input").removeClass("d-none"),n.find(".stack-title-input").find("input").focus()})),$("body").on("click",".stack-title-save",(e=>{const n=$(e.target).closest(".input-group").closest(".stack-title"),t=n.find(".stack-title-input").find("input").val();""!==t?(n.find(".stack-title-display").text(t),n.find(".stack-title-input").addClass("d-none"),n.find(".stack-title-display").removeClass("d-none")):window.Shiny.notifications.show({html:"Must set a title",type:"error"})})),$("body").on("keydown",".stack-title-input",(e=>{if("Enter"!==e.key)return;const n=$(e.target).closest(".stack-title"),t=$(e.target).val();""!==t?(n.find(".stack-title-display").text(t),n.find(".stack-title-display").removeClass("d-none"),n.find(".stack-title-input").addClass("d-none")):window.Shiny.notifications.show({html:"Must set a title",type:"error"})}))}))},294:()=>{$((()=>{e()}));const e=()=>{[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new window.bootstrap.Tooltip(e)))}},230:n=>{"use strict";n.exports=e},390:e=>{function n(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((t=>{const o=e[t],i=typeof o;"object"!==i&&"function"!==i||Object.isFrozen(o)||n(o)})),e}class t{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function o(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function i(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}const s=e=>!!e.scope;class a{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=o(e)}openNode(e){if(!s(e))return;const n=((e,{prefix:n})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const t=e.split(".");return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}const r=(e={})=>{const n={children:[]};return Object.assign(n,e),n};class c{constructor(){this.rootNode=r(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n=r({scope:e});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{c._collapse(e)})))}}class l extends c{constructor(e){super(),this.options=e}addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,n){const t=e.root;n&&(t.scope=`language:${n}`),this.add(t)}toHTML(){return new a(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function d(e){return e?"string"==typeof e?e:e.source:null}function u(e){return f("(?=",e,")")}function g(e){return f("(?:",e,")*")}function h(e){return f("(?:",e,")?")}function f(...e){return e.map((e=>d(e))).join("")}function p(...e){const n=function(e){const n=e[e.length-1];return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}(e);return"("+(n.capture?"":"?:")+e.map((e=>d(e))).join("|")+")"}function b(e){return new RegExp(e.toString()+"|").exec("").length-1}const m=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function k(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t;let o=d(e),i="";for(;o.length>0;){const e=m.exec(o);if(!e){i+=o;break}i+=o.substring(0,e.index),o=o.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+n):(i+=e[0],"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)}const w="[a-zA-Z]\\w*",y="[a-zA-Z_]\\w*",E="\\b\\d+(\\.\\d+)?",v="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",x="\\b(0b[01]+)",_={begin:"\\\\[\\s\\S]",relevance:0},S={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[_]},C={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[_]},$=function(e,n,t={}){const o=i({scope:"comment",begin:e,end:n,contains:[]},t);o.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const s=p("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return o.contains.push({begin:f(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),o},A=$("//","$"),N=$("/\\*","\\*/"),M=$("#","$"),O={scope:"number",begin:E,relevance:0},R={scope:"number",begin:v,relevance:0},T={scope:"number",begin:x,relevance:0},j={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[_,{begin:/\[/,end:/\]/,relevance:0,contains:[_]}]},I={scope:"title",begin:w,relevance:0},L={scope:"title",begin:y,relevance:0},B={begin:"\\.\\s*"+y,relevance:0};var H=Object.freeze({__proto__:null,APOS_STRING_MODE:S,BACKSLASH_ESCAPE:_,BINARY_NUMBER_MODE:T,BINARY_NUMBER_RE:x,COMMENT:$,C_BLOCK_COMMENT_MODE:N,C_LINE_COMMENT_MODE:A,C_NUMBER_MODE:R,C_NUMBER_RE:v,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})},HASH_COMMENT_MODE:M,IDENT_RE:w,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:B,NUMBER_MODE:O,NUMBER_RE:E,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:C,REGEXP_MODE:j,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=f(n,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},TITLE_MODE:I,UNDERSCORE_IDENT_RE:y,UNDERSCORE_TITLE_MODE:L});function P(e,n){"."===e.input[e.index-1]&&n.ignoreMatch()}function D(e,n){void 0!==e.className&&(e.scope=e.className,delete e.className)}function z(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=P,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function U(e,n){Array.isArray(e.illegal)&&(e.illegal=p(...e.illegal))}function G(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Z(e,n){void 0===e.relevance&&(e.relevance=1)}const F=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]})),e.keywords=t.keywords,e.begin=f(t.beforeMatch,u(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},W=["of","and","for","in","not","or","if","then","parent","list","value"],X="keyword";function q(e,n,t=X){const o=Object.create(null);return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((function(t){Object.assign(o,q(e[t],n,t))})),o;function i(e,t){n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((function(n){const t=n.split("|");o[t[0]]=[e,K(t[0],t[1])]}))}}function K(e,n){return n?Number(n):function(e){return W.includes(e.toLowerCase())}(e)?0:1}const V={},J=e=>{console.error(e)},Y=(e,...n)=>{console.log(`WARN: ${e}`,...n)},Q=(e,n)=>{V[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),V[`${e}/${n}`]=!0)},ee=new Error;function ne(e,n,{key:t}){let o=0;const i=e[t],s={},a={};for(let e=1;e<=n.length;e++)a[e+o]=i[e],s[e+o]=!0,o+=b(n[e-1]);e[t]=a,e[t]._emit=s,e[t]._multi=!0}function te(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw J("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ee;if("object"!=typeof e.beginScope||null===e.beginScope)throw J("beginScope must be object"),ee;ne(e,e.begin,{key:"beginScope"}),e.begin=k(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw J("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ee;if("object"!=typeof e.endScope||null===e.endScope)throw J("endScope must be object"),ee;ne(e,e.end,{key:"endScope"}),e.end=k(e.end,{joinWith:""})}}(e)}function oe(e){function n(n,t){return new RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=b(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=n(k(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),o=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,o)}}class o{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;let t=n.exec(e);if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&this.considerAll()),t}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=i(e.classNameAliases||{}),function t(s,a){const r=s;if(s.isCompiled)return r;[D,G,te,F].forEach((e=>e(s,a))),e.compilerExtensions.forEach((e=>e(s,a))),s.__beforeBegin=null,[z,U,Z].forEach((e=>e(s,a))),s.isCompiled=!0;let c=null;return"object"==typeof s.keywords&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),c=s.keywords.$pattern,delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=q(s.keywords,e.case_insensitive)),r.keywordPatternRe=n(c,!0),a&&(s.begin||(s.begin=/\B|\b/),r.beginRe=n(r.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(r.endRe=n(r.end)),r.terminatorEnd=d(r.end)||"",s.endsWithParent&&a.terminatorEnd&&(r.terminatorEnd+=(s.end?"|":"")+a.terminatorEnd)),s.illegal&&(r.illegalRe=n(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(n){return i(e,{variants:null},n)}))),e.cachedVariants?e.cachedVariants:ie(e)?i(e,{starts:e.starts?i(e.starts):null}):Object.isFrozen(e)?i(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){t(e,r)})),s.starts&&t(s.starts,a),r.matcher=function(e){const n=new o;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(r),r}(e)}function ie(e){return!!e&&(e.endsWithParent||ie(e.starts))}class se extends Error{constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}const ae=o,re=i,ce=Symbol("nomatch"),le=function(e){const o=Object.create(null),i=Object.create(null),s=[];let a=!0;const r="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]};let d={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:l};function b(e){return d.noHighlightRe.test(e)}function m(e,n,t){let o="",i="";"object"==typeof n?(o=e,t=n.ignoreIllegals,i=n.language):(Q("10.7.0","highlight(lang, code, ...args) has been deprecated."),Q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,o=n),void 0===t&&(t=!0);const s={code:o,language:i};C("before:highlight",s);const a=s.result?s.result:k(s.language,s.code,t);return a.code=s.code,C("after:highlight",a),a}function k(e,n,i,s){const c=Object.create(null);function l(){if(!C.keywords)return void A.addText(N);let e=0;C.keywordPatternRe.lastIndex=0;let n=C.keywordPatternRe.exec(N),t="";for(;n;){t+=N.substring(e,n.index);const i=v.case_insensitive?n[0].toLowerCase():n[0],s=(o=i,C.keywords[o]);if(s){const[e,o]=s;if(A.addText(t),t="",c[i]=(c[i]||0)+1,c[i]<=7&&(M+=o),e.startsWith("_"))t+=n[0];else{const t=v.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0];e=C.keywordPatternRe.lastIndex,n=C.keywordPatternRe.exec(N)}var o;t+=N.substring(e),A.addText(t)}function u(){null!=C.subLanguage?function(){if(""===N)return;let e=null;if("string"==typeof C.subLanguage){if(!o[C.subLanguage])return void A.addText(N);e=k(C.subLanguage,N,!0,$[C.subLanguage]),$[C.subLanguage]=e._top}else e=w(N,C.subLanguage.length?C.subLanguage:null);C.relevance>0&&(M+=e.relevance),A.__addSublanguage(e._emitter,e.language)}():l(),N=""}function g(e,n){""!==e&&(A.startScope(n),A.addText(e),A.endScope())}function h(e,n){let t=1;const o=n.length-1;for(;t<=o;){if(!e._emit[t]){t++;continue}const o=v.classNameAliases[e[t]]||e[t],i=n[t];o?g(i,o):(N=i,l(),N=""),t++}}function f(e,n){return e.scope&&"string"==typeof e.scope&&A.openNode(v.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(g(N,v.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),N=""):e.beginScope._multi&&(h(e.beginScope,n),N="")),C=Object.create(e,{parent:{value:C}}),C}function p(e,n,o){let i=function(e,n){const t=e&&e.exec(n);return t&&0===t.index}(e.endRe,o);if(i){if(e["on:end"]){const o=new t(e);e["on:end"](n,o),o.isMatchIgnored&&(i=!1)}if(i){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return p(e.parent,n,o)}function b(e){return 0===C.matcher.regexIndex?(N+=e[0],1):(T=!0,0)}function m(e){const t=e[0],o=n.substring(e.index),i=p(C,e,o);if(!i)return ce;const s=C;C.endScope&&C.endScope._wrap?(u(),g(t,C.endScope._wrap)):C.endScope&&C.endScope._multi?(u(),h(C.endScope,e)):s.skip?N+=t:(s.returnEnd||s.excludeEnd||(N+=t),u(),s.excludeEnd&&(N=t));do{C.scope&&A.closeNode(),C.skip||C.subLanguage||(M+=C.relevance),C=C.parent}while(C!==i.parent);return i.starts&&f(i.starts,e),s.returnEnd?0:t.length}let y={};function E(o,s){const r=s&&s[0];if(N+=o,null==r)return u(),0;if("begin"===y.type&&"end"===s.type&&y.index===s.index&&""===r){if(N+=n.slice(s.index,s.index+1),!a){const n=new Error(`0 width match regex (${e})`);throw n.languageName=e,n.badRule=y.rule,n}return 1}if(y=s,"begin"===s.type)return function(e){const n=e[0],o=e.rule,i=new t(o),s=[o.__beforeBegin,o["on:begin"]];for(const t of s)if(t&&(t(e,i),i.isMatchIgnored))return b(n);return o.skip?N+=n:(o.excludeBegin&&(N+=n),u(),o.returnBegin||o.excludeBegin||(N=n)),f(o,e),o.returnBegin?0:n.length}(s);if("illegal"===s.type&&!i){const e=new Error('Illegal lexeme "'+r+'" for mode "'+(C.scope||"")+'"');throw e.mode=C,e}if("end"===s.type){const e=m(s);if(e!==ce)return e}if("illegal"===s.type&&""===r)return 1;if(R>1e5&&R>3*s.index)throw new Error("potential infinite loop, way more iterations than matches");return N+=r,r.length}const v=x(e);if(!v)throw J(r.replace("{}",e)),new Error('Unknown language: "'+e+'"');const _=oe(v);let S="",C=s||_;const $={},A=new d.__emitter(d);!function(){const e=[];for(let n=C;n!==v;n=n.parent)n.scope&&e.unshift(n.scope);e.forEach((e=>A.openNode(e)))}();let N="",M=0,O=0,R=0,T=!1;try{if(v.__emitTokens)v.__emitTokens(n,A);else{for(C.matcher.considerAll();;){R++,T?T=!1:C.matcher.considerAll(),C.matcher.lastIndex=O;const e=C.matcher.exec(n);if(!e)break;const t=E(n.substring(O,e.index),e);O=e.index+t}E(n.substring(O))}return A.finalize(),S=A.toHTML(),{language:e,value:S,relevance:M,illegal:!1,_emitter:A,_top:C}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:ae(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:O,context:n.slice(O-100,O+100),mode:t.mode,resultSoFar:S},_emitter:A};if(a)return{language:e,value:ae(n),illegal:!1,relevance:0,errorRaised:t,_emitter:A,_top:C};throw t}}function w(e,n){n=n||d.languages||Object.keys(o);const t=function(e){const n={value:ae(e),illegal:!1,relevance:0,_top:c,_emitter:new d.__emitter(d)};return n._emitter.addText(e),n}(e),i=n.filter(x).filter(S).map((n=>k(n,e,!1)));i.unshift(t);const s=i.sort(((e,n)=>{if(e.relevance!==n.relevance)return n.relevance-e.relevance;if(e.language&&n.language){if(x(e.language).supersetOf===n.language)return 1;if(x(n.language).supersetOf===e.language)return-1}return 0})),[a,r]=s,l=a;return l.secondBest=r,l}function y(e){let n=null;const t=function(e){let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=d.languageDetectRe.exec(n);if(t){const n=x(t[1]);return n||(Y(r.replace("{}",t[1])),Y("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}return n.split(/\s+/).find((e=>b(e)||x(e)))}(e);if(b(t))return;if(C("before:highlightElement",{el:e,language:t}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);if(e.children.length>0&&(d.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),d.throwUnescapedHTML))throw new se("One of your code blocks includes unescaped HTML.",e.innerHTML);n=e;const o=n.textContent,s=t?m(o,{language:t,ignoreIllegals:!0}):w(o);e.innerHTML=s.value,e.dataset.highlighted="yes",function(e,n,t){const o=n&&i[n]||t;e.classList.add("hljs"),e.classList.add(`language-${o}`)}(e,t,s.language),e.result={language:s.language,re:s.relevance,relevance:s.relevance},s.secondBest&&(e.secondBest={language:s.secondBest.language,relevance:s.secondBest.relevance}),C("after:highlightElement",{el:e,result:s,text:o})}let E=!1;function v(){"loading"!==document.readyState?document.querySelectorAll(d.cssSelector).forEach(y):E=!0}function x(e){return e=(e||"").toLowerCase(),o[e]||o[i[e]]}function _(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{i[e.toLowerCase()]=n}))}function S(e){const n=x(e);return n&&!n.disableAutodetect}function C(e,n){const t=e;s.forEach((function(e){e[t]&&e[t](n)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){E&&v()}),!1),Object.assign(e,{highlight:m,highlightAuto:w,highlightAll:v,highlightElement:y,highlightBlock:function(e){return Q("10.7.0","highlightBlock will be removed entirely in v12.0"),Q("10.7.0","Please use highlightElement now."),y(e)},configure:function(e){d=re(d,e)},initHighlighting:()=>{v(),Q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){v(),Q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(n,t){let i=null;try{i=t(e)}catch(e){if(J("Language definition for '{}' could not be registered.".replace("{}",n)),!a)throw e;J(e),i=c}i.name||(i.name=n),o[n]=i,i.rawDefinition=t.bind(null,e),i.aliases&&_(i.aliases,{languageName:n})},unregisterLanguage:function(e){delete o[e];for(const n of Object.keys(i))i[n]===e&&delete i[n]},listLanguages:function(){return Object.keys(o)},getLanguage:x,registerAliases:_,autoDetection:S,inherit:re,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{e["before:highlightBlock"](Object.assign({block:n.el},n))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{e["after:highlightBlock"](Object.assign({block:n.el},n))})}(e),s.push(e)},removePlugin:function(e){const n=s.indexOf(e);-1!==n&&s.splice(n,1)}}),e.debugMode=function(){a=!1},e.safeMode=function(){a=!0},e.versionString="11.9.0",e.regex={concat:f,lookahead:u,either:p,optional:h,anyNumberOfTimes:g};for(const e in H)"object"==typeof H[e]&&n(H[e]);return Object.assign(e,H),e},de=le({});de.newInstance=()=>le({}),e.exports=de,de.HighlightJS=de,de.default=de}},t={};function o(e){var i=t[e];if(void 0!==i)return i.exports;var s=t[e]={exports:{}};return n[e](s,s.exports,o),s.exports}o.d=(e,n)=>{for(var t in n)o.o(n,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},o.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";o.r(i),o.d(i,{isLocked:()=>r}),o(230),o(826);const e=o(390);e.registerLanguage("r",(function(e){const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,o=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,s=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:t,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,o]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,o]},{scope:{1:"punctuation",2:"number"},match:[s,o]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,o]}]},{scope:{3:"operator"},match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:s},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}})),$((()=>{$(document).on("shiny:value",(n=>{n.name.match(/-code$/)&&($(`#${n.name}`).addClass("language-r"),setTimeout((()=>{delete document.getElementById(n.name).dataset.highlighted,e.highlightElement(document.getElementById(n.name))}),250))}))})),$((()=>{s(),t(),n()}));const n=()=>{$("body").on("click",".stack-edit-toggle",(e=>{$(e.currentTarget).find("i").toggleClass("fa-chevron-up fa-chevron-down")})),$("body").on("click",".block-output-toggle",(e=>{$(e.currentTarget).find("i").toggleClass("fa-chevron-up fa-chevron-down")}))},t=()=>{$("body").on("click",".block-output-toggle",(e=>{const n=$(e.target).closest(".block");n.find(".block-inputs").is(":visible")?(n.find(".block-inputs").addClass("d-none"),n.find(".block-output").addClass("d-none")):(n.find(".block-inputs").removeClass("d-none"),n.find(".block-output").removeClass("d-none"));let t="shown";n.find(".block-output").hasClass("d-none")&&(t="hidden"),n.find(".block-inputs").trigger(t),n.find(".block-output").trigger(t)}))},s=()=>{$("body").on("click",".stack-edit-toggle",(e=>{const n=$(e.target).closest(".stack").find(".block");$(e.currentTarget).toggleClass("editable");const t=$(e.currentTarget).hasClass("editable");n.each(((e,o)=>{const i=$(o);if(t){if(i.removeClass("d-none"),i.find(".block-title").removeClass("d-none"),i.find(".block-download").removeClass("d-none"),i.find(".block-code-toggle").removeClass("d-none"),i.find(".block-output-toggle").removeClass("d-none"),e==n.length-1)return i.find(".block-output").addClass("show"),i.find(".block-output").removeClass("d-none"),i.find(".block-output").trigger("shown"),window.bootstrap.Collapse.getOrCreateInstance(i.find(".block-code")[0],{toggle:!1}).hide(),i.find(".block-inputs").removeClass("d-none"),void i.find(".block-inputs").trigger("shown");i.find(".block-loading").addClass("d-none")}else{if(i.find(".block-download").addClass("d-none"),i.find(".block-code-toggle").addClass("d-none"),i.find(".block-output-toggle").addClass("d-none"),i.find(".block-output-toggle").find("i").addClass("fa-chevron-up"),i.find(".block-output-toggle").find("i").removeClass("fa-chevron-down"),i.find(".block-title").addClass("d-none"),e==n.length-1)return i.removeClass("d-none"),i.find(".block-output").addClass("show"),i.find(".block-output").removeClass("d-none"),i.find(".block-output").trigger("shown"),window.bootstrap.Collapse.getOrCreateInstance(i.find(".block-code")[0],{toggle:!1}).hide(),i.find(".block-inputs").addClass("d-none"),void i.find(".block-inputs").trigger("hidden");i.addClass("d-none")}}))}))};o(603);let a=!1;window.Shiny.addCustomMessageHandler("lock",(e=>{a=e.locked,l(),c(e.locked)}));const r=()=>a,c=e=>{const n=new CustomEvent("blockr:lock",{detail:{locked:e}});document.dispatchEvent(n)},l=()=>{a&&($(".block-code-toggle").hide(),$(".block-output-toggle").hide(),$(".stack-remove").hide(),$(".stack-add-block").hide(),$(".stack-edit-toggle").hide(),$(".block-remove").hide(),$(".stack-title").off(),$(".stack").each(((e,n)=>{const t=$(n).find(".stack-edit-toggle");t.find("i").hasClass("fa-chevron-up")||t.trigger("click")})))};window.Shiny.addCustomMessageHandler("blockr-render-stack",(e=>{const n=`#${e.stack}`;(e=>{const n=$(e).find(".block").last(),t=n.find(".block-output"),o=n.find(".block-title"),i=n.find(".block-inputs");o.addClass("d-none"),i.addClass("d-none"),n.find(".block-download").addClass("d-none"),n.find(".block-code-toggle").addClass("d-none"),n.find(".block-output-toggle").addClass("d-none");const s=t.find(".shiny-bound-output").first().attr("id");$(document).on("shiny:value",(e=>{e.name===s&&t.find(".block-loading").addClass("d-none")}))})(n),((e,n)=>{a=n,a&&(e=>{if(!a)return;let n=$(e);n.find(".block-code-toggle").hide(),n.find(".block-output-toggle").hide(),n.find(".stack-remove").hide(),n.find(".stack-add-block").hide(),n.find(".stack-edit-toggle").hide(),n.find(".block-remove").hide(),n.find(".stack-title").off();const t=n.find(".stack-edit-toggle");t.find("i").hasClass("fa-chevron-up")||t.trigger("click")})(e)})(n,e.locked),(e=>{$(document).on("shiny:outputinvalidated",(n=>{n.name.match(`^${e}`)&&n.name.match("res$|plot$")&&($(`#${n.name}`).addClass("d-none"),$(`#${n.name}`).closest(".block").find(".block-loading").removeClass("d-none"))})),$(document).on("shiny:value shiny:error",(n=>{n.name.match(`^${e}`)&&n.name.match("res$|plot$")&&($(`#${n.name}`).removeClass("d-none"),$(`#${n.name}`).closest(".block").find(".block-loading").addClass("d-none"))}))})(e.stack);const t=new CustomEvent("blockr:stack-render",{detail:e});document.dispatchEvent(t)})),window.Shiny.addCustomMessageHandler("blockr-add-block",(e=>{const n=`#${e.stack}`;$(n).removeClass("d-none"),setTimeout((()=>{((e,n)=>{const t=$(e).find(".block-output-toggle");$(t).each(((e,t)=>{$(t).closest(".block").data("value")!=`${n}-block`&&($(t).find("i").hasClass("fa-chevron-down")||$(t).trigger("click"))}))})(n,e.block)}),350)})),window.Shiny.addCustomMessageHandler("validate-block",(e=>{})),window.Shiny.addCustomMessageHandler("validate-input",(e=>{})),window.Shiny.addCustomMessageHandler("toggle-submit",(e=>{$(`#${e.id}`).prop("disabled",!e.state)})),o(294)})(),i})())); \ No newline at end of file +!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("Shiny")):"function"==typeof define&&define.amd?define(["Shiny"],n):"object"==typeof exports?exports.blockr=n(require("Shiny")):e.blockr=n(e.Shiny)}(self,(e=>(()=>{var n={826:()=>{window.Shiny.addCustomMessageHandler("blockr-copy-code",(e=>{var n;e.code?(n=e.code.map((e=>e.trim())).join("\n\t"),navigator.clipboard.writeText(n),window.Shiny.notifications.show({html:"Code copied to clipboard",type:"message"})):window.Shiny.notifications.show({html:"Failed to copy code to clipboard",type:"error"})}))},603:()=>{$((()=>{$("body").on("click",".stack-title-display",(e=>{const n=$(e.target).closest(".stack-title");n.find(".stack-title-display").addClass("d-none"),n.find(".stack-title-input").removeClass("d-none"),n.find(".stack-title-input").find("input").focus()})),$("body").on("click",".stack-title-save",(e=>{const n=$(e.target).closest(".input-group").closest(".stack-title"),t=n.find(".stack-title-input").find("input").val();""!==t?(n.find(".stack-title-display").text(t),n.find(".stack-title-input").addClass("d-none"),n.find(".stack-title-display").removeClass("d-none")):window.Shiny.notifications.show({html:"Must set a title",type:"error"})})),$("body").on("keydown",".stack-title-input",(e=>{if("Enter"!==e.key)return;const n=$(e.target).closest(".stack-title"),t=$(e.target).val();""!==t?(n.find(".stack-title-display").text(t),n.find(".stack-title-display").removeClass("d-none"),n.find(".stack-title-input").addClass("d-none")):window.Shiny.notifications.show({html:"Must set a title",type:"error"})}))}))},294:()=>{$((()=>{e()}));const e=()=>{[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new window.bootstrap.Tooltip(e)))}},230:n=>{"use strict";n.exports=e},390:e=>{function n(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((t=>{const o=e[t],i=typeof o;"object"!==i&&"function"!==i||Object.isFrozen(o)||n(o)})),e}class t{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function o(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function i(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}const s=e=>!!e.scope;class a{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=o(e)}openNode(e){if(!s(e))return;const n=((e,{prefix:n})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const t=e.split(".");return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}const r=(e={})=>{const n={children:[]};return Object.assign(n,e),n};class c{constructor(){this.rootNode=r(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n=r({scope:e});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{c._collapse(e)})))}}class l extends c{constructor(e){super(),this.options=e}addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,n){const t=e.root;n&&(t.scope=`language:${n}`),this.add(t)}toHTML(){return new a(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function d(e){return e?"string"==typeof e?e:e.source:null}function u(e){return f("(?=",e,")")}function g(e){return f("(?:",e,")*")}function h(e){return f("(?:",e,")?")}function f(...e){return e.map((e=>d(e))).join("")}function p(...e){const n=function(e){const n=e[e.length-1];return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}(e);return"("+(n.capture?"":"?:")+e.map((e=>d(e))).join("|")+")"}function b(e){return new RegExp(e.toString()+"|").exec("").length-1}const m=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function k(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t;let o=d(e),i="";for(;o.length>0;){const e=m.exec(o);if(!e){i+=o;break}i+=o.substring(0,e.index),o=o.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+n):(i+=e[0],"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)}const w="[a-zA-Z]\\w*",y="[a-zA-Z_]\\w*",E="\\b\\d+(\\.\\d+)?",v="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",x="\\b(0b[01]+)",_={begin:"\\\\[\\s\\S]",relevance:0},S={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[_]},C={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[_]},$=function(e,n,t={}){const o=i({scope:"comment",begin:e,end:n,contains:[]},t);o.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const s=p("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return o.contains.push({begin:f(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),o},A=$("//","$"),N=$("/\\*","\\*/"),M=$("#","$"),O={scope:"number",begin:E,relevance:0},R={scope:"number",begin:v,relevance:0},T={scope:"number",begin:x,relevance:0},j={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[_,{begin:/\[/,end:/\]/,relevance:0,contains:[_]}]},I={scope:"title",begin:w,relevance:0},L={scope:"title",begin:y,relevance:0},B={begin:"\\.\\s*"+y,relevance:0};var H=Object.freeze({__proto__:null,APOS_STRING_MODE:S,BACKSLASH_ESCAPE:_,BINARY_NUMBER_MODE:T,BINARY_NUMBER_RE:x,COMMENT:$,C_BLOCK_COMMENT_MODE:N,C_LINE_COMMENT_MODE:A,C_NUMBER_MODE:R,C_NUMBER_RE:v,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})},HASH_COMMENT_MODE:M,IDENT_RE:w,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:B,NUMBER_MODE:O,NUMBER_RE:E,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:C,REGEXP_MODE:j,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=f(n,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},TITLE_MODE:I,UNDERSCORE_IDENT_RE:y,UNDERSCORE_TITLE_MODE:L});function P(e,n){"."===e.input[e.index-1]&&n.ignoreMatch()}function D(e,n){void 0!==e.className&&(e.scope=e.className,delete e.className)}function z(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=P,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function U(e,n){Array.isArray(e.illegal)&&(e.illegal=p(...e.illegal))}function G(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Z(e,n){void 0===e.relevance&&(e.relevance=1)}const F=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]})),e.keywords=t.keywords,e.begin=f(t.beforeMatch,u(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},W=["of","and","for","in","not","or","if","then","parent","list","value"],X="keyword";function q(e,n,t=X){const o=Object.create(null);return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((function(t){Object.assign(o,q(e[t],n,t))})),o;function i(e,t){n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((function(n){const t=n.split("|");o[t[0]]=[e,K(t[0],t[1])]}))}}function K(e,n){return n?Number(n):function(e){return W.includes(e.toLowerCase())}(e)?0:1}const V={},J=e=>{console.error(e)},Y=(e,...n)=>{console.log(`WARN: ${e}`,...n)},Q=(e,n)=>{V[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),V[`${e}/${n}`]=!0)},ee=new Error;function ne(e,n,{key:t}){let o=0;const i=e[t],s={},a={};for(let e=1;e<=n.length;e++)a[e+o]=i[e],s[e+o]=!0,o+=b(n[e-1]);e[t]=a,e[t]._emit=s,e[t]._multi=!0}function te(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw J("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ee;if("object"!=typeof e.beginScope||null===e.beginScope)throw J("beginScope must be object"),ee;ne(e,e.begin,{key:"beginScope"}),e.begin=k(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw J("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ee;if("object"!=typeof e.endScope||null===e.endScope)throw J("endScope must be object"),ee;ne(e,e.end,{key:"endScope"}),e.end=k(e.end,{joinWith:""})}}(e)}function oe(e){function n(n,t){return new RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=b(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=n(k(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),o=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,o)}}class o{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;let t=n.exec(e);if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&this.considerAll()),t}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=i(e.classNameAliases||{}),function t(s,a){const r=s;if(s.isCompiled)return r;[D,G,te,F].forEach((e=>e(s,a))),e.compilerExtensions.forEach((e=>e(s,a))),s.__beforeBegin=null,[z,U,Z].forEach((e=>e(s,a))),s.isCompiled=!0;let c=null;return"object"==typeof s.keywords&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),c=s.keywords.$pattern,delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=q(s.keywords,e.case_insensitive)),r.keywordPatternRe=n(c,!0),a&&(s.begin||(s.begin=/\B|\b/),r.beginRe=n(r.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(r.endRe=n(r.end)),r.terminatorEnd=d(r.end)||"",s.endsWithParent&&a.terminatorEnd&&(r.terminatorEnd+=(s.end?"|":"")+a.terminatorEnd)),s.illegal&&(r.illegalRe=n(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(n){return i(e,{variants:null},n)}))),e.cachedVariants?e.cachedVariants:ie(e)?i(e,{starts:e.starts?i(e.starts):null}):Object.isFrozen(e)?i(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){t(e,r)})),s.starts&&t(s.starts,a),r.matcher=function(e){const n=new o;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(r),r}(e)}function ie(e){return!!e&&(e.endsWithParent||ie(e.starts))}class se extends Error{constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}const ae=o,re=i,ce=Symbol("nomatch"),le=function(e){const o=Object.create(null),i=Object.create(null),s=[];let a=!0;const r="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]};let d={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:l};function b(e){return d.noHighlightRe.test(e)}function m(e,n,t){let o="",i="";"object"==typeof n?(o=e,t=n.ignoreIllegals,i=n.language):(Q("10.7.0","highlight(lang, code, ...args) has been deprecated."),Q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,o=n),void 0===t&&(t=!0);const s={code:o,language:i};C("before:highlight",s);const a=s.result?s.result:k(s.language,s.code,t);return a.code=s.code,C("after:highlight",a),a}function k(e,n,i,s){const c=Object.create(null);function l(){if(!C.keywords)return void A.addText(N);let e=0;C.keywordPatternRe.lastIndex=0;let n=C.keywordPatternRe.exec(N),t="";for(;n;){t+=N.substring(e,n.index);const i=v.case_insensitive?n[0].toLowerCase():n[0],s=(o=i,C.keywords[o]);if(s){const[e,o]=s;if(A.addText(t),t="",c[i]=(c[i]||0)+1,c[i]<=7&&(M+=o),e.startsWith("_"))t+=n[0];else{const t=v.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0];e=C.keywordPatternRe.lastIndex,n=C.keywordPatternRe.exec(N)}var o;t+=N.substring(e),A.addText(t)}function u(){null!=C.subLanguage?function(){if(""===N)return;let e=null;if("string"==typeof C.subLanguage){if(!o[C.subLanguage])return void A.addText(N);e=k(C.subLanguage,N,!0,$[C.subLanguage]),$[C.subLanguage]=e._top}else e=w(N,C.subLanguage.length?C.subLanguage:null);C.relevance>0&&(M+=e.relevance),A.__addSublanguage(e._emitter,e.language)}():l(),N=""}function g(e,n){""!==e&&(A.startScope(n),A.addText(e),A.endScope())}function h(e,n){let t=1;const o=n.length-1;for(;t<=o;){if(!e._emit[t]){t++;continue}const o=v.classNameAliases[e[t]]||e[t],i=n[t];o?g(i,o):(N=i,l(),N=""),t++}}function f(e,n){return e.scope&&"string"==typeof e.scope&&A.openNode(v.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(g(N,v.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),N=""):e.beginScope._multi&&(h(e.beginScope,n),N="")),C=Object.create(e,{parent:{value:C}}),C}function p(e,n,o){let i=function(e,n){const t=e&&e.exec(n);return t&&0===t.index}(e.endRe,o);if(i){if(e["on:end"]){const o=new t(e);e["on:end"](n,o),o.isMatchIgnored&&(i=!1)}if(i){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return p(e.parent,n,o)}function b(e){return 0===C.matcher.regexIndex?(N+=e[0],1):(T=!0,0)}function m(e){const t=e[0],o=n.substring(e.index),i=p(C,e,o);if(!i)return ce;const s=C;C.endScope&&C.endScope._wrap?(u(),g(t,C.endScope._wrap)):C.endScope&&C.endScope._multi?(u(),h(C.endScope,e)):s.skip?N+=t:(s.returnEnd||s.excludeEnd||(N+=t),u(),s.excludeEnd&&(N=t));do{C.scope&&A.closeNode(),C.skip||C.subLanguage||(M+=C.relevance),C=C.parent}while(C!==i.parent);return i.starts&&f(i.starts,e),s.returnEnd?0:t.length}let y={};function E(o,s){const r=s&&s[0];if(N+=o,null==r)return u(),0;if("begin"===y.type&&"end"===s.type&&y.index===s.index&&""===r){if(N+=n.slice(s.index,s.index+1),!a){const n=new Error(`0 width match regex (${e})`);throw n.languageName=e,n.badRule=y.rule,n}return 1}if(y=s,"begin"===s.type)return function(e){const n=e[0],o=e.rule,i=new t(o),s=[o.__beforeBegin,o["on:begin"]];for(const t of s)if(t&&(t(e,i),i.isMatchIgnored))return b(n);return o.skip?N+=n:(o.excludeBegin&&(N+=n),u(),o.returnBegin||o.excludeBegin||(N=n)),f(o,e),o.returnBegin?0:n.length}(s);if("illegal"===s.type&&!i){const e=new Error('Illegal lexeme "'+r+'" for mode "'+(C.scope||"")+'"');throw e.mode=C,e}if("end"===s.type){const e=m(s);if(e!==ce)return e}if("illegal"===s.type&&""===r)return 1;if(R>1e5&&R>3*s.index)throw new Error("potential infinite loop, way more iterations than matches");return N+=r,r.length}const v=x(e);if(!v)throw J(r.replace("{}",e)),new Error('Unknown language: "'+e+'"');const _=oe(v);let S="",C=s||_;const $={},A=new d.__emitter(d);!function(){const e=[];for(let n=C;n!==v;n=n.parent)n.scope&&e.unshift(n.scope);e.forEach((e=>A.openNode(e)))}();let N="",M=0,O=0,R=0,T=!1;try{if(v.__emitTokens)v.__emitTokens(n,A);else{for(C.matcher.considerAll();;){R++,T?T=!1:C.matcher.considerAll(),C.matcher.lastIndex=O;const e=C.matcher.exec(n);if(!e)break;const t=E(n.substring(O,e.index),e);O=e.index+t}E(n.substring(O))}return A.finalize(),S=A.toHTML(),{language:e,value:S,relevance:M,illegal:!1,_emitter:A,_top:C}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:ae(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:O,context:n.slice(O-100,O+100),mode:t.mode,resultSoFar:S},_emitter:A};if(a)return{language:e,value:ae(n),illegal:!1,relevance:0,errorRaised:t,_emitter:A,_top:C};throw t}}function w(e,n){n=n||d.languages||Object.keys(o);const t=function(e){const n={value:ae(e),illegal:!1,relevance:0,_top:c,_emitter:new d.__emitter(d)};return n._emitter.addText(e),n}(e),i=n.filter(x).filter(S).map((n=>k(n,e,!1)));i.unshift(t);const s=i.sort(((e,n)=>{if(e.relevance!==n.relevance)return n.relevance-e.relevance;if(e.language&&n.language){if(x(e.language).supersetOf===n.language)return 1;if(x(n.language).supersetOf===e.language)return-1}return 0})),[a,r]=s,l=a;return l.secondBest=r,l}function y(e){let n=null;const t=function(e){let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=d.languageDetectRe.exec(n);if(t){const n=x(t[1]);return n||(Y(r.replace("{}",t[1])),Y("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}return n.split(/\s+/).find((e=>b(e)||x(e)))}(e);if(b(t))return;if(C("before:highlightElement",{el:e,language:t}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);if(e.children.length>0&&(d.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),d.throwUnescapedHTML))throw new se("One of your code blocks includes unescaped HTML.",e.innerHTML);n=e;const o=n.textContent,s=t?m(o,{language:t,ignoreIllegals:!0}):w(o);e.innerHTML=s.value,e.dataset.highlighted="yes",function(e,n,t){const o=n&&i[n]||t;e.classList.add("hljs"),e.classList.add(`language-${o}`)}(e,t,s.language),e.result={language:s.language,re:s.relevance,relevance:s.relevance},s.secondBest&&(e.secondBest={language:s.secondBest.language,relevance:s.secondBest.relevance}),C("after:highlightElement",{el:e,result:s,text:o})}let E=!1;function v(){"loading"!==document.readyState?document.querySelectorAll(d.cssSelector).forEach(y):E=!0}function x(e){return e=(e||"").toLowerCase(),o[e]||o[i[e]]}function _(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{i[e.toLowerCase()]=n}))}function S(e){const n=x(e);return n&&!n.disableAutodetect}function C(e,n){const t=e;s.forEach((function(e){e[t]&&e[t](n)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){E&&v()}),!1),Object.assign(e,{highlight:m,highlightAuto:w,highlightAll:v,highlightElement:y,highlightBlock:function(e){return Q("10.7.0","highlightBlock will be removed entirely in v12.0"),Q("10.7.0","Please use highlightElement now."),y(e)},configure:function(e){d=re(d,e)},initHighlighting:()=>{v(),Q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){v(),Q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(n,t){let i=null;try{i=t(e)}catch(e){if(J("Language definition for '{}' could not be registered.".replace("{}",n)),!a)throw e;J(e),i=c}i.name||(i.name=n),o[n]=i,i.rawDefinition=t.bind(null,e),i.aliases&&_(i.aliases,{languageName:n})},unregisterLanguage:function(e){delete o[e];for(const n of Object.keys(i))i[n]===e&&delete i[n]},listLanguages:function(){return Object.keys(o)},getLanguage:x,registerAliases:_,autoDetection:S,inherit:re,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{e["before:highlightBlock"](Object.assign({block:n.el},n))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{e["after:highlightBlock"](Object.assign({block:n.el},n))})}(e),s.push(e)},removePlugin:function(e){const n=s.indexOf(e);-1!==n&&s.splice(n,1)}}),e.debugMode=function(){a=!1},e.safeMode=function(){a=!0},e.versionString="11.9.0",e.regex={concat:f,lookahead:u,either:p,optional:h,anyNumberOfTimes:g};for(const e in H)"object"==typeof H[e]&&n(H[e]);return Object.assign(e,H),e},de=le({});de.newInstance=()=>le({}),e.exports=de,de.HighlightJS=de,de.default=de}},t={};function o(e){var i=t[e];if(void 0!==i)return i.exports;var s=t[e]={exports:{}};return n[e](s,s.exports,o),s.exports}o.d=(e,n)=>{for(var t in n)o.o(n,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},o.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";o.r(i),o.d(i,{isLocked:()=>r}),o(230),o(826);const e=o(390);e.registerLanguage("r",(function(e){const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,o=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,s=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:t,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,o]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,o]},{scope:{1:"punctuation",2:"number"},match:[s,o]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,o]}]},{scope:{3:"operator"},match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:s},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}})),$((()=>{$(document).on("shiny:value",(n=>{n.name.match(/-code$/)&&($(`#${n.name}`).addClass("language-r"),setTimeout((()=>{delete document.getElementById(n.name).dataset.highlighted,e.highlightElement(document.getElementById(n.name))}),250))}))})),$((()=>{s(),t(),n()}));const n=()=>{$("body").on("click",".stack-edit-toggle",(e=>{$(e.currentTarget).find("i").toggleClass("fa-chevron-up fa-chevron-down")})),$("body").on("click",".block-output-toggle",(e=>{$(e.currentTarget).find("i").toggleClass("fa-chevron-up fa-chevron-down")}))},t=()=>{$("body").on("click",".block-output-toggle",(e=>{const n=$(e.target).closest(".block");n.find(".block-inputs").is(":visible")?(n.find(".block-inputs").addClass("d-none"),n.find(".block-output").addClass("d-none")):(n.find(".block-inputs").removeClass("d-none"),n.find(".block-output").removeClass("d-none"));let t="shown";n.find(".block-output").hasClass("d-none")&&(t="hidden"),n.find(".block-inputs").trigger(t),n.find(".block-output").trigger(t)}))},s=()=>{$("body").on("click",".stack-edit-toggle",(e=>{const n=$(e.target).closest(".stack").find(".block");$(e.currentTarget).toggleClass("editable");const t=$(e.currentTarget).hasClass("editable");n.each(((e,o)=>{const i=$(o);if(t){if(i.removeClass("d-none"),i.find(".block-title").removeClass("d-none"),i.find(".block-download").removeClass("d-none"),i.find(".block-code-toggle").removeClass("d-none"),i.find(".block-output-toggle").removeClass("d-none"),e==n.length-1)return i.find(".block-output").addClass("show"),i.find(".block-output").removeClass("d-none"),i.find(".block-output").trigger("shown"),window.bootstrap.Collapse.getOrCreateInstance(i.find(".block-code")[0],{toggle:!1}).hide(),i.find(".block-inputs").removeClass("d-none"),void i.find(".block-inputs").trigger("shown");i.find(".block-loading").addClass("d-none")}else{if(i.find(".block-download").addClass("d-none"),i.find(".block-code-toggle").addClass("d-none"),i.find(".block-output-toggle").addClass("d-none"),i.find(".block-output-toggle").find("i").addClass("fa-chevron-up"),i.find(".block-output-toggle").find("i").removeClass("fa-chevron-down"),i.find(".block-title").addClass("d-none"),e==n.length-1)return i.removeClass("d-none"),i.find(".block-output").addClass("show"),i.find(".block-output").removeClass("d-none"),i.find(".block-output").trigger("shown"),window.bootstrap.Collapse.getOrCreateInstance(i.find(".block-code")[0],{toggle:!1}).hide(),i.find(".block-inputs").addClass("d-none"),void i.find(".block-inputs").trigger("hidden");i.addClass("d-none")}}))}))};o(603);let a=!1;window.Shiny.addCustomMessageHandler("lock",(e=>{a=e.locked,l(),c(e.locked)}));const r=()=>a,c=e=>{const n=new CustomEvent("blockr:lock",{detail:{locked:e}});document.dispatchEvent(n)},l=()=>{a&&($(".block-code-toggle").hide(),$(".block-output-toggle").hide(),$(".stack-remove").hide(),$(".stack-add-block").hide(),$(".stack-edit-toggle").hide(),$(".block-remove").hide(),$(".stack-title").off(),$(".stack").each(((e,n)=>{const t=$(n).find(".stack-edit-toggle");t.find("i").hasClass("fa-chevron-up")||t.trigger("click")})))};window.Shiny.addCustomMessageHandler("blockr-render-stack",(e=>{const n=`#${e.stack}`;(e=>{const n=$(e).find(".block").last(),t=n.find(".block-output"),o=n.find(".block-title"),i=n.find(".block-inputs");o.addClass("d-none"),i.addClass("d-none"),n.find(".block-download").addClass("d-none"),n.find(".block-code-toggle").addClass("d-none"),n.find(".block-output-toggle").addClass("d-none");const s=t.find(".shiny-bound-output").first().attr("id");$(document).on("shiny:value",(e=>{e.name===s&&t.find(".block-loading").addClass("d-none")}))})(n),((e,n)=>{a=n,a&&(e=>{if(!a)return;let n=$(e);n.find(".block-code-toggle").hide(),n.find(".block-output-toggle").hide(),n.find(".stack-remove").hide(),n.find(".stack-add-block").hide(),n.find(".stack-edit-toggle").hide(),n.find(".block-remove").hide(),n.find(".stack-title").off();const t=n.find(".stack-edit-toggle");t.find("i").hasClass("fa-chevron-up")||t.trigger("click")})(e)})(n,e.locked),(e=>{$(document).on("shiny:outputinvalidated",(n=>{n.name.match(`^${e}`)&&n.name.match("res$|plot$")&&($(`#${n.name}`).addClass("d-none"),$(`#${n.name}`).closest(".block").find(".block-loading").removeClass("d-none"))})),$(document).on("shiny:value shiny:error",(n=>{n.name.match(`^${e}`)&&n.name.match("res$|plot$")&&($(`#${n.name}`).removeClass("d-none"),$(`#${n.name}`).closest(".block").find(".block-loading").addClass("d-none"))}))})(e.stack);const t=new CustomEvent("blockr:stack-render",{detail:e});document.dispatchEvent(t)})),window.Shiny.addCustomMessageHandler("blockr-add-block",(e=>{const n=`#${e.stack}`;$(n).removeClass("d-none"),setTimeout((()=>{((e,n)=>{const t=$(e).find(".block-output-toggle");$(t).each(((e,t)=>{$(t).closest(".block").data("value")!=`${n}-block`&&($(t).find("i").hasClass("fa-chevron-down")||$(t).trigger("click"))}))})(n,e.block)}),350)})),window.Shiny.addCustomMessageHandler("validate-block",(e=>{})),window.Shiny.addCustomMessageHandler("validate-input",(e=>{})),window.Shiny.addCustomMessageHandler("toggle-submit",(e=>{$(`#${e.id}`).toggleClass("disabled",!e.state).attr("aria-disabled",!e.state)})),o(294)})(),i})())); \ No newline at end of file diff --git a/srcjs/shiny.js b/srcjs/shiny.js index 5c18823c..ce2f1741 100644 --- a/srcjs/shiny.js +++ b/srcjs/shiny.js @@ -27,5 +27,7 @@ window.Shiny.addCustomMessageHandler("validate-block", (_msg) => {}); window.Shiny.addCustomMessageHandler("validate-input", (_msg) => {}); window.Shiny.addCustomMessageHandler("toggle-submit", (msg) => { - $(`#${msg.id}`).prop("disabled", !msg.state); + $(`#${msg.id}`) + .toggleClass("disabled", !msg.state) + .attr("aria-disabled", !msg.state) }); From a5ce288d3c407044fbd6bf80f6e17a27493cfb5b Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Fri, 13 Sep 2024 15:39:42 +0200 Subject: [PATCH 04/11] Will also fix No error reporting #415 --- R/utils.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/utils.R b/R/utils.R index 41001578..261ad9bb 100644 --- a/R/utils.R +++ b/R/utils.R @@ -280,7 +280,7 @@ send_error_to_ui <- function(blk, is_valid, session) { ) # Send validation message - if (!is_valid$block) { + if (!is_valid$block && length(is_valid$message)) { insertUI( selector = sprintf("[data-value=\"%s\"] .block-validation", ns("block")), ui = div( From 7367ba2491bc7f637895c0acf8e1b8b0f7ff1574 Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Fri, 13 Sep 2024 16:07:21 +0200 Subject: [PATCH 05/11] move to input_task_button to block button during processing (useful for long running tasks) --- R/ui.R | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/R/ui.R b/R/ui.R index 82102cc1..575abd5e 100644 --- a/R/ui.R +++ b/R/ui.R @@ -145,6 +145,22 @@ block_header <- function(x, ...) { block_header.block <- function(x, ns, hidden_class, ...) { title <- get_block_title(x) + submit_ui <- NULL + if (!is.null(attr(x, "submit"))) { + submit_ui <- div(class = "flex-grow-1", + bslib::input_task_button( + ns("submit"), + iconPlay(), + class = "p-0 btn-link" + ) + ) + + submit_ui <- htmltools::tagQuery(submit_ui)$ + find(".btn")$ + removeClass("btn-primary")$ + allTags() + } + div( class = sprintf("m-0 card-title block-title %s", hidden_class), div( @@ -157,15 +173,7 @@ block_header.block <- function(x, ns, hidden_class, ...) { class = "fw-bold m-0" ) ), - if (!is.null(attr(x, "submit"))) { - div(class = "flex-grow-1", - actionLink( - ns("submit"), - iconPlay(), - class = "p-0 btn btn-link" - ) - ) - }, + submit_ui, data_info(x, ns), div(class = "block-tools flex-shrink-1") ) From 0fc5c4eb17adcb1ec8faad1a4812916366a45af0 Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Mon, 16 Sep 2024 08:39:00 +0200 Subject: [PATCH 06/11] lint --- R/ui.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/ui.R b/R/ui.R index 575abd5e..b2f85fd4 100644 --- a/R/ui.R +++ b/R/ui.R @@ -158,7 +158,7 @@ block_header.block <- function(x, ns, hidden_class, ...) { submit_ui <- htmltools::tagQuery(submit_ui)$ find(".btn")$ removeClass("btn-primary")$ - allTags() + allTags() } div( From 824209c06406a121d9d732d98470650515fbab1f Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Mon, 16 Sep 2024 12:29:53 +0200 Subject: [PATCH 07/11] make button more visible --- R/ui.R | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/R/ui.R b/R/ui.R index b2f85fd4..4e8faf94 100644 --- a/R/ui.R +++ b/R/ui.R @@ -150,15 +150,11 @@ block_header.block <- function(x, ns, hidden_class, ...) { submit_ui <- div(class = "flex-grow-1", bslib::input_task_button( ns("submit"), - iconPlay(), - class = "p-0 btn-link" + "Run", + icon = iconPlay(), + class = "btn-sm btn-success" ) ) - - submit_ui <- htmltools::tagQuery(submit_ui)$ - find(".btn")$ - removeClass("btn-primary")$ - allTags() } div( From 7c2a048511da1fe23f558c6d08225575d96e76e6 Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Thu, 19 Sep 2024 10:06:17 +0200 Subject: [PATCH 08/11] refactor submit --- NEWS.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/NEWS.md b/NEWS.md index 17fd5f04..ebb10159 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,10 +1,10 @@ # blockr 0.0.2.9020 ## Feature -- Improved `submit` feature for blocks. Now submit isn't added as a class but as an optional block attribute. When you design a block, you can pass the `submit` parameter like so: +- Improved `submit` feature for blocks. Now submit isn't added as a class but as a special block attribute. When you design a block, you can pass the `submit` parameter like so: ```r -new_super_block <- function(submit = 0, ...) { +new_super_block <- function(submit = NA, ...) { fields <- list() new_block( fields = fields, @@ -16,15 +16,14 @@ new_super_block <- function(submit = 0, ...) { } ``` -When `submit = 0`, it will add a submit button but computations are blocked (clicking on it is required). Internally, each time -the `input$submit` is clicked, the submit attribute is incremented by 1 to stay in sync with the UI button. This is useful when the stack is serialized, since this state is kept so that computations can be automatically re-triggered on restore, if `submit > 0`. +When `submit = NA`, it will add a submit button but computations are blocked, as clicking on it is required. Internally, once the `input$submit` is clicked, the submit attribute is set to `TRUE`. This is useful when the stack is serialized, since this state is kept so that computations can be automatically re-triggered on restore. When `submit = TRUE`, a button is shown and the result is also computed. When `submit = FALSE`, no button is shown. ```r -serve_stack(new_stack(new_dataset_block(), new_filter_block(columns = "Time", submit = 0))) - +# You can disable the submit button for filter block +serve_stack(new_stack(new_dataset_block(), new_filter_block(columns = "Time", submit = FALSE))) +serve_stack(new_stack(new_dataset_block(), new_filter_block(columns = "Time", submit = NA))) # Simulate what happens when restoring a serialised stack -# with submit > 0 -serve_stack(new_stack(new_dataset_block(), new_filter_block(columns = "Time", submit = 1))) +serve_stack(new_stack(new_dataset_block(), new_filter_block(columns = "Time", submit = TRUE))) ``` - Improved __add__ new block. From 2495764b9a7559fc3ff8cbbc957ca5bb1571c75a Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Thu, 19 Sep 2024 10:06:31 +0200 Subject: [PATCH 09/11] refactor submit --- R/block-core.R | 16 ++++++++++++++-- R/blocks.R | 12 +++--------- R/server.R | 11 ++++++----- R/ui.R | 2 +- man/new_block.Rd | 15 ++++++++++++++- man/new_filter_block.Rd | 9 +++++---- man/new_join_block.Rd | 15 +++++++++++---- man/new_summarize_block.Rd | 9 +++++---- 8 files changed, 59 insertions(+), 30 deletions(-) diff --git a/R/block-core.R b/R/block-core.R index a1096536..9c231508 100644 --- a/R/block-core.R +++ b/R/block-core.R @@ -9,6 +9,11 @@ #' @param expr A quoted expression (compatible with partial substitution as #' implemented in [base::bquote()] and intended for evaluation in the context #' of the fields) +#' @param submit Whether this block requires to press a submit button to get +#' the results. Boolean, default to FALSE, which means no submit button. +#' If NA, then no computation is triggered and the user needs to click on the button +#' to see the block result. If TRUE, computation is automatically triggered and the button +#' is shown (which is useful when restoring a stack). #' @param ... Further (metadata) attributes #' @param class Block subclass #' @@ -16,7 +21,8 @@ #' @import blockr.data #' @import dplyr #' @importFrom stats setNames -new_block <- function(fields, expr, name = rand_names(), ..., +new_block <- function(fields, expr, name = rand_names(), + submit = FALSE, ..., class = character()) { stopifnot( is.list(fields), @@ -25,8 +31,14 @@ new_block <- function(fields, expr, name = rand_names(), ..., is_string(name) ) + if (is.na(submit)) { + submit <- 0 + } else { + submit <- if (submit) 1 else -1 + } + structure(fields, - name = name, expr = expr, result = NULL, ..., + name = name, expr = expr, result = NULL, submit = submit, ..., class = c(class, "block") ) } diff --git a/R/blocks.R b/R/blocks.R index 8b575b34..432c36fd 100644 --- a/R/blocks.R +++ b/R/blocks.R @@ -188,13 +188,9 @@ new_result_block <- function(...) { #' @param columns Columns used for filtering #' @param values Values used for filtering #' @param filter_fun Filter function for the expression -#' @param submit Whether this block requires to press a submit button to get -#' the results. Numeric, default to 0. If 0, then no computation is triggered -#' and the user needs to click on the button to see the block result. If > 0, -#' computation is automatically triggered. #' @export new_filter_block <- function(columns = character(), values = character(), - filter_fun = "==", submit = 0, ...) { + filter_fun = "==", submit = NA, ...) { sub_fields <- function(data, columns) { determine_field <- function(x) { switch(class(x), @@ -325,10 +321,9 @@ new_select_block <- function(columns = character(), ...) { #' you can also pass predefined selected column for each summary. #' Therefore when not of length 0, columns should have the same length #' as func. -#' @inheritParams new_filter_block #' @export new_summarize_block <- function(func = character(), - default_columns = character(), submit = 0, ...) { + default_columns = character(), submit = NA, ...) { if (length(default_columns) > 0) { stopifnot(length(func) == length(default_columns)) } @@ -499,11 +494,10 @@ new_group_by_block <- function(columns = character(), ...) { #' @param y Second dataset for join. #' @param type Join type. #' @param by Join columns. -#' @inheritParams new_filter_block #' #' @export new_join_block <- function(y = NULL, type = character(), by = character(), - submit = 0, ...) { + submit = NA, ...) { by_choices <- function(data, y) { intersect(colnames(data), colnames(y)) } diff --git a/R/server.R b/R/server.R index bc3e1311..6069791f 100644 --- a/R/server.R +++ b/R/server.R @@ -190,18 +190,19 @@ generate_server_block <- function( # join that can have computationally intense tasks # and have nested fields, we require to click on # the action button before doing anything. - if (!is.null(attr(x, "submit"))) { + if (attr(x, "submit") > -1) { # Increment submit attribute for serialization - # So that if a block is serialised with submit > 0 + # So that if a block is serialised with submit = TRUE # computations are automatically triggered on restore + # Only do it once. observeEvent(input$submit, { tmp <- blk() - attr(tmp, "submit") <- attr(tmp, "submit") + 1 + attr(tmp, "submit") <- TRUE blk(tmp) - }) + }, once = TRUE) } - out_dat <- if (!is.null(attr(x, "submit"))) { + out_dat <- if (attr(x, "submit") > -1) { eventReactive(input$submit, { req(is_valid$block) if (is.null(in_dat())) { diff --git a/R/ui.R b/R/ui.R index 4e8faf94..b4389e9f 100644 --- a/R/ui.R +++ b/R/ui.R @@ -146,7 +146,7 @@ block_header.block <- function(x, ns, hidden_class, ...) { title <- get_block_title(x) submit_ui <- NULL - if (!is.null(attr(x, "submit"))) { + if (attr(x, "submit") > -1) { submit_ui <- div(class = "flex-grow-1", bslib::input_task_button( ns("submit"), diff --git a/man/new_block.Rd b/man/new_block.Rd index 0c19adc4..f61dac2d 100644 --- a/man/new_block.Rd +++ b/man/new_block.Rd @@ -5,7 +5,14 @@ \alias{is_block} \title{Blocks} \usage{ -new_block(fields, expr, name = rand_names(), ..., class = character()) +new_block( + fields, + expr, + name = rand_names(), + submit = FALSE, + ..., + class = character() +) is_block(x) } @@ -18,6 +25,12 @@ of the fields)} \item{name}{Block name} +\item{submit}{Whether this block requires to press a submit button to get +the results. Boolean, default to FALSE, which means no submit button. +If NA, then no computation is triggered and the user needs to click on the button +to see the block result. If TRUE, computation is automatically triggered and the button +is shown (which is useful when restoring a stack).} + \item{...}{Further (metadata) attributes} \item{class}{Block subclass} diff --git a/man/new_filter_block.Rd b/man/new_filter_block.Rd index 34c5f5e1..59be9b50 100644 --- a/man/new_filter_block.Rd +++ b/man/new_filter_block.Rd @@ -8,7 +8,7 @@ new_filter_block( columns = character(), values = character(), filter_fun = "==", - submit = 0, + submit = NA, ... ) } @@ -20,9 +20,10 @@ new_filter_block( \item{filter_fun}{Filter function for the expression} \item{submit}{Whether this block requires to press a submit button to get -the results. Numeric, default to 0. If 0, then no computation is triggered -and the user needs to click on the button to see the block result. If > 0, -computation is automatically triggered.} +the results. Boolean, default to FALSE, which means no submit button. +If NA, then no computation is triggered and the user needs to click on the button +to see the block result. If TRUE, computation is automatically triggered and the button +is shown (which is useful when restoring a stack).} \item{...}{Further (metadata) attributes} } diff --git a/man/new_join_block.Rd b/man/new_join_block.Rd index d4b9aced..898c91ff 100644 --- a/man/new_join_block.Rd +++ b/man/new_join_block.Rd @@ -4,7 +4,13 @@ \alias{new_join_block} \title{Join block} \usage{ -new_join_block(y = NULL, type = character(), by = character(), submit = 0, ...) +new_join_block( + y = NULL, + type = character(), + by = character(), + submit = NA, + ... +) } \arguments{ \item{y}{Second dataset for join.} @@ -14,9 +20,10 @@ new_join_block(y = NULL, type = character(), by = character(), submit = 0, ...) \item{by}{Join columns.} \item{submit}{Whether this block requires to press a submit button to get -the results. Numeric, default to 0. If 0, then no computation is triggered -and the user needs to click on the button to see the block result. If > 0, -computation is automatically triggered.} +the results. Boolean, default to FALSE, which means no submit button. +If NA, then no computation is triggered and the user needs to click on the button +to see the block result. If TRUE, computation is automatically triggered and the button +is shown (which is useful when restoring a stack).} \item{...}{Further (metadata) attributes} } diff --git a/man/new_summarize_block.Rd b/man/new_summarize_block.Rd index f43b5533..4f35d115 100644 --- a/man/new_summarize_block.Rd +++ b/man/new_summarize_block.Rd @@ -7,7 +7,7 @@ new_summarize_block( func = character(), default_columns = character(), - submit = 0, + submit = NA, ... ) } @@ -20,9 +20,10 @@ Therefore when not of length 0, columns should have the same length as func.} \item{submit}{Whether this block requires to press a submit button to get -the results. Numeric, default to 0. If 0, then no computation is triggered -and the user needs to click on the button to see the block result. If > 0, -computation is automatically triggered.} +the results. Boolean, default to FALSE, which means no submit button. +If NA, then no computation is triggered and the user needs to click on the button +to see the block result. If TRUE, computation is automatically triggered and the button +is shown (which is useful when restoring a stack).} \item{...}{Further (metadata) attributes} } From a3f8b15334ddb23e68aa8de7567d826cea5c2db3 Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Thu, 19 Sep 2024 12:01:01 +0200 Subject: [PATCH 10/11] update unit tests --- tests/testthat/test-block.R | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/testthat/test-block.R b/tests/testthat/test-block.R index f70574d0..1ad9ffa0 100644 --- a/tests/testthat/test-block.R +++ b/tests/testthat/test-block.R @@ -372,6 +372,24 @@ test_that("blocks can be constructed with default args", { } }) +test_that("submit works", { + blk <- new_dataset_block() + expect_identical(attr(blk, "submit"), -1) + + blk <- new_filter_block() + expect_identical(attr(blk, "submit"), 0) + blk <- new_filter_block(submit = FALSE) + expect_identical(attr(blk, "submit"), -1) + blk <- new_filter_block(submit = TRUE) + expect_identical(attr(blk, "submit"), 1) + + blk <- new_join_block() + expect_identical(attr(blk, "submit"), 0) + + blk <- new_summarize_block() + expect_identical(attr(blk, "submit"), 0) +}) + test_that("blocks can be updated", { block_test_server <- function(id, x, dat = NULL, ...) { From ca373558837ed1ab2e4b833ca10f5f58c6ab0e2c Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Thu, 19 Sep 2024 18:13:49 +0200 Subject: [PATCH 11/11] add e2e test from vscode ... --- .vscode/settings.json | 3 + inst/examples/restore-workspace/app.R | 6 +- .../_snaps/block/block-app-001_.new.png | Bin 15773 -> 16159 bytes .../_snaps/block/block-app-003_.new.png | Bin 69643 -> 69634 bytes .../_snaps/block/block-app-004_.new.png | Bin 69507 -> 69507 bytes .../block/block-autosubmit-app-001.json | 181 ++++++++++++++++++ .../_snaps/block/block-submit-app-001.json | 12 ++ .../_snaps/block/block-submit-app-002.json | 181 ++++++++++++++++++ .../restore-workspace-app-001_.new.png | Bin 39696 -> 54312 bytes tests/testthat/test-block.R | 90 +++++++-- 10 files changed, 453 insertions(+), 20 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 tests/testthat/_snaps/block/block-autosubmit-app-001.json create mode 100644 tests/testthat/_snaps/block/block-submit-app-001.json create mode 100644 tests/testthat/_snaps/block/block-submit-app-002.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..082b1943 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "makefile.configureOnOpen": false +} \ No newline at end of file diff --git a/inst/examples/restore-workspace/app.R b/inst/examples/restore-workspace/app.R index 66f19f51..ee30aa42 100644 --- a/inst/examples/restore-workspace/app.R +++ b/inst/examples/restore-workspace/app.R @@ -2,12 +2,14 @@ library(blockr) set_workspace( stack_1 = new_stack( + # Won't autoclick on submit block_11 = new_dataset_block("anscombe"), - block_12 = new_select_block(c("x1", "y1")) + block_12 = new_filter_block("x1", 10, ">") ), + # Submit autoclick stack_2 = new_stack( block_21 = new_dataset_block("anscombe"), - block_22 = new_select_block(c("x2", "y2")) + block_22 = new_filter_block("x1", 10, ">", submit = TRUE) ) ) diff --git a/tests/testthat/_snaps/block/block-app-001_.new.png b/tests/testthat/_snaps/block/block-app-001_.new.png index 81d792b4282cf1d7b0dd4ba03686b9a9cf891322..cda1709aefa1de639e1e4213a2cdaaf816c0c7a3 100644 GIT binary patch literal 16159 zcmeHt2{@E(-}lvO3Yoi&$aY61q77*VA$8+s3Xz?JtW)-}O=aRKTTP)XqX@}PW3r3N zjhK+FF_tW2AIw+>^PN}s^L@|zeb2i*@AtmPcO38c<~UqV*K(f!^MC%A-~V@>4=x*A z;@>H}6M`Uqo!>4PLeSO%2->z4u^HUa!iHeLpG{tdmo%ZgmV@IEBmwDM&@lE-nxZ== z-S7z>RZ!co&R_*f_FQ31=Y5TMB=i{Wjyb1FbuEyYRdtb^pu6lPc z*F#=(D3XK91;{}YNk&H+SZMSw&84N|&wDP~=g~dX3tfSn1-a6aPn$+sTOZFAx;Wez zeqgnq))-Kw)k+pgFN{(aXa_O^{@YG@yQ#&$^l;0)IP9l##f4AFqoEI0m{ZDfi6!>Oo<6HGr4J z?oDfNf}ri1L;_Ci_v=;tr@*?^Jo<$IUVOa!@2An2}28`R68`qbtP|vA!|_^OEjCg zdakQT-zo6r7h1H&vI2J%>$JYW5yQ2p2Mwp0+W3q_%bI%hzMEq!SIkj%sSM}h7c*&C zAQvQ7x45&`Ad~gJSbeYNwZiKk#n-4$l-<9vo3T~_vl=`z?>rq4gChNFoeN!fYy(j` zCV-BnK9TA%2nBQfQe1g&Hm`gp;ra6&k`*iZPDyK=BlnRT^P=3qfTlQWe$x6&fpBCM zE4j&LzHLYoA=qZ#>t+A^8>jXjy?CQey$(kI*4HvfrwI3*FRs}M*Q`~yy zAIF4Dl}+YVkB=tSfBF=yHu0KLISq8N@YpYbvC?13W#(6{R%;@dIBIzahZ5q7TK5Gr z(y|Q-d!+Q%UiwrMjhwFOv%W|zyx=s1Wi=n%YYDCh|{M}+f*-qe=s*^Q`XL9 zhB~DzVN$9VN@&rj83z|61Pv6r=Sw6#6Jq8Ht&LMde0z5&s1NBo_4#zsEAeHkZ)8)7 zx~wG$PNKIzTs5^0>4=SImNH0^1k=j-uUyvMB^xf?)x(NaXPUBjq;j$k$4HhWZPda6Q(3(Rh|IUdjlWNW!n(V4lhk7|EiIF9D|$5~j`R zIrJ^GR9k{Iy`;W4hpg>Vs9K&Bv{`HLQkz3nvywzj^Ky)jNfH`wI%FpMehXL`X^PLc zCat7Y`tZB%PNP^x^!@m5~?h{550_3`6Q zRXEN%2u_feJ!-pMoC7wb{XjLoO(*3nL!7%_oWd`ew3yJ<=gEpXbm&lZz+g{L&yx@? zzAu309ur{X>S4A=v)h%b+Rkn@bzXEiK`3Cgpg5Ys!0T4JtrH_X$N>v)mZ}(5_|>@6 zf$DuB9MPD7LQL`!rcyX)NW_{utyjH*NjbOlm|NDAS583AR5GjT-=zgF;#?4eb=)QK zywb&Q?yDj|LcYxDeT4p%mJw_K%R;_#s)+2`<OPFt9LAXO}+@(J(P-8V)v=Eb>xtv}`^%oa%XRgK4944vV zg*0MdupLz%p33TQQ3!6(vz{mRPl_7; zN|?P{jpuqrtCcM+yp$wVF7!lxvdRF=5|p8|Q#xRvk^Igjn`B>2 zaaUrPC!?9(Wi&f9_%y^U>uDVE)hS}fn^?If-E>2ulnxQyN*h0opiTQ0t0&+^--qWU*#|tD-dJCE!VvZA0YI(FS;acB7 zkfeP=!G!MX5evM7-16u%LuKn*?MO#};A(lG+ZrWPQPE~rh)K`F9zwE*vg{Je{S5fP z&C9H`cYM)HqDD>NcWmGl;QiXE%=43{5n$njyzjy5X!ws`M^btG4b5R=I2Q2m{Ue9x z)g9+WL`9Pm6DNJkwFNX&8b>@c+Z$LFV;W;daSoMT$*DXqF*?Mjy6L{av`AAh%d}McNDAmx7$u%{O6x9!$7ZDLD-pa@_$v%D!`R&Hue|tWm!QBrGv(B74 zWysze`o7=gi?j~W!7O1F>2!HPEOZy@?`=I5Br;5&Qy<0DEsB`#q zL+AH1t_7hds9wyxQ7ZU;MIhwG!u}NLv+w57OF{>4>JYEp+mcI}l6!x5^yFDQj-=2X z%Fm~JaH3D?7ztDrSxUm$D7NC2S`A(0ibG=%(yuS=1D!J=A zyW6}c$AdNrbn~A?{(0vVYsN3!P)16}iCHO<@2?HNJeLk|k(^7Ek-@lF;8b@QzevjJ z*UMP|Xz}gSKtMIu>jE|Yc?NdbrHx|k15c@7!@uhl}CNWBn zw7rkba8Ah3A?^hafrB|G1n}*8>seYc7H3;2HdAqWsu&|AdOYAMH^b8U-R~BW8q2@o zNZ8;R`B>e`JqrQr0FNOg(IYaLo`AzK$8~n&v+s6V-0N%P%R8g5mrj&8Xz83Viko@h zeM?%WEl_Ab7)H09{g}D^z=eqE>6_zWB1JX-UT9qNq$!Z>E4Ee8EAm`-5UBO z6R5>ashsWsw+jmk(NxvPyYdXPo;sMNwH}4N$)Tsa`E2YzVh%Zb^XDxSo^8K@8a_=Q=ckIgRD=OZ~6EA)Cpxk@yn;--?6{TJh z5*qO=HP79zx@}#L_{uPA85?pdwrS*yJ`1e?48T}kU{Ut)j|_B%?EdwIZu=R1Bdp{0 z1WFo<@(8=Koimc#;nFd=keVsPM>cQncX@I3SnS2LRu4*q7(wkv{^^OE<7rR<)V46$B);++DWgGrO{1!Amv+n+h!!ca z^-ewU^Jlr>_q@7({i4Jh;dl-us(-`xwedr-olprsKtVP34SAI%Z++bnlEb+1MOv{4 zRxaRIsM`@36gsXYuRIKmUk;ZV&#|_eJr5O3gQ)K>m%P4|f};k`n;*9+y3y3XZsoT` zk02qSk^>y%=9-~rs_Sg_acqOu%`?K<)Xfl$2qeKBjSVRrJPPsg{yp~kr#S3CtNq53 z4GjN^3q{su)vzoin6*4qo^7&El^-bsvdZNH;LChrVTB3jV+?BAcUO*+UwWgbm_%MXKoweNXGV~=-KkfGG|sB31`pmBwD#$^iX#cC@DNH(GchmD7<&NuAKZc@h;zE@qg5BX&2tyi6@s(I%%D3q*}xVI z^VQe1Nb&f!p?f@=2j-rF{4}SS*lcso3DiCyn&J_5K|vLUS$ofP-O*`(YkX{<>NbpS zmT?g&=oY{|f2IXp0FZZMUd0SKVclr@bBbGbN+$V!a|RGZFGB3r2`QaZ zKR_2-LBAcu>eS2^cpc(0| zW>)6y+-mei9eas^l~mWT1{niz9LQQwVm(Atsplqhw05b08uP<1mn^+owIvAwm1-&~ zX6(q&mjJF(JU-Py<|S@DY_>O`n&7~YYm(UPNTD4E?K4VBad3vLH_akYs@DhGBgPfW zjE^~(b>2Ml5O}_WnUa!Hi8BmlUgGWT?Ez(>jX5dgLIyd>;u*($O5?1WS``qdw6ru_ zEZ}CBmEUnVXWSVq><+zklXPO|6H)w-`t@S_srsL8$09@PA3^ zrn6I9f%(%yCBUD*JpE6)8sj9HQ-2(aNg|Op(ofqgm31YDtd8@l0Q!wD-J4!kNU5%@ zaBS`^tZ%89w32LkNczi14~@`Si~iNl)=T2S4bt)G`OoILC653Ettl{{cfu=qHb_en zCR7;SemxG0KKZf%zwR&J#$Rim>)U&~J{J&Pl1u=^f4x#Q_bD7Rf?Ek!m-83i{$7)* zwH%LMiRTT90g3NHDMM93s-Z43h0~i_ZwJYZ3D+WP8EQ+VsF`;|PmK(E>|<2-FXwH7 zY~MAnP51ly(aG#IadNb33GVv??U*{~+L%O8ix-Ji3|IjH?yLY~bkqPn_rb_O#i8TP zRbKQKc#0L~xz!7~+L-qeW@Gvn0U5C_h@TTQwZ@HT3t9mq5KtL@Bv?77Eoga5gF>?! z&;d*Et7*+`P$4cl#9J+z;ulPrcrHf(tQ5d%Ae@H{DLHHLc>qz5RBphzg_cIfABC>Y?E%I~*qhH3!pFX$$d)~CWT(mIoV zA(;ctz%+kVI&lAE-b!2iVW$+;#VG9O>B9OrN)>tRHf*=|klW7>#caG@{iNJtfMEb2 zRt(?|+6`uAf5h8=?3(pn?L=^#1Ms0SneCy~9WV5VHvs8Cn}&fS0I&M(XljJmuprSF zRXLgvbUih2_PsXs6jUVF#OmEMKA?-wgR9IeW8LXFURP6@=O)TdI~U?*WO2D$me>y__<6w=D)M^chHjyBxY83WWl)n7nDd*2t1 zyrUKs>9)~m+StzxQB&(%Y3`Q`5Qbg|-9t*4jCgVi>K=-1hK>^TVXEaYuZ<#dTkzrRr_d_!vOC6h@88(6ok#f5M6^u)O+AA&jt&wVSy1sd@&!Z!V22Q ze>X7L7~oO=jX3<(2=h-uF-V2Vbno`8Owu_;#f7;T{2D*jUkfofk)02_q^RcEb#}YW zVp04))gjy8e%Rxf%$N-zy5r@W|710YQow%Tn?xzet(aG#*_5rWWOEn_0&YpltSSfx z+SO7zzW0K_cmUPWAtET5Y8Pvq z^`A1hbK(&s!0)9x{#T?fU~)pIp(w{Bd!On@+gXaRw+=BfI@-6K{%0^tcTQlyW(uko zKv`Wl_pU8P7KTK}V%yFv00s+Yy^_Gg{Zm!jQ3#7%lS*p^!1tX{Qu-@7SKI>vENp~t zI$Vl-p0Yz_0k8V^wYOQ8@jU3RFS^C%uOZV+E+<}S^L~(xXmS4n!1-#6Z#r6|AOkRR zEU)}njx`B&d+do@-ILPox!8kCPu;!=5{n1@=v#ww6C_XD*&XNpqr^8T zMgH%p^Fbw(s_~3gFY0l+r(SC)@H%v~XX_Te*v4&wk=3J$FKPTE^Ivg{W`J)%odki} z!c6Pk@hFm?^_Z^~;w4=SE=0rtMKw@}sCAd=w+p`nLx}>!j#_u;QBmgDOjRJ_WpS7F z0;Mt+&i;^CL@K8aM$S_*;-k~?6crej5gB4HQmsULWeUJG%)uM)k&eh z5RwfT&DapHAGjO_%_oI4{5Mt@PG%-QB8ip*wCne3$L0i4zuwzFf>=vT2s@1$GCP?yKoF&PeQf~#cXD+6R9~;YR7$0TT`-%C`FQv@9O+B<=>qJa4B>J<9I0XY>x{k# zU>uCTRR5s7rgc#7h*HiHO}j~qz}@TRDx=TfXabU+&UNwH_dbkdzYtbpe^9flwGqtjTfbmA ziPx@x+|*~=oB}oq%2y|{ZI){VO^(F^QusGI;LiZzVvl@S1UBAX^D7r4PqzThjz%1tK*v>xP;QZmB(R2H!Z7ji<-dZ0@eWu>hk-?Rar?AwX4!2x>641QO8yiYOH7 zfUErYkLi@7!RHQ3SNQ#1oWRWXYV~h062BaKwltp{kvebKiH83bm#?; zA19iC>iLy>FN5yVE~d?a61KoEz|nCuH9{V2W9x}N6D$GTb_9Kk0Q%O)eWnM2F$!Ay z4}Se>+&XmLdmgRMNb<6ty(jqAJXcSl^6l7d3HdINY|WgKeOS%POCf8^_39hF3^l+0 z;3b&E1(a_XL4xpcrl?7thOJ(ge>ZS1zIttBG5OAY3V;Z(wR?NBA8G9>-B_IjUi#g0 zc`zI#Chl#fH-)A;@j4Bdf_(XuC-8~As=|CbVChDi6PZ<<8NeCOtg)zgV5#8C)YB(V z&VA7mAk(HruoZ>Y`GB$fAgkYAC!ih#X1+yyxn{0j+=hMjgj7%#pPa8*oG5Piv2%i0 z(Cm94MZE#wP1qNZ@rGIKM$@YKd%W`9fqJ6 zOUn6zN_Z^R)cQGNC703{P_u~#Y!6(>Y#$GrFiJT$NZ51u$dQc5QycpAfYy-h2&Fs;H=22%5 znie`t`vWF(<1IaP0CcJG1#%BusbD2D(V%?Zb#~y67qAO*e(-eMaf^pA(O3Duwu`wk z<@p;v>L5s8&H-8x)&x=a-`Jf2kOHJj<6=6$PWNT3vN`>^Nv65{h@^P_(>RmHj?au& z&XRx=9*eC zoeP8C0yES-n}gN+PH>8&qIjIlb#~9A!Eu9cU-=}_XW9d70}S{#BSkb2HIH0bF! z6XluI)kS);hZs0rVR$ZpnqE!e&eIPc)242NBBH@q-Il>i#_3PLmg5kEJ%I*E>*ay@ zLH;os&_FfNJYS55SYEl`Y6K;RDT=+NOt~XThhGr*m$y;sxBcDEL z=rLikqwRa{qGHTc5KxQ;++{{$GACp79IlVI*6PSbL!Jb{UV;kw1e*9L(o|P~`zXB5 zPej3A0=m`@eF;O&y|t_X`Tq`z zjhb1Z<~BzZhWLo_GLd1r;l|pK&BlywXCXbzmD?x0<0GHObrmIl+Itw%0=9YrZSu7- ze5Pa=Xi^g)A~Nk`F{<>{0^_J^r%Y8SbDvM^>Z8=RHDYJ3p%y5ns$TKZ9iJB!A-)|7 z&Jf>YG}^v{*cVV?a)e7Q&v3M$AMpyLd%T;-%kpXW>gqkc&QwZ+}Anm@GE^5`tq+j0>%l^ve{sf*$Cu?s8zE81(Q`plG(`$d-0<#m^wg)!4 zIzMrId$BLQ>==`~(G|=M8PakU%b~I+=x7^M$J&JZ6VqNYuF3KUp`a+Pl2sabur$1` zcgqPkuu@uM!Syo>?5pOpzM zh#phmM2$qdAZliBckh70F2^0l2TmFF`HWljTcJcX-vt`6?yZI`EOhcNS%s_)X1AXq zAaxt?G|^jHm5Q_p>$&1)=K3OC-CDhTVNGzRd^&|s`qqr8oxx~i{{G6?fvh9hpJ>R9l5B>wNG&fXDWrP2V0nYEt18T;K2Lb3fBo@ zid%00FIi6Y7NhWqK;P}^eH}##Pd3>K!OPM404UqPqdW9;Zn?5zSC@q(fxmbfEXE31 zJls5Pqgqi!Q|#CXdt5_Ic-a1j=8MGsYa8G|oQ(fRy)0IJQds+nO?hU6+j`svR zkKi!$mt(k1ws*m9(yyM&9z)?w#}07_{rUF4P~LYqA=SPomVw&;sA2!zP7E@`xy^;b zsn7x`xFpM@JUK&0+;qy7-;RQ!-DG=d!?(#j7Y})t2U`~AOMFIw^EYmafK$Bu4lMxM zntkIx4!tS0w|jV_l98J7yg;;)L@6Cj zgihAe*v3P8p8~Qci{t=g5AHQrhYuij?wR&QH5GXPg2tE9`9cne)?GqOVZQ3JP>IiQ z2Bl7X6FAsqe9XQ1?U7epiQaP;6t)GfzEcEx9938;wceBA{0&8~*9QlJDi42VRruvw zbn)+mQ~mVxVD7~yuj22iuG5XxHJ1NSjKz_bzF&q|GT)mYZ!(!#;n+ufR^aGSD- zOMMRgegdFO?H40|oJW5y{xZ6c05)AaJYsIdc-qOp^MC#J+cZw>{&j1PXmoV+XC>kP zd6X9%TK4w7p%$NHij0oAnwc@Vhy*jaHaw61UB9co{tc^iw&Gp^*cZw*QF7~Dd*uY6 znl0*E!EGU@5mcoo(`(;wu zgOu!U5ZU!6EzPWSiq`>X;bH7w4{{l`FSw9TafO3wHH0*8wlwQgfq-7qzO+VI8`uAK zl6nG7*}MMHM^qnR9SH*#Jscd5x+4id#lMTc`tQTh{+#Jg4gA!=zo~&`E-ilxh#?T9 zvC$c7xqlO6qzQuN326ej^|Sd?4?m6Ir!)MF1V1C<&vfuJE&jv=Ke5qIVE7Xi|Gz-R Z`}*t=#?rEXyn|~K9c_aPd78HO{s)h_DGUGr literal 15773 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 delta 30066 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 diff --git a/tests/testthat/_snaps/block/block-app-004_.new.png b/tests/testthat/_snaps/block/block-app-004_.new.png index c05f8affc413f0bb6e2520af8cb5c05f8813eab2..7cf3783721448815cd91ca1212a1d9f4aafb56fd 100644 GIT binary patch delta 20385 zcmc$`XINA1wl*3Y#0K$2Md`evAX1brT~H8|q9DB~0@9^-CQ7gi3L+v+M4EKzgb+j# zl@fXhB?2Nf^j^=Hylb7k_C9~kclM8y>oSJS_LT9AagTf4Pl6M62Pf>#eV?=2y7I0S?S*2~PZ@f?g)UwGNd8FmEWHf) zpq{KNEvEQvSM6oNp(EUvEu0|sVNh`YlL1_u6!rAnvbEB*gED)fRGyMKKgquRi~Js;|rnyDi*FVqgBm;N$~ z<=%~ch<05+kl5=~Yy|CSbI5z+DtPqi4Q%#52W@oH+W6!2vR0^aye86V&tMP?1Ym}_ zWx5>-yB$28o#XT}64&?;^iEPSy-t$G0_l>Xk?J8T$I$7a~_id61j=v9?pE|bMR^#05>$X}<)o0%zPw8@XKu$4Y&yp?zC*?Bzz zA2Zu!mhGk%dw(UTn%sTYCUoE%+tccSN*1=gcxX-6Eo47G`@0soyO=%bEe{`w(`40^ zu5`!)Yhe(Wyv$W6cH7U#7A%25U_W{WpOUY$u&}UW3U~KCE10W&$v^d{XqETTV?lop zXDsRQ-Cz(Hxy)5SnQ%Xf-ZbczQfiBlV`$Hw#+QnBio0(x%EzBZPp>?#tDd~Sck<&u zQ^L0+g1b>VyyhUHc>phbAmCgenPWI>>*hpg7`5E0_OtTC9@Fi)D|t@w$>=M$x{_ri z&MIj)fA&nCL1t>WCi{8U`Cp%dPoM5kt_^9=(iu+I6AZq8pToLPhw6Ri^y$&`R3pJn z|E4dQ^yuSdqnLKx44m;>oal~Q*Qp2m24$ZnVhX_wjCrw^{K zF3T?HW;}ZIh>7tYCY_Ej0CNhK#GLyaTE8D6 z`Ys(&@}K_fx1U*vQYzX&rsg1|z$BGW?R4GZVyoirsKAAVBFFAxN2*z}dSr^m+h@n* z1*D`5)Pq}W{CV)pv|>lcZjTpzS3>q3K{$LP&;bgHDNU^%k&}74kDGyAT0riNg0qtu z%VDM8$)6QArA{SRe1G(4pLFlzuNS#5-nr8?J-rX?-@N4@sc z@%_-nI6Z@4}=X0^f9Ye#-|l#bXZ$=zQp=LtEC9wCs6YLsRppl5U#zg+%Q) zS5v|iq9d2CQ{{=>MYfiC1|Pns>e+)wYN$O^YjO72r@5RD`cq~HStW2v?oX+6)dSVg zR9AJ^71yCz@>~sP%?J9yZ^U(PqHj}ESdJk&>YdzYIL z4}CF@l|(L>^aycZe7H!H_8L2U~FJc{dn!n z*!QL+2GX`SlgyZu|m2zLT_7xw%2lB9_Ma*ZR_kFgvAK#(jCZEu+Ifz~6V#UwSH@ z$u3eIo2a|aetOt{u}f9dCUCR*)~Ic7nMdCysd!dMhD~BVgt)fIets75VwhinK}83r zGU@b$=bD_2wBL-~#gImV95Lp@hYz+}ad`{H)J(l`IUA?$l=}A}b5n~S>#Yf|V>6c) z7w6_8CIy_&-tI^{auV-7)$3(c6L}H2vh7PP~jJSP@F8pZ)EyCl#y?S~jqxaXodVYpQ z3H=mgFZG%d>)pK<{X@}3CF0(z5XAKsmkH6@F{9maX-a`hPCWYR2EDwDZ(VJJ{UHdY zHibq655)JIs_2~7`t9~qc4?111A)nm{c!BpSH;d!9aUnV-^B9XuCA`;JW+5R-(P-- z>-Zahpl0&*OPAVK=kvQ%lCHhIm1l5N$V9hL-Kx-tHaUjDc=JJkwL=P5Bf@OVO77mI zAgP?v{@&nWb2f(C-iq5vNA`jY6jDjaOnIMGMwOM=LTp-85R+|Y7ql&In#VkQws}=B$ekqrpy=&W9?}0 zPuZ4YXA8u_;`QgVffELi>O&KM01-aeu@V3HX}8D9&m+OyYc-tujBJhOS%2QqVWzz` z8S&=GoFlk%3yWV!Dmm96v%!f0gRvQDO;5tz>ZN#e7dta6xzi}sy+?Lnw0Fm{VzuJb zeFy7{ACRObGK8bpWZmy9#-7)7gsXUGmX@ZF?$o89ochkoE5oY`NoOvplo4R;o&*6X zaB`Y_6J-|q?9nj=CkN=uV9oQml^I@oMs`=Tr_etwYDGYJczEFIsEzHj;~0!OhL^62 zY)wA@@{QD5z9G04rAJLkDk_&Q5$9)1Vq@8c#rI)?B4o{S%x+)AJ(!^P z{a;!6G~g*!%Pw05AN01$Z^q5N-G!-4&(zB}SJRoK>V+VPSI15OzIRvOiC{3V4zNl( zmH94EV7>REaOl#v$2Qm<7{24L1=obmpBx(0vM#jkm6l$0@rv4oQGCgb+ljf$NOI_L zKeN&P{m>T(eBlK99hi4ae23t=l7~5@)#l!l0BaAMC`aJRJ^9rG zt$LW>sn;^jTzU}Y`<2=of;qWQRjhJB>irI(UtdM>HVvjGv$T%_%0)QOz~%lLD+R*` z6DO(J(r%OQ=j3~XdhT8ve8^e6e)r-olS*i**OXjq;TN4qj;vqhr!YO&LUJ2>{TMIJ zj_!Jbh5MRHy+665;Sb#SwB+^ko;#hcjW+FrkG-aQv|ZsIJs~GpemNZA-xYDF>>@I> z<6fh6eklPU?h}lv7_2NE|6Pgo*2Y9%kEuT5cxyTn6O*Xb&sX#F?q1A$FqOMRj~#IP zQ)k=u@kX4q2c^(n(r?iroE!7*jW&T0M4;r`kXzGr9s=5N8TdLkOhy*FYzAw>wg#RG zgY|09J4ke|ugvX_zPUWzuWp6RY^>5L_8%2CTd$X-KI2rVxSp)OwltL>=U1ec!7kzO zhA_VK2?um*@Gw>J7%MBmcVUeG#z!nSi-ZFNn!-K%kG{EjDo%5FvN`B)a3M0D6H>0f zzr%x>z0+@1KXDsw80y^XUBIpUV1A-YR7^}4dyN#hQBqQZ$M4?Bji~d4-U+I4*|Kr{ z^5CE;!Bfud&$D^=rO96CoV4$J8cs<)IQ-*{40WPYkN)Xj7n^T>g1auoV&8dx>T=jv zTQdK2TdnWa#KZ)LoNuOK{ZPR*J_2d4!l8S%94Vqu+>y04F! zG*0ONrYdn6yk&`4!U*eF6a}m;hJ=Jf3Yk*SOZ0zP{K#XP7En(Xk(T!T5q{D--|+1x zkMVY$R84V*&a+z%dKu!}+}zUA=;_&&@B}V+0)OP#7eXj?qrEaP7?n6H#HQtJy*3UNC^Z{Sz zy*fY2Z07x0Lwu)D72N-D^#DuNyW==6SgTwZwTl;Y-@Vh4U%5Tfn5gt90og3Aym4PO zl+9;zWf*M znlbu=m3zIjZQ^~be}8`&1;dtmGdL_vt0hHa&I}@D7xY#EvXXVCd*RPduxPKBl4{d% z1G7W5FoNvjcDgm8>^09>qoR<#OSEoDi^`y;B-Jo>nf6|BSnAGNvNIPiU;e(jFs`3v z)Rtqe@Lc7D22Au1xGm{!f7PG*7y>~BgW2rg6vZEXYBl@&2jD`~T0dKi^byyfLu;Su zIeB<^WVhDmU|7@jbIg>K?u)r~eX?5lxEG`Ckgogj-Y)tE!eY+PHYGH?Id|gJsZ&#|bpW6*=iP03f5|6502ZX6QNdmFXbk2N z0^_XuoJHKOHLW~#VZ1}ZbK(u|Jq%I=ua>91EySs_qeV<$D0MNPJZVP7db=@|rbnLI zqwezDYXQUSW$vS|1&zxHI1Fa8e&ZiEYF+onWwNIf3?7+pQr+W}xErH5bCGK|=G~p; zMqgcVC zS3Et72pQ7{wyBx9jFzO+k?JUU5ivNaB>YQ?XhwDx)Z(RG+?l94H#5^8G1BA?Sx%}Y zudf(1p}2d+?vMQFf^XCwrLt!cOiEv1Bg}Y=PF+~1a?5+t+#gbI&zmS;i48WSeg@_GBQm` zYE+kerl|<%t0CIgWKvkKX-JJW-(d%#Fmy~MSmC5R`YUu#tE-MHg?*zk#y8j%er&Vz ze6JdDT~203zI4|3vL*%XR`}0kgg^A&Sy559jnxIx)+V9X$;(R+#fI9qj?^ehc}@06 zI8sIyR@*Z43E+U>#h2GQDfEj0knp|JN1vV)71hDsEbczCFC=Dc_N;pH^+fI5QrWiy z2v8(!H5>xRU#TbmS2uWR^3V)RUU{6pQ`*2Wtg;fKRIxTm`2G7gJm<2`=IVIPg%Z zqZK=^uQA%343LBkCO8{Q(E7xHPft%*dh|J%zMHn_)#sCHM)XyBG}e~E%fo|Uxu2;d ziS3$HOTM1oHrB0GTot^$x@siw8qks#^Uj*lh1H1(2QU4553i?OjV>q<+k7;02O2~d z{JHl=r3-2{EmpU0m!Q+1(MF+p=66j@D#-?$<#=_SzITfmyRp6w=`ZjKIp!p@3V$CI z4Z-WAUfzDZQI?n|xL)u_^Gi#dBDWtAYPWIzUm2Zylt!;V7cwm?A?({8_Wmb>j=bn6 zjF4h}{}28h5qDpyBI>lsogB}ur?=h_o6N2fP1EI-=cpBDuGE8AGsWUL93WR!_bKCL5vzM$q+m=||-7m-EWu)gNHR zcp@e&Sm<}EMvR1Q^9R5XYB~^9KKaa9>$h+Bg@_+K_>q=W za{rfyTCr07Kii>CKp(7>is3?!i>3fF0ICNJ2wFjd(?Z#0OboZ%z!i3d@JusWB-t?E zx_JxA^9a{q`xBp&ubQV7z1kR^3ZohpN7OQC3zq_Zd3E42cB1UX-lL z<00yRF90kP_V{tMe86gx~yc3d=#a6YiS)PA8>9K8t6D9pDRer0B-OlzM+3ZJ-6uOUI zM-u>eoqU}^#`Q(C*=bz4BICcDtCV=`zuRtAW@cuRDiX$UT!iPu3Cq569{>hNm3U5_ zV&IT9z&62BIA{5-grGuxr_G1QRa8`<>pQ~peOOo+>idC`FD@=7WK@3PH!Uk5T&YyP z#&;O9naS*(p%Dy^?%lihuk%rV#T|cvVv>DrVrQaCQo1Rjh=jhjAX`U1JdQl04_GQ8 zxyIJk)=99@GOZ2R2P=_i)H@B2kK5-NxVpNcf24Md=jZ1Gy5~@b#11YlG0#S0!?|Mz z(1*5+x*KIlh>EtLVaF(|-KiM-HyU>4eTlUd+CrZ9v~xOQ>i<03emyyIMxCk6&arTw zmf3XYH}h%$pj`Fj@SK~nZ#VvL&j_x1ttn|nZQi|k5{*2YAAPv8d$g;CaQnE;d`FX^ z5v!}K49Ct^_75yL5^E($Q<5cSydnI=qMd5yK~w zZ2U=)peMTz?djs-lHs`{;#GC)JH`G+M=A2EMdarGNcV*7P2$wxppJ*#dFs5+M}mB; zPHM!pHSP$DwZHxk{?Q@2^0Xa&kZeTM4mHQWKlj_U)InmrrmgW)SLXB15r@x-+zDj; zjJAT*cY%EhVr3>mHYX&?93*0R9zQP${nT}@+quKy!kc>QxfQyY^MZw3^MiJG3Kaq+ zZYj@+u(8;YuC>J9U-db;ea(;C4qqRJQS*E9fE#Om!}+qavzM0_MMvy`(dA_q z@dBkpAg2F0%i*(%q(f)!hlzgs1MhkLY%zVP#x(U%uZK;l{sy z{kniYF|f;_$Us0sQZiKzyHE?v)b-P}(+1`UFdFLNJhank=Clr5ijFo32KUEpmFFyx zi(IWai|wsb%^t7n8F~T<7nt$jWCMP`RCO)w0i+BFToSTST-EZ-Ao=`otWjU48Bv;c zoK;yU3LY@zdY*P6&HT!hE6)FnTCg@LB_$<0JG&s&g7}Q>yz9bPTOaaOtl-a|KMf5H z=$uvG%G2g6C@x0Zc;@gvwQz7c=*VeozjozkLmLLaJzr}tt~jD(0O8;QJ-e=PXKSmN z&+KoUl8sF&bMssEa>p%#u`2WxMO z*oHM86WKZeolJNxwY&4aaxnVeqk~yRD-K^(hMfm~wSujYhhyHpMQ!yq3a`eYS+1qA zf}JDl?JO*B-@ZkSYv0&#War52ioZ})K3I%=f>tFypL$>^Nk774T$FKcgaZ)nhjj>3}AzomR8QavzE zqU=`Q8y>Y%6HUJt-(LKs3&ITxwEbq+d1_2@8_bm}Sb zs+fzjWmMYu)HRWN^Gh?Vi<4@zL&C^PtBw{hSn7U9x0`)bz+k%5GK}4`^Co(>Nc2_g zXVheBhv*zk4<5yrnmBPG(l4@WIQ#_E!U6U!a^Z4#)SOC(Ubko>GWBN;U7xSoFDyIX zsI1EFp-Ty_#NBpg1%LHHL@m60GA`cmlly@6pc#$7QH#>u?N%Bae1^+Z7zo(3Ye{zW zGCR^oCMUt*9335P8FvO71+=wWJbb34Yh-NP!m$I(>R51%azb$e{O6aV#006^hw0Mo z3VpjBi#Jv~NC;eLOWrx-`|BQk;7YA|woxHJ?E=?zQ&Uq$h4s6%*%M*1uJz&_0%qk> zv_y-`hwx`Fo4QmVk(tQ-0-+5VO^!;D+kbHkKARJL7XXaP*fhlU_4O6h+#Bf$Sn9Qj z^Jq8UoQ=X&5tsT1-ZKNijPlEG?X!Jms+n6j4k8a2E?|SNIXh216|N|;_Tp#NJOxFA&ypAV_2!%eE3j?T_ner(7i zN~p|aXLIvxjl!l2q^5uz0w{x(jojFqXCbjd`#IhJr6!D%1dI!G>N2gE8VI8!+3Vi& zK`r9jb2ned%Q}Td8=n~ibM4wbwrI-K7hnHE#{<{f+1j3tss*NDHD_xz2dE`knhV$U zxj*%+^8U+feM=P%5{L}&L~z@*Uhl!@kWRznH~i@jI2crT?xag6Bb#%@eZKa_#@&Zh z*+7Nd1Bq8vqaRQk5eb{R&uv4h9^%sC8WgkRiV#v>xD6v=Zb!CprsMgSo4i zTL9^am9KuR=S~9G`SLIPf4#dR*NBcqxSf^u zhQQyvI<3PIFy91J%+0aZbVvbgC`>yl=`0z!G3zaF#qGiLAF?`?++3p-C!BZtllYK> z($eBK{h2-i&Mjo3ng=YjK{~JDcNNolb~jw413e01He3FIXa&xGh|nAx8(W=zsKBO_ z7QlEj`FbfpI7X>oK?OFugARU!W>1qQVAzde&77-Y1C}PXA_T}aD%jT&SU^&kymZ?r z#zOhiLmXx^ibpLT*<5juAh-_w1aNms&2@dIM%cV!{Q;}fF&R$>O3RMQ2e;9-3rE=k zQuxN|ygrw(wLX#*maUf|+2@VI*qriNb#ZKE;|c7JUkR^;OjiqY0%&X0txbCQ>3cJS zHCxc!^1)CUA=3Kn`qpxDRK=^sXPDg2x5IgSdS&GDZ;yVh|3;+TfU$1AVP4p!996M% z2TxSv&K-Y6++8??NC%%)lbGj%!>!4aiW$7v{I08|*VElX;2Q_+A@!3n^{q3NWs5ky zj5t%%1zDgrf(~ZoXPnW^@Q}^T=DO;upY7z;$_IX8ESx9Pq?aSSPnyG63-|g-wO#Tj zhm|MN9Q&c{LstMF?UJwaA0790Fuh>F|0iF~Pjwifnw#8I;D)RD!+F*>s*ljv<5nE5 z^S3eKSEM-r=!0jLmX_Ab$#!@53_I3G>1oydJ}kQ6|L71jM3PHQsr35j#F$a(M`Cev zL@keopkRnnVrc3|UhLe8f1bhB@DBt6AtNKeFqt>%j4tgAM3G~-uB$1<#U@#=V$_l9 z>*?tR0)OT_s!iF$ehj&S>je*--=&n;*rGF;<$lA@PZ|4I04^JmjJ|pb|Ki8czEc0Z ztimD!R5t?=&Ybml@B6U5*SC@JR7X?yG(?l$ir@> z@ZWfCf#ioxt_jxnukRz`9-F4}3bb$LWvSqljo9`n!6@u#WX9WXAnap3$|ddm<7RSjKM!N_(F_Hw?}kZWmDK7oLw_QdcIiEV+$7~xKZL#|yWr*!y_8oj+z zD9oKX)hgma2kT&Ta?-FcB}r0E<$%4TlO6x>xlj&>&LhrhfBlS9x6$wT*+%P?8|rry zOul|Dfy}6l)8miK&YrwMi_=JM9=UeHoeM@I=*MlPycfbpDG!PZ1&u3Qhu((vBWlg9 zho4jrum*hel~?X;Y03XcOagc6eL@^+5idfoo^mK}dX#eA_J*ITmX;PfSz8NN_WKv)CB5;LzbmClZ~A85!&nAi?7gRFgHA)^ zNMzHFv&iZ>tb)r#>f~xm!s_S`2o#U0J+8G`#SK%b!=MB?HVbvERuaTjT2Z&>l2=83 z#lx+Yd-Q+m*Q{u+5;5Hl>oH5ztzgS<&(Z}~s@wFA#7(|7OOcIiT5~m^!crtQocds#@BEl>%Vn0vwDX&)&jZkcdPbpeVSBT0YI|8{;3w3i!tW#Tc5#I zJqu<)dX_e(wkqit{RSTMDr^b!qDWh6q@^a{_^(MCewQ-=| zLXZ6>_{jsT@(vV23j07MQGwN&hkiq>2SQ? z1jLf^>Gzk&vO0t>fD8K?wIIG)Y#eOd@xtxT`ouc27D(OtQ@7Gprm&cUY;?zY^)4hw zY|e~U(29CJvt)EL+L*M~uVZgk;rB+FtVd)ZE;o$r?Xms8bx3SVQd>Q43u8sg27%j5$BTTq#Q~@a+8BLw67;m6dnQyF0b~!8#ss@PRbKOVt_jCB? z7Ug=5KRXT@k+uj;`IGpw9%GYX>qDOvs9xj}7t1I?V^5k#$AaA4dz*M$dq=r`bNQ{_ ze3GcsM5hNQ)U_>w?*u8Un3s(^*FI*lX^_30B_li6LCUsuMi{x-W?p_lt@Z&fRADop zdVYgSyzYO4k@P{(K*zHA4zLIc|o6UD5lVa;& zw-l|gRYV!RYZng>zmjk>D$dIgq-5Zf+Ew4$9MAIUb$h$q zWjf`nujNHXOjhTN;vLIIW0bK051+|z%(oajoXaBy)IU0O!faC(%y`XH;sH)2l&z~p zC)>0S2HLaRqvIiG;BvC~F{MtQVK0aCE(2f=>2aEWUMMp-IXN+Kmk$X>P>hT_3W}*- zTLB5Oi%f&ax91w+zdt|Zuyb@ACnZ3mDp{Mucq1Wt_xAQ~EUgCs-?rG66MIz2d;0Uk zl!<~lCxVt~xwi|pf4+sJ*S)91i{q`=)Lexi^;2820%@Wx-fn8Cym$&>-dN^^w3c1Y z*B#scsWzw6aVed%6QSidfm01b*3&970um7Cx*=EI1pn)fA9_6#qywgw9EvwW={ek| zAxUXgP=E#nNoH~`;VOoErz&nYXhq=Onk}Z2qWo5P_lic>DG1@~YNx1P_Vv7>=gYDR z7yO3f^<@m)drIB(um(gCYxoNvX)$4cGo^;L-zQq2yFNA#|(F|0lnLe~46 zRFPX6erwIi0SEs)) zc2t-RWOX~_ul!*$lb1y?*Z;`u#xi`y(o-8YC(jo*Bv8A%*UG#Cx7PZ+W=LD!>~w+b zwPyb35^53Rz@fyrxHw@U^NOalYlTVD9j4(tWVt01d;9S-fyTc;jkFX<2Ha%6Hl`oC z@%5ZANm*aN;}f$vo4D)kD_3e+jX(=jDg7~rvg*RvuV?Jomcz;JePz;wp!r9r|Ga&tBycbczSp^6BqOz)^AQb5hmX*O2ImEe#Vta zg|kIz04OnI9bx7&fS4*RPDR{n)OxNH)JA+guV&do`^v_KGuk@!*^Si+;E}1B$_nKzuTGxciS;2)2<#CJbFjJtmT%^B`i=;r-jgi1wN3(sh7scynp?a)q41VGRB;!n+B@XB z!mMu|F!GR*(Eq?EqNqm%pZlA%Io`ffENE7~T%r}=`m|mW8833Cbs#9v$F-0yEYtGI zeXavv&*YS3CMTc7--SmhV>9$~k4b8cM#>xBf>`*mTtabiA~&cCcmVLGSN6nDRo-UO4!SN36*g`$h}Jf<`w0hg}^B+QmJ`!4O8E5 zZ-egDF>1t5|JjI|_|>5n&9$HUjOUks`Ew(%TseHc9*S`+>gs=3FTYei2ZDvtIT=r1 z09B;b!WOT-6?Q}i;(Pm-u(j6I>~#fw_N^6UWj>MD-6y96}Ih_oaj03Rz`2FE>HqVSC@zTNP#O70=SP3*Fe(gu$3d91MEsjV{3i2MY3&ZkshHZKRgXY)NCYByevJ2xMxVUG>m)JR zmYw}{s5S~1=4(kRR{2}9mkW!Fmmrnz^d8ihUFjGt0}aB$;$kR^_}IZLC|+~@wQ$3D zYm$3n?ulSj?a;SSc7hNiCrBw24nQV@D-4uPKL86jIGPJQ#-msNyhkVwizB)f<_R0^ zRO&(}(|*67LxHCIr>|El^=C!!5^c!6EgZWsL7!p1rs0$u>GK?JUo-#wN!c{spZmI@ zA)89|pk|RsSD1EUrYWm4FPduN4N8V5Wil=tv#77v@SCidv(yr}>IZ2x9U<^QRlKX= zK_&jTF)?f(4`M3EU9TSpx>FHBna%`YQNwvkO(xr%>aDk;bJW5iChdr2SnYsrd-sPh zR}5$*tkl`a&qb3DEMEi@3<&-k%PeHFoaG!aK1rBj;08&NJpL>&JsH_$Fm=KRTvbG| z%b0`86ky62P$2@BGzsXuR){cx5>lSsjyCmg5s#6?hwbqnGBU>L6_!B{I~N5!27u6b z?}5jbHK7N&W8It8P@xA(u>qa}F+jj{FsCfAR;RAMd9kR#vKeJGODx~p2HtXmcY_P6 z;%MO4l%dThY^@}m(a&BVU?!D}ro@=t{k(@84*W0IZDPpW;AbleW953;q7pkpuosL+$PN#v3GXfYJ4bPP<_-G zk6Y~Zq9Ubk!=Y^FKY7~w`K?(+nHDXy8+T-zd3ITKI}vE7Q)B;9^6u{LTdds0SO zFea4UX?hPcB7~p*%A|$I1uo_%m_h>syaFMl+g*@?GGqmrQxoJjp8mE#dto-u+%#Rd z^bYoOydx!Z;(^$w0vD($J^Eohha`{B1rvycG%TPvlm!tVOZGC$x32G|ZZ3A^+bjvD z$Kg{51R4BYAlDdKB{GZF0bk@4nwz_|OC32FoN#zI#=_zQC%!P^=hbMDA($zuLw-Gw zIc9_Lz`zB7JpngZq1Qpn{ldVF2a*h8*3wov8cRRF!&X7qa$T7nLYBX9f-D34fWs$f zk3&I|N{%-EK^MyV#f^R!rM9Ggg6f01?mxq(%0$7fm(^0YyaO2FkqBf)V=w!Ttifww!hbHsW;EezNRb-4p_Wa<#o!32O|H0$mgo4dLE6gSE4XyHvp)!ZSEG zMpRKVfR4q)04RpIjxJAFc^_?CQUWI364rW#<%`=lmb#z;phJQxjGUa@3DwYvGvB~t zf}ELPl(o4rg@8rc+uPcv3xd-v3qbV}352y+w+1yo zA=J|fZE&GQfF&p1Q1 zLn|>&*PS30V(fuxTA5Q0t6Q#=hbjU9u?`5wLq}r*)=!8s3mKVYzglw^tTcj@Kz{RO zbdt&et$%#y=EkknYbPE|$y%)inu15iEV%64cAlPgsPlY23hED(X@BzV1%#*-f3$iC zb+DqMBB_dq@Pmv-dfSx77qGHMo=-uUso>cQ=6qWi)4CU3wzk*^UXdx2++wzNo=hx{Iq3nSZ6(<&HKi!k%4k_1| z&m!m3R^Ii_5={HteJJ@*4g#(^w<7+h+`{-kj(rqoy@IcCf6<2T;uSx>2lx9L{op2> zGRPX08&BWO5o;1%e#I)P;NgAlYUrCqKp~G{^ovmf<#j=_G=p-@T-UI@xIy=!jp3?< zmU!#~mJ3)+X3k9846kRbfqj*78RN{2eGYt<8J4_Dn%Sm8_^Nn0zZAJc2gDhU@4-j} zL6^^e98a5UluMN6rWqcS7U7=nxoB!cyBc}+93xW|5dXFd6g|=^D(+v zIsf1`B`~4?_hwjMUr(da?&l`L{e9uCV1VhmpP(|iO>CP8r9x%$4itBwIGHc>?_NYK zt?(fqKUcirz|b}4JR$jV$>y565O$R@e#c*>3fcYygP#q)}dvNpMQ=FpX5$At*CH^Dio$XR6Q-W({tc!6BAW*R*rF)Q`3))C75e> zkiJBsbmG+PA7V_Z^#00mLiy-y?OP#ZB*Jh`doyvcI}~bL|D5P)SCigS+cL*Z^7B~| zrI0WCu?2PHoh{CtDtVCV20Yq>4lcA^jwZd!W0Cqx_;^;m-dva~FnMow&XE;Gq2Ef_ z=ojbT)uiVd@M`k!!sJxT@V~n@Vb-_tHnO8fyZq+Uv7@S99C3?MN5$yCnt+}p`~-Gl z#ne{o!U>n}e33IdVi84?Kg`3NX9t3Isj@AvRZX?T@4;L)L>K2VDYA8foL%R&xM-j! zRUabreaut6JY77rL`+a?r!p4zQgtrO)27TmN=AfT>vzIszrQh;Yo63S5j7%9d3NTJ z_&51!hRv`}6fgGa1$O7&?)+Kz6IYcsmPR|%oho+-^I;Hq(_hnbt>nbsAHr8ivBj=^ zGPP4z{ocE8-@fU`NQS;yfW^{1(K4GlQ*p1`A|kZM7_L1-+SzRu*hH3(#Ydd3_`Tn5 zOw{Sf({6fXC|hGL>u?`FrGH8x9x3+}|D$X@f$kZ7FKV+8J1W;gZC-obLec6b*=!Zm zs3G+hJ<8s-g2kC8rLN%3U~AM8$gsgfK`gN=n(SR2yP=;dcWISwkfRDJ@%B)}r04Md z1)vWdDU8K;mS=ugNTH@Vw`Mq>G7H11^mP0I(aH~sun%ya6x&pYZ^?2Nmft~TcJ)*O z=d+kM9=d#oUD4vlm5A4C42ZFD#CEw|pYJeQ9)^-Ol+qm}>`zD(P}ZWMM!v}PJW-qP zKxY}9si3=;m$2cd-%wE8oZ8x)0^jU1o>iQ^aTKurb7iccpkSMwIH(;|Bw`joMWO~? z`_>5wG2^>;fT)JWgQ`gE3dc+}l0Xb$_IMo1;9DaH%D5mNaEe+3Q%AY=R1majH;hYW zzOiz;)t%$UgA8JEak0S00kk4Q31o;C+iHy=R|okc-NrrrDy)uTzVl~B08lQ@&)0z@ndSn)>Om&x zDY)^VT}ze&FI3qmd5kQAMp+ClB5yG$g0y%6QT#H#S8ljCcB`qMllWmY+%7Ezytv|* z@2PSSjaRM5C57!O`1byQB|la_ANX-j2W3ARkAW?)^wC1PBVOQf;V*j3O61T-vOM5| zuNflQ?U+Tl^DV7vV3}d=90S+N(q~AsxgpxNXJt>z&lb%QS?=xg4{u-a{r2xLy)8Z( z>@Z^qQ&x$%)+VhUspS_Wc`AWiTvU`IcgYeu3;K!#=Uk1tD=@1t=O7W{z^{U~6uju- z;mjOV2cv31JiKqu6eo)jEhiC_A)u_nCPvBa+#z??%iVpOS82^DENokQ_yB52AR2&k z{zuSF)IRpcbdVP5& zH6hT~@drRINCgl-E*m)EowZ`{^cC~fW+;u9gR&7&57b2jca_?~!FG{%7nVV3ffn&0 z`GTDro0N_Uy(~R?R~j5HZw;dB=kS|wp%o$>r_^RsB#EQSoU4uLsqt@lekj7`AdF(d zj)PVEg-R?y?+8fG6WjmPeEpV03<~<`T;T-F>Th~iD^Lh*j%p#W&te1zab=|ebRYH3 zfh~qA{cQqu0s_`glB&{B3d-UR%ScWfin?GG-mN=V)8pQv0ayfys)dcMjME3sF5ggI zNV}=(Xif=q9sliS+@Rsd21b^0kD&_CJGz(vbrV+p#6U57O$*9OUQoiukTJp3tZHLt z{@%k%mz7*SYrDu+30J_yVII8OA$PkVMVoH|mbp&K)h>XJC<;bv?F3rUS`~9e?o5Wle~ed-OnDdMNBXY7}d{P~tw?d_|Zz51LOi5DdW15U28)Z>M!qGNC{M zuE?aqe+9$1E4Y2luTP=WYnG{$R|!k+$ysvA<0%9sC|t6PaIM39p&MRMTn)(8^i)K; zAZV9L*>Sywx6o}FNG);`-gs6#X z*VaoAatSApZSuP+w7Q!g?F+f@Y|OqBlKp?2A=HP7f3bqf>>C}!L2RTU(e?XRFr#Mp?>bR(=8$>vbstFLm9R{wt|Hn}<7r3#3N$$=81bX? z(es9*Y%HKX0>5PT_<1&}g?gapr$6X5D$VkJV@I$M_TfR+_9b%$$ja=Pfe`V7M6rF5 zv#7Y3^oMDh@xM8~+ajprt5vgNF#xa&R2M}j*9=6aGl_ zIRZx`cuq$dsK0=GfT0)NAybQjAR{9qItS;mcl)bMgd`y&1s;N5EgbT>?WwAK0etIO z{8>0qpbE?4*ectTgHfcNJ5Frt75>+6Ab8k~r2A8Lm7iPjuP7`Or=4a|mWZjpEwbVt z?0CzJKY={F9i&jfoi-oPD=iS6Gkesk;qs;@084^agYT4`|Odi zk%Rl&O$}xoWSRHS;wH8t=dLeR3KJZ)7wtxhr%?RihxLt23q+9;Yf8` ztKLG9ue_C~5u213;=#=Ozjm z)WSjJfl42Dtpu~UU+C=XlLvJv7_J?tv_L}@gPeD>#@>X;0_=+uHZecn4b2hBoyVXL z@(ELulbUD_2}Q|t-LkSWG!hmT6u7&)e~{ZVZZ-H^5_T~Z%Ha=Y6&4l}iE^m^6J12= zeY+(J{zEL-*o?kJ&W=MHN`U;SkC&6d=R&XwW@C`%`!5g?Aivf{PT2+#+JAOgN1UZ{ zA(dOsQ-NlKX=|8J^5jI0!zZ;gJ;CcAm^p~9x<&o0txa8dBUag z6bbUqdoN)$^X_jw;p_awLnZ2JQJ^+ycQ| zCNIhA2}Iq1QUA^L;t=PhgOm2Ev`h$Gn3309Cdf<9LCz?r1ad;cPYo++h)I!)}~S>73kWYUi~ZrN@OPtW%UM+SEkqKGc{_>R}SQMJ`Bu?vTZ+@Y4#Y%|I8=a1L8l$xN; zbvu^53q*CtSy+A!6Y-R8w#RagPzCn&EhCW>&^AQXuEcc`O@zGKI5KMP=Wd6a%+#Qa z-=N|k481l+e|lwsEAz6sxq17E7iQtGYXSH)w)8eTLvqy+>pHU-YSHDRFMjM2F(LktgNk1!4ss+k&OkAH^@vmuPzUUdC@515)x36*n&N< zx8+zeIrXqN1rfLd{7#2IfFRgQQsCHKlv#66vCt?B#BQY=tpE+_>FM+1u~n`$>|O^L z895aKWuLqUC2YByZoHJsK%d`Ky|0*o!fx)&OV3p-p->(szj`N}2Uza=Ix5^ujB@jh zkWNBTMl(U42zylE_Kk6{hbF7IkA*Ru4+Gp}5{1{*j(anSGd zfL}|14MXz_3-xt%J&@NKhV8nr2J^&w>Qp=wPeHD{Ads7lRWf)wAcbx<1K>*IQ3K$e zhxP#^cfs_G3UlzE^JICj_@q@}Rop49Z+mknbe4ouvpgp3RU+1j+uKYpp{JL?C5>WFni_6R2?V>v?KOVwkri)>R3$WeK!@{8WECsu- z({(*3d(NLfAH4vQO*<27W{i*<>;y*liUOX5BE>rVEDG$XJACO{IL{Q6Wl&zS{~@Qf z92X{&{hY3pRP$tcK`^PSJgsi1tay3)SupVr)sM$kcnat0A1 z6$6_T?o!jr+;GjeZ)RXSP~$Ds%dnDT$7G&LeYUgGY7uS4)+YRLg>!ci4IUc*=1mC* z^IHSN`t(~BBR_zl$Dsw#`$Ct(y)2%cwx-0wh91B104U?xHP{3 zm#hF=q9HxcrF&Pde7W+acWv#{q=ggSCFcV5ya1M8-DlJG-s_lDb|p$<>gk^~cCmd+ zIS*O%0gLP9JmMfAZOr{uF3&NVrN&{+ zA6Bm;1{}Er?tTEC+X0M{Jbl)MM!<{^5$m1ZFt^wYxL{W1c&n3Q-(!ou&p$)t1turW zKc}qAd(rb?pU8J$Puk&o(f`YthtB<66t2%x7S8D470v*1t zC2aTIr_o%yZ>@;YGLz!go(CNLXwY7FF+yW{*WH|(p#ovQPi-##3>D8S%iDJ={9W4V zbxj2Y3-)i^U=V)21!zq6Enq|ec@`J$pFMWBZp9hX!_MM*e%7FfN;q4bWdhvHKWATB z#fsB!i|@v3CzY+MODxJd{NX{s+SS*9LGfVK%za<3A6+@K_c{-M$nRZuQY9TFTrVC< zD$e>9w0Gl$a7}UU!dsTWq!nS>eKxFi-^Fk}UjD0IM^j^R|Lwm%?ajRHQMbB)4q@bP0l+XkK!C9?( delta 20193 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 F69BJ5!tDS6 diff --git a/tests/testthat/_snaps/block/block-autosubmit-app-001.json b/tests/testthat/_snaps/block/block-autosubmit-app-001.json new file mode 100644 index 00000000..0d06a854 --- /dev/null +++ b/tests/testthat/_snaps/block/block-autosubmit-app-001.json @@ -0,0 +1,181 @@ +{ + "input": { + "my_stack-block_2-submit": 0 + }, + "output": { + "my_stack-block_2-res": { + "x": { + "style": "bootstrap5", + "filter": "none", + "vertical": false, + "container": "\n \n \n
<\/th>\n x1<\/th>\n x2<\/th>\n x3<\/th>\n x4<\/th>\n y1<\/th>\n y2<\/th>\n y3<\/th>\n y4<\/th>\n <\/tr>\n <\/thead>\n<\/table>", + "options": { + "pageLength": 5, + "processing": false, + "columnDefs": [ + { + "className": "dt-right", + "targets": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + { + "orderable": false, + "targets": 0 + }, + { + "name": " ", + "targets": 0 + }, + { + "name": "x1", + "targets": 1 + }, + { + "name": "x2", + "targets": 2 + }, + { + "name": "x3", + "targets": 3 + }, + { + "name": "x4", + "targets": 4 + }, + { + "name": "y1", + "targets": 5 + }, + { + "name": "y2", + "targets": 6 + }, + { + "name": "y3", + "targets": 7 + }, + { + "name": "y4", + "targets": 8 + } + ], + "order": [ + + ], + "autoWidth": false, + "orderClasses": false, + "lengthMenu": [ + 5, + 10, + 25, + 50, + 100 + ], + "ajax": { + "type": "POST", + "data": "function(d) {\nd.search.caseInsensitive = true;\nd.search.smart = true;\nd.escape = true;\nvar encodeAmp = function(x) { x.value = x.value.replace(/&/g, \"%26\"); }\nencodeAmp(d.search);\n$.each(d.columns, function(i, v) {encodeAmp(v.search);});\n}" + }, + "serverSide": true + }, + "selection": { + "mode": "none", + "selected": null, + "target": "row", + "selectable": null + } + }, + "evals": [ + "options.ajax.data" + ], + "jsHooks": [ + + ], + "deps": [ + { + "name": "jquery", + "version": "3.6.0", + "src": { + "href": "jquery-3.6.0" + }, + "meta": null, + "script": "jquery-3.6.0.min.js", + "stylesheet": null, + "head": null, + "attachment": null, + "all_files": true + }, + { + "name": "dt-core-bootstrap5", + "version": "1.13.6", + "src": { + "href": "dt-core-bootstrap5-1.13.6" + }, + "meta": null, + "script": [ + "js/jquery.dataTables.min.js", + "js/dataTables.bootstrap5.min.js" + ], + "stylesheet": "css/dataTables.bootstrap5.min.css", + "head": null, + "attachment": null, + "package": null, + "all_files": false + }, + { + "name": "bootstrap", + "version": "5.3.1", + "src": { + "href": "bootstrap-5.3.1" + }, + "meta": { + "viewport": "width=device-width, initial-scale=1, shrink-to-fit=no" + }, + "script": "bootstrap.bundle.min.js", + "stylesheet": "bootstrap.min.css", + "head": null, + "attachment": null, + "package": null, + "all_files": true + }, + { + "name": "bs3compat", + "version": "0.8.0", + "src": { + "href": "bs3compat-0.8.0" + }, + "meta": null, + "script": [ + "transition.js", + "tabs.js", + "bs3compat.js" + ], + "stylesheet": null, + "head": null, + "attachment": null, + "all_files": true + }, + { + "name": "crosstalk", + "version": "1.2.1", + "src": { + "href": "crosstalk-1.2.1" + }, + "meta": null, + "script": "js/crosstalk.min.js", + "stylesheet": "css/crosstalk.min.css", + "head": null, + "attachment": null, + "all_files": true + } + ] + } + } +} diff --git a/tests/testthat/_snaps/block/block-submit-app-001.json b/tests/testthat/_snaps/block/block-submit-app-001.json new file mode 100644 index 00000000..2f7a4dfa --- /dev/null +++ b/tests/testthat/_snaps/block/block-submit-app-001.json @@ -0,0 +1,12 @@ +{ + "input": { + "my_stack-block_2-submit": 0 + }, + "output": { + "my_stack-block_2-res": [ + "", + "NULL", + "c(\"shiny.silent.error\", \"validation\")" + ] + } +} diff --git a/tests/testthat/_snaps/block/block-submit-app-002.json b/tests/testthat/_snaps/block/block-submit-app-002.json new file mode 100644 index 00000000..dcb7948a --- /dev/null +++ b/tests/testthat/_snaps/block/block-submit-app-002.json @@ -0,0 +1,181 @@ +{ + "input": { + "my_stack-block_2-submit": 1 + }, + "output": { + "my_stack-block_2-res": { + "x": { + "style": "bootstrap5", + "filter": "none", + "vertical": false, + "container": "\n \n \n
<\/th>\n x1<\/th>\n x2<\/th>\n x3<\/th>\n x4<\/th>\n y1<\/th>\n y2<\/th>\n y3<\/th>\n y4<\/th>\n <\/tr>\n <\/thead>\n<\/table>", + "options": { + "pageLength": 5, + "processing": false, + "columnDefs": [ + { + "className": "dt-right", + "targets": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + { + "orderable": false, + "targets": 0 + }, + { + "name": " ", + "targets": 0 + }, + { + "name": "x1", + "targets": 1 + }, + { + "name": "x2", + "targets": 2 + }, + { + "name": "x3", + "targets": 3 + }, + { + "name": "x4", + "targets": 4 + }, + { + "name": "y1", + "targets": 5 + }, + { + "name": "y2", + "targets": 6 + }, + { + "name": "y3", + "targets": 7 + }, + { + "name": "y4", + "targets": 8 + } + ], + "order": [ + + ], + "autoWidth": false, + "orderClasses": false, + "lengthMenu": [ + 5, + 10, + 25, + 50, + 100 + ], + "ajax": { + "type": "POST", + "data": "function(d) {\nd.search.caseInsensitive = true;\nd.search.smart = true;\nd.escape = true;\nvar encodeAmp = function(x) { x.value = x.value.replace(/&/g, \"%26\"); }\nencodeAmp(d.search);\n$.each(d.columns, function(i, v) {encodeAmp(v.search);});\n}" + }, + "serverSide": true + }, + "selection": { + "mode": "none", + "selected": null, + "target": "row", + "selectable": null + } + }, + "evals": [ + "options.ajax.data" + ], + "jsHooks": [ + + ], + "deps": [ + { + "name": "jquery", + "version": "3.6.0", + "src": { + "href": "jquery-3.6.0" + }, + "meta": null, + "script": "jquery-3.6.0.min.js", + "stylesheet": null, + "head": null, + "attachment": null, + "all_files": true + }, + { + "name": "dt-core-bootstrap5", + "version": "1.13.6", + "src": { + "href": "dt-core-bootstrap5-1.13.6" + }, + "meta": null, + "script": [ + "js/jquery.dataTables.min.js", + "js/dataTables.bootstrap5.min.js" + ], + "stylesheet": "css/dataTables.bootstrap5.min.css", + "head": null, + "attachment": null, + "package": null, + "all_files": false + }, + { + "name": "bootstrap", + "version": "5.3.1", + "src": { + "href": "bootstrap-5.3.1" + }, + "meta": { + "viewport": "width=device-width, initial-scale=1, shrink-to-fit=no" + }, + "script": "bootstrap.bundle.min.js", + "stylesheet": "bootstrap.min.css", + "head": null, + "attachment": null, + "package": null, + "all_files": true + }, + { + "name": "bs3compat", + "version": "0.8.0", + "src": { + "href": "bs3compat-0.8.0" + }, + "meta": null, + "script": [ + "transition.js", + "tabs.js", + "bs3compat.js" + ], + "stylesheet": null, + "head": null, + "attachment": null, + "all_files": true + }, + { + "name": "crosstalk", + "version": "1.2.1", + "src": { + "href": "crosstalk-1.2.1" + }, + "meta": null, + "script": "js/crosstalk.min.js", + "stylesheet": "css/crosstalk.min.css", + "head": null, + "attachment": null, + "all_files": true + } + ] + } + } +} diff --git a/tests/testthat/_snaps/workspace/restore-workspace-app-001_.new.png b/tests/testthat/_snaps/workspace/restore-workspace-app-001_.new.png index d35bf4b7efda71df3fc43b13f8858ab12d634ee7..ccb4007e7c1513b007aef850ba6b38e51826c163 100644 GIT binary patch literal 54312 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