@jetlinks-web/components 2.0.1 → 2.0.2-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.
@@ -1,441 +1,441 @@
1
- import { withInstall } from 'ant-design-vue/es/_util/type';
2
- import {
3
- TabPaneProps,
4
- Affix,
5
- Spin,
6
- PageHeader,
7
- Tabs,
8
- Button,
9
- } from 'ant-design-vue';
10
- import type {
11
- ExtractPropTypes,
12
- FunctionalComponent,
13
- PropType,
14
- VNodeChild,
15
- CSSProperties,
16
- } from 'vue';
17
- import { defineComponent, unref, toRefs, computed } from 'vue';
18
- import { pageHeaderProps } from 'ant-design-vue/lib/page-header';
19
- import type { DefaultPropRender, PageHeaderRender } from '../typings';
20
- import type { AffixProps, TabBarExtraContent } from './typings';
21
- import { useRouteContext } from '../RouteContext';
22
- import { getSlotVNode } from '../util';
23
- import { VueNode } from 'ant-design-vue/lib/_util/type';
24
- import './index.less';
25
-
26
- export const pageHeaderTabConfig = {
27
- /**
28
- * @name tabs 的列表
29
- */
30
- tabList: {
31
- type: [Object, Function, Array] as PropType<
32
- (Omit<TabPaneProps, 'id'> & { key?: string; class: string })[]
33
- >,
34
- default: () => undefined,
35
- },
36
- /**
37
- * @name 当前选中 tab 的 key
38
- */
39
- tabActiveKey: String, //PropTypes.string,
40
- /**
41
- * @name tab 上多余的区域
42
- */
43
- tabBarExtraContent: {
44
- type: [Object, Function] as PropType<TabBarExtraContent>,
45
- default: () => undefined,
46
- },
47
- /**
48
- * @name tabs 的其他配置
49
- */
50
- tabProps: {
51
- type: Object, //as PropType<TabsProps>,
52
- default: () => undefined,
53
- },
54
- /**
55
- * @name 固定 PageHeader 到页面顶部
56
- */
57
- fixedHeader: Boolean, //PropTypes.looseBool,
58
- // events
59
- onTabChange: Function, //PropTypes.func,
60
- pure: Boolean,
61
- };
62
- export type PageHeaderTabConfig = Partial<
63
- ExtractPropTypes<typeof pageHeaderTabConfig>
64
- >;
65
-
66
- export const pageContainerProps = {
67
- ...pageHeaderTabConfig,
68
- ...pageHeaderProps,
69
- prefixCls: {
70
- type: String,
71
- default: 'ant-pro',
72
- }, //PropTypes.string.def('ant-pro'),
73
- title: {
74
- type: [
75
- Object,
76
- String,
77
- Boolean,
78
- Function,
79
- ] as PropType<DefaultPropRender>,
80
- default: () => null,
81
- },
82
- subTitle: {
83
- type: [
84
- Object,
85
- String,
86
- Boolean,
87
- Function,
88
- ] as PropType<DefaultPropRender>,
89
- default: () => null,
90
- },
91
- content: {
92
- type: [
93
- Object,
94
- String,
95
- Boolean,
96
- Function,
97
- ] as PropType<DefaultPropRender>,
98
- default: () => null,
99
- },
100
- extra: {
101
- type: [
102
- Object,
103
- String,
104
- Boolean,
105
- Function,
106
- ] as PropType<DefaultPropRender>,
107
- default: () => null,
108
- },
109
- extraContent: {
110
- type: [
111
- Object,
112
- String,
113
- Boolean,
114
- Function,
115
- ] as PropType<DefaultPropRender>,
116
- default: () => null,
117
- },
118
- header: {
119
- type: [
120
- Object,
121
- String,
122
- Boolean,
123
- Function,
124
- ] as PropType<DefaultPropRender>,
125
- default: () => null,
126
- },
127
- pageHeaderRender: {
128
- type: [Object, Function, Boolean] as PropType<PageHeaderRender>,
129
- default: () => undefined,
130
- },
131
- affixProps: {
132
- type: [Object, Function] as PropType<AffixProps>,
133
- },
134
- ghost: {
135
- type: Boolean,
136
- default: () => false,
137
- }, //PropTypes.looseBool,
138
- loading: {
139
- type: Boolean,
140
- default: () => undefined,
141
- }, //PropTypes.looseBool,
142
- childrenFullHeight: {
143
- type: Boolean,
144
- default: () => true,
145
- },
146
- pure: {
147
- type: Boolean,
148
- default: false,
149
- },
150
- showBack: {
151
- type: Boolean,
152
- default: false,
153
- },
154
- contentStyle: {
155
- type: Object,
156
- default: () => ({}),
157
- },
158
- };
159
-
160
- export type PageContainerProps = Partial<
161
- ExtractPropTypes<typeof pageContainerProps>
162
- >;
163
-
164
- const renderFooter = (
165
- props: Omit<PageContainerProps, 'title'>,
166
- ): VNodeChild | JSX.Element => {
167
- const { tabList, tabActiveKey, onTabChange, tabBarExtraContent, tabProps } =
168
- props;
169
- const tabPane = (item: any) => {
170
- return (
171
- <span class={item.class || `tab-pane-${item.key}`}>{item.tab}</span>
172
- );
173
- };
174
- if (tabList && tabList.length) {
175
- return (
176
- <Tabs
177
- class={`page-container-tabs`}
178
- activeKey={tabActiveKey}
179
- onChange={(key: string | number) => {
180
- if (onTabChange) {
181
- onTabChange(key);
182
- }
183
- }}
184
- tabBarExtraContent={tabBarExtraContent}
185
- {...tabProps}
186
- >
187
- {tabList.map((item) => (
188
- <Tabs.TabPane
189
- {...item}
190
- tab={tabPane(item)}
191
- key={item.key}
192
- />
193
- ))}
194
- </Tabs>
195
- );
196
- }
197
- return null;
198
- };
199
-
200
- const renderPageHeader = (
201
- content: VueNode,
202
- extraContent: VueNode | any,
203
- prefixedClassName: string,
204
- ): VNodeChild | JSX.Element | null => {
205
- if (!content && !extraContent) {
206
- return null;
207
- }
208
- return (
209
- <div class={`${prefixedClassName}-detail`}>
210
- <div class={`${prefixedClassName}-main`}>
211
- <div class={`${prefixedClassName}-row`}>
212
- {content && (
213
- <div class={`${prefixedClassName}-content`}>
214
- {
215
- // @ts-ignore
216
- (typeof content === 'function' && content()) ||
217
- content
218
- }
219
- </div>
220
- )}
221
- {extraContent && (
222
- <div class={`${prefixedClassName}-extraContent`}>
223
- {
224
- // @ts-ignore
225
- (typeof extraContent === 'function' &&
226
- extraContent()) ||
227
- extraContent
228
- }
229
- </div>
230
- )}
231
- </div>
232
- </div>
233
- </div>
234
- );
235
- };
236
-
237
- const ProPageHeader: FunctionalComponent<
238
- PageContainerProps & { prefixedClassName: string }
239
- > = (props) => {
240
- const {
241
- title,
242
- tabList,
243
- tabActiveKey,
244
- content,
245
- pageHeaderRender,
246
- header,
247
- extraContent,
248
- prefixedClassName,
249
- prefixCls,
250
- fixedHeader: _,
251
- showBack,
252
- ...restProps
253
- } = props;
254
-
255
- const value = useRouteContext();
256
-
257
- if (pageHeaderRender === false) {
258
- return null;
259
- }
260
-
261
- if (pageHeaderRender) {
262
- return pageHeaderRender({ ...props });
263
- }
264
- let pageHeaderTitle = title;
265
- if (!title && title !== false) {
266
- pageHeaderTitle = value.title;
267
- }
268
-
269
- const unrefBreadcrumb = unref(value.breadcrumb || {});
270
- const breadcrumb = (props as any).breadcrumb || {
271
- ...unrefBreadcrumb,
272
- routes: unrefBreadcrumb.routes,
273
- itemRender: unrefBreadcrumb.itemRender,
274
- };
275
-
276
- const backProps: any = {};
277
-
278
- if (showBack) {
279
- // @ts-ignore
280
- backProps.backIcon = <Button>返回</Button>;
281
- backProps.onBack = () => {
282
- value.back?.();
283
- };
284
- }
285
-
286
- return (
287
- <div class={`${prefixedClassName}-wrap`}>
288
- <PageHeader
289
- {...backProps}
290
- {...restProps}
291
- // {...value}
292
- title={pageHeaderTitle}
293
- breadcrumb={breadcrumb}
294
- footer={renderFooter({
295
- ...restProps,
296
- tabList,
297
- tabActiveKey,
298
- })}
299
- prefixCls={prefixCls}
300
- >
301
- {header ||
302
- renderPageHeader(content, extraContent, prefixedClassName)}
303
- </PageHeader>
304
- </div>
305
- );
306
- };
307
-
308
- const PageContainer = defineComponent({
309
- name: 'JPageContainer',
310
- inheritAttrs: false,
311
- props: pageContainerProps,
312
- setup(props, { slots, attrs }) {
313
- const { loading, affixProps, ghost, childrenFullHeight } =
314
- toRefs(props);
315
-
316
- const value = useRouteContext();
317
- const { getPrefixCls } = value;
318
- const prefixCls = props.prefixCls || getPrefixCls();
319
-
320
- const prefixedClassName = computed(() => `${prefixCls}-page-container`);
321
- const classNames = computed(() => {
322
- return {
323
- [prefixedClassName.value]: true,
324
- [`${prefixCls}-page-container-ghost`]: ghost.value,
325
- };
326
- });
327
-
328
- const headerDom = computed(() => {
329
- // const tags = getSlotVNode<DefaultPropRender>(slots, props, 'tags');
330
- const headerContent = getSlotVNode<DefaultPropRender>(
331
- slots,
332
- props,
333
- 'content',
334
- );
335
- const extra = getSlotVNode<DefaultPropRender>(
336
- slots,
337
- props,
338
- 'extra',
339
- );
340
- const extraContent = getSlotVNode<DefaultPropRender>(
341
- slots,
342
- props,
343
- 'extraContent',
344
- );
345
- const subTitle = getSlotVNode<DefaultPropRender>(
346
- slots,
347
- props,
348
- 'subTitle',
349
- );
350
- const title = getSlotVNode<DefaultPropRender>(
351
- slots,
352
- props,
353
- 'title',
354
- );
355
-
356
- // @ts-ignore
357
- return (
358
- <ProPageHeader
359
- {...props}
360
- prefixCls={undefined}
361
- prefixedClassName={prefixedClassName.value}
362
- ghost={ghost.value}
363
- title={title}
364
- subTitle={subTitle}
365
- content={headerContent}
366
- // tags={tags}
367
- extra={extra}
368
- extraContent={extraContent}
369
- />
370
- );
371
- });
372
-
373
- return () => {
374
- const { fixedHeader, pure } = props;
375
- return (
376
- <>
377
- {pure ? (
378
- <div class={classNames.value}>{slots.default?.()}</div>
379
- ) : (
380
- <div
381
- class={classNames.value}
382
- style={{
383
- ...((attrs.style as CSSProperties) || {}),
384
- }}
385
- >
386
- {fixedHeader && headerDom.value ? (
387
- <Affix
388
- {...affixProps.value}
389
- offsetTop={
390
- value.hasHeader && value.fixedHeader
391
- ? value.headerHeight
392
- : 0
393
- }
394
- >
395
- {headerDom.value}
396
- </Affix>
397
- ) : (
398
- headerDom.value
399
- )}
400
- <div
401
- class={`${prefixedClassName.value}-grid-content`}
402
- >
403
- {loading.value ? (
404
- <Spin />
405
- ) : slots.default ? (
406
- <div>
407
- <div
408
- class={`${
409
- prefixedClassName.value
410
- }-children-content ${
411
- childrenFullHeight.value
412
- ? 'children-full-height'
413
- : ''
414
- }`}
415
- style={{
416
- ...((props.contentStyle as CSSProperties) ||
417
- {}),
418
- }}
419
- >
420
- {slots.default()}
421
- </div>
422
- {value.hasFooterToolbar && (
423
- <div
424
- style={{
425
- height: 48,
426
- marginTop: 24,
427
- }}
428
- />
429
- )}
430
- </div>
431
- ) : null}
432
- </div>
433
- </div>
434
- )}
435
- </>
436
- );
437
- };
438
- },
439
- });
440
-
441
- export default withInstall(PageContainer);
1
+ import { withInstall } from 'ant-design-vue/es/_util/type';
2
+ import {
3
+ TabPaneProps,
4
+ Affix,
5
+ Spin,
6
+ PageHeader,
7
+ Tabs,
8
+ Button,
9
+ } from 'ant-design-vue';
10
+ import type {
11
+ ExtractPropTypes,
12
+ FunctionalComponent,
13
+ PropType,
14
+ VNodeChild,
15
+ CSSProperties,
16
+ } from 'vue';
17
+ import { defineComponent, unref, toRefs, computed } from 'vue';
18
+ import { pageHeaderProps } from 'ant-design-vue/es/page-header';
19
+ import type { DefaultPropRender, PageHeaderRender } from '../typings';
20
+ import type { AffixProps, TabBarExtraContent } from './typings';
21
+ import { useRouteContext } from '../RouteContext';
22
+ import { getSlotVNode } from '../util';
23
+ import { VueNode } from 'ant-design-vue/es/_util/type';
24
+ import './index.less';
25
+
26
+ export const pageHeaderTabConfig = {
27
+ /**
28
+ * @name tabs 的列表
29
+ */
30
+ tabList: {
31
+ type: [Object, Function, Array] as PropType<
32
+ (Omit<TabPaneProps, 'id'> & { key?: string; class: string })[]
33
+ >,
34
+ default: () => undefined,
35
+ },
36
+ /**
37
+ * @name 当前选中 tab 的 key
38
+ */
39
+ tabActiveKey: String, //PropTypes.string,
40
+ /**
41
+ * @name tab 上多余的区域
42
+ */
43
+ tabBarExtraContent: {
44
+ type: [Object, Function] as PropType<TabBarExtraContent>,
45
+ default: () => undefined,
46
+ },
47
+ /**
48
+ * @name tabs 的其他配置
49
+ */
50
+ tabProps: {
51
+ type: Object, //as PropType<TabsProps>,
52
+ default: () => undefined,
53
+ },
54
+ /**
55
+ * @name 固定 PageHeader 到页面顶部
56
+ */
57
+ fixedHeader: Boolean, //PropTypes.looseBool,
58
+ // events
59
+ onTabChange: Function, //PropTypes.func,
60
+ pure: Boolean,
61
+ };
62
+ export type PageHeaderTabConfig = Partial<
63
+ ExtractPropTypes<typeof pageHeaderTabConfig>
64
+ >;
65
+
66
+ export const pageContainerProps = {
67
+ ...pageHeaderTabConfig,
68
+ ...pageHeaderProps,
69
+ prefixCls: {
70
+ type: String,
71
+ default: 'ant-pro',
72
+ }, //PropTypes.string.def('ant-pro'),
73
+ title: {
74
+ type: [
75
+ Object,
76
+ String,
77
+ Boolean,
78
+ Function,
79
+ ] as PropType<DefaultPropRender>,
80
+ default: () => null,
81
+ },
82
+ subTitle: {
83
+ type: [
84
+ Object,
85
+ String,
86
+ Boolean,
87
+ Function,
88
+ ] as PropType<DefaultPropRender>,
89
+ default: () => null,
90
+ },
91
+ content: {
92
+ type: [
93
+ Object,
94
+ String,
95
+ Boolean,
96
+ Function,
97
+ ] as PropType<DefaultPropRender>,
98
+ default: () => null,
99
+ },
100
+ extra: {
101
+ type: [
102
+ Object,
103
+ String,
104
+ Boolean,
105
+ Function,
106
+ ] as PropType<DefaultPropRender>,
107
+ default: () => null,
108
+ },
109
+ extraContent: {
110
+ type: [
111
+ Object,
112
+ String,
113
+ Boolean,
114
+ Function,
115
+ ] as PropType<DefaultPropRender>,
116
+ default: () => null,
117
+ },
118
+ header: {
119
+ type: [
120
+ Object,
121
+ String,
122
+ Boolean,
123
+ Function,
124
+ ] as PropType<DefaultPropRender>,
125
+ default: () => null,
126
+ },
127
+ pageHeaderRender: {
128
+ type: [Object, Function, Boolean] as PropType<PageHeaderRender>,
129
+ default: () => undefined,
130
+ },
131
+ affixProps: {
132
+ type: [Object, Function] as PropType<AffixProps>,
133
+ },
134
+ ghost: {
135
+ type: Boolean,
136
+ default: () => false,
137
+ }, //PropTypes.looseBool,
138
+ loading: {
139
+ type: Boolean,
140
+ default: () => undefined,
141
+ }, //PropTypes.looseBool,
142
+ childrenFullHeight: {
143
+ type: Boolean,
144
+ default: () => true,
145
+ },
146
+ pure: {
147
+ type: Boolean,
148
+ default: false,
149
+ },
150
+ showBack: {
151
+ type: Boolean,
152
+ default: false,
153
+ },
154
+ contentStyle: {
155
+ type: Object,
156
+ default: () => ({}),
157
+ },
158
+ };
159
+
160
+ export type PageContainerProps = Partial<
161
+ ExtractPropTypes<typeof pageContainerProps>
162
+ >;
163
+
164
+ const renderFooter = (
165
+ props: Omit<PageContainerProps, 'title'>,
166
+ ): VNodeChild | JSX.Element => {
167
+ const { tabList, tabActiveKey, onTabChange, tabBarExtraContent, tabProps } =
168
+ props;
169
+ const tabPane = (item: any) => {
170
+ return (
171
+ <span class={item.class || `tab-pane-${item.key}`}>{item.tab}</span>
172
+ );
173
+ };
174
+ if (tabList && tabList.length) {
175
+ return (
176
+ <Tabs
177
+ class={`page-container-tabs`}
178
+ activeKey={tabActiveKey}
179
+ onChange={(key: string | number) => {
180
+ if (onTabChange) {
181
+ onTabChange(key);
182
+ }
183
+ }}
184
+ tabBarExtraContent={tabBarExtraContent}
185
+ {...tabProps}
186
+ >
187
+ {tabList.map((item) => (
188
+ <Tabs.TabPane
189
+ {...item}
190
+ tab={tabPane(item)}
191
+ key={item.key}
192
+ />
193
+ ))}
194
+ </Tabs>
195
+ );
196
+ }
197
+ return null;
198
+ };
199
+
200
+ const renderPageHeader = (
201
+ content: VueNode,
202
+ extraContent: VueNode | any,
203
+ prefixedClassName: string,
204
+ ): VNodeChild | JSX.Element | null => {
205
+ if (!content && !extraContent) {
206
+ return null;
207
+ }
208
+ return (
209
+ <div class={`${prefixedClassName}-detail`}>
210
+ <div class={`${prefixedClassName}-main`}>
211
+ <div class={`${prefixedClassName}-row`}>
212
+ {content && (
213
+ <div class={`${prefixedClassName}-content`}>
214
+ {
215
+ // @ts-ignore
216
+ (typeof content === 'function' && content()) ||
217
+ content
218
+ }
219
+ </div>
220
+ )}
221
+ {extraContent && (
222
+ <div class={`${prefixedClassName}-extraContent`}>
223
+ {
224
+ // @ts-ignore
225
+ (typeof extraContent === 'function' &&
226
+ extraContent()) ||
227
+ extraContent
228
+ }
229
+ </div>
230
+ )}
231
+ </div>
232
+ </div>
233
+ </div>
234
+ );
235
+ };
236
+
237
+ const ProPageHeader: FunctionalComponent<
238
+ PageContainerProps & { prefixedClassName: string }
239
+ > = (props) => {
240
+ const {
241
+ title,
242
+ tabList,
243
+ tabActiveKey,
244
+ content,
245
+ pageHeaderRender,
246
+ header,
247
+ extraContent,
248
+ prefixedClassName,
249
+ prefixCls,
250
+ fixedHeader: _,
251
+ showBack,
252
+ ...restProps
253
+ } = props;
254
+
255
+ const value = useRouteContext();
256
+
257
+ if (pageHeaderRender === false) {
258
+ return null;
259
+ }
260
+
261
+ if (pageHeaderRender) {
262
+ return pageHeaderRender({ ...props });
263
+ }
264
+ let pageHeaderTitle = title;
265
+ if (!title && title !== false) {
266
+ pageHeaderTitle = value.title;
267
+ }
268
+
269
+ const unrefBreadcrumb = unref(value.breadcrumb || {});
270
+ const breadcrumb = (props as any).breadcrumb || {
271
+ ...unrefBreadcrumb,
272
+ routes: unrefBreadcrumb.routes,
273
+ itemRender: unrefBreadcrumb.itemRender,
274
+ };
275
+
276
+ const backProps: any = {};
277
+
278
+ if (showBack) {
279
+ // @ts-ignore
280
+ backProps.backIcon = <Button>返回</Button>;
281
+ backProps.onBack = () => {
282
+ value.back?.();
283
+ };
284
+ }
285
+
286
+ return (
287
+ <div class={`${prefixedClassName}-wrap`}>
288
+ <PageHeader
289
+ {...backProps}
290
+ {...restProps}
291
+ // {...value}
292
+ title={pageHeaderTitle}
293
+ breadcrumb={breadcrumb}
294
+ footer={renderFooter({
295
+ ...restProps,
296
+ tabList,
297
+ tabActiveKey,
298
+ })}
299
+ prefixCls={prefixCls}
300
+ >
301
+ {header ||
302
+ renderPageHeader(content, extraContent, prefixedClassName)}
303
+ </PageHeader>
304
+ </div>
305
+ );
306
+ };
307
+
308
+ const PageContainer = defineComponent({
309
+ name: 'JPageContainer',
310
+ inheritAttrs: false,
311
+ props: pageContainerProps,
312
+ setup(props, { slots, attrs }) {
313
+ const { loading, affixProps, ghost, childrenFullHeight } =
314
+ toRefs(props);
315
+
316
+ const value = useRouteContext();
317
+ const { getPrefixCls } = value;
318
+ const prefixCls = props.prefixCls || getPrefixCls();
319
+
320
+ const prefixedClassName = computed(() => `${prefixCls}-page-container`);
321
+ const classNames = computed(() => {
322
+ return {
323
+ [prefixedClassName.value]: true,
324
+ [`${prefixCls}-page-container-ghost`]: ghost.value,
325
+ };
326
+ });
327
+
328
+ const headerDom = computed(() => {
329
+ // const tags = getSlotVNode<DefaultPropRender>(slots, props, 'tags');
330
+ const headerContent = getSlotVNode<DefaultPropRender>(
331
+ slots,
332
+ props,
333
+ 'content',
334
+ );
335
+ const extra = getSlotVNode<DefaultPropRender>(
336
+ slots,
337
+ props,
338
+ 'extra',
339
+ );
340
+ const extraContent = getSlotVNode<DefaultPropRender>(
341
+ slots,
342
+ props,
343
+ 'extraContent',
344
+ );
345
+ const subTitle = getSlotVNode<DefaultPropRender>(
346
+ slots,
347
+ props,
348
+ 'subTitle',
349
+ );
350
+ const title = getSlotVNode<DefaultPropRender>(
351
+ slots,
352
+ props,
353
+ 'title',
354
+ );
355
+
356
+ // @ts-ignore
357
+ return (
358
+ <ProPageHeader
359
+ {...props}
360
+ prefixCls={undefined}
361
+ prefixedClassName={prefixedClassName.value}
362
+ ghost={ghost.value}
363
+ title={title}
364
+ subTitle={subTitle}
365
+ content={headerContent}
366
+ // tags={tags}
367
+ extra={extra}
368
+ extraContent={extraContent}
369
+ />
370
+ );
371
+ });
372
+
373
+ return () => {
374
+ const { fixedHeader, pure } = props;
375
+ return (
376
+ <>
377
+ {pure ? (
378
+ <div class={classNames.value}>{slots.default?.()}</div>
379
+ ) : (
380
+ <div
381
+ class={classNames.value}
382
+ style={{
383
+ ...((attrs.style as CSSProperties) || {}),
384
+ }}
385
+ >
386
+ {fixedHeader && headerDom.value ? (
387
+ <Affix
388
+ {...affixProps.value}
389
+ offsetTop={
390
+ value.hasHeader && value.fixedHeader
391
+ ? value.headerHeight
392
+ : 0
393
+ }
394
+ >
395
+ {headerDom.value}
396
+ </Affix>
397
+ ) : (
398
+ headerDom.value
399
+ )}
400
+ <div
401
+ class={`${prefixedClassName.value}-grid-content`}
402
+ >
403
+ {loading.value ? (
404
+ <Spin />
405
+ ) : slots.default ? (
406
+ <div>
407
+ <div
408
+ class={`${
409
+ prefixedClassName.value
410
+ }-children-content ${
411
+ childrenFullHeight.value
412
+ ? 'children-full-height'
413
+ : ''
414
+ }`}
415
+ style={{
416
+ ...((props.contentStyle as CSSProperties) ||
417
+ {}),
418
+ }}
419
+ >
420
+ {slots.default()}
421
+ </div>
422
+ {value.hasFooterToolbar && (
423
+ <div
424
+ style={{
425
+ height: 48,
426
+ marginTop: 24,
427
+ }}
428
+ />
429
+ )}
430
+ </div>
431
+ ) : null}
432
+ </div>
433
+ </div>
434
+ )}
435
+ </>
436
+ );
437
+ };
438
+ },
439
+ });
440
+
441
+ export default withInstall(PageContainer);