@fly-vue/lcdp-iview 1.6.4 → 1.6.5
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.
- package/@types/module/action-nodes/impl/http-download.d.ts +6 -0
- package/@types/module/action-nodes/impl/table-grid.d.ts +8 -0
- package/@types/module/components/attribute/base-attr-components.d.ts +0 -52
- package/@types/module/components/attribute/prop-value-editor/array-editor/create-edit-dialog.d.ts +10 -0
- package/@types/module/components/attribute/prop-value-editor/array-editor/index.vue.d.ts +114 -0
- package/@types/module/components/attribute/prop-value-editor/array-editor/use-array-updater.d.ts +10 -0
- package/@types/module/components/attribute/prop-value-editor/base-props.d.ts +9 -0
- package/@types/module/components/attribute/prop-value-editor/common/use-input-type.d.ts +8 -0
- package/@types/module/components/attribute/prop-value-editor/filters-editor/filter.vue.d.ts +14 -0
- package/@types/module/components/attribute/prop-value-editor/filters-editor/filters.vue.d.ts +14 -0
- package/@types/module/components/attribute/prop-value-editor/filters-editor/index.vue.d.ts +14 -0
- package/@types/module/components/attribute/prop-value-editor/index.d.ts +8 -0
- package/@types/module/components/attribute/prop-value-editor/json-editor.vue.d.ts +14 -0
- package/@types/module/components/attribute/prop-value-editor/name-values-editor.vue.d.ts +58 -0
- package/@types/module/components/attribute/prop-value-editor/object-editor.vue.d.ts +59 -0
- package/@types/module/components/components/IvTableGrid/index.vue.d.ts +21 -5
- package/@types/module/components/components/base/IvIframe/index.vue.d.ts +1 -1
- package/@types/module/components/components/base/IvText/index.vue.d.ts +2 -0
- package/@types/module/components/index.d.ts +30 -83
- package/@types/module/index.d.ts +0 -1
- package/@types/module/schema-extend/components/form.d.ts +43 -0
- package/@types/module/schema-extend/components/layout.d.ts +14 -0
- package/@types/module/schema-extend/components/tree.d.ts +3 -0
- package/bingo-builder-manifest.json +10 -9
- package/index.js +4 -4
- package/modules/fly_vue_lcdp_iview/assets/css/app.css +1 -1
- package/modules/fly_vue_lcdp_iview/assets/css/{lcdp-iview-attrcomponent.97fc26c7.css → lcdp-iview-attrcomponent.e7f782ee.css} +1 -1
- package/modules/fly_vue_lcdp_iview/assets/css/lcdp-iview-component.a1a342fc.css +1 -0
- package/modules/fly_vue_lcdp_iview/assets/fonts/ladp-viewicon.da157587.eot +0 -0
- package/modules/fly_vue_lcdp_iview/assets/fonts/ladp-viewicon.db157a8f.ttf +0 -0
- package/modules/fly_vue_lcdp_iview/assets/img/img.283cf33d.jpg +0 -0
- package/modules/fly_vue_lcdp_iview/chunk-732b533d.e013704f9413f86c5e64.js +1 -0
- package/modules/fly_vue_lcdp_iview/dll.js +12 -6
- package/modules/fly_vue_lcdp_iview/{lcdp-designer-components.28d924abe8b3ca5d9fef.js → lcdp-designer-components.e013704f9413f86c5e64.js} +0 -0
- package/modules/fly_vue_lcdp_iview/lcdp-iview-attrcomponent.e013704f9413f86c5e64.js +1 -0
- package/modules/fly_vue_lcdp_iview/lcdp-iview-basecomponent.e013704f9413f86c5e64.js +1 -0
- package/modules/fly_vue_lcdp_iview/lcdp-iview-component.e013704f9413f86c5e64.js +1 -0
- package/modules/fly_vue_lcdp_iview/{lcdp-renderer-components.28d924abe8b3ca5d9fef.js → lcdp-renderer-components.e013704f9413f86c5e64.js} +1 -1
- package/modules/fly_vue_lcdp_iview/vendors~lcdp-iview-attrcomponent.e013704f9413f86c5e64.js +1 -0
- package/package.json +8 -8
- package/@types/module/components/attribute/RadioGroupAttrEdit.vue.d.ts +0 -35
- package/@types/module/components/attribute/TableColAttrEdit.vue.d.ts +0 -129
- package/@types/module/components/attribute/designer/common/index.d.ts +0 -2
- package/@types/module/components/attribute/designer/common/use-action-expression-context.d.ts +0 -15
- package/@types/module/components/attribute/designer/common/use-expression-dialog.d.ts +0 -11
- package/modules/fly_vue_lcdp_iview/assets/css/lcdp-iview-component.d98cf78a.css +0 -1
- package/modules/fly_vue_lcdp_iview/assets/fonts/ladp-viewicon.8e648ade.ttf +0 -0
- package/modules/fly_vue_lcdp_iview/assets/fonts/ladp-viewicon.b3a507ca.eot +0 -0
- package/modules/fly_vue_lcdp_iview/assets/img/img.3ed67b0a.jpg +0 -0
- package/modules/fly_vue_lcdp_iview/chunk-732b533d.28d924abe8b3ca5d9fef.js +0 -1
- package/modules/fly_vue_lcdp_iview/lcdp-iview-attrcomponent.28d924abe8b3ca5d9fef.js +0 -1
- package/modules/fly_vue_lcdp_iview/lcdp-iview-basecomponent.28d924abe8b3ca5d9fef.js +0 -1
- package/modules/fly_vue_lcdp_iview/lcdp-iview-component.28d924abe8b3ca5d9fef.js +0 -1
|
@@ -4,6 +4,11 @@ declare const _default: {
|
|
|
4
4
|
DesignLcdpInlineRenderer: () => Promise<typeof import("./for-designer/LcdpInlineRenderer.vue")>;
|
|
5
5
|
LcdpInlineRenderer: () => Promise<typeof import("./for-renderer/inline-renderer/index.vue")>;
|
|
6
6
|
VarInput: () => Promise<typeof import("./attribute/designer/prop-value-editor/var-input/index.vue")>;
|
|
7
|
+
TableFiltersEditor: () => Promise<typeof import("./attribute/prop-value-editor/filters-editor/index.vue")>;
|
|
8
|
+
SimpleJsonEditor: () => Promise<typeof import("./attribute/prop-value-editor/json-editor.vue")>;
|
|
9
|
+
ObjectEditor: () => Promise<typeof import("./attribute/prop-value-editor/object-editor.vue")>;
|
|
10
|
+
ArrayEditor: () => Promise<typeof import("./attribute/prop-value-editor/array-editor/index.vue")>;
|
|
11
|
+
NameValuesEditor: () => Promise<typeof import("./attribute/prop-value-editor/name-values-editor.vue")>;
|
|
7
12
|
AutoCompleteAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
8
13
|
ColSelectAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
9
14
|
FlexAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
@@ -16,24 +21,25 @@ declare const _default: {
|
|
|
16
21
|
MonacoAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
17
22
|
OptionAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
18
23
|
PagerAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
19
|
-
RadioGroupAttrEdit: () => Promise<typeof import("
|
|
24
|
+
RadioGroupAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
20
25
|
RulesAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
26
|
+
RulesAttrEditSchema: () => Promise<typeof import("*.vue")>;
|
|
21
27
|
SliderAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
22
28
|
StrokeColorAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
23
29
|
StyleAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
24
30
|
TabPanelAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
25
|
-
TableColAttrEdit: () => Promise<typeof import("
|
|
31
|
+
TableColAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
26
32
|
TableSearchAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
27
33
|
TextareaAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
28
34
|
AttrSelectAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
29
35
|
FormIdSelectAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
36
|
+
TableIdSelectAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
30
37
|
StepIdSelectAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
31
38
|
ScheamPropertiesAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
32
39
|
IvTableDataAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
33
40
|
MenuTreeAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
34
41
|
FileTypeAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
35
42
|
FileSizeAttrEdit: () => Promise<typeof import("*.vue")>;
|
|
36
|
-
TableFiltersEditor: () => Promise<typeof import("./attribute/prop-value-editor/filters-editor/index.vue")>;
|
|
37
43
|
IvFormItem: () => Promise<any>;
|
|
38
44
|
IvFormTimePicker: () => Promise<any>;
|
|
39
45
|
IvFormSwitch: () => Promise<any>;
|
|
@@ -84,7 +90,7 @@ declare const _default: {
|
|
|
84
90
|
IvTreeSelect: () => Promise<any>;
|
|
85
91
|
IvUpload: () => Promise<typeof import("*.vue")>;
|
|
86
92
|
Page: () => Promise<typeof import("*.vue")>;
|
|
87
|
-
IvTree: () => Promise<
|
|
93
|
+
IvTree: () => Promise<typeof import("*.vue")>;
|
|
88
94
|
IvTransfer: () => Promise<any>;
|
|
89
95
|
IvCarouselItem: () => Promise<any>;
|
|
90
96
|
IvCalendar: () => Promise<any>;
|
|
@@ -148,6 +154,10 @@ declare const _default: {
|
|
|
148
154
|
type: BooleanConstructor;
|
|
149
155
|
default: boolean;
|
|
150
156
|
};
|
|
157
|
+
selectRowSingle: {
|
|
158
|
+
type: BooleanConstructor;
|
|
159
|
+
default: boolean;
|
|
160
|
+
};
|
|
151
161
|
size: {
|
|
152
162
|
validator(value: any): boolean;
|
|
153
163
|
};
|
|
@@ -164,10 +174,10 @@ declare const _default: {
|
|
|
164
174
|
type: BooleanConstructor;
|
|
165
175
|
default: boolean;
|
|
166
176
|
};
|
|
167
|
-
/**
|
|
168
|
-
* @description: // 基础组件
|
|
169
|
-
*/
|
|
170
177
|
border: {
|
|
178
|
+
/**
|
|
179
|
+
* @description: // 基础组件
|
|
180
|
+
*/
|
|
171
181
|
type: BooleanConstructor;
|
|
172
182
|
default: boolean;
|
|
173
183
|
};
|
|
@@ -292,8 +302,10 @@ declare const _default: {
|
|
|
292
302
|
deleteRow: (num: number | number[], callback: any) => any;
|
|
293
303
|
getSelectData: (id: any) => any;
|
|
294
304
|
gridTable: import("vue").Ref<any>;
|
|
295
|
-
onContextmenu: (row: any, event: any) => void;
|
|
296
|
-
}, {}, {}, {
|
|
305
|
+
onContextmenu: (row: any, event: any, position: any) => void;
|
|
306
|
+
}, {}, {}, {
|
|
307
|
+
onRowClick(selection: any, index: any): void;
|
|
308
|
+
}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
297
309
|
pagerProps: {
|
|
298
310
|
type: import("vue").PropType<import("./components/IvTableGrid/pager-props").PagerProps>;
|
|
299
311
|
};
|
|
@@ -346,6 +358,10 @@ declare const _default: {
|
|
|
346
358
|
type: BooleanConstructor;
|
|
347
359
|
default: boolean;
|
|
348
360
|
};
|
|
361
|
+
selectRowSingle: {
|
|
362
|
+
type: BooleanConstructor;
|
|
363
|
+
default: boolean;
|
|
364
|
+
};
|
|
349
365
|
size: {
|
|
350
366
|
validator(value: any): boolean;
|
|
351
367
|
};
|
|
@@ -362,10 +378,10 @@ declare const _default: {
|
|
|
362
378
|
type: BooleanConstructor;
|
|
363
379
|
default: boolean;
|
|
364
380
|
};
|
|
365
|
-
/**
|
|
366
|
-
* @description: // 基础组件
|
|
367
|
-
*/
|
|
368
381
|
border: {
|
|
382
|
+
/**
|
|
383
|
+
* @description: // 基础组件
|
|
384
|
+
*/
|
|
369
385
|
type: BooleanConstructor;
|
|
370
386
|
default: boolean;
|
|
371
387
|
};
|
|
@@ -454,6 +470,7 @@ declare const _default: {
|
|
|
454
470
|
default: number;
|
|
455
471
|
};
|
|
456
472
|
}>>, {
|
|
473
|
+
draggable: boolean;
|
|
457
474
|
loading: boolean;
|
|
458
475
|
border: boolean;
|
|
459
476
|
contextMenu: boolean;
|
|
@@ -465,12 +482,12 @@ declare const _default: {
|
|
|
465
482
|
visiblePage: boolean;
|
|
466
483
|
loadOnMounted: boolean;
|
|
467
484
|
showChildren: boolean;
|
|
485
|
+
selectRowSingle: boolean;
|
|
468
486
|
stripe: boolean;
|
|
469
487
|
showHeader: boolean;
|
|
470
488
|
highlightRow: boolean;
|
|
471
489
|
rowClassName: Function;
|
|
472
490
|
disabledHover: boolean;
|
|
473
|
-
draggable: boolean;
|
|
474
491
|
tooltipTheme: string;
|
|
475
492
|
tooltipMaxWidth: number;
|
|
476
493
|
rowKey: string | boolean;
|
|
@@ -518,104 +535,34 @@ declare const _default: {
|
|
|
518
535
|
IamFormMemberSelect: any;
|
|
519
536
|
IamFormOrgSelect: any;
|
|
520
537
|
SingleLineText: {
|
|
521
|
-
/**
|
|
522
|
-
* @description: // 基础组件
|
|
523
|
-
*/
|
|
524
538
|
functional: boolean;
|
|
525
539
|
props: string[];
|
|
526
540
|
render(createElement: any, context: any): any;
|
|
527
541
|
};
|
|
528
542
|
Number: {
|
|
529
|
-
/**
|
|
530
|
-
* @description: // 基础组件
|
|
531
|
-
*/
|
|
532
543
|
functional: boolean;
|
|
533
544
|
props: string[];
|
|
534
545
|
render(createElement: any, context: any): any;
|
|
535
546
|
};
|
|
536
547
|
Boolean: {
|
|
537
|
-
/**
|
|
538
|
-
* @description: // 基础组件
|
|
539
|
-
*/
|
|
540
548
|
functional: boolean;
|
|
541
549
|
props: string[];
|
|
542
550
|
render(createElement: any, context: any): any;
|
|
543
551
|
};
|
|
544
552
|
SingleSelect: {
|
|
545
|
-
/**
|
|
546
|
-
* @description: // 基础组件
|
|
547
|
-
*/
|
|
548
553
|
functional: boolean;
|
|
549
554
|
props: string[];
|
|
550
555
|
render(createElement: any, context: any): any;
|
|
551
556
|
};
|
|
552
557
|
MultipleSelect: {
|
|
553
|
-
/**
|
|
554
|
-
* @description: // 基础组件
|
|
555
|
-
*/
|
|
556
558
|
functional: boolean;
|
|
557
559
|
props: string[];
|
|
558
560
|
render(createElement: any, context: any): any;
|
|
559
561
|
};
|
|
560
562
|
TitleAttrEdit: {
|
|
561
|
-
/**
|
|
562
|
-
* @description: // 基础组件
|
|
563
|
-
*/
|
|
564
563
|
functional: boolean;
|
|
565
564
|
props: string[];
|
|
566
565
|
render(createElement: any, context: any): any;
|
|
567
566
|
};
|
|
568
|
-
SimpleJsonEditor: import("vue").DefineComponent<{
|
|
569
|
-
value: {
|
|
570
|
-
type: (ObjectConstructor | ArrayConstructor | NumberConstructor | StringConstructor)[];
|
|
571
|
-
};
|
|
572
|
-
rows: {
|
|
573
|
-
type: (NumberConstructor | StringConstructor)[];
|
|
574
|
-
default: number;
|
|
575
|
-
};
|
|
576
|
-
propSchema: {
|
|
577
|
-
type: ObjectConstructor;
|
|
578
|
-
};
|
|
579
|
-
schemas: {
|
|
580
|
-
type: import("vue").PropType<import("@fly-vue/lcdp-engine").SchemaDefs>;
|
|
581
|
-
required: boolean;
|
|
582
|
-
};
|
|
583
|
-
service: {
|
|
584
|
-
type: import("vue").PropType<import("@fly-vue/lcdp-designer/@types/ui-designer/common/services").Service>;
|
|
585
|
-
required: boolean;
|
|
586
|
-
};
|
|
587
|
-
node: {
|
|
588
|
-
type: ObjectConstructor;
|
|
589
|
-
required: boolean;
|
|
590
|
-
};
|
|
591
|
-
}, {
|
|
592
|
-
innerValue: import("vue").Ref<string>;
|
|
593
|
-
hasError: import("vue").Ref<boolean>;
|
|
594
|
-
}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
595
|
-
value: {
|
|
596
|
-
type: (ObjectConstructor | ArrayConstructor | NumberConstructor | StringConstructor)[];
|
|
597
|
-
};
|
|
598
|
-
rows: {
|
|
599
|
-
type: (NumberConstructor | StringConstructor)[];
|
|
600
|
-
default: number;
|
|
601
|
-
};
|
|
602
|
-
propSchema: {
|
|
603
|
-
type: ObjectConstructor;
|
|
604
|
-
};
|
|
605
|
-
schemas: {
|
|
606
|
-
type: import("vue").PropType<import("@fly-vue/lcdp-engine").SchemaDefs>;
|
|
607
|
-
required: boolean;
|
|
608
|
-
};
|
|
609
|
-
service: {
|
|
610
|
-
type: import("vue").PropType<import("@fly-vue/lcdp-designer/@types/ui-designer/common/services").Service>;
|
|
611
|
-
required: boolean;
|
|
612
|
-
};
|
|
613
|
-
node: {
|
|
614
|
-
type: ObjectConstructor;
|
|
615
|
-
required: boolean;
|
|
616
|
-
};
|
|
617
|
-
}>>, {
|
|
618
|
-
rows: string | number;
|
|
619
|
-
}>;
|
|
620
567
|
};
|
|
621
568
|
export default _default;
|
package/@types/module/index.d.ts
CHANGED
|
@@ -8,4 +8,3 @@ export declare const AdaptivePageModule: IWebModule;
|
|
|
8
8
|
export { register as registerActionNodes } from './action-nodes/index';
|
|
9
9
|
export { default as StyleEditor } from './components/attribute/StyleAttrEdit.vue';
|
|
10
10
|
export { validateProcessor } from './validate-processor';
|
|
11
|
-
export * from './components/attribute/designer/common';
|
|
@@ -417,5 +417,48 @@ declare const _default: {
|
|
|
417
417
|
};
|
|
418
418
|
};
|
|
419
419
|
};
|
|
420
|
+
ValidateRules: {
|
|
421
|
+
properties: {
|
|
422
|
+
label: {
|
|
423
|
+
turnOn({ model, node, service }: {
|
|
424
|
+
model: any;
|
|
425
|
+
node: any;
|
|
426
|
+
service: any;
|
|
427
|
+
}): boolean;
|
|
428
|
+
};
|
|
429
|
+
required: {
|
|
430
|
+
turnOn({ model }: {
|
|
431
|
+
model: any;
|
|
432
|
+
}): boolean;
|
|
433
|
+
};
|
|
434
|
+
min: {
|
|
435
|
+
turnOn({ model }: {
|
|
436
|
+
model: any;
|
|
437
|
+
}): boolean;
|
|
438
|
+
};
|
|
439
|
+
max: {
|
|
440
|
+
turnOn({ model }: {
|
|
441
|
+
model: any;
|
|
442
|
+
}): boolean;
|
|
443
|
+
};
|
|
444
|
+
size: {
|
|
445
|
+
turnOn({ model }: {
|
|
446
|
+
model: any;
|
|
447
|
+
}): boolean;
|
|
448
|
+
};
|
|
449
|
+
pattern: {
|
|
450
|
+
turnOn({ model, node, service }: {
|
|
451
|
+
model: any;
|
|
452
|
+
node: any;
|
|
453
|
+
service: any;
|
|
454
|
+
}): boolean;
|
|
455
|
+
};
|
|
456
|
+
method: {
|
|
457
|
+
turnOn({ model }: {
|
|
458
|
+
model: any;
|
|
459
|
+
}): boolean;
|
|
460
|
+
};
|
|
461
|
+
};
|
|
462
|
+
};
|
|
420
463
|
};
|
|
421
464
|
export default _default;
|
|
@@ -159,6 +159,20 @@ declare const _default: {
|
|
|
159
159
|
service: any;
|
|
160
160
|
node: any;
|
|
161
161
|
}): void;
|
|
162
|
+
properties: {
|
|
163
|
+
name: {
|
|
164
|
+
mock: ({ node, service }: {
|
|
165
|
+
node: any;
|
|
166
|
+
service: any;
|
|
167
|
+
}) => any;
|
|
168
|
+
};
|
|
169
|
+
index: {
|
|
170
|
+
turnOn({ node, model }: {
|
|
171
|
+
node: any;
|
|
172
|
+
model: any;
|
|
173
|
+
}): boolean;
|
|
174
|
+
};
|
|
175
|
+
};
|
|
162
176
|
};
|
|
163
177
|
};
|
|
164
178
|
export default _default;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"date": "
|
|
2
|
+
"date": "20221123151258",
|
|
3
|
+
"distModuleDir": "modules/fly_vue_lcdp_iview",
|
|
3
4
|
"distModuleDirName": "modules",
|
|
4
5
|
"dll": true,
|
|
5
6
|
"moduleDependencieVer": {
|
|
6
|
-
"@fly-vue/components": "1.6.
|
|
7
|
-
"@fly-vue/core": "1.6.
|
|
8
|
-
"@fly-vue/iview-pro": "1.6.
|
|
9
|
-
"@fly-vue/lcdp-designer": "1.6.
|
|
10
|
-
"@fly-vue/lcdp-engine": "1.6.
|
|
11
|
-
"@fly-vue/ufs": "1.6.
|
|
12
|
-
"@fly-vue/use": "1.6.
|
|
7
|
+
"@fly-vue/components": "1.6.5",
|
|
8
|
+
"@fly-vue/core": "1.6.5",
|
|
9
|
+
"@fly-vue/iview-pro": "1.6.5",
|
|
10
|
+
"@fly-vue/lcdp-designer": "1.6.5",
|
|
11
|
+
"@fly-vue/lcdp-engine": "1.6.5",
|
|
12
|
+
"@fly-vue/ufs": "1.6.5",
|
|
13
|
+
"@fly-vue/use": "1.6.5"
|
|
13
14
|
},
|
|
14
15
|
"moduleDependencies": [
|
|
15
16
|
"@fly-vue/core",
|
|
@@ -23,5 +24,5 @@
|
|
|
23
24
|
"name": "@fly-vue/lcdp-iview",
|
|
24
25
|
"npmPacks": [
|
|
25
26
|
],
|
|
26
|
-
"version": "1.6.
|
|
27
|
+
"version": "1.6.5"
|
|
27
28
|
}
|