"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodePathWidget = void 0;
var gd_antd_plus_1 = require("@gaoding/gd-antd-plus");
var hooks_1 = require("../../hooks");
var IconWidget_1 = require("../IconWidget");
var NodeTitleWidget_1 = require("../NodeTitleWidget");
require("./styles.less");
var vue_demi_1 = require("vue-demi");
exports.NodePathWidget = (0, vue_demi_1.defineComponent)({
    props: ['workspaceId', 'maxItems'],
    setup: function (props) {
        var selectedRef = (0, hooks_1.useCurrentNode)(props.workspaceId);
        var selectionRef = (0, hooks_1.useSelection)(props.workspaceId);
        var hoverRef = (0, hooks_1.useHover)(props.workspaceId);
        var prefixRef = (0, hooks_1.usePrefix)('node-path');
        return function () {
            var _a;
            if (!selectedRef.value)
                return null;
            var maxItems = (_a = props.maxItems) !== null && _a !== void 0 ? _a : 3;
            var nodes = selectedRef.value
                .getParents()
                .slice(0, maxItems - 1)
                .reverse()
                .concat(selectedRef.value);
            return (<gd_antd_plus_1.Breadcrumb class={prefixRef.value}>
          {nodes.map(function (node, key) {
                    return (<gd_antd_plus_1.BreadcrumbItem key={key}>
                {key === 0 && (<IconWidget_1.IconWidget infer="Position" style={{ marginRight: '3px' }}/>)}
                <a href="" onMouseenter={function () {
                            hoverRef.value.setHover(node);
                        }} onClick={function (e) {
                            e.stopPropagation();
                            e.preventDefault();
                            selectionRef.value.select(node);
                        }}>
                  <NodeTitleWidget_1.NodeTitleWidget {...{ node: node }}/>
                </a>
              </gd_antd_plus_1.BreadcrumbItem>);
                })}
        </gd_antd_plus_1.Breadcrumb>);
        };
    },
});
//# sourceMappingURL=index.jsx.map