@sellmate/design-system 0.0.26 → 0.0.27

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.
Files changed (87) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table.sd-tooltip.sd-tooltip-portal.entry.cjs.js.map +1 -0
  4. package/dist/cjs/{sd-button_12.cjs.entry.js → sd-button_13.cjs.entry.js} +50 -30
  5. package/dist/cjs/sd-popover.cjs.entry.js +2 -2
  6. package/dist/cjs/sd-select-multiple.cjs.entry.js +2 -2
  7. package/dist/cjs/sd-select-option-group.cjs.entry.js +3 -3
  8. package/dist/collection/collection-manifest.json +1 -0
  9. package/dist/collection/components/sd-guide/sd-guide.js +5 -0
  10. package/dist/collection/components/sd-guide/sd-guide.js.map +1 -1
  11. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.css +41 -0
  12. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +18 -0
  13. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js.map +1 -0
  14. package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
  15. package/dist/collection/components/sd-popover/sd-popover.js +2 -2
  16. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  17. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
  18. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +2 -2
  19. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  20. package/dist/collection/components/sd-table/sd-table.css +16 -0
  21. package/dist/collection/components/sd-table/sd-table.js +2100 -19
  22. package/dist/collection/components/sd-table/sd-table.js.map +1 -1
  23. package/dist/collection/components/sd-tooltip/sd-tooltip.js +4 -4
  24. package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js +1 -1
  25. package/dist/components/{p-BhRUodRD.js → p-B3EQCsY9.js} +7 -7
  26. package/dist/components/{p-BhRUodRD.js.map → p-B3EQCsY9.js.map} +1 -1
  27. package/dist/components/p-C23A_qhU.js +34 -0
  28. package/dist/components/p-C23A_qhU.js.map +1 -0
  29. package/dist/components/{p-CkHD07WH.js → p-Cf90_rlW.js} +4 -4
  30. package/dist/components/{p-CkHD07WH.js.map → p-Cf90_rlW.js.map} +1 -1
  31. package/dist/components/{p-CMFEznYN.js → p-Co9WrTI9.js} +4 -4
  32. package/dist/components/{p-CMFEznYN.js.map → p-Co9WrTI9.js.map} +1 -1
  33. package/dist/components/{p-DWYqZdbI.js → p-DoP8A06Z.js} +5 -5
  34. package/dist/components/{p-DWYqZdbI.js.map → p-DoP8A06Z.js.map} +1 -1
  35. package/dist/components/{p-BttJlXkp.js → p-FG2MnD9R.js} +3 -3
  36. package/dist/components/{p-BttJlXkp.js.map → p-FG2MnD9R.js.map} +1 -1
  37. package/dist/components/{p-DtOWZESA.js → p-bjYBeH1G.js} +3 -3
  38. package/dist/components/{p-DtOWZESA.js.map → p-bjYBeH1G.js.map} +1 -1
  39. package/dist/components/{p-Cs1Kf3Tx.js → p-qJp_DZU2.js} +3 -3
  40. package/dist/components/{p-Cs1Kf3Tx.js.map → p-qJp_DZU2.js.map} +1 -1
  41. package/dist/components/sd-date-picker.js +1 -1
  42. package/dist/components/sd-date-range-picker.js +1 -1
  43. package/dist/components/sd-guide.js +1 -1
  44. package/dist/components/sd-guide.js.map +1 -1
  45. package/dist/components/sd-loading-spinner.d.ts +11 -0
  46. package/dist/components/sd-loading-spinner.js +9 -0
  47. package/dist/components/sd-loading-spinner.js.map +1 -0
  48. package/dist/components/sd-pagination.js +1 -1
  49. package/dist/components/sd-popover.js +3 -3
  50. package/dist/components/sd-portal.js +1 -1
  51. package/dist/components/sd-select-multiple-group.js +2 -2
  52. package/dist/components/sd-select-multiple.js +4 -4
  53. package/dist/components/sd-select-option-group.js +1 -1
  54. package/dist/components/sd-select-option.js +1 -1
  55. package/dist/components/sd-select.js +1 -1
  56. package/dist/components/sd-table.js +48 -34
  57. package/dist/components/sd-table.js.map +1 -1
  58. package/dist/components/sd-tooltip-portal.js +1 -1
  59. package/dist/components/sd-tooltip.js +1 -1
  60. package/dist/design-system/design-system.esm.js +1 -1
  61. package/dist/design-system/{p-9975f6f3.entry.js → p-38c4f9b1.entry.js} +2 -2
  62. package/dist/design-system/p-38c4f9b1.entry.js.map +1 -0
  63. package/dist/design-system/p-4cad47c5.entry.js +2 -0
  64. package/dist/design-system/{p-e061c4f8.entry.js → p-8fbdec47.entry.js} +2 -2
  65. package/dist/design-system/{p-12b6c1a5.entry.js → p-e2e1c401.entry.js} +2 -2
  66. package/dist/design-system/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table.sd-tooltip.sd-tooltip-portal.entry.esm.js.map +1 -0
  67. package/dist/esm/design-system.js +1 -1
  68. package/dist/esm/loader.js +1 -1
  69. package/dist/esm/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table.sd-tooltip.sd-tooltip-portal.entry.js.map +1 -0
  70. package/dist/esm/{sd-button_12.entry.js → sd-button_13.entry.js} +50 -31
  71. package/dist/esm/sd-popover.entry.js +2 -2
  72. package/dist/esm/sd-select-multiple.entry.js +2 -2
  73. package/dist/esm/sd-select-option-group.entry.js +3 -3
  74. package/dist/types/components/sd-loading-spinner/sd-loading-spinner.d.ts +3 -0
  75. package/dist/types/components/sd-table/sd-table.d.ts +2 -0
  76. package/dist/types/components.d.ts +23 -0
  77. package/hydrate/index.js +65 -36
  78. package/hydrate/index.mjs +65 -36
  79. package/package.json +2 -2
  80. package/dist/cjs/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table.sd-tooltip.sd-tooltip-portal.entry.cjs.js.map +0 -1
  81. package/dist/design-system/p-9975f6f3.entry.js.map +0 -1
  82. package/dist/design-system/p-af3a1dbb.entry.js +0 -2
  83. package/dist/design-system/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table.sd-tooltip.sd-tooltip-portal.entry.esm.js.map +0 -1
  84. package/dist/esm/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table.sd-tooltip.sd-tooltip-portal.entry.js.map +0 -1
  85. /package/dist/design-system/{p-af3a1dbb.entry.js.map → p-4cad47c5.entry.js.map} +0 -0
  86. /package/dist/design-system/{p-e061c4f8.entry.js.map → p-8fbdec47.entry.js.map} +0 -0
  87. /package/dist/design-system/{p-12b6c1a5.entry.js.map → p-e2e1c401.entry.js.map} +0 -0
@@ -12,6 +12,7 @@ export class SdTable {
12
12
  stickyHeader = false;
13
13
  stickyColumn = { left: 0, right: 0 };
14
14
  noDataLabel = '데이터가 없습니다.';
15
+ isLoading = false;
15
16
  pagination;
16
17
  bodyCellRenderer;
17
18
  useInternalPagination = false;
@@ -24,6 +25,7 @@ export class SdTable {
24
25
  ];
25
26
  sdSelectChange;
26
27
  sdPageChange;
28
+ sdRowsPerPageChange;
27
29
  currentPage = this.pagination?.page || 1;
28
30
  innerRows = [];
29
31
  innerSelected = new Set();
@@ -184,9 +186,7 @@ export class SdTable {
184
186
  }, style: this.getStickyStyle(colIdx) }, h("div", { class: `sd-th__content sd-th__content--${col.align || 'left'}` }, h("slot", { name: `header-cell-${col.name}` }, h("div", { class: "sd-th__content--label" }, col.label)), col.usePageMoveIcon && h("sd-icon", { name: "pageMove", size: "12", color: "#006AC1" }), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))), this.resizable && typeof window !== 'undefined' && (h("div", { class: "sd-th__resizer", onMouseDown: (evt) => this.handleResize(colIdx, evt) }))))))));
185
187
  }
186
188
  renderBody() {
187
- if (!this.paginatedRows.length)
188
- return (h("tbody", { part: "tbody-empty" }, h("tr", null, h("td", { colSpan: this.visibleColumns.length + (this.selectable ? 1 : 0) }, this.noDataLabel))));
189
- return (h("tbody", null, this.paginatedRows.map((row, rowIdx) => (h("tr", { key: row[this.rowKey], class: "hover:bg-Grey_Lighten-6" }, this.selectable && (h("td", { class: {
189
+ return (h("tbody", { ...(!this.paginatedRows.length && { part: 'tbody-empty' }) }, this.isLoading && (h("div", { class: "sd-table__loading" }, h("sd-loading-spinner", null))), !this.paginatedRows.length ? (h("tr", null, h("td", { colSpan: this.visibleColumns.length + (this.selectable ? 1 : 0) }, h("slot", { name: "no-data" }, this.noDataLabel)))) : (h(h.Fragment, null, this.paginatedRows.map((row, rowIdx) => (h("tr", { key: row[this.rowKey], class: "hover:bg-Grey_Lighten-6" }, this.selectable && (h("td", { class: {
190
190
  'sd-td': true,
191
191
  'sd-td--selected': true,
192
192
  'sticky-left': Boolean(this.stickyColumn.left && this.stickyColumn.left > 0),
@@ -205,13 +205,13 @@ export class SdTable {
205
205
  colIdx === this.visibleColumns.length - this.stickyColumn.right),
206
206
  [`${column.tdClass}`]: Boolean(column.tdClass),
207
207
  }, style: this.getStickyStyle(colIdx) }, h("slot", { name: `body-cell-${column.name}-${rowIdx}` }, rendered ? (typeof rendered === 'string' ? (h("span", { innerHTML: rendered })) : (rendered)) : (this.getCellValue(column, row)))));
208
- }))))));
208
+ }))))))));
209
209
  }
210
210
  render() {
211
- return (h(Host, { key: 'b73fefde2c99c864002a2e778b02a306d4c8c32d' }, h("div", { key: '4fbf588871e3b8cb92e087cbde59aa9280ba75cd', class: "sd-table__wrapper", style: {
211
+ return (h(Host, { key: '941eac6f220c2eb336748b19d7d62421954d7b2d' }, h("div", { key: '9e1753e83333aca00ff3e1b85746a1a9f14ceed3', class: "sd-table__wrapper", style: {
212
212
  '--table-width': this.width,
213
213
  '--table-height': this.height,
214
- } }, h("div", { key: '92d69eaf8e499fd5b3a0ebb3d77353c8285949e5', class: "sd-table__container" }, h("div", { key: '590fd93058983bab3bc829e7c6ce4e058365287f', class: "sd-table__middle" }, h("table", { key: 'c1fd46586bd9429377dfff9df94550cb5437b05a', part: "table", class: this.sdTableClasses }, this.renderHeader(), this.renderBody())), h("div", { key: '89a48072c9f6b84d062e4e127b5858657003fc87', class: "sd-table__bottom" })), this.pagination && this.innerRows.length > 0 && (h("div", { key: '526c024bc5493b8a3abb4f7887ec221e38dd2937', class: "sd-table__pagination" }, h("sd-pagination", { key: 'f607579ff98e70f2c6975139a17c7fc48b940a19', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onPageChange: (e) => {
214
+ } }, h("div", { key: '1a1077fc7cf1056ec1756e87cb47485e96b66d60', class: "sd-table__container" }, h("div", { key: '13dce57546577aef35abe3e6e2f9fe8155ee0d9c', class: "sd-table__middle" }, h("table", { key: '7fbc368f33cfd222732ca45f07ab3876f4739fce', part: "table", class: this.sdTableClasses }, this.renderHeader(), this.renderBody())), h("div", { key: 'a96bdcb80985577f8f24d79ba0356be7926f84fc', class: "sd-table__bottom" })), this.pagination && this.innerRows.length > 0 && (h("div", { key: '111c1d44684dc1f795250f2be51a31959e9c62e2', class: "sd-table__pagination" }, h("sd-pagination", { key: '349f9cac77c2212e3d533c8fe62e1ab2ebbe461c', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onPageChange: (e) => {
215
215
  if (!this.useInternalPagination) {
216
216
  this.sdPageChange.emit(e.detail);
217
217
  }
@@ -219,20 +219,26 @@ export class SdTable {
219
219
  this.currentPage = e.detail;
220
220
  this.sdPageChange.emit(this.currentPage);
221
221
  }
222
- } }), this.useRowsPerPageSelect && (h("sd-select", { key: '683424acaf3961dcf681e8a04275cdba6bdf9928', value: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", onSdChange: (e) => {
223
- const newRowsPerPage = Number(e.detail.value || 0);
224
- let newLastPage = Math.max(1, Math.ceil(this.innerRows.length / newRowsPerPage));
225
- let newCurrentPage = this.currentPage;
226
- if (newCurrentPage > newLastPage) {
227
- newCurrentPage = newLastPage;
222
+ } }), this.useRowsPerPageSelect && (h("sd-select", { key: '1a9b338efdeaa212c5f3751dae638631b60f89d8', value: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", onSdChange: (e) => {
223
+ const changedRowsPerPage = e.detail.value ? Number(e.detail.value) : 0;
224
+ if (!this.useInternalPagination) {
225
+ this.sdRowsPerPageChange.emit(changedRowsPerPage);
226
+ }
227
+ else {
228
+ const newRowsPerPage = Number(e.detail.value || 0);
229
+ let newLastPage = Math.max(1, Math.ceil(this.innerRows.length / newRowsPerPage));
230
+ let newCurrentPage = this.currentPage;
231
+ if (newCurrentPage > newLastPage) {
232
+ newCurrentPage = newLastPage;
233
+ }
234
+ this.pagination = {
235
+ page: newCurrentPage,
236
+ rowsPerPage: newRowsPerPage,
237
+ lastPage: newLastPage,
238
+ };
239
+ this.currentPage = newCurrentPage;
240
+ this.sdRowsPerPageChange.emit(changedRowsPerPage);
228
241
  }
229
- this.pagination = {
230
- page: newCurrentPage,
231
- rowsPerPage: newRowsPerPage,
232
- lastPage: newLastPage,
233
- };
234
- this.currentPage = newCurrentPage;
235
- this.sdPageChange.emit(this.currentPage);
236
242
  } })))))));
237
243
  }
238
244
  static get is() { return "sd-table"; }
@@ -478,6 +484,26 @@ export class SdTable {
478
484
  "attribute": "no-data-label",
479
485
  "defaultValue": "'\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.'"
480
486
  },
487
+ "isLoading": {
488
+ "type": "boolean",
489
+ "mutable": false,
490
+ "complexType": {
491
+ "original": "boolean",
492
+ "resolved": "boolean",
493
+ "references": {}
494
+ },
495
+ "required": false,
496
+ "optional": false,
497
+ "docs": {
498
+ "tags": [],
499
+ "text": ""
500
+ },
501
+ "getter": false,
502
+ "setter": false,
503
+ "reflect": false,
504
+ "attribute": "is-loading",
505
+ "defaultValue": "false"
506
+ },
481
507
  "pagination": {
482
508
  "type": "unknown",
483
509
  "mutable": false,
@@ -640,6 +666,21 @@ export class SdTable {
640
666
  "resolved": "number",
641
667
  "references": {}
642
668
  }
669
+ }, {
670
+ "method": "sdRowsPerPageChange",
671
+ "name": "sdRowsPerPageChange",
672
+ "bubbles": true,
673
+ "cancelable": true,
674
+ "composed": true,
675
+ "docs": {
676
+ "tags": [],
677
+ "text": ""
678
+ },
679
+ "complexType": {
680
+ "original": "number",
681
+ "resolved": "number",
682
+ "references": {}
683
+ }
643
684
  }];
644
685
  }
645
686
  static get elementRef() { return "el"; }
@@ -659,4 +700,2044 @@ export class SdTable {
659
700
  }];
660
701
  }
661
702
  }
703
+ // <div
704
+ // style="
705
+ // width: 100%;
706
+ // height: 600px;
707
+ // display: flex;
708
+ // justify-content: center;
709
+ // align-items: center;
710
+ // gap: 40px;
711
+ // margin-top: 100px;
712
+ // "
713
+ // >
714
+ // <sd-table id="sd-table-1" use-rows-per-page-select></sd-table>
715
+ // <button id="test">시작</button>
716
+ // </div>
717
+ // document.addEventListener('DOMContentLoaded', event => {
718
+ // const table = document.getElementById('sd-table-1');
719
+ // const test = document.getElementById('test');
720
+ // table.pagination = {
721
+ // page: 1,
722
+ // rowsPerPage: 50,
723
+ // totalItems: 0,
724
+ // lastPage: 1,
725
+ // };
726
+ // table.rows = [];
727
+ // const ROWS = [
728
+ // {
729
+ // 'id': 1,
730
+ // 'productInfo': {
731
+ // name: 'Oversized Wool Autumn Jacket',
732
+ // property: '블랙, OS',
733
+ // barcode: [{ code: '123456789013456789' }],
734
+ // code: 'OUTJK002BLKM',
735
+ // category: '의류 > 아우터 > 자켓',
736
+ // season: '2025 (S/S)',
737
+ // },
738
+ // 'avgCost': 150000,
739
+ // 'totalStock': 5200,
740
+ // 'movingStock': 250,
741
+ // 'unshippedStock': 100,
742
+ // '본사 창고': {
743
+ // total: 100000,
744
+ // scheduled: 5000,
745
+ // },
746
+ // '롯데 백화점 잠실점': {
747
+ // total: 100000,
748
+ // scheduled: 5000,
749
+ // },
750
+ // },
751
+ // {
752
+ // 'id': 2,
753
+ // 'productInfo': {
754
+ // name: 'Cotton Basic T-Shirt',
755
+ // property: '화이트, L',
756
+ // barcode: [{ code: '123456789013456780' }],
757
+ // code: 'TSHRT001WHTL',
758
+ // category: '의류 > 상의 > 티셔츠',
759
+ // season: '2025 (S/S)',
760
+ // },
761
+ // 'avgCost': 25000,
762
+ // 'totalStock': 8500,
763
+ // 'movingStock': 400,
764
+ // 'unshippedStock': 150,
765
+ // '본사 창고': {
766
+ // total: 100000,
767
+ // scheduled: 5000,
768
+ // },
769
+ // '롯데 백화점 잠실점': {
770
+ // total: 100000,
771
+ // scheduled: 5000,
772
+ // },
773
+ // },
774
+ // {
775
+ // 'id': 3,
776
+ // 'productInfo': {
777
+ // name: 'Denim Straight Jeans',
778
+ // property: '네이비, 30',
779
+ // barcode: [{ code: '123456789013456781' }],
780
+ // code: 'JEANS001NAVY30',
781
+ // category: '의류 > 하의 > 청바지',
782
+ // season: '2025 (F/W)',
783
+ // isDeleted: true,
784
+ // },
785
+ // 'avgCost': 89000,
786
+ // 'totalStock': 3200,
787
+ // 'movingStock': 180,
788
+ // 'unshippedStock': 80,
789
+ // '본사 창고': {
790
+ // total: 100000,
791
+ // scheduled: 5000,
792
+ // },
793
+ // 'ABC 창고 (한솔 로지스틱스)': {
794
+ // total: 2000,
795
+ // scheduled: 100,
796
+ // },
797
+ // '롯데 백화점 잠실점': {
798
+ // total: 100000,
799
+ // scheduled: 5000,
800
+ // },
801
+ // },
802
+ // {
803
+ // 'id': 4,
804
+ // 'productInfo': {
805
+ // name: 'Leather Ankle Boots',
806
+ // property: '브라운, 250',
807
+ // barcode: [{ code: '123456789013456782' }],
808
+ // code: 'BOOTS001BRN250',
809
+ // category: '신발 > 부츠 > 앵클부츠',
810
+ // season: '2025 (F/W)',
811
+ // },
812
+ // 'avgCost': 180000,
813
+ // 'totalStock': 1800,
814
+ // 'movingStock': 120,
815
+ // 'unshippedStock': 60,
816
+ // '본사 창고': {
817
+ // total: 100000,
818
+ // scheduled: 5000,
819
+ // },
820
+ // '롯데 백화점 잠실점': {
821
+ // total: 100000,
822
+ // scheduled: 5000,
823
+ // },
824
+ // },
825
+ // {
826
+ // 'id': 5,
827
+ // 'productInfo': {
828
+ // name: 'Cashmere Wool Scarf',
829
+ // property: '그레이, OS',
830
+ // barcode: [{ code: '123456789013456783' }],
831
+ // code: 'SCARF001GRAY',
832
+ // category: '액세서리 > 머플러 > 캐시미어',
833
+ // season: '2025 (F/W)',
834
+ // },
835
+ // 'avgCost': 75000,
836
+ // 'totalStock': 2400,
837
+ // 'movingStock': 140,
838
+ // 'unshippedStock': 70,
839
+ // '본사 창고': {
840
+ // total: 100000,
841
+ // scheduled: 5000,
842
+ // },
843
+ // '롯데 백화점 잠실점': {
844
+ // total: 100000,
845
+ // scheduled: 5000,
846
+ // },
847
+ // },
848
+ // {
849
+ // 'id': 6,
850
+ // 'productInfo': {
851
+ // name: 'Minimalist Watch',
852
+ // property: '실버, OS',
853
+ // barcode: [{ code: '123456789013456784' }],
854
+ // code: 'WATCH001SLV',
855
+ // category: '액세서리 > 시계 > 손목시계',
856
+ // season: '2025 (S/S)',
857
+ // },
858
+ // 'avgCost': 120000,
859
+ // 'totalStock': 950,
860
+ // 'movingStock': 85,
861
+ // 'unshippedStock': 40,
862
+ // '본사 창고': {
863
+ // total: 65000,
864
+ // scheduled: 2200,
865
+ // },
866
+ // },
867
+ // {
868
+ // 'id': 7,
869
+ // 'productInfo': {
870
+ // name: 'Sports Running Shoes',
871
+ // property: '블랙, 270',
872
+ // barcode: [{ code: '123456789013456785' }],
873
+ // code: 'SHOES001BLK270',
874
+ // category: '신발 > 운동화 > 러닝화',
875
+ // season: '2025 (S/S)',
876
+ // },
877
+ // 'avgCost': 95000,
878
+ // 'totalStock': 4200,
879
+ // 'movingStock': 320,
880
+ // 'unshippedStock': 160,
881
+ // '본사 창고': {
882
+ // total: 110000,
883
+ // scheduled: 5500,
884
+ // },
885
+ // },
886
+ // {
887
+ // 'id': 8,
888
+ // 'productInfo': {
889
+ // name: 'Silk Blouse',
890
+ // property: '크림, M',
891
+ // barcode: [{ code: '123456789013456786' }],
892
+ // code: 'BLOUSE001CRM',
893
+ // category: '의류 > 상의 > 블라우스',
894
+ // season: '2025 (S/S)',
895
+ // },
896
+ // 'avgCost': 135000,
897
+ // 'totalStock': 1600,
898
+ // 'movingStock': 95,
899
+ // 'unshippedStock': 45,
900
+ // '본사 창고': {
901
+ // total: 72000,
902
+ // scheduled: 3100,
903
+ // },
904
+ // },
905
+ // {
906
+ // 'id': 9,
907
+ // 'productInfo': {
908
+ // name: 'Canvas Tote Bag',
909
+ // property: '베이지, L',
910
+ // barcode: [{ code: '123456789013456787' }],
911
+ // code: 'BAG001BGEL',
912
+ // category: '가방 > 토트백 > 캔버스',
913
+ // season: '2025 (S/S)',
914
+ // },
915
+ // 'avgCost': 45000,
916
+ // 'totalStock': 3800,
917
+ // 'movingStock': 280,
918
+ // 'unshippedStock': 140,
919
+ // '본사 창고': {
920
+ // total: 88000,
921
+ // scheduled: 4800,
922
+ // },
923
+ // },
924
+ // {
925
+ // 'id': 10,
926
+ // 'productInfo': {
927
+ // name: 'Wool Knit Sweater',
928
+ // property: '차콜, XL',
929
+ // barcode: [{ code: '123456789013456788' }],
930
+ // code: 'KNIT001CHRXL',
931
+ // category: '의류 > 상의 > 니트',
932
+ // season: '2025 (F/W)',
933
+ // },
934
+ // 'avgCost': 98000,
935
+ // 'totalStock': 2800,
936
+ // 'movingStock': 190,
937
+ // 'unshippedStock': 95,
938
+ // '본사 창고': {
939
+ // total: 76000,
940
+ // scheduled: 3800,
941
+ // },
942
+ // },
943
+ // {
944
+ // 'id': 11,
945
+ // 'productInfo': {
946
+ // name: 'Baseball Cap',
947
+ // property: '네이비, OS',
948
+ // barcode: [{ code: '123456789013456789' }],
949
+ // code: 'CAP001NAVY',
950
+ // category: '액세서리 > 모자 > 야구모자',
951
+ // season: '2025 (S/S)',
952
+ // },
953
+ // 'avgCost': 35000,
954
+ // 'totalStock': 5400,
955
+ // 'movingStock': 380,
956
+ // 'unshippedStock': 190,
957
+ // '본사 창고': {
958
+ // total: 125000,
959
+ // scheduled: 6200,
960
+ // },
961
+ // },
962
+ // {
963
+ // 'id': 12,
964
+ // 'productInfo': {
965
+ // name: 'Pleated Mini Skirt',
966
+ // property: '체크, S',
967
+ // barcode: [{ code: '123456789013456790' }],
968
+ // code: 'SKIRT001CHKS',
969
+ // category: '의류 > 하의 > 스커트',
970
+ // season: '2025 (S/S)',
971
+ // },
972
+ // 'avgCost': 68000,
973
+ // 'totalStock': 2200,
974
+ // 'movingStock': 165,
975
+ // 'unshippedStock': 82,
976
+ // '본사 창고': {
977
+ // total: 69000,
978
+ // scheduled: 3400,
979
+ // },
980
+ // },
981
+ // {
982
+ // 'id': 13,
983
+ // 'productInfo': {
984
+ // name: 'Leather Belt',
985
+ // property: '블랙, 95',
986
+ // barcode: [{ code: '123456789013456791' }],
987
+ // code: 'BELT001BLK95',
988
+ // category: '액세서리 > 벨트 > 가죽벨트',
989
+ // season: '2025 (F/W)',
990
+ // },
991
+ // 'avgCost': 55000,
992
+ // 'totalStock': 1400,
993
+ // 'movingStock': 85,
994
+ // 'unshippedStock': 42,
995
+ // '본사 창고': {
996
+ // total: 58000,
997
+ // scheduled: 2100,
998
+ // },
999
+ // },
1000
+ // {
1001
+ // 'id': 14,
1002
+ // 'productInfo': {
1003
+ // name: 'Hooded Sweatshirt',
1004
+ // property: '그레이, L',
1005
+ // barcode: [{ code: '123456789013456792' }],
1006
+ // code: 'HOOD001GRAYL',
1007
+ // category: '의류 > 상의 > 후디',
1008
+ // season: '2025 (F/W)',
1009
+ // },
1010
+ // 'avgCost': 78000,
1011
+ // 'totalStock': 3600,
1012
+ // 'movingStock': 245,
1013
+ // 'unshippedStock': 122,
1014
+ // '본사 창고': {
1015
+ // total: 92000,
1016
+ // scheduled: 4500,
1017
+ // },
1018
+ // },
1019
+ // {
1020
+ // 'id': 15,
1021
+ // 'productInfo': {
1022
+ // name: 'Chain Necklace',
1023
+ // property: '골드, OS',
1024
+ // barcode: [{ code: '123456789013456793' }],
1025
+ // code: 'NECK001GOLD',
1026
+ // category: '액세서리 > 목걸이 > 체인',
1027
+ // season: '2025 (S/S)',
1028
+ // },
1029
+ // 'avgCost': 85000,
1030
+ // 'totalStock': 880,
1031
+ // 'movingStock': 55,
1032
+ // 'unshippedStock': 28,
1033
+ // '본사 창고': {
1034
+ // total: 42000,
1035
+ // scheduled: 1800,
1036
+ // },
1037
+ // },
1038
+ // {
1039
+ // 'id': 16,
1040
+ // 'productInfo': {
1041
+ // name: 'Chino Pants',
1042
+ // property: '베이지, 32',
1043
+ // barcode: [{ code: '123456789013456794' }],
1044
+ // code: 'CHINO001BGE32',
1045
+ // category: '의류 > 하의 > 치노팬츠',
1046
+ // season: '2025 (S/S)',
1047
+ // },
1048
+ // 'avgCost': 72000,
1049
+ // 'totalStock': 2600,
1050
+ // 'movingStock': 185,
1051
+ // 'unshippedStock': 92,
1052
+ // '본사 창고': {
1053
+ // total: 78000,
1054
+ // scheduled: 3200,
1055
+ // },
1056
+ // },
1057
+ // {
1058
+ // 'id': 17,
1059
+ // 'productInfo': {
1060
+ // name: 'Crossbody Bag',
1061
+ // property: '블랙, M',
1062
+ // barcode: [{ code: '123456789013456795' }],
1063
+ // code: 'XBAG001BLKM',
1064
+ // category: '가방 > 크로스백 > 미니',
1065
+ // season: '2025 (F/W)',
1066
+ // },
1067
+ // 'avgCost': 125000,
1068
+ // 'totalStock': 1200,
1069
+ // 'movingStock': 75,
1070
+ // 'unshippedStock': 38,
1071
+ // '본사 창고': {
1072
+ // total: 55000,
1073
+ // scheduled: 2400,
1074
+ // },
1075
+ // },
1076
+ // {
1077
+ // 'id': 18,
1078
+ // 'productInfo': {
1079
+ // name: 'Flannel Shirt',
1080
+ // property: '레드체크, L',
1081
+ // barcode: [{ code: '123456789013456796' }],
1082
+ // code: 'SHIRT001REDL',
1083
+ // category: '의류 > 상의 > 셔츠',
1084
+ // season: '2025 (F/W)',
1085
+ // },
1086
+ // 'avgCost': 65000,
1087
+ // 'totalStock': 2100,
1088
+ // 'movingStock': 155,
1089
+ // 'unshippedStock': 78,
1090
+ // '본사 창고': {
1091
+ // total: 67000,
1092
+ // scheduled: 2900,
1093
+ // },
1094
+ // },
1095
+ // {
1096
+ // 'id': 19,
1097
+ // 'productInfo': {
1098
+ // name: 'Statement Earrings',
1099
+ // property: '실버, OS',
1100
+ // barcode: [{ code: '123456789013456797' }],
1101
+ // code: 'EAR001SLV',
1102
+ // category: '액세서리 > 귀걸이 > 드롭형',
1103
+ // season: '2025 (S/S)',
1104
+ // },
1105
+ // 'avgCost': 42000,
1106
+ // 'totalStock': 650,
1107
+ // 'movingStock': 45,
1108
+ // 'unshippedStock': 22,
1109
+ // '본사 창고': {
1110
+ // total: 35000,
1111
+ // scheduled: 1500,
1112
+ // },
1113
+ // },
1114
+ // {
1115
+ // 'id': 20,
1116
+ // 'productInfo': {
1117
+ // name: 'Cargo Shorts',
1118
+ // property: '카키, XL',
1119
+ // barcode: [{ code: '123456789013456798' }],
1120
+ // code: 'SHORT001KHIXL',
1121
+ // category: '의류 > 하의 > 반바지',
1122
+ // season: '2025 (S/S)',
1123
+ // },
1124
+ // 'avgCost': 58000,
1125
+ // 'totalStock': 1800,
1126
+ // 'movingStock': 125,
1127
+ // 'unshippedStock': 62,
1128
+ // '본사 창고': {
1129
+ // total: 62000,
1130
+ // scheduled: 2600,
1131
+ // },
1132
+ // },
1133
+ // {
1134
+ // 'id': 21,
1135
+ // 'productInfo': {
1136
+ // name: 'Bomber Jacket',
1137
+ // property: '올리브, M',
1138
+ // barcode: [{ code: '123456789013456799' }],
1139
+ // code: 'BOMB001OLVM',
1140
+ // category: '의류 > 아우터 > 봄버재킷',
1141
+ // season: '2025 (F/W)',
1142
+ // },
1143
+ // 'avgCost': 165000,
1144
+ // 'totalStock': 950,
1145
+ // 'movingStock': 68,
1146
+ // 'unshippedStock': 34,
1147
+ // '본사 창고': {
1148
+ // total: 48000,
1149
+ // scheduled: 2100,
1150
+ // },
1151
+ // },
1152
+ // {
1153
+ // 'id': 22,
1154
+ // 'productInfo': {
1155
+ // name: 'Sunglasses',
1156
+ // property: '블랙, OS',
1157
+ // barcode: [{ code: '123456789013456800' }],
1158
+ // code: 'SUN001BLK',
1159
+ // category: '액세서리 > 선글라스 > 웨이파러',
1160
+ // season: '2025 (S/S)',
1161
+ // },
1162
+ // 'avgCost': 88000,
1163
+ // 'totalStock': 720,
1164
+ // 'movingStock': 52,
1165
+ // 'unshippedStock': 26,
1166
+ // '본사 창고': {
1167
+ // total: 38000,
1168
+ // scheduled: 1700,
1169
+ // },
1170
+ // },
1171
+ // {
1172
+ // 'id': 23,
1173
+ // 'productInfo': {
1174
+ // name: 'Midi Dress',
1175
+ // property: '플로럴, S',
1176
+ // barcode: [{ code: '123456789013456801' }],
1177
+ // code: 'DRESS001FLRS',
1178
+ // category: '의류 > 원피스 > 미디원피스',
1179
+ // season: '2025 (S/S)',
1180
+ // },
1181
+ // 'avgCost': 145000,
1182
+ // 'totalStock': 1400,
1183
+ // 'movingStock': 95,
1184
+ // 'unshippedStock': 48,
1185
+ // '본사 창고': {
1186
+ // total: 58000,
1187
+ // scheduled: 2300,
1188
+ // },
1189
+ // },
1190
+ // {
1191
+ // 'id': 24,
1192
+ // 'productInfo': {
1193
+ // name: 'Sneakers High-top',
1194
+ // property: '화이트, 265',
1195
+ // barcode: [{ code: '123456789013456802' }],
1196
+ // code: 'SNEAK001WHT265',
1197
+ // category: '신발 > 운동화 > 하이탑',
1198
+ // season: '2025 (S/S)',
1199
+ // },
1200
+ // 'avgCost': 112000,
1201
+ // 'totalStock': 2200,
1202
+ // 'movingStock': 165,
1203
+ // 'unshippedStock': 82,
1204
+ // '본사 창고': {
1205
+ // total: 72000,
1206
+ // scheduled: 3100,
1207
+ // },
1208
+ // },
1209
+ // {
1210
+ // 'id': 25,
1211
+ // 'productInfo': {
1212
+ // name: 'Cardigan',
1213
+ // property: '베이지, M',
1214
+ // barcode: [{ code: '123456789013456803' }],
1215
+ // code: 'CARD001BGEM',
1216
+ // category: '의류 > 상의 > 가디건',
1217
+ // season: '2025 (F/W)',
1218
+ // },
1219
+ // 'avgCost': 92000,
1220
+ // 'totalStock': 1600,
1221
+ // 'movingStock': 115,
1222
+ // 'unshippedStock': 58,
1223
+ // '본사 창고': {
1224
+ // total: 62000,
1225
+ // scheduled: 2500,
1226
+ // },
1227
+ // },
1228
+ // {
1229
+ // 'id': 26,
1230
+ // 'productInfo': {
1231
+ // name: 'Bucket Hat',
1232
+ // property: '데님, OS',
1233
+ // barcode: [{ code: '123456789013456804' }],
1234
+ // code: 'BUCK001DENIM',
1235
+ // category: '액세서리 > 모자 > 버킷햇',
1236
+ // season: '2025 (S/S)',
1237
+ // },
1238
+ // 'avgCost': 38000,
1239
+ // 'totalStock': 3200,
1240
+ // 'movingStock': 245,
1241
+ // 'unshippedStock': 122,
1242
+ // '본사 창고': {
1243
+ // total: 85000,
1244
+ // scheduled: 4200,
1245
+ // },
1246
+ // },
1247
+ // {
1248
+ // 'id': 27,
1249
+ // 'productInfo': {
1250
+ // name: 'Track Pants',
1251
+ // property: '블랙, L',
1252
+ // barcode: [{ code: '123456789013456805' }],
1253
+ // code: 'TRACK001BLKL',
1254
+ // category: '의류 > 하의 > 트랙팬츠',
1255
+ // season: '2025 (F/W)',
1256
+ // },
1257
+ // 'avgCost': 65000,
1258
+ // 'totalStock': 2800,
1259
+ // 'movingStock': 195,
1260
+ // 'unshippedStock': 98,
1261
+ // '본사 창고': {
1262
+ // total: 78000,
1263
+ // scheduled: 3600,
1264
+ // },
1265
+ // },
1266
+ // {
1267
+ // 'id': 28,
1268
+ // 'productInfo': {
1269
+ // name: 'Leather Gloves',
1270
+ // property: '브라운, M',
1271
+ // barcode: [{ code: '123456789013456806' }],
1272
+ // code: 'GLOVE001BRNM',
1273
+ // category: '액세서리 > 장갑 > 가죽장갑',
1274
+ // season: '2025 (F/W)',
1275
+ // },
1276
+ // 'avgCost': 78000,
1277
+ // 'totalStock': 850,
1278
+ // 'movingStock': 58,
1279
+ // 'unshippedStock': 29,
1280
+ // '본사 창고': {
1281
+ // total: 42000,
1282
+ // scheduled: 1800,
1283
+ // },
1284
+ // },
1285
+ // {
1286
+ // 'id': 29,
1287
+ // 'productInfo': {
1288
+ // name: 'Polo Shirt',
1289
+ // property: '네이비, L',
1290
+ // barcode: [{ code: '123456789013456807' }],
1291
+ // code: 'POLO001NAVL',
1292
+ // category: '의류 > 상의 > 폴로셔츠',
1293
+ // season: '2025 (S/S)',
1294
+ // },
1295
+ // 'avgCost': 52000,
1296
+ // 'totalStock': 3400,
1297
+ // 'movingStock': 255,
1298
+ // 'unshippedStock': 128,
1299
+ // '본사 창고': {
1300
+ // total: 88000,
1301
+ // scheduled: 4500,
1302
+ // },
1303
+ // },
1304
+ // {
1305
+ // 'id': 30,
1306
+ // 'productInfo': {
1307
+ // name: 'Ankle Socks',
1308
+ // property: '화이트, OS',
1309
+ // barcode: [{ code: '123456789013456808' }],
1310
+ // code: 'SOCK001WHT',
1311
+ // category: '의류 > 양말 > 발목양말',
1312
+ // season: '2025 (S/S)',
1313
+ // },
1314
+ // 'avgCost': 8000,
1315
+ // 'totalStock': 8500,
1316
+ // 'movingStock': 650,
1317
+ // 'unshippedStock': 325,
1318
+ // '본사 창고': {
1319
+ // total: 180000,
1320
+ // scheduled: 9500,
1321
+ // },
1322
+ // },
1323
+ // {
1324
+ // 'id': 31,
1325
+ // 'productInfo': {
1326
+ // name: 'Puffer Vest',
1327
+ // property: '블랙, XL',
1328
+ // barcode: [{ code: '123456789013456809' }],
1329
+ // code: 'VEST001BLKXL',
1330
+ // category: '의류 > 아우터 > 패딩조끼',
1331
+ // season: '2025 (F/W)',
1332
+ // },
1333
+ // 'avgCost': 135000,
1334
+ // 'totalStock': 1200,
1335
+ // 'movingStock': 85,
1336
+ // 'unshippedStock': 42,
1337
+ // '본사 창고': {
1338
+ // total: 52000,
1339
+ // scheduled: 2200,
1340
+ // },
1341
+ // },
1342
+ // {
1343
+ // 'id': 32,
1344
+ // 'productInfo': {
1345
+ // name: 'Ring Set',
1346
+ // property: '골드, OS',
1347
+ // barcode: [{ code: '123456789013456810' }],
1348
+ // code: 'RING001GOLD',
1349
+ // category: '액세서리 > 반지 > 세트',
1350
+ // season: '2025 (S/S)',
1351
+ // },
1352
+ // 'avgCost': 65000,
1353
+ // 'totalStock': 480,
1354
+ // 'movingStock': 35,
1355
+ // 'unshippedStock': 18,
1356
+ // '본사 창고': {
1357
+ // total: 28000,
1358
+ // scheduled: 1200,
1359
+ // },
1360
+ // },
1361
+ // {
1362
+ // 'id': 33,
1363
+ // 'productInfo': {
1364
+ // name: 'Maxi Coat',
1365
+ // property: '캐멀, M',
1366
+ // barcode: [{ code: '123456789013456811' }],
1367
+ // code: 'COAT001CAMLM',
1368
+ // category: '의류 > 아우터 > 롱코트',
1369
+ // season: '2025 (F/W)',
1370
+ // },
1371
+ // 'avgCost': 285000,
1372
+ // 'totalStock': 650,
1373
+ // 'movingStock': 42,
1374
+ // 'unshippedStock': 21,
1375
+ // '본사 창고': {
1376
+ // total: 32000,
1377
+ // scheduled: 1400,
1378
+ // },
1379
+ // },
1380
+ // {
1381
+ // 'id': 34,
1382
+ // 'productInfo': {
1383
+ // name: 'Oxford Shoes',
1384
+ // property: '브라운, 270',
1385
+ // barcode: [{ code: '123456789013456812' }],
1386
+ // code: 'OX001BRN270',
1387
+ // category: '신발 > 드레스화 > 옥스퍼드',
1388
+ // season: '2025 (F/W)',
1389
+ // },
1390
+ // 'avgCost': 195000,
1391
+ // 'totalStock': 850,
1392
+ // 'movingStock': 58,
1393
+ // 'unshippedStock': 29,
1394
+ // '본사 창고': {
1395
+ // total: 42000,
1396
+ // scheduled: 1700,
1397
+ // },
1398
+ // },
1399
+ // {
1400
+ // 'id': 35,
1401
+ // 'productInfo': {
1402
+ // name: 'Wrap Skirt',
1403
+ // property: '올리브, S',
1404
+ // barcode: [{ code: '123456789013456813' }],
1405
+ // code: 'WRAP001OLVS',
1406
+ // category: '의류 > 하의 > 랩스커트',
1407
+ // season: '2025 (S/S)',
1408
+ // },
1409
+ // 'avgCost': 78000,
1410
+ // 'totalStock': 1400,
1411
+ // 'movingStock': 95,
1412
+ // 'unshippedStock': 48,
1413
+ // '본사 창고': {
1414
+ // total: 58000,
1415
+ // scheduled: 2300,
1416
+ // },
1417
+ // },
1418
+ // {
1419
+ // 'id': 36,
1420
+ // 'productInfo': {
1421
+ // name: 'Baseball Jacket',
1422
+ // property: '네이비/화이트, L',
1423
+ // barcode: [{ code: '123456789013456814' }],
1424
+ // code: 'BASE001NWHL',
1425
+ // category: '의류 > 아우터 > 야구점퍼',
1426
+ // season: '2025 (S/S)',
1427
+ // },
1428
+ // 'avgCost': 125000,
1429
+ // 'totalStock': 950,
1430
+ // 'movingStock': 68,
1431
+ // 'unshippedStock': 34,
1432
+ // '본사 창고': {
1433
+ // total: 48000,
1434
+ // scheduled: 2100,
1435
+ // },
1436
+ // },
1437
+ // {
1438
+ // 'id': 37,
1439
+ // 'productInfo': {
1440
+ // name: 'Messenger Bag',
1441
+ // property: '블랙, L',
1442
+ // barcode: [{ code: '123456789013456815' }],
1443
+ // code: 'MSG001BLKL',
1444
+ // category: '가방 > 메신저백 > 대형',
1445
+ // season: '2025 (F/W)',
1446
+ // },
1447
+ // 'avgCost': 158000,
1448
+ // 'totalStock': 720,
1449
+ // 'movingStock': 52,
1450
+ // 'unshippedStock': 26,
1451
+ // '본사 창고': {
1452
+ // total: 38000,
1453
+ // scheduled: 1600,
1454
+ // },
1455
+ // },
1456
+ // {
1457
+ // 'id': 38,
1458
+ // 'productInfo': {
1459
+ // name: 'Tank Top',
1460
+ // property: '그레이, M',
1461
+ // barcode: [{ code: '123456789013456816' }],
1462
+ // code: 'TANK001GRAM',
1463
+ // category: '의류 > 상의 > 나시',
1464
+ // season: '2025 (S/S)',
1465
+ // },
1466
+ // 'avgCost': 28000,
1467
+ // 'totalStock': 4200,
1468
+ // 'movingStock': 315,
1469
+ // 'unshippedStock': 158,
1470
+ // '본사 창고': {
1471
+ // total: 105000,
1472
+ // scheduled: 5500,
1473
+ // },
1474
+ // },
1475
+ // {
1476
+ // 'id': 39,
1477
+ // 'productInfo': {
1478
+ // name: 'Beanie',
1479
+ // property: '차콜, OS',
1480
+ // barcode: [{ code: '123456789013456817' }],
1481
+ // code: 'BEAN001CHR',
1482
+ // category: '액세서리 > 모자 > 비니',
1483
+ // season: '2025 (F/W)',
1484
+ // },
1485
+ // 'avgCost': 32000,
1486
+ // 'totalStock': 2800,
1487
+ // 'movingStock': 205,
1488
+ // 'unshippedStock': 102,
1489
+ // '본사 창고': {
1490
+ // total: 78000,
1491
+ // scheduled: 3800,
1492
+ // },
1493
+ // },
1494
+ // {
1495
+ // 'id': 40,
1496
+ // 'productInfo': {
1497
+ // name: 'Wide Leg Pants',
1498
+ // property: '블랙, L',
1499
+ // barcode: [{ code: '123456789013456818' }],
1500
+ // code: 'WIDE001BLKL',
1501
+ // category: '의류 > 하의 > 와이드팬츠',
1502
+ // season: '2025 (S/S)',
1503
+ // },
1504
+ // 'avgCost': 85000,
1505
+ // 'totalStock': 1800,
1506
+ // 'movingStock': 125,
1507
+ // 'unshippedStock': 62,
1508
+ // '본사 창고': {
1509
+ // total: 62000,
1510
+ // scheduled: 2600,
1511
+ // },
1512
+ // },
1513
+ // {
1514
+ // 'id': 41,
1515
+ // 'productInfo': {
1516
+ // name: 'Clutch Bag',
1517
+ // property: '골드, M',
1518
+ // barcode: [{ code: '123456789013456819' }],
1519
+ // code: 'CLUTCH001GLDM',
1520
+ // category: '가방 > 클러치백 > 이브닝',
1521
+ // season: '2025 (S/S)',
1522
+ // },
1523
+ // 'avgCost': 118000,
1524
+ // 'totalStock': 450,
1525
+ // 'movingStock': 32,
1526
+ // 'unshippedStock': 16,
1527
+ // '본사 창고': {
1528
+ // total: 25000,
1529
+ // scheduled: 1100,
1530
+ // },
1531
+ // },
1532
+ // {
1533
+ // 'id': 42,
1534
+ // 'productInfo': {
1535
+ // name: 'Thermal Underwear',
1536
+ // property: '화이트, L',
1537
+ // barcode: [{ code: '123456789013456820' }],
1538
+ // code: 'THERM001WHTL',
1539
+ // category: '의류 > 언더웨어 > 보온속옷',
1540
+ // season: '2025 (F/W)',
1541
+ // },
1542
+ // 'avgCost': 45000,
1543
+ // 'totalStock': 3200,
1544
+ // 'movingStock': 245,
1545
+ // 'unshippedStock': 122,
1546
+ // '본사 창고': {
1547
+ // total: 85000,
1548
+ // scheduled: 4200,
1549
+ // },
1550
+ // },
1551
+ // {
1552
+ // 'id': 43,
1553
+ // 'productInfo': {
1554
+ // name: 'Pocket Watch',
1555
+ // property: '실버, OS',
1556
+ // barcode: [{ code: '123456789013456821' }],
1557
+ // code: 'PWATCH001SLV',
1558
+ // category: '액세서리 > 시계 > 포켓워치',
1559
+ // season: '2025 (F/W)',
1560
+ // },
1561
+ // 'avgCost': 165000,
1562
+ // 'totalStock': 280,
1563
+ // 'movingStock': 18,
1564
+ // 'unshippedStock': 9,
1565
+ // '본사 창고': {
1566
+ // total: 15000,
1567
+ // scheduled: 650,
1568
+ // },
1569
+ // },
1570
+ // {
1571
+ // 'id': 44,
1572
+ // 'productInfo': {
1573
+ // name: 'Cropped Blazer',
1574
+ // property: '핑크, S',
1575
+ // barcode: [{ code: '123456789013456822' }],
1576
+ // code: 'BLAZ001PNKS',
1577
+ // category: '의류 > 아우터 > 블레이저',
1578
+ // season: '2025 (S/S)',
1579
+ // },
1580
+ // 'avgCost': 185000,
1581
+ // 'totalStock': 850,
1582
+ // 'movingStock': 58,
1583
+ // 'unshippedStock': 29,
1584
+ // '본사 창고': {
1585
+ // total: 42000,
1586
+ // scheduled: 1700,
1587
+ // },
1588
+ // },
1589
+ // {
1590
+ // 'id': 45,
1591
+ // 'productInfo': {
1592
+ // name: 'Loafers',
1593
+ // property: '블랙, 255',
1594
+ // barcode: [{ code: '123456789013456823' }],
1595
+ // code: 'LOAF001BLK255',
1596
+ // category: '신발 > 로퍼 > 클래식',
1597
+ // season: '2025 (F/W)',
1598
+ // },
1599
+ // 'avgCost': 145000,
1600
+ // 'totalStock': 1200,
1601
+ // 'movingStock': 85,
1602
+ // 'unshippedStock': 42,
1603
+ // '본사 창고': {
1604
+ // total: 52000,
1605
+ // scheduled: 2200,
1606
+ // },
1607
+ // },
1608
+ // {
1609
+ // 'id': 46,
1610
+ // 'productInfo': {
1611
+ // name: 'Gym Shorts',
1612
+ // property: '블랙, L',
1613
+ // barcode: [{ code: '123456789013456824' }],
1614
+ // code: 'GYM001BLKL',
1615
+ // category: '의류 > 스포츠웨어 > 반바지',
1616
+ // season: '2025 (S/S)',
1617
+ // },
1618
+ // 'avgCost': 38000,
1619
+ // 'totalStock': 2800,
1620
+ // 'movingStock': 205,
1621
+ // 'unshippedStock': 102,
1622
+ // '본사 창고': {
1623
+ // total: 78000,
1624
+ // scheduled: 3800,
1625
+ // },
1626
+ // },
1627
+ // {
1628
+ // 'id': 47,
1629
+ // 'productInfo': {
1630
+ // name: 'Hair Accessory Set',
1631
+ // property: '골드, OS',
1632
+ // barcode: [{ code: '123456789013456825' }],
1633
+ // code: 'HAIR001GLD',
1634
+ // category: '액세서리 > 헤어액세서리 > 세트',
1635
+ // season: '2025 (S/S)',
1636
+ // },
1637
+ // 'avgCost': 25000,
1638
+ // 'totalStock': 1400,
1639
+ // 'movingStock': 105,
1640
+ // 'unshippedStock': 52,
1641
+ // '본사 창고': {
1642
+ // total: 48000,
1643
+ // scheduled: 2400,
1644
+ // },
1645
+ // },
1646
+ // {
1647
+ // 'id': 48,
1648
+ // 'productInfo': {
1649
+ // name: 'Pea Coat',
1650
+ // property: '네이비, M',
1651
+ // barcode: [{ code: '123456789013456826' }],
1652
+ // code: 'PEA001NAVM',
1653
+ // category: '의류 > 아우터 > 피코트',
1654
+ // season: '2025 (F/W)',
1655
+ // },
1656
+ // 'avgCost': 225000,
1657
+ // 'totalStock': 650,
1658
+ // 'movingStock': 42,
1659
+ // 'unshippedStock': 21,
1660
+ // '본사 창고': {
1661
+ // total: 32000,
1662
+ // scheduled: 1400,
1663
+ // },
1664
+ // },
1665
+ // {
1666
+ // 'id': 49,
1667
+ // 'productInfo': {
1668
+ // name: 'Canvas Sneakers',
1669
+ // property: '화이트, 260',
1670
+ // barcode: [{ code: '123456789013456827' }],
1671
+ // code: 'CANV001WHT260',
1672
+ // category: '신발 > 캔버스화 > 로우탑',
1673
+ // season: '2025 (S/S)',
1674
+ // },
1675
+ // 'avgCost': 65000,
1676
+ // 'totalStock': 3200,
1677
+ // 'movingStock': 245,
1678
+ // 'unshippedStock': 122,
1679
+ // '본사 창고': {
1680
+ // total: 85000,
1681
+ // scheduled: 4200,
1682
+ // },
1683
+ // },
1684
+ // {
1685
+ // 'id': 50,
1686
+ // 'productInfo': {
1687
+ // name: 'Yoga Leggings',
1688
+ // property: '블랙, M',
1689
+ // barcode: [{ code: '123456789013456828' }],
1690
+ // code: 'YOGA001BLKM',
1691
+ // category: '의류 > 스포츠웨어 > 레깅스',
1692
+ // season: '2025 (S/S)',
1693
+ // },
1694
+ // 'avgCost': 55000,
1695
+ // 'totalStock': 2400,
1696
+ // 'movingStock': 175,
1697
+ // 'unshippedStock': 88,
1698
+ // '본사 창고': {
1699
+ // total: 68000,
1700
+ // scheduled: 3200,
1701
+ // },
1702
+ // },
1703
+ // {
1704
+ // 'id': 51,
1705
+ // 'productInfo': {
1706
+ // name: 'Bracelet',
1707
+ // property: '실버, OS',
1708
+ // barcode: [{ code: '123456789013456829' }],
1709
+ // code: 'BRAC001SLV',
1710
+ // category: '액세서리 > 팔찌 > 체인',
1711
+ // season: '2025 (S/S)',
1712
+ // },
1713
+ // 'avgCost': 48000,
1714
+ // 'totalStock': 950,
1715
+ // 'movingStock': 68,
1716
+ // 'unshippedStock': 34,
1717
+ // '본사 창고': {
1718
+ // total: 42000,
1719
+ // scheduled: 1800,
1720
+ // },
1721
+ // },
1722
+ // {
1723
+ // 'id': 52,
1724
+ // 'productInfo': {
1725
+ // name: 'Tweed Jacket',
1726
+ // property: '그레이, L',
1727
+ // barcode: [{ code: '123456789013456830' }],
1728
+ // code: 'TWEED001GRAYL',
1729
+ // category: '의류 > 아우터 > 트위드재킷',
1730
+ // season: '2025 (F/W)',
1731
+ // },
1732
+ // 'avgCost': 195000,
1733
+ // 'totalStock': 750,
1734
+ // 'movingStock': 52,
1735
+ // 'unshippedStock': 26,
1736
+ // '본사 창고': {
1737
+ // total: 38000,
1738
+ // scheduled: 1600,
1739
+ // },
1740
+ // },
1741
+ // {
1742
+ // 'id': 53,
1743
+ // 'productInfo': {
1744
+ // name: 'Platform Sandals',
1745
+ // property: '베이지, 240',
1746
+ // barcode: [{ code: '123456789013456831' }],
1747
+ // code: 'PLAT001BGE240',
1748
+ // category: '신발 > 샌들 > 플랫폼',
1749
+ // season: '2025 (S/S)',
1750
+ // },
1751
+ // 'avgCost': 88000,
1752
+ // 'totalStock': 1400,
1753
+ // 'movingStock': 95,
1754
+ // 'unshippedStock': 48,
1755
+ // '본사 창고': {
1756
+ // total: 58000,
1757
+ // scheduled: 2300,
1758
+ // },
1759
+ // },
1760
+ // {
1761
+ // 'id': 54,
1762
+ // 'productInfo': {
1763
+ // name: 'Compression Shirt',
1764
+ // property: '네이비, L',
1765
+ // barcode: [{ code: '123456789013456832' }],
1766
+ // code: 'COMP001NAVL',
1767
+ // category: '의류 > 스포츠웨어 > 압박셔츠',
1768
+ // season: '2025 (S/S)',
1769
+ // },
1770
+ // 'avgCost': 42000,
1771
+ // 'totalStock': 1800,
1772
+ // 'movingStock': 125,
1773
+ // 'unshippedStock': 62,
1774
+ // '본사 창고': {
1775
+ // total: 62000,
1776
+ // scheduled: 2600,
1777
+ // },
1778
+ // },
1779
+ // {
1780
+ // 'id': 55,
1781
+ // 'productInfo': {
1782
+ // name: 'Fedora Hat',
1783
+ // property: '브라운, OS',
1784
+ // barcode: [{ code: '123456789013456833' }],
1785
+ // code: 'FED001BRN',
1786
+ // category: '액세서리 > 모자 > 페도라',
1787
+ // season: '2025 (F/W)',
1788
+ // },
1789
+ // 'avgCost': 85000,
1790
+ // 'totalStock': 480,
1791
+ // 'movingStock': 35,
1792
+ // 'unshippedStock': 18,
1793
+ // '본사 창고': {
1794
+ // total: 28000,
1795
+ // scheduled: 1200,
1796
+ // },
1797
+ // },
1798
+ // {
1799
+ // 'id': 56,
1800
+ // 'productInfo': {
1801
+ // name: 'Bodycon Dress',
1802
+ // property: '블랙, S',
1803
+ // barcode: [{ code: '123456789013456834' }],
1804
+ // code: 'BODY001BLKS',
1805
+ // category: '의류 > 원피스 > 바디콘',
1806
+ // season: '2025 (S/S)',
1807
+ // },
1808
+ // 'avgCost': 92000,
1809
+ // 'totalStock': 1200,
1810
+ // 'movingStock': 85,
1811
+ // 'unshippedStock': 42,
1812
+ // '본사 창고': {
1813
+ // total: 52000,
1814
+ // scheduled: 2200,
1815
+ // },
1816
+ // },
1817
+ // {
1818
+ // 'id': 57,
1819
+ // 'productInfo': {
1820
+ // name: 'Hiking Boots',
1821
+ // property: '브라운, 275',
1822
+ // barcode: [{ code: '123456789013456835' }],
1823
+ // code: 'HIKE001BRN275',
1824
+ // category: '신발 > 등산화 > 하이킹',
1825
+ // season: '2025 (F/W)',
1826
+ // },
1827
+ // 'avgCost': 165000,
1828
+ // 'totalStock': 850,
1829
+ // 'movingStock': 58,
1830
+ // 'unshippedStock': 29,
1831
+ // '본사 창고': {
1832
+ // total: 42000,
1833
+ // scheduled: 1700,
1834
+ // },
1835
+ // },
1836
+ // {
1837
+ // 'id': 58,
1838
+ // 'productInfo': {
1839
+ // name: 'Sweatpants',
1840
+ // property: '그레이, XL',
1841
+ // barcode: [{ code: '123456789013456836' }],
1842
+ // code: 'SWEAT001GRAXL',
1843
+ // category: '의류 > 하의 > 스웻팬츠',
1844
+ // season: '2025 (F/W)',
1845
+ // },
1846
+ // 'avgCost': 52000,
1847
+ // 'totalStock': 2400,
1848
+ // 'movingStock': 175,
1849
+ // 'unshippedStock': 88,
1850
+ // '본사 창고': {
1851
+ // total: 68000,
1852
+ // scheduled: 3200,
1853
+ // },
1854
+ // },
1855
+ // {
1856
+ // 'id': 59,
1857
+ // 'productInfo': {
1858
+ // name: 'Brooch',
1859
+ // property: '골드, OS',
1860
+ // barcode: [{ code: '123456789013456837' }],
1861
+ // code: 'BRO001GLD',
1862
+ // category: '액세서리 > 브로치 > 클래식',
1863
+ // season: '2025 (F/W)',
1864
+ // },
1865
+ // 'avgCost': 68000,
1866
+ // 'totalStock': 320,
1867
+ // 'movingStock': 22,
1868
+ // 'unshippedStock': 11,
1869
+ // '본사 창고': {
1870
+ // total: 18000,
1871
+ // scheduled: 850,
1872
+ // },
1873
+ // },
1874
+ // {
1875
+ // 'id': 60,
1876
+ // 'productInfo': {
1877
+ // name: 'Windbreaker',
1878
+ // property: '네이비, L',
1879
+ // barcode: [{ code: '123456789013456838' }],
1880
+ // code: 'WIND001NAVL',
1881
+ // category: '의류 > 아우터 > 윈드브레이커',
1882
+ // season: '2025 (S/S)',
1883
+ // },
1884
+ // 'avgCost': 78000,
1885
+ // 'totalStock': 1600,
1886
+ // 'movingStock': 115,
1887
+ // 'unshippedStock': 58,
1888
+ // '본사 창고': {
1889
+ // total: 62000,
1890
+ // scheduled: 2500,
1891
+ // },
1892
+ // },
1893
+ // {
1894
+ // 'id': 61,
1895
+ // 'productInfo': {
1896
+ // name: 'Ballet Flats',
1897
+ // property: '베이지, 245',
1898
+ // barcode: [{ code: '123456789013456839' }],
1899
+ // code: 'BALL001BGE245',
1900
+ // category: '신발 > 플랫슈즈 > 발레플랫',
1901
+ // season: '2025 (S/S)',
1902
+ // },
1903
+ // 'avgCost': 75000,
1904
+ // 'totalStock': 1800,
1905
+ // 'movingStock': 125,
1906
+ // 'unshippedStock': 62,
1907
+ // '본사 창고': {
1908
+ // total: 62000,
1909
+ // scheduled: 2600,
1910
+ // },
1911
+ // },
1912
+ // {
1913
+ // 'id': 62,
1914
+ // 'productInfo': {
1915
+ // name: 'Vest Top',
1916
+ // property: '화이트, M',
1917
+ // barcode: [{ code: '123456789013456840' }],
1918
+ // code: 'VEST001WHTM',
1919
+ // category: '의류 > 상의 > 베스트탑',
1920
+ // season: '2025 (S/S)',
1921
+ // },
1922
+ // 'avgCost': 32000,
1923
+ // 'totalStock': 3200,
1924
+ // 'movingStock': 245,
1925
+ // 'unshippedStock': 122,
1926
+ // '본사 창고': {
1927
+ // total: 85000,
1928
+ // scheduled: 4200,
1929
+ // },
1930
+ // },
1931
+ // {
1932
+ // 'id': 63,
1933
+ // 'productInfo': {
1934
+ // name: 'Tie Clip',
1935
+ // property: '실버, OS',
1936
+ // barcode: [{ code: '123456789013456841' }],
1937
+ // code: 'TIE001SLV',
1938
+ // category: '액세서리 > 넥타이핀 > 클립형',
1939
+ // season: '2025 (F/W)',
1940
+ // },
1941
+ // 'avgCost': 45000,
1942
+ // 'totalStock': 280,
1943
+ // 'movingStock': 18,
1944
+ // 'unshippedStock': 9,
1945
+ // '본사 창고': {
1946
+ // total: 15000,
1947
+ // scheduled: 650,
1948
+ // },
1949
+ // },
1950
+ // {
1951
+ // 'id': 64,
1952
+ // 'productInfo': {
1953
+ // name: 'Quilted Jacket',
1954
+ // property: '올리브, L',
1955
+ // barcode: [{ code: '123456789013456842' }],
1956
+ // code: 'QUILT001OLVL',
1957
+ // category: '의류 > 아우터 > 퀼팅재킷',
1958
+ // season: '2025 (F/W)',
1959
+ // },
1960
+ // 'avgCost': 145000,
1961
+ // 'totalStock': 950,
1962
+ // 'movingStock': 68,
1963
+ // 'unshippedStock': 34,
1964
+ // '본사 창고': {
1965
+ // total: 48000,
1966
+ // scheduled: 2100,
1967
+ // },
1968
+ // },
1969
+ // {
1970
+ // 'id': 65,
1971
+ // 'productInfo': {
1972
+ // name: 'Wedge Heels',
1973
+ // property: '블랙, 250',
1974
+ // barcode: [{ code: '123456789013456843' }],
1975
+ // code: 'WEDGE001BLK250',
1976
+ // category: '신발 > 하이힐 > 웨지힐',
1977
+ // season: '2025 (S/S)',
1978
+ // },
1979
+ // 'avgCost': 98000,
1980
+ // 'totalStock': 1200,
1981
+ // 'movingStock': 85,
1982
+ // 'unshippedStock': 42,
1983
+ // '본사 창고': {
1984
+ // total: 52000,
1985
+ // scheduled: 2200,
1986
+ // },
1987
+ // },
1988
+ // {
1989
+ // 'id': 66,
1990
+ // 'productInfo': {
1991
+ // name: 'Sweat Shorts',
1992
+ // property: '그레이, L',
1993
+ // barcode: [{ code: '123456789013456844' }],
1994
+ // code: 'SWSHORT001GRAL',
1995
+ // category: '의류 > 스포츠웨어 > 스웻반바지',
1996
+ // season: '2025 (S/S)',
1997
+ // },
1998
+ // 'avgCost': 35000,
1999
+ // 'totalStock': 2800,
2000
+ // 'movingStock': 205,
2001
+ // 'unshippedStock': 102,
2002
+ // '본사 창고': {
2003
+ // total: 78000,
2004
+ // scheduled: 3800,
2005
+ // },
2006
+ // },
2007
+ // {
2008
+ // 'id': 67,
2009
+ // 'productInfo': {
2010
+ // name: 'Cufflinks',
2011
+ // property: '골드, OS',
2012
+ // barcode: [{ code: '123456789013456845' }],
2013
+ // code: 'CUFF001GLD',
2014
+ // category: '액세서리 > 커프스 > 골드',
2015
+ // season: '2025 (F/W)',
2016
+ // },
2017
+ // 'avgCost': 125000,
2018
+ // 'totalStock': 180,
2019
+ // 'movingStock': 12,
2020
+ // 'unshippedStock': 6,
2021
+ // '본사 창고': {
2022
+ // total: 10000,
2023
+ // scheduled: 450,
2024
+ // },
2025
+ // },
2026
+ // {
2027
+ // 'id': 68,
2028
+ // 'productInfo': {
2029
+ // name: 'Trench Coat',
2030
+ // property: '베이지, M',
2031
+ // barcode: [{ code: '123456789013456846' }],
2032
+ // code: 'TRENCH001BGEM',
2033
+ // category: '의류 > 아우터 > 트렌치코트',
2034
+ // season: '2025 (F/W)',
2035
+ // },
2036
+ // 'avgCost': 245000,
2037
+ // 'totalStock': 480,
2038
+ // 'movingStock': 32,
2039
+ // 'unshippedStock': 16,
2040
+ // '본사 창고': {
2041
+ // total: 25000,
2042
+ // scheduled: 1100,
2043
+ // },
2044
+ // },
2045
+ // {
2046
+ // 'id': 69,
2047
+ // 'productInfo': {
2048
+ // name: 'Slip-on Shoes',
2049
+ // property: '화이트, 265',
2050
+ // barcode: [{ code: '123456789013456847' }],
2051
+ // code: 'SLIP001WHT265',
2052
+ // category: '신발 > 슬립온 > 캐주얼',
2053
+ // season: '2025 (S/S)',
2054
+ // },
2055
+ // 'avgCost': 68000,
2056
+ // 'totalStock': 1600,
2057
+ // 'movingStock': 115,
2058
+ // 'unshippedStock': 58,
2059
+ // '본사 창고': {
2060
+ // total: 62000,
2061
+ // scheduled: 2500,
2062
+ // },
2063
+ // },
2064
+ // {
2065
+ // 'id': 70,
2066
+ // 'productInfo': {
2067
+ // name: 'Crop Top',
2068
+ // property: '핑크, S',
2069
+ // barcode: [{ code: '123456789013456848' }],
2070
+ // code: 'CROP001PNKS',
2071
+ // category: '의류 > 상의 > 크롭탑',
2072
+ // season: '2025 (S/S)',
2073
+ // },
2074
+ // 'avgCost': 38000,
2075
+ // 'totalStock': 2400,
2076
+ // 'movingStock': 175,
2077
+ // 'unshippedStock': 88,
2078
+ // '본사 창고': {
2079
+ // total: 68000,
2080
+ // scheduled: 3200,
2081
+ // },
2082
+ // },
2083
+ // {
2084
+ // 'id': 71,
2085
+ // 'productInfo': {
2086
+ // name: 'Wallet',
2087
+ // property: '블랙, OS',
2088
+ // barcode: [{ code: '123456789013456849' }],
2089
+ // code: 'WALL001BLK',
2090
+ // category: '액세서리 > 지갑 > 장지갑',
2091
+ // season: '2025 (F/W)',
2092
+ // },
2093
+ // 'avgCost': 85000,
2094
+ // 'totalStock': 950,
2095
+ // 'movingStock': 68,
2096
+ // 'unshippedStock': 34,
2097
+ // '본사 창고': {
2098
+ // total: 42000,
2099
+ // scheduled: 1800,
2100
+ // },
2101
+ // },
2102
+ // {
2103
+ // 'id': 72,
2104
+ // 'productInfo': {
2105
+ // name: 'Parka',
2106
+ // property: '카키, XL',
2107
+ // barcode: [{ code: '123456789013456850' }],
2108
+ // code: 'PARK001KHIXL',
2109
+ // category: '의류 > 아우터 > 파카',
2110
+ // season: '2025 (F/W)',
2111
+ // },
2112
+ // 'avgCost': 185000,
2113
+ // 'totalStock': 720,
2114
+ // 'movingStock': 52,
2115
+ // 'unshippedStock': 26,
2116
+ // '본사 창고': {
2117
+ // total: 38000,
2118
+ // scheduled: 1600,
2119
+ // },
2120
+ // },
2121
+ // {
2122
+ // 'id': 73,
2123
+ // 'productInfo': {
2124
+ // name: 'Moccasins',
2125
+ // property: '브라운, 270',
2126
+ // barcode: [{ code: '123456789013456851' }],
2127
+ // code: 'MOC001BRN270',
2128
+ // category: '신발 > 모카신 > 가죽',
2129
+ // season: '2025 (S/S)',
2130
+ // },
2131
+ // 'avgCost': 125000,
2132
+ // 'totalStock': 850,
2133
+ // 'movingStock': 58,
2134
+ // 'unshippedStock': 29,
2135
+ // '본사 창고': {
2136
+ // total: 42000,
2137
+ // scheduled: 1700,
2138
+ // },
2139
+ // },
2140
+ // {
2141
+ // 'id': 74,
2142
+ // 'productInfo': {
2143
+ // name: 'Sports Bra',
2144
+ // property: '블랙, M',
2145
+ // barcode: [{ code: '123456789013456852' }],
2146
+ // code: 'SBRA001BLKM',
2147
+ // category: '의류 > 스포츠웨어 > 스포츠브라',
2148
+ // season: '2025 (S/S)',
2149
+ // },
2150
+ // 'avgCost': 45000,
2151
+ // 'totalStock': 1800,
2152
+ // 'movingStock': 125,
2153
+ // 'unshippedStock': 62,
2154
+ // '본사 창고': {
2155
+ // total: 62000,
2156
+ // scheduled: 2600,
2157
+ // },
2158
+ // },
2159
+ // {
2160
+ // 'id': 75,
2161
+ // 'productInfo': {
2162
+ // name: 'Keychain',
2163
+ // property: '실버, OS',
2164
+ // barcode: [{ code: '123456789013456853' }],
2165
+ // code: 'KEY001SLV',
2166
+ // category: '액세서리 > 키체인 > 메탈',
2167
+ // season: '2025 (S/S)',
2168
+ // },
2169
+ // 'avgCost': 18000,
2170
+ // 'totalStock': 2800,
2171
+ // 'movingStock': 205,
2172
+ // 'unshippedStock': 102,
2173
+ // '본사 창고': {
2174
+ // total: 78000,
2175
+ // scheduled: 3800,
2176
+ // },
2177
+ // },
2178
+ // {
2179
+ // 'id': 76,
2180
+ // 'productInfo': {
2181
+ // name: 'Duffle Coat',
2182
+ // property: '네이비, L',
2183
+ // barcode: [{ code: '123456789013456854' }],
2184
+ // code: 'DUFF001NAVL',
2185
+ // category: '의류 > 아우터 > 더플코트',
2186
+ // season: '2025 (F/W)',
2187
+ // },
2188
+ // 'avgCost': 225000,
2189
+ // 'totalStock': 480,
2190
+ // 'movingStock': 32,
2191
+ // 'unshippedStock': 16,
2192
+ // '본사 창고': {
2193
+ // total: 25000,
2194
+ // scheduled: 1100,
2195
+ // },
2196
+ // },
2197
+ // {
2198
+ // 'id': 77,
2199
+ // 'productInfo': {
2200
+ // name: 'High-top Sneakers',
2201
+ // property: '레드, 260',
2202
+ // barcode: [{ code: '123456789013456855' }],
2203
+ // code: 'HSNEAK001RED260',
2204
+ // category: '신발 > 운동화 > 하이탑스니커즈',
2205
+ // season: '2025 (S/S)',
2206
+ // },
2207
+ // 'avgCost': 95000,
2208
+ // 'totalStock': 1400,
2209
+ // 'movingStock': 95,
2210
+ // 'unshippedStock': 48,
2211
+ // '본사 창고': {
2212
+ // total: 58000,
2213
+ // scheduled: 2300,
2214
+ // },
2215
+ // },
2216
+ // {
2217
+ // 'id': 78,
2218
+ // 'productInfo': {
2219
+ // name: 'Tube Top',
2220
+ // property: '화이트, S',
2221
+ // barcode: [{ code: '123456789013456856' }],
2222
+ // code: 'TUBE001WHTS',
2223
+ // category: '의류 > 상의 > 튜브톱',
2224
+ // season: '2025 (S/S)',
2225
+ // },
2226
+ // 'avgCost': 28000,
2227
+ // 'totalStock': 2200,
2228
+ // 'movingStock': 165,
2229
+ // 'unshippedStock': 82,
2230
+ // '본사 창고': {
2231
+ // total: 69000,
2232
+ // scheduled: 3400,
2233
+ // },
2234
+ // },
2235
+ // {
2236
+ // 'id': 79,
2237
+ // 'productInfo': {
2238
+ // name: 'Phone Case',
2239
+ // property: '블랙, OS',
2240
+ // barcode: [{ code: '123456789013456857' }],
2241
+ // code: 'PHONE001BLK',
2242
+ // category: '액세서리 > 폰케이스 > 실리콘',
2243
+ // season: '2025 (S/S)',
2244
+ // },
2245
+ // 'avgCost': 15000,
2246
+ // 'totalStock': 4200,
2247
+ // 'movingStock': 315,
2248
+ // 'unshippedStock': 158,
2249
+ // '본사 창고': {
2250
+ // total: 105000,
2251
+ // scheduled: 5500,
2252
+ // },
2253
+ // },
2254
+ // {
2255
+ // 'id': 80,
2256
+ // 'productInfo': {
2257
+ // name: 'Overcoat',
2258
+ // property: '차콜, L',
2259
+ // barcode: [{ code: '123456789013456858' }],
2260
+ // code: 'OVER001CHRL',
2261
+ // category: '의류 > 아우터 > 오버코트',
2262
+ // season: '2025 (F/W)',
2263
+ // },
2264
+ // 'avgCost': 285000,
2265
+ // 'totalStock': 350,
2266
+ // 'movingStock': 22,
2267
+ // 'unshippedStock': 11,
2268
+ // '본사 창고': {
2269
+ // total: 18000,
2270
+ // scheduled: 850,
2271
+ // },
2272
+ // },
2273
+ // {
2274
+ // 'id': 81,
2275
+ // 'productInfo': {
2276
+ // name: 'Espadrilles',
2277
+ // property: '베이지, 240',
2278
+ // barcode: [{ code: '123456789013456859' }],
2279
+ // code: 'ESP001BGE240',
2280
+ // category: '신발 > 에스파드리유 > 캔버스',
2281
+ // season: '2025 (S/S)',
2282
+ // },
2283
+ // 'avgCost': 58000,
2284
+ // 'totalStock': 1200,
2285
+ // 'movingStock': 85,
2286
+ // 'unshippedStock': 42,
2287
+ // '본사 창고': {
2288
+ // total: 52000,
2289
+ // scheduled: 2200,
2290
+ // },
2291
+ // },
2292
+ // {
2293
+ // 'id': 82,
2294
+ // 'productInfo': {
2295
+ // name: 'Tracksuit Set',
2296
+ // property: '그레이, L',
2297
+ // barcode: [{ code: '123456789013456860' }],
2298
+ // code: 'TRACK001GRAL',
2299
+ // category: '의류 > 스포츠웨어 > 트랙수트',
2300
+ // season: '2025 (F/W)',
2301
+ // },
2302
+ // 'avgCost': 125000,
2303
+ // 'totalStock': 950,
2304
+ // 'movingStock': 68,
2305
+ // 'unshippedStock': 34,
2306
+ // '본사 창고': {
2307
+ // total: 48000,
2308
+ // scheduled: 2100,
2309
+ // },
2310
+ // },
2311
+ // {
2312
+ // 'id': 83,
2313
+ // 'productInfo': {
2314
+ // name: 'Hair Band',
2315
+ // property: '블랙, OS',
2316
+ // barcode: [{ code: '123456789013456861' }],
2317
+ // code: 'HBAND001BLK',
2318
+ // category: '액세서리 > 헤어밴드 > 패브릭',
2319
+ // season: '2025 (S/S)',
2320
+ // },
2321
+ // 'avgCost': 12000,
2322
+ // 'totalStock': 3600,
2323
+ // 'movingStock': 275,
2324
+ // 'unshippedStock': 138,
2325
+ // '본사 창고': {
2326
+ // total: 95000,
2327
+ // scheduled: 4800,
2328
+ // },
2329
+ // },
2330
+ // {
2331
+ // 'id': 84,
2332
+ // 'productInfo': {
2333
+ // name: 'Cape Coat',
2334
+ // property: '와인, M',
2335
+ // barcode: [{ code: '123456789013456862' }],
2336
+ // code: 'CAPE001WINM',
2337
+ // category: '의류 > 아우터 > 케이프코트',
2338
+ // season: '2025 (F/W)',
2339
+ // },
2340
+ // 'avgCost': 195000,
2341
+ // 'totalStock': 420,
2342
+ // 'movingStock': 28,
2343
+ // 'unshippedStock': 14,
2344
+ // '본사 창고': {
2345
+ // total: 22000,
2346
+ // scheduled: 950,
2347
+ // },
2348
+ // },
2349
+ // {
2350
+ // 'id': 85,
2351
+ // 'productInfo': {
2352
+ // name: 'Boat Shoes',
2353
+ // property: '브라운, 265',
2354
+ // barcode: [{ code: '123456789013456863' }],
2355
+ // code: 'BOAT001BRN265',
2356
+ // category: '신발 > 보트슈즈 > 가죽',
2357
+ // season: '2025 (S/S)',
2358
+ // },
2359
+ // 'avgCost': 115000,
2360
+ // 'totalStock': 850,
2361
+ // 'movingStock': 58,
2362
+ // 'unshippedStock': 29,
2363
+ // '본사 창고': {
2364
+ // total: 42000,
2365
+ // scheduled: 1700,
2366
+ // },
2367
+ // },
2368
+ // {
2369
+ // 'id': 86,
2370
+ // 'productInfo': {
2371
+ // name: 'Joggers',
2372
+ // property: '블랙, XL',
2373
+ // barcode: [{ code: '123456789013456864' }],
2374
+ // code: 'JOG001BLKXL',
2375
+ // category: '의류 > 하의 > 조거팬츠',
2376
+ // season: '2025 (F/W)',
2377
+ // },
2378
+ // 'avgCost': 65000,
2379
+ // 'totalStock': 1800,
2380
+ // 'movingStock': 125,
2381
+ // 'unshippedStock': 62,
2382
+ // '본사 창고': {
2383
+ // total: 62000,
2384
+ // scheduled: 2600,
2385
+ // },
2386
+ // },
2387
+ // {
2388
+ // 'id': 87,
2389
+ // 'productInfo': {
2390
+ // name: 'Anklet',
2391
+ // property: '실버, OS',
2392
+ // barcode: [{ code: '123456789013456865' }],
2393
+ // code: 'ANKL001SLV',
2394
+ // category: '액세서리 > 발찌 > 체인',
2395
+ // season: '2025 (S/S)',
2396
+ // },
2397
+ // 'avgCost': 35000,
2398
+ // 'totalStock': 720,
2399
+ // 'movingStock': 52,
2400
+ // 'unshippedStock': 26,
2401
+ // '본사 창고': {
2402
+ // total: 38000,
2403
+ // scheduled: 1600,
2404
+ // },
2405
+ // },
2406
+ // {
2407
+ // 'id': 88,
2408
+ // 'productInfo': {
2409
+ // name: 'Field Jacket',
2410
+ // property: '올리브, L',
2411
+ // barcode: [{ code: '123456789013456866' }],
2412
+ // code: 'FIELD001OLVL',
2413
+ // category: '의류 > 아우터 > 필드재킷',
2414
+ // season: '2025 (F/W)',
2415
+ // },
2416
+ // 'avgCost': 155000,
2417
+ // 'totalStock': 680,
2418
+ // 'movingStock': 45,
2419
+ // 'unshippedStock': 22,
2420
+ // '본사 창고': {
2421
+ // total: 35000,
2422
+ // scheduled: 1400,
2423
+ // },
2424
+ // },
2425
+ // {
2426
+ // 'id': 89,
2427
+ // 'productInfo': {
2428
+ // name: 'Mary Jane Shoes',
2429
+ // property: '블랙, 245',
2430
+ // barcode: [{ code: '123456789013456867' }],
2431
+ // code: 'MARY001BLK245',
2432
+ // category: '신발 > 메리제인 > 가죽',
2433
+ // season: '2025 (S/S)',
2434
+ // },
2435
+ // 'avgCost': 95000,
2436
+ // 'totalStock': 1200,
2437
+ // 'movingStock': 85,
2438
+ // 'unshippedStock': 42,
2439
+ // '본사 창고': {
2440
+ // total: 52000,
2441
+ // scheduled: 2200,
2442
+ // },
2443
+ // },
2444
+ // {
2445
+ // 'id': 90,
2446
+ // 'productInfo': {
2447
+ // name: 'Skater Dress',
2448
+ // property: '블랙, M',
2449
+ // barcode: [{ code: '123456789013456868' }],
2450
+ // code: 'DRESS001BLKM',
2451
+ // category: '의류 > 원피스 > 스케이터드레스',
2452
+ // season: '2025 (S/S)',
2453
+ // },
2454
+ // 'avgCost': 95000,
2455
+ // 'totalStock': 900,
2456
+ // 'movingStock': 60,
2457
+ // 'unshippedStock': 30,
2458
+ // '본사 창고': {
2459
+ // total: 45000,
2460
+ // scheduled: 2000,
2461
+ // },
2462
+ // },
2463
+ // {
2464
+ // 'id': 91,
2465
+ // 'productInfo': {
2466
+ // name: 'Pencil Skirt',
2467
+ // property: '네이비, S',
2468
+ // barcode: [{ code: '123456789013456869' }],
2469
+ // code: 'SKIRT001NAVS',
2470
+ // category: '의류 > 하의 > 펜슬스커트',
2471
+ // season: '2025 (F/W)',
2472
+ // },
2473
+ // 'avgCost': 78000,
2474
+ // 'totalStock': 1100,
2475
+ // 'movingStock': 75,
2476
+ // 'unshippedStock': 37,
2477
+ // '본사 창고': {
2478
+ // total: 50000,
2479
+ // scheduled: 2500,
2480
+ // },
2481
+ // },
2482
+ // {
2483
+ // 'id': 92,
2484
+ // 'productInfo': {
2485
+ // name: 'Harem Pants',
2486
+ // property: '블랙, L',
2487
+ // barcode: [{ code: '123456789013456870' }],
2488
+ // code: 'PANTS001BLKL',
2489
+ // category: '의류 > 하의 > 해리팬츠',
2490
+ // season: '2025 (S/S)',
2491
+ // },
2492
+ // 'avgCost': 68000,
2493
+ // 'totalStock': 1300,
2494
+ // 'movingStock': 90,
2495
+ // 'unshippedStock': 45,
2496
+ // '본사 창고': {
2497
+ // total: 55000,
2498
+ // scheduled: 3000,
2499
+ // },
2500
+ // },
2501
+ // {
2502
+ // 'id': 93,
2503
+ // 'productInfo': {
2504
+ // name: 'Kimono Jacket',
2505
+ // property: '플로럴, M',
2506
+ // barcode: [{ code: '123456789013456871' }],
2507
+ // code: 'JACKET001FLRM',
2508
+ // category: '의류 > 아우터 > 기모노재킷',
2509
+ // season: '2025 (F/W)',
2510
+ // },
2511
+ // 'avgCost': 135000,
2512
+ // 'totalStock': 700,
2513
+ // 'movingStock': 50,
2514
+ // 'unshippedStock': 25,
2515
+ // '본사 창고': {
2516
+ // total: 40000,
2517
+ // scheduled: 1800,
2518
+ // },
2519
+ // },
2520
+ // {
2521
+ // 'id': 94,
2522
+ // 'productInfo': {
2523
+ // name: 'Puffer Jacket',
2524
+ // property: '레드, L',
2525
+ // barcode: [{ code: '123456789013456872' }],
2526
+ // code: 'PUFFER001REDL',
2527
+ // category: '의류 > 아우터 > 패딩자켓',
2528
+ // season: '2025 (F/W)',
2529
+ // },
2530
+ // 'avgCost': 198000,
2531
+ // 'totalStock': 600,
2532
+ // 'movingStock': 40,
2533
+ // 'unshippedStock': 20,
2534
+ // '본사 창고': {
2535
+ // total: 35000,
2536
+ // scheduled: 1500,
2537
+ // },
2538
+ // },
2539
+ // {
2540
+ // 'id': 95,
2541
+ // 'productInfo': {
2542
+ // name: 'Turtleneck Sweater',
2543
+ // property: '아이보리, M',
2544
+ // barcode: [{ code: '123456789013456873' }],
2545
+ // code: 'KNIT002IVRM',
2546
+ // category: '의류 > 상의 > 터틀넥니트',
2547
+ // season: '2025 (F/W)',
2548
+ // },
2549
+ // 'avgCost': 85000,
2550
+ // 'totalStock': 800,
2551
+ // 'movingStock': 55,
2552
+ // 'unshippedStock': 28,
2553
+ // '본사 창고': {
2554
+ // total: 45000,
2555
+ // scheduled: 2000,
2556
+ // },
2557
+ // },
2558
+ // {
2559
+ // 'id': 96,
2560
+ // 'productInfo': {
2561
+ // name: 'Cargo Pants',
2562
+ // property: '카키, XL',
2563
+ // barcode: [{ code: '123456789013456874' }],
2564
+ // code: 'PANTS002KHIXL',
2565
+ // category: '의류 > 하의 > 카고팬츠',
2566
+ // season: '2025 (S/S)',
2567
+ // },
2568
+ // 'avgCost': 78000,
2569
+ // 'totalStock': 900,
2570
+ // 'movingStock': 60,
2571
+ // 'unshippedStock': 30,
2572
+ // '본사 창고': {
2573
+ // total: 50000,
2574
+ // scheduled: 2500,
2575
+ // },
2576
+ // },
2577
+ // {
2578
+ // 'id': 97,
2579
+ // 'productInfo': {
2580
+ // name: 'Belted Coat',
2581
+ // property: '브라운, M',
2582
+ // barcode: [{ code: '123456789013456875' }],
2583
+ // code: 'COAT002BRNM',
2584
+ // category: '의류 > 아우터 > 벨트코트',
2585
+ // season: '2025 (F/W)',
2586
+ // },
2587
+ // 'avgCost': 198000,
2588
+ // 'totalStock': 550,
2589
+ // 'movingStock': 37,
2590
+ // 'unshippedStock': 18,
2591
+ // '본사 창고': {
2592
+ // total: 38000,
2593
+ // scheduled: 1600,
2594
+ // },
2595
+ // },
2596
+ // {
2597
+ // 'id': 98,
2598
+ // 'productInfo': {
2599
+ // name: 'Double-breasted Blazer',
2600
+ // property: '네이비, L',
2601
+ // barcode: [{ code: '123456789013456876' }],
2602
+ // code: 'BLAZ002NAVL',
2603
+ // category: '의류 > 아우터 > 더블재킷',
2604
+ // season: '2025 (F/W)',
2605
+ // },
2606
+ // 'avgCost': 185000,
2607
+ // 'totalStock': 700,
2608
+ // 'movingStock': 45,
2609
+ // 'unshippedStock': 22,
2610
+ // '본사 창고': {
2611
+ // total: 40000,
2612
+ // scheduled: 1800,
2613
+ // },
2614
+ // },
2615
+ // {
2616
+ // 'id': 99,
2617
+ // 'productInfo': {
2618
+ // name: 'Peacoat',
2619
+ // property: '블랙, M',
2620
+ // barcode: [{ code: '123456789013456877' }],
2621
+ // code: 'PEA002BLKM',
2622
+ // category: '의류 > 아우터 > 피코트',
2623
+ // season: '2025 (F/W)',
2624
+ // },
2625
+ // 'avgCost': 225000,
2626
+ // 'totalStock': 600,
2627
+ // 'movingStock': 40,
2628
+ // 'unshippedStock': 20,
2629
+ // '본사 창고': {
2630
+ // total: 35000,
2631
+ // scheduled: 1500,
2632
+ // },
2633
+ // },
2634
+ // {
2635
+ // 'id': 100,
2636
+ // 'productInfo': {
2637
+ // name: 'Trench Coat',
2638
+ // property: '베이지, L',
2639
+ // barcode: [{ code: '123456789013456878' }],
2640
+ // code: 'TRENCH002BGEL',
2641
+ // category: '의류 > 아우터 > 트렌치코트',
2642
+ // season: '2025 (F/W)',
2643
+ // },
2644
+ // 'avgCost': 245000,
2645
+ // 'totalStock': 480,
2646
+ // 'movingStock': 32,
2647
+ // 'unshippedStock': 16,
2648
+ // '본사 창고': {
2649
+ // total: 25000,
2650
+ // scheduled: 1100,
2651
+ // },
2652
+ // },
2653
+ // ];
2654
+ // table.columns = [
2655
+ // {
2656
+ // name: 'productInfo',
2657
+ // label: '품목명 / 품목 속성',
2658
+ // field: 'productInfo',
2659
+ // align: 'left',
2660
+ // width: '220',
2661
+ // },
2662
+ // {
2663
+ // name: 'productCode',
2664
+ // label: '품목 코드 / 품목 분류',
2665
+ // field: 'email',
2666
+ // align: 'center',
2667
+ // width: '160',
2668
+ // },
2669
+ // {
2670
+ // name: 'avgCost',
2671
+ // label: '평균 원가',
2672
+ // field: 'avgCost',
2673
+ // align: 'center',
2674
+ // width: '100',
2675
+ // format: value => `${value.toLocaleString()} 원`,
2676
+ // },
2677
+ // {
2678
+ // name: 'totalStock',
2679
+ // label: '총 재고',
2680
+ // field: 'totalStock',
2681
+ // align: 'center',
2682
+ // width: '100',
2683
+ // format: value => `${value.toLocaleString()} 개`,
2684
+ // },
2685
+ // {
2686
+ // name: 'movingStock',
2687
+ // label: '이동 중',
2688
+ // field: 'movingStock',
2689
+ // align: 'center',
2690
+ // width: '100',
2691
+ // format: value => `${value.toLocaleString()} 개`,
2692
+ // tooltip: [
2693
+ // '이동 중 재고는 출발지에서 출고 되었으나,',
2694
+ // '도착지로 아직 입고되지 않은 수량입니다.',
2695
+ // ],
2696
+ // tooltipOptions: { placement: 'bottom' },
2697
+ // },
2698
+ // {
2699
+ // name: 'unshippedStock',
2700
+ // label: '미발송',
2701
+ // field: 'unshippedStock',
2702
+ // align: 'center',
2703
+ // width: '100',
2704
+ // format: value => `${value.toLocaleString()} 개`,
2705
+ // },
2706
+ // ];
2707
+ // table.height = '600px';
2708
+ // function handlePagination(page) {
2709
+ // const pagination = table.pagination || { page: 1, rowsPerPage: 10 };
2710
+ // const res = getMockStockData(page, pagination.rowsPerPage);
2711
+ // console.log(res);
2712
+ // table.pagination = res.pagination;
2713
+ // table.rows = res.data;
2714
+ // }
2715
+ // table.addEventListener('sdPageChange', event => {
2716
+ // handlePagination(event.detail);
2717
+ // });
2718
+ // function getMockStockData(page = 1, rowsPerPage = 10) {
2719
+ // const startIndex = (page - 1) * rowsPerPage;
2720
+ // const endIndex = startIndex + rowsPerPage;
2721
+ // const paginatedData = ROWS.slice(startIndex, endIndex);
2722
+ // return {
2723
+ // data: paginatedData,
2724
+ // pagination: {
2725
+ // page,
2726
+ // rowsPerPage,
2727
+ // totalItems: ROWS.length,
2728
+ // lastPage: Math.ceil(ROWS.length / rowsPerPage),
2729
+ // },
2730
+ // };
2731
+ // }
2732
+ // function fetchData() {
2733
+ // const pagination = table.pagination || { page: 1, rowsPerPage: 10 };
2734
+ // const res = getMockStockData(pagination.page, pagination.rowsPerPage);
2735
+ // console.log(res);
2736
+ // table.pagination = res.pagination;
2737
+ // table.rows = res.data;
2738
+ // }
2739
+ // test.addEventListener('click', () => {
2740
+ // fetchData();
2741
+ // });
2742
+ // });
662
2743
  //# sourceMappingURL=sd-table.js.map