@sellmate/design-system 0.0.48 → 0.0.49

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 (198) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/{index-DXo1Fhkn.js → index-Bxead0A0.js} +4 -2
  3. package/dist/cjs/{index-DXo1Fhkn.js.map → index-Bxead0A0.js.map} +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/sd-badge.cjs.entry.js +2 -2
  6. package/dist/cjs/sd-button.sd-checkbox.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table-backup.sd-tooltip.sd-tooltip-portal.entry.cjs.js.map +1 -1
  7. package/dist/cjs/sd-button_12.cjs.entry.js +206 -105
  8. package/dist/cjs/sd-card.cjs.entry.js +2 -2
  9. package/dist/cjs/sd-date-box.cjs.entry.js +1 -1
  10. package/dist/cjs/sd-date-picker.cjs.entry.js +2 -2
  11. package/dist/cjs/sd-date-range-picker.cjs.entry.js +3 -3
  12. package/dist/cjs/sd-guide.cjs.entry.js +4 -4
  13. package/dist/cjs/sd-modal-card.cjs.entry.js +1 -1
  14. package/dist/cjs/sd-popover.cjs.entry.js +4 -4
  15. package/dist/cjs/sd-progress.cjs.entry.js +3 -3
  16. package/dist/cjs/sd-select-multiple-group.cjs.entry.js +1 -1
  17. package/dist/cjs/sd-select-multiple.cjs.entry.js +3 -3
  18. package/dist/cjs/sd-select-option-group.cjs.entry.js +4 -4
  19. package/dist/cjs/sd-table.cjs.entry.js +1 -1
  20. package/dist/cjs/sd-tag.cjs.entry.js +2 -2
  21. package/dist/cjs/sd-tbody_3.cjs.entry.js +4 -4
  22. package/dist/cjs/sd-td.cjs.entry.js +3 -3
  23. package/dist/cjs/{tooltipArrow-DNiGFQNW.js → tooltipArrow-C7cIAuTo.js} +3 -3
  24. package/dist/cjs/{tooltipArrow-DNiGFQNW.js.map → tooltipArrow-C7cIAuTo.js.map} +1 -1
  25. package/dist/collection/components/sd-badge/sd-badge.js +1 -1
  26. package/dist/collection/components/sd-card/sd-card.js +1 -1
  27. package/dist/collection/components/sd-date-picker/sd-date-picker.js +1 -1
  28. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +2 -2
  29. package/dist/collection/components/sd-guide/sd-guide.js +3 -3
  30. package/dist/collection/components/sd-icon/sd-icon.js +1 -1
  31. package/dist/collection/components/sd-input/sd-input.js +2 -2
  32. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +1 -1
  33. package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
  34. package/dist/collection/components/sd-popover/sd-popover.js +2 -2
  35. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  36. package/dist/collection/components/sd-progress/sd-progress.js +2 -2
  37. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
  38. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +2 -2
  39. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  40. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +1 -1
  41. package/dist/collection/components/sd-table/sd-td/sd-td.js +2 -2
  42. package/dist/collection/components/sd-table/sd-th/sd-th.js +1 -1
  43. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +1 -1
  44. package/dist/collection/components/sd-table-backup/sd-table-backup.css +17 -15
  45. package/dist/collection/components/sd-table-backup/sd-table-backup.js +191 -90
  46. package/dist/collection/components/sd-table-backup/sd-table-backup.js.map +1 -1
  47. package/dist/collection/components/sd-tag/sd-tag.js +1 -1
  48. package/dist/collection/components/sd-tooltip/sd-tooltip.js +4 -4
  49. package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js +1 -1
  50. package/dist/components/index.js +1 -1
  51. package/dist/components/{p-Bn_wuPsh.js → p-BAhPNR2w.js} +8 -8
  52. package/dist/components/{p-Bn_wuPsh.js.map → p-BAhPNR2w.js.map} +1 -1
  53. package/dist/components/{p-C9qV_qzP.js → p-BozMKCTh.js} +6 -6
  54. package/dist/components/{p-C9qV_qzP.js.map → p-BozMKCTh.js.map} +1 -1
  55. package/dist/components/{p-BvuTaRpn.js → p-BpNH68jy.js} +3 -3
  56. package/dist/components/{p-BvuTaRpn.js.map → p-BpNH68jy.js.map} +1 -1
  57. package/dist/components/{p-CIkSynaQ.js → p-C930Kn80.js} +4 -4
  58. package/dist/components/{p-CIkSynaQ.js.map → p-C930Kn80.js.map} +1 -1
  59. package/dist/components/{p-Cb33bhDR.js → p-CRB0WJnC.js} +4 -4
  60. package/dist/components/{p-Cb33bhDR.js.map → p-CRB0WJnC.js.map} +1 -1
  61. package/dist/components/{p-DWfls6IE.js → p-CVDnYikl.js} +11 -11
  62. package/dist/components/{p-DWfls6IE.js.map → p-CVDnYikl.js.map} +1 -1
  63. package/dist/components/{p-BBhUxTuK.js → p-CaLViLir.js} +9 -9
  64. package/dist/components/{p-BBhUxTuK.js.map → p-CaLViLir.js.map} +1 -1
  65. package/dist/components/{p-BlDZogGu.js → p-CePRmFej.js} +4 -4
  66. package/dist/components/{p-BlDZogGu.js.map → p-CePRmFej.js.map} +1 -1
  67. package/dist/components/{p-lS2AF6uZ.js → p-CxKXdl1J.js} +6 -6
  68. package/dist/components/{p-lS2AF6uZ.js.map → p-CxKXdl1J.js.map} +1 -1
  69. package/dist/components/{p-D2rvzY8X.js → p-D2YMmHfl.js} +4 -4
  70. package/dist/components/{p-D2rvzY8X.js.map → p-D2YMmHfl.js.map} +1 -1
  71. package/dist/components/{p-B6GiEilD.js → p-D2aGA3BX.js} +4 -4
  72. package/dist/components/{p-B6GiEilD.js.map → p-D2aGA3BX.js.map} +1 -1
  73. package/dist/components/{p-CMcI4ZlP.js → p-DC5fpNnQ.js} +4 -4
  74. package/dist/components/{p-CMcI4ZlP.js.map → p-DC5fpNnQ.js.map} +1 -1
  75. package/dist/components/{p-Cafw-qR4.js → p-DY6t0qQj.js} +3 -3
  76. package/dist/components/{p-Cafw-qR4.js.map → p-DY6t0qQj.js.map} +1 -1
  77. package/dist/components/{p-DsXAGqf9.js → p-Dg_O2miv.js} +4 -4
  78. package/dist/components/{p-DsXAGqf9.js.map → p-Dg_O2miv.js.map} +1 -1
  79. package/dist/components/{p-DCDoqfn8.js → p-LziGti_p.js} +4 -4
  80. package/dist/components/{p-DCDoqfn8.js.map → p-LziGti_p.js.map} +1 -1
  81. package/dist/components/{p-WhZES_rm.js → p-RZm_wGW3.js} +6 -6
  82. package/dist/components/{p-WhZES_rm.js.map → p-RZm_wGW3.js.map} +1 -1
  83. package/dist/components/{p-CbnL1UUF.js → p-TFWJruz2.js} +4 -3
  84. package/dist/components/p-TFWJruz2.js.map +1 -0
  85. package/dist/components/{p-t7JZlmXM.js → p-cOQWi_dD.js} +4 -4
  86. package/dist/components/{p-t7JZlmXM.js.map → p-cOQWi_dD.js.map} +1 -1
  87. package/dist/components/{p-wA4KCOG0.js → p-gnOKrd57.js} +3 -3
  88. package/dist/components/{p-wA4KCOG0.js.map → p-gnOKrd57.js.map} +1 -1
  89. package/dist/components/sd-badge.js +2 -2
  90. package/dist/components/sd-button.js +1 -1
  91. package/dist/components/sd-card.js +2 -2
  92. package/dist/components/sd-checkbox.js +1 -1
  93. package/dist/components/sd-date-box.js +1 -1
  94. package/dist/components/sd-date-picker.js +6 -6
  95. package/dist/components/sd-date-range-picker.js +7 -7
  96. package/dist/components/sd-guide.js +7 -7
  97. package/dist/components/sd-icon.js +1 -1
  98. package/dist/components/sd-input.js +1 -1
  99. package/dist/components/sd-loading-spinner.js +1 -1
  100. package/dist/components/sd-modal-card.js +3 -3
  101. package/dist/components/sd-pagination.js +1 -1
  102. package/dist/components/sd-popover.js +7 -7
  103. package/dist/components/sd-portal.js +1 -1
  104. package/dist/components/sd-progress.js +3 -3
  105. package/dist/components/sd-select-multiple-group.js +7 -7
  106. package/dist/components/sd-select-multiple.js +9 -9
  107. package/dist/components/sd-select-option-group.js +1 -1
  108. package/dist/components/sd-select-option.js +1 -1
  109. package/dist/components/sd-select.js +1 -1
  110. package/dist/components/sd-table-backup.js +203 -102
  111. package/dist/components/sd-table-backup.js.map +1 -1
  112. package/dist/components/sd-table.js +14 -14
  113. package/dist/components/sd-tag.js +2 -2
  114. package/dist/components/sd-tbody.js +1 -1
  115. package/dist/components/sd-td.js +3 -3
  116. package/dist/components/sd-th.js +1 -1
  117. package/dist/components/sd-tooltip-portal.js +1 -1
  118. package/dist/components/sd-tooltip.js +1 -1
  119. package/dist/components/sd-tr.js +1 -1
  120. package/dist/design-system/design-system.esm.js +1 -1
  121. package/dist/design-system/{p-390283f7.entry.js → p-037de6ce.entry.js} +2 -2
  122. package/dist/design-system/p-0cada447.entry.js +2 -0
  123. package/dist/design-system/p-154958ba.entry.js +2 -0
  124. package/dist/design-system/{p-826c6517.entry.js → p-2285c061.entry.js} +2 -2
  125. package/dist/design-system/{p-d4b5575e.entry.js → p-267985b3.entry.js} +2 -2
  126. package/dist/design-system/p-328d7e6c.entry.js +2 -0
  127. package/dist/design-system/{p-8734ded6.entry.js → p-45bb29cf.entry.js} +2 -2
  128. package/dist/design-system/{p-871c8d66.entry.js → p-6d81e6f8.entry.js} +2 -2
  129. package/dist/design-system/p-6f16399e.entry.js +2 -0
  130. package/dist/design-system/{p-6320b9c6.entry.js.map → p-6f16399e.entry.js.map} +1 -1
  131. package/dist/design-system/{p-f9d01bdb.entry.js → p-74c0eee4.entry.js} +2 -2
  132. package/dist/design-system/{p-3574f319.entry.js → p-8d1a2a13.entry.js} +2 -2
  133. package/dist/design-system/p-927b3333.entry.js +2 -0
  134. package/dist/design-system/p-927b3333.entry.js.map +1 -0
  135. package/dist/design-system/p-ClyGLKUd.js +3 -0
  136. package/dist/design-system/{p-B2T3tS5r.js.map → p-ClyGLKUd.js.map} +1 -1
  137. package/dist/design-system/p-DXZjHQmQ.js +2 -0
  138. package/dist/design-system/{p-BE6EMCXm.js.map → p-DXZjHQmQ.js.map} +1 -1
  139. package/dist/design-system/{p-4386db36.entry.js → p-bea456ad.entry.js} +2 -2
  140. package/dist/design-system/{p-ce8fe1fd.entry.js → p-d7fe0919.entry.js} +2 -2
  141. package/dist/design-system/{p-0d776157.entry.js → p-dc6681a7.entry.js} +2 -2
  142. package/dist/design-system/p-ecb38b6a.entry.js +2 -0
  143. package/dist/design-system/{p-db0f705b.entry.js.map → p-ecb38b6a.entry.js.map} +1 -1
  144. package/dist/design-system/p-fb4d628a.entry.js +2 -0
  145. package/dist/design-system/sd-button.sd-checkbox.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table-backup.sd-tooltip.sd-tooltip-portal.entry.esm.js.map +1 -1
  146. package/dist/esm/design-system.js +2 -2
  147. package/dist/esm/{index-B2T3tS5r.js → index-ClyGLKUd.js} +4 -3
  148. package/dist/esm/{index-B2T3tS5r.js.map → index-ClyGLKUd.js.map} +1 -1
  149. package/dist/esm/loader.js +2 -2
  150. package/dist/esm/sd-badge.entry.js +2 -2
  151. package/dist/esm/sd-button.sd-checkbox.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table-backup.sd-tooltip.sd-tooltip-portal.entry.js.map +1 -1
  152. package/dist/esm/sd-button_12.entry.js +206 -105
  153. package/dist/esm/sd-card.entry.js +2 -2
  154. package/dist/esm/sd-date-box.entry.js +1 -1
  155. package/dist/esm/sd-date-picker.entry.js +2 -2
  156. package/dist/esm/sd-date-range-picker.entry.js +3 -3
  157. package/dist/esm/sd-guide.entry.js +4 -4
  158. package/dist/esm/sd-modal-card.entry.js +1 -1
  159. package/dist/esm/sd-popover.entry.js +4 -4
  160. package/dist/esm/sd-progress.entry.js +3 -3
  161. package/dist/esm/sd-select-multiple-group.entry.js +1 -1
  162. package/dist/esm/sd-select-multiple.entry.js +3 -3
  163. package/dist/esm/sd-select-option-group.entry.js +4 -4
  164. package/dist/esm/sd-table.entry.js +1 -1
  165. package/dist/esm/sd-tag.entry.js +2 -2
  166. package/dist/esm/sd-tbody_3.entry.js +4 -4
  167. package/dist/esm/sd-td.entry.js +3 -3
  168. package/dist/esm/{tooltipArrow-Pa2XQhpp.js → tooltipArrow-BwO7_hdW.js} +3 -3
  169. package/dist/esm/{tooltipArrow-Pa2XQhpp.js.map → tooltipArrow-BwO7_hdW.js.map} +1 -1
  170. package/dist/types/components/sd-table-backup/sd-table-backup.d.ts +15 -0
  171. package/hydrate/index.js +236 -126
  172. package/hydrate/index.mjs +236 -126
  173. package/package.json +2 -2
  174. package/dist/components/p-CbnL1UUF.js.map +0 -1
  175. package/dist/design-system/p-043b7fd1.entry.js +0 -2
  176. package/dist/design-system/p-043b7fd1.entry.js.map +0 -1
  177. package/dist/design-system/p-059ca6cb.entry.js +0 -2
  178. package/dist/design-system/p-6320b9c6.entry.js +0 -2
  179. package/dist/design-system/p-7b4fe5bf.entry.js +0 -2
  180. package/dist/design-system/p-7e8db11c.entry.js +0 -2
  181. package/dist/design-system/p-B2T3tS5r.js +0 -3
  182. package/dist/design-system/p-BE6EMCXm.js +0 -2
  183. package/dist/design-system/p-d4e043c5.entry.js +0 -2
  184. package/dist/design-system/p-db0f705b.entry.js +0 -2
  185. /package/dist/design-system/{p-390283f7.entry.js.map → p-037de6ce.entry.js.map} +0 -0
  186. /package/dist/design-system/{p-7b4fe5bf.entry.js.map → p-0cada447.entry.js.map} +0 -0
  187. /package/dist/design-system/{p-059ca6cb.entry.js.map → p-154958ba.entry.js.map} +0 -0
  188. /package/dist/design-system/{p-826c6517.entry.js.map → p-2285c061.entry.js.map} +0 -0
  189. /package/dist/design-system/{p-d4b5575e.entry.js.map → p-267985b3.entry.js.map} +0 -0
  190. /package/dist/design-system/{p-7e8db11c.entry.js.map → p-328d7e6c.entry.js.map} +0 -0
  191. /package/dist/design-system/{p-8734ded6.entry.js.map → p-45bb29cf.entry.js.map} +0 -0
  192. /package/dist/design-system/{p-871c8d66.entry.js.map → p-6d81e6f8.entry.js.map} +0 -0
  193. /package/dist/design-system/{p-f9d01bdb.entry.js.map → p-74c0eee4.entry.js.map} +0 -0
  194. /package/dist/design-system/{p-3574f319.entry.js.map → p-8d1a2a13.entry.js.map} +0 -0
  195. /package/dist/design-system/{p-4386db36.entry.js.map → p-bea456ad.entry.js.map} +0 -0
  196. /package/dist/design-system/{p-ce8fe1fd.entry.js.map → p-d7fe0919.entry.js.map} +0 -0
  197. /package/dist/design-system/{p-0d776157.entry.js.map → p-dc6681a7.entry.js.map} +0 -0
  198. /package/dist/design-system/{p-d4e043c5.entry.js.map → p-fb4d628a.entry.js.map} +0 -0
package/hydrate/index.mjs CHANGED
@@ -3339,6 +3339,15 @@ var registerComponents = (Cstrs) => {
3339
3339
  }
3340
3340
  };
3341
3341
  var win = window;
3342
+ var readTask = (cb) => {
3343
+ nextTick(() => {
3344
+ try {
3345
+ cb();
3346
+ } catch (e) {
3347
+ consoleError(e);
3348
+ }
3349
+ });
3350
+ };
3342
3351
  var writeTask = (cb) => {
3343
3352
  nextTick(() => {
3344
3353
  try {
@@ -3680,7 +3689,7 @@ class SdBadge {
3680
3689
  label = '';
3681
3690
  render() {
3682
3691
  const resolvedColor = resolveColor(this.color);
3683
- return (hAsync(Host, { key: 'b88fba271994742a1a1d3379db44e8a307c5a308' }, hAsync("div", { key: '961c25f3f87dc51cd670aa18706d5a5f3517f8bf', class: `sd-badge sd-badge--${this.size}`, style: { '--sd-badge-color': resolvedColor } }, hAsync("div", { key: '2de1b86cc1e714a436cb2d2810b2646a2ac4fd7c', class: "sd-badge__dot" }), hAsync("div", { key: '89943a046b33c105155236a7e0b411dfbcd72487', class: "sd-badge__label" }, this.label))));
3692
+ return (hAsync(Host, { key: '88cb068e4c73a9abb0c4b7c4321ec7d861ec1395' }, hAsync("div", { key: '09371f2e449a0f1db15fe08d7045313a86555f70', class: `sd-badge sd-badge--${this.size}`, style: { '--sd-badge-color': resolvedColor } }, hAsync("div", { key: '4e7bb2717bc999d06dfa861474a833448f497431', class: "sd-badge__dot" }), hAsync("div", { key: '0711cac45b6535cd67279785dfe6a89cbbd6739a', class: "sd-badge__label" }, this.label))));
3684
3693
  }
3685
3694
  static get style() { return sdBadgeCss; }
3686
3695
  static get cmpMeta() { return {
@@ -3787,7 +3796,7 @@ class SdCard {
3787
3796
  bordered = true;
3788
3797
  class = '';
3789
3798
  render() {
3790
- return (hAsync(Host, { key: 'b39b016a66f0df13d09ff3a1ce453bb5eda23b52' }, hAsync("div", { key: '2a22dcc5ede4067ecbb2bbbe985d95ffaee3a3a6', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.class}` }, hAsync("slot", { key: 'f73cae0097be43bcd666ade2db27c585090eca75' }))));
3799
+ return (hAsync(Host, { key: 'e9653557b36889a75002c32bde005c7b480b2f4b' }, hAsync("div", { key: 'e34f53b49bdc412eaf82dbe21918cd6599d1d2c6', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.class}` }, hAsync("slot", { key: 'b5d06b44a1a960fe12424f43a39647a4646610d6' }))));
3791
3800
  }
3792
3801
  static get style() { return sdCardCss; }
3793
3802
  static get cmpMeta() { return {
@@ -4098,7 +4107,7 @@ class SdDatePicker {
4098
4107
  this.isOpen = false;
4099
4108
  };
4100
4109
  render() {
4101
- return (hAsync(Host, { key: '67bc480db5e0f16fa5af8bd75b6dde76d457b4dd', class: "sd-date-picker" }, hAsync("sd-input", { key: 'd31e41161179efb1b961ea00f7333b048e43467a', ref: el => (this.inputEl = el), value: this.date, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", onClick: () => this.openMenu() }, hAsync("sd-icon", { key: '1a3c2d291628a00d217a0b20ddeb38d8590706f7', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (hAsync("sd-portal", { key: '85b52726ad96ed74cb42e1eda4e014eb8095face', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, hAsync("div", { key: 'e398ac0094ef23907b7d3a7f88b37587207ade33', class: "sd-date-picker__menu" }, hAsync("div", { key: '328de8581f0cb895bb3e6e3758a7adedbad302de', class: "sd-date-picker__header" }, hAsync("div", { key: '633feae88e423ffa6fa6eb6841a937be3558ccc5', class: "year-nav" }, hAsync("button", { key: '89c3d4593c0a2c2917003a93ac1ff0176c611d72', type: "button", name: "prev-year", title: "Previous Year", onClick: () => this.setCurrentYear(this.currentYear - 1) }, hAsync("sd-icon", { key: '140655e36c73784f4704a51a89c79ae72d237218', name: "arrowLeft", size: "12", color: "#CCCCCC" })), hAsync("span", { key: '3917a8caec91a855b9bf6f42b3c8e856d490817a', class: "year-nav__current" }, this.currentYear), hAsync("button", { key: 'b5a7e7903594482bff30c72afaca8609b04f8aea', type: "button", name: "next-year", title: "Next Year", onClick: () => this.setCurrentYear(this.currentYear + 1) }, hAsync("sd-icon", { key: '49364c66f35a9a5e724644963f3ab276245241af', name: "arrowRight", size: "12", color: "#CCCCCC" }))), hAsync("div", { key: '153ee788090ed23b32cec5f660eeda741076b2a6', class: "month-nav" }, hAsync("button", { key: '33f7a059d08bd761cc6ca083f5fd1980017e3f2d', type: "button", name: "prev-month", title: "Previous ", onClick: () => this.handleUpdateMonth('prev') }, hAsync("sd-icon", { key: 'c641505d42a0683bea0e6b7a3db9cf6352a78d4d', name: "arrowLeft", size: "12", color: "#CCCCCC" })), hAsync("span", { key: '5fb032ee2040e4abd333dc640c3998e3288662f2', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), hAsync("button", { key: 'da13b27ba6f74fae110383e294be1d01e0d74eb1', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, hAsync("sd-icon", { key: '223b006490c3f3a3d6d7036115da2b88e801dca7', name: "arrowRight", size: "12", color: "#CCCCCC" })))), hAsync("div", { key: '1251dd00b4cb02ebddaf1aa93e1fc8a351bee10f', class: "sd-date-picker__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (hAsync("div", { key: day, class: "day" }, day)))), hAsync("div", { key: '474772b41df806093a4e578b67420adb6a973018', class: "sd-date-picker__body" }, [
4110
+ return (hAsync(Host, { key: '3fe32fb440e95d43a7ba5ae40eebfec5b1f292f7', class: "sd-date-picker" }, hAsync("sd-input", { key: '8aa313f14bd0305c0d28ba8e388c5c7d2ae2d3ec', ref: el => (this.inputEl = el), value: this.date, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", onClick: () => this.openMenu() }, hAsync("sd-icon", { key: '350af44747b5f87c0e25dc01fc8aa25590363d5b', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (hAsync("sd-portal", { key: '1c05d0d0b9cd54bd67b1d4411bd3ad2aded758ba', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, hAsync("div", { key: '273c93d7b9635ebfab1350568f30da3f62996003', class: "sd-date-picker__menu" }, hAsync("div", { key: '9da1cf5d0dc35f00018a2718787007749a84ca99', class: "sd-date-picker__header" }, hAsync("div", { key: 'c2afcc7006276eca26d4f0d0c91350a0dee070cf', class: "year-nav" }, hAsync("button", { key: '1b53d6e96c6f9ab93d67440450b35be096e9607b', type: "button", name: "prev-year", title: "Previous Year", onClick: () => this.setCurrentYear(this.currentYear - 1) }, hAsync("sd-icon", { key: '7acd8f69406a83bcc9fef1745523d997d1b3f219', name: "arrowLeft", size: "12", color: "#CCCCCC" })), hAsync("span", { key: 'ad5f412960af38938d6efea1f0909293c3c6682c', class: "year-nav__current" }, this.currentYear), hAsync("button", { key: 'fe2480d51d8a8a3b09d3d0d5e5c5c53982ebd20d', type: "button", name: "next-year", title: "Next Year", onClick: () => this.setCurrentYear(this.currentYear + 1) }, hAsync("sd-icon", { key: 'e7175f73e5efcef04a2b33a2ee7a57d2b025c3d8', name: "arrowRight", size: "12", color: "#CCCCCC" }))), hAsync("div", { key: '76dcf13a864dffcb6a49683b590c19efb05c7367', class: "month-nav" }, hAsync("button", { key: '2d300218750da2716e2558ff3145337ee6bcfa80', type: "button", name: "prev-month", title: "Previous ", onClick: () => this.handleUpdateMonth('prev') }, hAsync("sd-icon", { key: '1972506ecb42922b6c742bd34186bdbf23f8d6b5', name: "arrowLeft", size: "12", color: "#CCCCCC" })), hAsync("span", { key: '3037310072a6dcb71f2e662fb1dcfa07d44f2a70', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), hAsync("button", { key: '7cd60a470fd27f2028935748047f76945fc4fe99', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, hAsync("sd-icon", { key: 'd656f3dd638cab72e94f12036e77f46b9ab31c7f', name: "arrowRight", size: "12", color: "#CCCCCC" })))), hAsync("div", { key: '1710f916652929515916a122affda7cbdd311153', class: "sd-date-picker__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (hAsync("div", { key: day, class: "day" }, day)))), hAsync("div", { key: '201f7499819e88f291a3889fcbe854d2e2145fde', class: "sd-date-picker__body" }, [
4102
4111
  ...this.calendar.prevMonthDays,
4103
4112
  ...this.calendar.days,
4104
4113
  ...this.calendar.afterMonthDays,
@@ -4271,9 +4280,9 @@ class SdDateRangePicker {
4271
4280
  this.isOpen = false;
4272
4281
  };
4273
4282
  render() {
4274
- return (hAsync(Host, { key: '01d8def2e141ae3767fb57880482845a5bfcc6ca', class: "sd-date-range-picker" }, hAsync("sd-input", { key: 'f3738314482ac84517958672d2f75cdc7cd6d354', ref: el => (this.inputEl = el), value: `${this.dateRange[0]} ~ ${this.dateRange[1]}`, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", inputStyle: {
4283
+ return (hAsync(Host, { key: 'b5f7be556686c3bb50147ed0b28cd47698d90e5c', class: "sd-date-range-picker" }, hAsync("sd-input", { key: 'a457ab2b61354fe100fa31e1ab357649ceef63aa', ref: el => (this.inputEl = el), value: `${this.dateRange[0]} ~ ${this.dateRange[1]}`, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", inputStyle: {
4275
4284
  margin: '0 0 0 8px',
4276
- }, onClick: () => this.openMenu() }, hAsync("sd-icon", { key: '2ca7e4428256374866a74bf550fd7fc825fca4c1', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (hAsync("sd-portal", { key: '381b44e43ed021a1200854e445f113e02112b21b', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, hAsync("div", { key: '47f31a5136e236899ac861cdd66a0424ed9507ee', class: "sd-date-range-picker__menu" }, hAsync("div", { key: '3c5c4050f4ea36e93b7cc02e0935f3898bca7523', class: "sd-date-range-picker__header mb-16pxr flex flex-nowrap items-center justify-center" }, hAsync("button", { key: 'b5ddf46fbc15290df316697c99502a07499452fb', type: "button", name: "prev", title: "Previous", onClick: () => this.setPrevYear(this.prevYear - 1) }, hAsync("sd-icon", { key: 'fded6383fd7a90e80cba1b222a334764bcd1f4c2', name: "arrowLeft", size: "12", color: "#CCCCCC" })), hAsync("div", { key: 'b8408d970c42fc373b5300ce91887010e78c29f9', class: "header-label" }, this.prevYear), hAsync("button", { key: 'bc4c97952e8ae30ad685de8f966e5b0445e5f6a0', type: "button", name: "next", title: "Next", onClick: () => this.setPrevYear(this.prevYear + 1) }, hAsync("sd-icon", { key: '7dff57a2d3c44a810ab078c9418155dbadb7988d', name: "arrowRight", size: "12", color: "#CCCCCC" }))), hAsync("div", { key: '9c43dd586c0f702490093204c06102186cf27ebe', class: "sd-date-range-picker__body" }, [this.prevCalendar, this.nextCalendar].map((calendar, index) => (hAsync(Fragment, null, index === 1 && hAsync("div", { class: "separator" }), hAsync("div", { key: index, class: "calendar-container" }, hAsync("div", { class: "calendar-header" }, hAsync("button", { type: "button", name: "month", title: "Month", class: index === 0 ? 'header-button-prev' : 'header-button-next', onClick: () => this.updateYearMonth(index === 0 ? 'prev' : 'next') }, hAsync("sd-icon", { name: index === 0 ? 'arrowLeft' : 'arrowRight', size: "12", color: "#CCCCCC" })), index === 0
4285
+ }, onClick: () => this.openMenu() }, hAsync("sd-icon", { key: 'cc068925914495e21172020763c18627d3c8e8a2', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (hAsync("sd-portal", { key: '0486ab86c422d98aa2e86bd4d327cc42f0e72ae9', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, hAsync("div", { key: '8b86d95d279d6f3036f2aacc0421ec4f715d91e7', class: "sd-date-range-picker__menu" }, hAsync("div", { key: '0fa223b5fdc0a8195e1fbd433c235dc4473ad146', class: "sd-date-range-picker__header mb-16pxr flex flex-nowrap items-center justify-center" }, hAsync("button", { key: '2d512e7ffa9461f18ca67236a0539cdabcb384ac', type: "button", name: "prev", title: "Previous", onClick: () => this.setPrevYear(this.prevYear - 1) }, hAsync("sd-icon", { key: 'aa23e83e33bfaaaee02f771e9aa3e7f84fe7ceae', name: "arrowLeft", size: "12", color: "#CCCCCC" })), hAsync("div", { key: '5c6e6ea57120081b466faa827e7bb014b5d20905', class: "header-label" }, this.prevYear), hAsync("button", { key: '51f89a92ca77a98283a883316981b7df08e1fcef', type: "button", name: "next", title: "Next", onClick: () => this.setPrevYear(this.prevYear + 1) }, hAsync("sd-icon", { key: '19a594a16b65668db23f5e77e61db7182591ac57', name: "arrowRight", size: "12", color: "#CCCCCC" }))), hAsync("div", { key: '21073a5c2d4dd68aa4dce7be48eab0339dd3791d', class: "sd-date-range-picker__body" }, [this.prevCalendar, this.nextCalendar].map((calendar, index) => (hAsync(Fragment, null, index === 1 && hAsync("div", { class: "separator" }), hAsync("div", { key: index, class: "calendar-container" }, hAsync("div", { class: "calendar-header" }, hAsync("button", { type: "button", name: "month", title: "Month", class: index === 0 ? 'header-button-prev' : 'header-button-next', onClick: () => this.updateYearMonth(index === 0 ? 'prev' : 'next') }, hAsync("sd-icon", { name: index === 0 ? 'arrowLeft' : 'arrowRight', size: "12", color: "#CCCCCC" })), index === 0
4277
4286
  ? `${this.prevYear}.${String(this.prevMonth).padStart(2, '0')}`
4278
4287
  : `${this.nextYear}.${String(this.nextMonth).padStart(2, '0')}`), hAsync("div", { class: "calendar-days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (hAsync("sd-date-box", { key: day, date: day, disabled: true, class: "day" })))), hAsync("div", { class: "calendar-body mt-12pxr grid grid-cols-7 gap-y-8pxr" }, [...calendar.prevMonthDays, ...calendar.days, ...calendar.afterMonthDays].map((day, idx) => (hAsync("sd-date-box", { key: `prev${day}_${idx}`, date: !day ? '' : Number(day), selected: this.dateRange.some(date => date ===
4279
4288
  this.dateUtil.formatDate(index === 0 ? this.prevYear : this.nextYear, index === 0 ? this.prevMonth : this.nextMonth, Number(day))), type: this.getDateBoxType(this.dateUtil.formatDate(index === 0 ? this.prevYear : this.nextYear, index === 0 ? this.prevMonth : this.nextMonth, Number(day))), isToday: today ===
@@ -4356,11 +4365,11 @@ class SdGuide {
4356
4365
  };
4357
4366
  render() {
4358
4367
  const { name: iconName, size: iconSize, color: iconColor } = GUIDE_ICON[this.type];
4359
- return (hAsync(Host, { key: '8de1cc4591dd1294a374421965322d6a958c9797', style: {
4368
+ return (hAsync(Host, { key: 'd9bf823d000e8181c61798d9656c428c4a3cd6b6', style: {
4360
4369
  '--sd-guide-color': GUIDE_ICON[this.type].color,
4361
- } }, hAsync("sd-button", { key: '8dc820b941d8e3003f2440a4fa1ccd36be0a854e', ref: el => (this.guideRef = el), class: this.guideClass, variant: this.popupShow ? 'primary' : 'outline', label: this.label || GUIDE_LABEL[this.type], size: "sm", color: this.popupShow ? GUIDE_ICON[this.type].color : 'grey_45', icon: iconName, iconColor: this.popupShow ? 'white' : iconColor, iconSize: iconSize, noHover: this.popupShow, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (hAsync("sd-portal", { key: 'd8cbafa686da33b2ced3a00fe13f673ebab247e5', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, hAsync("div", { key: 'f5048c842dcec0414ee747f69c2033b688ba1672', class: "sd-guide__popup", style: { width: this.popupWidth ? this.popupWidth + 'px' : '426px' } }, hAsync("sd-button", { key: 'a7cb87e50b7b9ff3a40742cd4881ac8c413f18a5', class: "sd-guide__popup__close", icon: "close", color: colors$1.grey_65, size: "md", variant: "ghost", noHover: true,
4370
+ } }, hAsync("sd-button", { key: 'fd25039c644bdd6e802624f2cbef3bfb4d797220', ref: el => (this.guideRef = el), class: this.guideClass, variant: this.popupShow ? 'primary' : 'outline', label: this.label || GUIDE_LABEL[this.type], size: "sm", color: this.popupShow ? GUIDE_ICON[this.type].color : 'grey_45', icon: iconName, iconColor: this.popupShow ? 'white' : iconColor, iconSize: iconSize, noHover: this.popupShow, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (hAsync("sd-portal", { key: '3bb296fa9a9419534af30fe3d2e2dd1bffe2aa53', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, hAsync("div", { key: '2aacb47b2acedceb9114737da8d061022fea27a8', class: "sd-guide__popup", style: { width: this.popupWidth ? this.popupWidth + 'px' : '426px' } }, hAsync("sd-button", { key: 'd4e3a1b49d15782a2b4cc50d6ebfc62ca19da555', class: "sd-guide__popup__close", icon: "close", color: colors$1.grey_65, size: "md", variant: "ghost", noHover: true,
4362
4371
  // buttonStyle={{ padding: '0px', minHeight: '0px' }}
4363
- onSdClick: this.closeDropdown }), hAsync("div", { key: 'dd2a7ceeb8fa28c2d430a2d10778b87db5bc576d', class: "sd-guide__popup__header" }, hAsync("sd-icon", { key: '40ccb8d9fc31c7f0c68ce4fd8aacbfdf7e4cf4dc', name: "helpOutline", size: 24, color: colors$1.green_65 }), hAsync("h3", { key: '55726b9de8d9cd996154700ffb0c5178face6916', class: "sd-guide__popup__title" }, this.popupTitle || GUIDE_LABEL[this.type])), hAsync("ul", { key: '3221ed8367735883cb65c8ab66b63d977eae24dd', class: "sd-guide__popup__list" }, this.renderListItem(this.message)))))));
4372
+ onSdClick: this.closeDropdown }), hAsync("div", { key: 'ca5d8332066af0bac3083443488c3ebe5c064931', class: "sd-guide__popup__header" }, hAsync("sd-icon", { key: '752a3ea8dde595e459b0681b317486c3896aa71f', name: "helpOutline", size: 24, color: colors$1.green_65 }), hAsync("h3", { key: '52d5bdae6b82d9aabbf8dc98c2f05379fb8ffe7d', class: "sd-guide__popup__title" }, this.popupTitle || GUIDE_LABEL[this.type])), hAsync("ul", { key: '07fe0fe4f2b9831721e95f318dfcd818ee11a415', class: "sd-guide__popup__list" }, this.renderListItem(this.message)))))));
4364
4373
  }
4365
4374
  // 현재 2depth까지만 스타일 적용
4366
4375
  renderListItem(message, depth = 0) {
@@ -6406,7 +6415,7 @@ class SdIcon {
6406
6415
  }
6407
6416
  render() {
6408
6417
  const IconComponent = Icons[this.name]?.[this.size];
6409
- return (hAsync("i", { key: '738453a8bc8d1b9bb67fbaaffb7de203c2982c30', class: this.getIconClasses(), style: this.iconStyle }, hAsync(IconComponent, { key: '2f970609756be608b660a522949dd79cca64fcc8', color: this.resolvedColor })));
6418
+ return (hAsync("i", { key: '856cad8bb2373b0d86734443144f79770c0715ec', class: this.getIconClasses(), style: this.iconStyle }, hAsync(IconComponent, { key: 'd2a06ebbda1317cb72fec996b3bf3008ba171070', color: this.resolvedColor })));
6410
6419
  }
6411
6420
  static get style() { return sdIconCss; }
6412
6421
  static get cmpMeta() { return {
@@ -6526,11 +6535,11 @@ class SdInput {
6526
6535
  '--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
6527
6536
  }
6528
6537
  : {};
6529
- return (hAsync(Host, { key: '87a102220530a2e06620619967f1925f193b4794', style: inputWidth }, this.label && hAsync("div", { key: 'dec1ef5b27dadc7b2c6c0e9f5dab978b338b5a45', class: "sd-input__label" }, this.label), hAsync("label", { key: '72ba8b8b0019fd1bfc222207df4b42735457873d', class: {
6538
+ return (hAsync(Host, { key: '0fc9bec4559137ede7daa7f2da5df00595991d5a', style: inputWidth }, this.label && hAsync("div", { key: '3fd4e7d08aca431d7743ec4249a221c77f2fefd1', class: "sd-input__label" }, this.label), hAsync("label", { key: 'bc80c41ffcb1312261b1139dcd0c390db32932df', class: {
6530
6539
  'sd-input': true,
6531
6540
  [this.getInputStatus()]: true,
6532
6541
  'sd-input--barcode': !!this.barcode,
6533
- }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, hAsync("slot", { key: '7745177f5638351670adb3610325d44df156826e', name: "prefix" }), hAsync("input", { key: '976949537b8071a409d94e93f803128946d73d48', ref: el => (this.nativeEl = el), class: `sd-input__native_element ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) }), hAsync("slot", { key: 'b62387e0c2122cfb9f5599a108d54682df59fef6', name: "suffix" }), this.clearable && this.internalValue && (hAsync("sd-icon", { key: 'b860d9c2387adf97d7317bba550b169ac9f4ac49', name: "close", color: "#888", class: "sd-input__clear-icon", onClick: () => {
6542
+ }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, hAsync("slot", { key: 'b1df6c52c2dc92adde26cd535b008d35bc1c73d2', name: "prefix" }), hAsync("input", { key: '5c02cca10b415521d569151c3b05cd9b2ae4b9b7', ref: el => (this.nativeEl = el), class: `sd-input__native_element ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) }), hAsync("slot", { key: 'f85912a8f17712d0a4950a68d10d885556a1de44', name: "suffix" }), this.clearable && this.internalValue && (hAsync("sd-icon", { key: '3087e7d22f06e2b29d17b37d2e95bdcbcc511bd4', name: "close", color: "#888", class: "sd-input__clear-icon", onClick: () => {
6534
6543
  this.internalValue = '';
6535
6544
  this.sdChange?.emit(this.internalValue);
6536
6545
  this.sdInput?.emit(this.internalValue);
@@ -6577,7 +6586,7 @@ class SdLoadingSpinner {
6577
6586
  registerInstance(this, hostRef);
6578
6587
  }
6579
6588
  render() {
6580
- return (hAsync(Host, { key: '54446b42c83eff572c2d0d63c367a7e407d722a5' }, hAsync("svg", { key: '92ad1f0446dc5912a656512d09ab4b8b3b262156', class: "sd-loading-spinner text-positive", width: "72px", height: "72px", viewBox: "25 25 50 50" }, hAsync("circle", { key: 'b9b0c2ea5233fb5f5c784d0262c6ba526dc00622', class: "path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "5", "stroke-miterlimit": "10" }))));
6589
+ return (hAsync(Host, { key: 'd064701b25e190fc5b7feefb542cbc7d30afc3f3' }, hAsync("svg", { key: 'ec37a9ebea3e5b48817c687fae543186bb3cf29a', class: "sd-loading-spinner text-positive", width: "72px", height: "72px", viewBox: "25 25 50 50" }, hAsync("circle", { key: '0b61caa65955019ddb08ed52a51718cf3f55a6e3', class: "path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "5", "stroke-miterlimit": "10" }))));
6581
6590
  }
6582
6591
  static get style() { return sdLoadingSpinnerCss; }
6583
6592
  static get cmpMeta() { return {
@@ -6729,12 +6738,12 @@ class SdPagination {
6729
6738
  }
6730
6739
  }
6731
6740
  render() {
6732
- return (hAsync("div", { key: '3b65d74d4b70b8b3292a20daa5d89ffb7d9a66e7', class: this.paginationClasses }, hAsync("div", { key: 'a3be2b1c24ac6ac7ecde25223d9208e63e558bf3', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (hAsync("div", { class: "pagination-info" }, hAsync("span", { class: "current-page" }, this.currentPage), hAsync("span", null, "/"), hAsync("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (hAsync("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
6741
+ return (hAsync("div", { key: 'c8c241301297c8281d02643f5a31c97f77706fff', class: this.paginationClasses }, hAsync("div", { key: '12ca5b852a648b168928934729d2215f6648bcc1', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (hAsync("div", { class: "pagination-info" }, hAsync("span", { class: "current-page" }, this.currentPage), hAsync("span", null, "/"), hAsync("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (hAsync("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
6733
6742
  'pagination-btn': true,
6734
6743
  'pagination-btn--selected': this.currentPage === n,
6735
6744
  }, disabled: this.currentPage === n, style: {
6736
6745
  '--pagination-btn-width': `${this.buttonWidth}px`,
6737
- }, onClick: () => this.handlePageChange(n) }, n)))), hAsync("div", { key: '9c145c18eacc2ab0115d162cbb50e5ad3ea62c80', class: "append-btns" }, this.renderNextButtons())));
6746
+ }, onClick: () => this.handlePageChange(n) }, n)))), hAsync("div", { key: '0ff537ba6e5985be1e055f5b9eab5dd86dd11624', class: "append-btns" }, this.renderNextButtons())));
6738
6747
  }
6739
6748
  static get style() { return sdPaginationCss; }
6740
6749
  static get cmpMeta() { return {
@@ -6788,11 +6797,11 @@ class SdPopover {
6788
6797
  this.showPopover = false;
6789
6798
  };
6790
6799
  render() {
6791
- return (hAsync(Fragment, { key: '60031ca070a366a90f74d93908ec956076b4e8be' }, this.label ? (hAsync("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-popover", onClick: () => (this.showPopover = !this.showPopover) })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-popover", onClick: () => (this.showPopover = !this.showPopover) })), this.showPopover && (hAsync("sd-tooltip-portal", { key: '199246e3638600c05ae9f9cab99c00540f2525ef', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: this.placement }, hAsync("div", { key: '204b3dcf316277e5b2ce4fab3273c7726f1485c7', class: {
6800
+ return (hAsync(Fragment, { key: '596dfc584e73c7d7093e15a91046e14b7801138a' }, this.label ? (hAsync("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-popover", onClick: () => (this.showPopover = !this.showPopover) })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-popover", onClick: () => (this.showPopover = !this.showPopover) })), this.showPopover && (hAsync("sd-tooltip-portal", { key: '9bf784d6946cd5fd8b6ecfd3a6e9d976f44a2a90', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: this.placement }, hAsync("div", { key: '409afdeee8e96ce019594cd2aaa16034e4339a35', class: {
6792
6801
  'sd-popover-menu': true,
6793
6802
  [`sd-popover-menu--${this.placement}`]: true,
6794
6803
  [this.menuClass]: !!this.menuClass,
6795
- } }, hAsync("i", { key: '344b1aace077490124078499dbcc08c3bc9af92d', class: `sd-popover-menu__arrow sd-popover-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: 'be3b82a87f9292d44177927330e0b7d7b1ba2c0f' })), hAsync("div", { key: 'ac1223f53514958384fa1b3e7f3bad84933436cd', class: "sd-popover-menu__content" }, this.menuTitle && hAsync("div", { key: 'a191a3fa975ff94711a6bbc7ab2fdc4bea0d5f9c', class: "sd-popover-menu__title" }, this.menuTitle), this.messages.length > 0 && (hAsync("div", { key: 'a830419f35e0cdf43cf4059d1a815d4b169a4625', class: "sd-popover-menu__messages" }, this.messages.map(message => (hAsync("div", null, message))))), this.buttons.length > 0 && (hAsync("div", { key: 'd66775a5ec5899caa040e0ae53a1bce0eea3c167', class: `sd-popover-menu__buttons sd-popover-menu__buttons--${this.buttons.length}` }, this.buttons.map(button => (hAsync("sd-button", { ...button })))))), this.useClose && (hAsync("button", { key: '19f1f43ec6908e51f3f5b07268f0c59c3f1db1fe', class: "sd-popover-menu__close-button", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: 'b658485e35e837c50886da6cf911d1b9d8f81ff1', name: "close", size: "12", color: "#AAAAAA" }))))))));
6804
+ } }, hAsync("i", { key: '2ff3545fb7b13c11d4f128616a68f0a230087447', class: `sd-popover-menu__arrow sd-popover-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: '3da84311b01c95d92b91327ce66e49e1d0243b37' })), hAsync("div", { key: 'aa861155d8c9194dffafd8b834e58108995f33ed', class: "sd-popover-menu__content" }, this.menuTitle && hAsync("div", { key: '534c0871ff6b909c87eba179be23c7e2fa4ce0e9', class: "sd-popover-menu__title" }, this.menuTitle), this.messages.length > 0 && (hAsync("div", { key: 'a601e50189ca95fa007e68edf64c1a0aa1e990d0', class: "sd-popover-menu__messages" }, this.messages.map(message => (hAsync("div", null, message))))), this.buttons.length > 0 && (hAsync("div", { key: '63ee5c3dcdf167e0b35b5ed96a516b91ff007355', class: `sd-popover-menu__buttons sd-popover-menu__buttons--${this.buttons.length}` }, this.buttons.map(button => (hAsync("sd-button", { ...button })))))), this.useClose && (hAsync("button", { key: '6f8f0a6dfd113603105652686b5426e3a0313d4e', class: "sd-popover-menu__close-button", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: '9f1aedb7e6e9e519fa890856ea9c185e393f5f43', name: "close", size: "12", color: "#AAAAAA" }))))))));
6796
6805
  }
6797
6806
  static get watchers() { return {
6798
6807
  "show": ["watchShowHandler"]
@@ -6943,7 +6952,7 @@ class SdPortal {
6943
6952
  this.sdClose.emit();
6944
6953
  }
6945
6954
  render() {
6946
- return hAsync("slot", { key: 'b24b7f844564365e887dc8cee8b98e26a94961cd' });
6955
+ return hAsync("slot", { key: '2f6a1908864a2b5bbe86127fbf41b6b44a599666' });
6947
6956
  }
6948
6957
  static get cmpMeta() { return {
6949
6958
  "$flags$": 772,
@@ -6980,10 +6989,10 @@ class SdProgress {
6980
6989
  error: '#FB4444',
6981
6990
  };
6982
6991
  render() {
6983
- return (hAsync(Host, { key: 'e5a1be5c3343e0645db107b076fac36d1a935ca7', style: {
6992
+ return (hAsync(Host, { key: 'fa4a0bdd1e76231bc3ff349c5e94a18f1d747bf4', style: {
6984
6993
  '--progress-color': this.statusColor[this.status],
6985
6994
  '--progress-percentage': `${this.percentage}%`,
6986
- } }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && hAsync("div", { key: 'd2676df17ad3474f88d3c0972802a7b373b5652e', class: "sd-progress__label" }, this.label)));
6995
+ } }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && hAsync("div", { key: '2c356835e29ec88765f0be0efbe9ee416f1e27ea', class: "sd-progress__label" }, this.label)));
6987
6996
  }
6988
6997
  renderBarProgress() {
6989
6998
  return (hAsync("div", { class: `sd-progress__bar sd-progress__bar--${this.status}` }, hAsync("div", { class: ['sd-progress__bar__percent', this.percentage < 100 ? 'proceed' : ''].join(' ') }), hAsync("div", { class: "sd-progress__bar__indicator sd-progress__bar__indicator--left" }, this.percentage, "%"), hAsync("div", { class: "sd-progress__bar__indicator sd-progress__bar__indicator--right" }, this.percentage, "%")));
@@ -7611,11 +7620,11 @@ class SdSelectMultiple extends BaseDropdownEvent {
7611
7620
  '--select-width': this.width || '200px',
7612
7621
  '--select-dropdown-height': this.dropdownHeight || '260px',
7613
7622
  };
7614
- return (hAsync(Host, { key: '0e488c3906b12e73abc6e6216e14b2b4e6a130c8', style: style }, hAsync("div", { key: '714a95f446631269a19e44d098ef0dc81c7c6fd5', class: {
7623
+ return (hAsync(Host, { key: '71bf4aa9bb298ddd42fa2df53ffcaa75acd17811', style: style }, hAsync("div", { key: '9f0970babd424f097b82acab1e93d4922cd5a36e', class: {
7615
7624
  'sd-select-multiple': true,
7616
7625
  'sd-select-multiple--open': this.isOpen,
7617
7626
  'sd-select-multiple--disabled': this.disabled,
7618
- }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: '08912b8586c926107cbcaed28b73bd6eb94d47d9', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
7627
+ }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: '57d243584fdf590139ec3436c473d54daa477e36', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
7619
7628
  }
7620
7629
  renderLabel(label) {
7621
7630
  if (!label)
@@ -8145,7 +8154,7 @@ class SdSelectOption {
8145
8154
  }
8146
8155
  };
8147
8156
  render() {
8148
- return (hAsync(Host, { key: 'f1874b4e539573ddaa48cb2bdc9d13ea96bf350e' }, hAsync("div", { key: '5a3bbd66f6623a1c02d5e1295bb974e82883b8a1', class: {
8157
+ return (hAsync(Host, { key: '70eafe63e44409063337d0a43846c3be869086df' }, hAsync("div", { key: '21cafb06d87968387f9b9ec91fdd09643cded1ca', class: {
8149
8158
  'sd-select__option': true,
8150
8159
  'sd-select__option--selected': this.isSelected,
8151
8160
  'sd-select__option--disabled': !!this.option.disabled,
@@ -8231,7 +8240,7 @@ class SdSelectOptionGroup {
8231
8240
  }
8232
8241
  };
8233
8242
  render() {
8234
- return (hAsync("div", { key: 'e96411f172ed4ed5359fef2a124bf49df88e10ec', class: {
8243
+ return (hAsync("div", { key: '1fb3028e6869ec0d77878dd577ad9f4f711edc38', class: {
8235
8244
  'sd-select__option-group': true,
8236
8245
  'sd-select__option-group--selected': !!this.isSelected,
8237
8246
  'sd-select__option-group--disabled': !!this.option.disabled,
@@ -8240,10 +8249,10 @@ class SdSelectOptionGroup {
8240
8249
  'sd-select__option-group--group': this.option.type === 'group',
8241
8250
  'sd-select__option-group--subgroup': this.option.type === 'subgroup',
8242
8251
  'sd-select__option-group--item': this.option.type === 'item',
8243
- }, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, hAsync("div", { key: 'fa9464cac1ee58b46b983f17882eeb847e3dc9b7', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (hAsync("sd-checkbox", { key: 'f9a7ab839d566671d6ee9e7164424d307a81f2d6', checked: this.isSelected, disabled: this.option.disabled, onClick: e => {
8252
+ }, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, hAsync("div", { key: '5d2f2564587c376d4708921e5eb68bc1d41039ab', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (hAsync("sd-checkbox", { key: '0d4e839a0a091d47f0a07f8a248fbc71cf2b67a3', checked: this.isSelected, disabled: this.option.disabled, onClick: e => {
8244
8253
  e.preventDefault();
8245
8254
  this.handleClick(this.option, this.isSelected, e);
8246
- } })), hAsync("span", { key: 'ee27fb5e2d14acf898c7ce1e22b8cbffe59cec31', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (hAsync("span", { key: 'aaf9552da0a665ac34848ab5649d5993133394c4', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
8255
+ } })), hAsync("span", { key: '6ff97d5a3c84e97a4712d98f04b4cf5a5fef1895', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (hAsync("span", { key: '861bc3ff0ac64af5482783e7412f1ec706fe90e4', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
8247
8256
  }
8248
8257
  static get style() { return sdSelectOptionGroupCss; }
8249
8258
  static get cmpMeta() { return {
@@ -8536,7 +8545,7 @@ let SdTable$1 = class SdTable {
8536
8545
  }; }
8537
8546
  };
8538
8547
 
8539
- const sdTableBackupCss = ".sd-table__wrapper .sd-table__container .sd-table__middle{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:horizontal{height:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:vertical{width:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-track{background-color:transparent}.sd-table__wrapper{height:var(--table-height, auto);width:var(--table-width, 100%);color:#222222}.sd-table__wrapper .sd-table__container{width:100%;height:var(--table-container-height, auto);position:relative;border:1px solid #e1e1e1;border-radius:8px;font-size:12px;overflow:hidden;background:#ffffff}.sd-table__wrapper .sd-table__container .sd-table__middle{overflow:auto;will-change:scroll-position}.sd-table__wrapper .sd-table__container .sd-table__middle--scrollable{height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--loading{overflow:hidden !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll{position:relative;height:var(--total-virtual-height, --table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr:not([aria-hidden=true]){width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]{padding:0;border:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]:not(.sd-table__virtual-row-spacer) td{display:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected{width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-header thead{position:sticky;top:0;z-index:120}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-right{position:sticky;background-color:#f5faff;z-index:110 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-right{position:sticky;background-color:white;z-index:100 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-left{left:var(--sticky-left-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-right{right:var(--sticky-right-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-cell{position:sticky;z-index:102;background-color:#f5faff}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-cell{position:sticky;z-index:101;background-color:white}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge:after{content:\"\";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge:after{content:\"\";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead{opacity:0.4}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead tr th.sd-th{border-bottom:1px solid rgba(225, 225, 225, 0.4) !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-td,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-th,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table .sd-th__content--label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead{height:36px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr{width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th{background:#f5faff;height:36px;padding:0 16px;font-weight:500;vertical-align:middle;border-bottom:1px solid #e1e1e1;-webkit-user-select:none;user-select:none;position:relative}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:4px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--left{justify-content:flex-start}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--center{justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--right{justify-content:flex-end}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:16px;cursor:col-resize;z-index:3;border-left:1px solid #cccccc;border-right:1px solid #cccccc}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody .sd-table__loading{position:absolute;top:0;left:0;width:var(--table-width, 100%);height:var(--table-container-height, 100%);min-height:var(--table-container-height, 100%);background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td{height:44px;padding:0 16px;border-bottom:1px solid #e1e1e1;background:white;vertical-align:middle}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--left{text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--center{text-align:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--right{text-align:right}.sd-table__wrapper .sd-table__container .sd-table__bottom{background:white;text-align:center}.sd-table__wrapper .sd-table__container .sd-table__bottom .sd-table__no-data{padding-top:15%;color:#888888}.sd-table__wrapper .sd-table__pagination{position:relative;background:#f9f9f9;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid #e1e1e1;border-top:none;border-radius:8px}.sd-table__wrapper .sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.sd-table__wrapper .sd-table__virtual-spacer,.sd-table__wrapper .sd-table__virtual-row-spacer{padding:0}.sd-table__wrapper .sd-table__virtual-spacer td,.sd-table__wrapper .sd-table__virtual-row-spacer td{padding:0;border:none}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton{width:100%;height:100%;background-image:repeating-linear-gradient(0deg, rgba(246, 246, 246, 0.3) 0px, rgba(225, 225, 225, 0.5) calc(var(--row-height, 44px) / 2), rgba(246, 246, 246, 0.3) var(--row-height, 44px));background-size:100% 200%;animation:skeleton-loading 1.5s ease-in-out infinite;position:relative}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton::before,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton::before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--row-height, 44px) - 1px), #e1e1e1 calc(var(--row-height, 44px) - 1px), #e1e1e1 var(--row-height, 44px));pointer-events:none}.sd-table__wrapper .sd-table__skeleton-cell{width:100%;height:20px;background:linear-gradient(90deg, rgba(246, 246, 246, 0.3) 0%, rgba(225, 225, 225, 0.5) 50%, rgba(246, 246, 246, 0.3) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:0% 0%}50%{background-position:100% 100%}100%{background-position:0% 0%}}";
8548
+ const sdTableBackupCss = ".sd-table__wrapper .sd-table__container .sd-table__middle{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:horizontal{height:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:vertical{width:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-track{background-color:transparent}.sd-table__wrapper{height:var(--table-height, auto);width:var(--table-width, 100%);color:#222222}.sd-table__wrapper .sd-table__container{width:100%;height:var(--table-container-height, auto);position:relative;border:1px solid #e1e1e1;border-radius:8px;font-size:12px;overflow:hidden;background:#ffffff}.sd-table__wrapper .sd-table__container .sd-table__middle{overflow:auto;will-change:scroll-position;min-height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--scrollable{height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--loading{overflow:hidden !important;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle--loading__spinner{position:absolute;top:0;left:0;width:var(--table-width, 100%);height:var(--table-container-height, 100%);min-height:var(--table-container-height, 100%);background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll{position:relative;height:var(--total-virtual-height, --table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr:not([aria-hidden=true]){width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]{padding:0;border:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]:not(.sd-table__virtual-row-spacer) td{display:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected{width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-header thead{position:sticky;top:0;z-index:120}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-right{position:sticky;background-color:#f5faff;z-index:110 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-right{position:sticky;background-color:white;z-index:100 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-left{left:var(--sticky-left-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-right{right:var(--sticky-right-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-cell{position:sticky;z-index:102;background-color:#f5faff}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-cell{position:sticky;z-index:101;background-color:white}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge:after{content:\"\";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge:after{content:\"\";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead{opacity:0.4}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead tr th.sd-th{border-bottom:1px solid rgba(225, 225, 225, 0.4) !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-td,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-th,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table .sd-th__content--label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead{height:36px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr{width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th{background:#f5faff;height:36px;padding:0 16px;font-weight:500;vertical-align:middle;border-bottom:1px solid #e1e1e1;-webkit-user-select:none;user-select:none;position:relative}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:4px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--left{justify-content:flex-start}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--center{justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--right{justify-content:flex-end}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:16px;cursor:col-resize;z-index:3;border-left:1px solid #cccccc;border-right:1px solid #cccccc}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td{height:44px;padding:0 16px;border-bottom:1px solid #e1e1e1;background:white;vertical-align:middle}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--left{text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--center{text-align:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--right{text-align:right}.sd-table__wrapper .sd-table__container .sd-table__bottom{background:white;text-align:center}.sd-table__wrapper .sd-table__container .sd-table__bottom .sd-table__no-data{padding-top:15%;color:#888888}.sd-table__wrapper .sd-table__pagination{position:relative;background:#f9f9f9;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid #e1e1e1;border-top:none;border-radius:8px}.sd-table__wrapper .sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.sd-table__wrapper .sd-table__virtual-spacer,.sd-table__wrapper .sd-table__virtual-row-spacer{padding:0 !important}.sd-table__wrapper .sd-table__virtual-spacer td,.sd-table__wrapper .sd-table__virtual-row-spacer td{padding:0 !important;border:none}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton{width:100%;height:100%;background-image:repeating-linear-gradient(0deg, rgba(246, 246, 246, 0.3) 0px, rgba(225, 225, 225, 0.5) calc(var(--row-height, 44px) / 2), rgba(246, 246, 246, 0.3) var(--row-height, 44px));background-size:100% 200%;animation:skeleton-loading 1.5s ease-in-out infinite;position:relative}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton::before,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton::before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--row-height, 44px) - 1px), #e1e1e1 calc(var(--row-height, 44px) - 1px), #e1e1e1 var(--row-height, 44px));pointer-events:none}.sd-table__wrapper .sd-table__skeleton-cell{width:100%;height:20px;background:linear-gradient(90deg, rgba(246, 246, 246, 0.3) 0%, rgba(225, 225, 225, 0.5) 50%, rgba(246, 246, 246, 0.3) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:0% 0%}50%{background-position:100% 100%}100%{background-position:0% 0%}}";
8540
8549
 
8541
8550
  class SdTable {
8542
8551
  constructor(hostRef) {
@@ -8595,6 +8604,7 @@ class SdTable {
8595
8604
  virtualStartColIdx = 0;
8596
8605
  virtualEndColIdx = 0;
8597
8606
  scrollLeftPosition = 0;
8607
+ // 가상 스크롤 Raf(Request Animation Frame) 관리
8598
8608
  scrollRequestAnimationFrame = null;
8599
8609
  scrollContainer = null;
8600
8610
  rafScheduled = false;
@@ -8602,19 +8612,39 @@ class SdTable {
8602
8612
  vertical: false,
8603
8613
  horizontal: false,
8604
8614
  };
8615
+ // 상태 캐시값
8616
+ cachedVisibleColumns = null;
8617
+ lastColumnsRef = null;
8618
+ cachedVirtualRows = null;
8619
+ cachedVirtualIndexKey = '';
8620
+ cachedColumnOrder = null;
8621
+ lastColumnOrderKey = '';
8622
+ // DOM 측정 캐시값
8623
+ cachedContainerHeight = 0;
8624
+ cachedContainerWidth = 0;
8625
+ // 스타일 캐시
8626
+ stickyStyleCache = new Map();
8627
+ // isAllChecked 캐시
8628
+ cachedIsAllChecked;
8629
+ lastSelectionKey = '';
8630
+ onScroll;
8605
8631
  handleColumnsChange(newCols) {
8606
8632
  this.columnWidths = newCols.map(c => parseInt(c.width || '120', 10));
8633
+ this.cleanUpVirtualCache();
8634
+ this.stickyStyleCache.clear();
8607
8635
  if (this.useVirtualScroll.horizontal) {
8608
8636
  this.scheduleUpdate('horizontal');
8609
8637
  }
8610
8638
  }
8611
8639
  handleColumnWidthsChange() {
8640
+ this.stickyStyleCache.clear();
8612
8641
  if (this.useVirtualScroll.horizontal) {
8613
8642
  this.scheduleUpdate('horizontal');
8614
8643
  }
8615
8644
  }
8616
8645
  handleRowsChange(newRows) {
8617
8646
  this.innerRows = [...newRows];
8647
+ this.cleanUpVirtualCache();
8618
8648
  if (this.useVirtualScroll.vertical) {
8619
8649
  this.scheduleUpdate('vertical');
8620
8650
  }
@@ -8622,11 +8652,19 @@ class SdTable {
8622
8652
  handleSelectedChange(newSelected) {
8623
8653
  this.innerSelected = new Set(newSelected);
8624
8654
  }
8655
+ cleanUpVirtualCache() {
8656
+ this.cachedVisibleColumns = null;
8657
+ this.lastColumnsRef = null;
8658
+ this.cachedVirtualRows = null;
8659
+ this.cachedVirtualIndexKey = '';
8660
+ this.cachedColumnOrder = null;
8661
+ this.lastColumnOrderKey = '';
8662
+ }
8625
8663
  handlePaginationChange(newVal) {
8626
8664
  if (newVal?.page && newVal.page !== this.currentPage) {
8627
8665
  this.currentPage = newVal.page;
8628
8666
  if (this.useVirtualScroll.vertical && this.scrollContainer) {
8629
- this.scrollContainer.scrollTop = 0;
8667
+ this.scrollContainer.scrollTo({ top: 0, behavior: 'instant' });
8630
8668
  this.scrollTopPosition = 0;
8631
8669
  this.calculateVisibleRange();
8632
8670
  }
@@ -8641,66 +8679,120 @@ class SdTable {
8641
8679
  }
8642
8680
  }
8643
8681
  componentDidLoad() {
8644
- // SSR 환경 체크
8645
- if (typeof window === 'undefined')
8646
- return;
8647
- const middle = this.el.querySelector('.sd-table__middle');
8648
- if (!middle)
8649
- return;
8650
- this.scrollContainer = middle;
8651
- const onScroll = () => {
8652
- const { scrollLeft, scrollWidth, clientWidth, scrollTop } = middle;
8653
- this.scrolledLeft = scrollLeft > 0;
8654
- this.scrolledRight = scrollLeft + clientWidth < scrollWidth;
8655
- // 실제 변경사항이 있을 때만 RAF 스케줄
8656
- const verticalChanged = this.useVirtualScroll.vertical && this.scrollTopPosition !== scrollTop;
8657
- const horizontalChanged = this.useVirtualScroll.horizontal && this.scrollLeftPosition !== scrollLeft;
8658
- if (verticalChanged || horizontalChanged) {
8659
- if (this.scrollRequestAnimationFrame !== null) {
8660
- cancelAnimationFrame(this.scrollRequestAnimationFrame);
8682
+ readTask(() => {
8683
+ const middle = this.el.querySelector('.sd-table__middle');
8684
+ if (!middle)
8685
+ return;
8686
+ this.onScroll = () => {
8687
+ const scrollLeft = middle.scrollLeft;
8688
+ const scrollWidth = middle.scrollWidth;
8689
+ const clientWidth = middle.clientWidth;
8690
+ const scrollTop = middle.scrollTop;
8691
+ const verticalChanged = this.useVirtualScroll.vertical && this.scrollTopPosition !== scrollTop;
8692
+ const horizontalChanged = this.useVirtualScroll.horizontal && this.scrollLeftPosition !== scrollLeft;
8693
+ const newScrolledLeft = scrollLeft > 0;
8694
+ const newScrolledRight = scrollLeft + clientWidth < scrollWidth;
8695
+ if (this.scrolledLeft !== newScrolledLeft || this.scrolledRight !== newScrolledRight) {
8696
+ this.scrolledLeft = newScrolledLeft;
8697
+ this.scrolledRight = newScrolledRight;
8661
8698
  }
8662
- this.scrollRequestAnimationFrame = requestAnimationFrame(() => {
8663
- if (verticalChanged) {
8664
- this.scrollTopPosition = scrollTop;
8665
- this.calculateVisibleRange();
8666
- }
8667
- if (horizontalChanged) {
8668
- this.scrollLeftPosition = scrollLeft;
8669
- this.calculateVisibleColumnRange();
8699
+ if (verticalChanged || horizontalChanged) {
8700
+ if (this.scrollRequestAnimationFrame !== null) {
8701
+ cancelAnimationFrame(this.scrollRequestAnimationFrame);
8670
8702
  }
8671
- this.scrollRequestAnimationFrame = null;
8672
- });
8673
- }
8703
+ this.scrollRequestAnimationFrame = requestAnimationFrame(() => {
8704
+ if (verticalChanged) {
8705
+ this.scrollTopPosition = scrollTop;
8706
+ this.calculateVisibleRange();
8707
+ }
8708
+ if (horizontalChanged) {
8709
+ this.scrollLeftPosition = scrollLeft;
8710
+ this.calculateVisibleColumnRange();
8711
+ }
8712
+ this.scrollRequestAnimationFrame = null;
8713
+ });
8714
+ }
8715
+ };
8716
+ this.scrollContainer = middle;
8717
+ requestAnimationFrame(() => {
8718
+ if (this.scrollContainer && this.onScroll) {
8719
+ this.cachedContainerHeight = this.scrollContainer.clientHeight;
8720
+ this.cachedContainerWidth = this.scrollContainer.clientWidth;
8721
+ middle.addEventListener('scroll', this.onScroll, { passive: true });
8722
+ this.onScroll();
8723
+ }
8724
+ });
8725
+ });
8726
+ }
8727
+ changePage(page) {
8728
+ if (!this.useInternalPagination) {
8729
+ this.sdPageChange.emit(page);
8730
+ return;
8731
+ }
8732
+ this.currentPage = page;
8733
+ this.sdPageChange.emit(this.currentPage);
8734
+ }
8735
+ changeRowsPerPage(perPage) {
8736
+ const changedRowsPerPage = perPage ? Number(perPage) : 0;
8737
+ if (!this.useInternalPagination) {
8738
+ this.sdRowsPerPageChange.emit(changedRowsPerPage);
8739
+ return;
8740
+ }
8741
+ const newRowsPerPage = Number(perPage || 0);
8742
+ let newLastPage = Math.max(1, Math.ceil(this.innerRows.length / newRowsPerPage));
8743
+ let newCurrentPage = this.currentPage;
8744
+ if (newCurrentPage > newLastPage) {
8745
+ newCurrentPage = newLastPage;
8746
+ }
8747
+ this.pagination = {
8748
+ page: newCurrentPage,
8749
+ rowsPerPage: newRowsPerPage,
8750
+ lastPage: newLastPage,
8674
8751
  };
8675
- middle.addEventListener('scroll', onScroll, { passive: true });
8676
- onScroll();
8752
+ this.currentPage = newCurrentPage;
8753
+ this.sdRowsPerPageChange.emit(changedRowsPerPage);
8677
8754
  }
8678
8755
  disconnectedCallback() {
8756
+ if (this.scrollContainer && this.onScroll) {
8757
+ this.scrollContainer.removeEventListener('scroll', this.onScroll);
8758
+ }
8679
8759
  if (this.scrollRequestAnimationFrame !== null) {
8680
8760
  cancelAnimationFrame(this.scrollRequestAnimationFrame);
8681
8761
  }
8682
8762
  }
8683
8763
  // ----- Derived getters -----
8684
8764
  get visibleColumns() {
8685
- return this.columns.filter(col => col.visible !== false);
8765
+ if (this.cachedVisibleColumns && this.lastColumnsRef === this.columns) {
8766
+ return this.cachedVisibleColumns;
8767
+ }
8768
+ this.lastColumnsRef = this.columns;
8769
+ this.cachedVisibleColumns = this.columns.filter(col => col.visible !== false);
8770
+ return this.cachedVisibleColumns;
8686
8771
  }
8687
8772
  get paginatedRows() {
8688
8773
  if (!this.pagination || !this.useInternalPagination)
8689
8774
  return this.innerRows;
8690
8775
  const { rowsPerPage = this.rows.length } = this.pagination || {};
8691
- const result = this.innerRows.slice((this.currentPage - 1) * rowsPerPage, this.currentPage * rowsPerPage);
8692
- return result;
8776
+ return this.innerRows.slice((this.currentPage - 1) * rowsPerPage, this.currentPage * rowsPerPage);
8693
8777
  }
8694
8778
  get virtualRows() {
8779
+ const newVirtualIndexKey = `${this.virtualStartIndex}-${this.virtualEndIndex}`;
8780
+ if (this.cachedVirtualRows && this.cachedVirtualIndexKey === newVirtualIndexKey) {
8781
+ return this.cachedVirtualRows;
8782
+ }
8783
+ this.cachedVirtualIndexKey = newVirtualIndexKey;
8695
8784
  if (!this.useVirtualScroll.vertical) {
8696
- return this.paginatedRows.map((row, idx) => ({ row, actualIndex: idx }));
8785
+ this.cachedVirtualRows = this.paginatedRows.map((row, idx) => ({ row, actualIndex: idx }));
8697
8786
  }
8698
- return this.paginatedRows
8699
- .slice(this.virtualStartIndex, this.virtualEndIndex + 1)
8700
- .map((row, relativeIdx) => ({
8701
- row,
8702
- actualIndex: this.virtualStartIndex + relativeIdx,
8703
- }));
8787
+ else {
8788
+ this.cachedVirtualRows = this.paginatedRows
8789
+ .slice(this.virtualStartIndex, this.virtualEndIndex + 1)
8790
+ .map((row, relativeIdx) => ({
8791
+ row,
8792
+ actualIndex: this.virtualStartIndex + relativeIdx,
8793
+ }));
8794
+ }
8795
+ return this.cachedVirtualRows;
8704
8796
  }
8705
8797
  get topSpacerHeight() {
8706
8798
  if (!this.useVirtualScroll.vertical || this.virtualStartIndex === 0)
@@ -8773,6 +8865,7 @@ class SdTable {
8773
8865
  if (newSelected.length === selectedArray.length)
8774
8866
  return;
8775
8867
  this.innerSelected = new Set(newSelected);
8868
+ this.cachedIsAllChecked = undefined;
8776
8869
  this.sdSelectChange.emit(Array.from(this.innerSelected));
8777
8870
  }
8778
8871
  toggleSelectAll(checked) {
@@ -8784,16 +8877,29 @@ class SdTable {
8784
8877
  const currentPageKeys = this.paginatedRows.map(r => r[this.rowKey]);
8785
8878
  this.innerSelected = new Set([...this.innerSelected].filter(r => !currentPageKeys.includes(r[this.rowKey])));
8786
8879
  }
8880
+ this.cachedIsAllChecked = undefined;
8787
8881
  this.sdSelectChange.emit(Array.from(this.innerSelected));
8788
8882
  }
8789
8883
  get isAllChecked() {
8884
+ const selectionKey = `${this.paginatedRows.length}-${this.innerSelected.size}`;
8885
+ if (this.cachedIsAllChecked !== undefined && this.lastSelectionKey === selectionKey) {
8886
+ return this.cachedIsAllChecked;
8887
+ }
8790
8888
  const total = this.paginatedRows.length;
8791
8889
  const selectedCount = this.paginatedRows.filter(row => Array.from(this.innerSelected).some(selectedRow => selectedRow[this.rowKey] === row[this.rowKey])).length;
8792
- if (selectedCount === 0)
8793
- return false; // 아무것도 안 선택됨
8794
- if (selectedCount === total)
8795
- return true; // 전부 선택됨
8796
- return null; // 일부만 선택됨
8890
+ let result;
8891
+ if (selectedCount === 0) {
8892
+ result = false; // 아무것도 안 선택됨
8893
+ }
8894
+ else if (selectedCount === total) {
8895
+ result = true; // 전부 선택됨
8896
+ }
8897
+ else {
8898
+ result = null; // 일부만 선택됨
8899
+ }
8900
+ this.cachedIsAllChecked = result;
8901
+ this.lastSelectionKey = selectionKey;
8902
+ return result;
8797
8903
  }
8798
8904
  // RAF 통합 관리
8799
8905
  scheduleUpdate(type) {
@@ -8819,13 +8925,22 @@ class SdTable {
8819
8925
  return;
8820
8926
  }
8821
8927
  const scrollTop = this.scrollTopPosition;
8822
- const containerHeight = this.scrollContainer?.clientHeight || 0;
8928
+ let containerHeight = this.cachedContainerHeight;
8929
+ if (containerHeight === 0 && this.scrollContainer) {
8930
+ containerHeight = this.scrollContainer.clientHeight;
8931
+ this.cachedContainerHeight = containerHeight;
8932
+ }
8933
+ const bufferSize = this.virtualBufferSize.vertical || 5;
8823
8934
  const startIndex = Math.floor(scrollTop / this.virtualRowHeight);
8824
8935
  const visibleCount = Math.ceil(containerHeight / this.virtualRowHeight);
8825
- const endIndex = startIndex + visibleCount;
8826
- const bufferSize = this.virtualBufferSize.vertical || 5;
8827
- this.virtualStartIndex = Math.max(0, startIndex - bufferSize);
8828
- this.virtualEndIndex = Math.min(this.paginatedRows.length - 1, endIndex + bufferSize);
8936
+ const endIndex = startIndex + visibleCount - 1;
8937
+ const newStartIndex = Math.max(0, startIndex - bufferSize);
8938
+ const newEndIndex = Math.min(this.paginatedRows.length - 1, endIndex + bufferSize);
8939
+ // 실제로 변경된 경우에만 상태 업데이트
8940
+ if (this.virtualStartIndex !== newStartIndex || this.virtualEndIndex !== newEndIndex) {
8941
+ this.virtualStartIndex = newStartIndex;
8942
+ this.virtualEndIndex = newEndIndex;
8943
+ }
8829
8944
  }
8830
8945
  // 가로 가상 스크롤 렌더링 계산
8831
8946
  calculateVisibleColumnRange() {
@@ -8835,7 +8950,12 @@ class SdTable {
8835
8950
  return;
8836
8951
  }
8837
8952
  const scrollLeft = this.scrollLeftPosition;
8838
- const containerWidth = this.scrollContainer?.clientWidth || 0;
8953
+ // 캐시된 사용, 없으면 측정 후 캐시
8954
+ let containerWidth = this.cachedContainerWidth;
8955
+ if (containerWidth === 0 && this.scrollContainer) {
8956
+ containerWidth = this.scrollContainer.clientWidth;
8957
+ this.cachedContainerWidth = containerWidth;
8958
+ }
8839
8959
  const stickyLeftCount = this.stickyColumn.left || 0;
8840
8960
  const stickyRightCount = this.stickyColumn.right || 0;
8841
8961
  // 가상 스크롤 컬럼 - sticky column 제외
@@ -8875,22 +8995,34 @@ class SdTable {
8875
8995
  }
8876
8996
  }
8877
8997
  const bufferSize = this.virtualBufferSize.horizontal || 5;
8878
- this.virtualStartColIdx = Math.max(0, startIdx - bufferSize);
8879
- this.virtualEndColIdx = Math.min(virtualColumns.length - 1, endIdx + bufferSize);
8998
+ const newStartColIdx = Math.max(0, startIdx - bufferSize);
8999
+ const newEndColIdx = Math.min(virtualColumns.length - 1, endIdx + bufferSize);
9000
+ // 실제로 변경된 경우에만 상태 업데이트
9001
+ if (this.virtualStartColIdx !== newStartColIdx || this.virtualEndColIdx !== newEndColIdx) {
9002
+ this.virtualStartColIdx = newStartColIdx;
9003
+ this.virtualEndColIdx = newEndColIdx;
9004
+ }
8880
9005
  }
8881
9006
  // ----- Helpers -----
8882
9007
  getStickyStyle(colIdx) {
9008
+ // 캐시된 스타일이 있으면 반환
9009
+ if (this.stickyStyleCache.has(colIdx)) {
9010
+ return this.stickyStyleCache.get(colIdx);
9011
+ }
8883
9012
  const leftOffset = this.columnWidths.slice(0, colIdx).reduce((a, b) => a + b, 0) + (this.selectable ? 52 : 0);
8884
9013
  const rightOffset = this.columnWidths
8885
9014
  .filter((_, i) => i >= this.visibleColumns.length - (this.stickyColumn.right || 0) && i > colIdx)
8886
9015
  .reduce((a, b) => a + b, 0);
8887
- return {
9016
+ const style = {
8888
9017
  '--sticky-left-offset': `${leftOffset}px`,
8889
9018
  '--sticky-right-offset': `${rightOffset}px`,
8890
9019
  'width': `${this.columnWidths[colIdx]}px`,
8891
9020
  'minWidth': `${this.columnWidths[colIdx]}px`,
8892
9021
  'maxWidth': `${this.columnWidths[colIdx]}px`,
8893
9022
  };
9023
+ // 스타일 캐시에 저장
9024
+ this.stickyStyleCache.set(colIdx, style);
9025
+ return style;
8894
9026
  }
8895
9027
  handleResize(index, event) {
8896
9028
  // SSR 환경 체크
@@ -8920,6 +9052,10 @@ class SdTable {
8920
9052
  return format ? format(value, row) : value;
8921
9053
  }
8922
9054
  getColumnRenderedInOrder() {
9055
+ const orderKey = `${this.visibleColumns.length}-${this.virtualStartColIdx}-${this.virtualEndColIdx}`;
9056
+ if (this.cachedColumnOrder && this.lastColumnOrderKey === orderKey) {
9057
+ return this.cachedColumnOrder;
9058
+ }
8923
9059
  const stickyLeftCount = this.stickyColumn.left || 0;
8924
9060
  const stickyRightCount = this.stickyColumn.right || 0;
8925
9061
  // Sticky left 컬럼들
@@ -8930,13 +9066,15 @@ class SdTable {
8930
9066
  .slice(stickyLeftCount, this.visibleColumns.length - stickyRightCount)
8931
9067
  .slice(this.virtualStartColIdx, this.virtualEndColIdx + 1)
8932
9068
  : this.visibleColumns.slice(stickyLeftCount, this.visibleColumns.length - stickyRightCount);
8933
- return {
9069
+ this.cachedColumnOrder = {
8934
9070
  stickyLeftCount,
8935
9071
  stickyRightCount,
8936
9072
  stickyLeftCols,
8937
9073
  middleCols,
8938
9074
  stickyRightCols,
8939
9075
  };
9076
+ this.lastColumnOrderKey = orderKey;
9077
+ return this.cachedColumnOrder;
8940
9078
  }
8941
9079
  // ----- Render -----
8942
9080
  renderHead() {
@@ -8974,7 +9112,7 @@ class SdTable {
8974
9112
  }))));
8975
9113
  }
8976
9114
  renderBody() {
8977
- return (hAsync("tbody", { ...(!this.paginatedRows.length && { part: 'tbody-empty' }), class: `sd-table-tbody ${this.useVirtualScroll.vertical ? 'sd-table-tbody--virtual-scroll' : ''}`, style: { '--total-virtual-height': `${this.totalVirtualHeight}px` } }, this.isLoading && (hAsync("div", { class: "sd-table__loading" }, hAsync("sd-loading-spinner", null))), this.useVirtualScroll.vertical && this.topSpacerHeight > 0 && this.renderSpacerRow('top'), this.paginatedRows.length > 0 &&
9115
+ return (hAsync("tbody", { ...(!this.paginatedRows.length && { part: 'tbody-empty' }), class: `sd-table-tbody ${this.useVirtualScroll.vertical ? 'sd-table-tbody--virtual-scroll' : ''}`, style: { '--total-virtual-height': `${this.totalVirtualHeight}px` } }, this.useVirtualScroll.vertical && this.topSpacerHeight > 0 && this.renderSpacerRow('top'), this.paginatedRows.length > 0 &&
8978
9116
  this.virtualRows.map(({ row, actualIndex }) => this.renderRow(row, actualIndex)), this.useVirtualScroll.vertical &&
8979
9117
  this.bottomSpacerHeight > 0 &&
8980
9118
  this.renderSpacerRow('bottom')));
@@ -9044,44 +9182,16 @@ class SdTable {
9044
9182
  }, "aria-hidden": "true" }, hAsync("div", { class: "sd-table__skeleton-cell" })));
9045
9183
  }
9046
9184
  render() {
9047
- return (hAsync(Host, { key: '658ead41c51d9f031c0334d91cad9a06811721b9' }, hAsync("div", { key: 'c98a48d31b16cbd934e4ae47b55bcfeaa5db2520', class: "sd-table__wrapper", style: {
9185
+ return (hAsync(Host, { key: '8c01d8c3b3428d0fccb37e337fd12412c7aee51a' }, hAsync("div", { key: 'be41d64f4b9daaa1440f2a89e253ce487894758e', class: "sd-table__wrapper", style: {
9048
9186
  '--table-width': this.width,
9049
9187
  '--table-height': this.height,
9050
- } }, hAsync("div", { key: '080fc2b81b016c4876cf90502952e49a5e468534', class: "sd-table__container", style: {
9188
+ } }, hAsync("div", { key: '580c4ca69d5374585eeacc756561e5caf2ea6e29', class: "sd-table__container", style: {
9051
9189
  '--table-container-height': `calc(${this.height} - ${this.pagination && this.innerRows.length > 0 ? 48 : 0}px)`,
9052
- } }, hAsync("div", { key: 'd56754a7cd4acc0505bb36d2d8a116a20d19c0e4', class: {
9190
+ } }, hAsync("div", { key: '2832a6e9078923daeefa28512450950abfca0aad', class: {
9053
9191
  'sd-table__middle': true,
9054
9192
  'sd-table__middle--scrollable': this.paginatedRows.length > 0,
9055
9193
  'sd-table__middle--loading': this.isLoading,
9056
- } }, hAsync("table", { key: '39d620db8e2f9ea585f8c73222687f59aaa830e6', part: "table", class: this.sdTableClasses }, this.renderHead(), this.renderBody())), hAsync("div", { key: 'dcd87252620d5fb95deda064e2a7b4e6871c9dc1', class: "sd-table__bottom" }, !this.paginatedRows.length && (hAsync("div", { key: 'd31ea2dbc747385fb7f7a733725e0e34f24f4489', class: "sd-table__no-data" }, hAsync("slot", { key: '8375b5f42dafa7d430ad33226500d2a84b099990', name: "no-data" }, this.noDataLabel))))), this.pagination && this.innerRows.length > 0 && (hAsync("div", { key: '2b231be27d05c5bb52ff1c0ced255f10be449068', class: "sd-table__pagination" }, hAsync("sd-pagination", { key: '45676f7c4c931896c6414fa8beb6a6c23e203e92', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onPageChange: (e) => {
9057
- if (!this.useInternalPagination) {
9058
- this.sdPageChange.emit(e.detail);
9059
- }
9060
- else {
9061
- this.currentPage = e.detail;
9062
- this.sdPageChange.emit(this.currentPage);
9063
- }
9064
- } }), this.useRowsPerPageSelect && (hAsync("sd-select", { key: '3f65639b064a27993dc62a8e4a5dc86b16aec4f8', value: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", onSdChange: (e) => {
9065
- const changedRowsPerPage = e.detail.value ? Number(e.detail.value) : 0;
9066
- if (!this.useInternalPagination) {
9067
- this.sdRowsPerPageChange.emit(changedRowsPerPage);
9068
- }
9069
- else {
9070
- const newRowsPerPage = Number(e.detail.value || 0);
9071
- let newLastPage = Math.max(1, Math.ceil(this.innerRows.length / newRowsPerPage));
9072
- let newCurrentPage = this.currentPage;
9073
- if (newCurrentPage > newLastPage) {
9074
- newCurrentPage = newLastPage;
9075
- }
9076
- this.pagination = {
9077
- page: newCurrentPage,
9078
- rowsPerPage: newRowsPerPage,
9079
- lastPage: newLastPage,
9080
- };
9081
- this.currentPage = newCurrentPage;
9082
- this.sdRowsPerPageChange.emit(changedRowsPerPage);
9083
- }
9084
- } })))))));
9194
+ } }, this.isLoading && (hAsync("div", { key: '696cc35d6d3c58dabf92aa49dbff9a7034a0ed64', class: "sd-table__middle--loading__spinner" }, hAsync("sd-loading-spinner", { key: '8cbd272006b64c4a6e10c87c58313a0792358451' }))), hAsync("table", { key: 'de78dba38361cfebe39f8c3cddb57a1c93861ff6', part: "table", class: this.sdTableClasses }, this.renderHead(), this.renderBody())), hAsync("div", { key: '662407b29c2ea446d96553dd548bec11e8179185', class: "sd-table__bottom" }, !this.paginatedRows.length && (hAsync("div", { key: '3a475142c5da9cc40f92b761923415893a1366fa', class: "sd-table__no-data" }, hAsync("slot", { key: '49e90e85516b6656c7019b4b33a50f6b36d949a8', name: "no-data" }, this.noDataLabel))))), this.pagination && this.innerRows.length > 0 && (hAsync("div", { key: '460a669cb3841fdc7745e4acb774729910890b42', class: "sd-table__pagination" }, hAsync("sd-pagination", { key: '971f5e41f8df09f4455cdf41f969e5f47d2aac99', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (hAsync("sd-select", { key: 'ed37b8efc95ae51bf4c903a5c7c5a068ec9bfcca', value: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", onSdChange: (e) => this.changeRowsPerPage(e.detail.value) })))))));
9085
9195
  }
9086
9196
  static get watchers() { return {
9087
9197
  "columns": ["handleColumnsChange"],
@@ -9179,7 +9289,7 @@ class SdTag {
9179
9289
  }
9180
9290
  render() {
9181
9291
  const tagClasses = this.getTagClasses();
9182
- return (hAsync("span", { key: '674d187602c90a83016377bd8c25bd288aa819ec', class: tagClasses, style: {
9292
+ return (hAsync("span", { key: '982a1d00b05ea1978c001d0898b8d95a57f92ff5', class: tagClasses, style: {
9183
9293
  '--tag-bg-color': this.bgColor,
9184
9294
  '--tag-text-color': this.textColor,
9185
9295
  }, "aria-label": this.label || 'tag' }, this.renderContent()));
@@ -9209,7 +9319,7 @@ class SdTbody {
9209
9319
  registerInstance(this, hostRef);
9210
9320
  }
9211
9321
  render() {
9212
- return (hAsync(Host, { key: 'b94310b0ad1566cf9ccbac3ccdc5fbcdd2e53f8c' }, hAsync("slot", { key: '382fb835aa4516adad374443556084703b8560c3' })));
9322
+ return (hAsync(Host, { key: 'f981fe2f39d8d1f292f018fba5f6f28f6606fc12' }, hAsync("slot", { key: 'ae556a0c16e782d1842fabc1cb54a495b88f1ce5' })));
9213
9323
  }
9214
9324
  static get style() { return sdTbodyCss; }
9215
9325
  static get cmpMeta() { return {
@@ -9233,11 +9343,11 @@ class SdTd {
9233
9343
  tdStyle;
9234
9344
  tdClass;
9235
9345
  render() {
9236
- return (hAsync(Host, { key: '87c947cf0092ac524cdfed0be5f1703685a64db6', role: "cell", class: {
9346
+ return (hAsync(Host, { key: '3fe3f8f4ec5b068bda0edd22ebbc5c973ae75b15', role: "cell", class: {
9237
9347
  'sd-td': true,
9238
9348
  [`sd-td--${this.align}`]: true,
9239
9349
  [this.tdClass || '']: Boolean(this.tdClass),
9240
- }, style: this.tdStyle }, hAsync("slot", { key: '4369629e345d8cc5bb17166d6877dba421522e4d' })));
9350
+ }, style: this.tdStyle }, hAsync("slot", { key: 'f94a99bafb7723389304e01f809b3003deda067c' })));
9241
9351
  }
9242
9352
  static get style() { return sdTdCss; }
9243
9353
  static get cmpMeta() { return {
@@ -9262,7 +9372,7 @@ class SdTh {
9262
9372
  registerInstance(this, hostRef);
9263
9373
  }
9264
9374
  render() {
9265
- return (hAsync(Host, { key: 'cf30b704166adc6d7de5ade8d455d34ecf575199', role: "columnheader" }, hAsync("slot", { key: '7863306b924a749aba5ba55f70b8b3d5c205d133' })));
9375
+ return (hAsync(Host, { key: '59aee067627e3ac7c23ea5d9f9401c19a00203bd', role: "columnheader" }, hAsync("slot", { key: 'ea015f9ebcdccd3e08aab46af4e2a8bcb46e4a3a' })));
9266
9376
  }
9267
9377
  static get style() { return sdThCss; }
9268
9378
  static get cmpMeta() { return {
@@ -9323,20 +9433,20 @@ class SdTooltip {
9323
9433
  : {
9324
9434
  onClick: () => (this.showTooltip = !this.showTooltip),
9325
9435
  };
9326
- return (hAsync(Fragment, { key: 'fc892ba2872491bca673db93fed5c4b724c7141d' }, this.label ? (hAsync("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (hAsync("sd-tooltip-portal", { key: 'd6b8099b49ffc120c05bd797e3eb2c2c9c40238e', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, hAsync("div", { key: '06eca5d091eec639a556472605140bdccf6c4869', class: {
9436
+ return (hAsync(Fragment, { key: 'ca85f7063d836f7a33d893d262aea709e0db1d00' }, this.label ? (hAsync("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (hAsync("sd-tooltip-portal", { key: 'ab8656db09fc630085a684ef124486551e33f910', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, hAsync("div", { key: 'ccd2369218d5b4dcb23280760c584f214beea932', class: {
9327
9437
  'sd-tooltip-menu': true,
9328
9438
  [`sd-tooltip-menu--${this.type}`]: true,
9329
9439
  [`sd-tooltip-menu--${this.placement}`]: true,
9330
9440
  'sd-tooltip-menu--with-close': this.useClose,
9331
9441
  [`bg-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
9332
9442
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].text}`]: true,
9333
- } }, hAsync("i", { key: '38ad3f0461c6578140e9a0f253c1f0cd5343f0bf', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: '58b5d5e25512f191ee652c34815f8ad33a496a31', class: {
9443
+ } }, hAsync("i", { key: '077a1c19e4fa7a54a80dff168950ee0327240724', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: '09d265c0412099b0bc64e6a5297011d7f4e74bb3', class: {
9334
9444
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
9335
- } })), hAsync("div", { key: 'a29c4aa221aa9b833b9b0de101b658f5c5351ec0', class: "sd-tooltip-menu__content", ref: el => {
9445
+ } })), hAsync("div", { key: '13a0d079cae19cf77c55b9aa3b8325dc1d4daf82', class: "sd-tooltip-menu__content", ref: el => {
9336
9446
  if (el && this.slotContent && !el.hasChildNodes()) {
9337
9447
  el.appendChild(this.slotContent.cloneNode(true));
9338
9448
  }
9339
- } }, !this.slotContent && hAsync("span", { key: 'a9e016d086156d522980b99187c9b040ccb232b9' }, this.el.textContent)), this.useClose && (hAsync("div", { key: 'ae54793f18dcb7e759bd4ea2d7570cd56f45eb9a', class: "sd-tooltip-menu__close-button" }, hAsync("button", { key: '1c3dc26d1bba1eaaed42757dae9a38613a86aea8', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: '3b7f9dafaa7f1a3686f123a12acae6b35fd1849d', name: "close", size: "12", color: "#AAAAAA" })))))))));
9449
+ } }, !this.slotContent && hAsync("span", { key: '79315652fc9db9aca0f06ef0f402d3302b909275' }, this.el.textContent)), this.useClose && (hAsync("div", { key: '5ab0323020a5d3f2c13d690a906fde8de9df36c9', class: "sd-tooltip-menu__close-button" }, hAsync("button", { key: 'deed089b5bb820f54471d44ff0c69e69ffcddf22', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: '6c93da0c7f425ad1111b68c508476db74462e2ad', name: "close", size: "12", color: "#AAAAAA" })))))))));
9340
9450
  }
9341
9451
  static get style() { return sdTooltipCss; }
9342
9452
  static get cmpMeta() { return {
@@ -9512,7 +9622,7 @@ class SdTooltipPortal {
9512
9622
  this.sdClose.emit();
9513
9623
  }
9514
9624
  render() {
9515
- return hAsync("slot", { key: 'b8c60526ca9acb16821b1952b526fad452d1d5e7' });
9625
+ return hAsync("slot", { key: '959737d1d7012ea468ab11bf2f1a8444e5274d4e' });
9516
9626
  }
9517
9627
  static get cmpMeta() { return {
9518
9628
  "$flags$": 777,
@@ -9538,7 +9648,7 @@ class SdTr {
9538
9648
  registerInstance(this, hostRef);
9539
9649
  }
9540
9650
  render() {
9541
- return (hAsync(Host, { key: '2cfec32649fa440cb44f83392c439e58dcb24644', role: "row" }, hAsync("slot", { key: '0146af3690a7a6445b65893f86e0b9e5cd1d8a02' })));
9651
+ return (hAsync(Host, { key: '90de593581b21ca801462331e50126899946bf43', role: "row" }, hAsync("slot", { key: '58eb2f9b52a36495afe40899d45bd6d1ba62b5d4' })));
9542
9652
  }
9543
9653
  static get style() { return sdTrCss; }
9544
9654
  static get cmpMeta() { return {