{"version":3,"file":"node2.mjs","sources":["../../../../../../packages/components/cascader-panel/src/node.vue"],"sourcesContent":["<template>\n  <li\n    :id=\"`${menuId}-${node.uid}`\"\n    role=\"menuitem\"\n    :aria-haspopup=\"!isLeaf\"\n    :aria-owns=\"isLeaf ? null : menuId\"\n    :aria-expanded=\"inExpandingPath\"\n    :tabindex=\"expandable ? -1 : undefined\"\n    :class=\"[\n      ns.b(),\n      ns.is('selectable', checkStrictly),\n      ns.is('active', node.checked),\n      ns.is('disabled', !expandable),\n      inExpandingPath && 'in-active-path',\n      inCheckedPath && 'in-checked-path',\n    ]\"\n    data-test-name=\"cascader-node\"\n    data-test-variant=\"\"\n    data-test-state=\"\"\n    @mouseenter=\"handleHoverExpand\"\n    @focus=\"handleHoverExpand\"\n    @click=\"handleClick\"\n  >\n    <!-- prefix -->\n    <b-checkbox\n      v-if=\"multiple\"\n      plain\n      :model-value=\"node.checked\"\n      :indeterminate=\"node.indeterminate\"\n      :disabled=\"isDisabled\"\n      @click.stop\n      @update:model-value=\"handleSelectCheck\"\n    />\n    <b-radio\n      v-else-if=\"checkStrictly\"\n      plain\n      :model-value=\"checkedNodeId\"\n      :value=\"node.uid\"\n      :disabled=\"isDisabled\"\n      @update:model-value=\"handleSelectCheck\"\n      @click.stop\n    >\n      <!--\n        Add an empty element to avoid render label,\n        do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485\n      -->\n      <span />\n    </b-radio>\n    <b-icon v-else-if=\"isLeaf && node.checked\" :class=\"ns.e('prefix')\">\n      <check />\n    </b-icon>\n\n    <!-- content -->\n    <node-content />\n\n    <!-- postfix -->\n    <template v-if=\"!isLeaf\">\n      <b-icon v-if=\"node.loading\" :class=\"[ns.is('loading'), ns.e('postfix')]\">\n        <loading />\n      </b-icon>\n      <b-icon v-else :class=\"['action-right', ns.e('postfix')]\">\n        <action-right />\n      </b-icon>\n    </template>\n  </li>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport { computed, defineComponent, inject } from 'vue'\nimport BCheckbox from '@bigin/components/checkbox'\nimport BRadio from '@bigin/components/radio'\nimport BIcon from '@bigin/components/icon'\nimport { useNamespace } from '@bigin/hooks'\nimport { ActionRight, Check, Loading } from '@bigin/icons-vue'\nimport NodeContent from './node-content'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\nimport type { default as CascaderNode } from './node'\n\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n  name: 'BCascaderNode',\n\n  components: {\n    BCheckbox,\n    BRadio,\n    NodeContent,\n    BIcon,\n    Check,\n    Loading,\n    ActionRight,\n  },\n\n  props: {\n    node: {\n      type: Object as PropType<CascaderNode>,\n      required: true,\n    },\n    menuId: String,\n  },\n\n  emits: ['expand'],\n\n  setup(props, { emit }) {\n    const panel = inject(CASCADER_PANEL_INJECTION_KEY)!\n\n    const ns = useNamespace('cascader-node')\n    const isHoverMenu = computed(() => panel.isHoverMenu)\n    const multiple = computed(() => panel.config.multiple)\n    const checkStrictly = computed(() => panel.config.checkStrictly)\n    const checkedNodeId = computed(() => panel.checkedNodes[0]?.uid)\n    const isDisabled = computed(() => props.node.isDisabled)\n    const isLeaf = computed(() => props.node.isLeaf)\n    const expandable = computed(\n      () => (checkStrictly.value && !isLeaf.value) || !isDisabled.value\n    )\n    const inExpandingPath = computed(() => isInPath(panel.expandingNode!))\n    // only useful in check-strictly mode\n    const inCheckedPath = computed(\n      () => checkStrictly.value && panel.checkedNodes.some(isInPath)\n    )\n\n    const isInPath = (node: CascaderNode) => {\n      const { level, uid } = props.node\n      return node?.pathNodes[level - 1]?.uid === uid\n    }\n\n    const doExpand = () => {\n      if (inExpandingPath.value) return\n      panel.expandNode(props.node)\n    }\n\n    const doCheck = (checked: boolean) => {\n      const { node } = props\n      if (checked === node.checked) return\n      panel.handleCheckChange(node, checked)\n    }\n\n    const doLoad = () => {\n      panel.lazyLoad(props.node, () => {\n        if (!isLeaf.value) doExpand()\n      })\n    }\n\n    const handleHoverExpand = (e: Event) => {\n      if (!isHoverMenu.value) return\n      handleExpand()\n      !isLeaf.value && emit('expand', e)\n    }\n\n    const handleExpand = () => {\n      const { node } = props\n      // do not exclude leaf node because the menus expanded might have to reset\n      if (!expandable.value || node.loading) return\n      node.loaded ? doExpand() : doLoad()\n    }\n\n    const handleClick = () => {\n      if (isHoverMenu.value && !isLeaf.value) return\n\n      if (\n        isLeaf.value &&\n        !isDisabled.value &&\n        !checkStrictly.value &&\n        !multiple.value\n      ) {\n        handleCheck(true)\n      } else {\n        handleExpand()\n      }\n    }\n\n    const handleSelectCheck = (checked: boolean) => {\n      if (checkStrictly.value) {\n        doCheck(checked)\n        if (props.node.loaded) {\n          doExpand()\n        }\n      } else {\n        handleCheck(checked)\n      }\n    }\n\n    const handleCheck = (checked: boolean) => {\n      if (!props.node.loaded) {\n        doLoad()\n      } else {\n        doCheck(checked)\n        !checkStrictly.value && doExpand()\n      }\n    }\n\n    return {\n      panel,\n      isHoverMenu,\n      multiple,\n      checkStrictly,\n      checkedNodeId,\n      isDisabled,\n      isLeaf,\n      expandable,\n      inExpandingPath,\n      inCheckedPath,\n      ns,\n      handleHoverExpand,\n      handleExpand,\n      handleClick,\n      handleCheck,\n      handleSelectCheck,\n    }\n  },\n})\n</script>\n"],"names":["_createElementVNode","_createElementBlock","_normalizeClass","_createCommentVNode","_createBlock","_withModifiers","_createVNode","_Fragment"],"mappings":"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"}