1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports.default = exports.basicProps = exports.Header = exports.Footer = exports.Content = void 0;
|
9 |
|
10 | var _vue = require("vue");
|
11 |
|
12 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
13 |
|
14 | var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
15 |
|
16 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
17 |
|
18 | var _vueTypes = _interopRequireDefault(require("../_util/vue-types"));
|
19 |
|
20 | var _useConfigInject3 = _interopRequireDefault(require("../_util/hooks/useConfigInject"));
|
21 |
|
22 | var _injectionKey = require("./injectionKey");
|
23 |
|
24 | var basicProps = {
|
25 | prefixCls: _vueTypes.default.string,
|
26 | hasSider: _vueTypes.default.looseBool,
|
27 | tagName: _vueTypes.default.string
|
28 | };
|
29 | exports.basicProps = basicProps;
|
30 |
|
31 | function generator(_ref) {
|
32 | var suffixCls = _ref.suffixCls,
|
33 | tagName = _ref.tagName,
|
34 | name = _ref.name;
|
35 | return function (BasicComponent) {
|
36 | var Adapter = (0, _vue.defineComponent)({
|
37 | name: name,
|
38 | props: basicProps,
|
39 | setup: function setup(props, _ref2) {
|
40 | var slots = _ref2.slots;
|
41 |
|
42 | var _useConfigInject = (0, _useConfigInject3.default)(suffixCls, props),
|
43 | prefixCls = _useConfigInject.prefixCls;
|
44 |
|
45 | return function () {
|
46 | var basicComponentProps = (0, _extends2.default)((0, _extends2.default)({}, props), {
|
47 | prefixCls: prefixCls.value,
|
48 | tagName: tagName
|
49 | });
|
50 | return (0, _vue.createVNode)(BasicComponent, basicComponentProps, slots);
|
51 | };
|
52 | }
|
53 | });
|
54 | return Adapter;
|
55 | };
|
56 | }
|
57 |
|
58 | var Basic = (0, _vue.defineComponent)({
|
59 | props: basicProps,
|
60 | setup: function setup(props, _ref3) {
|
61 | var slots = _ref3.slots;
|
62 | return function () {
|
63 | return (0, _vue.createVNode)(props.tagName, {
|
64 | class: props.prefixCls
|
65 | }, slots);
|
66 | };
|
67 | }
|
68 | });
|
69 | var BasicLayout = (0, _vue.defineComponent)({
|
70 | props: basicProps,
|
71 | setup: function setup(props, _ref4) {
|
72 | var slots = _ref4.slots;
|
73 |
|
74 | var _useConfigInject2 = (0, _useConfigInject3.default)('', props),
|
75 | direction = _useConfigInject2.direction;
|
76 |
|
77 | var siders = (0, _vue.ref)([]);
|
78 | var siderHookProvider = {
|
79 | addSider: function addSider(id) {
|
80 | siders.value = [].concat((0, _toConsumableArray2.default)(siders.value), [id]);
|
81 | },
|
82 | removeSider: function removeSider(id) {
|
83 | siders.value = siders.value.filter(function (currentId) {
|
84 | return currentId !== id;
|
85 | });
|
86 | }
|
87 | };
|
88 | (0, _vue.provide)(_injectionKey.SiderHookProviderKey, siderHookProvider);
|
89 | var divCls = (0, _vue.computed)(function () {
|
90 | var _ref5;
|
91 |
|
92 | var prefixCls = props.prefixCls,
|
93 | hasSider = props.hasSider;
|
94 | return _ref5 = {}, (0, _defineProperty2.default)(_ref5, "".concat(prefixCls), true), (0, _defineProperty2.default)(_ref5, "".concat(prefixCls, "-has-sider"), typeof hasSider === 'boolean' ? hasSider : siders.value.length > 0), (0, _defineProperty2.default)(_ref5, "".concat(prefixCls, "-rtl"), direction.value === 'rtl'), _ref5;
|
95 | });
|
96 | return function () {
|
97 | var tagName = props.tagName;
|
98 | return (0, _vue.createVNode)(tagName, {
|
99 | class: divCls.value
|
100 | }, slots);
|
101 | };
|
102 | }
|
103 | });
|
104 | var Layout = generator({
|
105 | suffixCls: 'layout',
|
106 | tagName: 'section',
|
107 | name: 'ALayout'
|
108 | })(BasicLayout);
|
109 | var Header = generator({
|
110 | suffixCls: 'layout-header',
|
111 | tagName: 'header',
|
112 | name: 'ALayoutHeader'
|
113 | })(Basic);
|
114 | exports.Header = Header;
|
115 | var Footer = generator({
|
116 | suffixCls: 'layout-footer',
|
117 | tagName: 'footer',
|
118 | name: 'ALayoutFooter'
|
119 | })(Basic);
|
120 | exports.Footer = Footer;
|
121 | var Content = generator({
|
122 | suffixCls: 'layout-content',
|
123 | tagName: 'main',
|
124 | name: 'ALayoutContent'
|
125 | })(Basic);
|
126 | exports.Content = Content;
|
127 | var _default = Layout;
|
128 | exports.default = _default; |
\ | No newline at end of file |