{"version":3,"file":"index.jsx","sourceRoot":"lib/","sources":["widgets/NodePathWidget/index.tsx"],"names":[],"mappings":";;;AAAA,sDAAkE;AAClE,qCAA+E;AAC/E,4CAA0C;AAC1C,sDAAoD;AACpD,yBAAsB;AACtB,qCAA0C;AAO7B,QAAA,cAAc,GAAG,IAAA,0BAAe,EAAC;IAC5C,KAAK,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;IAClC,KAAK,YAAC,KAAK;QACT,IAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACrD,IAAM,YAAY,GAAG,IAAA,oBAAY,EAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACpD,IAAM,QAAQ,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,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,yBAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CACjC;UAAA,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,GAAG;oBACnB,OAAO,CACL,CAAC,6BAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CACvB;gBAAA,CAAC,GAAG,KAAK,CAAC,IAAI,CACZ,CAAC,uBAAU,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,iCAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EACtC;gBAAA,EAAE,CAAC,CACL;cAAA,EAAE,6BAAc,CAAC,CAClB,CAAA;gBACH,CAAC,CAAC,CACJ;QAAA,EAAE,yBAAU,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"]}