From 19a161a20eceb5db3423b3d4a983cf72ee7721e4 Mon Sep 17 00:00:00 2001 From: tuj84257 <67998287+tuj84257@users.noreply.github.com> Date: Thu, 24 Mar 2022 22:09:51 -0400 Subject: [PATCH 1/3] #5 Added `collapseAll` method For example, calling `tree.collapseAll();` collapses the entire tree. --- dist/tree.js | 20 ++++++++++++++++++++ dist/tree.js.map | 2 +- dist/tree.min.js | 2 +- dist/tree.min.js.map | 2 +- src/index.js | 20 ++++++++++++++++++++ 5 files changed, 43 insertions(+), 3 deletions(-) diff --git a/dist/tree.js b/dist/tree.js index 2e0c23d..2f9e981 100644 --- a/dist/tree.js +++ b/dist/tree.js @@ -159,6 +159,17 @@ function animation(duration, callback) { }); } +function collapseFromLeaf(tree, leafNode) { + try { + var nodeLiElement = tree.liElementsById[leafNode.parent.id]; + if (!nodeLiElement.classList.contains('treejs-node__close')) nodeLiElement.getElementsByClassName('treejs-switcher')[0].click(); + } catch (error) { + return; + } + + if (leafNode.hasOwnProperty('parent')) collapseFromLeaf(tree, leafNode.parent); +} + function Tree(container, options) { var _this = this; @@ -596,6 +607,15 @@ Tree.prototype.updateLiElement = function (node) { } }; +Tree.prototype.collapseAll = function () { + var leafNodesById = this.leafNodesById; + + for (var id in leafNodesById) { + var leafNode = leafNodesById[id]; + collapseFromLeaf(this, leafNode); + } +}; + Tree.parseTreeData = function (data) { var treeNodes = deepClone(data); var nodesById = {}; diff --git a/dist/tree.js.map b/dist/tree.js.map index e35b6bc..fdea522 100644 --- a/dist/tree.js.map +++ b/dist/tree.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://Tree/webpack/universalModuleDefinition","webpack://Tree/webpack/bootstrap","webpack://Tree/./src/index.js","webpack://Tree/./src/ajax.js","webpack://Tree/./src/index.less?f0a1","webpack://Tree/./src/index.less","webpack://Tree/./node_modules/css-loader/lib/css-base.js","webpack://Tree/./node_modules/style-loader/lib/addStyles.js","webpack://Tree/./node_modules/style-loader/lib/urls.js"],"names":["deepClone","obj","JSON","parse","stringify","uniq","arr","map","reduce","acc","item","push","empty","ele","firstChild","removeChild","animation","duration","callback","requestAnimationFrame","enter","active","setTimeout","leave","Tree","container","options","defaultOptions","selectMode","values","disables","beforeLoad","loaded","url","method","closeDepth","treeNodes","nodesById","leafNodesById","liElementsById","willUpdateNodesById","Object","assign","defineProperties","get","getValues","set","setValues","getDisables","setDisables","selectedNodes","nodes","id","hasOwnProperty","status","node","parent","children","disabledNodes","disabled","load","init","data","prototype","console","time","parseTreeData","defaultValues","defaultDisables","render","length","call","timeEnd","success","result","treeEle","createRootEle","appendChild","buildTree","bindEvent","document","querySelector","depth","rootUlEle","createUlEle","forEach","liEle","createLiEle","ulEle","addEventListener","target","e","nodeName","classList","contains","onItemClick","parentNode","nodeId","onSwitcherClick","onChange","setValue","updateLiElements","value","prevStatus","markWillUpdateNode","walkUp","walkDown","emptyNodesCheckStatus","setDisable","prevDisabled","emptyNodesDisable","getSelectedNodesById","getDisabledNodesById","entries","updateLiElement","lastChild","height","scrollHeight","style","opacity","remove","add","changeState","pStatus","statusCount","child","isNaN","pDisabled","walkTree","checked","div","createElement","ul","closed","li","switcher","checkbox","label","text","createTextNode","_options","async","failed","xhr","XMLHttpRequest","postData","key","join","toUpperCase","open","setRequestHeader","send","indexOf","onreadystatechange","readyState","res","responseText"],"mappings":"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AG,gFAAgF,0BAA0B,GAAG,oFAAoF,8BAA8B,GAAG,yBAAyB,2BAA2B,GAAG;;AAE7kI;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;AC3EA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;AC1XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA","file":"tree.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Tree\"] = factory();\n\telse\n\t\troot[\"Tree\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import ajax from './ajax';\nimport './index.less';\n\nfunction deepClone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\nfunction uniq(arr) {\n const map = {};\n return arr.reduce((acc, item) => {\n if (!map[item]) {\n map[item] = true;\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\nfunction empty(ele) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild);\n }\n}\n\nfunction animation(duration, callback) {\n requestAnimationFrame(() => {\n callback.enter();\n requestAnimationFrame(() => {\n callback.active();\n setTimeout(() => {\n callback.leave();\n }, duration);\n });\n });\n}\n\nexport default function Tree(container, options) {\n const defaultOptions = {\n selectMode: 'checkbox',\n values: [],\n disables: [],\n beforeLoad: null,\n loaded: null,\n url: null,\n method: 'GET',\n closeDepth: null,\n };\n this.treeNodes = [];\n this.nodesById = {};\n this.leafNodesById = {};\n this.liElementsById = {};\n this.willUpdateNodesById = {};\n this.container = container;\n this.options = Object.assign(defaultOptions, options);\n\n Object.defineProperties(this, {\n values: {\n get() {\n return this.getValues();\n },\n set(values) {\n return this.setValues(uniq(values));\n },\n },\n disables: {\n get() {\n return this.getDisables();\n },\n set(values) {\n return this.setDisables(uniq(values));\n },\n },\n selectedNodes: {\n get() {\n let nodes = [];\n let nodesById = this.nodesById;\n for (let id in nodesById) {\n if (\n nodesById.hasOwnProperty(id) &&\n (nodesById[id].status === 1 || nodesById[id].status === 2)\n ) {\n const node = Object.assign({}, nodesById[id]);\n delete node.parent;\n delete node.children;\n nodes.push(node);\n }\n }\n return nodes;\n },\n },\n disabledNodes: {\n get() {\n let nodes = [];\n let nodesById = this.nodesById;\n for (let id in nodesById) {\n if (nodesById.hasOwnProperty(id) && nodesById[id].disabled) {\n let node = Object.assign({}, nodesById[id]);\n delete node.parent;\n nodes.push(node);\n }\n }\n return nodes;\n },\n },\n });\n\n if (this.options.url) {\n this.load(data => {\n this.init(data);\n });\n } else {\n this.init(this.options.data);\n }\n}\n\nTree.prototype.init = function(data) {\n console.time('init');\n let {\n treeNodes,\n nodesById,\n leafNodesById,\n defaultValues,\n defaultDisables,\n } = Tree.parseTreeData(data);\n this.treeNodes = treeNodes;\n this.nodesById = nodesById;\n this.leafNodesById = leafNodesById;\n this.render(this.treeNodes);\n const {values, disables, loaded} = this.options;\n if (values && values.length) defaultValues = values;\n defaultValues.length && this.setValues(defaultValues);\n if (disables && disables.length) defaultDisables = disables;\n defaultDisables.length && this.setDisables(defaultDisables);\n loaded && loaded.call(this);\n console.timeEnd('init');\n};\n\nTree.prototype.load = function(callback) {\n console.time('load');\n const {url, method, beforeLoad} = this.options;\n ajax({\n url,\n method,\n success: result => {\n let data = result;\n console.timeEnd('load');\n if (beforeLoad) {\n data = beforeLoad(result);\n }\n callback(data);\n },\n });\n};\n\nTree.prototype.render = function(treeNodes) {\n const treeEle = Tree.createRootEle();\n treeEle.appendChild(this.buildTree(treeNodes, 0));\n this.bindEvent(treeEle);\n const ele = document.querySelector(this.container);\n empty(ele);\n ele.appendChild(treeEle);\n};\n\nTree.prototype.buildTree = function(nodes, depth) {\n const rootUlEle = Tree.createUlEle();\n if (nodes && nodes.length) {\n nodes.forEach(node => {\n const liEle = Tree.createLiEle(\n node,\n depth === this.options.closeDepth - 1\n );\n this.liElementsById[node.id] = liEle;\n let ulEle = null;\n if (node.children && node.children.length) {\n ulEle = this.buildTree(node.children, depth + 1);\n }\n ulEle && liEle.appendChild(ulEle);\n rootUlEle.appendChild(liEle);\n });\n }\n return rootUlEle;\n};\n\nTree.prototype.bindEvent = function(ele) {\n ele.addEventListener(\n 'click',\n e => {\n const {target} = e;\n if (\n target.nodeName === 'SPAN' &&\n (target.classList.contains('treejs-checkbox') ||\n target.classList.contains('treejs-label'))\n ) {\n this.onItemClick(target.parentNode.nodeId);\n } else if (\n target.nodeName === 'LI' &&\n target.classList.contains('treejs-node')\n ) {\n this.onItemClick(target.nodeId);\n } else if (\n target.nodeName === 'SPAN' &&\n target.classList.contains('treejs-switcher')\n ) {\n this.onSwitcherClick(target);\n }\n },\n false\n );\n};\n\nTree.prototype.onItemClick = function(id) {\n console.time('onItemClick');\n const node = this.nodesById[id];\n const {onChange} = this.options;\n if (!node.disabled) {\n this.setValue(id);\n this.updateLiElements();\n }\n onChange && onChange.call(this);\n console.timeEnd('onItemClick');\n};\n\nTree.prototype.setValue = function(value) {\n const node = this.nodesById[value];\n if (!node) return;\n const prevStatus = node.status;\n const status = prevStatus === 1 || prevStatus === 2 ? 0 : 2;\n node.status = status;\n this.markWillUpdateNode(node);\n this.walkUp(node, 'status');\n this.walkDown(node, 'status');\n};\n\nTree.prototype.getValues = function() {\n const values = [];\n for (let id in this.leafNodesById) {\n if (this.leafNodesById.hasOwnProperty(id)) {\n if (\n this.leafNodesById[id].status === 1 ||\n this.leafNodesById[id].status === 2\n ) {\n values.push(id);\n }\n }\n }\n return values;\n};\n\nTree.prototype.setValues = function(values) {\n this.emptyNodesCheckStatus();\n values.forEach(value => {\n this.setValue(value);\n });\n this.updateLiElements();\n const {onChange} = this.options;\n onChange && onChange.call(this);\n};\n\nTree.prototype.setDisable = function(value) {\n const node = this.nodesById[value];\n if (!node) return;\n const prevDisabled = node.disabled;\n if (!prevDisabled) {\n node.disabled = true;\n this.markWillUpdateNode(node);\n this.walkUp(node, 'disabled');\n this.walkDown(node, 'disabled');\n }\n};\n\nTree.prototype.getDisables = function() {\n const values = [];\n for (let id in this.leafNodesById) {\n if (this.leafNodesById.hasOwnProperty(id)) {\n if (this.leafNodesById[id].disabled) {\n values.push(id);\n }\n }\n }\n return values;\n};\n\nTree.prototype.setDisables = function(values) {\n this.emptyNodesDisable();\n values.forEach(value => {\n this.setDisable(value);\n });\n this.updateLiElements();\n};\n\nTree.prototype.emptyNodesCheckStatus = function() {\n this.willUpdateNodesById = this.getSelectedNodesById();\n Object.values(this.willUpdateNodesById).forEach(node => {\n if (!node.disabled) node.status = 0;\n });\n};\n\nTree.prototype.emptyNodesDisable = function() {\n this.willUpdateNodesById = this.getDisabledNodesById();\n Object.values(this.willUpdateNodesById).forEach(node => {\n node.disabled = false;\n });\n};\n\nTree.prototype.getSelectedNodesById = function() {\n return Object.entries(this.nodesById).reduce((acc, [id, node]) => {\n if (node.status === 1 || node.status === 2) {\n acc[id] = node;\n }\n return acc;\n }, {});\n};\n\nTree.prototype.getDisabledNodesById = function() {\n return Object.entries(this.nodesById).reduce((acc, [id, node]) => {\n if (node.disabled) {\n acc[id] = node;\n }\n return acc;\n }, {});\n};\n\nTree.prototype.updateLiElements = function() {\n Object.values(this.willUpdateNodesById).forEach(node => {\n this.updateLiElement(node);\n });\n this.willUpdateNodesById = {};\n};\n\nTree.prototype.markWillUpdateNode = function(node) {\n this.willUpdateNodesById[node.id] = node;\n};\n\nTree.prototype.onSwitcherClick = function(target) {\n const liEle = target.parentNode;\n const ele = liEle.lastChild;\n const height = ele.scrollHeight;\n if (liEle.classList.contains('treejs-node__close')) {\n animation(150, {\n enter() {\n ele.style.height = 0;\n ele.style.opacity = 0;\n },\n active() {\n ele.style.height = `${height}px`;\n ele.style.opacity = 1;\n },\n leave() {\n ele.style.height = '';\n ele.style.opacity = '';\n liEle.classList.remove('treejs-node__close');\n },\n });\n } else {\n animation(150, {\n enter() {\n ele.style.height = `${height}px`;\n ele.style.opacity = 1;\n },\n active() {\n ele.style.height = 0;\n ele.style.opacity = 0;\n },\n leave() {\n ele.style.height = '';\n ele.style.opacity = '';\n liEle.classList.add('treejs-node__close');\n },\n });\n }\n};\n\nTree.prototype.walkUp = function(node, changeState) {\n const {parent} = node;\n if (parent) {\n if (changeState === 'status') {\n let pStatus = null;\n const statusCount = parent.children.reduce((acc, child) => {\n if (!isNaN(child.status)) return acc + child.status;\n return acc;\n }, 0);\n if (statusCount) {\n pStatus = statusCount === parent.children.length * 2 ? 2 : 1;\n } else {\n pStatus = 0;\n }\n if (parent.status === pStatus) return;\n parent.status = pStatus;\n } else {\n const pDisabled = parent.children.reduce(\n (acc, child) => acc && child.disabled,\n true\n );\n if (parent.disabled === pDisabled) return;\n parent.disabled = pDisabled;\n }\n this.markWillUpdateNode(parent);\n this.walkUp(parent, changeState);\n }\n};\n\nTree.prototype.walkDown = function(node, changeState) {\n if (node.children && node.children.length) {\n node.children.forEach(child => {\n if (changeState === 'status' && child.disabled) return;\n child[changeState] = node[changeState];\n this.markWillUpdateNode(child);\n this.walkDown(child, changeState);\n });\n }\n};\n\nTree.prototype.updateLiElement = function(node) {\n const {classList} = this.liElementsById[node.id];\n switch (node.status) {\n case 0:\n classList.remove('treejs-node__halfchecked', 'treejs-node__checked');\n break;\n case 1:\n classList.remove('treejs-node__checked');\n classList.add('treejs-node__halfchecked');\n break;\n case 2:\n classList.remove('treejs-node__halfchecked');\n classList.add('treejs-node__checked');\n break;\n }\n\n switch (node.disabled) {\n case true:\n if (!classList.contains('treejs-node__disabled'))\n classList.add('treejs-node__disabled');\n break;\n case false:\n if (classList.contains('treejs-node__disabled'))\n classList.remove('treejs-node__disabled');\n break;\n }\n};\n\nTree.parseTreeData = function(data) {\n const treeNodes = deepClone(data);\n const nodesById = {};\n const leafNodesById = {};\n const values = [];\n const disables = [];\n const walkTree = function(nodes, parent) {\n nodes.forEach(node => {\n nodesById[node.id] = node;\n if (node.checked) values.push(node.id);\n if (node.disabled) disables.push(node.id);\n if (parent) node.parent = parent;\n if (node.children && node.children.length) {\n walkTree(node.children, node);\n } else {\n leafNodesById[node.id] = node;\n }\n });\n };\n walkTree(treeNodes);\n return {\n treeNodes,\n nodesById,\n leafNodesById,\n defaultValues: values,\n defaultDisables: disables,\n };\n};\n\nTree.createRootEle = function() {\n const div = document.createElement('div');\n div.classList.add('treejs');\n return div;\n};\n\nTree.createUlEle = function() {\n const ul = document.createElement('ul');\n ul.classList.add('treejs-nodes');\n return ul;\n};\n\nTree.createLiEle = function(node, closed) {\n const li = document.createElement('li');\n li.classList.add('treejs-node');\n if (closed) li.classList.add('treejs-node__close');\n if (node.children && node.children.length) {\n const switcher = document.createElement('span');\n switcher.classList.add('treejs-switcher');\n li.appendChild(switcher);\n } else {\n li.classList.add('treejs-placeholder');\n }\n const checkbox = document.createElement('span');\n checkbox.classList.add('treejs-checkbox');\n li.appendChild(checkbox);\n const label = document.createElement('span');\n label.classList.add('treejs-label');\n const text = document.createTextNode(node.text);\n label.appendChild(text);\n li.appendChild(label);\n li.nodeId = node.id;\n return li;\n};\n","export default function(_options) {\n const defaultOptions = {\n method: 'GET',\n url: '',\n async: true,\n success: null,\n failed: null,\n 'Content-Type': 'application/json; charset=utf-8',\n };\n const options = Object.assign(defaultOptions, _options);\n const xhr = new XMLHttpRequest();\n\n const postData = Object.entries(options.data)\n .reduce((acc, [key, value]) => {\n acc.push(`${key}=${value}`);\n return acc;\n }, [])\n .join('&');\n\n if (options.method.toUpperCase() === 'POST') {\n xhr.open(options.method, options.url, options.async);\n xhr.setRequestHeader('Content-Type', options['Content-Type']);\n xhr.send(postData);\n } else if (options.method.toUpperCase() === 'GET') {\n let {url} = options;\n if (postData) {\n if (url.indexOf('?') !== -1) {\n url += `&${postData}`;\n } else {\n url += `&${postData}`;\n }\n }\n xhr.open(options.method, url, options.async);\n xhr.setRequestHeader('Content-Type', options['Content-Type']);\n xhr.send(null);\n }\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4 && xhr.status === 200) {\n let res = xhr.responseText;\n if (options['Content-Type'] === defaultOptions['Content-Type']) {\n res = JSON.parse(res);\n }\n options.success && options.success(res);\n } else {\n options.failed && options.failed(xhr.status);\n }\n };\n}\n","\nvar content = require(\"!!../node_modules/css-loader/index.js!../node_modules/postcss-loader/lib/index.js??ref--5-2!../node_modules/less-loader/dist/cjs.js!./index.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../node_modules/css-loader/index.js!../node_modules/postcss-loader/lib/index.js??ref--5-2!../node_modules/less-loader/dist/cjs.js!./index.less\", function() {\n\t\tvar newContent = require(\"!!../node_modules/css-loader/index.js!../node_modules/postcss-loader/lib/index.js??ref--5-2!../node_modules/less-loader/dist/cjs.js!./index.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".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\", \"\"]);\n\n// exports\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of