@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.js CHANGED
@@ -3341,6 +3341,15 @@ var registerComponents = (Cstrs) => {
3341
3341
  }
3342
3342
  };
3343
3343
  var win = window;
3344
+ var readTask = (cb) => {
3345
+ nextTick(() => {
3346
+ try {
3347
+ cb();
3348
+ } catch (e) {
3349
+ consoleError(e);
3350
+ }
3351
+ });
3352
+ };
3344
3353
  var writeTask = (cb) => {
3345
3354
  nextTick(() => {
3346
3355
  try {
@@ -3682,7 +3691,7 @@ class SdBadge {
3682
3691
  label = '';
3683
3692
  render() {
3684
3693
  const resolvedColor = resolveColor(this.color);
3685
- 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))));
3694
+ 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))));
3686
3695
  }
3687
3696
  static get style() { return sdBadgeCss; }
3688
3697
  static get cmpMeta() { return {
@@ -3789,7 +3798,7 @@ class SdCard {
3789
3798
  bordered = true;
3790
3799
  class = '';
3791
3800
  render() {
3792
- return (hAsync(Host, { key: 'b39b016a66f0df13d09ff3a1ce453bb5eda23b52' }, hAsync("div", { key: '2a22dcc5ede4067ecbb2bbbe985d95ffaee3a3a6', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.class}` }, hAsync("slot", { key: 'f73cae0097be43bcd666ade2db27c585090eca75' }))));
3801
+ return (hAsync(Host, { key: 'e9653557b36889a75002c32bde005c7b480b2f4b' }, hAsync("div", { key: 'e34f53b49bdc412eaf82dbe21918cd6599d1d2c6', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.class}` }, hAsync("slot", { key: 'b5d06b44a1a960fe12424f43a39647a4646610d6' }))));
3793
3802
  }
3794
3803
  static get style() { return sdCardCss; }
3795
3804
  static get cmpMeta() { return {
@@ -4100,7 +4109,7 @@ class SdDatePicker {
4100
4109
  this.isOpen = false;
4101
4110
  };
4102
4111
  render() {
4103
- 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" }, [
4112
+ 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" }, [
4104
4113
  ...this.calendar.prevMonthDays,
4105
4114
  ...this.calendar.days,
4106
4115
  ...this.calendar.afterMonthDays,
@@ -4273,9 +4282,9 @@ class SdDateRangePicker {
4273
4282
  this.isOpen = false;
4274
4283
  };
4275
4284
  render() {
4276
- 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: {
4285
+ 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: {
4277
4286
  margin: '0 0 0 8px',
4278
- }, 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
4287
+ }, 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
4279
4288
  ? `${this.prevYear}.${String(this.prevMonth).padStart(2, '0')}`
4280
4289
  : `${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 ===
4281
4290
  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 ===
@@ -4358,11 +4367,11 @@ class SdGuide {
4358
4367
  };
4359
4368
  render() {
4360
4369
  const { name: iconName, size: iconSize, color: iconColor } = GUIDE_ICON[this.type];
4361
- return (hAsync(Host, { key: '8de1cc4591dd1294a374421965322d6a958c9797', style: {
4370
+ return (hAsync(Host, { key: 'd9bf823d000e8181c61798d9656c428c4a3cd6b6', style: {
4362
4371
  '--sd-guide-color': GUIDE_ICON[this.type].color,
4363
- } }, 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,
4372
+ } }, 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,
4364
4373
  // buttonStyle={{ padding: '0px', minHeight: '0px' }}
4365
- 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)))))));
4374
+ 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)))))));
4366
4375
  }
4367
4376
  // 현재 2depth까지만 스타일 적용
4368
4377
  renderListItem(message, depth = 0) {
@@ -6408,7 +6417,7 @@ class SdIcon {
6408
6417
  }
6409
6418
  render() {
6410
6419
  const IconComponent = Icons[this.name]?.[this.size];
6411
- return (hAsync("i", { key: '738453a8bc8d1b9bb67fbaaffb7de203c2982c30', class: this.getIconClasses(), style: this.iconStyle }, hAsync(IconComponent, { key: '2f970609756be608b660a522949dd79cca64fcc8', color: this.resolvedColor })));
6420
+ return (hAsync("i", { key: '856cad8bb2373b0d86734443144f79770c0715ec', class: this.getIconClasses(), style: this.iconStyle }, hAsync(IconComponent, { key: 'd2a06ebbda1317cb72fec996b3bf3008ba171070', color: this.resolvedColor })));
6412
6421
  }
6413
6422
  static get style() { return sdIconCss; }
6414
6423
  static get cmpMeta() { return {
@@ -6528,11 +6537,11 @@ class SdInput {
6528
6537
  '--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
6529
6538
  }
6530
6539
  : {};
6531
- return (hAsync(Host, { key: '87a102220530a2e06620619967f1925f193b4794', style: inputWidth }, this.label && hAsync("div", { key: 'dec1ef5b27dadc7b2c6c0e9f5dab978b338b5a45', class: "sd-input__label" }, this.label), hAsync("label", { key: '72ba8b8b0019fd1bfc222207df4b42735457873d', class: {
6540
+ return (hAsync(Host, { key: '0fc9bec4559137ede7daa7f2da5df00595991d5a', style: inputWidth }, this.label && hAsync("div", { key: '3fd4e7d08aca431d7743ec4249a221c77f2fefd1', class: "sd-input__label" }, this.label), hAsync("label", { key: 'bc80c41ffcb1312261b1139dcd0c390db32932df', class: {
6532
6541
  'sd-input': true,
6533
6542
  [this.getInputStatus()]: true,
6534
6543
  'sd-input--barcode': !!this.barcode,
6535
- }, 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: () => {
6544
+ }, 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: () => {
6536
6545
  this.internalValue = '';
6537
6546
  this.sdChange?.emit(this.internalValue);
6538
6547
  this.sdInput?.emit(this.internalValue);
@@ -6579,7 +6588,7 @@ class SdLoadingSpinner {
6579
6588
  registerInstance(this, hostRef);
6580
6589
  }
6581
6590
  render() {
6582
- 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" }))));
6591
+ 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" }))));
6583
6592
  }
6584
6593
  static get style() { return sdLoadingSpinnerCss; }
6585
6594
  static get cmpMeta() { return {
@@ -6731,12 +6740,12 @@ class SdPagination {
6731
6740
  }
6732
6741
  }
6733
6742
  render() {
6734
- 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: {
6743
+ 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: {
6735
6744
  'pagination-btn': true,
6736
6745
  'pagination-btn--selected': this.currentPage === n,
6737
6746
  }, disabled: this.currentPage === n, style: {
6738
6747
  '--pagination-btn-width': `${this.buttonWidth}px`,
6739
- }, onClick: () => this.handlePageChange(n) }, n)))), hAsync("div", { key: '9c145c18eacc2ab0115d162cbb50e5ad3ea62c80', class: "append-btns" }, this.renderNextButtons())));
6748
+ }, onClick: () => this.handlePageChange(n) }, n)))), hAsync("div", { key: '0ff537ba6e5985be1e055f5b9eab5dd86dd11624', class: "append-btns" }, this.renderNextButtons())));
6740
6749
  }
6741
6750
  static get style() { return sdPaginationCss; }
6742
6751
  static get cmpMeta() { return {
@@ -6790,11 +6799,11 @@ class SdPopover {
6790
6799
  this.showPopover = false;
6791
6800
  };
6792
6801
  render() {
6793
- 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: {
6802
+ 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: {
6794
6803
  'sd-popover-menu': true,
6795
6804
  [`sd-popover-menu--${this.placement}`]: true,
6796
6805
  [this.menuClass]: !!this.menuClass,
6797
- } }, 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" }))))))));
6806
+ } }, 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" }))))))));
6798
6807
  }
6799
6808
  static get watchers() { return {
6800
6809
  "show": ["watchShowHandler"]
@@ -6945,7 +6954,7 @@ class SdPortal {
6945
6954
  this.sdClose.emit();
6946
6955
  }
6947
6956
  render() {
6948
- return hAsync("slot", { key: 'b24b7f844564365e887dc8cee8b98e26a94961cd' });
6957
+ return hAsync("slot", { key: '2f6a1908864a2b5bbe86127fbf41b6b44a599666' });
6949
6958
  }
6950
6959
  static get cmpMeta() { return {
6951
6960
  "$flags$": 772,
@@ -6982,10 +6991,10 @@ class SdProgress {
6982
6991
  error: '#FB4444',
6983
6992
  };
6984
6993
  render() {
6985
- return (hAsync(Host, { key: 'e5a1be5c3343e0645db107b076fac36d1a935ca7', style: {
6994
+ return (hAsync(Host, { key: 'fa4a0bdd1e76231bc3ff349c5e94a18f1d747bf4', style: {
6986
6995
  '--progress-color': this.statusColor[this.status],
6987
6996
  '--progress-percentage': `${this.percentage}%`,
6988
- } }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && hAsync("div", { key: 'd2676df17ad3474f88d3c0972802a7b373b5652e', class: "sd-progress__label" }, this.label)));
6997
+ } }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && hAsync("div", { key: '2c356835e29ec88765f0be0efbe9ee416f1e27ea', class: "sd-progress__label" }, this.label)));
6989
6998
  }
6990
6999
  renderBarProgress() {
6991
7000
  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, "%")));
@@ -7613,11 +7622,11 @@ class SdSelectMultiple extends BaseDropdownEvent {
7613
7622
  '--select-width': this.width || '200px',
7614
7623
  '--select-dropdown-height': this.dropdownHeight || '260px',
7615
7624
  };
7616
- return (hAsync(Host, { key: '0e488c3906b12e73abc6e6216e14b2b4e6a130c8', style: style }, hAsync("div", { key: '714a95f446631269a19e44d098ef0dc81c7c6fd5', class: {
7625
+ return (hAsync(Host, { key: '71bf4aa9bb298ddd42fa2df53ffcaa75acd17811', style: style }, hAsync("div", { key: '9f0970babd424f097b82acab1e93d4922cd5a36e', class: {
7617
7626
  'sd-select-multiple': true,
7618
7627
  'sd-select-multiple--open': this.isOpen,
7619
7628
  'sd-select-multiple--disabled': this.disabled,
7620
- }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: '08912b8586c926107cbcaed28b73bd6eb94d47d9', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
7629
+ }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: '57d243584fdf590139ec3436c473d54daa477e36', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
7621
7630
  }
7622
7631
  renderLabel(label) {
7623
7632
  if (!label)
@@ -8147,7 +8156,7 @@ class SdSelectOption {
8147
8156
  }
8148
8157
  };
8149
8158
  render() {
8150
- return (hAsync(Host, { key: 'f1874b4e539573ddaa48cb2bdc9d13ea96bf350e' }, hAsync("div", { key: '5a3bbd66f6623a1c02d5e1295bb974e82883b8a1', class: {
8159
+ return (hAsync(Host, { key: '70eafe63e44409063337d0a43846c3be869086df' }, hAsync("div", { key: '21cafb06d87968387f9b9ec91fdd09643cded1ca', class: {
8151
8160
  'sd-select__option': true,
8152
8161
  'sd-select__option--selected': this.isSelected,
8153
8162
  'sd-select__option--disabled': !!this.option.disabled,
@@ -8233,7 +8242,7 @@ class SdSelectOptionGroup {
8233
8242
  }
8234
8243
  };
8235
8244
  render() {
8236
- return (hAsync("div", { key: 'e96411f172ed4ed5359fef2a124bf49df88e10ec', class: {
8245
+ return (hAsync("div", { key: '1fb3028e6869ec0d77878dd577ad9f4f711edc38', class: {
8237
8246
  'sd-select__option-group': true,
8238
8247
  'sd-select__option-group--selected': !!this.isSelected,
8239
8248
  'sd-select__option-group--disabled': !!this.option.disabled,
@@ -8242,10 +8251,10 @@ class SdSelectOptionGroup {
8242
8251
  'sd-select__option-group--group': this.option.type === 'group',
8243
8252
  'sd-select__option-group--subgroup': this.option.type === 'subgroup',
8244
8253
  'sd-select__option-group--item': this.option.type === 'item',
8245
- }, 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 => {
8254
+ }, 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 => {
8246
8255
  e.preventDefault();
8247
8256
  this.handleClick(this.option, this.isSelected, e);
8248
- } })), 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})`)))));
8257
+ } })), 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})`)))));
8249
8258
  }
8250
8259
  static get style() { return sdSelectOptionGroupCss; }
8251
8260
  static get cmpMeta() { return {
@@ -8538,7 +8547,7 @@ let SdTable$1 = class SdTable {
8538
8547
  }; }
8539
8548
  };
8540
8549
 
8541
- 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%}}";
8550
+ 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%}}";
8542
8551
 
8543
8552
  class SdTable {
8544
8553
  constructor(hostRef) {
@@ -8597,6 +8606,7 @@ class SdTable {
8597
8606
  virtualStartColIdx = 0;
8598
8607
  virtualEndColIdx = 0;
8599
8608
  scrollLeftPosition = 0;
8609
+ // 가상 스크롤 Raf(Request Animation Frame) 관리
8600
8610
  scrollRequestAnimationFrame = null;
8601
8611
  scrollContainer = null;
8602
8612
  rafScheduled = false;
@@ -8604,19 +8614,39 @@ class SdTable {
8604
8614
  vertical: false,
8605
8615
  horizontal: false,
8606
8616
  };
8617
+ // 상태 캐시값
8618
+ cachedVisibleColumns = null;
8619
+ lastColumnsRef = null;
8620
+ cachedVirtualRows = null;
8621
+ cachedVirtualIndexKey = '';
8622
+ cachedColumnOrder = null;
8623
+ lastColumnOrderKey = '';
8624
+ // DOM 측정 캐시값
8625
+ cachedContainerHeight = 0;
8626
+ cachedContainerWidth = 0;
8627
+ // 스타일 캐시
8628
+ stickyStyleCache = new Map();
8629
+ // isAllChecked 캐시
8630
+ cachedIsAllChecked;
8631
+ lastSelectionKey = '';
8632
+ onScroll;
8607
8633
  handleColumnsChange(newCols) {
8608
8634
  this.columnWidths = newCols.map(c => parseInt(c.width || '120', 10));
8635
+ this.cleanUpVirtualCache();
8636
+ this.stickyStyleCache.clear();
8609
8637
  if (this.useVirtualScroll.horizontal) {
8610
8638
  this.scheduleUpdate('horizontal');
8611
8639
  }
8612
8640
  }
8613
8641
  handleColumnWidthsChange() {
8642
+ this.stickyStyleCache.clear();
8614
8643
  if (this.useVirtualScroll.horizontal) {
8615
8644
  this.scheduleUpdate('horizontal');
8616
8645
  }
8617
8646
  }
8618
8647
  handleRowsChange(newRows) {
8619
8648
  this.innerRows = [...newRows];
8649
+ this.cleanUpVirtualCache();
8620
8650
  if (this.useVirtualScroll.vertical) {
8621
8651
  this.scheduleUpdate('vertical');
8622
8652
  }
@@ -8624,11 +8654,19 @@ class SdTable {
8624
8654
  handleSelectedChange(newSelected) {
8625
8655
  this.innerSelected = new Set(newSelected);
8626
8656
  }
8657
+ cleanUpVirtualCache() {
8658
+ this.cachedVisibleColumns = null;
8659
+ this.lastColumnsRef = null;
8660
+ this.cachedVirtualRows = null;
8661
+ this.cachedVirtualIndexKey = '';
8662
+ this.cachedColumnOrder = null;
8663
+ this.lastColumnOrderKey = '';
8664
+ }
8627
8665
  handlePaginationChange(newVal) {
8628
8666
  if (newVal?.page && newVal.page !== this.currentPage) {
8629
8667
  this.currentPage = newVal.page;
8630
8668
  if (this.useVirtualScroll.vertical && this.scrollContainer) {
8631
- this.scrollContainer.scrollTop = 0;
8669
+ this.scrollContainer.scrollTo({ top: 0, behavior: 'instant' });
8632
8670
  this.scrollTopPosition = 0;
8633
8671
  this.calculateVisibleRange();
8634
8672
  }
@@ -8643,66 +8681,120 @@ class SdTable {
8643
8681
  }
8644
8682
  }
8645
8683
  componentDidLoad() {
8646
- // SSR 환경 체크
8647
- if (typeof window === 'undefined')
8648
- return;
8649
- const middle = this.el.querySelector('.sd-table__middle');
8650
- if (!middle)
8651
- return;
8652
- this.scrollContainer = middle;
8653
- const onScroll = () => {
8654
- const { scrollLeft, scrollWidth, clientWidth, scrollTop } = middle;
8655
- this.scrolledLeft = scrollLeft > 0;
8656
- this.scrolledRight = scrollLeft + clientWidth < scrollWidth;
8657
- // 실제 변경사항이 있을 때만 RAF 스케줄
8658
- const verticalChanged = this.useVirtualScroll.vertical && this.scrollTopPosition !== scrollTop;
8659
- const horizontalChanged = this.useVirtualScroll.horizontal && this.scrollLeftPosition !== scrollLeft;
8660
- if (verticalChanged || horizontalChanged) {
8661
- if (this.scrollRequestAnimationFrame !== null) {
8662
- cancelAnimationFrame(this.scrollRequestAnimationFrame);
8684
+ readTask(() => {
8685
+ const middle = this.el.querySelector('.sd-table__middle');
8686
+ if (!middle)
8687
+ return;
8688
+ this.onScroll = () => {
8689
+ const scrollLeft = middle.scrollLeft;
8690
+ const scrollWidth = middle.scrollWidth;
8691
+ const clientWidth = middle.clientWidth;
8692
+ const scrollTop = middle.scrollTop;
8693
+ const verticalChanged = this.useVirtualScroll.vertical && this.scrollTopPosition !== scrollTop;
8694
+ const horizontalChanged = this.useVirtualScroll.horizontal && this.scrollLeftPosition !== scrollLeft;
8695
+ const newScrolledLeft = scrollLeft > 0;
8696
+ const newScrolledRight = scrollLeft + clientWidth < scrollWidth;
8697
+ if (this.scrolledLeft !== newScrolledLeft || this.scrolledRight !== newScrolledRight) {
8698
+ this.scrolledLeft = newScrolledLeft;
8699
+ this.scrolledRight = newScrolledRight;
8663
8700
  }
8664
- this.scrollRequestAnimationFrame = requestAnimationFrame(() => {
8665
- if (verticalChanged) {
8666
- this.scrollTopPosition = scrollTop;
8667
- this.calculateVisibleRange();
8668
- }
8669
- if (horizontalChanged) {
8670
- this.scrollLeftPosition = scrollLeft;
8671
- this.calculateVisibleColumnRange();
8701
+ if (verticalChanged || horizontalChanged) {
8702
+ if (this.scrollRequestAnimationFrame !== null) {
8703
+ cancelAnimationFrame(this.scrollRequestAnimationFrame);
8672
8704
  }
8673
- this.scrollRequestAnimationFrame = null;
8674
- });
8675
- }
8705
+ this.scrollRequestAnimationFrame = requestAnimationFrame(() => {
8706
+ if (verticalChanged) {
8707
+ this.scrollTopPosition = scrollTop;
8708
+ this.calculateVisibleRange();
8709
+ }
8710
+ if (horizontalChanged) {
8711
+ this.scrollLeftPosition = scrollLeft;
8712
+ this.calculateVisibleColumnRange();
8713
+ }
8714
+ this.scrollRequestAnimationFrame = null;
8715
+ });
8716
+ }
8717
+ };
8718
+ this.scrollContainer = middle;
8719
+ requestAnimationFrame(() => {
8720
+ if (this.scrollContainer && this.onScroll) {
8721
+ this.cachedContainerHeight = this.scrollContainer.clientHeight;
8722
+ this.cachedContainerWidth = this.scrollContainer.clientWidth;
8723
+ middle.addEventListener('scroll', this.onScroll, { passive: true });
8724
+ this.onScroll();
8725
+ }
8726
+ });
8727
+ });
8728
+ }
8729
+ changePage(page) {
8730
+ if (!this.useInternalPagination) {
8731
+ this.sdPageChange.emit(page);
8732
+ return;
8733
+ }
8734
+ this.currentPage = page;
8735
+ this.sdPageChange.emit(this.currentPage);
8736
+ }
8737
+ changeRowsPerPage(perPage) {
8738
+ const changedRowsPerPage = perPage ? Number(perPage) : 0;
8739
+ if (!this.useInternalPagination) {
8740
+ this.sdRowsPerPageChange.emit(changedRowsPerPage);
8741
+ return;
8742
+ }
8743
+ const newRowsPerPage = Number(perPage || 0);
8744
+ let newLastPage = Math.max(1, Math.ceil(this.innerRows.length / newRowsPerPage));
8745
+ let newCurrentPage = this.currentPage;
8746
+ if (newCurrentPage > newLastPage) {
8747
+ newCurrentPage = newLastPage;
8748
+ }
8749
+ this.pagination = {
8750
+ page: newCurrentPage,
8751
+ rowsPerPage: newRowsPerPage,
8752
+ lastPage: newLastPage,
8676
8753
  };
8677
- middle.addEventListener('scroll', onScroll, { passive: true });
8678
- onScroll();
8754
+ this.currentPage = newCurrentPage;
8755
+ this.sdRowsPerPageChange.emit(changedRowsPerPage);
8679
8756
  }
8680
8757
  disconnectedCallback() {
8758
+ if (this.scrollContainer && this.onScroll) {
8759
+ this.scrollContainer.removeEventListener('scroll', this.onScroll);
8760
+ }
8681
8761
  if (this.scrollRequestAnimationFrame !== null) {
8682
8762
  cancelAnimationFrame(this.scrollRequestAnimationFrame);
8683
8763
  }
8684
8764
  }
8685
8765
  // ----- Derived getters -----
8686
8766
  get visibleColumns() {
8687
- return this.columns.filter(col => col.visible !== false);
8767
+ if (this.cachedVisibleColumns && this.lastColumnsRef === this.columns) {
8768
+ return this.cachedVisibleColumns;
8769
+ }
8770
+ this.lastColumnsRef = this.columns;
8771
+ this.cachedVisibleColumns = this.columns.filter(col => col.visible !== false);
8772
+ return this.cachedVisibleColumns;
8688
8773
  }
8689
8774
  get paginatedRows() {
8690
8775
  if (!this.pagination || !this.useInternalPagination)
8691
8776
  return this.innerRows;
8692
8777
  const { rowsPerPage = this.rows.length } = this.pagination || {};
8693
- const result = this.innerRows.slice((this.currentPage - 1) * rowsPerPage, this.currentPage * rowsPerPage);
8694
- return result;
8778
+ return this.innerRows.slice((this.currentPage - 1) * rowsPerPage, this.currentPage * rowsPerPage);
8695
8779
  }
8696
8780
  get virtualRows() {
8781
+ const newVirtualIndexKey = `${this.virtualStartIndex}-${this.virtualEndIndex}`;
8782
+ if (this.cachedVirtualRows && this.cachedVirtualIndexKey === newVirtualIndexKey) {
8783
+ return this.cachedVirtualRows;
8784
+ }
8785
+ this.cachedVirtualIndexKey = newVirtualIndexKey;
8697
8786
  if (!this.useVirtualScroll.vertical) {
8698
- return this.paginatedRows.map((row, idx) => ({ row, actualIndex: idx }));
8787
+ this.cachedVirtualRows = this.paginatedRows.map((row, idx) => ({ row, actualIndex: idx }));
8699
8788
  }
8700
- return this.paginatedRows
8701
- .slice(this.virtualStartIndex, this.virtualEndIndex + 1)
8702
- .map((row, relativeIdx) => ({
8703
- row,
8704
- actualIndex: this.virtualStartIndex + relativeIdx,
8705
- }));
8789
+ else {
8790
+ this.cachedVirtualRows = this.paginatedRows
8791
+ .slice(this.virtualStartIndex, this.virtualEndIndex + 1)
8792
+ .map((row, relativeIdx) => ({
8793
+ row,
8794
+ actualIndex: this.virtualStartIndex + relativeIdx,
8795
+ }));
8796
+ }
8797
+ return this.cachedVirtualRows;
8706
8798
  }
8707
8799
  get topSpacerHeight() {
8708
8800
  if (!this.useVirtualScroll.vertical || this.virtualStartIndex === 0)
@@ -8775,6 +8867,7 @@ class SdTable {
8775
8867
  if (newSelected.length === selectedArray.length)
8776
8868
  return;
8777
8869
  this.innerSelected = new Set(newSelected);
8870
+ this.cachedIsAllChecked = undefined;
8778
8871
  this.sdSelectChange.emit(Array.from(this.innerSelected));
8779
8872
  }
8780
8873
  toggleSelectAll(checked) {
@@ -8786,16 +8879,29 @@ class SdTable {
8786
8879
  const currentPageKeys = this.paginatedRows.map(r => r[this.rowKey]);
8787
8880
  this.innerSelected = new Set([...this.innerSelected].filter(r => !currentPageKeys.includes(r[this.rowKey])));
8788
8881
  }
8882
+ this.cachedIsAllChecked = undefined;
8789
8883
  this.sdSelectChange.emit(Array.from(this.innerSelected));
8790
8884
  }
8791
8885
  get isAllChecked() {
8886
+ const selectionKey = `${this.paginatedRows.length}-${this.innerSelected.size}`;
8887
+ if (this.cachedIsAllChecked !== undefined && this.lastSelectionKey === selectionKey) {
8888
+ return this.cachedIsAllChecked;
8889
+ }
8792
8890
  const total = this.paginatedRows.length;
8793
8891
  const selectedCount = this.paginatedRows.filter(row => Array.from(this.innerSelected).some(selectedRow => selectedRow[this.rowKey] === row[this.rowKey])).length;
8794
- if (selectedCount === 0)
8795
- return false; // 아무것도 안 선택됨
8796
- if (selectedCount === total)
8797
- return true; // 전부 선택됨
8798
- return null; // 일부만 선택됨
8892
+ let result;
8893
+ if (selectedCount === 0) {
8894
+ result = false; // 아무것도 안 선택됨
8895
+ }
8896
+ else if (selectedCount === total) {
8897
+ result = true; // 전부 선택됨
8898
+ }
8899
+ else {
8900
+ result = null; // 일부만 선택됨
8901
+ }
8902
+ this.cachedIsAllChecked = result;
8903
+ this.lastSelectionKey = selectionKey;
8904
+ return result;
8799
8905
  }
8800
8906
  // RAF 통합 관리
8801
8907
  scheduleUpdate(type) {
@@ -8821,13 +8927,22 @@ class SdTable {
8821
8927
  return;
8822
8928
  }
8823
8929
  const scrollTop = this.scrollTopPosition;
8824
- const containerHeight = this.scrollContainer?.clientHeight || 0;
8930
+ let containerHeight = this.cachedContainerHeight;
8931
+ if (containerHeight === 0 && this.scrollContainer) {
8932
+ containerHeight = this.scrollContainer.clientHeight;
8933
+ this.cachedContainerHeight = containerHeight;
8934
+ }
8935
+ const bufferSize = this.virtualBufferSize.vertical || 5;
8825
8936
  const startIndex = Math.floor(scrollTop / this.virtualRowHeight);
8826
8937
  const visibleCount = Math.ceil(containerHeight / this.virtualRowHeight);
8827
- const endIndex = startIndex + visibleCount;
8828
- const bufferSize = this.virtualBufferSize.vertical || 5;
8829
- this.virtualStartIndex = Math.max(0, startIndex - bufferSize);
8830
- this.virtualEndIndex = Math.min(this.paginatedRows.length - 1, endIndex + bufferSize);
8938
+ const endIndex = startIndex + visibleCount - 1;
8939
+ const newStartIndex = Math.max(0, startIndex - bufferSize);
8940
+ const newEndIndex = Math.min(this.paginatedRows.length - 1, endIndex + bufferSize);
8941
+ // 실제로 변경된 경우에만 상태 업데이트
8942
+ if (this.virtualStartIndex !== newStartIndex || this.virtualEndIndex !== newEndIndex) {
8943
+ this.virtualStartIndex = newStartIndex;
8944
+ this.virtualEndIndex = newEndIndex;
8945
+ }
8831
8946
  }
8832
8947
  // 가로 가상 스크롤 렌더링 계산
8833
8948
  calculateVisibleColumnRange() {
@@ -8837,7 +8952,12 @@ class SdTable {
8837
8952
  return;
8838
8953
  }
8839
8954
  const scrollLeft = this.scrollLeftPosition;
8840
- const containerWidth = this.scrollContainer?.clientWidth || 0;
8955
+ // 캐시된 사용, 없으면 측정 후 캐시
8956
+ let containerWidth = this.cachedContainerWidth;
8957
+ if (containerWidth === 0 && this.scrollContainer) {
8958
+ containerWidth = this.scrollContainer.clientWidth;
8959
+ this.cachedContainerWidth = containerWidth;
8960
+ }
8841
8961
  const stickyLeftCount = this.stickyColumn.left || 0;
8842
8962
  const stickyRightCount = this.stickyColumn.right || 0;
8843
8963
  // 가상 스크롤 컬럼 - sticky column 제외
@@ -8877,22 +8997,34 @@ class SdTable {
8877
8997
  }
8878
8998
  }
8879
8999
  const bufferSize = this.virtualBufferSize.horizontal || 5;
8880
- this.virtualStartColIdx = Math.max(0, startIdx - bufferSize);
8881
- this.virtualEndColIdx = Math.min(virtualColumns.length - 1, endIdx + bufferSize);
9000
+ const newStartColIdx = Math.max(0, startIdx - bufferSize);
9001
+ const newEndColIdx = Math.min(virtualColumns.length - 1, endIdx + bufferSize);
9002
+ // 실제로 변경된 경우에만 상태 업데이트
9003
+ if (this.virtualStartColIdx !== newStartColIdx || this.virtualEndColIdx !== newEndColIdx) {
9004
+ this.virtualStartColIdx = newStartColIdx;
9005
+ this.virtualEndColIdx = newEndColIdx;
9006
+ }
8882
9007
  }
8883
9008
  // ----- Helpers -----
8884
9009
  getStickyStyle(colIdx) {
9010
+ // 캐시된 스타일이 있으면 반환
9011
+ if (this.stickyStyleCache.has(colIdx)) {
9012
+ return this.stickyStyleCache.get(colIdx);
9013
+ }
8885
9014
  const leftOffset = this.columnWidths.slice(0, colIdx).reduce((a, b) => a + b, 0) + (this.selectable ? 52 : 0);
8886
9015
  const rightOffset = this.columnWidths
8887
9016
  .filter((_, i) => i >= this.visibleColumns.length - (this.stickyColumn.right || 0) && i > colIdx)
8888
9017
  .reduce((a, b) => a + b, 0);
8889
- return {
9018
+ const style = {
8890
9019
  '--sticky-left-offset': `${leftOffset}px`,
8891
9020
  '--sticky-right-offset': `${rightOffset}px`,
8892
9021
  'width': `${this.columnWidths[colIdx]}px`,
8893
9022
  'minWidth': `${this.columnWidths[colIdx]}px`,
8894
9023
  'maxWidth': `${this.columnWidths[colIdx]}px`,
8895
9024
  };
9025
+ // 스타일 캐시에 저장
9026
+ this.stickyStyleCache.set(colIdx, style);
9027
+ return style;
8896
9028
  }
8897
9029
  handleResize(index, event) {
8898
9030
  // SSR 환경 체크
@@ -8922,6 +9054,10 @@ class SdTable {
8922
9054
  return format ? format(value, row) : value;
8923
9055
  }
8924
9056
  getColumnRenderedInOrder() {
9057
+ const orderKey = `${this.visibleColumns.length}-${this.virtualStartColIdx}-${this.virtualEndColIdx}`;
9058
+ if (this.cachedColumnOrder && this.lastColumnOrderKey === orderKey) {
9059
+ return this.cachedColumnOrder;
9060
+ }
8925
9061
  const stickyLeftCount = this.stickyColumn.left || 0;
8926
9062
  const stickyRightCount = this.stickyColumn.right || 0;
8927
9063
  // Sticky left 컬럼들
@@ -8932,13 +9068,15 @@ class SdTable {
8932
9068
  .slice(stickyLeftCount, this.visibleColumns.length - stickyRightCount)
8933
9069
  .slice(this.virtualStartColIdx, this.virtualEndColIdx + 1)
8934
9070
  : this.visibleColumns.slice(stickyLeftCount, this.visibleColumns.length - stickyRightCount);
8935
- return {
9071
+ this.cachedColumnOrder = {
8936
9072
  stickyLeftCount,
8937
9073
  stickyRightCount,
8938
9074
  stickyLeftCols,
8939
9075
  middleCols,
8940
9076
  stickyRightCols,
8941
9077
  };
9078
+ this.lastColumnOrderKey = orderKey;
9079
+ return this.cachedColumnOrder;
8942
9080
  }
8943
9081
  // ----- Render -----
8944
9082
  renderHead() {
@@ -8976,7 +9114,7 @@ class SdTable {
8976
9114
  }))));
8977
9115
  }
8978
9116
  renderBody() {
8979
- 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 &&
9117
+ 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 &&
8980
9118
  this.virtualRows.map(({ row, actualIndex }) => this.renderRow(row, actualIndex)), this.useVirtualScroll.vertical &&
8981
9119
  this.bottomSpacerHeight > 0 &&
8982
9120
  this.renderSpacerRow('bottom')));
@@ -9046,44 +9184,16 @@ class SdTable {
9046
9184
  }, "aria-hidden": "true" }, hAsync("div", { class: "sd-table__skeleton-cell" })));
9047
9185
  }
9048
9186
  render() {
9049
- return (hAsync(Host, { key: '658ead41c51d9f031c0334d91cad9a06811721b9' }, hAsync("div", { key: 'c98a48d31b16cbd934e4ae47b55bcfeaa5db2520', class: "sd-table__wrapper", style: {
9187
+ return (hAsync(Host, { key: '8c01d8c3b3428d0fccb37e337fd12412c7aee51a' }, hAsync("div", { key: 'be41d64f4b9daaa1440f2a89e253ce487894758e', class: "sd-table__wrapper", style: {
9050
9188
  '--table-width': this.width,
9051
9189
  '--table-height': this.height,
9052
- } }, hAsync("div", { key: '080fc2b81b016c4876cf90502952e49a5e468534', class: "sd-table__container", style: {
9190
+ } }, hAsync("div", { key: '580c4ca69d5374585eeacc756561e5caf2ea6e29', class: "sd-table__container", style: {
9053
9191
  '--table-container-height': `calc(${this.height} - ${this.pagination && this.innerRows.length > 0 ? 48 : 0}px)`,
9054
- } }, hAsync("div", { key: 'd56754a7cd4acc0505bb36d2d8a116a20d19c0e4', class: {
9192
+ } }, hAsync("div", { key: '2832a6e9078923daeefa28512450950abfca0aad', class: {
9055
9193
  'sd-table__middle': true,
9056
9194
  'sd-table__middle--scrollable': this.paginatedRows.length > 0,
9057
9195
  'sd-table__middle--loading': this.isLoading,
9058
- } }, 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) => {
9059
- if (!this.useInternalPagination) {
9060
- this.sdPageChange.emit(e.detail);
9061
- }
9062
- else {
9063
- this.currentPage = e.detail;
9064
- this.sdPageChange.emit(this.currentPage);
9065
- }
9066
- } }), this.useRowsPerPageSelect && (hAsync("sd-select", { key: '3f65639b064a27993dc62a8e4a5dc86b16aec4f8', value: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", onSdChange: (e) => {
9067
- const changedRowsPerPage = e.detail.value ? Number(e.detail.value) : 0;
9068
- if (!this.useInternalPagination) {
9069
- this.sdRowsPerPageChange.emit(changedRowsPerPage);
9070
- }
9071
- else {
9072
- const newRowsPerPage = Number(e.detail.value || 0);
9073
- let newLastPage = Math.max(1, Math.ceil(this.innerRows.length / newRowsPerPage));
9074
- let newCurrentPage = this.currentPage;
9075
- if (newCurrentPage > newLastPage) {
9076
- newCurrentPage = newLastPage;
9077
- }
9078
- this.pagination = {
9079
- page: newCurrentPage,
9080
- rowsPerPage: newRowsPerPage,
9081
- lastPage: newLastPage,
9082
- };
9083
- this.currentPage = newCurrentPage;
9084
- this.sdRowsPerPageChange.emit(changedRowsPerPage);
9085
- }
9086
- } })))))));
9196
+ } }, 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) })))))));
9087
9197
  }
9088
9198
  static get watchers() { return {
9089
9199
  "columns": ["handleColumnsChange"],
@@ -9181,7 +9291,7 @@ class SdTag {
9181
9291
  }
9182
9292
  render() {
9183
9293
  const tagClasses = this.getTagClasses();
9184
- return (hAsync("span", { key: '674d187602c90a83016377bd8c25bd288aa819ec', class: tagClasses, style: {
9294
+ return (hAsync("span", { key: '982a1d00b05ea1978c001d0898b8d95a57f92ff5', class: tagClasses, style: {
9185
9295
  '--tag-bg-color': this.bgColor,
9186
9296
  '--tag-text-color': this.textColor,
9187
9297
  }, "aria-label": this.label || 'tag' }, this.renderContent()));
@@ -9211,7 +9321,7 @@ class SdTbody {
9211
9321
  registerInstance(this, hostRef);
9212
9322
  }
9213
9323
  render() {
9214
- return (hAsync(Host, { key: 'b94310b0ad1566cf9ccbac3ccdc5fbcdd2e53f8c' }, hAsync("slot", { key: '382fb835aa4516adad374443556084703b8560c3' })));
9324
+ return (hAsync(Host, { key: 'f981fe2f39d8d1f292f018fba5f6f28f6606fc12' }, hAsync("slot", { key: 'ae556a0c16e782d1842fabc1cb54a495b88f1ce5' })));
9215
9325
  }
9216
9326
  static get style() { return sdTbodyCss; }
9217
9327
  static get cmpMeta() { return {
@@ -9235,11 +9345,11 @@ class SdTd {
9235
9345
  tdStyle;
9236
9346
  tdClass;
9237
9347
  render() {
9238
- return (hAsync(Host, { key: '87c947cf0092ac524cdfed0be5f1703685a64db6', role: "cell", class: {
9348
+ return (hAsync(Host, { key: '3fe3f8f4ec5b068bda0edd22ebbc5c973ae75b15', role: "cell", class: {
9239
9349
  'sd-td': true,
9240
9350
  [`sd-td--${this.align}`]: true,
9241
9351
  [this.tdClass || '']: Boolean(this.tdClass),
9242
- }, style: this.tdStyle }, hAsync("slot", { key: '4369629e345d8cc5bb17166d6877dba421522e4d' })));
9352
+ }, style: this.tdStyle }, hAsync("slot", { key: 'f94a99bafb7723389304e01f809b3003deda067c' })));
9243
9353
  }
9244
9354
  static get style() { return sdTdCss; }
9245
9355
  static get cmpMeta() { return {
@@ -9264,7 +9374,7 @@ class SdTh {
9264
9374
  registerInstance(this, hostRef);
9265
9375
  }
9266
9376
  render() {
9267
- return (hAsync(Host, { key: 'cf30b704166adc6d7de5ade8d455d34ecf575199', role: "columnheader" }, hAsync("slot", { key: '7863306b924a749aba5ba55f70b8b3d5c205d133' })));
9377
+ return (hAsync(Host, { key: '59aee067627e3ac7c23ea5d9f9401c19a00203bd', role: "columnheader" }, hAsync("slot", { key: 'ea015f9ebcdccd3e08aab46af4e2a8bcb46e4a3a' })));
9268
9378
  }
9269
9379
  static get style() { return sdThCss; }
9270
9380
  static get cmpMeta() { return {
@@ -9325,20 +9435,20 @@ class SdTooltip {
9325
9435
  : {
9326
9436
  onClick: () => (this.showTooltip = !this.showTooltip),
9327
9437
  };
9328
- 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: {
9438
+ 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: {
9329
9439
  'sd-tooltip-menu': true,
9330
9440
  [`sd-tooltip-menu--${this.type}`]: true,
9331
9441
  [`sd-tooltip-menu--${this.placement}`]: true,
9332
9442
  'sd-tooltip-menu--with-close': this.useClose,
9333
9443
  [`bg-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
9334
9444
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].text}`]: true,
9335
- } }, hAsync("i", { key: '38ad3f0461c6578140e9a0f253c1f0cd5343f0bf', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: '58b5d5e25512f191ee652c34815f8ad33a496a31', class: {
9445
+ } }, hAsync("i", { key: '077a1c19e4fa7a54a80dff168950ee0327240724', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: '09d265c0412099b0bc64e6a5297011d7f4e74bb3', class: {
9336
9446
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
9337
- } })), hAsync("div", { key: 'a29c4aa221aa9b833b9b0de101b658f5c5351ec0', class: "sd-tooltip-menu__content", ref: el => {
9447
+ } })), hAsync("div", { key: '13a0d079cae19cf77c55b9aa3b8325dc1d4daf82', class: "sd-tooltip-menu__content", ref: el => {
9338
9448
  if (el && this.slotContent && !el.hasChildNodes()) {
9339
9449
  el.appendChild(this.slotContent.cloneNode(true));
9340
9450
  }
9341
- } }, !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" })))))))));
9451
+ } }, !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" })))))))));
9342
9452
  }
9343
9453
  static get style() { return sdTooltipCss; }
9344
9454
  static get cmpMeta() { return {
@@ -9514,7 +9624,7 @@ class SdTooltipPortal {
9514
9624
  this.sdClose.emit();
9515
9625
  }
9516
9626
  render() {
9517
- return hAsync("slot", { key: 'b8c60526ca9acb16821b1952b526fad452d1d5e7' });
9627
+ return hAsync("slot", { key: '959737d1d7012ea468ab11bf2f1a8444e5274d4e' });
9518
9628
  }
9519
9629
  static get cmpMeta() { return {
9520
9630
  "$flags$": 777,
@@ -9540,7 +9650,7 @@ class SdTr {
9540
9650
  registerInstance(this, hostRef);
9541
9651
  }
9542
9652
  render() {
9543
- return (hAsync(Host, { key: '2cfec32649fa440cb44f83392c439e58dcb24644', role: "row" }, hAsync("slot", { key: '0146af3690a7a6445b65893f86e0b9e5cd1d8a02' })));
9653
+ return (hAsync(Host, { key: '90de593581b21ca801462331e50126899946bf43', role: "row" }, hAsync("slot", { key: '58eb2f9b52a36495afe40899d45bd6d1ba62b5d4' })));
9544
9654
  }
9545
9655
  static get style() { return sdTrCss; }
9546
9656
  static get cmpMeta() { return {