@jetlinks-web/components 2.0.2 → 2.0.4-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/es/AMap/Map.js +125 -0
  2. package/es/AMap/index.js +2 -0
  3. package/es/AMap/util.js +56 -0
  4. package/es/BadgeStatus/Badge.js +54 -0
  5. package/es/BadgeStatus/color.js +21 -0
  6. package/es/BadgeStatus/index.js +3 -0
  7. package/es/CardSelect/CardSelect.js +123 -0
  8. package/es/CardSelect/index.js +2 -0
  9. package/es/CheckButton/CheckButton.js +120 -0
  10. package/es/CheckButton/index.js +2 -0
  11. package/es/CheckButton/style/index.css +37 -0
  12. package/es/CheckButton/style/index.less +40 -0
  13. package/es/ConfigProvider/context.js +12 -0
  14. package/es/ConfigProvider/index.js +31 -0
  15. package/es/Echarts/Echarts.js +47 -0
  16. package/es/Echarts/index.js +2 -0
  17. package/es/Ellipsis/Ellipsis.js +184 -0
  18. package/es/Ellipsis/index.js +2 -0
  19. package/es/Ellipsis/style/index.css +17 -0
  20. package/es/Ellipsis/style/index.less +20 -0
  21. package/es/Empty/Empty.js +56 -0
  22. package/es/Empty/image.js +2 -0
  23. package/es/Empty/index.js +2 -0
  24. package/es/FullPage/FullPage.js +31 -0
  25. package/es/FullPage/index.js +2 -0
  26. package/es/Icon/icon.js +42 -0
  27. package/{src/Icon/index.ts → es/Icon/index.js} +2 -3
  28. package/es/MonacoEditor/Monaco.js +238 -0
  29. package/es/MonacoEditor/index.js +2 -0
  30. package/es/PermissionButton/index.js +117 -0
  31. package/es/ProLayout/Basic/BasicLayout.js +259 -0
  32. package/es/ProLayout/Basic/Header.js +97 -0
  33. package/es/ProLayout/PageContainer/index.js +324 -0
  34. package/es/ProLayout/PageContainer/typings.js +1 -0
  35. package/es/ProLayout/RouteContext.js +22 -0
  36. package/es/ProLayout/SiderMenu/BaseMenu.js +285 -0
  37. package/es/ProLayout/SiderMenu/SiderMenu.js +278 -0
  38. package/es/ProLayout/SiderMenu/index.js +2 -0
  39. package/es/ProLayout/SiderMenu/typings.js +1 -0
  40. package/es/ProLayout/TopHeader/index.js +163 -0
  41. package/es/ProLayout/defaultSettings.js +66 -0
  42. package/{src/ProLayout/index.ts → es/ProLayout/index.js} +4 -6
  43. package/{src → es}/ProLayout/style/default.less +1 -1
  44. package/es/ProLayout/style/index.js +1 -0
  45. package/es/ProLayout/typings.js +1 -0
  46. package/es/ProLayout/util.js +61 -0
  47. package/es/ProTable/index.js +411 -0
  48. package/es/ProTable/proTableTypes.js +11 -0
  49. package/es/ProTable/style/index.css +65 -0
  50. package/es/ProTable/style/index.js +1 -0
  51. package/{src → es}/ProTable/style/index.less +92 -92
  52. package/es/Scrollbar/Bar.js +114 -0
  53. package/es/Scrollbar/Scrollbar.js +212 -0
  54. package/es/Scrollbar/Thumb.js +189 -0
  55. package/es/Scrollbar/constants.js +1 -0
  56. package/es/Scrollbar/index.js +2 -0
  57. package/es/Scrollbar/scrollbarProps.js +100 -0
  58. package/es/Scrollbar/thumbProps.js +10 -0
  59. package/es/Scrollbar/util.js +30 -0
  60. package/es/Search/Advanced/History.js +183 -0
  61. package/es/Search/Advanced/SaveHistory.js +153 -0
  62. package/es/Search/Advanced/index.js +520 -0
  63. package/es/Search/Item.js +497 -0
  64. package/es/Search/Search.js +249 -0
  65. package/es/Search/hooks/index.js +1 -0
  66. package/es/Search/hooks/useSearchItems.js +40 -0
  67. package/es/Search/index.js +4 -0
  68. package/es/Search/setting.js +91 -0
  69. package/es/Search/style/Item.less +33 -0
  70. package/es/Search/style/Search.less +179 -0
  71. package/es/Search/style/index.js +2 -0
  72. package/es/Search/typing.js +1 -0
  73. package/es/Search/util.js +234 -0
  74. package/es/ValueItem/ValueItem.js +233 -0
  75. package/es/ValueItem/index.js +2 -0
  76. package/es/ValueItem/util.js +16 -0
  77. package/es/index.js +24 -0
  78. package/es/style/index.js +3 -0
  79. package/es/style/variable.css +0 -0
  80. package/{src → es}/style/variable.less +2 -4
  81. package/es/style.js +5 -0
  82. package/lib/AMap/Map.js +125 -0
  83. package/lib/AMap/index.js +9 -0
  84. package/lib/AMap/util.js +62 -0
  85. package/lib/BadgeStatus/Badge.js +54 -0
  86. package/lib/BadgeStatus/color.js +27 -0
  87. package/lib/BadgeStatus/index.js +22 -0
  88. package/lib/CardSelect/CardSelect.js +123 -0
  89. package/lib/CardSelect/index.js +9 -0
  90. package/lib/CheckButton/CheckButton.js +120 -0
  91. package/lib/CheckButton/index.js +9 -0
  92. package/lib/CheckButton/style/index.css +37 -0
  93. package/lib/CheckButton/style/index.less +40 -0
  94. package/lib/ConfigProvider/context.js +19 -0
  95. package/lib/ConfigProvider/index.js +37 -0
  96. package/lib/Echarts/Echarts.js +47 -0
  97. package/lib/Echarts/index.js +9 -0
  98. package/lib/Ellipsis/Ellipsis.js +184 -0
  99. package/lib/Ellipsis/index.js +9 -0
  100. package/lib/Ellipsis/style/index.css +17 -0
  101. package/lib/Ellipsis/style/index.less +20 -0
  102. package/lib/Empty/Empty.js +56 -0
  103. package/lib/Empty/image.js +8 -0
  104. package/lib/Empty/index.js +9 -0
  105. package/lib/FullPage/FullPage.js +31 -0
  106. package/lib/FullPage/index.js +9 -0
  107. package/lib/Icon/icon.js +52 -0
  108. package/lib/Icon/index.js +9 -0
  109. package/lib/MonacoEditor/Monaco.js +238 -0
  110. package/lib/MonacoEditor/index.js +9 -0
  111. package/lib/PermissionButton/index.js +124 -0
  112. package/lib/ProLayout/Basic/BasicLayout.js +268 -0
  113. package/lib/ProLayout/Basic/BasicLayout.less +66 -0
  114. package/lib/ProLayout/Basic/Header.js +103 -0
  115. package/lib/ProLayout/Basic/Header.less +8 -0
  116. package/lib/ProLayout/PageContainer/index.js +327 -0
  117. package/lib/ProLayout/PageContainer/index.less +103 -0
  118. package/lib/ProLayout/PageContainer/typings.js +5 -0
  119. package/lib/ProLayout/RouteContext.js +28 -0
  120. package/lib/ProLayout/SiderMenu/BaseMenu.js +290 -0
  121. package/lib/ProLayout/SiderMenu/SiderMenu.js +287 -0
  122. package/lib/ProLayout/SiderMenu/index.js +20 -0
  123. package/lib/ProLayout/SiderMenu/index.less +212 -0
  124. package/lib/ProLayout/SiderMenu/typings.js +5 -0
  125. package/lib/ProLayout/TopHeader/index.js +168 -0
  126. package/lib/ProLayout/TopHeader/index.less +174 -0
  127. package/lib/ProLayout/defaultSettings.js +72 -0
  128. package/lib/ProLayout/index.js +16 -0
  129. package/lib/ProLayout/style/default.less +4 -0
  130. package/lib/ProLayout/style/index.js +3 -0
  131. package/lib/ProLayout/style/style.less +7 -0
  132. package/lib/ProLayout/typings.js +5 -0
  133. package/lib/ProLayout/util.js +72 -0
  134. package/lib/ProTable/index.js +417 -0
  135. package/lib/ProTable/proTableTypes.js +17 -0
  136. package/lib/ProTable/style/index.css +65 -0
  137. package/lib/ProTable/style/index.js +3 -0
  138. package/lib/ProTable/style/index.less +92 -0
  139. package/lib/Scrollbar/Bar.js +114 -0
  140. package/lib/Scrollbar/Scrollbar.js +212 -0
  141. package/lib/Scrollbar/Thumb.js +189 -0
  142. package/lib/Scrollbar/constants.js +7 -0
  143. package/lib/Scrollbar/index.js +9 -0
  144. package/{src/Scrollbar/scrollbar.ts → lib/Scrollbar/scrollbarProps.js} +106 -108
  145. package/lib/Scrollbar/thumbProps.js +16 -0
  146. package/lib/Scrollbar/util.js +37 -0
  147. package/lib/Search/Advanced/History.js +183 -0
  148. package/lib/Search/Advanced/SaveHistory.js +153 -0
  149. package/lib/Search/Advanced/index.js +520 -0
  150. package/lib/Search/Item.js +497 -0
  151. package/lib/Search/Search.js +249 -0
  152. package/lib/Search/hooks/index.js +16 -0
  153. package/lib/Search/hooks/useSearchItems.js +47 -0
  154. package/lib/Search/index.js +16 -0
  155. package/lib/Search/setting.js +97 -0
  156. package/lib/Search/style/Item.less +33 -0
  157. package/lib/Search/style/Search.less +179 -0
  158. package/lib/Search/style/index.js +4 -0
  159. package/lib/Search/typing.js +5 -0
  160. package/lib/Search/util.js +241 -0
  161. package/lib/ValueItem/ValueItem.js +233 -0
  162. package/lib/ValueItem/index.js +9 -0
  163. package/lib/ValueItem/util.js +22 -0
  164. package/lib/index.js +158 -0
  165. package/lib/style/components.less +3 -0
  166. package/lib/style/index.js +4 -0
  167. package/lib/style/variable.css +0 -0
  168. package/lib/style/variable.less +2 -0
  169. package/lib/style.js +7 -0
  170. package/package.json +123 -13
  171. package/index.ts +0 -64
  172. package/src/AMap/Map.vue +0 -110
  173. package/src/AMap/index.ts +0 -1
  174. package/src/AMap/util.ts +0 -56
  175. package/src/BadgeStatus/Badge.vue +0 -41
  176. package/src/BadgeStatus/color.ts +0 -25
  177. package/src/BadgeStatus/index.ts +0 -4
  178. package/src/CardSelect/CardSelect.vue +0 -136
  179. package/src/CardSelect/index.ts +0 -3
  180. package/src/CheckButton/CheckButton.vue +0 -146
  181. package/src/CheckButton/index.md +0 -27
  182. package/src/CheckButton/index.ts +0 -3
  183. package/src/ConfigProvider/context.ts +0 -17
  184. package/src/ConfigProvider/index.tsx +0 -42
  185. package/src/Echarts/Echarts.vue +0 -43
  186. package/src/Echarts/index.ts +0 -3
  187. package/src/Ellipsis/Ellipsis.vue +0 -182
  188. package/src/Ellipsis/index.ts +0 -3
  189. package/src/Empty/Empty.vue +0 -43
  190. package/src/Empty/image.ts +0 -3
  191. package/src/Empty/index.ts +0 -2
  192. package/src/FullPage/FullPage.vue +0 -30
  193. package/src/FullPage/index.ts +0 -3
  194. package/src/Icon/icon.tsx +0 -40
  195. package/src/MonacoEditor/Monaco.vue +0 -242
  196. package/src/MonacoEditor/index.md +0 -26
  197. package/src/MonacoEditor/index.ts +0 -2
  198. package/src/PermissionButton/index.tsx +0 -110
  199. package/src/ProLayout/Basic/BasicLayout.tsx +0 -392
  200. package/src/ProLayout/Basic/Header.tsx +0 -115
  201. package/src/ProLayout/PageContainer/index.tsx +0 -441
  202. package/src/ProLayout/PageContainer/typings.ts +0 -56
  203. package/src/ProLayout/RouteContext.ts +0 -87
  204. package/src/ProLayout/SiderMenu/BaseMenu.tsx +0 -296
  205. package/src/ProLayout/SiderMenu/SiderMenu.tsx +0 -320
  206. package/src/ProLayout/SiderMenu/index.ts +0 -2
  207. package/src/ProLayout/SiderMenu/typings.ts +0 -49
  208. package/src/ProLayout/TopHeader/index.tsx +0 -210
  209. package/src/ProLayout/defaultSettings.ts +0 -106
  210. package/src/ProLayout/style/index.ts +0 -1
  211. package/src/ProLayout/typings.ts +0 -87
  212. package/src/ProLayout/util.ts +0 -64
  213. package/src/ProTable/index.md +0 -53
  214. package/src/ProTable/index.tsx +0 -551
  215. package/src/ProTable/proTableTypes.ts +0 -70
  216. package/src/ProTable/style/index.ts +0 -1
  217. package/src/Scrollbar/Bar.vue +0 -75
  218. package/src/Scrollbar/Scrollbar.vue +0 -260
  219. package/src/Scrollbar/Thumb.vue +0 -163
  220. package/src/Scrollbar/constants.ts +0 -10
  221. package/src/Scrollbar/index.ts +0 -4
  222. package/src/Scrollbar/thumb.ts +0 -16
  223. package/src/Scrollbar/util.ts +0 -38
  224. package/src/Search/Advanced/History.vue +0 -140
  225. package/src/Search/Advanced/SaveHistory.vue +0 -108
  226. package/src/Search/Advanced/index.vue +0 -435
  227. package/src/Search/Item.vue +0 -525
  228. package/src/Search/Search.vue +0 -398
  229. package/src/Search/hooks/index.ts +0 -1
  230. package/src/Search/hooks/useSearchItems.ts +0 -68
  231. package/src/Search/index.md +0 -57
  232. package/src/Search/index.ts +0 -5
  233. package/src/Search/setting.ts +0 -55
  234. package/src/Search/typing.ts +0 -76
  235. package/src/Search/util.ts +0 -263
  236. package/src/ValueItem/ValueItem.vue +0 -192
  237. package/src/ValueItem/index.ts +0 -3
  238. package/src/ValueItem/util.ts +0 -16
  239. package/src/style/index.ts +0 -3
  240. /package/{src → es}/ProLayout/Basic/BasicLayout.less +0 -0
  241. /package/{src → es}/ProLayout/Basic/Header.less +0 -0
  242. /package/{src → es}/ProLayout/PageContainer/index.less +0 -0
  243. /package/{src → es}/ProLayout/SiderMenu/index.less +0 -0
  244. /package/{src → es}/ProLayout/TopHeader/index.less +0 -0
  245. /package/{src → es}/ProLayout/style/style.less +0 -0
@@ -0,0 +1,117 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
+ var _excluded = ["popConfirm", "tooltip", "hasPermission", "noPermissionTitle"];
5
+ import { h, defineComponent, computed } from "vue";
6
+ import { Button, Tooltip, Popconfirm } from 'ant-design-vue';
7
+ import "ant-design-vue/es";
8
+ import { omit } from "lodash-es";
9
+ import { buttonProps } from "ant-design-vue/es/button/button";
10
+ import { usePermission } from '@jetlinks-web/hooks';
11
+ var definedProps = _objectSpread({
12
+ tooltip: {
13
+ type: Object
14
+ },
15
+ popConfirm: {
16
+ type: Object
17
+ },
18
+ hasPermission: {
19
+ type: [String, Array, Boolean],
20
+ default: undefined
21
+ },
22
+ style: {
23
+ type: Object
24
+ },
25
+ noPermissionTitle: {
26
+ type: String
27
+ }
28
+ }, omit(buttonProps(), 'icon'));
29
+ var PermissionButton = defineComponent({
30
+ name: 'PermissionButton',
31
+ // @ts-ignore
32
+ slots: ['button', 'icon'],
33
+ props: definedProps,
34
+ setup: function setup(props, _ref) {
35
+ var slots = _ref.slots;
36
+ var popConfirm = props.popConfirm,
37
+ tooltip = props.tooltip;
38
+ var _usePermission = usePermission(props.hasPermission),
39
+ hasPerm = _usePermission.hasPerm;
40
+ var permission = computed(function () {
41
+ if (!props.hasPermission || props.hasPermission === true) {
42
+ return true;
43
+ }
44
+ return hasPerm.value;
45
+ });
46
+ var isPermission = computed(function () {
47
+ if ('hasPermission' in props && permission.value) {
48
+ return 'disabled' in props ? props.disabled : false;
49
+ }
50
+ return true;
51
+ });
52
+ var hasPopConfirm = computed(function () {
53
+ return !!popConfirm;
54
+ }); // 是否包含确认弹窗
55
+ var hasTooltip = computed(function () {
56
+ return !!tooltip;
57
+ }); // 是否包含文字提示
58
+ return function () {
59
+ var popConfirm = props.popConfirm,
60
+ tooltip = props.tooltip,
61
+ hasPermission = props.hasPermission,
62
+ noPermissionTitle = props.noPermissionTitle,
63
+ buttonProps = _objectWithoutProperties(props, _excluded);
64
+ var button = !slots.button ? h(Button, _objectSpread(_objectSpread({}, buttonProps), {}, {
65
+ disabled: isPermission.value
66
+ }), {
67
+ default: function _default() {
68
+ var _slots$default;
69
+ return slots === null || slots === void 0 ? void 0 : (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
70
+ },
71
+ icon: function icon() {
72
+ var _slots$icon;
73
+ return slots === null || slots === void 0 ? void 0 : (_slots$icon = slots.icon) === null || _slots$icon === void 0 ? void 0 : _slots$icon.call(slots);
74
+ }
75
+ }) : slots.button();
76
+ // 文字提示
77
+ var _tooltip = tooltip ? h(Tooltip, _extends(tooltip, {
78
+ disabled: isPermission.value
79
+ }), {
80
+ default: function _default() {
81
+ return button;
82
+ }
83
+ }) : undefined;
84
+ // 无权限
85
+ var noPermissionButton = !permission.value ? h(Tooltip, {
86
+ title: noPermissionTitle || '暂无权限,请联系管理员'
87
+ }, {
88
+ default: function _default() {
89
+ return button;
90
+ }
91
+ }) : undefined;
92
+ // 二次确认
93
+ var _popConfirm = popConfirm ? h(Popconfirm, _extends({
94
+ overlayStyle: {
95
+ width: '220px'
96
+ }
97
+ }, popConfirm, {
98
+ disabled: !permission.value || buttonProps.disabled
99
+ }), {
100
+ default: function _default() {
101
+ return tooltip ? _tooltip : button;
102
+ }
103
+ }) : undefined;
104
+ if (permission.value) {
105
+ if (hasPopConfirm.value) {
106
+ return _popConfirm;
107
+ }
108
+ if (hasTooltip.value) {
109
+ return _tooltip;
110
+ }
111
+ return button;
112
+ }
113
+ return noPermissionButton;
114
+ };
115
+ }
116
+ });
117
+ export default PermissionButton;
@@ -0,0 +1,259 @@
1
+ import { Fragment as _Fragment, createVNode as _createVNode, isVNode as _isVNode } from "vue";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
+ var _excluded = ["pure", "onCollapse", "onOpenKeys", "onSelect", "onMenuClick"];
6
+ import SiderMenu, { siderMenuProps } from '../SiderMenu/SiderMenu';
7
+ import { computed, defineComponent, provide, reactive, watchEffect, toRefs, h } from 'vue';
8
+ import { defaultSettingProps } from '../defaultSettings';
9
+ import { baseHeaderProps } from '../TopHeader';
10
+ import Header, { headerViewProps } from './Header';
11
+ import useConfigInject from 'ant-design-vue/es/_util/hooks/useConfigInject';
12
+ import { pick } from 'lodash-es';
13
+ import { defaultRouteContext, routeContextInjectKey } from '../RouteContext';
14
+ import { getMenuFirstChildren, getSlot } from '../util';
15
+ import { Layout, LayoutContent } from 'ant-design-vue';
16
+ function _isSlot(s) {
17
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
18
+ }
19
+ export var basicLayoutProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultSettingProps), siderMenuProps), baseHeaderProps), headerViewProps), {}, {
20
+ pure: Boolean,
21
+ loading: Boolean,
22
+ locale: {
23
+ type: [Function, Boolean],
24
+ default: function _default() {
25
+ return function (s) {
26
+ return s;
27
+ };
28
+ }
29
+ },
30
+ /**
31
+ * 是否禁用移动端模式,有的管理系统不需要移动端模式,此属性设置为true即可
32
+ */
33
+ disableMobile: {
34
+ type: Boolean,
35
+ required: false
36
+ },
37
+ isChildrenLayout: {
38
+ type: Boolean,
39
+ required: false
40
+ },
41
+ /**
42
+ * 兼用 content 的 margin
43
+ */
44
+ disableContentMargin: {
45
+ type: Boolean,
46
+ required: false
47
+ },
48
+ colSize: {
49
+ type: Number,
50
+ required: false
51
+ },
52
+ contentStyle: {
53
+ type: [String, Object],
54
+ default: function _default() {
55
+ return null;
56
+ }
57
+ },
58
+ breadcrumb: {
59
+ type: [Object, Function],
60
+ default: function _default() {
61
+ return null;
62
+ }
63
+ },
64
+ collapsedButtonRender: {
65
+ type: [Function, Object, Boolean],
66
+ default: function _default() {
67
+ return undefined;
68
+ }
69
+ },
70
+ breadcrumbRender: {
71
+ type: [Object, Function, Boolean],
72
+ default: function _default() {
73
+ return null;
74
+ }
75
+ },
76
+ headerContentRender: {
77
+ type: [Function, Object, Boolean],
78
+ default: function _default() {
79
+ return undefined;
80
+ }
81
+ },
82
+ headerRender: {
83
+ type: [Object, Function, Boolean],
84
+ default: function _default() {
85
+ return undefined;
86
+ }
87
+ }
88
+ });
89
+ export default defineComponent({
90
+ name: 'JProLayout',
91
+ inheritAttrs: false,
92
+ props: basicLayoutProps,
93
+ emits: ['update:collapsed', 'update:open-keys', 'update:selected-keys', 'collapse', 'openKeys', 'select', 'menuHeaderClick', 'menuClick', 'backClick'],
94
+ setup: function setup(props, _ref) {
95
+ var emit = _ref.emit,
96
+ attrs = _ref.attrs,
97
+ slots = _ref.slots;
98
+ var _useConfigInject = useConfigInject('layout', {}),
99
+ prefixCls = _useConfigInject.prefixCls;
100
+ var isTop = computed(function () {
101
+ return props.layout === 'top';
102
+ });
103
+ var hasSide = computed(function () {
104
+ return props.layout === 'mix' || props.layout === 'side' || false;
105
+ });
106
+ var hasSplitMenu = computed(function () {
107
+ return props.layout === 'mix' && props.splitMenus;
108
+ });
109
+ var hasFlatMenu = computed(function () {
110
+ return hasSide.value && hasSplitMenu.value;
111
+ });
112
+ var siderWidth = computed(function () {
113
+ return props.collapsed ? props.collapsedWidth : props.siderWidth;
114
+ });
115
+ var onCollapse = function onCollapse(collapsed) {
116
+ emit('update:collapsed', collapsed);
117
+ emit('collapse', collapsed);
118
+ };
119
+ var onOpenKeys = function onOpenKeys(openKeys) {
120
+ emit('update:open-keys', openKeys);
121
+ emit('openKeys', openKeys);
122
+ };
123
+ var onSelect = function onSelect(selectedKeys) {
124
+ emit('update:selected-keys', selectedKeys);
125
+ emit('select', selectedKeys);
126
+ };
127
+ var onMenuHeaderClick = function onMenuHeaderClick(e) {
128
+ emit('menuHeaderClick', e);
129
+ };
130
+ var onMenuClick = function onMenuClick(args) {
131
+ emit('menuClick', args);
132
+ };
133
+ var onBack = function onBack(args) {
134
+ emit('backClick', args);
135
+ };
136
+ var baseClassName = computed(function () {
137
+ return "".concat(props.prefixCls, "-basicLayout");
138
+ });
139
+ var className = computed(function () {
140
+ return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, baseClassName.value, true), "".concat(baseClassName.value, "-top-menu"), isTop.value), "".concat(baseClassName.value, "-is-children"), props.isChildrenLayout), "".concat(baseClassName.value, "-fix-siderbar"), props.fixSiderbar), "".concat(baseClassName.value, "-").concat(props.layout), props.layout);
141
+ });
142
+ var genLayoutStyle = reactive({
143
+ position: 'relative'
144
+ });
145
+ watchEffect(function () {
146
+ if (props.isChildrenLayout || props.contentStyle && props.contentStyle.minHeight) {
147
+ genLayoutStyle.minHeight = 0;
148
+ }
149
+ });
150
+ var headerRender = function headerRender(p, matchMenuKeys) {
151
+ if (p.headerRender === false || p.pure) {
152
+ return null;
153
+ }
154
+ return h(Header, _objectSpread(_objectSpread({}, p), {}, {
155
+ matchMenuKeys: matchMenuKeys || []
156
+ }));
157
+ // <Header {...p} matchMenuKeys={matchMenuKeys || []} />;
158
+ };
159
+ var breadcrumb = computed(function () {
160
+ return _objectSpread(_objectSpread({}, props.breadcrumb), {}, {
161
+ itemRender: getSlot(slots, props, 'breadcrumbRender')
162
+ });
163
+ });
164
+ var flatMenuData = computed(function () {
165
+ return hasFlatMenu.value && props.selectedKeys && getMenuFirstChildren(props.menuData, props.selectedKeys[0]) || [];
166
+ });
167
+ var routeContext = reactive(_objectSpread(_objectSpread(_objectSpread({}, defaultRouteContext), pick(toRefs(props), ['pure', 'locale', 'menuData', 'openKeys', 'selectedKeys', 'contentWidth', 'disableMobile', 'fixSiderbar', 'fixedHeader', 'headerHeight'])), {}, {
168
+ siderWidth: siderWidth,
169
+ breadcrumb: breadcrumb,
170
+ flatMenuData: flatMenuData,
171
+ hasSide: hasSide,
172
+ back: onBack,
173
+ hasHeader: true,
174
+ flatMenu: hasFlatMenu
175
+ }));
176
+ provide(routeContextInjectKey, routeContext);
177
+ return function () {
178
+ var _slot;
179
+ var _slots$default, _slots$default2;
180
+ var pure = props.pure,
181
+ propsOnCollapse = props.onCollapse,
182
+ propsOnOpenKeys = props.onOpenKeys,
183
+ propsOnSelect = props.onSelect,
184
+ propsOnMenuClick = props.onMenuClick,
185
+ restProps = _objectWithoutProperties(props, _excluded);
186
+ var collapsedButtonRender = getSlot(slots, props, 'collapsedButtonRender');
187
+ var headerContentRender = getSlot(slots, props, 'headerContentRender');
188
+ var rightContentRender = getSlot(slots, props, 'rightContentRender');
189
+ var customHeaderRender = getSlot(slots, props, 'headerRender');
190
+ // menu
191
+ var menuHeaderRender = getSlot(slots, props, 'menuHeaderRender');
192
+ var menuExtraRender = getSlot(slots, props, 'menuExtraRender');
193
+ var menuContentRender = getSlot(slots, props, 'menuContentRender');
194
+ var menuItemRender = getSlot(slots, props, 'menuItemRender');
195
+ var subMenuItemRender = getSlot(slots, props, 'subMenuItemRender');
196
+ var headerDom = computed(function () {
197
+ return headerRender(_objectSpread(_objectSpread({}, props), {}, {
198
+ menuItemRender: menuItemRender,
199
+ subMenuItemRender: subMenuItemRender,
200
+ hasSiderMenu: !isTop.value,
201
+ menuData: props.menuData,
202
+ onCollapse: onCollapse,
203
+ onOpenKeys: onOpenKeys,
204
+ onSelect: onSelect,
205
+ onMenuHeaderClick: onMenuHeaderClick,
206
+ rightContentRender: rightContentRender,
207
+ collapsedButtonRender: collapsedButtonRender,
208
+ headerTitleRender: menuHeaderRender,
209
+ menuExtraRender: menuExtraRender,
210
+ menuContentRender: menuContentRender,
211
+ headerContentRender: headerContentRender,
212
+ headerRender: customHeaderRender,
213
+ theme: (props.theme || 'dark').toLocaleLowerCase().includes('dark') ? 'dark' : 'light'
214
+ }), props.matchMenuKeys);
215
+ });
216
+ routeContext.hasHeader = !!headerDom.value;
217
+ var contentClassName = computed(function () {
218
+ return _defineProperty(_defineProperty(_defineProperty({}, "".concat(baseClassName.value, "-content"), true), "".concat(baseClassName.value, "-has-header"), headerDom), "".concat(baseClassName.value, "-content-disable-margin"), props.disableContentMargin);
219
+ });
220
+ return _createVNode(_Fragment, null, [pure ? (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots) : _createVNode("div", {
221
+ "class": className.value
222
+ }, [_createVNode(Layout, {
223
+ "style": _objectSpread({
224
+ minHeight: '100vh'
225
+ }, attrs.style || {})
226
+ }, {
227
+ default: function _default() {
228
+ return [headerDom.value, _createVNode(Layout, {
229
+ "style": genLayoutStyle,
230
+ "class": prefixCls.value
231
+ }, {
232
+ default: function _default() {
233
+ return [!isTop.value && _createVNode(SiderMenu, _objectSpread(_objectSpread({}, restProps), {}, {
234
+ "menuHeaderRender": menuHeaderRender,
235
+ "menuExtraRender": menuExtraRender,
236
+ "menuContentRender": menuContentRender,
237
+ "menuItemRender": menuItemRender,
238
+ "subMenuItemRender": subMenuItemRender,
239
+ "collapsedButtonRender": collapsedButtonRender,
240
+ "onCollapse": onCollapse,
241
+ "onSelect": onSelect,
242
+ "onOpenKeys": onOpenKeys,
243
+ "onMenuClick": onMenuClick
244
+ }), null), _createVNode(Layout, null, _isSlot(_slot = _createVNode(LayoutContent, null, {
245
+ default: function _default() {
246
+ return [(_slots$default2 = slots.default) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots)];
247
+ }
248
+ })) ? _slot : {
249
+ default: function _default() {
250
+ return [_slot];
251
+ }
252
+ })];
253
+ }
254
+ })];
255
+ }
256
+ })])]);
257
+ };
258
+ }
259
+ });
@@ -0,0 +1,97 @@
1
+ import { createVNode as _createVNode, Fragment as _Fragment, isVNode as _isVNode } from "vue";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
+ import { baseHeaderProps, TopNavHeader } from '../TopHeader';
5
+ import PropTypes from 'ant-design-vue/es/_util/vue-types';
6
+ import { defineComponent, computed, toRefs } from 'vue';
7
+ import { useRouteContext } from '../RouteContext';
8
+ import { Layout } from 'ant-design-vue';
9
+ function _isSlot(s) {
10
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
11
+ }
12
+ export var headerViewProps = _objectSpread(_objectSpread({}, baseHeaderProps), {}, {
13
+ headerRender: {
14
+ type: [Object, Function, Boolean],
15
+ default: function _default() {
16
+ return undefined;
17
+ }
18
+ },
19
+ headerTitleRender: {
20
+ type: [Object, Function, Boolean],
21
+ default: function _default() {
22
+ return undefined;
23
+ }
24
+ },
25
+ headerContentRender: {
26
+ type: [Object, Function, Boolean],
27
+ default: function _default() {
28
+ return undefined;
29
+ }
30
+ },
31
+ hasSiderMenu: PropTypes.looseBool,
32
+ siderWidth: PropTypes.number.def(208)
33
+ });
34
+ export default defineComponent({
35
+ name: 'HeaderView',
36
+ inheritAttrs: false,
37
+ props: headerViewProps,
38
+ setup: function setup(props) {
39
+ var _toRefs = toRefs(props),
40
+ prefixCls = _toRefs.prefixCls,
41
+ fixedHeader = _toRefs.fixedHeader,
42
+ headerHeight = _toRefs.headerHeight,
43
+ layout = _toRefs.layout,
44
+ theme = _toRefs.theme,
45
+ onCollapse = _toRefs.onCollapse;
46
+ var context = useRouteContext();
47
+ var needFixedHeader = computed(function () {
48
+ return fixedHeader.value || context.fixedHeader;
49
+ });
50
+ var isTop = computed(function () {
51
+ return layout.value === 'top';
52
+ });
53
+ var className = computed(function () {
54
+ return _defineProperty(_defineProperty({}, "".concat(prefixCls.value, "-fixed-header"), needFixedHeader.value), "".concat(prefixCls.value, "-top-menu"), isTop.value);
55
+ });
56
+ var renderContent = function renderContent() {
57
+ var defaultDom = _createVNode(TopNavHeader, _objectSpread(_objectSpread({
58
+ "theme": theme.value,
59
+ "mode": "horizontal"
60
+ }, props), {}, {
61
+ "onCollapse": onCollapse.value,
62
+ "menuData": context.menuData
63
+ }), null);
64
+ if (props.headerRender) {
65
+ return props.headerRender(props, defaultDom);
66
+ }
67
+ return defaultDom;
68
+ };
69
+ var right = computed(function () {
70
+ return needFixedHeader.value ? 0 : undefined;
71
+ });
72
+ return function () {
73
+ var _slot;
74
+ return _createVNode(_Fragment, null, [needFixedHeader.value && _createVNode(Layout.Header, {
75
+ "style": {
76
+ height: "".concat(headerHeight.value, "px"),
77
+ lineHeight: "".concat(headerHeight.value, "px"),
78
+ background: 'transparent'
79
+ }
80
+ }, null), _createVNode(Layout.Header, {
81
+ "style": {
82
+ padding: 0,
83
+ height: "".concat(headerHeight.value, "px"),
84
+ lineHeight: "".concat(headerHeight.value, "px"),
85
+ width: '100%',
86
+ zIndex: 100,
87
+ right: right.value
88
+ },
89
+ "class": className.value
90
+ }, _isSlot(_slot = renderContent()) ? _slot : {
91
+ default: function _default() {
92
+ return [_slot];
93
+ }
94
+ })]);
95
+ };
96
+ }
97
+ });