{"version":3,"file":"VTreeviewNode.mjs","names":["VExpandTransition","VIcon","inject","RegistrableInject","Colorable","mixins","getObjectValueByPath","createRange","baseMixins","VTreeviewNodeProps","activatable","Boolean","activeClass","type","String","default","color","disablePerNode","expandIcon","indeterminateIcon","itemChildren","itemDisabled","itemKey","itemText","loadChildren","Function","loadingIcon","offIcon","onIcon","openOnClick","rounded","selectable","selectedColor","shaped","transition","selectionType","validator","v","includes","VTreeviewNode","extend","name","treeview","props","level","Number","item","Object","parentIsDisabled","data","hasLoaded","isActive","isIndeterminate","isLoading","isOpen","isSelected","computed","disabled","key","children","filter","child","isExcluded","text","scopedProps","leaf","selected","indeterminate","active","open","computedIcon","hasChildren","length","created","register","beforeDestroy","unregister","methods","checkChildren","Promise","resolve","then","updateOpen","emitOpen","genLabel","$scopedSlots","label","push","$createElement","slot","staticClass","genPrependSlot","prepend","genAppendSlot","append","genContent","genToggle","class","on","click","e","stopPropagation","genCheckbox","undefined","$nextTick","updateSelected","emitSelected","genLevel","map","genNode","unshift","setTextColor","updateActive","emitActive","genChild","scopedSlots","genChildrenWrapper","c","genTransition","render","h","attrs"],"sources":["../../../src/components/VTreeview/VTreeviewNode.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Components\nimport { VExpandTransition } from '../transitions'\nimport { VIcon } from '../VIcon'\nimport VTreeview from './VTreeview'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getObjectValueByPath, createRange } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VTreeViewInstance = InstanceType<typeof VTreeview>\n\nconst baseMixins = mixins(\n  Colorable,\n  RegistrableInject('treeview')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  treeview: VTreeViewInstance\n}\n\nexport const VTreeviewNodeProps = {\n  activatable: Boolean,\n  activeClass: {\n    type: String,\n    default: 'v-treeview-node--active',\n  },\n  color: {\n    type: String,\n    default: 'primary',\n  },\n  disablePerNode: Boolean,\n  expandIcon: {\n    type: String,\n    default: '$subgroup',\n  },\n  indeterminateIcon: {\n    type: String,\n    default: '$checkboxIndeterminate',\n  },\n  itemChildren: {\n    type: String,\n    default: 'children',\n  },\n  itemDisabled: {\n    type: String,\n    default: 'disabled',\n  },\n  itemKey: {\n    type: String,\n    default: 'id',\n  },\n  itemText: {\n    type: String,\n    default: 'name',\n  },\n  loadChildren: Function as PropType<(item: any) => Promise<void>>,\n  loadingIcon: {\n    type: String,\n    default: '$loading',\n  },\n  offIcon: {\n    type: String,\n    default: '$checkboxOff',\n  },\n  onIcon: {\n    type: String,\n    default: '$checkboxOn',\n  },\n  openOnClick: Boolean,\n  rounded: Boolean,\n  selectable: Boolean,\n  selectedColor: {\n    type: String,\n    default: 'accent',\n  },\n  shaped: Boolean,\n  transition: Boolean,\n  selectionType: {\n    type: String as PropType<'leaf' | 'independent'>,\n    default: 'leaf',\n    validator: (v: string) => ['leaf', 'independent'].includes(v),\n  },\n}\n\n/* @vue/component */\nconst VTreeviewNode = baseMixins.extend<options>().extend({\n  name: 'v-treeview-node',\n\n  inject: {\n    treeview: {\n      default: null,\n    },\n  },\n\n  props: {\n    level: Number,\n    item: {\n      type: Object,\n      default: () => null,\n    } as PropValidator<Record<string, unknown> | null>,\n    parentIsDisabled: Boolean,\n    ...VTreeviewNodeProps,\n  },\n\n  data: () => ({\n    hasLoaded: false,\n    isActive: false, // Node is selected (row)\n    isIndeterminate: false, // Node has at least one selected child\n    isLoading: false,\n    isOpen: false, // Node is open/expanded\n    isSelected: false, // Node is selected (checkbox)\n  }),\n\n  computed: {\n    disabled (): boolean {\n      return (\n        getObjectValueByPath(this.item, this.itemDisabled) ||\n        (!this.disablePerNode && (this.parentIsDisabled && this.selectionType === 'leaf'))\n      )\n    },\n    key (): string {\n      return getObjectValueByPath(this.item, this.itemKey)\n    },\n    children (): any[] | null {\n      const children = getObjectValueByPath(this.item, this.itemChildren)\n      return children && children.filter((child: any) => !this.treeview.isExcluded(getObjectValueByPath(child, this.itemKey)))\n    },\n    text (): string {\n      return getObjectValueByPath(this.item, this.itemText)\n    },\n    scopedProps (): object {\n      return {\n        item: this.item,\n        leaf: !this.children,\n        selected: this.isSelected,\n        indeterminate: this.isIndeterminate,\n        active: this.isActive,\n        open: this.isOpen,\n      }\n    },\n    computedIcon (): string {\n      if (this.isIndeterminate) return this.indeterminateIcon\n      else if (this.isSelected) return this.onIcon\n      else return this.offIcon\n    },\n    hasChildren (): boolean {\n      return !!this.children && (!!this.children.length || !!this.loadChildren)\n    },\n  },\n\n  created () {\n    this.treeview.register(this)\n  },\n\n  beforeDestroy () {\n    this.treeview.unregister(this)\n  },\n\n  methods: {\n    checkChildren (): Promise<void> {\n      return new Promise<void>(resolve => {\n        // TODO: Potential issue with always trying\n        // to load children if response is empty?\n        if (!this.children || this.children.length || !this.loadChildren || this.hasLoaded) return resolve()\n\n        this.isLoading = true\n        resolve(this.loadChildren(this.item))\n      }).then(() => {\n        this.isLoading = false\n        this.hasLoaded = true\n      })\n    },\n    open () {\n      this.isOpen = !this.isOpen\n      this.treeview.updateOpen(this.key, this.isOpen)\n      this.treeview.emitOpen()\n    },\n    genLabel () {\n      const children = []\n\n      if (this.$scopedSlots.label) children.push(this.$scopedSlots.label(this.scopedProps))\n      else children.push(this.text)\n\n      return this.$createElement('div', {\n        slot: 'label',\n        staticClass: 'v-treeview-node__label',\n      }, children)\n    },\n    genPrependSlot () {\n      if (!this.$scopedSlots.prepend) return null\n\n      return this.$createElement('div', {\n        staticClass: 'v-treeview-node__prepend',\n      }, this.$scopedSlots.prepend(this.scopedProps))\n    },\n    genAppendSlot () {\n      if (!this.$scopedSlots.append) return null\n\n      return this.$createElement('div', {\n        staticClass: 'v-treeview-node__append',\n      }, this.$scopedSlots.append(this.scopedProps))\n    },\n    genContent () {\n      const children = [\n        this.genPrependSlot(),\n        this.genLabel(),\n        this.genAppendSlot(),\n      ]\n\n      return this.$createElement('div', {\n        staticClass: 'v-treeview-node__content',\n      }, children)\n    },\n    genToggle () {\n      return this.$createElement(VIcon, {\n        staticClass: 'v-treeview-node__toggle',\n        class: {\n          'v-treeview-node__toggle--open': this.isOpen,\n          'v-treeview-node__toggle--loading': this.isLoading,\n        },\n        slot: 'prepend',\n        on: {\n          click: (e: MouseEvent) => {\n            e.stopPropagation()\n\n            if (this.isLoading) return\n\n            this.checkChildren().then(() => this.open())\n          },\n        },\n      }, [this.isLoading ? this.loadingIcon : this.expandIcon])\n    },\n    genCheckbox () {\n      return this.$createElement(VIcon, {\n        staticClass: 'v-treeview-node__checkbox',\n        props: {\n          color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined,\n          disabled: this.disabled,\n        },\n        on: {\n          click: (e: MouseEvent) => {\n            e.stopPropagation()\n\n            if (this.isLoading) return\n\n            this.checkChildren().then(() => {\n              // We nextTick here so that items watch in VTreeview has a chance to run first\n              this.$nextTick(() => {\n                this.isSelected = !this.isSelected\n                this.isIndeterminate = false\n\n                this.treeview.updateSelected(this.key, this.isSelected)\n                this.treeview.emitSelected()\n              })\n            })\n          },\n        },\n      }, [this.computedIcon])\n    },\n    genLevel (level: number) {\n      return createRange(level).map(() => this.$createElement('div', {\n        staticClass: 'v-treeview-node__level',\n      }))\n    },\n    genNode () {\n      const children = [this.genContent()]\n\n      if (this.selectable) children.unshift(this.genCheckbox())\n\n      if (this.hasChildren) {\n        children.unshift(this.genToggle())\n      } else {\n        children.unshift(...this.genLevel(1))\n      }\n\n      children.unshift(...this.genLevel(this.level))\n\n      return this.$createElement('div', this.setTextColor(this.isActive && this.color, {\n        staticClass: 'v-treeview-node__root',\n        class: {\n          [this.activeClass]: this.isActive,\n        },\n        on: {\n          click: () => {\n            if (this.openOnClick && this.hasChildren) {\n              this.checkChildren().then(this.open)\n            } else if (this.activatable && !this.disabled) {\n              this.isActive = !this.isActive\n              this.treeview.updateActive(this.key, this.isActive)\n              this.treeview.emitActive()\n            }\n          },\n        },\n      }), children)\n    },\n    genChild (item: any, parentIsDisabled: boolean) {\n      return this.$createElement(VTreeviewNode, {\n        key: getObjectValueByPath(item, this.itemKey),\n        props: {\n          activatable: this.activatable,\n          activeClass: this.activeClass,\n          item,\n          selectable: this.selectable,\n          selectedColor: this.selectedColor,\n          color: this.color,\n          disablePerNode: this.disablePerNode,\n          expandIcon: this.expandIcon,\n          indeterminateIcon: this.indeterminateIcon,\n          offIcon: this.offIcon,\n          onIcon: this.onIcon,\n          loadingIcon: this.loadingIcon,\n          itemKey: this.itemKey,\n          itemText: this.itemText,\n          itemDisabled: this.itemDisabled,\n          itemChildren: this.itemChildren,\n          loadChildren: this.loadChildren,\n          transition: this.transition,\n          openOnClick: this.openOnClick,\n          rounded: this.rounded,\n          shaped: this.shaped,\n          level: this.level + 1,\n          selectionType: this.selectionType,\n          parentIsDisabled,\n        },\n        scopedSlots: this.$scopedSlots,\n      })\n    },\n    genChildrenWrapper () {\n      if (!this.isOpen || !this.children) return null\n\n      const children = [this.children.map(c => this.genChild(c, this.disabled))]\n\n      return this.$createElement('div', {\n        staticClass: 'v-treeview-node__children',\n      }, children)\n    },\n    genTransition () {\n      return this.$createElement(VExpandTransition, [this.genChildrenWrapper()])\n    },\n  },\n\n  render (h): VNode {\n    const children: VNodeChildren = [this.genNode()]\n\n    if (this.transition) children.push(this.genTransition())\n    else children.push(this.genChildrenWrapper())\n\n    return h('div', {\n      staticClass: 'v-treeview-node',\n      class: {\n        'v-treeview-node--leaf': !this.hasChildren,\n        'v-treeview-node--click': this.openOnClick,\n        'v-treeview-node--disabled': this.disabled,\n        'v-treeview-node--rounded': this.rounded,\n        'v-treeview-node--shaped': this.shaped,\n        'v-treeview-node--selected': this.isSelected,\n      },\n      attrs: {\n        'aria-expanded': String(this.isOpen),\n      },\n    }, children)\n  },\n})\n\nexport default VTreeviewNode\n"],"mappings":"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"}