@sellmate/design-system-vue 1.28.0 → 1.29.0
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/README.md +0 -20
- package/dist/components.d.ts +0 -5
- package/dist/components.js +1 -73
- package/dist/define-custom-elements.js +0 -10
- package/dist/index.d.ts +1 -3
- package/dist/index.js +0 -1
- package/lib/components.ts +1 -84
- package/lib/define-custom-elements.ts +0 -10
- package/lib/index.ts +0 -8
- package/package.json +2 -2
- package/lib/composables/useSdTableVirtualScroll.ts +0 -84
package/README.md
CHANGED
|
@@ -183,7 +183,6 @@ sdLoading.show({ message: "처리 중..." });
|
|
|
183
183
|
| `SdField` | 폼 필드 래퍼 (label + input + error) |
|
|
184
184
|
| `SdForm` | 폼 유효성 검사 컨테이너 |
|
|
185
185
|
| `SdTabs` | 탭 네비게이션 |
|
|
186
|
-
| `SdTable` | 데이터 테이블 |
|
|
187
186
|
| `SdPagination` | 페이지네이션 |
|
|
188
187
|
|
|
189
188
|
### 모달 / 알림
|
|
@@ -203,9 +202,6 @@ sdLoading.show({ message: "처리 중..." });
|
|
|
203
202
|
|
|
204
203
|
```ts
|
|
205
204
|
import type {
|
|
206
|
-
// Table
|
|
207
|
-
SdTableColumn,
|
|
208
|
-
SdTableRow,
|
|
209
205
|
// Select
|
|
210
206
|
SelectOption,
|
|
211
207
|
// Radio
|
|
@@ -232,22 +228,6 @@ import type {
|
|
|
232
228
|
|
|
233
229
|
---
|
|
234
230
|
|
|
235
|
-
## Composables
|
|
236
|
-
|
|
237
|
-
### `useSdTableVirtualScroll`
|
|
238
|
-
|
|
239
|
-
```ts
|
|
240
|
-
import { useSdTableVirtualScroll } from "@sellmate/design-system-vue";
|
|
241
|
-
|
|
242
|
-
const { virtualRows, totalHeight, scrollToIndex } = useSdTableVirtualScroll({
|
|
243
|
-
rowCount: data.length,
|
|
244
|
-
rowHeight: 48,
|
|
245
|
-
containerHeight: 400,
|
|
246
|
-
});
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
231
|
## Requirements
|
|
252
232
|
|
|
253
233
|
- Vue 3.0.0 or higher
|
package/dist/components.d.ts
CHANGED
|
@@ -46,16 +46,11 @@ export declare const SdSelectListItemSearch: StencilVueComponent<JSX.SdSelectLis
|
|
|
46
46
|
export declare const SdSelectListbox: StencilVueComponent<JSX.SdSelectListbox>;
|
|
47
47
|
export declare const SdSelectTrigger: StencilVueComponent<JSX.SdSelectTrigger>;
|
|
48
48
|
export declare const SdSwitch: StencilVueComponent<JSX.SdSwitch, JSX.SdSwitch["value"]>;
|
|
49
|
-
export declare const SdTable: StencilVueComponent<JSX.SdTable, JSX.SdTable["selected"]>;
|
|
50
49
|
export declare const SdTabs: StencilVueComponent<JSX.SdTabs, JSX.SdTabs["value"]>;
|
|
51
50
|
export declare const SdTag: StencilVueComponent<JSX.SdTag>;
|
|
52
|
-
export declare const SdTbody: StencilVueComponent<JSX.SdTbody>;
|
|
53
|
-
export declare const SdTd: StencilVueComponent<JSX.SdTd>;
|
|
54
51
|
export declare const SdTextLink: StencilVueComponent<JSX.SdTextLink>;
|
|
55
52
|
export declare const SdTextarea: StencilVueComponent<JSX.SdTextarea, JSX.SdTextarea["value"]>;
|
|
56
|
-
export declare const SdThead: StencilVueComponent<JSX.SdThead>;
|
|
57
53
|
export declare const SdToast: StencilVueComponent<JSX.SdToast>;
|
|
58
54
|
export declare const SdToastContainer: StencilVueComponent<JSX.SdToastContainer>;
|
|
59
55
|
export declare const SdToggle: StencilVueComponent<JSX.SdToggle, JSX.SdToggle["value"]>;
|
|
60
56
|
export declare const SdTooltip: StencilVueComponent<JSX.SdTooltip>;
|
|
61
|
-
export declare const SdTr: StencilVueComponent<JSX.SdTr>;
|
package/dist/components.js
CHANGED
|
@@ -166,7 +166,6 @@ export const SdConfirmModal = /*@__PURE__*/ defineContainer('sd-confirm-modal',
|
|
|
166
166
|
'tagPreset',
|
|
167
167
|
'tagLabel',
|
|
168
168
|
'slotLabel',
|
|
169
|
-
'tagContents',
|
|
170
169
|
'sdClose',
|
|
171
170
|
'sdCancel',
|
|
172
171
|
'sdOk'
|
|
@@ -421,6 +420,7 @@ export const SdInput = /*@__PURE__*/ defineContainer('sd-input', undefined, [
|
|
|
421
420
|
], 'value', 'sdUpdate', undefined);
|
|
422
421
|
export const SdKeyValueTable = /*@__PURE__*/ defineContainer('sd-key-value-table', undefined, [
|
|
423
422
|
'fields',
|
|
423
|
+
'values',
|
|
424
424
|
'search',
|
|
425
425
|
'radius',
|
|
426
426
|
'sdChange',
|
|
@@ -657,42 +657,6 @@ export const SdSwitch = /*@__PURE__*/ defineContainer('sd-switch', undefined, [
|
|
|
657
657
|
], [
|
|
658
658
|
'sdUpdate'
|
|
659
659
|
], 'value', 'sdUpdate', undefined);
|
|
660
|
-
export const SdTable = /*@__PURE__*/ defineContainer('sd-table', undefined, [
|
|
661
|
-
'tableId',
|
|
662
|
-
'columns',
|
|
663
|
-
'rows',
|
|
664
|
-
'selected',
|
|
665
|
-
'rowKey',
|
|
666
|
-
'selectable',
|
|
667
|
-
'resizable',
|
|
668
|
-
'width',
|
|
669
|
-
'height',
|
|
670
|
-
'stickyHeader',
|
|
671
|
-
'stickyColumn',
|
|
672
|
-
'radius',
|
|
673
|
-
'noDataLabel',
|
|
674
|
-
'isLoading',
|
|
675
|
-
'pagination',
|
|
676
|
-
'useInternalPagination',
|
|
677
|
-
'useRowsPerPageSelect',
|
|
678
|
-
'dense',
|
|
679
|
-
'useVirtualScroll',
|
|
680
|
-
'rowHeight',
|
|
681
|
-
'virtualBuffer',
|
|
682
|
-
'virtualEndThreshold',
|
|
683
|
-
'rowsPerPageOption',
|
|
684
|
-
'sdSelectChange',
|
|
685
|
-
'sdPageChange',
|
|
686
|
-
'sdRowsPerPageChange',
|
|
687
|
-
'sdVirtualUpdate',
|
|
688
|
-
'sdVirtualReachEnd'
|
|
689
|
-
], [
|
|
690
|
-
'sdSelectChange',
|
|
691
|
-
'sdPageChange',
|
|
692
|
-
'sdRowsPerPageChange',
|
|
693
|
-
'sdVirtualUpdate',
|
|
694
|
-
'sdVirtualReachEnd'
|
|
695
|
-
], 'selected', 'sdSelectChange', undefined);
|
|
696
660
|
export const SdTabs = /*@__PURE__*/ defineContainer('sd-tabs', undefined, [
|
|
697
661
|
'value',
|
|
698
662
|
'tabs',
|
|
@@ -710,20 +674,6 @@ export const SdTag = /*@__PURE__*/ defineContainer('sd-tag', undefined, [
|
|
|
710
674
|
'isLeft',
|
|
711
675
|
'width'
|
|
712
676
|
]);
|
|
713
|
-
export const SdTbody = /*@__PURE__*/ defineContainer('sd-tbody', undefined, [
|
|
714
|
-
'rows'
|
|
715
|
-
]);
|
|
716
|
-
export const SdTd = /*@__PURE__*/ defineContainer('sd-td', undefined, [
|
|
717
|
-
'field',
|
|
718
|
-
'rowKey',
|
|
719
|
-
'align',
|
|
720
|
-
'rowspan',
|
|
721
|
-
'colspan',
|
|
722
|
-
'sdClass',
|
|
723
|
-
'dividerLeft',
|
|
724
|
-
'dividerRight',
|
|
725
|
-
'useFrame'
|
|
726
|
-
]);
|
|
727
677
|
export const SdTextLink = /*@__PURE__*/ defineContainer('sd-text-link', undefined, [
|
|
728
678
|
'label',
|
|
729
679
|
'icon',
|
|
@@ -773,20 +723,6 @@ export const SdTextarea = /*@__PURE__*/ defineContainer('sd-textarea', undefined
|
|
|
773
723
|
'sdFocus',
|
|
774
724
|
'sdBlur'
|
|
775
725
|
], 'value', 'sdUpdate', undefined);
|
|
776
|
-
export const SdThead = /*@__PURE__*/ defineContainer('sd-thead', undefined, [
|
|
777
|
-
'columns',
|
|
778
|
-
'selectable',
|
|
779
|
-
'resizable',
|
|
780
|
-
'stickyColumn',
|
|
781
|
-
'stickyHeader',
|
|
782
|
-
'scrolledLeft',
|
|
783
|
-
'scrolledRight',
|
|
784
|
-
'rows',
|
|
785
|
-
'columnWidths',
|
|
786
|
-
'sdColumnSort'
|
|
787
|
-
], [
|
|
788
|
-
'sdColumnSort'
|
|
789
|
-
]);
|
|
790
726
|
export const SdToast = /*@__PURE__*/ defineContainer('sd-toast', undefined, [
|
|
791
727
|
'icon',
|
|
792
728
|
'message',
|
|
@@ -839,11 +775,3 @@ export const SdTooltip = /*@__PURE__*/ defineContainer('sd-tooltip', undefined,
|
|
|
839
775
|
'triggerClass',
|
|
840
776
|
'triggerStyle'
|
|
841
777
|
]);
|
|
842
|
-
export const SdTr = /*@__PURE__*/ defineContainer('sd-tr', undefined, [
|
|
843
|
-
'columns',
|
|
844
|
-
'selectable',
|
|
845
|
-
'stickyColumn',
|
|
846
|
-
'rowKey',
|
|
847
|
-
'row',
|
|
848
|
-
'separator'
|
|
849
|
-
]);
|
|
@@ -3,11 +3,6 @@ import { defineCustomElements as defineLazyCustomElements } from '@sellmate/desi
|
|
|
3
3
|
import { defineCustomElement as defineSdCircleProgress } from '@sellmate/design-system/dist/components/sd-circle-progress.js';
|
|
4
4
|
import { defineCustomElement as defineSdLinearProgress } from '@sellmate/design-system/dist/components/sd-linear-progress.js';
|
|
5
5
|
import { defineCustomElement as defineSdLoadingModal } from '@sellmate/design-system/dist/components/sd-loading-modal.js';
|
|
6
|
-
import { defineCustomElement as defineSdTable } from '@sellmate/design-system/dist/components/sd-table.js';
|
|
7
|
-
import { defineCustomElement as defineSdTbody } from '@sellmate/design-system/dist/components/sd-tbody.js';
|
|
8
|
-
import { defineCustomElement as defineSdTd } from '@sellmate/design-system/dist/components/sd-td.js';
|
|
9
|
-
import { defineCustomElement as defineSdThead } from '@sellmate/design-system/dist/components/sd-thead.js';
|
|
10
|
-
import { defineCustomElement as defineSdTr } from '@sellmate/design-system/dist/components/sd-tr.js';
|
|
11
6
|
import { defineCustomElement as defineSdDivider } from '@sellmate/design-system/dist/components/sd-divider.js';
|
|
12
7
|
export function defineCustomElements() {
|
|
13
8
|
if (typeof customElements === 'undefined')
|
|
@@ -16,11 +11,6 @@ export function defineCustomElements() {
|
|
|
16
11
|
defineSdCircleProgress();
|
|
17
12
|
defineSdLinearProgress();
|
|
18
13
|
defineSdLoadingModal();
|
|
19
|
-
defineSdTable();
|
|
20
|
-
defineSdTbody();
|
|
21
|
-
defineSdTd();
|
|
22
|
-
defineSdThead();
|
|
23
|
-
defineSdTr();
|
|
24
14
|
defineSdDivider();
|
|
25
15
|
// 나머지 컴포넌트는 Stencil loader가 lazy 등록
|
|
26
16
|
defineLazyCustomElements();
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import '@sellmate/design-system/styles.css';
|
|
2
2
|
export * from './components';
|
|
3
3
|
export * from './plugin';
|
|
4
|
-
export { useSdTableVirtualScroll } from './composables/useSdTableVirtualScroll';
|
|
5
|
-
export type { VirtualRow } from './composables/useSdTableVirtualScroll';
|
|
6
4
|
export { sdModal, SdModalVuePlugin } from './sdModal';
|
|
7
5
|
export { sdLoading } from '@sellmate/design-system/utils';
|
|
8
6
|
export type { SdLoadingShowOptions } from '@sellmate/design-system/utils';
|
|
9
|
-
export type { ButtonName, ButtonProps, ButtonType, ButtonSize, GhostButtonIntent, GhostButtonSize, DropdownButtonItem, DropdownButtonName, DropdownButtonSize, DropdownButtonValue, BadgeColor, FieldAddonAlign, FieldSize, Rule, FieldIdentifier, ValidatableField, InputSize, NumberInputSize, BarcodeInputSize, ChipInputSize, SdTooltipProps, TooltipType, CalloutType, CalendarEventGroup, CheckedType, RadioValue, RadioOption, SelectOption, SelectOptionSelectDetail, SelectType, SelectValue, ConfirmModalMainButton, ConfirmModalType, ConfirmModalOptions, TagName, SdModalCreateOptions, ModalDialogRefLike, SdLoadingShowArgs, LoadingModalState, LoadingModalOptions, Type as DateBoxType, DatePickerSize, DateRangeValue, SdKeyValueField, SdKeyValueChangeDetail, LinearProgressType, CircleProgressType, PopoverButton, PopoverLink, PopupType, GuideType, TextLinkSize, TabOption, TabSize, ToastType, ToastPosition, ToastEntry, ToastNotifyOptions,
|
|
7
|
+
export type { ButtonName, ButtonProps, ButtonType, ButtonSize, GhostButtonIntent, GhostButtonSize, DropdownButtonItem, DropdownButtonName, DropdownButtonSize, DropdownButtonValue, BadgeColor, FieldAddonAlign, FieldSize, Rule, FieldIdentifier, ValidatableField, InputSize, NumberInputSize, BarcodeInputSize, ChipInputSize, SdTooltipProps, TooltipType, CalloutType, CalendarEventGroup, CheckedType, RadioValue, RadioOption, SelectOption, SelectOptionSelectDetail, SelectType, SelectValue, ConfirmModalMainButton, ConfirmModalType, ConfirmModalOptions, TagName, SdModalCreateOptions, ModalDialogRefLike, SdLoadingShowArgs, LoadingModalState, LoadingModalOptions, Type as DateBoxType, DatePickerSize, DateRangeValue, SdKeyValueField, SdKeyValueChangeDetail, LinearProgressType, CircleProgressType, PopoverButton, PopoverLink, PopupType, GuideType, TextLinkSize, TabOption, TabSize, ToastType, ToastPosition, ToastEntry, ToastNotifyOptions, } from '@sellmate/design-system';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import '@sellmate/design-system/styles.css';
|
|
2
2
|
export * from './components';
|
|
3
3
|
export * from './plugin';
|
|
4
|
-
export { useSdTableVirtualScroll } from './composables/useSdTableVirtualScroll';
|
|
5
4
|
export { sdModal, SdModalVuePlugin } from './sdModal';
|
|
6
5
|
export { sdLoading } from '@sellmate/design-system/utils';
|
package/lib/components.ts
CHANGED
|
@@ -199,7 +199,6 @@ export const SdConfirmModal: StencilVueComponent<JSX.SdConfirmModal> = /*@__PURE
|
|
|
199
199
|
'tagPreset',
|
|
200
200
|
'tagLabel',
|
|
201
201
|
'slotLabel',
|
|
202
|
-
'tagContents',
|
|
203
202
|
'sdClose',
|
|
204
203
|
'sdCancel',
|
|
205
204
|
'sdOk'
|
|
@@ -490,6 +489,7 @@ export const SdInput: StencilVueComponent<JSX.SdInput, JSX.SdInput["value"]> = /
|
|
|
490
489
|
|
|
491
490
|
export const SdKeyValueTable: StencilVueComponent<JSX.SdKeyValueTable> = /*@__PURE__*/ defineContainer<JSX.SdKeyValueTable>('sd-key-value-table', undefined, [
|
|
492
491
|
'fields',
|
|
492
|
+
'values',
|
|
493
493
|
'search',
|
|
494
494
|
'radius',
|
|
495
495
|
'sdChange',
|
|
@@ -771,45 +771,6 @@ export const SdSwitch: StencilVueComponent<JSX.SdSwitch, JSX.SdSwitch["value"]>
|
|
|
771
771
|
'value', 'sdUpdate', undefined);
|
|
772
772
|
|
|
773
773
|
|
|
774
|
-
export const SdTable: StencilVueComponent<JSX.SdTable, JSX.SdTable["selected"]> = /*@__PURE__*/ defineContainer<JSX.SdTable, JSX.SdTable["selected"]>('sd-table', undefined, [
|
|
775
|
-
'tableId',
|
|
776
|
-
'columns',
|
|
777
|
-
'rows',
|
|
778
|
-
'selected',
|
|
779
|
-
'rowKey',
|
|
780
|
-
'selectable',
|
|
781
|
-
'resizable',
|
|
782
|
-
'width',
|
|
783
|
-
'height',
|
|
784
|
-
'stickyHeader',
|
|
785
|
-
'stickyColumn',
|
|
786
|
-
'radius',
|
|
787
|
-
'noDataLabel',
|
|
788
|
-
'isLoading',
|
|
789
|
-
'pagination',
|
|
790
|
-
'useInternalPagination',
|
|
791
|
-
'useRowsPerPageSelect',
|
|
792
|
-
'dense',
|
|
793
|
-
'useVirtualScroll',
|
|
794
|
-
'rowHeight',
|
|
795
|
-
'virtualBuffer',
|
|
796
|
-
'virtualEndThreshold',
|
|
797
|
-
'rowsPerPageOption',
|
|
798
|
-
'sdSelectChange',
|
|
799
|
-
'sdPageChange',
|
|
800
|
-
'sdRowsPerPageChange',
|
|
801
|
-
'sdVirtualUpdate',
|
|
802
|
-
'sdVirtualReachEnd'
|
|
803
|
-
], [
|
|
804
|
-
'sdSelectChange',
|
|
805
|
-
'sdPageChange',
|
|
806
|
-
'sdRowsPerPageChange',
|
|
807
|
-
'sdVirtualUpdate',
|
|
808
|
-
'sdVirtualReachEnd'
|
|
809
|
-
],
|
|
810
|
-
'selected', 'sdSelectChange', undefined);
|
|
811
|
-
|
|
812
|
-
|
|
813
774
|
export const SdTabs: StencilVueComponent<JSX.SdTabs, JSX.SdTabs["value"]> = /*@__PURE__*/ defineContainer<JSX.SdTabs, JSX.SdTabs["value"]>('sd-tabs', undefined, [
|
|
814
775
|
'value',
|
|
815
776
|
'tabs',
|
|
@@ -832,24 +793,6 @@ export const SdTag: StencilVueComponent<JSX.SdTag> = /*@__PURE__*/ defineContain
|
|
|
832
793
|
]);
|
|
833
794
|
|
|
834
795
|
|
|
835
|
-
export const SdTbody: StencilVueComponent<JSX.SdTbody> = /*@__PURE__*/ defineContainer<JSX.SdTbody>('sd-tbody', undefined, [
|
|
836
|
-
'rows'
|
|
837
|
-
]);
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
export const SdTd: StencilVueComponent<JSX.SdTd> = /*@__PURE__*/ defineContainer<JSX.SdTd>('sd-td', undefined, [
|
|
841
|
-
'field',
|
|
842
|
-
'rowKey',
|
|
843
|
-
'align',
|
|
844
|
-
'rowspan',
|
|
845
|
-
'colspan',
|
|
846
|
-
'sdClass',
|
|
847
|
-
'dividerLeft',
|
|
848
|
-
'dividerRight',
|
|
849
|
-
'useFrame'
|
|
850
|
-
]);
|
|
851
|
-
|
|
852
|
-
|
|
853
796
|
export const SdTextLink: StencilVueComponent<JSX.SdTextLink> = /*@__PURE__*/ defineContainer<JSX.SdTextLink>('sd-text-link', undefined, [
|
|
854
797
|
'label',
|
|
855
798
|
'icon',
|
|
@@ -904,22 +847,6 @@ export const SdTextarea: StencilVueComponent<JSX.SdTextarea, JSX.SdTextarea["val
|
|
|
904
847
|
'value', 'sdUpdate', undefined);
|
|
905
848
|
|
|
906
849
|
|
|
907
|
-
export const SdThead: StencilVueComponent<JSX.SdThead> = /*@__PURE__*/ defineContainer<JSX.SdThead>('sd-thead', undefined, [
|
|
908
|
-
'columns',
|
|
909
|
-
'selectable',
|
|
910
|
-
'resizable',
|
|
911
|
-
'stickyColumn',
|
|
912
|
-
'stickyHeader',
|
|
913
|
-
'scrolledLeft',
|
|
914
|
-
'scrolledRight',
|
|
915
|
-
'rows',
|
|
916
|
-
'columnWidths',
|
|
917
|
-
'sdColumnSort'
|
|
918
|
-
], [
|
|
919
|
-
'sdColumnSort'
|
|
920
|
-
]);
|
|
921
|
-
|
|
922
|
-
|
|
923
850
|
export const SdToast: StencilVueComponent<JSX.SdToast> = /*@__PURE__*/ defineContainer<JSX.SdToast>('sd-toast', undefined, [
|
|
924
851
|
'icon',
|
|
925
852
|
'message',
|
|
@@ -980,13 +907,3 @@ export const SdTooltip: StencilVueComponent<JSX.SdTooltip> = /*@__PURE__*/ defin
|
|
|
980
907
|
'triggerStyle'
|
|
981
908
|
]);
|
|
982
909
|
|
|
983
|
-
|
|
984
|
-
export const SdTr: StencilVueComponent<JSX.SdTr> = /*@__PURE__*/ defineContainer<JSX.SdTr>('sd-tr', undefined, [
|
|
985
|
-
'columns',
|
|
986
|
-
'selectable',
|
|
987
|
-
'stickyColumn',
|
|
988
|
-
'rowKey',
|
|
989
|
-
'row',
|
|
990
|
-
'separator'
|
|
991
|
-
]);
|
|
992
|
-
|
|
@@ -4,11 +4,6 @@ import { defineCustomElements as defineLazyCustomElements } from '@sellmate/desi
|
|
|
4
4
|
import { defineCustomElement as defineSdCircleProgress } from '@sellmate/design-system/dist/components/sd-circle-progress.js';
|
|
5
5
|
import { defineCustomElement as defineSdLinearProgress } from '@sellmate/design-system/dist/components/sd-linear-progress.js';
|
|
6
6
|
import { defineCustomElement as defineSdLoadingModal } from '@sellmate/design-system/dist/components/sd-loading-modal.js';
|
|
7
|
-
import { defineCustomElement as defineSdTable } from '@sellmate/design-system/dist/components/sd-table.js';
|
|
8
|
-
import { defineCustomElement as defineSdTbody } from '@sellmate/design-system/dist/components/sd-tbody.js';
|
|
9
|
-
import { defineCustomElement as defineSdTd } from '@sellmate/design-system/dist/components/sd-td.js';
|
|
10
|
-
import { defineCustomElement as defineSdThead } from '@sellmate/design-system/dist/components/sd-thead.js';
|
|
11
|
-
import { defineCustomElement as defineSdTr } from '@sellmate/design-system/dist/components/sd-tr.js';
|
|
12
7
|
import { defineCustomElement as defineSdDivider } from '@sellmate/design-system/dist/components/sd-divider.js';
|
|
13
8
|
|
|
14
9
|
export function defineCustomElements(): void {
|
|
@@ -18,11 +13,6 @@ export function defineCustomElements(): void {
|
|
|
18
13
|
defineSdCircleProgress();
|
|
19
14
|
defineSdLinearProgress();
|
|
20
15
|
defineSdLoadingModal();
|
|
21
|
-
defineSdTable();
|
|
22
|
-
defineSdTbody();
|
|
23
|
-
defineSdTd();
|
|
24
|
-
defineSdThead();
|
|
25
|
-
defineSdTr();
|
|
26
16
|
defineSdDivider();
|
|
27
17
|
|
|
28
18
|
// 나머지 컴포넌트는 Stencil loader가 lazy 등록
|
package/lib/index.ts
CHANGED
|
@@ -2,8 +2,6 @@ import '@sellmate/design-system/styles.css';
|
|
|
2
2
|
|
|
3
3
|
export * from './components';
|
|
4
4
|
export * from './plugin';
|
|
5
|
-
export { useSdTableVirtualScroll } from './composables/useSdTableVirtualScroll';
|
|
6
|
-
export type { VirtualRow } from './composables/useSdTableVirtualScroll';
|
|
7
5
|
export { sdModal, SdModalVuePlugin } from './sdModal';
|
|
8
6
|
export { sdLoading } from '@sellmate/design-system/utils';
|
|
9
7
|
export type { SdLoadingShowOptions } from '@sellmate/design-system/utils';
|
|
@@ -92,10 +90,4 @@ export type {
|
|
|
92
90
|
ToastPosition,
|
|
93
91
|
ToastEntry,
|
|
94
92
|
ToastNotifyOptions,
|
|
95
|
-
// Table types
|
|
96
|
-
SdTableColumn,
|
|
97
|
-
Row as SdTableRow,
|
|
98
|
-
SdTablePagination,
|
|
99
|
-
SdTableStickyColumn,
|
|
100
|
-
SdTableConfig,
|
|
101
93
|
} from '@sellmate/design-system';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sellmate/design-system-vue",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.29.0",
|
|
4
4
|
"description": "Design System - Vue Component Wrappers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vue",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"vue": "^3.4.38"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@sellmate/design-system": "^1.
|
|
50
|
+
"@sellmate/design-system": "^1.29.0",
|
|
51
51
|
"@stencil/vue-output-target": "^0.11.8"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { ref, computed, onMounted, onUnmounted, type Ref } from 'vue';
|
|
2
|
-
|
|
3
|
-
export interface VirtualRow<T = Record<string, any>> {
|
|
4
|
-
/** 전체 rows 기준 절대 인덱스 — sd-tr의 rowKey로 사용 */
|
|
5
|
-
index: number;
|
|
6
|
-
row: T;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
interface SdVirtualUpdateDetail {
|
|
10
|
-
from: number;
|
|
11
|
-
to: number;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export function useSdTableVirtualScroll<T extends Record<string, any>>(
|
|
15
|
-
tableRef: Ref<any>,
|
|
16
|
-
rows: Ref<T[]>,
|
|
17
|
-
) {
|
|
18
|
-
const range = ref<{ from: number; to: number } | null>(null);
|
|
19
|
-
|
|
20
|
-
let targetEl: HTMLElement | null = null;
|
|
21
|
-
let rafId = 0;
|
|
22
|
-
|
|
23
|
-
const onVirtualUpdate = (e: Event) => {
|
|
24
|
-
const { from, to } = (e as CustomEvent<SdVirtualUpdateDetail>).detail;
|
|
25
|
-
range.value = { from, to };
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const syncRange = (el: HTMLElement): boolean => {
|
|
29
|
-
const currentRange = (el as any).getVirtualScrollRangeSync?.();
|
|
30
|
-
if (
|
|
31
|
-
currentRange &&
|
|
32
|
-
typeof currentRange.from === 'number' &&
|
|
33
|
-
typeof currentRange.to === 'number'
|
|
34
|
-
) {
|
|
35
|
-
range.value = { from: currentRange.from, to: currentRange.to };
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
return false;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const attachWhenReady = () => {
|
|
42
|
-
// Stencil Vue 래퍼는 expose()를 사용하지 않으므로 $el로 실제 custom element에 접근
|
|
43
|
-
const raw = (tableRef.value as any)?.$el ?? tableRef.value;
|
|
44
|
-
const el: HTMLElement | null = raw instanceof HTMLElement ? raw : null;
|
|
45
|
-
if (!el) {
|
|
46
|
-
rafId = requestAnimationFrame(attachWhenReady);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
targetEl = el;
|
|
51
|
-
targetEl.addEventListener('sdVirtualUpdate', onVirtualUpdate);
|
|
52
|
-
|
|
53
|
-
const trySync = () => {
|
|
54
|
-
if (!targetEl) return;
|
|
55
|
-
if (!syncRange(targetEl)) {
|
|
56
|
-
rafId = requestAnimationFrame(trySync);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
trySync();
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
onMounted(() => {
|
|
64
|
-
attachWhenReady();
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
onUnmounted(() => {
|
|
68
|
-
cancelAnimationFrame(rafId);
|
|
69
|
-
targetEl?.removeEventListener('sdVirtualUpdate', onVirtualUpdate);
|
|
70
|
-
targetEl = null;
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
const virtualRows = computed<VirtualRow<T>[]>(() => {
|
|
74
|
-
if (!range.value) return [];
|
|
75
|
-
const { from, to } = range.value;
|
|
76
|
-
return rows.value.slice(from, to).map((row, i) => ({ index: from + i, row }));
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
return {
|
|
80
|
-
virtualRows,
|
|
81
|
-
from: computed(() => range.value?.from ?? 0),
|
|
82
|
-
to: computed(() => range.value?.to ?? 0),
|
|
83
|
-
};
|
|
84
|
-
}
|