sprintify-ui 0.8.3 → 0.8.4

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.
@@ -0,0 +1,86 @@
1
+ declare function toggle(): void;
2
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<{
3
+ defaultOpen?: boolean | undefined;
4
+ icon?: string | undefined;
5
+ iconPosition?: "right" | "left" | undefined;
6
+ isOpenIconClass?: string | undefined;
7
+ isCloseIconClass?: string | undefined;
8
+ twIcon?: string | string[] | null | undefined;
9
+ twHeader?: string | string[] | null | undefined;
10
+ twTitle?: string | string[] | null | undefined;
11
+ twContent?: string | string[] | null | undefined;
12
+ }>, {
13
+ defaultOpen: boolean;
14
+ icon: string;
15
+ iconPosition: string;
16
+ twIcon: null;
17
+ twHeader: null;
18
+ twTitle: null;
19
+ twContent: null;
20
+ isOpenIconClass: string;
21
+ isCloseIconClass: string;
22
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<{
23
+ defaultOpen?: boolean | undefined;
24
+ icon?: string | undefined;
25
+ iconPosition?: "right" | "left" | undefined;
26
+ isOpenIconClass?: string | undefined;
27
+ isCloseIconClass?: string | undefined;
28
+ twIcon?: string | string[] | null | undefined;
29
+ twHeader?: string | string[] | null | undefined;
30
+ twTitle?: string | string[] | null | undefined;
31
+ twContent?: string | string[] | null | undefined;
32
+ }>, {
33
+ defaultOpen: boolean;
34
+ icon: string;
35
+ iconPosition: string;
36
+ twIcon: null;
37
+ twHeader: null;
38
+ twTitle: null;
39
+ twContent: null;
40
+ isOpenIconClass: string;
41
+ isCloseIconClass: string;
42
+ }>>>, {
43
+ icon: string;
44
+ iconPosition: "right" | "left";
45
+ defaultOpen: boolean;
46
+ isOpenIconClass: string;
47
+ isCloseIconClass: string;
48
+ twIcon: string | string[] | null;
49
+ twHeader: string | string[] | null;
50
+ twTitle: string | string[] | null;
51
+ twContent: string | string[] | null;
52
+ }, {}>, {
53
+ header?(_: {
54
+ open: boolean;
55
+ toggle: typeof toggle;
56
+ }): any;
57
+ title?(_: {
58
+ open: boolean;
59
+ }): any;
60
+ content?(_: {
61
+ open: boolean;
62
+ }): any;
63
+ }>;
64
+ export default _default;
65
+ type __VLS_WithDefaults<P, D> = {
66
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
67
+ default: D[K];
68
+ }> : P[K];
69
+ };
70
+ type __VLS_Prettify<T> = {
71
+ [K in keyof T]: T[K];
72
+ } & {};
73
+ type __VLS_WithTemplateSlots<T, S> = T & {
74
+ new (): {
75
+ $slots: S;
76
+ };
77
+ };
78
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
79
+ type __VLS_TypePropsToOption<T> = {
80
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
81
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
82
+ } : {
83
+ type: import('vue').PropType<T[K]>;
84
+ required: true;
85
+ };
86
+ };
@@ -235,8 +235,6 @@ declare const _default: import("vue").DefineComponent<{
235
235
  style: {
236
236
  width: number | undefined;
237
237
  };
238
- thAttrs: (column: import("@/index.js").BaseTableColumnData) => Record<string, any>;
239
- tdAttrs: (row: import("@/index.js").Row, column: import("@/index.js").BaseTableColumnData) => Record<string, any>;
240
238
  }[]>;
241
239
  uncheckAll: () => void;
242
240
  scrollTop: () => void;
@@ -385,8 +383,6 @@ declare const _default: import("vue").DefineComponent<{
385
383
  style: {
386
384
  width: number | undefined;
387
385
  };
388
- thAttrs: (column: import("@/index.js").BaseTableColumnData) => Record<string, any>;
389
- tdAttrs: (row: import("@/index.js").Row, column: import("@/index.js").BaseTableColumnData) => Record<string, any>;
390
386
  }[]>;
391
387
  uncheckAll: () => void;
392
388
  scrollTop: () => void;
@@ -643,8 +639,6 @@ declare const _default: import("vue").DefineComponent<{
643
639
  style: {
644
640
  width: number | undefined;
645
641
  };
646
- thAttrs: (column: import("@/index.js").BaseTableColumnData) => Record<string, any>;
647
- tdAttrs: (row: import("@/index.js").Row, column: import("@/index.js").BaseTableColumnData) => Record<string, any>;
648
642
  }[]>;
649
643
  uncheckAll: () => void;
650
644
  scrollTop: () => void;
@@ -793,8 +787,6 @@ declare const _default: import("vue").DefineComponent<{
793
787
  style: {
794
788
  width: number | undefined;
795
789
  };
796
- thAttrs: (column: import("@/index.js").BaseTableColumnData) => Record<string, any>;
797
- tdAttrs: (row: import("@/index.js").Row, column: import("@/index.js").BaseTableColumnData) => Record<string, any>;
798
790
  }[]>;
799
791
  uncheckAll: () => void;
800
792
  scrollTop: () => void;
@@ -105,8 +105,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
105
105
  style: {
106
106
  width: number | undefined;
107
107
  };
108
- thAttrs: (column: BaseTableColumnData) => Record<string, any>;
109
- tdAttrs: (row: Row, column: BaseTableColumnData) => Record<string, any>;
110
108
  }[]>;
111
109
  uncheckAll: typeof uncheckAll;
112
110
  scrollTop: () => void;
@@ -88,8 +88,8 @@ declare const _default: import("vue").DefineComponent<{
88
88
  }>>, {
89
89
  modelValue: boolean;
90
90
  size: "sm" | "lg";
91
- twBackdrop: string;
92
91
  twIcon: string;
92
+ twBackdrop: string;
93
93
  duration: string;
94
94
  delay: number;
95
95
  }, {}>;
@@ -20,6 +20,7 @@ import BaseCardRow from './BaseCardRow.vue';
20
20
  import BaseCharacterCounter from './BaseCharacterCounter.vue';
21
21
  import BaseClipboard from './BaseClipboard.vue';
22
22
  import BaseCalendar from './BaseCalendar.vue';
23
+ import BaseCollapse from './BaseCollapse.vue';
23
24
  import BaseColor from './BaseColor.vue';
24
25
  import BaseContainer from './BaseContainer.vue';
25
26
  import BaseCounter from './BaseCounter.vue';
@@ -102,4 +103,4 @@ import BaseLayoutStacked from './BaseLayoutStacked.vue';
102
103
  import BaseLayoutStackedConfigurable from './BaseLayoutStackedConfigurable.vue';
103
104
  import BaseLayoutSidebar from './BaseLayoutSidebar.vue';
104
105
  import BaseLayoutSidebarConfigurable from './BaseLayoutSidebarConfigurable.vue';
105
- export { BaseActionItem, BaseAddressForm, BaseAlert, BaseApp, BaseAppDialogs, BaseAppSnackbars, BaseAutocomplete, BaseAutocompleteFetch, BaseAvatar, BaseAvatarGroup, BaseBadge, BaseBelongsTo, BaseBelongsToFetch, BaseBoolean, BaseBreadcrumbs, BaseButton, BaseButtonGroup, BaseCard, BaseCardRow, BaseCharacterCounter, BaseClipboard, BaseCalendar, BaseColor, BaseContainer, BaseCounter, BaseCropper, BaseCropperModal, BaseDataIterator, BaseDataTable, BaseDatePicker, BaseTimePicker, BaseDateSelect, BaseDescriptionList, BaseDescriptionListItem, BaseDialog, BaseDisplayRelativeTime, BaseDropdown, BaseDropdownAutocomplete, BaseEmptyState, BaseField, BaseFieldI18n, BaseFilePicker, BaseFilePickerCrop, BaseFileUploader, BaseForm, BaseGantt, BaseHasMany, BaseHeader, BaseIcon, BaseIconPicker, BaseInput, BaseInputLabel, BaseInputPercent, BaseJsonReader, BaseLoadingCover, BaseMediaItem, BaseMediaLibrary, BaseMediaPreview, BaseMenu, BaseMenuItem, BaseModalCenter, BaseModalSide, BaseNavbar, BaseNavbarItem, BaseNavbarItemContent, BaseNavbarSideItem, BasePagination, BasePanel, BasePassword, BaseProgressCircle, BaseRadioGroup, BaseReadMore, BaseRichText, BaseSelect, BaseShortcut, BaseSideNavigation, BaseSideNavigationItem, BaseSkeleton, BaseStatistic, BaseStepper, BaseStepperItem, BaseSwitch, BaseSystemAlert, BaseTable, BaseTableBody, BaseTableCell, BaseTableHead, BaseTableHeader, BaseTableRow, BaseTabs, BaseTabItem, BaseTagAutocomplete, BaseTagAutocompleteFetch, BaseTableColumn, BaseTextarea, BaseTextareaAutoresize, BaseTimeline, BaseTimelineItem, BaseTooltip, BaseUniqueCode, BaseLayoutStacked, BaseLayoutStackedConfigurable, BaseLayoutSidebar, BaseLayoutSidebarConfigurable, };
106
+ export { BaseActionItem, BaseAddressForm, BaseAlert, BaseApp, BaseAppDialogs, BaseAppSnackbars, BaseAutocomplete, BaseAutocompleteFetch, BaseAvatar, BaseAvatarGroup, BaseBadge, BaseBelongsTo, BaseBelongsToFetch, BaseBoolean, BaseBreadcrumbs, BaseButton, BaseButtonGroup, BaseCard, BaseCardRow, BaseCharacterCounter, BaseClipboard, BaseCalendar, BaseCollapse, BaseColor, BaseContainer, BaseCounter, BaseCropper, BaseCropperModal, BaseDataIterator, BaseDataTable, BaseDatePicker, BaseDateSelect, BaseDescriptionList, BaseDescriptionListItem, BaseDialog, BaseDisplayRelativeTime, BaseDropdown, BaseDropdownAutocomplete, BaseEmptyState, BaseField, BaseFieldI18n, BaseFilePicker, BaseFilePickerCrop, BaseFileUploader, BaseForm, BaseGantt, BaseHasMany, BaseHeader, BaseIcon, BaseIconPicker, BaseInput, BaseInputLabel, BaseInputPercent, BaseJsonReader, BaseLoadingCover, BaseMediaItem, BaseMediaLibrary, BaseMediaPreview, BaseMenu, BaseMenuItem, BaseModalCenter, BaseModalSide, BaseNavbar, BaseNavbarItem, BaseNavbarItemContent, BaseNavbarSideItem, BasePagination, BasePanel, BasePassword, BaseProgressCircle, BaseRadioGroup, BaseReadMore, BaseRichText, BaseSelect, BaseShortcut, BaseSideNavigation, BaseSideNavigationItem, BaseSkeleton, BaseStatistic, BaseStepper, BaseStepperItem, BaseSwitch, BaseSystemAlert, BaseTable, BaseTableBody, BaseTableCell, BaseTableHead, BaseTableHeader, BaseTableRow, BaseTabs, BaseTabItem, BaseTagAutocomplete, BaseTagAutocompleteFetch, BaseTableColumn, BaseTextarea, BaseTextareaAutoresize, BaseTimeline, BaseTimelineItem, BaseTimePicker, BaseTooltip, BaseUniqueCode, BaseLayoutStacked, BaseLayoutStackedConfigurable, BaseLayoutSidebar, BaseLayoutSidebarConfigurable, };
@@ -93,8 +93,6 @@ export interface BaseTableColumnData {
93
93
  style: {
94
94
  width: undefined | number;
95
95
  };
96
- thAttrs: (column: BaseTableColumnData) => Record<string, any>;
97
- tdAttrs: (row: Row, column: BaseTableColumnData) => Record<string, any>;
98
96
  }
99
97
  /**
100
98
  * System alert
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sprintify-ui",
3
- "version": "0.8.3",
3
+ "version": "0.8.4",
4
4
  "scripts": {
5
5
  "build": "rimraf dist && vue-tsc && vite build",
6
6
  "build-fast": "rimraf dist && vite build",
@@ -0,0 +1,169 @@
1
+ import { method } from 'lodash';
2
+ import BaseCollapse from './BaseCollapse.vue';
3
+
4
+ export default {
5
+ title: 'Components/BaseCollapse',
6
+ component: BaseCollapse,
7
+ args: {},
8
+ argTypes: {
9
+ defaultOpen: {
10
+ control: { type: 'boolean' },
11
+ },
12
+ icon: {
13
+ control: { type: 'text' },
14
+ },
15
+ isOpenIconClass: {
16
+ control: { type: 'text' },
17
+ },
18
+ isCloseIconClass: {
19
+ control: { type: 'text' },
20
+ },
21
+ twIcon: {
22
+ control: { type: 'text' },
23
+ },
24
+ twHeader: {
25
+ control: { type: 'text' },
26
+ },
27
+ twContent: {
28
+ control: { type: 'text' },
29
+ },
30
+ twTitle: {
31
+ control: { type: 'text' },
32
+ },
33
+ iconPosition: {
34
+ control: { type: 'select' },
35
+ options: ['left', 'right'],
36
+ },
37
+ },
38
+ };
39
+
40
+ const Template = (args) => ({
41
+ components: { BaseCollapse },
42
+ setup() {
43
+ return { args };
44
+ },
45
+ template: `
46
+ <BaseCollapse v-bind="args" class="mb-1">
47
+ <template #title>
48
+ <h6 class="font-semibold"> Qu'est-ce que le Lorem Ipsum? </h6>
49
+ </template>
50
+ <template #content={isOpen}>
51
+ <p class="p-3">
52
+ Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte.
53
+ </p>
54
+ </template>
55
+ </BaseCollapse>
56
+
57
+ <BaseCollapse v-bind="args" class="mb-1">
58
+ <template #title>
59
+ <h6 class="font-semibold"> Qu'est-ce que le Lorem Ipsum? </h6>
60
+ </template>
61
+ <template #content>
62
+ <p class="p-3">
63
+ Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte.
64
+ </p>
65
+ </template>
66
+ </BaseCollapse>
67
+
68
+ <BaseCollapse v-bind="args" class="mb-1">
69
+ <template #title>
70
+ <h6 class="font-semibold"> Qu'est-ce que le Lorem Ipsum? </h6>
71
+ </template>
72
+ <template #content>
73
+ <p class="p-3">
74
+ Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte.
75
+ </p>
76
+ </template>
77
+ </BaseCollapse>
78
+
79
+ `,
80
+ });
81
+
82
+ export const Demo = Template.bind({});
83
+ Demo.args = {
84
+ defaultOpen: false,
85
+ };
86
+
87
+
88
+ const CustomHeaderTemplate = (args) => ({
89
+ components: { BaseCollapse },
90
+ setup() {
91
+ return { args };
92
+ },
93
+ method: {
94
+ toggle() {
95
+ this.defaultOpen = !this.defaultOpen;
96
+ },
97
+ },
98
+ template: `
99
+
100
+ <BaseCollapse v-bind="args" class="mb-3">
101
+ <template #header={toggle}>
102
+ <h6 class="cursor-pointer hover:text-slate-400" @click="toggle()"> Qu'est-ce que le Lorem Ipsum? </h6>
103
+ </template>
104
+ <template #content>
105
+ <p class="p-3">
106
+ Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte.
107
+ </p>
108
+ </template>
109
+ </BaseCollapse>
110
+
111
+ <BaseCollapse v-bind="args" class="mb-3">
112
+ <template #header={toggle}>
113
+ <h6 class="cursor-pointer hover:text-slate-400" @click="toggle()"> Qu'est-ce que le Lorem Ipsum? </h6>
114
+ </template>
115
+ <template #content>
116
+ <p class="p-3">
117
+ Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte.
118
+ </p>
119
+ </template>
120
+ </BaseCollapse>
121
+
122
+ <BaseCollapse v-bind="args" class="mb-3">
123
+ <template #header={toggle}>
124
+ <h6 class="cursor-pointer hover:text-slate-400" @click="toggle()"> Qu'est-ce que le Lorem Ipsum? </h6>
125
+ </template>
126
+ <template #content>
127
+ <p class="p-3">
128
+ Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte.
129
+ </p>
130
+ </template>
131
+ </BaseCollapse>
132
+
133
+ `,
134
+ argTypes: {
135
+ defaultOpen: {
136
+ control: { type: 'boolean' },
137
+ },
138
+ icon: {
139
+ control: { type: 'text' },
140
+ },
141
+ isOpenIconClass: {
142
+ control: { type: 'text' },
143
+ },
144
+ isCloseIconClass: {
145
+ control: { type: 'text' },
146
+ },
147
+ twIcon: {
148
+ control: { type: 'text' },
149
+ },
150
+ twHeader: {
151
+ control: { type: 'text' },
152
+ },
153
+ twContent: {
154
+ control: { type: 'text' },
155
+ },
156
+ twTitle: {
157
+ control: { type: 'text' },
158
+ },
159
+ iconPosition: {
160
+ control: { type: 'select' },
161
+ options: ['left', 'right'],
162
+ },
163
+ }
164
+ });
165
+ export const CustomHeader = CustomHeaderTemplate.bind({});
166
+
167
+ CustomHeader.args = {
168
+ defaultOpen: false,
169
+ };
@@ -0,0 +1,98 @@
1
+ <template>
2
+ <div>
3
+ <div>
4
+ <slot
5
+ name="header"
6
+ :open="isOpen"
7
+ :toggle="toggle"
8
+ >
9
+ <button
10
+ :class="headerClass"
11
+ type="button"
12
+ @click="toggle()"
13
+ >
14
+ <BaseIcon
15
+ v-if="iconPosition === 'left'"
16
+ :class="internalIconClass"
17
+ :icon="icon"
18
+ />
19
+
20
+ <div :class="internalTitleClass">
21
+ <slot
22
+ name="title"
23
+ :open="isOpen"
24
+ />
25
+ </div>
26
+ <BaseIcon
27
+ v-if="iconPosition === 'right'"
28
+ :class="internalIconClass"
29
+ :icon="icon"
30
+ />
31
+ </button>
32
+ </slot>
33
+ </div>
34
+
35
+ <div
36
+ v-show="isOpen"
37
+ :class="internalContentClass"
38
+ >
39
+ <slot
40
+ name="content"
41
+ :open="isOpen"
42
+ />
43
+ </div>
44
+ </div>
45
+ </template>
46
+
47
+ <script lang="ts" setup>
48
+
49
+ import { twMerge } from 'tailwind-merge';
50
+
51
+ const internalIconClass = computed(() => {
52
+ const base = "w-6 h-6 flex items-center justify-center transition duration-300 ease-in-out transform cursor-pointer";
53
+
54
+ return twMerge(base, props.twIcon, isOpen.value ? props.isOpenIconClass : props.isCloseIconClass,);
55
+ });
56
+
57
+ const headerClass = computed(() => {
58
+ return twMerge('flex items-center w-full space-x-1', props.twHeader);
59
+ });
60
+
61
+ const internalContentClass = computed(() => {
62
+ return twMerge('transition duration-300 ease-in-out transform', props.twContent);
63
+ });
64
+
65
+ const internalTitleClass = computed(() => {
66
+ return twMerge(props.twTitle, '');
67
+ });
68
+
69
+ function toggle() {
70
+ isOpen.value = !isOpen.value;
71
+ }
72
+
73
+
74
+ const props = withDefaults(defineProps<{
75
+ defaultOpen?: boolean;
76
+ icon?: string;
77
+ iconPosition?: 'left' | 'right';
78
+ isOpenIconClass?: string;
79
+ isCloseIconClass?: string;
80
+ twIcon?: string | string[] | null;
81
+ twHeader?: string | string[] | null;
82
+ twTitle?: string | string[] | null;
83
+ twContent?: string | string[] | null;
84
+ }>(), {
85
+ defaultOpen: true,
86
+ icon: 'heroicons:chevron-down-16-solid',
87
+ iconPosition: 'left',
88
+ twIcon: null,
89
+ twHeader: null,
90
+ twTitle: null,
91
+ twContent: null,
92
+ isOpenIconClass: '-rotate-0',
93
+ isCloseIconClass: '-rotate-90',
94
+ });
95
+
96
+ const isOpen = ref(props.defaultOpen as boolean);
97
+
98
+ </script>
@@ -20,6 +20,7 @@ import BaseCardRow from './BaseCardRow.vue';
20
20
  import BaseCharacterCounter from './BaseCharacterCounter.vue';
21
21
  import BaseClipboard from './BaseClipboard.vue';
22
22
  import BaseCalendar from './BaseCalendar.vue';
23
+ import BaseCollapse from './BaseCollapse.vue';
23
24
  import BaseColor from './BaseColor.vue';
24
25
  import BaseContainer from './BaseContainer.vue';
25
26
  import BaseCounter from './BaseCounter.vue';
@@ -127,6 +128,7 @@ export {
127
128
  BaseCharacterCounter,
128
129
  BaseClipboard,
129
130
  BaseCalendar,
131
+ BaseCollapse,
130
132
  BaseColor,
131
133
  BaseContainer,
132
134
  BaseCounter,
@@ -135,7 +137,6 @@ export {
135
137
  BaseDataIterator,
136
138
  BaseDataTable,
137
139
  BaseDatePicker,
138
- BaseTimePicker,
139
140
  BaseDateSelect,
140
141
  BaseDescriptionList,
141
142
  BaseDescriptionListItem,
@@ -203,6 +204,7 @@ export {
203
204
  BaseTextareaAutoresize,
204
205
  BaseTimeline,
205
206
  BaseTimelineItem,
207
+ BaseTimePicker,
206
208
  BaseTooltip,
207
209
  BaseUniqueCode,
208
210
  BaseLayoutStacked,
@@ -120,10 +120,6 @@ export interface BaseTableColumnData {
120
120
  style: {
121
121
  width: undefined | number;
122
122
  };
123
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
124
- thAttrs: (column: BaseTableColumnData) => Record<string, any>;
125
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
126
- tdAttrs: (row: Row, column: BaseTableColumnData) => Record<string, any>;
127
123
  }
128
124
 
129
125
  /**