@esic-lab/data-core-ui 0.0.28 → 0.0.30
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/dist/index.css +17 -0
- package/dist/index.d.mts +73 -28
- package/dist/index.d.ts +73 -28
- package/dist/index.js +531 -440
- package/dist/index.mjs +518 -430
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
65
65
|
--default-font-family: var(--font-sans);
|
|
66
66
|
--default-mono-font-family: var(--font-mono);
|
|
67
|
+
--color-primary-700: #3745af;
|
|
67
68
|
--color-primary-500: #4e61f6;
|
|
68
69
|
--color-primary-400: #7181f8;
|
|
69
70
|
--color-primary-200: #aeb6fb;
|
|
@@ -650,6 +651,9 @@
|
|
|
650
651
|
.gap-4 {
|
|
651
652
|
gap: calc(var(--spacing) * 4);
|
|
652
653
|
}
|
|
654
|
+
.gap-10 {
|
|
655
|
+
gap: calc(var(--spacing) * 10);
|
|
656
|
+
}
|
|
653
657
|
.gap-\[8px\] {
|
|
654
658
|
gap: 8px;
|
|
655
659
|
}
|
|
@@ -758,6 +762,10 @@
|
|
|
758
762
|
border-bottom-style: var(--tw-border-style);
|
|
759
763
|
border-bottom-width: 1px;
|
|
760
764
|
}
|
|
765
|
+
.border-b-2 {
|
|
766
|
+
border-bottom-style: var(--tw-border-style);
|
|
767
|
+
border-bottom-width: 2px;
|
|
768
|
+
}
|
|
761
769
|
.border-l-\[10px\] {
|
|
762
770
|
border-left-style: var(--tw-border-style);
|
|
763
771
|
border-left-width: 10px;
|
|
@@ -793,6 +801,12 @@
|
|
|
793
801
|
.border-white {
|
|
794
802
|
border-color: var(--color-white);
|
|
795
803
|
}
|
|
804
|
+
.border-b-gray-200 {
|
|
805
|
+
border-bottom-color: var(--color-gray-200);
|
|
806
|
+
}
|
|
807
|
+
.border-b-primary-700 {
|
|
808
|
+
border-bottom-color: var(--color-primary-700);
|
|
809
|
+
}
|
|
796
810
|
.bg-\[\#E9E9E9\] {
|
|
797
811
|
background-color: #E9E9E9;
|
|
798
812
|
}
|
|
@@ -960,6 +974,9 @@
|
|
|
960
974
|
.text-indigo-800 {
|
|
961
975
|
color: var(--color-indigo-800);
|
|
962
976
|
}
|
|
977
|
+
.text-primary-700 {
|
|
978
|
+
color: var(--color-primary-700);
|
|
979
|
+
}
|
|
963
980
|
.text-red-500 {
|
|
964
981
|
color: var(--color-red-500);
|
|
965
982
|
}
|
package/dist/index.d.mts
CHANGED
|
@@ -3,8 +3,8 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
3
3
|
import react, { ReactNode } from 'react';
|
|
4
4
|
import { ColumnsType } from 'antd/es/table';
|
|
5
5
|
import { EventSourceInput } from '@fullcalendar/core';
|
|
6
|
+
import { InputNumberProps, SelectProps } from 'antd';
|
|
6
7
|
import { Color } from 'antd/es/color-picker';
|
|
7
|
-
import { SelectProps } from 'antd';
|
|
8
8
|
import { MessageInstance } from 'antd/es/message/interface';
|
|
9
9
|
import { ItemType } from 'antd/es/breadcrumb/Breadcrumb';
|
|
10
10
|
|
|
@@ -40,6 +40,17 @@ interface GhostButtonProps {
|
|
|
40
40
|
}
|
|
41
41
|
declare function GhostButton({ title, onClick, iconLeft, iconRight, disabled }: GhostButtonProps): react_jsx_runtime.JSX.Element;
|
|
42
42
|
|
|
43
|
+
interface Title {
|
|
44
|
+
path: string;
|
|
45
|
+
name: string;
|
|
46
|
+
}
|
|
47
|
+
interface ParamTabSelection {
|
|
48
|
+
title: Title[];
|
|
49
|
+
now: string;
|
|
50
|
+
onClickGoto: (path: string) => void;
|
|
51
|
+
}
|
|
52
|
+
declare const TabSelectionButton: ({ title, now, onClickGoto }: ParamTabSelection) => react_jsx_runtime.JSX.Element;
|
|
53
|
+
|
|
43
54
|
interface LoaderProps {
|
|
44
55
|
size?: number;
|
|
45
56
|
color?: string;
|
|
@@ -149,10 +160,11 @@ interface AntDataTableProps<T> {
|
|
|
149
160
|
onRowSelect?: (newSelectedRowKeys: React.Key[]) => void;
|
|
150
161
|
width?: number;
|
|
151
162
|
height?: number;
|
|
163
|
+
pagination?: boolean;
|
|
152
164
|
}
|
|
153
165
|
declare function AntDataTable<T extends {
|
|
154
166
|
key: React.Key;
|
|
155
|
-
}>({ dataSource, columns, pageSize, rowCheckbox, onRowSelect, width, height, }: AntDataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
167
|
+
}>({ dataSource, columns, pageSize, rowCheckbox, onRowSelect, width, height, pagination, }: AntDataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
156
168
|
|
|
157
169
|
interface CalendarProps {
|
|
158
170
|
events: EventSourceInput | undefined;
|
|
@@ -172,6 +184,21 @@ interface TextInputProps {
|
|
|
172
184
|
}
|
|
173
185
|
declare function TextInput({ label, placeholder, type, maxLength, required, error, value, onChange, disabled, }: TextInputProps): react_jsx_runtime.JSX.Element;
|
|
174
186
|
|
|
187
|
+
interface TextAreaProps {
|
|
188
|
+
label?: string;
|
|
189
|
+
height?: number;
|
|
190
|
+
placeholder?: string;
|
|
191
|
+
value: string;
|
|
192
|
+
onChange: (value: string) => void;
|
|
193
|
+
maxLength?: number;
|
|
194
|
+
resizable?: boolean;
|
|
195
|
+
showCount?: boolean;
|
|
196
|
+
required?: boolean;
|
|
197
|
+
error?: string;
|
|
198
|
+
disabled?: boolean;
|
|
199
|
+
}
|
|
200
|
+
declare function TextAreaInput({ label, height, placeholder, onChange, value, maxLength, resizable, showCount, required, error, disabled, }: TextAreaProps): react_jsx_runtime.JSX.Element;
|
|
201
|
+
|
|
175
202
|
interface InputFieldProps {
|
|
176
203
|
value: string | undefined;
|
|
177
204
|
onChange: (value: string | undefined) => void;
|
|
@@ -189,35 +216,30 @@ interface InputFieldProps {
|
|
|
189
216
|
}
|
|
190
217
|
declare function InputField({ value, onChange, placeholder, title, required, bottomText, disabled, error, addonBefore, addonAfter, defaultValue, className, onClear, }: InputFieldProps): react_jsx_runtime.JSX.Element;
|
|
191
218
|
|
|
192
|
-
interface
|
|
193
|
-
|
|
194
|
-
|
|
219
|
+
interface InputFieldNumberProps {
|
|
220
|
+
value: number | string | null;
|
|
221
|
+
onChange: (value: number | string | null) => void;
|
|
195
222
|
placeholder?: string;
|
|
196
|
-
|
|
197
|
-
onChange: (value: string) => void;
|
|
198
|
-
maxLength?: number;
|
|
199
|
-
resizable?: boolean;
|
|
200
|
-
showCount?: boolean;
|
|
223
|
+
title?: string;
|
|
201
224
|
required?: boolean;
|
|
202
|
-
error?: string;
|
|
203
225
|
disabled?: boolean;
|
|
204
|
-
}
|
|
205
|
-
declare function TextAreaInput({ label, height, placeholder, onChange, value, maxLength, resizable, showCount, required, error, disabled, }: TextAreaProps): react_jsx_runtime.JSX.Element;
|
|
206
|
-
|
|
207
|
-
interface ColorPickerProps {
|
|
208
|
-
value: string | null;
|
|
209
|
-
onChange?: (color: Color, hex: string) => void;
|
|
210
|
-
required?: boolean;
|
|
211
|
-
title?: string;
|
|
212
|
-
bottomText?: string;
|
|
213
226
|
error?: string;
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
227
|
+
addonBefore?: React.ReactNode;
|
|
228
|
+
addonAfter?: React.ReactNode;
|
|
229
|
+
defaultValue?: number;
|
|
217
230
|
className?: string;
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
231
|
+
max?: number;
|
|
232
|
+
min?: number;
|
|
233
|
+
controls?: boolean | {
|
|
234
|
+
upIcon?: React.ReactNode;
|
|
235
|
+
downIcon?: React.ReactNode;
|
|
236
|
+
};
|
|
237
|
+
size?: "large" | "middle" | "small";
|
|
238
|
+
changeOnWheel?: boolean;
|
|
239
|
+
formatter?: InputNumberProps["formatter"];
|
|
240
|
+
parser?: InputNumberProps["parser"];
|
|
241
|
+
}
|
|
242
|
+
declare function InputFieldNumber({ value, onChange, placeholder, title, required, disabled, error, addonBefore, addonAfter, defaultValue, className, max, min, controls, size, changeOnWheel, formatter, parser, }: InputFieldNumberProps): react_jsx_runtime.JSX.Element;
|
|
221
243
|
|
|
222
244
|
declare function dayjs (date?: dayjs.ConfigType): dayjs.Dayjs
|
|
223
245
|
|
|
@@ -715,6 +737,21 @@ interface TimePickerRangePickerProps {
|
|
|
715
737
|
}
|
|
716
738
|
declare function TimePickerRangePicker({ value, onChange, placeholder, title, required, bottomText, error, disabled, className, }: TimePickerRangePickerProps): react_jsx_runtime.JSX.Element;
|
|
717
739
|
|
|
740
|
+
interface ColorPickerProps {
|
|
741
|
+
value: string | null;
|
|
742
|
+
onChange?: (color: Color, hex: string) => void;
|
|
743
|
+
required?: boolean;
|
|
744
|
+
title?: string;
|
|
745
|
+
bottomText?: string;
|
|
746
|
+
error?: string;
|
|
747
|
+
disabled?: boolean;
|
|
748
|
+
allowClear?: boolean;
|
|
749
|
+
defaultFormat?: "hex" | "rgb" | "hsb";
|
|
750
|
+
className?: string;
|
|
751
|
+
placeholder?: string;
|
|
752
|
+
}
|
|
753
|
+
declare function ColorPickerBasic({ value, onChange, required, title, bottomText, error, disabled, allowClear, defaultFormat, className, placeholder, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
|
|
754
|
+
|
|
718
755
|
interface ColorPalettePickerBasicProps {
|
|
719
756
|
value: string | null;
|
|
720
757
|
onChange?: (color: Color, hex: string) => void;
|
|
@@ -909,7 +946,7 @@ interface ProgressBarProps {
|
|
|
909
946
|
steps?: number;
|
|
910
947
|
isCheckPoints?: boolean;
|
|
911
948
|
}
|
|
912
|
-
declare function ProgressBar({ percent, size, checkpoints, showInfo, trailColor, type, strokeLinecap, strokeWidth, steps, isCheckPoints }: ProgressBarProps): react_jsx_runtime.JSX.Element;
|
|
949
|
+
declare function ProgressBar({ percent, size, checkpoints, showInfo, trailColor, type, strokeLinecap, strokeWidth, steps, isCheckPoints, }: ProgressBarProps): react_jsx_runtime.JSX.Element;
|
|
913
950
|
|
|
914
951
|
interface KpiNumberItem {
|
|
915
952
|
id: string;
|
|
@@ -925,4 +962,12 @@ interface KpiSectionProps {
|
|
|
925
962
|
}
|
|
926
963
|
declare function KpiSection({ type, onChangeKpiList }: KpiSectionProps): react_jsx_runtime.JSX.Element;
|
|
927
964
|
|
|
928
|
-
|
|
965
|
+
interface ModalProps {
|
|
966
|
+
children: ReactNode;
|
|
967
|
+
isOpen: boolean;
|
|
968
|
+
width?: string | number;
|
|
969
|
+
onCancel: () => void;
|
|
970
|
+
}
|
|
971
|
+
declare function AntDModal({ children, isOpen, width, onCancel }: ModalProps): react_jsx_runtime.JSX.Element;
|
|
972
|
+
|
|
973
|
+
export { AntDModal, AntDataTable, Breadcrumbs, Calendar, Checkbox, CheckboxGroup, ColorPalettePickerBasic, ColorPickerBasic, DataTable, DatePickerBasic, DatePickerRangePicker, FileUploader, GhostButton, HeadingPage, InputField, InputFieldNumber, KpiSection, Loader, MenuNavBar, type MenuNavBarProps, PrimaryButton, ProgressBar, Radio, RadioGroup, SecondaryButton, SelectCustom, SelectField, SelectFieldGroup, SelectFieldStatus, SelectFieldStatusReport, SelectFieldTag, Sidebar, SortFilter, Switch, TabSelectionButton, TextAreaInput, TextInput, TimePickerBasic, TimePickerRangePicker, TopNavBar, messageError, messageInfo, messageLoading, messageSuccess, messageWarning, setMessageApi };
|
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
3
3
|
import react, { ReactNode } from 'react';
|
|
4
4
|
import { ColumnsType } from 'antd/es/table';
|
|
5
5
|
import { EventSourceInput } from '@fullcalendar/core';
|
|
6
|
+
import { InputNumberProps, SelectProps } from 'antd';
|
|
6
7
|
import { Color } from 'antd/es/color-picker';
|
|
7
|
-
import { SelectProps } from 'antd';
|
|
8
8
|
import { MessageInstance } from 'antd/es/message/interface';
|
|
9
9
|
import { ItemType } from 'antd/es/breadcrumb/Breadcrumb';
|
|
10
10
|
|
|
@@ -40,6 +40,17 @@ interface GhostButtonProps {
|
|
|
40
40
|
}
|
|
41
41
|
declare function GhostButton({ title, onClick, iconLeft, iconRight, disabled }: GhostButtonProps): react_jsx_runtime.JSX.Element;
|
|
42
42
|
|
|
43
|
+
interface Title {
|
|
44
|
+
path: string;
|
|
45
|
+
name: string;
|
|
46
|
+
}
|
|
47
|
+
interface ParamTabSelection {
|
|
48
|
+
title: Title[];
|
|
49
|
+
now: string;
|
|
50
|
+
onClickGoto: (path: string) => void;
|
|
51
|
+
}
|
|
52
|
+
declare const TabSelectionButton: ({ title, now, onClickGoto }: ParamTabSelection) => react_jsx_runtime.JSX.Element;
|
|
53
|
+
|
|
43
54
|
interface LoaderProps {
|
|
44
55
|
size?: number;
|
|
45
56
|
color?: string;
|
|
@@ -149,10 +160,11 @@ interface AntDataTableProps<T> {
|
|
|
149
160
|
onRowSelect?: (newSelectedRowKeys: React.Key[]) => void;
|
|
150
161
|
width?: number;
|
|
151
162
|
height?: number;
|
|
163
|
+
pagination?: boolean;
|
|
152
164
|
}
|
|
153
165
|
declare function AntDataTable<T extends {
|
|
154
166
|
key: React.Key;
|
|
155
|
-
}>({ dataSource, columns, pageSize, rowCheckbox, onRowSelect, width, height, }: AntDataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
167
|
+
}>({ dataSource, columns, pageSize, rowCheckbox, onRowSelect, width, height, pagination, }: AntDataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
156
168
|
|
|
157
169
|
interface CalendarProps {
|
|
158
170
|
events: EventSourceInput | undefined;
|
|
@@ -172,6 +184,21 @@ interface TextInputProps {
|
|
|
172
184
|
}
|
|
173
185
|
declare function TextInput({ label, placeholder, type, maxLength, required, error, value, onChange, disabled, }: TextInputProps): react_jsx_runtime.JSX.Element;
|
|
174
186
|
|
|
187
|
+
interface TextAreaProps {
|
|
188
|
+
label?: string;
|
|
189
|
+
height?: number;
|
|
190
|
+
placeholder?: string;
|
|
191
|
+
value: string;
|
|
192
|
+
onChange: (value: string) => void;
|
|
193
|
+
maxLength?: number;
|
|
194
|
+
resizable?: boolean;
|
|
195
|
+
showCount?: boolean;
|
|
196
|
+
required?: boolean;
|
|
197
|
+
error?: string;
|
|
198
|
+
disabled?: boolean;
|
|
199
|
+
}
|
|
200
|
+
declare function TextAreaInput({ label, height, placeholder, onChange, value, maxLength, resizable, showCount, required, error, disabled, }: TextAreaProps): react_jsx_runtime.JSX.Element;
|
|
201
|
+
|
|
175
202
|
interface InputFieldProps {
|
|
176
203
|
value: string | undefined;
|
|
177
204
|
onChange: (value: string | undefined) => void;
|
|
@@ -189,35 +216,30 @@ interface InputFieldProps {
|
|
|
189
216
|
}
|
|
190
217
|
declare function InputField({ value, onChange, placeholder, title, required, bottomText, disabled, error, addonBefore, addonAfter, defaultValue, className, onClear, }: InputFieldProps): react_jsx_runtime.JSX.Element;
|
|
191
218
|
|
|
192
|
-
interface
|
|
193
|
-
|
|
194
|
-
|
|
219
|
+
interface InputFieldNumberProps {
|
|
220
|
+
value: number | string | null;
|
|
221
|
+
onChange: (value: number | string | null) => void;
|
|
195
222
|
placeholder?: string;
|
|
196
|
-
|
|
197
|
-
onChange: (value: string) => void;
|
|
198
|
-
maxLength?: number;
|
|
199
|
-
resizable?: boolean;
|
|
200
|
-
showCount?: boolean;
|
|
223
|
+
title?: string;
|
|
201
224
|
required?: boolean;
|
|
202
|
-
error?: string;
|
|
203
225
|
disabled?: boolean;
|
|
204
|
-
}
|
|
205
|
-
declare function TextAreaInput({ label, height, placeholder, onChange, value, maxLength, resizable, showCount, required, error, disabled, }: TextAreaProps): react_jsx_runtime.JSX.Element;
|
|
206
|
-
|
|
207
|
-
interface ColorPickerProps {
|
|
208
|
-
value: string | null;
|
|
209
|
-
onChange?: (color: Color, hex: string) => void;
|
|
210
|
-
required?: boolean;
|
|
211
|
-
title?: string;
|
|
212
|
-
bottomText?: string;
|
|
213
226
|
error?: string;
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
227
|
+
addonBefore?: React.ReactNode;
|
|
228
|
+
addonAfter?: React.ReactNode;
|
|
229
|
+
defaultValue?: number;
|
|
217
230
|
className?: string;
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
231
|
+
max?: number;
|
|
232
|
+
min?: number;
|
|
233
|
+
controls?: boolean | {
|
|
234
|
+
upIcon?: React.ReactNode;
|
|
235
|
+
downIcon?: React.ReactNode;
|
|
236
|
+
};
|
|
237
|
+
size?: "large" | "middle" | "small";
|
|
238
|
+
changeOnWheel?: boolean;
|
|
239
|
+
formatter?: InputNumberProps["formatter"];
|
|
240
|
+
parser?: InputNumberProps["parser"];
|
|
241
|
+
}
|
|
242
|
+
declare function InputFieldNumber({ value, onChange, placeholder, title, required, disabled, error, addonBefore, addonAfter, defaultValue, className, max, min, controls, size, changeOnWheel, formatter, parser, }: InputFieldNumberProps): react_jsx_runtime.JSX.Element;
|
|
221
243
|
|
|
222
244
|
declare function dayjs (date?: dayjs.ConfigType): dayjs.Dayjs
|
|
223
245
|
|
|
@@ -715,6 +737,21 @@ interface TimePickerRangePickerProps {
|
|
|
715
737
|
}
|
|
716
738
|
declare function TimePickerRangePicker({ value, onChange, placeholder, title, required, bottomText, error, disabled, className, }: TimePickerRangePickerProps): react_jsx_runtime.JSX.Element;
|
|
717
739
|
|
|
740
|
+
interface ColorPickerProps {
|
|
741
|
+
value: string | null;
|
|
742
|
+
onChange?: (color: Color, hex: string) => void;
|
|
743
|
+
required?: boolean;
|
|
744
|
+
title?: string;
|
|
745
|
+
bottomText?: string;
|
|
746
|
+
error?: string;
|
|
747
|
+
disabled?: boolean;
|
|
748
|
+
allowClear?: boolean;
|
|
749
|
+
defaultFormat?: "hex" | "rgb" | "hsb";
|
|
750
|
+
className?: string;
|
|
751
|
+
placeholder?: string;
|
|
752
|
+
}
|
|
753
|
+
declare function ColorPickerBasic({ value, onChange, required, title, bottomText, error, disabled, allowClear, defaultFormat, className, placeholder, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
|
|
754
|
+
|
|
718
755
|
interface ColorPalettePickerBasicProps {
|
|
719
756
|
value: string | null;
|
|
720
757
|
onChange?: (color: Color, hex: string) => void;
|
|
@@ -909,7 +946,7 @@ interface ProgressBarProps {
|
|
|
909
946
|
steps?: number;
|
|
910
947
|
isCheckPoints?: boolean;
|
|
911
948
|
}
|
|
912
|
-
declare function ProgressBar({ percent, size, checkpoints, showInfo, trailColor, type, strokeLinecap, strokeWidth, steps, isCheckPoints }: ProgressBarProps): react_jsx_runtime.JSX.Element;
|
|
949
|
+
declare function ProgressBar({ percent, size, checkpoints, showInfo, trailColor, type, strokeLinecap, strokeWidth, steps, isCheckPoints, }: ProgressBarProps): react_jsx_runtime.JSX.Element;
|
|
913
950
|
|
|
914
951
|
interface KpiNumberItem {
|
|
915
952
|
id: string;
|
|
@@ -925,4 +962,12 @@ interface KpiSectionProps {
|
|
|
925
962
|
}
|
|
926
963
|
declare function KpiSection({ type, onChangeKpiList }: KpiSectionProps): react_jsx_runtime.JSX.Element;
|
|
927
964
|
|
|
928
|
-
|
|
965
|
+
interface ModalProps {
|
|
966
|
+
children: ReactNode;
|
|
967
|
+
isOpen: boolean;
|
|
968
|
+
width?: string | number;
|
|
969
|
+
onCancel: () => void;
|
|
970
|
+
}
|
|
971
|
+
declare function AntDModal({ children, isOpen, width, onCancel }: ModalProps): react_jsx_runtime.JSX.Element;
|
|
972
|
+
|
|
973
|
+
export { AntDModal, AntDataTable, Breadcrumbs, Calendar, Checkbox, CheckboxGroup, ColorPalettePickerBasic, ColorPickerBasic, DataTable, DatePickerBasic, DatePickerRangePicker, FileUploader, GhostButton, HeadingPage, InputField, InputFieldNumber, KpiSection, Loader, MenuNavBar, type MenuNavBarProps, PrimaryButton, ProgressBar, Radio, RadioGroup, SecondaryButton, SelectCustom, SelectField, SelectFieldGroup, SelectFieldStatus, SelectFieldStatusReport, SelectFieldTag, Sidebar, SortFilter, Switch, TabSelectionButton, TextAreaInput, TextInput, TimePickerBasic, TimePickerRangePicker, TopNavBar, messageError, messageInfo, messageLoading, messageSuccess, messageWarning, setMessageApi };
|