UNPKG

zmp-vue

Version:

Build full featured iOS & Android apps using ZMP & Vue

83 lines (72 loc) 4.16 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _vue = require("vue"); var _utils = require("../shared/utils"); var _utils2 = require("../../common/utils"); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function render(_ctx, _cache) { return (0, _vue.openBlock)(), (0, _vue.createBlock)("div", (0, _vue.mergeProps)(_ctx.$attrs, { style: _ctx.boxStyle, class: _ctx.classes }), [(0, _vue.renderSlot)(_ctx.$slots, "default")], 16); } var _default = { name: 'zmp-box', render: render, props: { noSpace: Boolean, inline: Boolean, m: [String, Number], p: [String, Number], mt: [String, Number], ml: [String, Number], mb: [String, Number], mr: [String, Number], pt: [String, Number], pl: [String, Number], pb: [String, Number], pr: [String, Number], mx: [String, Number], my: [String, Number], px: [String, Number], py: [String, Number], width: Number, height: Number, verticalAlign: String, textAlign: String, flex: Boolean, flexDirection: String, flexWrap: { type: Boolean, default: undefined }, justifyContent: String, alignItems: String, alignContent: String }, setup: function setup(props) { var classes = (0, _vue.computed)(function () { var _classNames; return (0, _utils.classNames)('box', (_classNames = { 'box-no-space': props.noSpace, 'box-inline': props.inline }, _classNames["box-m-" + props.m] = (0, _utils2.validateSpacingNumber)(props.m), _classNames["box-mt-" + props.mt] = (0, _utils2.validateSpacingNumber)(props.mt), _classNames["box-ml-" + props.ml] = (0, _utils2.validateSpacingNumber)(props.ml), _classNames["box-mb-" + props.mb] = (0, _utils2.validateSpacingNumber)(props.mb), _classNames["box-mr-" + props.mr] = (0, _utils2.validateSpacingNumber)(props.mr), _classNames["box-mx-" + props.mx] = (0, _utils2.validateSpacingNumber)(props.mx), _classNames["box-my-" + props.my] = (0, _utils2.validateSpacingNumber)(props.my), _classNames["box-p-" + props.p] = (0, _utils2.validateSpacingNumber)(props.p), _classNames["box-pt-" + props.pt] = (0, _utils2.validateSpacingNumber)(props.pt), _classNames["box-pl-" + props.pl] = (0, _utils2.validateSpacingNumber)(props.pl), _classNames["box-pb-" + props.pb] = (0, _utils2.validateSpacingNumber)(props.pb), _classNames["box-pr-" + props.pr] = (0, _utils2.validateSpacingNumber)(props.pr), _classNames["box-px-" + props.px] = (0, _utils2.validateSpacingNumber)(props.px), _classNames["box-py-" + props.py] = (0, _utils2.validateSpacingNumber)(props.py), _classNames['box-flex'] = props.flex, _classNames["box-flex-" + props.flexDirection] = (0, _utils2.isValidBoxProps)(props.flexDirection, 'flexDirection'), _classNames["box-vertical-align-" + props.verticalAlign] = (0, _utils2.isValidBoxProps)(props.verticalAlign, 'verticalAlign'), _classNames["box-text-align-" + props.textAlign] = (0, _utils2.isValidBoxProps)(props.textAlign, 'textAlign'), _classNames['box-flex-wrap'] = props.flexWrap === true, _classNames['box-flex-nowrap'] = props.flexWrap === false, _classNames["box-justify-" + props.justifyContent] = (0, _utils2.isValidBoxProps)(props.justifyContent, 'justifyContent'), _classNames["box-align-items-" + props.alignItems] = (0, _utils2.isValidBoxProps)(props.alignItems, 'alignItems'), _classNames["box-align-content-" + props.alignContent] = (0, _utils2.isValidBoxProps)(props.alignContent, 'alignContent'), _classNames)); }); var boxStyle = (0, _vue.computed)(function () { var style = _extends({}, props.style); if (props.width) { style.width = props.width; } if (props.height) { style.height = props.height; } return style; }); return { classes: classes, boxStyle: boxStyle }; } }; exports.default = _default;