From 26838f9e9ccdc90a47178b45318d110f5812d6e1 Mon Sep 17 00:00:00 2001 From: pvictor Date: Wed, 1 Mar 2023 15:57:20 +0100 Subject: [PATCH] treeInput: select with ID --- R/tree-input.R | 2 +- examples/tree-default.R | 6 +++--- examples/tree-update.R | 14 +++++++++----- inst/packer/tree.js | 2 +- man/treeInput.Rd | 6 +++--- man/updateTreeInput.Rd | 14 +++++++++----- srcjs/inputs/tree.js | 4 +++- 7 files changed, 29 insertions(+), 19 deletions(-) diff --git a/R/tree-input.R b/R/tree-input.R index 57ccb0cf..dfa85b5b 100644 --- a/R/tree-input.R +++ b/R/tree-input.R @@ -61,7 +61,7 @@ treeInput <- function(inputId, tags$script( type = "application/json", `data-for` = inputId, - config + HTML(config) ) ), html_dependency_tree() diff --git a/examples/tree-default.R b/examples/tree-default.R index 4398bdef..767c7c57 100644 --- a/examples/tree-default.R +++ b/examples/tree-default.R @@ -24,7 +24,7 @@ ui <- fluidPage( inputId = "ID1", label = "Select cities:", choices = create_tree(cities), - # selected = "San Francisco", + selected = "San Francisco", returnValue = "text", closeDepth = 0 ), @@ -36,7 +36,7 @@ ui <- fluidPage( inputId = "ID2", label = "Select cities:", choices = create_tree(cities), - # selected = "San Francisco", + selected = "San Francisco", returnValue = "text", closeDepth = 1 ), @@ -48,7 +48,7 @@ ui <- fluidPage( inputId = "ID3", label = "Select cities:", choices = create_tree(cities), - # selected = "San Francisco", + selected = c("San Francisco", "Monastir"), returnValue = "text", closeDepth = 2 ), diff --git a/examples/tree-update.R b/examples/tree-update.R index 48eb6b0e..fa001d11 100644 --- a/examples/tree-update.R +++ b/examples/tree-update.R @@ -60,17 +60,21 @@ server <- function(input, output, session) { updateTreeInput(inputId = "ID1", label = input$label) ) - observe( + observeEvent( + input$val_country, updateTreeInput(inputId = "ID1", selected = input$val_country) ) - observe( + observeEvent( + input$val_city, updateTreeInput(inputId = "ID1", selected = input$val_city) ) - observeEvent( - input$clear, - updateTreeInput(inputId = "ID1", selected = character(0)) + observeEvent(input$clear, { + updateTreeInput(inputId = "ID1", selected = character(0)) + updateCheckboxGroupInput(inputId = "val_country", selected = character(0)) + updateCheckboxGroupInput(inputId = "val_city", selected = character(0)) + } ) } diff --git a/inst/packer/tree.js b/inst/packer/tree.js index f87c6507..28ed8b33 100644 --- a/inst/packer/tree.js +++ b/inst/packer/tree.js @@ -1 +1 @@ -(()=>{var e={6167:e=>{window,e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=d;var r,o=(r=n(1))&&r.__esModule?r:{default:r};function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,o=!1,s=void 0;try{for(var i,a=e[Symbol.iterator]();!(r=(i=a.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,s=e}finally{try{r||null==a.return||a.return()}finally{if(o)throw s}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(e){var t={};return e.reduce((function(e,n){return t[n]||(t[n]=!0,e.push(n)),e}),[])}function a(e,t){requestAnimationFrame((function(){t.enter(),requestAnimationFrame((function(){t.active(),setTimeout((function(){t.leave()}),e)}))}))}function d(e,t){var n=this;this.treeNodes=[],this.nodesById={},this.leafNodesById={},this.liElementsById={},this.willUpdateNodesById={},this.container=e,this.options=Object.assign({selectMode:"checkbox",values:[],disables:[],beforeLoad:null,loaded:null,url:null,method:"GET",closeDepth:null},t),Object.defineProperties(this,{values:{get:function(){return this.getValues()},set:function(e){return this.setValues(i(e))}},disables:{get:function(){return this.getDisables()},set:function(e){return this.setDisables(i(e))}},selectedNodes:{get:function(){var e=[],t=this.nodesById;for(var n in t)if(t.hasOwnProperty(n)&&(1===t[n].status||2===t[n].status)){var r=Object.assign({},t[n]);delete r.parent,delete r.children,e.push(r)}return e}},disabledNodes:{get:function(){var e=[],t=this.nodesById;for(var n in t)if(t.hasOwnProperty(n)&&t[n].disabled){var r=Object.assign({},t[n]);delete r.parent,e.push(r)}return e}}}),this.options.url?this.load((function(e){n.init(e)})):this.init(this.options.data)}n(2),d.prototype.init=function(e){var t=d.parseTreeData(e),n=t.treeNodes,r=t.nodesById,o=t.leafNodesById,s=t.defaultValues,i=t.defaultDisables;this.treeNodes=n,this.nodesById=r,this.leafNodesById=o,this.render(this.treeNodes);var a=this.options,l=a.values,c=a.disables,u=a.loaded;l&&l.length&&(s=l),s.length&&this.setValues(s),c&&c.length&&(i=c),i.length&&this.setDisables(i),u&&u.call(this)},d.prototype.load=function(e){var t=this.options,n=t.url,r=t.method,s=t.beforeLoad;(0,o.default)({url:n,method:r,success:function(t){var n=t;s&&(n=s(t)),e(n)}})},d.prototype.render=function(e){var t=d.createRootEle();t.appendChild(this.buildTree(e,0)),this.bindEvent(t);var n=document.querySelector(this.container);!function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}(n),n.appendChild(t)},d.prototype.buildTree=function(e,t){var n=this,r=d.createUlEle();return e&&e.length&&e.forEach((function(e){var o=d.createLiEle(e,t===n.options.closeDepth-1);n.liElementsById[e.id]=o;var s=null;e.children&&e.children.length&&(s=n.buildTree(e.children,t+1)),s&&o.appendChild(s),r.appendChild(o)})),r},d.prototype.bindEvent=function(e){var t=this;e.addEventListener("click",(function(e){var n=e.target;"SPAN"===n.nodeName&&(n.classList.contains("treejs-checkbox")||n.classList.contains("treejs-label"))?t.onItemClick(n.parentNode.nodeId):"LI"===n.nodeName&&n.classList.contains("treejs-node")?t.onItemClick(n.nodeId):"SPAN"===n.nodeName&&n.classList.contains("treejs-switcher")&&t.onSwitcherClick(n)}),!1)},d.prototype.onItemClick=function(e){var t=this.nodesById[e],n=this.options.onChange;t.disabled||(this.setValue(e),this.updateLiElements()),n&&n.call(this)},d.prototype.setValue=function(e){var t=this.nodesById[e];if(t){var n=t.status,r=1===n||2===n?0:2;t.status=r,this.markWillUpdateNode(t),this.walkUp(t,"status"),this.walkDown(t,"status")}},d.prototype.getValues=function(){var e=[];for(var t in this.leafNodesById)this.leafNodesById.hasOwnProperty(t)&&(1!==this.leafNodesById[t].status&&2!==this.leafNodesById[t].status||e.push(t));return e},d.prototype.setValues=function(e){var t=this;this.emptyNodesCheckStatus(),e.forEach((function(e){t.setValue(e)})),this.updateLiElements();var n=this.options.onChange;n&&n.call(this)},d.prototype.setDisable=function(e){var t=this.nodesById[e];t&&(t.disabled||(t.disabled=!0,this.markWillUpdateNode(t),this.walkUp(t,"disabled"),this.walkDown(t,"disabled")))},d.prototype.getDisables=function(){var e=[];for(var t in this.leafNodesById)this.leafNodesById.hasOwnProperty(t)&&this.leafNodesById[t].disabled&&e.push(t);return e},d.prototype.setDisables=function(e){var t=this;this.emptyNodesDisable(),e.forEach((function(e){t.setDisable(e)})),this.updateLiElements()},d.prototype.emptyNodesCheckStatus=function(){this.willUpdateNodesById=this.getSelectedNodesById(),Object.values(this.willUpdateNodesById).forEach((function(e){e.disabled||(e.status=0)}))},d.prototype.emptyNodesDisable=function(){this.willUpdateNodesById=this.getDisabledNodesById(),Object.values(this.willUpdateNodesById).forEach((function(e){e.disabled=!1}))},d.prototype.getSelectedNodesById=function(){return Object.entries(this.nodesById).reduce((function(e,t){var n=s(t,2),r=n[0],o=n[1];return 1!==o.status&&2!==o.status||(e[r]=o),e}),{})},d.prototype.getDisabledNodesById=function(){return Object.entries(this.nodesById).reduce((function(e,t){var n=s(t,2),r=n[0],o=n[1];return o.disabled&&(e[r]=o),e}),{})},d.prototype.updateLiElements=function(){var e=this;Object.values(this.willUpdateNodesById).forEach((function(t){e.updateLiElement(t)})),this.willUpdateNodesById={}},d.prototype.markWillUpdateNode=function(e){this.willUpdateNodesById[e.id]=e},d.prototype.onSwitcherClick=function(e){var t=e.parentNode,n=t.lastChild,r=n.scrollHeight;t.classList.contains("treejs-node__close")?a(150,{enter:function(){n.style.height=0,n.style.opacity=0},active:function(){n.style.height="".concat(r,"px"),n.style.opacity=1},leave:function(){n.style.height="",n.style.opacity="",t.classList.remove("treejs-node__close")}}):a(150,{enter:function(){n.style.height="".concat(r,"px"),n.style.opacity=1},active:function(){n.style.height=0,n.style.opacity=0},leave:function(){n.style.height="",n.style.opacity="",t.classList.add("treejs-node__close")}})},d.prototype.walkUp=function(e,t){var n=e.parent;if(n){if("status"===t){var r,o=n.children.reduce((function(e,t){return isNaN(t.status)?e:e+t.status}),0);if(r=o?o===2*n.children.length?2:1:0,n.status===r)return;n.status=r}else{var s=n.children.reduce((function(e,t){return e&&t.disabled}),!0);if(n.disabled===s)return;n.disabled=s}this.markWillUpdateNode(n),this.walkUp(n,t)}},d.prototype.walkDown=function(e,t){var n=this;e.children&&e.children.length&&e.children.forEach((function(r){"status"===t&&r.disabled||(r[t]=e[t],n.markWillUpdateNode(r),n.walkDown(r,t))}))},d.prototype.updateLiElement=function(e){var t=this.liElementsById[e.id].classList;switch(e.status){case 0:t.remove("treejs-node__halfchecked","treejs-node__checked");break;case 1:t.remove("treejs-node__checked"),t.add("treejs-node__halfchecked");break;case 2:t.remove("treejs-node__halfchecked"),t.add("treejs-node__checked")}switch(e.disabled){case!0:t.contains("treejs-node__disabled")||t.add("treejs-node__disabled");break;case!1:t.contains("treejs-node__disabled")&&t.remove("treejs-node__disabled")}},d.parseTreeData=function(e){var t,n=(t=e,JSON.parse(JSON.stringify(t))),r={},o={},s=[],i=[];return function e(t,n){t.forEach((function(t){r[t.id]=t,t.checked&&s.push(t.id),t.disabled&&i.push(t.id),n&&(t.parent=n),t.children&&t.children.length?e(t.children,t):o[t.id]=t}))}(n),{treeNodes:n,nodesById:r,leafNodesById:o,defaultValues:s,defaultDisables:i}},d.createRootEle=function(){var e=document.createElement("div");return e.classList.add("treejs"),e},d.createUlEle=function(){var e=document.createElement("ul");return e.classList.add("treejs-nodes"),e},d.createLiEle=function(e,t){var n=document.createElement("li");if(n.classList.add("treejs-node"),t&&n.classList.add("treejs-node__close"),e.children&&e.children.length){var r=document.createElement("span");r.classList.add("treejs-switcher"),n.appendChild(r)}else n.classList.add("treejs-placeholder");var o=document.createElement("span");o.classList.add("treejs-checkbox"),n.appendChild(o);var s=document.createElement("span");s.classList.add("treejs-label");var i=document.createTextNode(e.text);return s.appendChild(i),n.appendChild(s),n.nodeId=e.id,n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t={method:"GET",url:"",async:!0,success:null,failed:null,"Content-Type":"application/json; charset=utf-8"},n=Object.assign(t,e),r=new XMLHttpRequest,o=Object.entries(n.data).reduce((function(e,t){var n,r=(2,function(e){if(Array.isArray(e))return e}(n=t)||function(e,t){var n=[],r=!0,o=!1,s=void 0;try{for(var i,a=e[Symbol.iterator]();!(r=(i=a.next()).done)&&(n.push(i.value),2!==n.length);r=!0);}catch(e){o=!0,s=e}finally{try{r||null==a.return||a.return()}finally{if(o)throw s}}return n}(n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()),o=r[0],s=r[1];return e.push("".concat(o,"=").concat(s)),e}),[]).join("&");if("POST"===n.method.toUpperCase())r.open(n.method,n.url,n.async),r.setRequestHeader("Content-Type",n["Content-Type"]),r.send(o);else if("GET"===n.method.toUpperCase()){var s=n.url;o&&(s.indexOf("?"),s+="&".concat(o)),r.open(n.method,s,n.async),r.setRequestHeader("Content-Type",n["Content-Type"]),r.send(null)}r.onreadystatechange=function(){if(4===r.readyState&&200===r.status){var e=r.responseText;n["Content-Type"]===t["Content-Type"]&&(e=JSON.parse(e)),n.success&&n.success(e)}else n.failed&&n.failed(r.status)}}},function(e,t,n){var r=n(3);"string"==typeof r&&(r=[[e.i,r,""]]);n(5)(r,{hmr:!0,transform:void 0,insertInto:void 0}),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,".treejs {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 14px;\n}\n.treejs *:after,\n.treejs *:before {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.treejs > .treejs-node {\n padding-left: 0;\n}\n.treejs .treejs-nodes {\n list-style: none;\n padding-left: 20px;\n overflow: hidden;\n -webkit-transition: height 150ms ease-out, opacity 150ms ease-out;\n -o-transition: height 150ms ease-out, opacity 150ms ease-out;\n transition: height 150ms ease-out, opacity 150ms ease-out;\n}\n.treejs .treejs-node {\n cursor: pointer;\n overflow: hidden;\n}\n.treejs .treejs-node.treejs-placeholder {\n padding-left: 20px;\n}\n.treejs .treejs-switcher {\n display: inline-block;\n vertical-align: middle;\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n -webkit-transition: -webkit-transform 150ms ease-out;\n transition: -webkit-transform 150ms ease-out;\n -o-transition: transform 150ms ease-out;\n transition: transform 150ms ease-out;\n transition: transform 150ms ease-out, -webkit-transform 150ms ease-out;\n}\n.treejs .treejs-switcher:before {\n position: absolute;\n top: 8px;\n left: 6px;\n display: block;\n content: ' ';\n border: 4px solid transparent;\n border-top: 4px solid rgba(0, 0, 0, 0.4);\n -webkit-transition: border-color 150ms;\n -o-transition: border-color 150ms;\n transition: border-color 150ms;\n}\n.treejs .treejs-switcher:hover:before {\n border-top: 4px solid rgba(0, 0, 0, 0.65);\n}\n.treejs .treejs-node__close > .treejs-switcher {\n -webkit-transform: rotate(-90deg);\n -ms-transform: rotate(-90deg);\n transform: rotate(-90deg);\n}\n.treejs .treejs-node__close > .treejs-nodes {\n height: 0;\n}\n.treejs .treejs-checkbox {\n display: inline-block;\n vertical-align: middle;\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n}\n.treejs .treejs-checkbox:before {\n -webkit-transition: all 0.3s;\n -o-transition: all 0.3s;\n transition: all 0.3s;\n cursor: pointer;\n position: absolute;\n top: 2px;\n content: ' ';\n display: block;\n width: 16px;\n height: 16px;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.treejs .treejs-checkbox:hover:before {\n -webkit-box-shadow: 0 0 2px 1px #1890ff;\n box-shadow: 0 0 2px 1px #1890ff;\n}\n.treejs .treejs-node__checked > .treejs-checkbox:before {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.treejs .treejs-node__checked > .treejs-checkbox:after {\n position: absolute;\n content: ' ';\n display: block;\n top: 4px;\n left: 5px;\n width: 5px;\n height: 9px;\n border: 2px solid #fff;\n border-top: none;\n border-left: none;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n}\n.treejs .treejs-node__halfchecked > .treejs-checkbox:before {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.treejs .treejs-node__halfchecked > .treejs-checkbox:after {\n position: absolute;\n content: ' ';\n display: block;\n top: 9px;\n left: 3px;\n width: 10px;\n height: 2px;\n background-color: #fff;\n}\n.treejs .treejs-node__disabled {\n cursor: not-allowed;\n color: rgba(0, 0, 0, 0.25);\n}\n.treejs .treejs-node__disabled .treejs-checkbox {\n cursor: not-allowed;\n}\n.treejs .treejs-node__disabled .treejs-checkbox:before {\n cursor: not-allowed;\n border-color: #d9d9d9 !important;\n background-color: #f5f5f5 !important;\n}\n.treejs .treejs-node__disabled .treejs-checkbox:hover:before {\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n}\n.treejs .treejs-node__disabled .treejs-node__checked > .treejs-checkbox:after {\n border-color: #d9d9d9;\n}\n.treejs .treejs-node__disabled .treejs-node__halfchecked > .treejs-checkbox:after {\n background-color: #d9d9d9;\n}\n.treejs .treejs-node__disabled.treejs-node__checked > .treejs-checkbox:after {\n border-color: #d9d9d9;\n}\n.treejs .treejs-node__disabled.treejs-node__halfchecked > .treejs-checkbox:after {\n background-color: #d9d9d9;\n}\n.treejs .treejs-label {\n vertical-align: middle;\n}\n",""])},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n,r=e[1]||"",o=e[3];if(!o)return r;if(t&&"function"==typeof btoa){var s=(n=o,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */"),i=o.sources.map((function(e){return"/*# sourceURL="+o.sourceRoot+e+" */"}));return[r].concat(i).concat([s]).join("\n")}return[r].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n})).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o=0&&c.splice(t,1)}function y(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),v(t,e.attrs),h(e,t),t}function v(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function m(e,t){var n,r,o,s;if(t.transform&&e.css){if(!(s=t.transform(e.css)))return function(){};e.css=s}if(t.singleton){var i=l++;n=d||(d=y(t)),r=w.bind(null,n,i,!1),o=w.bind(null,n,i,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",v(t,e.attrs),h(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,s=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||s)&&(r=u(r)),o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var i=new Blob([r],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(i),a&&URL.revokeObjectURL(a)}.bind(null,n,t),o=function(){b(n),n.href&&URL.revokeObjectURL(n.href)}):(n=y(t),r=function(e,t){var n=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){b(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=i()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=p(e,t);return f(n,t),function(e){for(var r=[],o=0;o{e.exports=n(6167)}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";const e=jQuery;var t=n.n(e);Shiny;var r=n(3933),o=n.n(r);function s(e,t){try{const n=e.liElementsById[t.parent.id];n.classList.contains("treejs-node__close")||n.getElementsByClassName("treejs-switcher")[0].click()}catch(e){return}t.hasOwnProperty("parent")&&s(e,t.parent)}function i(e,t,n){var r=n;const o=e.liElementsById[t.id];if(o.classList.contains("treejs-node__close")){var s=o.getElementsByClassName("treejs-switcher")[0];s&&s.click()}if(r>0&&t.hasOwnProperty("children")){r-=1;for(let n of t.children)i(e,n,r)}}var a=new Shiny.InputBinding;t().extend(a,{store:[],updateStore:(e,t)=>{a.store[e.id]=t},find:e=>t()(e).find(".tree-widget"),getType:e=>"all"==t()(e).attr("data-return")?"sw.tree.all":"sw.tree",getValue:e=>{var n=a.store[e.id].selectedNodes;return n.length<1?null:("text"==t()(e).attr("data-return")?n=n.map((e=>{if(2==e.status)return e.text[0]})):"id"==t()(e).attr("data-return")&&(n=n.map((e=>{if(2==e.status)return e.id[0]}))),n)},setValue:(e,t)=>{var n=a.store[e.id],r=n.nodesById,o=Object.entries(r).map((e=>t.includes(e[1].text[0])?e[1].id[0]:null));o=o.filter((e=>null!==e)),n.values=o},subscribe:(e,n)=>{t()(e).on("change.treeWidgetBinding",(function(e){n()}))},unsubscribe:e=>{t()(e).off(".treeWidgetBinding")},receiveMessage:(e,n)=>{if(n.hasOwnProperty("label")){var r=t()("#"+e.id+"-label");!function(e,t){if(void 0!==e){if(1!==t.length)throw new Error("labelNode must be of length 1");Array.isArray(e)&&0===e.length?t.addClass("shiny-label-null"):(t.text(e),t.removeClass("shiny-label-null"))}}(n.label,r)}n.hasOwnProperty("values")&&a.setValue(e,n.values)},initialize:e=>{var n=e.querySelector('script[data-for="'+e.id+'"]'),r=JSON.parse(n.text),d=null!==typeof r.closeDepth?r.closeDepth-1:0;r.closeDepth=1,r.onChange=function(){t()(e).trigger("change")},r.loaded=function(){t()(e).find(".treejs-nodes").first().css("padding-left",0)};const l=new(o())("#"+e.id,r);a.updateStore(e,l),r.hasOwnProperty("values")&&a.setValue(e,r.values),function(e){const t=e.leafNodesById;for(let n in t)s(e,t[n])}(l),setTimeout((function(){if(d>=0)for(let e of l.treeNodes)i(l,e,d)}),250)}}),Shiny.inputBindings.register(a,"shinyWidgets.treeWidgetBinding")})()})(); \ No newline at end of file +(()=>{var e={6167:e=>{window,e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=d;var r,o=(r=n(1))&&r.__esModule?r:{default:r};function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,o=!1,s=void 0;try{for(var i,a=e[Symbol.iterator]();!(r=(i=a.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,s=e}finally{try{r||null==a.return||a.return()}finally{if(o)throw s}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(e){var t={};return e.reduce((function(e,n){return t[n]||(t[n]=!0,e.push(n)),e}),[])}function a(e,t){requestAnimationFrame((function(){t.enter(),requestAnimationFrame((function(){t.active(),setTimeout((function(){t.leave()}),e)}))}))}function d(e,t){var n=this;this.treeNodes=[],this.nodesById={},this.leafNodesById={},this.liElementsById={},this.willUpdateNodesById={},this.container=e,this.options=Object.assign({selectMode:"checkbox",values:[],disables:[],beforeLoad:null,loaded:null,url:null,method:"GET",closeDepth:null},t),Object.defineProperties(this,{values:{get:function(){return this.getValues()},set:function(e){return this.setValues(i(e))}},disables:{get:function(){return this.getDisables()},set:function(e){return this.setDisables(i(e))}},selectedNodes:{get:function(){var e=[],t=this.nodesById;for(var n in t)if(t.hasOwnProperty(n)&&(1===t[n].status||2===t[n].status)){var r=Object.assign({},t[n]);delete r.parent,delete r.children,e.push(r)}return e}},disabledNodes:{get:function(){var e=[],t=this.nodesById;for(var n in t)if(t.hasOwnProperty(n)&&t[n].disabled){var r=Object.assign({},t[n]);delete r.parent,e.push(r)}return e}}}),this.options.url?this.load((function(e){n.init(e)})):this.init(this.options.data)}n(2),d.prototype.init=function(e){var t=d.parseTreeData(e),n=t.treeNodes,r=t.nodesById,o=t.leafNodesById,s=t.defaultValues,i=t.defaultDisables;this.treeNodes=n,this.nodesById=r,this.leafNodesById=o,this.render(this.treeNodes);var a=this.options,l=a.values,c=a.disables,u=a.loaded;l&&l.length&&(s=l),s.length&&this.setValues(s),c&&c.length&&(i=c),i.length&&this.setDisables(i),u&&u.call(this)},d.prototype.load=function(e){var t=this.options,n=t.url,r=t.method,s=t.beforeLoad;(0,o.default)({url:n,method:r,success:function(t){var n=t;s&&(n=s(t)),e(n)}})},d.prototype.render=function(e){var t=d.createRootEle();t.appendChild(this.buildTree(e,0)),this.bindEvent(t);var n=document.querySelector(this.container);!function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}(n),n.appendChild(t)},d.prototype.buildTree=function(e,t){var n=this,r=d.createUlEle();return e&&e.length&&e.forEach((function(e){var o=d.createLiEle(e,t===n.options.closeDepth-1);n.liElementsById[e.id]=o;var s=null;e.children&&e.children.length&&(s=n.buildTree(e.children,t+1)),s&&o.appendChild(s),r.appendChild(o)})),r},d.prototype.bindEvent=function(e){var t=this;e.addEventListener("click",(function(e){var n=e.target;"SPAN"===n.nodeName&&(n.classList.contains("treejs-checkbox")||n.classList.contains("treejs-label"))?t.onItemClick(n.parentNode.nodeId):"LI"===n.nodeName&&n.classList.contains("treejs-node")?t.onItemClick(n.nodeId):"SPAN"===n.nodeName&&n.classList.contains("treejs-switcher")&&t.onSwitcherClick(n)}),!1)},d.prototype.onItemClick=function(e){var t=this.nodesById[e],n=this.options.onChange;t.disabled||(this.setValue(e),this.updateLiElements()),n&&n.call(this)},d.prototype.setValue=function(e){var t=this.nodesById[e];if(t){var n=t.status,r=1===n||2===n?0:2;t.status=r,this.markWillUpdateNode(t),this.walkUp(t,"status"),this.walkDown(t,"status")}},d.prototype.getValues=function(){var e=[];for(var t in this.leafNodesById)this.leafNodesById.hasOwnProperty(t)&&(1!==this.leafNodesById[t].status&&2!==this.leafNodesById[t].status||e.push(t));return e},d.prototype.setValues=function(e){var t=this;this.emptyNodesCheckStatus(),e.forEach((function(e){t.setValue(e)})),this.updateLiElements();var n=this.options.onChange;n&&n.call(this)},d.prototype.setDisable=function(e){var t=this.nodesById[e];t&&(t.disabled||(t.disabled=!0,this.markWillUpdateNode(t),this.walkUp(t,"disabled"),this.walkDown(t,"disabled")))},d.prototype.getDisables=function(){var e=[];for(var t in this.leafNodesById)this.leafNodesById.hasOwnProperty(t)&&this.leafNodesById[t].disabled&&e.push(t);return e},d.prototype.setDisables=function(e){var t=this;this.emptyNodesDisable(),e.forEach((function(e){t.setDisable(e)})),this.updateLiElements()},d.prototype.emptyNodesCheckStatus=function(){this.willUpdateNodesById=this.getSelectedNodesById(),Object.values(this.willUpdateNodesById).forEach((function(e){e.disabled||(e.status=0)}))},d.prototype.emptyNodesDisable=function(){this.willUpdateNodesById=this.getDisabledNodesById(),Object.values(this.willUpdateNodesById).forEach((function(e){e.disabled=!1}))},d.prototype.getSelectedNodesById=function(){return Object.entries(this.nodesById).reduce((function(e,t){var n=s(t,2),r=n[0],o=n[1];return 1!==o.status&&2!==o.status||(e[r]=o),e}),{})},d.prototype.getDisabledNodesById=function(){return Object.entries(this.nodesById).reduce((function(e,t){var n=s(t,2),r=n[0],o=n[1];return o.disabled&&(e[r]=o),e}),{})},d.prototype.updateLiElements=function(){var e=this;Object.values(this.willUpdateNodesById).forEach((function(t){e.updateLiElement(t)})),this.willUpdateNodesById={}},d.prototype.markWillUpdateNode=function(e){this.willUpdateNodesById[e.id]=e},d.prototype.onSwitcherClick=function(e){var t=e.parentNode,n=t.lastChild,r=n.scrollHeight;t.classList.contains("treejs-node__close")?a(150,{enter:function(){n.style.height=0,n.style.opacity=0},active:function(){n.style.height="".concat(r,"px"),n.style.opacity=1},leave:function(){n.style.height="",n.style.opacity="",t.classList.remove("treejs-node__close")}}):a(150,{enter:function(){n.style.height="".concat(r,"px"),n.style.opacity=1},active:function(){n.style.height=0,n.style.opacity=0},leave:function(){n.style.height="",n.style.opacity="",t.classList.add("treejs-node__close")}})},d.prototype.walkUp=function(e,t){var n=e.parent;if(n){if("status"===t){var r,o=n.children.reduce((function(e,t){return isNaN(t.status)?e:e+t.status}),0);if(r=o?o===2*n.children.length?2:1:0,n.status===r)return;n.status=r}else{var s=n.children.reduce((function(e,t){return e&&t.disabled}),!0);if(n.disabled===s)return;n.disabled=s}this.markWillUpdateNode(n),this.walkUp(n,t)}},d.prototype.walkDown=function(e,t){var n=this;e.children&&e.children.length&&e.children.forEach((function(r){"status"===t&&r.disabled||(r[t]=e[t],n.markWillUpdateNode(r),n.walkDown(r,t))}))},d.prototype.updateLiElement=function(e){var t=this.liElementsById[e.id].classList;switch(e.status){case 0:t.remove("treejs-node__halfchecked","treejs-node__checked");break;case 1:t.remove("treejs-node__checked"),t.add("treejs-node__halfchecked");break;case 2:t.remove("treejs-node__halfchecked"),t.add("treejs-node__checked")}switch(e.disabled){case!0:t.contains("treejs-node__disabled")||t.add("treejs-node__disabled");break;case!1:t.contains("treejs-node__disabled")&&t.remove("treejs-node__disabled")}},d.parseTreeData=function(e){var t,n=(t=e,JSON.parse(JSON.stringify(t))),r={},o={},s=[],i=[];return function e(t,n){t.forEach((function(t){r[t.id]=t,t.checked&&s.push(t.id),t.disabled&&i.push(t.id),n&&(t.parent=n),t.children&&t.children.length?e(t.children,t):o[t.id]=t}))}(n),{treeNodes:n,nodesById:r,leafNodesById:o,defaultValues:s,defaultDisables:i}},d.createRootEle=function(){var e=document.createElement("div");return e.classList.add("treejs"),e},d.createUlEle=function(){var e=document.createElement("ul");return e.classList.add("treejs-nodes"),e},d.createLiEle=function(e,t){var n=document.createElement("li");if(n.classList.add("treejs-node"),t&&n.classList.add("treejs-node__close"),e.children&&e.children.length){var r=document.createElement("span");r.classList.add("treejs-switcher"),n.appendChild(r)}else n.classList.add("treejs-placeholder");var o=document.createElement("span");o.classList.add("treejs-checkbox"),n.appendChild(o);var s=document.createElement("span");s.classList.add("treejs-label");var i=document.createTextNode(e.text);return s.appendChild(i),n.appendChild(s),n.nodeId=e.id,n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t={method:"GET",url:"",async:!0,success:null,failed:null,"Content-Type":"application/json; charset=utf-8"},n=Object.assign(t,e),r=new XMLHttpRequest,o=Object.entries(n.data).reduce((function(e,t){var n,r=(2,function(e){if(Array.isArray(e))return e}(n=t)||function(e,t){var n=[],r=!0,o=!1,s=void 0;try{for(var i,a=e[Symbol.iterator]();!(r=(i=a.next()).done)&&(n.push(i.value),2!==n.length);r=!0);}catch(e){o=!0,s=e}finally{try{r||null==a.return||a.return()}finally{if(o)throw s}}return n}(n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()),o=r[0],s=r[1];return e.push("".concat(o,"=").concat(s)),e}),[]).join("&");if("POST"===n.method.toUpperCase())r.open(n.method,n.url,n.async),r.setRequestHeader("Content-Type",n["Content-Type"]),r.send(o);else if("GET"===n.method.toUpperCase()){var s=n.url;o&&(s.indexOf("?"),s+="&".concat(o)),r.open(n.method,s,n.async),r.setRequestHeader("Content-Type",n["Content-Type"]),r.send(null)}r.onreadystatechange=function(){if(4===r.readyState&&200===r.status){var e=r.responseText;n["Content-Type"]===t["Content-Type"]&&(e=JSON.parse(e)),n.success&&n.success(e)}else n.failed&&n.failed(r.status)}}},function(e,t,n){var r=n(3);"string"==typeof r&&(r=[[e.i,r,""]]);n(5)(r,{hmr:!0,transform:void 0,insertInto:void 0}),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(4)(!1)).push([e.i,".treejs {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 14px;\n}\n.treejs *:after,\n.treejs *:before {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.treejs > .treejs-node {\n padding-left: 0;\n}\n.treejs .treejs-nodes {\n list-style: none;\n padding-left: 20px;\n overflow: hidden;\n -webkit-transition: height 150ms ease-out, opacity 150ms ease-out;\n -o-transition: height 150ms ease-out, opacity 150ms ease-out;\n transition: height 150ms ease-out, opacity 150ms ease-out;\n}\n.treejs .treejs-node {\n cursor: pointer;\n overflow: hidden;\n}\n.treejs .treejs-node.treejs-placeholder {\n padding-left: 20px;\n}\n.treejs .treejs-switcher {\n display: inline-block;\n vertical-align: middle;\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n -webkit-transition: -webkit-transform 150ms ease-out;\n transition: -webkit-transform 150ms ease-out;\n -o-transition: transform 150ms ease-out;\n transition: transform 150ms ease-out;\n transition: transform 150ms ease-out, -webkit-transform 150ms ease-out;\n}\n.treejs .treejs-switcher:before {\n position: absolute;\n top: 8px;\n left: 6px;\n display: block;\n content: ' ';\n border: 4px solid transparent;\n border-top: 4px solid rgba(0, 0, 0, 0.4);\n -webkit-transition: border-color 150ms;\n -o-transition: border-color 150ms;\n transition: border-color 150ms;\n}\n.treejs .treejs-switcher:hover:before {\n border-top: 4px solid rgba(0, 0, 0, 0.65);\n}\n.treejs .treejs-node__close > .treejs-switcher {\n -webkit-transform: rotate(-90deg);\n -ms-transform: rotate(-90deg);\n transform: rotate(-90deg);\n}\n.treejs .treejs-node__close > .treejs-nodes {\n height: 0;\n}\n.treejs .treejs-checkbox {\n display: inline-block;\n vertical-align: middle;\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n}\n.treejs .treejs-checkbox:before {\n -webkit-transition: all 0.3s;\n -o-transition: all 0.3s;\n transition: all 0.3s;\n cursor: pointer;\n position: absolute;\n top: 2px;\n content: ' ';\n display: block;\n width: 16px;\n height: 16px;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n}\n.treejs .treejs-checkbox:hover:before {\n -webkit-box-shadow: 0 0 2px 1px #1890ff;\n box-shadow: 0 0 2px 1px #1890ff;\n}\n.treejs .treejs-node__checked > .treejs-checkbox:before {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.treejs .treejs-node__checked > .treejs-checkbox:after {\n position: absolute;\n content: ' ';\n display: block;\n top: 4px;\n left: 5px;\n width: 5px;\n height: 9px;\n border: 2px solid #fff;\n border-top: none;\n border-left: none;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n}\n.treejs .treejs-node__halfchecked > .treejs-checkbox:before {\n background-color: #1890ff;\n border-color: #1890ff;\n}\n.treejs .treejs-node__halfchecked > .treejs-checkbox:after {\n position: absolute;\n content: ' ';\n display: block;\n top: 9px;\n left: 3px;\n width: 10px;\n height: 2px;\n background-color: #fff;\n}\n.treejs .treejs-node__disabled {\n cursor: not-allowed;\n color: rgba(0, 0, 0, 0.25);\n}\n.treejs .treejs-node__disabled .treejs-checkbox {\n cursor: not-allowed;\n}\n.treejs .treejs-node__disabled .treejs-checkbox:before {\n cursor: not-allowed;\n border-color: #d9d9d9 !important;\n background-color: #f5f5f5 !important;\n}\n.treejs .treejs-node__disabled .treejs-checkbox:hover:before {\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n}\n.treejs .treejs-node__disabled .treejs-node__checked > .treejs-checkbox:after {\n border-color: #d9d9d9;\n}\n.treejs .treejs-node__disabled .treejs-node__halfchecked > .treejs-checkbox:after {\n background-color: #d9d9d9;\n}\n.treejs .treejs-node__disabled.treejs-node__checked > .treejs-checkbox:after {\n border-color: #d9d9d9;\n}\n.treejs .treejs-node__disabled.treejs-node__halfchecked > .treejs-checkbox:after {\n background-color: #d9d9d9;\n}\n.treejs .treejs-label {\n vertical-align: middle;\n}\n",""])},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n,r=e[1]||"",o=e[3];if(!o)return r;if(t&&"function"==typeof btoa){var s=(n=o,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */"),i=o.sources.map((function(e){return"/*# sourceURL="+o.sourceRoot+e+" */"}));return[r].concat(i).concat([s]).join("\n")}return[r].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n})).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o=0&&c.splice(t,1)}function y(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),v(t,e.attrs),h(e,t),t}function v(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function m(e,t){var n,r,o,s;if(t.transform&&e.css){if(!(s=t.transform(e.css)))return function(){};e.css=s}if(t.singleton){var i=l++;n=d||(d=y(t)),r=w.bind(null,n,i,!1),o=w.bind(null,n,i,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",v(t,e.attrs),h(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,s=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||s)&&(r=u(r)),o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var i=new Blob([r],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(i),a&&URL.revokeObjectURL(a)}.bind(null,n,t),o=function(){b(n),n.href&&URL.revokeObjectURL(n.href)}):(n=y(t),r=function(e,t){var n=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){b(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=i()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=p(e,t);return f(n,t),function(e){for(var r=[],o=0;o{e.exports=n(6167)}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";const e=jQuery;var t=n.n(e);Shiny;var r=n(3933),o=n.n(r);function s(e,t){try{const n=e.liElementsById[t.parent.id];n.classList.contains("treejs-node__close")||n.getElementsByClassName("treejs-switcher")[0].click()}catch(e){return}t.hasOwnProperty("parent")&&s(e,t.parent)}function i(e,t,n){var r=n;const o=e.liElementsById[t.id];if(o.classList.contains("treejs-node__close")){var s=o.getElementsByClassName("treejs-switcher")[0];s&&s.click()}if(r>0&&t.hasOwnProperty("children")){r-=1;for(let n of t.children)i(e,n,r)}}var a=new Shiny.InputBinding;t().extend(a,{store:[],updateStore:(e,t)=>{a.store[e.id]=t},find:e=>t()(e).find(".tree-widget"),getType:e=>"all"==t()(e).attr("data-return")?"sw.tree.all":"sw.tree",getValue:e=>{var n=a.store[e.id].selectedNodes;return n.length<1?null:("text"==t()(e).attr("data-return")?n=n.map((e=>{if(2==e.status)return e.text[0]})):"id"==t()(e).attr("data-return")&&(n=n.map((e=>{if(2==e.status)return e.id[0]}))),n)},setValue:(e,t)=>{var n=a.store[e.id],r=n.nodesById,o=Object.entries(r).map((e=>t.toString()===e[1].id[0].toString()||t.includes(e[1].text[0])?e[1].id[0]:null));o=o.filter((e=>null!==e)),n.values=o},subscribe:(e,n)=>{t()(e).on("change.treeWidgetBinding",(function(e){n()}))},unsubscribe:e=>{t()(e).off(".treeWidgetBinding")},receiveMessage:(e,n)=>{if(n.hasOwnProperty("label")){var r=t()("#"+e.id+"-label");!function(e,t){if(void 0!==e){if(1!==t.length)throw new Error("labelNode must be of length 1");Array.isArray(e)&&0===e.length?t.addClass("shiny-label-null"):(t.text(e),t.removeClass("shiny-label-null"))}}(n.label,r)}n.hasOwnProperty("values")&&a.setValue(e,n.values)},initialize:e=>{var n=e.querySelector('script[data-for="'+e.id+'"]'),r=JSON.parse(n.text),d=null!==typeof r.closeDepth?r.closeDepth-1:0;r.closeDepth=1,r.onChange=function(){t()(e).trigger("change")},r.loaded=function(){t()(e).find(".treejs-nodes").first().css("padding-left",0)};const l=new(o())("#"+e.id,r);a.updateStore(e,l),r.hasOwnProperty("values")&&a.setValue(e,r.values),function(e){const t=e.leafNodesById;for(let n in t)s(e,t[n])}(l),setTimeout((function(){if(d>=0)for(let e of l.treeNodes)i(l,e,d)}),250)}}),Shiny.inputBindings.register(a,"shinyWidgets.treeWidgetBinding")})()})(); \ No newline at end of file diff --git a/man/treeInput.Rd b/man/treeInput.Rd index 89b32bf2..67230b3d 100644 --- a/man/treeInput.Rd +++ b/man/treeInput.Rd @@ -64,7 +64,7 @@ ui <- fluidPage( inputId = "ID1", label = "Select cities:", choices = create_tree(cities), - # selected = "San Francisco", + selected = "San Francisco", returnValue = "text", closeDepth = 0 ), @@ -76,7 +76,7 @@ ui <- fluidPage( inputId = "ID2", label = "Select cities:", choices = create_tree(cities), - # selected = "San Francisco", + selected = "San Francisco", returnValue = "text", closeDepth = 1 ), @@ -88,7 +88,7 @@ ui <- fluidPage( inputId = "ID3", label = "Select cities:", choices = create_tree(cities), - # selected = "San Francisco", + selected = c("San Francisco", "Monastir"), returnValue = "text", closeDepth = 2 ), diff --git a/man/updateTreeInput.Rd b/man/updateTreeInput.Rd index da19388c..aa4b13c9 100644 --- a/man/updateTreeInput.Rd +++ b/man/updateTreeInput.Rd @@ -90,17 +90,21 @@ server <- function(input, output, session) { updateTreeInput(inputId = "ID1", label = input$label) ) - observe( + observeEvent( + input$val_country, updateTreeInput(inputId = "ID1", selected = input$val_country) ) - observe( + observeEvent( + input$val_city, updateTreeInput(inputId = "ID1", selected = input$val_city) ) - observeEvent( - input$clear, - updateTreeInput(inputId = "ID1", selected = character(0)) + observeEvent(input$clear, { + updateTreeInput(inputId = "ID1", selected = character(0)) + updateCheckboxGroupInput(inputId = "val_country", selected = character(0)) + updateCheckboxGroupInput(inputId = "val_city", selected = character(0)) + } ) } diff --git a/srcjs/inputs/tree.js b/srcjs/inputs/tree.js index a49e0b67..77d8227f 100644 --- a/srcjs/inputs/tree.js +++ b/srcjs/inputs/tree.js @@ -78,7 +78,9 @@ $.extend(treeWidgetBinding, { var tree = treeWidgetBinding.store[el.id]; var nodesId = tree.nodesById; var checked = Object.entries(nodesId).map((a) => { - if (value.includes(a[1].text[0])) { + if (value.toString() === a[1].id[0].toString()) { + return a[1].id[0]; + } else if (value.includes(a[1].text[0])) { return a[1].id[0]; } else { return null;