ant-design-vue
Version:
An enterprise-class UI design language and Vue-based implementation
230 lines (194 loc) • 7.65 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getTransitionProps = exports.getTransitionName = exports.getTransitionGroupProps = exports.getTransitionDirection = exports.default = exports.collapseMotion = exports.TransitionGroup = exports.Transition = void 0;
var _vue = require("vue");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _type = require("./type");
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
}
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
var SelectPlacements = (0, _type.tuple)('bottomLeft', 'bottomRight', 'topLeft', 'topRight');
var getTransitionDirection = function getTransitionDirection(placement) {
if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {
return "slide-down";
}
return "slide-up";
};
exports.getTransitionDirection = getTransitionDirection;
var getTransitionProps = function getTransitionProps(transitionName) {
var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (process.env.NODE_ENV === 'test') {
return opt;
}
var transitionProps = transitionName ? (0, _extends2.default)({
name: transitionName,
appear: true,
// type: 'animation',
// appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,
// appearActiveClass: `antdv-base-transtion`,
// appearToClass: `${transitionName}-appear ${transitionName}-appear-active`,
enterFromClass: "".concat(transitionName, "-enter ").concat(transitionName, "-enter-prepare"),
enterActiveClass: "".concat(transitionName, "-enter ").concat(transitionName, "-enter-prepare"),
enterToClass: "".concat(transitionName, "-enter ").concat(transitionName, "-enter-active"),
leaveFromClass: " ".concat(transitionName, "-leave"),
leaveActiveClass: "".concat(transitionName, "-leave"),
leaveToClass: "".concat(transitionName, "-leave ").concat(transitionName, "-leave-active")
}, opt) : (0, _extends2.default)({
css: false
}, opt);
return transitionProps;
};
exports.getTransitionProps = getTransitionProps;
var getTransitionGroupProps = function getTransitionGroupProps(transitionName) {
var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var transitionProps = transitionName ? (0, _extends2.default)({
name: transitionName,
appear: true,
// appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,
appearActiveClass: "".concat(transitionName),
appearToClass: "".concat(transitionName, "-appear ").concat(transitionName, "-appear-active"),
enterFromClass: "".concat(transitionName, "-appear ").concat(transitionName, "-enter ").concat(transitionName, "-appear-prepare ").concat(transitionName, "-enter-prepare"),
enterActiveClass: "".concat(transitionName),
enterToClass: "".concat(transitionName, "-enter ").concat(transitionName, "-appear ").concat(transitionName, "-appear-active ").concat(transitionName, "-enter-active"),
leaveActiveClass: "".concat(transitionName, " ").concat(transitionName, "-leave"),
leaveToClass: "".concat(transitionName, "-leave-active")
}, opt) : (0, _extends2.default)({
css: false
}, opt);
return transitionProps;
};
exports.getTransitionGroupProps = getTransitionGroupProps;
var Transition = _vue.Transition;
exports.Transition = Transition;
var TransitionGroup = _vue.TransitionGroup;
exports.TransitionGroup = TransitionGroup;
if (process.env.NODE_ENV === 'test') {
var warn = true;
exports.Transition = Transition = (0, _vue.defineComponent)({
name: 'TransitionForTest',
inheritAttrs: false,
setup: function setup(_props, _ref) {
var slots = _ref.slots,
attrs = _ref.attrs;
var instance = (0, _vue.getCurrentInstance)();
if (warn) {
console.warn('application runing at test env, you should build use production env');
warn = false;
}
(0, _vue.onUpdated)(function () {
var child = instance.subTree.children[0];
if (child && child.dirs && child.dirs[0]) {
var value = child.dirs[0].value;
var oldValue = child.dirs[0].oldValue;
if (!value && value !== oldValue) {
(0, _vue.nextTick)(function () {
if (attrs.onAfterLeave) {
attrs.onAfterLeave(instance.vnode.el);
}
});
}
}
});
return function () {
var _a;
return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);
};
}
});
exports.TransitionGroup = TransitionGroup = (0, _vue.defineComponent)({
name: 'TransitionGroupForTest',
inheritAttrs: false,
props: ['tag', 'class'],
setup: function setup(props, _ref2) {
var slots = _ref2.slots;
return function () {
var _a;
var Tag = props.tag,
rest = __rest(props, ["tag"]);
var children = ((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)) || [];
if (Tag) {
return (0, _vue.createVNode)(Tag, rest, {
default: function _default() {
return [children];
}
});
} else {
return children;
}
};
}
});
} // ================== Collapse Motion ==================
var getCollapsedHeight = function getCollapsedHeight() {
return {
height: 0,
opacity: 0
};
};
var getRealHeight = function getRealHeight(node) {
return {
height: "".concat(node.scrollHeight, "px"),
opacity: 1
};
};
var getCurrentHeight = function getCurrentHeight(node) {
return {
height: "".concat(node.offsetHeight, "px")
};
};
var collapseMotion = function collapseMotion() {
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'ant-motion-collapse';
var style = arguments.length > 1 ? arguments[1] : undefined;
var className = arguments.length > 2 ? arguments[2] : undefined;
return {
name: name,
appear: true,
css: true,
onBeforeEnter: function onBeforeEnter(node) {
className.value = name;
style.value = getCollapsedHeight(node);
},
onEnter: function onEnter(node) {
(0, _vue.nextTick)(function () {
style.value = getRealHeight(node);
});
},
onAfterEnter: function onAfterEnter() {
className.value = '';
style.value = {};
},
onBeforeLeave: function onBeforeLeave(node) {
className.value = name;
style.value = getCurrentHeight(node);
},
onLeave: function onLeave(node) {
setTimeout(function () {
style.value = getCollapsedHeight(node);
});
},
onAfterLeave: function onAfterLeave() {
className.value = '';
style.value = {};
}
};
};
exports.collapseMotion = collapseMotion;
var getTransitionName = function getTransitionName(rootPrefixCls, motion, transitionName) {
if (transitionName !== undefined) {
return transitionName;
}
return "".concat(rootPrefixCls, "-").concat(motion);
};
exports.getTransitionName = getTransitionName;
var _default2 = Transition;
exports.default = _default2;
;