@meethive/components 0.0.9 → 0.0.10

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.
@@ -1,4 +1,4 @@
1
- import { computed, unref, defineComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from 'vue';
1
+ import { computed, unref, createVNode as _createVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from 'vue';
2
2
  import { LayoutSider as Sider, Menu, Tooltip } from 'ant-design-vue';
3
3
  import BaseMenu, { baseMenuProps } from './BaseMenu.js';
4
4
  import { defaultSettingProps, LayoutType } from '../defaultSettings';
@@ -135,154 +135,140 @@ export const defaultRenderCollapsedButton = collapsed => {
135
135
  "type": "MenuFoldOutlined"
136
136
  }, null);
137
137
  };
138
- const SiderMenu = defineComponent({
139
- name: 'SiderMenu',
140
- props: siderMenuProps,
141
- setup(props) {
142
- const prefixCls = computed(() => 'pro-layout');
143
- const [wrapSSR, hashId] = useProLayoutStyle(prefixCls);
144
- const context = useRouteContext();
145
- const getPrefixCls = context.getPrefixCls;
146
- const baseClassName = getPrefixCls('sider');
147
- const hasSplitMenu = computed(() => {
148
- return props.layout === 'mix' && props.splitMenus;
149
- });
150
- const sSideWidth = computed(() => {
151
- return props.collapsed ? props.collapsedWidth : props.siderWidth;
152
- });
153
- const classNames = computed(() => ({
154
- [baseClassName]: true,
155
- [`${baseClassName}-fixed`]: context.fixSiderbar,
156
- [`${baseClassName}-${props.theme}`]: true,
157
- [`${baseClassName}-layout-${props.layout}`]: props.layout,
158
- [hashId.value]: true
159
- }));
160
- const menuLocale = computed(() => {
161
- const locale = props.locale || context.locale;
162
- if (typeof locale === 'function' || typeof locale === 'boolean') return locale;
163
- if (locale && typeof locale === 'object') {
164
- return t => locale[t] ?? t;
165
- }
166
- return t => t;
167
- });
168
- const logCls = computed(() => ({
169
- [`${baseClassName}-logo`]: true,
170
- [`${baseClassName}-logo-card`]: props.layoutType === LayoutType.CARD
171
- }));
172
- const handleSelect = $event => {
173
- if (props.onSelect) {
174
- if (unref(hasSplitMenu)) {
175
- props.onSelect([context.selectedKeys[0], ...$event]);
176
- return;
177
- }
178
- props.onSelect($event);
138
+ const SiderMenu = props => {
139
+ const {
140
+ collapsed,
141
+ siderWidth,
142
+ breakpoint,
143
+ collapsedWidth = 48,
144
+ menuExtraRender = false,
145
+ menuContentRender = false,
146
+ collapsedButtonRender = defaultRenderCollapsedButton,
147
+ linksRender,
148
+ theme
149
+ } = props;
150
+ const prefixCls = computed(() => 'pro-layout');
151
+ const [wrapSSR, hashId] = useProLayoutStyle(prefixCls);
152
+ const context = useRouteContext();
153
+ const getPrefixCls = context.getPrefixCls;
154
+ const baseClassName = getPrefixCls('sider');
155
+ const hasSplitMenu = computed(() => {
156
+ return props.layout === 'mix' && props.splitMenus;
157
+ });
158
+ const sSideWidth = computed(() => {
159
+ return props.collapsed ? props.collapsedWidth : props.siderWidth;
160
+ });
161
+ const classNames = computed(() => ({
162
+ [baseClassName]: true,
163
+ [`${baseClassName}-fixed`]: context.fixSiderbar,
164
+ [`${baseClassName}-${theme}`]: true,
165
+ [`${baseClassName}-layout-${props.layout}`]: props.layout,
166
+ [hashId.value]: true
167
+ }));
168
+ const logCls = computed(() => ({
169
+ [`${baseClassName}-logo`]: true,
170
+ [`${baseClassName}-logo-card`]: props.layoutType === LayoutType.CARD
171
+ }));
172
+ const handleSelect = $event => {
173
+ if (props.onSelect) {
174
+ if (unref(hasSplitMenu)) {
175
+ props.onSelect([context.selectedKeys[0], ...$event]);
176
+ return;
179
177
  }
180
- };
181
- const headerDom = computed(() => defaultRenderLogoAndTitle({
182
- ...props,
183
- baseClassName
184
- }));
185
- const extraDom = computed(() => props.menuExtraRender && props.menuExtraRender(props));
186
- return () => {
187
- const {
188
- collapsed,
189
- siderWidth,
190
- breakpoint,
191
- collapsedWidth = 48,
192
- menuExtraRender = false,
193
- menuContentRender = false,
194
- collapsedButtonRender = defaultRenderCollapsedButton,
195
- linksRender,
196
- theme
197
- } = props;
198
- if (props.layoutType !== LayoutType.CARD && hasSplitMenu.value && unref(context.flatMenuData).length === 0) {
199
- return null;
178
+ props.onSelect($event);
179
+ }
180
+ };
181
+ const headerDom = defaultRenderLogoAndTitle({
182
+ ...props,
183
+ baseClassName
184
+ });
185
+ const extraDom = menuExtraRender && menuExtraRender(props);
186
+ if (props.layoutType !== LayoutType.CARD && hasSplitMenu.value && unref(context.flatMenuData).length === 0) {
187
+ return null;
188
+ }
189
+ const defaultMenuDom = _createVNode(BaseMenu, {
190
+ "prefixCls": getPrefixCls(),
191
+ "locale": props.locale || context.locale,
192
+ "theme": theme,
193
+ "mode": "inline",
194
+ "menuData": hasSplitMenu.value ? context.flatMenuData : context.menuData,
195
+ "collapsed": props.collapsed,
196
+ "openKeys": context.openKeys,
197
+ "selectedKeys": context.selectedKeys,
198
+ "menuItemRender": props.menuItemRender,
199
+ "subMenuItemRender": props.subMenuItemRender,
200
+ "iconfontUrl": props.iconfontUrl,
201
+ "onClick": props.onMenuClick,
202
+ "style": {
203
+ width: '100%'
204
+ },
205
+ "class": `${baseClassName}-menu`,
206
+ "onUpdate:openKeys": $event => props.onOpenKeys && props.onOpenKeys($event),
207
+ "onUpdate:selectedKeys": handleSelect
208
+ }, null);
209
+ return _createVNode(_Fragment, null, [context.fixSiderbar && _createVNode("div", {
210
+ "style": {
211
+ width: `${sSideWidth.value}px`,
212
+ overflow: 'hidden',
213
+ flex: `0 0 ${sSideWidth.value}px`,
214
+ maxWidth: `${sSideWidth.value}px`,
215
+ minWidth: `${sSideWidth.value}px`,
216
+ transition: 'background-color 0.3s, min-width 0.3s, max-width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1)'
217
+ }
218
+ }, null), _createVNode(Sider, {
219
+ "collapsible": true,
220
+ "trigger": null,
221
+ "collapsed": collapsed,
222
+ "breakpoint": breakpoint || undefined,
223
+ "onCollapse": collapse => {
224
+ props.onCollapse?.(collapse);
225
+ },
226
+ "collapsedWidth": collapsedWidth,
227
+ "style": {
228
+ overflow: 'hidden',
229
+ paddingTop: `${props.headerHeight}px`,
230
+ zIndex: props.layoutType === LayoutType.PAD ? 200 : 1
231
+ },
232
+ "width": siderWidth,
233
+ "theme": theme,
234
+ "class": classNames.value
235
+ }, {
236
+ default: () => [headerDom && _createVNode("div", {
237
+ "class": logCls.value,
238
+ "onClick": props.layout !== 'mix' ? props.onMenuHeaderClick : undefined,
239
+ "id": "logo",
240
+ "style": props?.logoStyle
241
+ }, [headerDom]), extraDom && _createVNode("div", {
242
+ "class": {
243
+ [`${baseClassName}-extra`]: true,
244
+ [`${baseClassName}-extra-no-logo`]: !headerDom
200
245
  }
201
- const defaultMenuDom = _createVNode(BaseMenu, {
202
- "prefixCls": getPrefixCls(),
203
- "locale": menuLocale.value,
204
- "theme": theme,
205
- "mode": "inline",
206
- "menuData": hasSplitMenu.value ? context.flatMenuData : context.menuData,
207
- "collapsed": props.collapsed,
208
- "openKeys": context.openKeys,
209
- "selectedKeys": context.selectedKeys,
210
- "menuItemRender": props.menuItemRender,
211
- "subMenuItemRender": props.subMenuItemRender,
212
- "iconfontUrl": props.iconfontUrl,
213
- "onClick": props.onMenuClick,
214
- "style": {
215
- width: '100%'
216
- },
217
- "class": `${baseClassName}-menu`,
218
- "onUpdate:openKeys": $event => props.onOpenKeys && props.onOpenKeys($event),
219
- "onUpdate:selectedKeys": handleSelect
220
- }, null);
221
- return _createVNode(_Fragment, null, [context.fixSiderbar && _createVNode("div", {
222
- "style": {
223
- width: `${sSideWidth.value}px`,
224
- overflow: 'hidden',
225
- flex: `0 0 ${sSideWidth.value}px`,
226
- maxWidth: `${sSideWidth.value}px`,
227
- minWidth: `${sSideWidth.value}px`,
228
- transition: 'background-color 0.3s, min-width 0.3s, max-width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1)'
246
+ }, [extraDom]), _createVNode("div", {
247
+ "class": `${baseClassName}-body`,
248
+ "style": "flex: 1; overflow: hidden auto;"
249
+ }, [props.layoutType !== LayoutType.CARD ? menuContentRender && menuContentRender(props, defaultMenuDom) || defaultMenuDom : null]), _createVNode("div", {
250
+ "class": `${baseClassName}-links`
251
+ }, [linksRender ? linksRender() : collapsedButtonRender !== false ? _createVNode(Menu, {
252
+ "class": `${baseClassName}-link-menu`,
253
+ "inlineIndent": 16,
254
+ "theme": theme,
255
+ "selectedKeys": [],
256
+ "openKeys": [],
257
+ "mode": "inline",
258
+ "onClick": () => {
259
+ if (props.onCollapse) {
260
+ props.onCollapse(!props.collapsed);
229
261
  }
230
- }, null), _createVNode(Sider, {
231
- "collapsible": true,
232
- "trigger": null,
233
- "collapsed": collapsed,
234
- "breakpoint": breakpoint || undefined,
235
- "onCollapse": collapse => {
236
- props.onCollapse?.(collapse);
237
- },
238
- "collapsedWidth": collapsedWidth,
239
- "style": {
240
- overflow: 'hidden',
241
- paddingTop: `${props.headerHeight}px`,
242
- zIndex: props.layoutType === LayoutType.PAD ? 200 : 1
243
- },
244
- "width": siderWidth,
245
- "theme": theme,
246
- "class": classNames.value
262
+ }
263
+ }, {
264
+ default: () => [_createVNode(Menu.Item, {
265
+ "key": "collapsed-button",
266
+ "class": `${baseClassName}-collapsed-button`,
267
+ "title": false
247
268
  }, {
248
- default: () => [headerDom.value && _createVNode("div", {
249
- "class": logCls.value,
250
- "onClick": props.layout !== 'mix' ? props.onMenuHeaderClick : undefined,
251
- "id": "logo",
252
- "style": props?.logoStyle
253
- }, [headerDom.value]), extraDom.value && _createVNode("div", {
254
- "class": {
255
- [`${baseClassName}-extra`]: true,
256
- [`${baseClassName}-extra-no-logo`]: !headerDom.value
257
- }
258
- }, [extraDom.value]), _createVNode("div", {
259
- "class": `${baseClassName}-body`,
260
- "style": "flex: 1; overflow: hidden auto;"
261
- }, [props.layoutType !== LayoutType.CARD ? menuContentRender && menuContentRender(props, defaultMenuDom) || defaultMenuDom : null]), _createVNode("div", {
262
- "class": `${baseClassName}-links`
263
- }, [linksRender ? linksRender() : collapsedButtonRender !== false ? _createVNode(Menu, {
264
- "class": `${baseClassName}-link-menu`,
265
- "inlineIndent": 16,
266
- "theme": theme,
267
- "selectedKeys": [],
268
- "openKeys": [],
269
- "mode": "inline",
270
- "onClick": () => {
271
- if (props.onCollapse) {
272
- props.onCollapse(!props.collapsed);
273
- }
274
- }
275
- }, {
276
- default: () => [_createVNode(Menu.Item, {
277
- "key": "collapsed-button",
278
- "class": `${baseClassName}-collapsed-button`,
279
- "title": false
280
- }, {
281
- default: () => [collapsedButtonRender && typeof collapsedButtonRender === 'function' ? collapsedButtonRender(collapsed) : collapsedButtonRender]
282
- })]
283
- }) : null])]
284
- })]);
285
- };
286
- }
287
- });
269
+ default: () => [collapsedButtonRender && typeof collapsedButtonRender === 'function' ? collapsedButtonRender(collapsed) : collapsedButtonRender]
270
+ })]
271
+ }) : null])]
272
+ })]);
273
+ };
288
274
  export default SiderMenu;
@@ -1,4 +1,4 @@
1
- import { computed, ref, defineComponent, createVNode as _createVNode, mergeProps as _mergeProps } from 'vue';
1
+ import { computed, ref, createVNode as _createVNode, mergeProps as _mergeProps } from 'vue';
2
2
  import { default as ResizeObserver } from 'ant-design-vue/es/vc-resize-observer';
3
3
  import { defaultRenderLogoAndTitle, siderMenuProps } from '../SiderMenu/SiderMenu';
4
4
  import PropTypes from 'ant-design-vue/es/_util/vue-types';
@@ -75,104 +75,96 @@ const RightContent = ({
75
75
  })]) : rightContentRender]
76
76
  })])]);
77
77
  };
78
- export const TopNavHeader = defineComponent({
79
- name: 'TopNavHeader',
80
- props: topNavHeaderProps,
81
- setup(props) {
82
- const headerRef = ref();
83
- const context = useRouteContext();
84
- const stylePrefixCls = computed(() => 'pro-layout');
85
- const [wrapSSR, hashId] = useProLayoutStyle(stylePrefixCls);
86
- const prefixCls = computed(() => `${props.prefixCls || defaultPrefixCls}-top-nav-header`);
87
- const MenusData = computed(() => {
88
- let data = props.layout === 'side' ? [] : props.menuData;
89
- if (props.layout === 'mix' && props.splitMenus) {
90
- const noChildrenMenuData = (props.menuData || []).map(item => {
91
- return {
92
- ...item,
93
- children: undefined,
94
- component: undefined
95
- };
96
- });
97
- data = clearMenuItem(noChildrenMenuData);
98
- }
99
- return data;
100
- });
101
- const _mode = computed(() => {
102
- return props.layout === 'mix' && props.splitMenus ? 'horizontal' : props.mode;
103
- });
104
- const menuLocale = computed(() => {
105
- const locale = props.locale || context.locale;
106
- if (typeof locale === 'function' || typeof locale === 'boolean') return locale;
107
- if (locale && typeof locale === 'object') {
108
- return t => locale[t] ?? t;
109
- }
110
- return t => t;
111
- });
112
- const className = computed(() => ({
113
- [prefixCls.value]: true,
114
- [hashId.value]: true,
115
- 'light': props.theme === 'light',
116
- 'dark': props.theme === 'dark'
117
- }));
118
- const paddingLeft = computed(() => {
119
- return context.layoutType === LayoutType.PAD && props.collapsed ? context.headerLeftWidth + 'px' : 0;
78
+ export const TopNavHeader = props => {
79
+ const headerRef = ref();
80
+ const {
81
+ prefixCls: propPrefixCls,
82
+ onMenuHeaderClick,
83
+ onOpenKeys,
84
+ onSelect,
85
+ contentWidth,
86
+ rightContentRender,
87
+ topHeaderMenuRender,
88
+ layout,
89
+ menuData,
90
+ mode
91
+ } = props;
92
+ const context = useRouteContext();
93
+ const prefixCls = `${propPrefixCls || defaultPrefixCls}-top-nav-header`;
94
+ const stylePrefixCls = computed(() => 'pro-layout');
95
+ const [wrapSSR, hashId] = useProLayoutStyle(stylePrefixCls);
96
+ const headerDom = defaultRenderLogoAndTitle({
97
+ ...props,
98
+ collapsed: false
99
+ },
100
+ // REMARK:: Any time render header title
101
+ // layout === 'mix' ? 'headerTitleRender' : undefined,
102
+ // layout !== 'side' ? 'headerTitleRender' : undefined,
103
+ 'headerTitleRender');
104
+
105
+ //
106
+ let MenusData = props.layout === 'side' ? [] : menuData;
107
+ if (props.layout === 'mix' && props.splitMenus) {
108
+ const noChildrenMenuData = (menuData || []).map(item => {
109
+ return {
110
+ ...item,
111
+ children: undefined,
112
+ component: undefined
113
+ };
120
114
  });
121
- return () => {
122
- const headerDom = defaultRenderLogoAndTitle({
123
- ...props,
124
- collapsed: false
125
- }, 'headerTitleRender');
126
- const {
127
- prefixCls: propPrefixCls,
128
- onMenuHeaderClick,
129
- onOpenKeys,
130
- onSelect,
131
- contentWidth,
132
- rightContentRender,
133
- topHeaderMenuRender
134
- } = props;
135
- return _createVNode("div", {
136
- "class": className.value,
137
- "style": {
138
- paddingLeft: paddingLeft.value
139
- }
140
- }, [_createVNode("div", {
141
- "ref": headerRef,
142
- "class": `${prefixCls.value}-main ${contentWidth === 'Fixed' ? 'wide' : ''}`
143
- }, [headerDom && _createVNode("div", {
144
- "class": `${prefixCls.value}-main-left`,
145
- "onClick": onMenuHeaderClick
146
- }, [_createVNode("div", {
147
- "class": `${prefixCls.value}-logo`,
148
- "key": "logo",
149
- "id": "logo"
150
- }, [headerDom])]), _createVNode("div", {
151
- "style": {
152
- flex: 1
153
- },
154
- "class": `${prefixCls.value}-menu`
155
- }, [topHeaderMenuRender ? topHeaderMenuRender() : _createVNode(BaseMenu, {
156
- "prefixCls": propPrefixCls,
157
- "locale": menuLocale.value,
158
- "theme": props.theme,
159
- "mode": _mode.value,
160
- "collapsed": props.collapsed,
161
- "iconfontUrl": props.iconfontUrl,
162
- "menuData": MenusData.value,
163
- "menuItemRender": props.menuItemRender,
164
- "subMenuItemRender": props.subMenuItemRender,
165
- "openKeys": context.openKeys,
166
- "selectedKeys": context.selectedKeys,
167
- "class": {
168
- 'top-nav-menu': props.mode === 'horizontal'
169
- },
170
- "onUpdate:openKeys": $event => onOpenKeys && onOpenKeys($event),
171
- "onUpdate:selectedKeys": $event => onSelect && onSelect($event)
172
- }, null)]), rightContentRender && _createVNode(RightContent, _mergeProps({
173
- "rightContentRender": rightContentRender
174
- }, props), null)])]);
175
- };
115
+ MenusData = clearMenuItem(noChildrenMenuData);
176
116
  }
177
- });
117
+ const _mode = computed(() => {
118
+ return props.layout === 'mix' && props.splitMenus ? 'horizontal' : mode;
119
+ });
120
+ const className = computed(() => ({
121
+ [prefixCls]: true,
122
+ [hashId.value]: true,
123
+ 'light': props.theme === 'light',
124
+ 'dark': props.theme === 'dark'
125
+ }));
126
+ const paddingLeft = computed(() => {
127
+ return context.layoutType === LayoutType.PAD && props.collapsed ? context.headerLeftWidth + 'px' : 0;
128
+ });
129
+ return _createVNode("div", {
130
+ "class": className.value,
131
+ "style": {
132
+ paddingLeft: paddingLeft.value
133
+ }
134
+ }, [_createVNode("div", {
135
+ "ref": headerRef,
136
+ "class": `${prefixCls}-main ${contentWidth === 'Fixed' ? 'wide' : ''}`
137
+ }, [headerDom && _createVNode("div", {
138
+ "class": `${prefixCls}-main-left`,
139
+ "onClick": onMenuHeaderClick
140
+ }, [_createVNode("div", {
141
+ "class": `${prefixCls}-logo`,
142
+ "key": "logo",
143
+ "id": "logo"
144
+ }, [headerDom])]), _createVNode("div", {
145
+ "style": {
146
+ flex: 1
147
+ },
148
+ "class": `${prefixCls}-menu`
149
+ }, [topHeaderMenuRender ? topHeaderMenuRender() : _createVNode(BaseMenu, {
150
+ "prefixCls": propPrefixCls,
151
+ "locale": props.locale || context.locale,
152
+ "theme": props.theme,
153
+ "mode": _mode.value,
154
+ "collapsed": props.collapsed,
155
+ "iconfontUrl": props.iconfontUrl,
156
+ "menuData": MenusData,
157
+ "menuItemRender": props.menuItemRender,
158
+ "subMenuItemRender": props.subMenuItemRender,
159
+ "openKeys": context.openKeys,
160
+ "selectedKeys": context.selectedKeys,
161
+ "class": {
162
+ 'top-nav-menu': props.mode === 'horizontal'
163
+ },
164
+ "onUpdate:openKeys": $event => onOpenKeys && onOpenKeys($event),
165
+ "onUpdate:selectedKeys": $event => onSelect && onSelect($event)
166
+ }, null)]), rightContentRender && _createVNode(RightContent, _mergeProps({
167
+ "rightContentRender": rightContentRender
168
+ }, props), null)])]);
169
+ };
178
170
  export default TopNavHeader;
@@ -32,7 +32,7 @@ export default defineComponent({
32
32
  return {
33
33
  hashId,
34
34
  contextLocale,
35
- _message,
35
+ alertMessage: _message,
36
36
  onClose
37
37
  };
38
38
  }
@@ -69,11 +69,11 @@ export default defineComponent({
69
69
  return {
70
70
  hashId,
71
71
  contextLocale,
72
- _columns,
73
- _slots,
74
- _scroll,
72
+ tableColumns: _columns,
73
+ tableSlots: _slots,
74
+ tableScroll: _scroll,
75
75
  gridTemplateColumns,
76
- __rowSelection,
76
+ mergedRowSelection: __rowSelection,
77
77
  indeterminate,
78
78
  checkedAll,
79
79
  onClick,
@@ -49,7 +49,7 @@ export default defineComponent({
49
49
  return {
50
50
  hashId,
51
51
  className,
52
- _showTotal,
52
+ showTotal: _showTotal,
53
53
  onChange
54
54
  };
55
55
  }
@@ -242,15 +242,15 @@ export default defineComponent({
242
242
  slots,
243
243
  hashId,
244
244
  loading,
245
- _dataSource,
246
- _mode,
245
+ tableDataSource: _dataSource,
246
+ currentMode: _mode,
247
247
  column,
248
248
  page,
249
249
  myPagination,
250
250
  showAlert,
251
251
  showPagination,
252
252
  extraSlots,
253
- _rowSelection,
253
+ injectRowSelection: _rowSelection,
254
254
  onCheck,
255
255
  onPageChange,
256
256
  onClose
@@ -19,7 +19,7 @@ export const _alertProps = {
19
19
  default: true
20
20
  },
21
21
  rowSelection: {
22
- type: Object,
22
+ type: [Object, Boolean],
23
23
  default: () => undefined
24
24
  }
25
25
  }