{"version":3,"file":"index.jsx","sourceRoot":"lib/","sources":["widgets/NodePathWidget/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAO1C,MAAM,CAAC,IAAM,cAAc,GAAG,eAAe,CAAC;IAC5C,KAAK,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;IAClC,KAAK,YAAC,KAAK;QACT,IAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACrD,IAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACpD,IAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;QAExC,OAAO;;YACL,IAAI,CAAC,WAAW,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAA;YACnC,IAAM,QAAQ,GAAG,MAAA,KAAK,CAAC,QAAQ,mCAAI,CAAC,CAAA;YACpC,IAAM,KAAK,GAAG,WAAW,CAAC,KAAK;iBAC5B,UAAU,EAAE;iBACZ,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;iBACtB,OAAO,EAAE;iBACT,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAC5B,OAAO,CACL,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CACjC;UAAA,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,GAAG;oBACnB,OAAO,CACL,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CACvB;gBAAA,CAAC,GAAG,KAAK,CAAC,IAAI,CACZ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAG,CAC/D,CACD;gBAAA,CAAC,CAAC,CACA,IAAI,CAAC,EAAE,CACP,YAAY,CAAC,CAAC;4BACZ,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;wBAC/B,CAAC,CAAC,CACF,OAAO,CAAC,CAAC,UAAC,CAAC;4BACT,CAAC,CAAC,eAAe,EAAE,CAAA;4BACnB,CAAC,CAAC,cAAc,EAAE,CAAA;4BAClB,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;wBACjC,CAAC,CAAC,CAEF;kBAAA,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EACtC;gBAAA,EAAE,CAAC,CACL;cAAA,EAAE,cAAc,CAAC,CAClB,CAAA;gBACH,CAAC,CAAC,CACJ;QAAA,EAAE,UAAU,CAAC,CACd,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { Breadcrumb, BreadcrumbItem } from '@gaoding/gd-antd-plus'\nimport { useCurrentNode, useSelection, usePrefix, useHover } from '../../hooks'\nimport { IconWidget } from '../IconWidget'\nimport { NodeTitleWidget } from '../NodeTitleWidget'\nimport './styles.less'\nimport { defineComponent } from 'vue-demi'\n\nexport interface INodePathWidgetProps {\n  workspaceId?: string\n  maxItems?: number\n}\n\nexport const NodePathWidget = defineComponent({\n  props: ['workspaceId', 'maxItems'],\n  setup(props) {\n    const selectedRef = useCurrentNode(props.workspaceId)\n    const selectionRef = useSelection(props.workspaceId)\n    const hoverRef = useHover(props.workspaceId)\n    const prefixRef = usePrefix('node-path')\n\n    return () => {\n      if (!selectedRef.value) return null\n      const maxItems = props.maxItems ?? 3\n      const nodes = selectedRef.value\n        .getParents()\n        .slice(0, maxItems - 1)\n        .reverse()\n        .concat(selectedRef.value)\n      return (\n        <Breadcrumb class={prefixRef.value}>\n          {nodes.map((node, key) => {\n            return (\n              <BreadcrumbItem key={key}>\n                {key === 0 && (\n                  <IconWidget infer=\"Position\" style={{ marginRight: '3px' }} />\n                )}\n                <a\n                  href=\"\"\n                  onMouseenter={() => {\n                    hoverRef.value.setHover(node)\n                  }}\n                  onClick={(e) => {\n                    e.stopPropagation()\n                    e.preventDefault()\n                    selectionRef.value.select(node)\n                  }}\n                >\n                  <NodeTitleWidget {...{ node: node }} />\n                </a>\n              </BreadcrumbItem>\n            )\n          })}\n        </Breadcrumb>\n      )\n    }\n  },\n})\n"]}