@sellmate/design-system 0.0.56 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/dist/cjs/{select-keyboard-navigation-6fO_V4En.js → base-dropdown-event-Dc6AuxR4.js} +26 -26
  2. package/dist/cjs/base-dropdown-event-Dc6AuxR4.js.map +1 -0
  3. package/dist/cjs/design-system.cjs.js +2 -2
  4. package/dist/cjs/{index-B7tkxTye.js → index-D_J8ScR5.js} +3 -3
  5. package/dist/cjs/index-D_J8ScR5.js.map +1 -0
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/{resolveColor-DxvExwgo.js → resolveColor-B7Ku3IGq.js} +4 -5
  8. package/dist/{esm/resolveColor-BYf-ybt2.js.map → cjs/resolveColor-B7Ku3IGq.js.map} +1 -1
  9. package/dist/cjs/sd-badge.cjs.entry.js +4 -4
  10. package/dist/cjs/{sd-button_24.cjs.entry.js → sd-button_6.cjs.entry.js} +292 -2842
  11. package/dist/cjs/sd-card.cjs.entry.js +3 -3
  12. package/dist/cjs/sd-checkbox.cjs.entry.js +89 -0
  13. package/dist/cjs/sd-date-box.cjs.entry.js +10 -10
  14. package/dist/cjs/sd-date-picker.cjs.entry.js +5 -5
  15. package/dist/cjs/sd-date-range-picker.cjs.entry.js +8 -8
  16. package/dist/cjs/sd-field_3.cjs.entry.js +422 -0
  17. package/dist/cjs/sd-file-picker.cjs.entry.js +121 -0
  18. package/dist/cjs/sd-form.cjs.entry.js +74 -0
  19. package/dist/cjs/sd-guide.cjs.entry.js +81 -0
  20. package/dist/cjs/sd-loading-spinner_2.cjs.entry.js +195 -0
  21. package/dist/cjs/sd-modal-card.cjs.entry.js +8 -8
  22. package/dist/cjs/sd-number-input.cjs.entry.js +261 -0
  23. package/dist/cjs/sd-popover.cjs.entry.js +7 -7
  24. package/dist/cjs/sd-progress.cjs.entry.js +3 -3
  25. package/dist/cjs/sd-radio-button-group.cjs.entry.js +8 -21
  26. package/dist/cjs/sd-radio-group.cjs.entry.js +71 -0
  27. package/dist/cjs/sd-select-dropdown_3.cjs.entry.js +266 -0
  28. package/dist/cjs/sd-select-multiple-group.cjs.entry.js +446 -0
  29. package/dist/cjs/sd-select-multiple.cjs.entry.js +74 -152
  30. package/dist/cjs/sd-select-option-group.cjs.entry.js +69 -0
  31. package/dist/cjs/sd-table.cjs.entry.js +515 -85
  32. package/dist/cjs/sd-tabs.cjs.entry.js +66 -0
  33. package/dist/cjs/sd-tag.cjs.entry.js +57 -0
  34. package/dist/cjs/sd-toast-message.cjs.entry.js +61 -0
  35. package/dist/cjs/sd-toggle-button.cjs.entry.js +50 -0
  36. package/dist/cjs/sd-toggle.cjs.entry.js +46 -0
  37. package/dist/cjs/{tooltipArrow-8I9A3AOE.js → tooltipArrow-DU2DB2AD.js} +3 -3
  38. package/dist/cjs/{tooltipArrow-8I9A3AOE.js.map → tooltipArrow-DU2DB2AD.js.map} +1 -1
  39. package/dist/collection/collection-manifest.json +7 -8
  40. package/dist/collection/components/sd-badge/sd-badge.css +8 -9
  41. package/dist/collection/components/sd-badge/sd-badge.js +1 -2
  42. package/dist/collection/components/sd-badge/sd-badge.js.map +1 -1
  43. package/dist/collection/components/sd-button/sd-button.css +2 -1
  44. package/dist/collection/components/sd-button/sd-button.js +2 -34
  45. package/dist/collection/components/sd-button/sd-button.js.map +1 -1
  46. package/dist/collection/components/sd-card/sd-card.css +1 -0
  47. package/dist/collection/components/sd-card/sd-card.js +1 -1
  48. package/dist/collection/components/sd-checkbox/sd-checkbox.js +16 -16
  49. package/dist/collection/components/sd-checkbox/sd-checkbox.js.map +1 -1
  50. package/dist/collection/components/sd-date-box/sd-date-box.css +1 -0
  51. package/dist/collection/components/sd-date-box/sd-date-box.js +8 -8
  52. package/dist/collection/components/sd-date-box/sd-date-box.js.map +1 -1
  53. package/dist/collection/components/sd-date-picker/sd-date-picker.js +5 -5
  54. package/dist/collection/components/sd-date-picker/sd-date-picker.js.map +1 -1
  55. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.css +9 -6
  56. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +8 -8
  57. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js.map +1 -1
  58. package/dist/collection/components/sd-field/sd-field.css +100 -0
  59. package/dist/collection/components/sd-field/sd-field.js +472 -0
  60. package/dist/collection/components/sd-field/sd-field.js.map +1 -0
  61. package/dist/collection/components/sd-file-picker/sd-file-picker.css +6 -0
  62. package/dist/collection/components/sd-file-picker/sd-file-picker.js +8 -8
  63. package/dist/collection/components/sd-file-picker/sd-file-picker.js.map +1 -1
  64. package/dist/collection/components/sd-floating-portal/sd-floating-portal.css +103 -0
  65. package/dist/collection/components/{sd-tooltip-portal/sd-tooltip-portal.js → sd-floating-portal/sd-floating-portal.js} +18 -9
  66. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js.map +1 -0
  67. package/dist/collection/components/sd-form/sd-form.js +200 -0
  68. package/dist/collection/components/sd-form/sd-form.js.map +1 -0
  69. package/dist/collection/components/sd-guide/sd-guide.css +3 -2
  70. package/dist/collection/components/sd-guide/sd-guide.js +7 -8
  71. package/dist/collection/components/sd-guide/sd-guide.js.map +1 -1
  72. package/dist/collection/components/sd-icon/sd-icon.js +1 -1
  73. package/dist/collection/components/sd-input/sd-input.css +43 -100
  74. package/dist/collection/components/sd-input/sd-input.js +285 -114
  75. package/dist/collection/components/sd-input/sd-input.js.map +1 -1
  76. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +1 -1
  77. package/dist/collection/components/sd-modal-card/sd-modal-card.css +1 -0
  78. package/dist/collection/components/sd-modal-card/sd-modal-card.js +5 -5
  79. package/dist/collection/components/sd-modal-card/sd-modal-card.js.map +1 -1
  80. package/dist/collection/components/sd-number-input/sd-number-input.js +18 -84
  81. package/dist/collection/components/sd-number-input/sd-number-input.js.map +1 -1
  82. package/dist/collection/components/sd-pagination/sd-pagination.js +4 -3
  83. package/dist/collection/components/sd-pagination/sd-pagination.js.map +1 -1
  84. package/dist/collection/components/sd-popover/sd-popover.css +2 -2
  85. package/dist/collection/components/sd-popover/sd-popover.js +4 -5
  86. package/dist/collection/components/sd-popover/sd-popover.js.map +1 -1
  87. package/dist/collection/components/sd-portal/sd-portal.js +4 -4
  88. package/dist/collection/components/sd-portal/sd-portal.js.map +1 -1
  89. package/dist/collection/components/sd-progress/sd-progress.js +2 -2
  90. package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js +9 -30
  91. package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js.map +1 -1
  92. package/dist/collection/components/sd-radio-group/sd-radio-group.js +5 -5
  93. package/dist/collection/components/sd-radio-group/sd-radio-group.js.map +1 -1
  94. package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.css +52 -0
  95. package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js +441 -0
  96. package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js.map +1 -0
  97. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +4 -4
  98. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js.map +1 -1
  99. package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.css +11 -3
  100. package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js +15 -15
  101. package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js.map +1 -1
  102. package/dist/collection/components/sd-select/sd-select.css +9 -97
  103. package/dist/collection/components/sd-select/sd-select.js +320 -219
  104. package/dist/collection/components/sd-select/sd-select.js.map +1 -1
  105. package/dist/collection/components/sd-select-multiple/sd-select-multiple.css +16 -102
  106. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +328 -179
  107. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js.map +1 -1
  108. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.css +8 -45
  109. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js +265 -47
  110. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js.map +1 -1
  111. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  112. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js.map +1 -1
  113. package/dist/collection/components/sd-table/sd-table.css +121 -30
  114. package/dist/collection/components/sd-table/sd-table.js +629 -92
  115. package/dist/collection/components/sd-table/sd-table.js.map +1 -1
  116. package/dist/collection/components/sd-tabs/sd-tabs.css +10 -7
  117. package/dist/collection/components/sd-tabs/sd-tabs.js +10 -17
  118. package/dist/collection/components/sd-tabs/sd-tabs.js.map +1 -1
  119. package/dist/collection/components/sd-tag/sd-tag.js +1 -1
  120. package/dist/collection/components/sd-textarea/sd-textarea.css +66 -0
  121. package/dist/collection/components/sd-textarea/sd-textarea.js +400 -0
  122. package/dist/collection/components/sd-textarea/sd-textarea.js.map +1 -0
  123. package/dist/collection/components/sd-toast-message/sd-toast-message.js +11 -11
  124. package/dist/collection/components/sd-toast-message/sd-toast-message.js.map +1 -1
  125. package/dist/collection/components/sd-toggle/sd-toggle.js +8 -14
  126. package/dist/collection/components/sd-toggle/sd-toggle.js.map +1 -1
  127. package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +5 -5
  128. package/dist/collection/components/sd-toggle-button/sd-toggle-button.js.map +1 -1
  129. package/dist/collection/components/sd-tooltip/sd-tooltip.css +6 -65
  130. package/dist/collection/components/sd-tooltip/sd-tooltip.js +12 -29
  131. package/dist/collection/components/sd-tooltip/sd-tooltip.js.map +1 -1
  132. package/dist/collection/types/select.js.map +1 -1
  133. package/dist/components/index.js +1 -1
  134. package/dist/components/p-7xekTQRB.js +104 -0
  135. package/dist/components/p-7xekTQRB.js.map +1 -0
  136. package/dist/components/{p-BDkKpeVz.js → p-BKSlQGJv.js} +3 -3
  137. package/dist/components/{p-BDkKpeVz.js.map → p-BKSlQGJv.js.map} +1 -1
  138. package/dist/components/{p-C5U6Otnl.js → p-CVMprLsE.js} +17 -15
  139. package/dist/components/p-CVMprLsE.js.map +1 -0
  140. package/dist/components/p-CdGD6AqM.js +92 -0
  141. package/dist/components/p-CdGD6AqM.js.map +1 -0
  142. package/dist/components/p-CpRkV7pg.js +201 -0
  143. package/dist/components/p-CpRkV7pg.js.map +1 -0
  144. package/dist/components/p-D2movWkD.js +289 -0
  145. package/dist/components/p-D2movWkD.js.map +1 -0
  146. package/dist/components/p-D54IEoI6.js +238 -0
  147. package/dist/components/p-D54IEoI6.js.map +1 -0
  148. package/dist/components/{p-B8yBkdjE.js → p-DbebUQwg.js} +7 -7
  149. package/dist/components/{p-B8yBkdjE.js.map → p-DbebUQwg.js.map} +1 -1
  150. package/dist/components/{p-BYf-ybt2.js → p-DcGvp3RM.js} +5 -5
  151. package/dist/components/p-DcGvp3RM.js.map +1 -0
  152. package/dist/components/{p-CfivfPAO.js → p-DdKGhMHk.js} +5 -5
  153. package/dist/components/{p-CfivfPAO.js.map → p-DdKGhMHk.js.map} +1 -1
  154. package/dist/components/{p-BxPT3VKO.js → p-DlJtPR_C.js} +12 -12
  155. package/dist/components/p-DlJtPR_C.js.map +1 -0
  156. package/dist/components/{p-BHHbLFXg.js → p-DnQF6htq.js} +5 -5
  157. package/dist/components/{p-BHHbLFXg.js.map → p-DnQF6htq.js.map} +1 -1
  158. package/dist/components/{p-BA38jFi5.js → p-DssRJcAn.js} +4 -4
  159. package/dist/components/{p-BA38jFi5.js.map → p-DssRJcAn.js.map} +1 -1
  160. package/dist/components/{p-B3H_uLbl.js → p-Dt-KAeBx.js} +3 -3
  161. package/dist/components/{p-B3H_uLbl.js.map → p-Dt-KAeBx.js.map} +1 -1
  162. package/dist/components/{p-BREduhZA.js → p-DxSmO6Tr.js} +8 -7
  163. package/dist/components/p-DxSmO6Tr.js.map +1 -0
  164. package/dist/components/{p-O3tgQfvT.js → p-JF61vPAh.js} +9 -9
  165. package/dist/components/p-JF61vPAh.js.map +1 -0
  166. package/dist/components/p-RhBqdixM.js +102 -0
  167. package/dist/components/p-RhBqdixM.js.map +1 -0
  168. package/dist/components/{p-Bj4u0G5b.js → p-UZEmuyIR.js} +19 -19
  169. package/dist/components/p-UZEmuyIR.js.map +1 -0
  170. package/dist/components/{p-CQBrru3e.js → p-YLoygqPr.js} +3 -3
  171. package/dist/components/p-YLoygqPr.js.map +1 -0
  172. package/dist/components/p-s4Mg_xSz.js +260 -0
  173. package/dist/components/p-s4Mg_xSz.js.map +1 -0
  174. package/dist/components/{p-w5tohH2H.js → p-zvZtN3nR.js} +8 -8
  175. package/dist/components/{p-w5tohH2H.js.map → p-zvZtN3nR.js.map} +1 -1
  176. package/dist/components/sd-badge.js +5 -5
  177. package/dist/components/sd-badge.js.map +1 -1
  178. package/dist/components/sd-button.js +1 -1
  179. package/dist/components/sd-card.js +3 -3
  180. package/dist/components/sd-card.js.map +1 -1
  181. package/dist/components/sd-checkbox.js +1 -1
  182. package/dist/components/sd-date-box.js +1 -1
  183. package/dist/components/sd-date-picker.js +37 -13
  184. package/dist/components/sd-date-picker.js.map +1 -1
  185. package/dist/components/sd-date-range-picker.js +41 -17
  186. package/dist/components/sd-date-range-picker.js.map +1 -1
  187. package/dist/components/{sd-td.d.ts → sd-field.d.ts} +4 -4
  188. package/dist/components/sd-field.js +9 -0
  189. package/dist/components/sd-field.js.map +1 -0
  190. package/dist/components/sd-file-picker.js +10 -10
  191. package/dist/components/sd-file-picker.js.map +1 -1
  192. package/dist/components/{sd-table-backup.d.ts → sd-floating-portal.d.ts} +4 -4
  193. package/dist/components/sd-floating-portal.js +9 -0
  194. package/dist/components/sd-floating-portal.js.map +1 -0
  195. package/dist/components/{sd-th.d.ts → sd-form.d.ts} +4 -4
  196. package/dist/components/sd-form.js +99 -0
  197. package/dist/components/sd-form.js.map +1 -0
  198. package/dist/components/sd-guide.js +12 -13
  199. package/dist/components/sd-guide.js.map +1 -1
  200. package/dist/components/sd-icon.js +1 -1
  201. package/dist/components/sd-input.js +1 -1
  202. package/dist/components/sd-loading-spinner.js +1 -1
  203. package/dist/components/sd-modal-card.js +10 -10
  204. package/dist/components/sd-modal-card.js.map +1 -1
  205. package/dist/components/sd-number-input.js +19 -43
  206. package/dist/components/sd-number-input.js.map +1 -1
  207. package/dist/components/sd-pagination.js +1 -1
  208. package/dist/components/sd-popover.js +14 -15
  209. package/dist/components/sd-popover.js.map +1 -1
  210. package/dist/components/sd-portal.js +1 -1
  211. package/dist/components/sd-progress.js +3 -3
  212. package/dist/components/sd-radio-button-group.js +10 -26
  213. package/dist/components/sd-radio-button-group.js.map +1 -1
  214. package/dist/components/sd-radio-group.js +5 -5
  215. package/dist/components/sd-radio-group.js.map +1 -1
  216. package/dist/components/{sd-tbody.d.ts → sd-select-dropdown.d.ts} +4 -4
  217. package/dist/components/sd-select-dropdown.js +9 -0
  218. package/dist/components/sd-select-dropdown.js.map +1 -0
  219. package/dist/components/sd-select-multiple-group.js +97 -40
  220. package/dist/components/sd-select-multiple-group.js.map +1 -1
  221. package/dist/components/sd-select-multiple.js +133 -168
  222. package/dist/components/sd-select-multiple.js.map +1 -1
  223. package/dist/components/sd-select-option-group.js +1 -1
  224. package/dist/components/sd-select-option.js +1 -1
  225. package/dist/components/sd-select-search-input.js +1 -1
  226. package/dist/components/sd-select.js +1 -1
  227. package/dist/components/sd-table.js +555 -113
  228. package/dist/components/sd-table.js.map +1 -1
  229. package/dist/components/sd-tabs.js +13 -16
  230. package/dist/components/sd-tabs.js.map +1 -1
  231. package/dist/components/sd-tag.js +1 -1
  232. package/dist/components/{sd-tr.d.ts → sd-textarea.d.ts} +4 -4
  233. package/dist/components/sd-textarea.js +145 -0
  234. package/dist/components/sd-textarea.js.map +1 -0
  235. package/dist/components/sd-toast-message.js +14 -14
  236. package/dist/components/sd-toast-message.js.map +1 -1
  237. package/dist/components/sd-toggle-button.js +5 -5
  238. package/dist/components/sd-toggle-button.js.map +1 -1
  239. package/dist/components/sd-toggle.js +9 -11
  240. package/dist/components/sd-toggle.js.map +1 -1
  241. package/dist/components/sd-tooltip.js +1 -1
  242. package/dist/design-system/design-system.css +1 -1
  243. package/dist/design-system/design-system.esm.js +1 -1
  244. package/dist/design-system/p-02e23509.entry.js +2 -0
  245. package/dist/design-system/p-02e23509.entry.js.map +1 -0
  246. package/dist/design-system/p-0a2f733d.entry.js +2 -0
  247. package/dist/design-system/p-0a2f733d.entry.js.map +1 -0
  248. package/dist/design-system/p-0d3f019d.entry.js +2 -0
  249. package/dist/design-system/p-0d3f019d.entry.js.map +1 -0
  250. package/dist/design-system/p-15dd1289.entry.js +2 -0
  251. package/dist/design-system/p-15dd1289.entry.js.map +1 -0
  252. package/dist/design-system/p-216c6543.entry.js +2 -0
  253. package/dist/design-system/p-216c6543.entry.js.map +1 -0
  254. package/dist/design-system/p-2400d67b.entry.js +2 -0
  255. package/dist/design-system/p-2400d67b.entry.js.map +1 -0
  256. package/dist/design-system/p-282f4087.entry.js +2 -0
  257. package/dist/design-system/{p-ddfe63b8.entry.js.map → p-282f4087.entry.js.map} +1 -1
  258. package/dist/design-system/{p-b5720c60.entry.js → p-388d5b9f.entry.js} +2 -2
  259. package/dist/design-system/p-4d7bb5b6.entry.js +2 -0
  260. package/dist/design-system/p-4d7bb5b6.entry.js.map +1 -0
  261. package/dist/design-system/p-53972259.entry.js +2 -0
  262. package/dist/design-system/p-53972259.entry.js.map +1 -0
  263. package/dist/design-system/p-6277b220.entry.js +2 -0
  264. package/dist/design-system/p-6277b220.entry.js.map +1 -0
  265. package/dist/design-system/p-652c4d37.entry.js +2 -0
  266. package/dist/design-system/p-652c4d37.entry.js.map +1 -0
  267. package/dist/design-system/p-661c4553.entry.js +2 -0
  268. package/dist/design-system/p-661c4553.entry.js.map +1 -0
  269. package/dist/design-system/p-686958c5.entry.js +2 -0
  270. package/dist/design-system/p-686958c5.entry.js.map +1 -0
  271. package/dist/design-system/p-811c5aa4.entry.js +2 -0
  272. package/dist/design-system/p-811c5aa4.entry.js.map +1 -0
  273. package/dist/design-system/p-827ca975.entry.js +2 -0
  274. package/dist/design-system/p-827ca975.entry.js.map +1 -0
  275. package/dist/design-system/p-8df72aa2.entry.js +2 -0
  276. package/dist/design-system/p-8df72aa2.entry.js.map +1 -0
  277. package/dist/design-system/p-9d2459ed.entry.js +2 -0
  278. package/dist/design-system/p-9d2459ed.entry.js.map +1 -0
  279. package/dist/design-system/p-BShXSO5x.js +2 -0
  280. package/dist/design-system/p-BShXSO5x.js.map +1 -0
  281. package/dist/design-system/{p-7X2nzJWz.js → p-C3qNZ7Qh.js} +3 -3
  282. package/dist/design-system/p-C3qNZ7Qh.js.map +1 -0
  283. package/dist/design-system/{p-CdbtuKYR.js → p-DPxE68eG.js} +2 -2
  284. package/dist/design-system/{p-CdbtuKYR.js.map → p-DPxE68eG.js.map} +1 -1
  285. package/dist/design-system/{p-BYf-ybt2.js → p-DcGvp3RM.js} +2 -2
  286. package/dist/design-system/{p-BYf-ybt2.js.map → p-DcGvp3RM.js.map} +1 -1
  287. package/dist/design-system/p-a7d4c6bd.entry.js +2 -0
  288. package/dist/design-system/p-a7d4c6bd.entry.js.map +1 -0
  289. package/dist/design-system/p-ac29c52c.entry.js +2 -0
  290. package/dist/design-system/p-ac29c52c.entry.js.map +1 -0
  291. package/dist/design-system/{p-7a424f6b.entry.js → p-b0277422.entry.js} +2 -2
  292. package/dist/design-system/p-b0277422.entry.js.map +1 -0
  293. package/dist/design-system/p-c25c4bd6.entry.js +2 -0
  294. package/dist/design-system/p-c25c4bd6.entry.js.map +1 -0
  295. package/dist/design-system/p-c3061828.entry.js +2 -0
  296. package/dist/design-system/p-c3061828.entry.js.map +1 -0
  297. package/dist/design-system/p-cde56c79.entry.js +2 -0
  298. package/dist/design-system/{p-5576f0f0.entry.js.map → p-cde56c79.entry.js.map} +1 -1
  299. package/dist/design-system/p-d77422e4.entry.js +2 -0
  300. package/dist/design-system/p-d77422e4.entry.js.map +1 -0
  301. package/dist/design-system/p-dc410414.entry.js +2 -0
  302. package/dist/design-system/p-dc410414.entry.js.map +1 -0
  303. package/dist/design-system/p-f254b09a.entry.js +2 -0
  304. package/dist/design-system/p-f254b09a.entry.js.map +1 -0
  305. package/dist/design-system/p-f3287206.entry.js +2 -0
  306. package/dist/design-system/p-f3287206.entry.js.map +1 -0
  307. package/dist/esm/{select-keyboard-navigation-C2JaR3A6.js → base-dropdown-event-BShXSO5x.js} +26 -26
  308. package/dist/esm/base-dropdown-event-BShXSO5x.js.map +1 -0
  309. package/dist/esm/design-system.js +3 -3
  310. package/dist/esm/{index-7X2nzJWz.js → index-C3qNZ7Qh.js} +3 -3
  311. package/dist/esm/index-C3qNZ7Qh.js.map +1 -0
  312. package/dist/esm/loader.js +3 -3
  313. package/dist/esm/{resolveColor-BYf-ybt2.js → resolveColor-DcGvp3RM.js} +5 -5
  314. package/dist/{cjs/resolveColor-DxvExwgo.js.map → esm/resolveColor-DcGvp3RM.js.map} +1 -1
  315. package/dist/esm/sd-badge.entry.js +4 -4
  316. package/dist/esm/sd-badge.entry.js.map +1 -1
  317. package/dist/esm/{sd-button_24.entry.js → sd-button_6.entry.js} +291 -2823
  318. package/dist/esm/sd-card.entry.js +3 -3
  319. package/dist/esm/sd-card.entry.js.map +1 -1
  320. package/dist/esm/sd-checkbox.entry.js +87 -0
  321. package/dist/esm/sd-checkbox.entry.js.map +1 -0
  322. package/dist/esm/sd-date-box.entry.js +10 -10
  323. package/dist/esm/sd-date-box.entry.js.map +1 -1
  324. package/dist/esm/sd-date-picker.entry.js +5 -5
  325. package/dist/esm/sd-date-picker.entry.js.map +1 -1
  326. package/dist/esm/sd-date-range-picker.entry.js +8 -8
  327. package/dist/esm/sd-date-range-picker.entry.js.map +1 -1
  328. package/dist/esm/sd-field_3.entry.js +418 -0
  329. package/dist/esm/sd-file-picker.entry.js +119 -0
  330. package/dist/esm/sd-file-picker.entry.js.map +1 -0
  331. package/dist/esm/sd-form.entry.js +72 -0
  332. package/dist/esm/sd-form.entry.js.map +1 -0
  333. package/dist/esm/sd-guide.entry.js +79 -0
  334. package/dist/esm/sd-guide.entry.js.map +1 -0
  335. package/dist/esm/sd-loading-spinner_2.entry.js +192 -0
  336. package/dist/esm/sd-modal-card.entry.js +8 -8
  337. package/dist/esm/sd-modal-card.entry.js.map +1 -1
  338. package/dist/esm/sd-number-input.entry.js +259 -0
  339. package/dist/esm/sd-number-input.entry.js.map +1 -0
  340. package/dist/esm/sd-popover.entry.js +7 -7
  341. package/dist/esm/sd-popover.entry.js.map +1 -1
  342. package/dist/esm/sd-progress.entry.js +3 -3
  343. package/dist/esm/sd-radio-button-group.entry.js +8 -21
  344. package/dist/esm/sd-radio-button-group.entry.js.map +1 -1
  345. package/dist/esm/sd-radio-group.entry.js +69 -0
  346. package/dist/esm/sd-radio-group.entry.js.map +1 -0
  347. package/dist/esm/sd-select-dropdown_3.entry.js +262 -0
  348. package/dist/esm/sd-select-multiple-group.entry.js +444 -0
  349. package/dist/esm/sd-select-multiple-group.entry.js.map +1 -0
  350. package/dist/esm/sd-select-multiple.entry.js +72 -150
  351. package/dist/esm/sd-select-multiple.entry.js.map +1 -1
  352. package/dist/esm/sd-select-option-group.entry.js +67 -0
  353. package/dist/esm/sd-select-option-group.entry.js.map +1 -0
  354. package/dist/esm/sd-table.entry.js +515 -85
  355. package/dist/esm/sd-table.entry.js.map +1 -1
  356. package/dist/esm/sd-tabs.entry.js +64 -0
  357. package/dist/esm/sd-tabs.entry.js.map +1 -0
  358. package/dist/esm/sd-tag.entry.js +55 -0
  359. package/dist/esm/sd-tag.entry.js.map +1 -0
  360. package/dist/esm/sd-toast-message.entry.js +59 -0
  361. package/dist/esm/sd-toast-message.entry.js.map +1 -0
  362. package/dist/esm/sd-toggle-button.entry.js +48 -0
  363. package/dist/esm/sd-toggle-button.entry.js.map +1 -0
  364. package/dist/esm/sd-toggle.entry.js +44 -0
  365. package/dist/esm/sd-toggle.entry.js.map +1 -0
  366. package/dist/esm/{tooltipArrow-DFRZWz6D.js → tooltipArrow-Ck_14rXC.js} +3 -3
  367. package/dist/esm/{tooltipArrow-DFRZWz6D.js.map → tooltipArrow-Ck_14rXC.js.map} +1 -1
  368. package/dist/types/components/sd-button/sd-button.d.ts +0 -3
  369. package/dist/types/components/sd-checkbox/sd-checkbox.d.ts +2 -2
  370. package/dist/types/components/sd-date-box/sd-date-box.d.ts +2 -2
  371. package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +1 -1
  372. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +1 -1
  373. package/dist/types/components/sd-field/sd-field.d.ts +34 -0
  374. package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +1 -1
  375. package/dist/types/components/{sd-tooltip-portal/sd-tooltip-portal.d.ts → sd-floating-portal/sd-floating-portal.d.ts} +2 -2
  376. package/dist/types/components/sd-form/sd-form.d.ts +23 -0
  377. package/dist/types/components/sd-input/sd-input.d.ts +23 -14
  378. package/dist/types/components/sd-modal-card/sd-modal-card.d.ts +2 -2
  379. package/dist/types/components/sd-number-input/sd-number-input.d.ts +4 -14
  380. package/dist/types/components/sd-portal/sd-portal.d.ts +1 -1
  381. package/dist/types/components/sd-radio-button-group/sd-radio-button-group.d.ts +2 -4
  382. package/dist/types/components/sd-radio-group/sd-radio-group.d.ts +1 -1
  383. package/dist/types/components/sd-select/sd-select-dropdown/sd-select-dropdown.d.ts +41 -0
  384. package/dist/types/components/sd-select/sd-select-option/sd-select-option.d.ts +1 -1
  385. package/dist/types/components/sd-select/sd-select-search-input/sd-select-search-input.d.ts +4 -4
  386. package/dist/types/components/sd-select/sd-select.d.ts +28 -21
  387. package/dist/types/components/sd-select-multiple/sd-select-multiple.d.ts +26 -20
  388. package/dist/types/components/sd-select-multiple-group/sd-select-multiple-group.d.ts +19 -4
  389. package/dist/types/components/sd-table/sd-table.d.ts +62 -3
  390. package/dist/types/components/sd-tabs/sd-tabs.d.ts +1 -2
  391. package/dist/types/components/sd-textarea/sd-textarea.d.ts +32 -0
  392. package/dist/types/components/sd-toast-message/sd-toast-message.d.ts +3 -3
  393. package/dist/types/components/sd-toggle/sd-toggle.d.ts +1 -2
  394. package/dist/types/components/sd-toggle-button/sd-toggle-button.d.ts +1 -1
  395. package/dist/types/components/sd-tooltip/sd-tooltip.d.ts +14 -2
  396. package/dist/types/components.d.ts +703 -397
  397. package/dist/types/types/form.d.ts +1 -0
  398. package/dist/types/types/select.d.ts +1 -1
  399. package/hydrate/index.js +1397 -1325
  400. package/hydrate/index.mjs +1397 -1325
  401. package/package.json +4 -3
  402. package/dist/cjs/index-B7tkxTye.js.map +0 -1
  403. package/dist/cjs/sd-tbody_3.cjs.entry.js +0 -44
  404. package/dist/cjs/sd-td.cjs.entry.js +0 -26
  405. package/dist/cjs/select-keyboard-navigation-6fO_V4En.js.map +0 -1
  406. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.css +0 -3
  407. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +0 -18
  408. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js.map +0 -1
  409. package/dist/collection/components/sd-table/sd-td/sd-td.css +0 -9
  410. package/dist/collection/components/sd-table/sd-td/sd-td.js +0 -111
  411. package/dist/collection/components/sd-table/sd-td/sd-td.js.map +0 -1
  412. package/dist/collection/components/sd-table/sd-th/sd-th.css +0 -8
  413. package/dist/collection/components/sd-table/sd-th/sd-th.js +0 -18
  414. package/dist/collection/components/sd-table/sd-th/sd-th.js.map +0 -1
  415. package/dist/collection/components/sd-table/sd-tr/sd-tr.css +0 -3
  416. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +0 -18
  417. package/dist/collection/components/sd-table/sd-tr/sd-tr.js.map +0 -1
  418. package/dist/collection/components/sd-table-backup/sd-table-backup.css +0 -309
  419. package/dist/collection/components/sd-table-backup/sd-table-backup.js +0 -1219
  420. package/dist/collection/components/sd-table-backup/sd-table-backup.js.map +0 -1
  421. package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js.map +0 -1
  422. package/dist/components/p-6qJVnQg4.js +0 -34
  423. package/dist/components/p-6qJVnQg4.js.map +0 -1
  424. package/dist/components/p-BREduhZA.js.map +0 -1
  425. package/dist/components/p-BYf-ybt2.js.map +0 -1
  426. package/dist/components/p-Bj4u0G5b.js.map +0 -1
  427. package/dist/components/p-BxPT3VKO.js.map +0 -1
  428. package/dist/components/p-C4kdHNdl.js +0 -175
  429. package/dist/components/p-C4kdHNdl.js.map +0 -1
  430. package/dist/components/p-C5U6Otnl.js.map +0 -1
  431. package/dist/components/p-CNrsaSqW.js +0 -34
  432. package/dist/components/p-CNrsaSqW.js.map +0 -1
  433. package/dist/components/p-CQBrru3e.js.map +0 -1
  434. package/dist/components/p-D8KGixEs.js +0 -326
  435. package/dist/components/p-D8KGixEs.js.map +0 -1
  436. package/dist/components/p-DLrb7Zq3.js +0 -102
  437. package/dist/components/p-DLrb7Zq3.js.map +0 -1
  438. package/dist/components/p-K42WRBPA.js +0 -121
  439. package/dist/components/p-K42WRBPA.js.map +0 -1
  440. package/dist/components/p-O3tgQfvT.js.map +0 -1
  441. package/dist/components/p-QpwY2yqY.js +0 -78
  442. package/dist/components/p-QpwY2yqY.js.map +0 -1
  443. package/dist/components/p-xme-KFvK.js +0 -34
  444. package/dist/components/p-xme-KFvK.js.map +0 -1
  445. package/dist/components/sd-table-backup.js +0 -802
  446. package/dist/components/sd-table-backup.js.map +0 -1
  447. package/dist/components/sd-tbody.js +0 -9
  448. package/dist/components/sd-tbody.js.map +0 -1
  449. package/dist/components/sd-td.js +0 -50
  450. package/dist/components/sd-td.js.map +0 -1
  451. package/dist/components/sd-th.js +0 -9
  452. package/dist/components/sd-th.js.map +0 -1
  453. package/dist/components/sd-tooltip-portal.d.ts +0 -11
  454. package/dist/components/sd-tooltip-portal.js +0 -9
  455. package/dist/components/sd-tooltip-portal.js.map +0 -1
  456. package/dist/components/sd-tr.js +0 -9
  457. package/dist/components/sd-tr.js.map +0 -1
  458. package/dist/design-system/p-0893dbd0.entry.js +0 -2
  459. package/dist/design-system/p-0893dbd0.entry.js.map +0 -1
  460. package/dist/design-system/p-2633690f.entry.js +0 -2
  461. package/dist/design-system/p-2633690f.entry.js.map +0 -1
  462. package/dist/design-system/p-27985b84.entry.js +0 -2
  463. package/dist/design-system/p-27985b84.entry.js.map +0 -1
  464. package/dist/design-system/p-5576f0f0.entry.js +0 -2
  465. package/dist/design-system/p-7X2nzJWz.js.map +0 -1
  466. package/dist/design-system/p-7a424f6b.entry.js.map +0 -1
  467. package/dist/design-system/p-7ca988ab.entry.js +0 -2
  468. package/dist/design-system/p-7ca988ab.entry.js.map +0 -1
  469. package/dist/design-system/p-9ade8cd7.entry.js +0 -2
  470. package/dist/design-system/p-9ade8cd7.entry.js.map +0 -1
  471. package/dist/design-system/p-C2JaR3A6.js +0 -2
  472. package/dist/design-system/p-C2JaR3A6.js.map +0 -1
  473. package/dist/design-system/p-a7bdb6ba.entry.js +0 -2
  474. package/dist/design-system/p-a7bdb6ba.entry.js.map +0 -1
  475. package/dist/design-system/p-b1b828e6.entry.js +0 -2
  476. package/dist/design-system/p-b1b828e6.entry.js.map +0 -1
  477. package/dist/design-system/p-bdd9afaf.entry.js +0 -2
  478. package/dist/design-system/p-bdd9afaf.entry.js.map +0 -1
  479. package/dist/design-system/p-ddfe63b8.entry.js +0 -2
  480. package/dist/design-system/p-de826a92.entry.js +0 -2
  481. package/dist/design-system/p-de826a92.entry.js.map +0 -1
  482. package/dist/design-system/p-e180c69c.entry.js +0 -2
  483. package/dist/design-system/p-e180c69c.entry.js.map +0 -1
  484. package/dist/esm/index-7X2nzJWz.js.map +0 -1
  485. package/dist/esm/sd-tbody_3.entry.js +0 -40
  486. package/dist/esm/sd-td.entry.js +0 -24
  487. package/dist/esm/sd-td.entry.js.map +0 -1
  488. package/dist/esm/select-keyboard-navigation-C2JaR3A6.js.map +0 -1
  489. package/dist/types/components/sd-table/sd-tbody/sd-tbody.d.ts +0 -3
  490. package/dist/types/components/sd-table/sd-td/sd-td.d.ts +0 -7
  491. package/dist/types/components/sd-table/sd-th/sd-th.d.ts +0 -3
  492. package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +0 -3
  493. package/dist/types/components/sd-table-backup/sd-table-backup.d.ts +0 -135
  494. /package/dist/design-system/{p-b5720c60.entry.js.map → p-388d5b9f.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sd-select-multiple-group.js","sourceRoot":"","sources":["../../../src/components/sd-select-multiple-group/sd-select-multiple-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Fragment,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { BaseDropdownEvent } from '../../utils/base-dropdown-event';\nimport { SelectMultipleEvents, SelectOption, SelectStyleProps } from '../sd-select/sd-select';\nimport { SelectKeyboardNavigation } from '../../utils/select-keyboard-navigation';\n\nexport interface SelectOptionGroup extends SelectOption {\n type: 'group' | 'subgroup' | 'item' | 'all';\n parent?: string;\n}\n\n@Component({\n tag: 'sd-select-multiple-group',\n styleUrl: 'sd-select-multiple-group.scss',\n})\nexport class SdSelectMultipleGroup extends BaseDropdownEvent {\n @Element() el!: HTMLElement;\n\n // props\n @Prop({ mutable: true }) value: SelectOptionGroup[] | null = null;\n @Prop() label: string = '';\n @Prop({ mutable: true }) options: SelectOptionGroup[] = [];\n @Prop() placeholder: string = '선택';\n @Prop() optionPlaceholder: string = '옵션이 없습니다.';\n @Prop() width: string = '200px';\n @Prop() dropdownHeight: string = '260px';\n @Prop() disabled: boolean = false;\n @Prop() clearable: boolean = false;\n @Prop() searchable: boolean = false;\n @Prop() useCheckbox: boolean = false;\n @Prop() useAll: boolean = false;\n @Prop() allCheckedLabel = '전체';\n @Prop() allCheckOptionLabel = '전체';\n\n // props - custom styles\n @Prop() containerStyle: SelectStyleProps['containerStyle'] = {};\n @Prop() triggerStyle: SelectStyleProps['triggerStyle'] = {};\n @Prop() dropdownStyle: SelectStyleProps['dropdownStyle'] = {};\n @Prop() optionStyle: SelectStyleProps['optionStyle'] = {};\n @Prop() labelStyle: SelectStyleProps['labelStyle'] = {};\n\n // props - custom slots\n @Prop() optionRenderer?: (option: SelectOption, index: number, isSelected: boolean) => any;\n\n // states\n @State() filteredOptions = this.options;\n @State() isOpen: boolean = false;\n @State() searchText: string | null = null;\n @State() itemIndex: number = -1;\n @State() isScrolled: boolean = false;\n @State() isDropdownReady: boolean = false;\n\n // events\n @Event() sdChange?: EventEmitter<SelectMultipleEvents['sdChange']>;\n @Event() dropDownShow?: EventEmitter<SelectMultipleEvents['dropDownShow']>;\n\n private selectRef?: HTMLElement;\n private searchRef?: HTMLSdSelectSearchInputElement;\n private optionRef?: HTMLSdSelectOptionGroupElement;\n private dropdownRef?: HTMLElement;\n\n @Watch('value')\n valueChanged() {\n this.sdChange?.emit(this.value);\n }\n\n @Watch('options')\n optionsChanged() {\n this.filteredOptions = this.options;\n this.filterOptions();\n }\n\n @Watch('searchText')\n searchTextChanged() {\n this.filterOptions();\n }\n\n @Watch('itemIndex')\n async itemIndexChanged(newIndex: number, oldIndex: number) {\n if (this.searchable) {\n const searchInput = await this.getNativeInputElement();\n if (this.itemIndex === -1) {\n searchInput?.focus({ preventScroll: true });\n return;\n } else if (searchInput?.matches(':focus')) {\n searchInput?.blur();\n }\n }\n\n const optionElements = Array.from(\n this.dropdownRef?.querySelectorAll('sd-select-option-group') || [],\n );\n\n // useAll 사용시 \"전체\" 옵션 포함한 인덱스 사용\n const actualIndex = this.useAll ? this.itemIndex + 1 : this.itemIndex;\n const currentItem = optionElements?.[actualIndex];\n\n if (!currentItem || !this.isOpen) return;\n\n this.optionRef = currentItem as HTMLSdSelectOptionGroupElement;\n const isOptionDisabled = await this.optionRef.isDisabled();\n\n if (isOptionDisabled) {\n newIndex > oldIndex ? this.itemIndex++ : this.itemIndex--;\n return;\n }\n\n this.scrollToOption(currentItem as HTMLElement);\n }\n\n @Watch('isOpen')\n async isOpenChanged() {\n // Base class의 이벤트 관리 호출 - 다른 select와의 이벤트 충돌 방지\n this.onDropdownToggle(this.isOpen);\n this.dropDownShow?.emit({ isOpen: this.isOpen });\n this.isDropdownReady = false;\n\n if (this.isOpen === false) {\n return;\n }\n\n // DOM 렌더링을 기다리기 위해 이중 requestAnimationFrame 사용 - (레이아웃/스타일 계산 - 페인트 이후)\n requestAnimationFrame(() => {\n requestAnimationFrame(async () => {\n const selectedOptions = this.getSelectedOption();\n\n // 선택된 옵션이 있으면 첫 번째 선택된 항목으로 스크롤\n if (selectedOptions && selectedOptions.length > 0) {\n const selectedIndex = this.options.indexOf(selectedOptions[0]);\n const optionElements = Array.from(\n this.dropdownRef?.querySelectorAll('sd-select-option-group') || [],\n );\n\n // useAll 사용시 \"전체\" 옵션 포함한 인덱스 사용\n const actualIndex = this.useAll ? selectedIndex + 1 : selectedIndex;\n // 선택된 옵션이 화면 가운데에 오도록 index 조정\n const targetIndex = Math.min(actualIndex + 4, optionElements.length - 1);\n const currentItem = optionElements?.[targetIndex];\n\n if (currentItem) {\n this.scrollToOption(currentItem as HTMLElement);\n }\n }\n\n this.isDropdownReady = true;\n\n if (this.searchable) {\n const searchInput = await this.getNativeInputElement();\n\n if (searchInput) {\n requestAnimationFrame(() => {\n searchInput.focus({ preventScroll: true });\n });\n }\n }\n });\n });\n }\n\n @Method()\n async open(): Promise<void> {\n await new Promise(resolve => setTimeout(resolve, 0));\n this.isOpen = true;\n }\n\n componentWillLoad() {\n // props가 모두 설정된 후에 실행되므로 올바른 options 값을 가져올 수 있음\n this.filteredOptions = this.options;\n this.initializeEvent(); // global dropdown Manager에 등록 + 이벤트 핸들러 초기화\n }\n\n disconnectedCallback() {\n this.cleanupEvent(); // global dropdown Manager에서 제거 + 이벤트 정리\n }\n\n protected handleDocumentClick(event: Event): void {\n if (!this.selectRef?.contains(event.target as Node)) {\n this.isOpen = false;\n }\n }\n\n protected handleDocumentKeydown(keyboardEvent: KeyboardEvent): void {\n keyboardEvent.stopPropagation();\n const targetKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'];\n if (!targetKey.includes(keyboardEvent.key)) return;\n\n keyboardEvent.preventDefault();\n switch (keyboardEvent.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n const keyboardNavigation = new SelectKeyboardNavigation(this.searchable, this.filteredOptions);\n const nextIndex = keyboardNavigation.getNextIndex(this.itemIndex, keyboardEvent.key);\n this.itemIndex = nextIndex;\n break;\n case 'Enter':\n const selectedOption = this.filteredOptions[this.itemIndex];\n if (selectedOption && !selectedOption.disabled) {\n this.handleOptionSelection(selectedOption);\n }\n break;\n case 'Escape':\n this.isOpen = false;\n break;\n }\n }\n\n // event handlers\n handleTriggerClick = (event: Event) => {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n this.dropDownShow?.emit({ isOpen: this.isOpen });\n }\n };\n\n handleAllOptionClick = (detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n }) => {\n if (detail.isSelected) {\n // 이미 선택된 옵션인 경우, 선택 해제\n const filterDisabledOptions = this.filteredOptions.filter(\n opt => opt.type === 'item' && !opt.disabled,\n );\n this.value =\n this.value?.filter(\n selected => !filterDisabledOptions.some(opt => opt.value === selected.value),\n ) || this.value;\n } else {\n // 새로운 옵션 선택\n const valueSet = new Set([\n ...(this.value || []),\n ...this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled),\n ]);\n this.value = Array.from(valueSet);\n }\n };\n\n handleOptionClick = (detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n }) => {\n const { option, event } = detail;\n event.stopPropagation();\n\n if (option.type === 'group') this.handleGroupOptionClick(detail);\n if (option.type === 'subgroup') this.handleSubGroupOptionClick(detail);\n if (option.type === 'item') this.handleOptionSelection(option);\n };\n\n handleGroupOptionClick = (detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n }) => {\n const { option, isSelected } = detail;\n const childOptions = this.filteredOptions.filter(\n opt => opt.parent === option.value && !opt.disabled,\n );\n\n childOptions.forEach(subgroup => {\n this.handleSubGroupOptionClick({\n option: subgroup,\n isSelected: isSelected || isSelected === null,\n });\n });\n };\n\n handleSubGroupOptionClick = (detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n }) => {\n const { option, isSelected } = detail;\n\n const childOptions = this.filteredOptions.filter(\n opt => opt.parent === option.value && !opt.disabled,\n );\n\n if (isSelected || isSelected === null) {\n // 모든 자식 옵션이 선택된 경우, 모두 선택 해제\n this.value =\n this.value?.filter(selected => !childOptions.some(child => child.value === selected.value)) ||\n null;\n } else {\n // 일부 또는 전체 자식 옵션이 선택되지 않은 경우, 모두 선택\n const newSelections = childOptions.filter(\n child => !this.value?.some(selected => selected.value === child.value),\n );\n this.value = [...(this.value || []), ...newSelections];\n }\n };\n\n private filterOptions() {\n if (!this.searchText || this.searchText.trim() === '') {\n // 검색어가 없으면 전체 옵션 표시\n this.filteredOptions = this.options;\n return;\n }\n\n const searchTerm = this.searchText.toLowerCase();\n const matchedOptions = new Set<SelectOptionGroup>();\n\n // 1. 직접 매칭되는 옵션들 찾기\n this.options.forEach(option => {\n if (option.label.toLowerCase().includes(searchTerm)) {\n matchedOptions.add(option);\n\n // 매칭된 옵션의 상위 그룹들도 포함\n this.addParentGroups(option, matchedOptions);\n }\n });\n\n // 2. Set을 배열로 변환하고 원본 순서 유지\n this.filteredOptions = this.options.filter(option => matchedOptions.has(option));\n }\n\n private addParentGroups(option: SelectOptionGroup, matchedSet: Set<SelectOptionGroup>) {\n if (!option.parent) return;\n\n const parentOption = this.options.find(opt => opt.value === option.parent);\n if (parentOption && !matchedSet.has(parentOption)) {\n matchedSet.add(parentOption);\n // 재귀적으로 상위 그룹들도 추가\n this.addParentGroups(parentOption, matchedSet);\n }\n }\n\n private getSelectedOption(): SelectOptionGroup[] {\n return this.options.filter(option => this.value?.includes(option));\n }\n\n private handleDropdownScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n const scrollTop = target.scrollTop;\n\n // 스크롤이 조금이라도 되면 그림자 표시\n this.isScrolled = scrollTop > 0;\n };\n\n private async getNativeInputElement(): Promise<HTMLInputElement | null> {\n if (this.searchRef) {\n return this.searchRef.getNativeElement();\n }\n return null;\n }\n\n private handleOptionSelection = (option: SelectOptionGroup) => {\n if (!option || option.disabled) return;\n\n const isAlreadySelected = this.value?.some(opt => opt.value === option.value);\n if (isAlreadySelected) {\n // 이미 선택된 옵션인 경우, 선택 해제\n this.value = this.value?.filter(opt => opt.value !== option.value) || null;\n } else {\n // 새로운 옵션 선택\n this.value = [...(this.value || []), option];\n }\n };\n\n private getAllItemsUnderOption(\n parentOption: SelectOptionGroup,\n includeDisabled: boolean = false,\n ): SelectOptionGroup[] {\n const filterChildrenWithParent = (option: SelectOptionGroup) =>\n option.parent === parentOption.value && (includeDisabled || !option.disabled);\n\n if (parentOption.type === 'subgroup') {\n return this.filteredOptions.filter(\n option => filterChildrenWithParent(option) && option.type === 'item',\n );\n }\n\n const allItems: SelectOptionGroup[] = [];\n const childOptions = this.filteredOptions.filter(filterChildrenWithParent);\n const subgroupOptions = childOptions.filter(option => option.type === 'subgroup');\n subgroupOptions.forEach(subgroup => {\n const itemsUnderSubgroup = this.filteredOptions.filter(\n option =>\n option.parent === subgroup.value &&\n option.type === 'item' &&\n (includeDisabled ? true : !option.disabled),\n );\n allItems.push(...itemsUnderSubgroup);\n });\n const directItems = childOptions.filter(option => option.type === 'item');\n allItems.push(...directItems);\n\n return allItems;\n }\n\n private isAllChildrenSelected(groupOption: SelectOptionGroup): boolean | null {\n const allItems = this.getAllItemsUnderOption(groupOption);\n\n if (allItems.length === 0) return false;\n\n const selectedItems = allItems.filter(item =>\n this.value?.some(selected => selected.value === item.value),\n );\n\n if (selectedItems.length === allItems.length) return true;\n if (selectedItems.length > 0) return null;\n return false;\n }\n\n private getChildrenOptions(parentOption: SelectOptionGroup) {\n const allItems = this.getAllItemsUnderOption(parentOption, true);\n const selectedCount = allItems.filter(item =>\n this.value?.some(val => val.value === item.value),\n ).length;\n\n return {\n selectedCount,\n totalCount: allItems.length,\n };\n }\n\n private isAllOptionsSelected(): boolean {\n if (!this.value || this.value.length === 0) return false;\n\n const selectableItems = this.options.filter(opt => opt.type === 'item' && !opt.disabled);\n\n if (selectableItems.length === 0) return false;\n\n const selectedValues = new Set(this.value.map(v => v.value));\n return selectableItems.every(option => selectedValues.has(option.value));\n }\n\n private getTriggerLabel() {\n const selectedOption = this.getSelectedOption();\n if (!selectedOption) return '선택';\n\n if (selectedOption.length === 0) return this.placeholder;\n\n const isAllChecked = this.isAllOptionsSelected();\n\n return isAllChecked\n ? this.allCheckedLabel\n : selectedOption.map(option => option.label).join(', ');\n }\n\n closeDropdown() {\n this.isOpen = false;\n }\n\n private async scrollToOption(optionElement: HTMLElement) {\n if (!this.dropdownRef || !optionElement) return;\n\n requestAnimationFrame(() => {\n const dropdown = this.dropdownRef;\n const optionTop = optionElement.offsetTop;\n const optionHeight = optionElement.offsetHeight;\n const dropdownScrollTop = dropdown!.scrollTop;\n const dropdownHeight = dropdown!.clientHeight;\n\n const searchContainer = dropdown!.querySelector('.sd-select-multiple-group__search-container');\n const searchOffset = searchContainer ? (searchContainer as HTMLElement).offsetHeight : 0;\n\n const visibleContentHeight = dropdownHeight - searchOffset;\n const visibleTop = dropdownScrollTop + searchOffset;\n const visibleBottom = dropdownScrollTop + dropdownHeight;\n\n if (optionTop < visibleTop) {\n dropdown!.scrollTo({ top: optionTop - searchOffset, behavior: 'instant' });\n } else if (optionTop + optionHeight > visibleBottom) {\n dropdown!.scrollTo({\n top: optionTop + optionHeight - visibleContentHeight - searchOffset,\n behavior: 'instant',\n });\n }\n });\n }\n\n render() {\n const style = {\n '--select-width': this.width || '200px',\n '--select-dropdown-height': this.dropdownHeight || '260px',\n };\n\n return (\n <Host style={style}>\n <div\n class={{\n 'sd-select-multiple-group': true,\n 'sd-select-multiple-group--open': this.isOpen,\n 'sd-select-multiple-group--disabled': this.disabled,\n }}\n style={this.containerStyle}\n ref={el => (this.selectRef = el)}\n >\n {this.renderLabel(this.label, this.labelStyle)}\n <div class=\"sd-select-multiple-group__container\">\n {this.renderTrigger()}\n {this.renderDropdown()}\n </div>\n </div>\n </Host>\n );\n }\n\n private renderLabel(label?: string, labelStyle?: { [key: string]: string }) {\n if (!label) return null;\n\n return (\n <label class=\"sd-select-multiple-group__label\" style={labelStyle}>\n {label}\n </label>\n );\n }\n\n private renderTrigger() {\n const selectedOption = this.getSelectedOption();\n return (\n <div\n class=\"sd-select-multiple-group__trigger\"\n tabindex={this.disabled ? -1 : 0}\n onClick={this.handleTriggerClick}\n style={this.triggerStyle}\n >\n <span class=\"sd-select-multiple-group__value\">{this.getTriggerLabel()}</span>\n {this.clearable && selectedOption?.length > 0 && !this.disabled && (\n <sd-icon\n key=\"close-icon\"\n name=\"close\"\n size={10}\n color=\"#888\"\n class=\"sd-select-multiple-group__clear\"\n onClick={event => {\n event.stopPropagation();\n this.value = null;\n }}\n ></sd-icon>\n )}\n\n <sd-icon\n key=\"arrow-icon\"\n name=\"arrowDown\"\n color=\"#888\"\n class={{\n 'sd-select-multiple-group__arrow': true,\n 'sd-select-multiple-group__arrow--open': this.isOpen,\n }}\n ></sd-icon>\n </div>\n );\n }\n\n private renderDropdown() {\n const style = {\n '--select-width': this.width || '200px',\n '--select-dropdown-height': this.dropdownHeight || '260px',\n };\n\n if (this.isOpen === false) return null;\n\n return (\n <sd-portal open={this.isOpen} parentRef={this.selectRef} onSdClose={this.closeDropdown}>\n <div style={{ width: '0', height: '0', overflow: 'visible' }}>\n <div\n class={{\n 'sd-select-multiple-group__dropdown': true,\n 'sd-select-multiple-group__dropdown--ready': this.isDropdownReady,\n }}\n style={{ ...style, ...this.dropdownStyle }}\n onScroll={this.handleDropdownScroll}\n ref={el => (this.dropdownRef = el)}\n >\n {this.searchable && (\n <sd-select-search-input\n ref={el => (this.searchRef = el)}\n isScrolled={this.isScrolled}\n searchText={this.searchText}\n onSdSearchInput={(event: CustomEvent<string>) => (this.searchText = event.detail || '')}\n onSdSearchFocus={() => (this.itemIndex = -1)}\n ></sd-select-search-input>\n )}\n\n {this.filteredOptions.length > 0 ? (\n <Fragment>\n {this.useAll && (\n <sd-select-option-group\n option={{ label: this.allCheckOptionLabel, value: '', type: 'all' }}\n index={0}\n isSelected={this.isAllOptionsSelected()}\n isFocused={this.itemIndex === 0}\n optionStyle={this.optionStyle}\n onOptionClick={({\n detail,\n }: {\n detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n };\n }) => this.handleAllOptionClick(detail)}\n useCheckbox={this.useCheckbox}\n useIndicator={false}\n ></sd-select-option-group>\n )}\n {this.filteredOptions.map((option, index) => (\n <slot name={`option-${option.value}`}>\n <sd-select-option-group\n option={option}\n index={index}\n isSelected={\n option.type === 'item'\n ? this.value?.some(selected => selected.value === option.value)\n : this.isAllChildrenSelected(option)\n }\n isFocused={index === this.itemIndex}\n optionStyle={this.optionStyle}\n onOptionClick={({\n detail,\n }: {\n detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n };\n }) => {\n if (option.type !== 'item' && !this.useCheckbox) {\n return;\n }\n\n this.handleOptionClick(detail);\n }}\n useCheckbox={this.useCheckbox}\n {...(option.type !== 'item' && { countInfo: this.getChildrenOptions(option) })}\n ></sd-select-option-group>\n </slot>\n ))}\n </Fragment>\n ) : (\n <slot name=\"option-placeholder\">\n <div class={'sd-select-multiple-group__option-placeholder'} style={this.optionStyle}>\n {this.optionPlaceholder}\n </div>\n </slot>\n )}\n </div>\n </div>\n </sd-portal>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"sd-select-multiple-group.js","sourceRoot":"","sources":["../../../src/components/sd-select-multiple-group/sd-select-multiple-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,EACT,OAAO,EACP,KAAK,EAEL,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,KAAK,EACL,KAAK,EACL,CAAC,GACD,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAalF,MAAM,OAAO,qBAAsB,SAAQ,iBAAiB;;;;IAChD,EAAE,CAAe;IAE5B,QAAQ;IACiB,KAAK,GAA+B,IAAI,CAAC;IACzC,OAAO,GAAwB,EAAE,CAAC;IACnD,WAAW,GAAW,IAAI,CAAC;IAC3B,iBAAiB,GAAW,WAAW,CAAC;IACxC,KAAK,GAAW,OAAO,CAAC;IACxB,cAAc,GAAW,OAAO,CAAC;IACjC,QAAQ,GAAY,KAAK,CAAC;IAC1B,SAAS,GAAY,KAAK,CAAC;IAC3B,UAAU,GAAY,KAAK,CAAC;IAC5B,WAAW,GAAY,KAAK,CAAC;IAC7B,MAAM,GAAY,KAAK,CAAC;IACxB,eAAe,GAAG,IAAI,CAAC;IACvB,mBAAmB,GAAG,IAAI,CAAC;IAEnC,gBAAgB;IACR,KAAK,GAAW,EAAE,CAAC;IACnB,gBAAgB,GAAY,KAAK,CAAC;IAClC,YAAY,GAAW,EAAE,CAAC;IAC1B,iBAAiB,GAA0B,IAAI,CAAC;IAExD,eAAe;IACP,IAAI,CAAU;IACd,KAAK,GAAY,EAAE,CAAC;IACpB,KAAK,GAAa,KAAK,CAAC;IAEhC,wBAAwB;IAChB,cAAc,GAAuC,EAAE,CAAC;IACxD,YAAY,GAAqC,EAAE,CAAC;IACpD,aAAa,GAAsC,EAAE,CAAC;IACtD,WAAW,GAAoC,EAAE,CAAC;IAClD,UAAU,GAAmC,EAAE,CAAC;IAExD,uBAAuB;IACf,cAAc,CAAqE;IAE3F,SAAS;IACA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/B,MAAM,GAAY,KAAK,CAAC;IACxB,UAAU,GAAkB,IAAI,CAAC;IACjC,SAAS,GAAW,CAAC,CAAC,CAAC;IACvB,UAAU,GAAY,KAAK,CAAC;IAC5B,eAAe,GAAY,KAAK,CAAC;IAE1C,SAAS;IACyB,MAAM,CAAkD;IAClD,YAAY,CAElD;IAEM,SAAS,CAAe;IACxB,SAAS,CAAkC;IAC3C,UAAU,CAAe;IACzB,SAAS,CAAkC;IAC3C,WAAW,CAAe;IAC1B,SAAS,CAAsB;IAC/B,aAAa,GAAW,IAAI,CAAC,KAAK,CAAC;IAG3C,KAAK,CAAC,MAAM;QACX,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAGD,KAAK,CAAC,UAAU;QACf,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC;IAGD,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAGD,KAAK,CAAC,eAAe;QACpB,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IACrC,CAAC;IAGD,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAGD,YAAY;QACX,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAGD,cAAc;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAGD,iBAAiB;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QACxD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACvD,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC3B,WAAW,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5C,OAAO;YACR,CAAC;iBAAM,IAAI,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3C,WAAW,EAAE,IAAI,EAAE,CAAC;YACrB,CAAC;QACF,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAChC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAClE,CAAC;QAEF,gCAAgC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACtE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC,WAAW,CAAC,CAAC;QAElD,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzC,IAAI,CAAC,SAAS,GAAG,WAA6C,CAAC;QAC/D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAE3D,IAAI,gBAAgB,EAAE,CAAC;YACtB,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1D,OAAO;QACR,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,WAA0B,CAAC,CAAC;IACjD,CAAC;IAGD,KAAK,CAAC,aAAa;QAClB,gDAAgD;QAChD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;YACnC,OAAO;QACR,CAAC;QAED,wEAAwE;QACxE,qBAAqB,CAAC,GAAG,EAAE;YAC1B,qBAAqB,CAAC,KAAK,IAAI,EAAE;gBAChC,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAEjD,gCAAgC;gBAChC,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAChC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAClE,CAAC;oBAEF,gCAAgC;oBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBACpE,+BAA+B;oBAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACzE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC,WAAW,CAAC,CAAC;oBAElD,IAAI,WAAW,EAAE,CAAC;wBACjB,IAAI,CAAC,cAAc,CAAC,WAA0B,CAAC,CAAC;oBACjD,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAE5B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAEvD,IAAI,WAAW,EAAE,CAAC;wBACjB,qBAAqB,CAAC,GAAG,EAAE;4BAC1B,WAAW,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5C,CAAC,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,iDAAiD;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,4CAA4C;IACrE,CAAC;IAED,wDAAwD;IACxD,kBAAkB;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,EAAE,qBAAqB,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACnE,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,wCAAwC;IAC9D,CAAC;IACS,mBAAmB,CAAC,KAAY;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,CAAC;IACF,CAAC;IAES,qBAAqB,CAAC,aAA4B;QAC3D,aAAa,CAAC,eAAe,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO;QAEnD,aAAa,CAAC,cAAc,EAAE,CAAC;QAC/B,QAAQ,aAAa,CAAC,GAAG,EAAE,CAAC;YAC3B,KAAK,WAAW,CAAC;YACjB,KAAK,SAAS;gBACb,MAAM,kBAAkB,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/F,MAAM,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;gBACrF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,MAAM;YACP,KAAK,OAAO;gBACX,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5D,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;oBAChD,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM;YACP,KAAK,QAAQ;gBACZ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,MAAM;QACR,CAAC;IACF,CAAC;IAED,iBAAiB;IACjB,kBAAkB,GAAG,CAAC,KAAY,EAAE,EAAE;QACrC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;IACF,CAAC,CAAC;IAEF,oBAAoB,GAAG,CAAC,MAKvB,EAAE,EAAE;QACJ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,uBAAuB;YACvB,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACxD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAC3C,CAAC;YACF,IAAI,CAAC,KAAK;gBACT,IAAI,CAAC,KAAK,EAAE,MAAM,CACjB,QAAQ,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAC5E,IAAI,IAAI,CAAC,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACP,YAAY;YACZ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;aAC3E,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;IACF,CAAC,CAAC;IAEF,iBAAiB,GAAG,CAAC,MAKpB,EAAE,EAAE;QACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACjC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;YAAE,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;YAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,sBAAsB,GAAG,CAAC,MAIzB,EAAE,EAAE;QACJ,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAC/C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CACnD,CAAC;QAEF,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC/B,IAAI,CAAC,yBAAyB,CAAC;gBAC9B,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,UAAU,IAAI,UAAU,KAAK,IAAI;aAC7C,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,yBAAyB,GAAG,CAAC,MAG5B,EAAE,EAAE;QACJ,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAEtC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAC/C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CACnD,CAAC;QAEF,IAAI,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACvC,6BAA6B;YAC7B,IAAI,CAAC,KAAK;gBACT,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC3F,IAAI,CAAC;QACP,CAAC;aAAM,CAAC;YACP,oCAAoC;YACpC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CACxC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CACtE,CAAC;YACF,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;QACxD,CAAC;IACF,CAAC,CAAC;IAEM,aAAa;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,oBAAoB;YACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;YACpC,OAAO;QACR,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAqB,CAAC;QAEpD,oBAAoB;QACpB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAE3B,qBAAqB;gBACrB,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,4BAA4B;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAClF,CAAC;IAEO,eAAe,CAAC,MAAyB,EAAE,UAAkC;QACpF,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACnD,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,mBAAmB;YACnB,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAEO,iBAAiB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,oBAAoB,GAAG,CAAC,KAAY,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAEnC,uBAAuB;QACvB,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC;IAEM,KAAK,CAAC,qBAAqB;QAClC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,qBAAqB,GAAG,CAAC,MAAyB,EAAE,EAAE;QAC7D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO;QAEvC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9E,IAAI,iBAAiB,EAAE,CAAC;YACvB,uBAAuB;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QAC5E,CAAC;aAAM,CAAC;YACP,YAAY;YACZ,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC,CAAC;IAEM,sBAAsB,CAC7B,YAA+B,EAC/B,kBAA2B,KAAK;QAEhC,MAAM,wBAAwB,GAAG,CAAC,MAAyB,EAAE,EAAE,CAC9D,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE/E,IAAI,YAAY,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CACjC,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CACpE,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAClF,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAClC,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACrD,MAAM,CAAC,EAAE,CACR,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK;gBAChC,MAAM,CAAC,IAAI,KAAK,MAAM;gBACtB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC5C,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAE9B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,qBAAqB,CAAC,WAA8B;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAExC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC5C,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAC3D,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC1D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,kBAAkB,CAAC,YAA+B;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC5C,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CACjD,CAAC,MAAM,CAAC;QAET,OAAO;YACN,aAAa;YACb,UAAU,EAAE,QAAQ,CAAC,MAAM;SAC3B,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEzD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEzF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,OAAO,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEO,eAAe;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEjC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAEzD,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEjD,OAAO,YAAY;YAClB,CAAC,CAAC,IAAI,CAAC,eAAe;YACtB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,aAA0B;QACtD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa;YAAE,OAAO;QAEhD,qBAAqB,CAAC,GAAG,EAAE;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;YAC1C,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;YAChD,MAAM,iBAAiB,GAAG,QAAS,CAAC,SAAS,CAAC;YAC9C,MAAM,cAAc,GAAG,QAAS,CAAC,YAAY,CAAC;YAE9C,MAAM,eAAe,GAAG,QAAS,CAAC,aAAa,CAAC,6CAA6C,CAAC,CAAC;YAC/F,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAE,eAA+B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzF,MAAM,oBAAoB,GAAG,cAAc,GAAG,YAAY,CAAC;YAC3D,MAAM,UAAU,GAAG,iBAAiB,GAAG,YAAY,CAAC;YACpD,MAAM,aAAa,GAAG,iBAAiB,GAAG,cAAc,CAAC;YAEzD,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;gBAC5B,QAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5E,CAAC;iBAAM,IAAI,SAAS,GAAG,YAAY,GAAG,aAAa,EAAE,CAAC;gBACrD,QAAS,CAAC,QAAQ,CAAC;oBAClB,GAAG,EAAE,SAAS,GAAG,YAAY,GAAG,oBAAoB,GAAG,YAAY;oBACnE,QAAQ,EAAE,SAAS;iBACnB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACL,OAAO,CACN,iEACC,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAChC,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO,EAAE;YAEjD,4DACC,KAAK,EAAE;oBACN,0BAA0B,EAAE,IAAI;oBAChC,gCAAgC,EAAE,IAAI,CAAC,MAAM;oBAC7C,oCAAoC,EAAE,IAAI,CAAC,QAAQ;oBACnD,iCAAiC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;iBAC/C,EACD,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBAE/B,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,cAAc,EAAE,CACjB,CACI,CACX,CAAC;IACH,CAAC;IAEO,aAAa;QACpB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,OAAO,CACN,WACC,KAAK,EAAC,mCAAmC,EACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,KAAK,EAAE,IAAI,CAAC,YAAY;YAExB,YAAM,KAAK,EAAC,iCAAiC,IAAE,IAAI,CAAC,eAAe,EAAE,CAAQ;YAC5E,IAAI,CAAC,SAAS,IAAI,cAAc,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAClE,eACC,GAAG,EAAC,YAAY,EAChB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,EAAE,EACR,KAAK,EAAC,MAAM,EACZ,KAAK,EAAC,iCAAiC,EACvC,OAAO,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;oBACtB,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,MAAM,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;gBACpC,CAAC,GACS,CACX;YAED,eACC,GAAG,EAAC,YAAY,EAChB,IAAI,EAAC,WAAW,EAChB,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE;oBACN,iCAAiC,EAAE,IAAI;oBACvC,uCAAuC,EAAE,IAAI,CAAC,MAAM;iBACpD,GACS,CACN,CACN,CAAC;IACH,CAAC;IAEO,cAAc;QACrB,MAAM,KAAK,GAAG;YACb,gBAAgB,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO;YAC/C,0BAA0B,EAAE,IAAI,CAAC,cAAc,IAAI,OAAO;SAC1D,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAEvC,OAAO,CACN,iBAAW,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa;YACrF,WAAK,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE;gBAC3D,WACC,KAAK,EAAE;wBACN,oCAAoC,EAAE,IAAI;wBAC1C,2CAA2C,EAAE,IAAI,CAAC,eAAe;qBACjE,EACD,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,EAC1C,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EACnC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBAEjC,IAAI,CAAC,UAAU,IAAI,CACnB,8BACC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAChC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,eAAe,EAAE,CAAC,KAA0B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,EACvF,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,GACnB,CAC1B;oBAEA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClC,EAAC,QAAQ;wBACP,IAAI,CAAC,MAAM,IAAI,CACf,8BACC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EACnE,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,EACvC,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,CAAC,EAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,CAAC,EACf,MAAM,GAQN,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EACvC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,KAAK,GACM,CAC1B;wBACA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5C,YAAM,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE;4BACnC,8BACC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,UAAU,EACT,MAAM,CAAC,IAAI,KAAK,MAAM;oCACrB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;oCAC/D,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAEtC,SAAS,EAAE,KAAK,KAAK,IAAI,CAAC,SAAS,EACnC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,CAAC,EACf,MAAM,GAQN,EAAE,EAAE;oCACJ,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;wCACjD,OAAO;oCACR,CAAC;oCAED,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gCAChC,CAAC,EACD,WAAW,EAAE,IAAI,CAAC,WAAW,KACzB,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,GACrD,CACpB,CACP,CAAC,CACQ,CACX,CAAC,CAAC,CAAC,CACH,YAAM,IAAI,EAAC,oBAAoB;wBAC9B,WAAK,KAAK,EAAE,8CAA8C,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,IACjF,IAAI,CAAC,iBAAiB,CAClB,CACA,CACP,CACI,CACD,CACK,CACZ,CAAC;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Fragment,\n Method,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { BaseDropdownEvent } from '../../utils/base-dropdown-event';\nimport { SelectMultipleEvents, SelectOption, SelectStyleProps } from '../sd-select/sd-select';\nimport { SelectKeyboardNavigation } from '../../utils/select-keyboard-navigation';\nimport { SdTooltipProps } from '../sd-tooltip/sd-tooltip';\nimport { Rule } from '../../components';\n\nexport interface SelectOptionGroup extends SelectOption {\n type: 'group' | 'subgroup' | 'item' | 'all';\n parent?: string;\n}\n\n@Component({\n tag: 'sd-select-multiple-group',\n styleUrl: 'sd-select-multiple-group.scss',\n})\nexport class SdSelectMultipleGroup extends BaseDropdownEvent {\n @Element() el!: HTMLElement;\n\n // props\n @Prop({ mutable: true }) value: SelectOptionGroup[] | null = null;\n @Prop({ mutable: true }) options: SelectOptionGroup[] = [];\n @Prop() placeholder: string = '선택';\n @Prop() optionPlaceholder: string = '옵션이 없습니다.';\n @Prop() width: string = '200px';\n @Prop() dropdownHeight: string = '260px';\n @Prop() disabled: boolean = false;\n @Prop() clearable: boolean = false;\n @Prop() searchable: boolean = false;\n @Prop() useCheckbox: boolean = false;\n @Prop() useAll: boolean = false;\n @Prop() allCheckedLabel = '전체';\n @Prop() allCheckOptionLabel = '전체';\n\n // props - label\n @Prop() label: string = '';\n @Prop() useLabelRequired: boolean = false;\n @Prop() labelTooltip: string = '';\n @Prop() labelTooltipProps: SdTooltipProps | null = null;\n\n // props - form\n @Prop() name?: string;\n @Prop() rules?: Rule[] = [];\n @Prop() error?: boolean = false;\n\n // props - custom styles\n @Prop() containerStyle: SelectStyleProps['containerStyle'] = {};\n @Prop() triggerStyle: SelectStyleProps['triggerStyle'] = {};\n @Prop() dropdownStyle: SelectStyleProps['dropdownStyle'] = {};\n @Prop() optionStyle: SelectStyleProps['optionStyle'] = {};\n @Prop() labelStyle: SelectStyleProps['labelStyle'] = {};\n\n // props - custom slots\n @Prop() optionRenderer?: (option: SelectOption, index: number, isSelected: boolean) => any;\n\n // states\n @State() filteredOptions = this.options;\n @State() isOpen: boolean = false;\n @State() searchText: string | null = null;\n @State() itemIndex: number = -1;\n @State() isScrolled: boolean = false;\n @State() isDropdownReady: boolean = false;\n\n // events\n @Event({ eventName: 'sdUpdate' }) update?: EventEmitter<SelectMultipleEvents['sdUpdate']>;\n @Event({ eventName: 'sdDropDownShow' }) dropDownShow?: EventEmitter<\n SelectMultipleEvents['dropDownShow']\n >;\n\n private selectRef?: HTMLElement;\n private searchRef?: HTMLSdSelectSearchInputElement;\n private triggerRef?: HTMLElement;\n private optionRef?: HTMLSdSelectOptionGroupElement;\n private dropdownRef?: HTMLElement;\n private formField?: HTMLSdFieldElement;\n private dropDownWidth: string = this.width;\n\n @Method()\n async sdOpen(): Promise<void> {\n await new Promise(resolve => setTimeout(resolve, 0));\n this.isOpen = true;\n }\n\n @Method()\n async sdValidate() {\n this.formField?.sdValidate();\n }\n\n @Method()\n async sdReset() {\n this.formField?.sdReset();\n }\n\n @Method()\n async sdResetValidate() {\n this.formField?.sdResetValidation();\n }\n\n @Method()\n async sdFocus() {\n this.formField?.sdFocus();\n }\n\n @Watch('value')\n valueChanged() {\n this.update?.emit(this.value);\n }\n\n @Watch('options')\n optionsChanged() {\n this.filteredOptions = this.options;\n this.filterOptions();\n }\n\n @Watch('searchText')\n searchTextChanged() {\n this.filterOptions();\n }\n\n @Watch('itemIndex')\n async itemIndexChanged(newIndex: number, oldIndex: number) {\n if (this.searchable) {\n const searchInput = await this.getNativeInputElement();\n if (this.itemIndex === -1) {\n searchInput?.focus({ preventScroll: true });\n return;\n } else if (searchInput?.matches(':focus')) {\n searchInput?.blur();\n }\n }\n\n const optionElements = Array.from(\n this.dropdownRef?.querySelectorAll('sd-select-option-group') || [],\n );\n\n // useAll 사용시 \"전체\" 옵션 포함한 인덱스 사용\n const actualIndex = this.useAll ? this.itemIndex + 1 : this.itemIndex;\n const currentItem = optionElements?.[actualIndex];\n\n if (!currentItem || !this.isOpen) return;\n\n this.optionRef = currentItem as HTMLSdSelectOptionGroupElement;\n const isOptionDisabled = await this.optionRef.isDisabled();\n\n if (isOptionDisabled) {\n newIndex > oldIndex ? this.itemIndex++ : this.itemIndex--;\n return;\n }\n\n this.scrollToOption(currentItem as HTMLElement);\n }\n\n @Watch('isOpen')\n async isOpenChanged() {\n // Base class의 이벤트 관리 호출 - 다른 select와의 이벤트 충돌 방지\n this.onDropdownToggle(this.isOpen);\n this.dropDownShow?.emit({ isOpen: this.isOpen });\n this.isDropdownReady = false;\n\n if (this.isOpen === false) {\n await this.formField?.sdValidate();\n return;\n }\n\n // DOM 렌더링을 기다리기 위해 이중 requestAnimationFrame 사용 - (레이아웃/스타일 계산 - 페인트 이후)\n requestAnimationFrame(() => {\n requestAnimationFrame(async () => {\n const selectedOptions = this.getSelectedOption();\n\n // 선택된 옵션이 있으면 첫 번째 선택된 항목으로 스크롤\n if (selectedOptions && selectedOptions.length > 0) {\n const selectedIndex = this.options.indexOf(selectedOptions[0]);\n const optionElements = Array.from(\n this.dropdownRef?.querySelectorAll('sd-select-option-group') || [],\n );\n\n // useAll 사용시 \"전체\" 옵션 포함한 인덱스 사용\n const actualIndex = this.useAll ? selectedIndex + 1 : selectedIndex;\n // 선택된 옵션이 화면 가운데에 오도록 index 조정\n const targetIndex = Math.min(actualIndex + 4, optionElements.length - 1);\n const currentItem = optionElements?.[targetIndex];\n\n if (currentItem) {\n this.scrollToOption(currentItem as HTMLElement);\n }\n }\n\n this.isDropdownReady = true;\n\n if (this.searchable) {\n const searchInput = await this.getNativeInputElement();\n\n if (searchInput) {\n requestAnimationFrame(() => {\n searchInput.focus({ preventScroll: true });\n });\n }\n }\n });\n });\n }\n\n componentWillLoad() {\n // props가 모두 설정된 후에 실행되므로 올바른 options 값을 가져올 수 있음\n this.filteredOptions = this.options;\n this.initializeEvent(); // global dropdown Manager에 등록 + 이벤트 핸들러 초기화\n }\n\n // render 이후 label을 제외한 trigger의 너비를 기준으로 dropdown 너비 설정\n componentDidRender() {\n const trigger = this.triggerRef;\n const rect = trigger?.getBoundingClientRect();\n this.dropDownWidth = rect?.width ? `${rect.width}px` : this.width;\n }\n\n disconnectedCallback() {\n this.cleanupEvent(); // global dropdown Manager에서 제거 + 이벤트 정리\n }\n protected handleDocumentClick(event: Event): void {\n if (!this.selectRef?.contains(event.target as Node)) {\n this.isOpen = false;\n }\n }\n\n protected handleDocumentKeydown(keyboardEvent: KeyboardEvent): void {\n keyboardEvent.stopPropagation();\n const targetKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'];\n if (!targetKey.includes(keyboardEvent.key)) return;\n\n keyboardEvent.preventDefault();\n switch (keyboardEvent.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n const keyboardNavigation = new SelectKeyboardNavigation(this.searchable, this.filteredOptions);\n const nextIndex = keyboardNavigation.getNextIndex(this.itemIndex, keyboardEvent.key);\n this.itemIndex = nextIndex;\n break;\n case 'Enter':\n const selectedOption = this.filteredOptions[this.itemIndex];\n if (selectedOption && !selectedOption.disabled) {\n this.handleOptionSelection(selectedOption);\n }\n break;\n case 'Escape':\n this.isOpen = false;\n break;\n }\n }\n\n // event handlers\n handleTriggerClick = (event: Event) => {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n this.dropDownShow?.emit({ isOpen: this.isOpen });\n }\n };\n\n handleAllOptionClick = (detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n }) => {\n if (detail.isSelected) {\n // 이미 선택된 옵션인 경우, 선택 해제\n const filterDisabledOptions = this.filteredOptions.filter(\n opt => opt.type === 'item' && !opt.disabled,\n );\n this.value =\n this.value?.filter(\n selected => !filterDisabledOptions.some(opt => opt.value === selected.value),\n ) || this.value;\n } else {\n // 새로운 옵션 선택\n const valueSet = new Set([\n ...(this.value || []),\n ...this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled),\n ]);\n this.value = Array.from(valueSet);\n }\n };\n\n handleOptionClick = (detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n }) => {\n const { option, event } = detail;\n event.stopPropagation();\n\n if (option.type === 'group') this.handleGroupOptionClick(detail);\n if (option.type === 'subgroup') this.handleSubGroupOptionClick(detail);\n if (option.type === 'item') this.handleOptionSelection(option);\n };\n\n handleGroupOptionClick = (detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n }) => {\n const { option, isSelected } = detail;\n const childOptions = this.filteredOptions.filter(\n opt => opt.parent === option.value && !opt.disabled,\n );\n\n childOptions.forEach(subgroup => {\n this.handleSubGroupOptionClick({\n option: subgroup,\n isSelected: isSelected || isSelected === null,\n });\n });\n };\n\n handleSubGroupOptionClick = (detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n }) => {\n const { option, isSelected } = detail;\n\n const childOptions = this.filteredOptions.filter(\n opt => opt.parent === option.value && !opt.disabled,\n );\n\n if (isSelected || isSelected === null) {\n // 모든 자식 옵션이 선택된 경우, 모두 선택 해제\n this.value =\n this.value?.filter(selected => !childOptions.some(child => child.value === selected.value)) ||\n null;\n } else {\n // 일부 또는 전체 자식 옵션이 선택되지 않은 경우, 모두 선택\n const newSelections = childOptions.filter(\n child => !this.value?.some(selected => selected.value === child.value),\n );\n this.value = [...(this.value || []), ...newSelections];\n }\n };\n\n private filterOptions() {\n if (!this.searchText || this.searchText.trim() === '') {\n // 검색어가 없으면 전체 옵션 표시\n this.filteredOptions = this.options;\n return;\n }\n\n const searchTerm = this.searchText.toLowerCase();\n const matchedOptions = new Set<SelectOptionGroup>();\n\n // 1. 직접 매칭되는 옵션들 찾기\n this.options.forEach(option => {\n if (option.label.toLowerCase().includes(searchTerm)) {\n matchedOptions.add(option);\n\n // 매칭된 옵션의 상위 그룹들도 포함\n this.addParentGroups(option, matchedOptions);\n }\n });\n\n // 2. Set을 배열로 변환하고 원본 순서 유지\n this.filteredOptions = this.options.filter(option => matchedOptions.has(option));\n }\n\n private addParentGroups(option: SelectOptionGroup, matchedSet: Set<SelectOptionGroup>) {\n if (!option.parent) return;\n\n const parentOption = this.options.find(opt => opt.value === option.parent);\n if (parentOption && !matchedSet.has(parentOption)) {\n matchedSet.add(parentOption);\n // 재귀적으로 상위 그룹들도 추가\n this.addParentGroups(parentOption, matchedSet);\n }\n }\n\n private getSelectedOption(): SelectOptionGroup[] {\n return this.options.filter(option => this.value?.includes(option));\n }\n\n private handleDropdownScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n const scrollTop = target.scrollTop;\n\n // 스크롤이 조금이라도 되면 그림자 표시\n this.isScrolled = scrollTop > 0;\n };\n\n private async getNativeInputElement(): Promise<HTMLInputElement | null> {\n if (this.searchRef) {\n return this.searchRef.sdGetNativeElement();\n }\n return null;\n }\n\n private handleOptionSelection = (option: SelectOptionGroup) => {\n if (!option || option.disabled) return;\n\n const isAlreadySelected = this.value?.some(opt => opt.value === option.value);\n if (isAlreadySelected) {\n // 이미 선택된 옵션인 경우, 선택 해제\n this.value = this.value?.filter(opt => opt.value !== option.value) || null;\n } else {\n // 새로운 옵션 선택\n this.value = [...(this.value || []), option];\n }\n };\n\n private getAllItemsUnderOption(\n parentOption: SelectOptionGroup,\n includeDisabled: boolean = false,\n ): SelectOptionGroup[] {\n const filterChildrenWithParent = (option: SelectOptionGroup) =>\n option.parent === parentOption.value && (includeDisabled || !option.disabled);\n\n if (parentOption.type === 'subgroup') {\n return this.filteredOptions.filter(\n option => filterChildrenWithParent(option) && option.type === 'item',\n );\n }\n\n const allItems: SelectOptionGroup[] = [];\n const childOptions = this.filteredOptions.filter(filterChildrenWithParent);\n const subgroupOptions = childOptions.filter(option => option.type === 'subgroup');\n subgroupOptions.forEach(subgroup => {\n const itemsUnderSubgroup = this.filteredOptions.filter(\n option =>\n option.parent === subgroup.value &&\n option.type === 'item' &&\n (includeDisabled ? true : !option.disabled),\n );\n allItems.push(...itemsUnderSubgroup);\n });\n const directItems = childOptions.filter(option => option.type === 'item');\n allItems.push(...directItems);\n\n return allItems;\n }\n\n private isAllChildrenSelected(groupOption: SelectOptionGroup): boolean | null {\n const allItems = this.getAllItemsUnderOption(groupOption);\n\n if (allItems.length === 0) return false;\n\n const selectedItems = allItems.filter(item =>\n this.value?.some(selected => selected.value === item.value),\n );\n\n if (selectedItems.length === allItems.length) return true;\n if (selectedItems.length > 0) return null;\n return false;\n }\n\n private getChildrenOptions(parentOption: SelectOptionGroup) {\n const allItems = this.getAllItemsUnderOption(parentOption, true);\n const selectedCount = allItems.filter(item =>\n this.value?.some(val => val.value === item.value),\n ).length;\n\n return {\n selectedCount,\n totalCount: allItems.length,\n };\n }\n\n private isAllOptionsSelected(): boolean {\n if (!this.value || this.value.length === 0) return false;\n\n const selectableItems = this.options.filter(opt => opt.type === 'item' && !opt.disabled);\n\n if (selectableItems.length === 0) return false;\n\n const selectedValues = new Set(this.value.map(v => v.value));\n return selectableItems.every(option => selectedValues.has(option.value));\n }\n\n private getTriggerLabel() {\n const selectedOption = this.getSelectedOption();\n if (!selectedOption) return '선택';\n\n if (selectedOption.length === 0) return this.placeholder;\n\n const isAllChecked = this.isAllOptionsSelected();\n\n return isAllChecked\n ? this.allCheckedLabel\n : selectedOption.map(option => option.label).join(', ');\n }\n\n closeDropdown() {\n this.isOpen = false;\n }\n\n private async scrollToOption(optionElement: HTMLElement) {\n if (!this.dropdownRef || !optionElement) return;\n\n requestAnimationFrame(() => {\n const dropdown = this.dropdownRef;\n const optionTop = optionElement.offsetTop;\n const optionHeight = optionElement.offsetHeight;\n const dropdownScrollTop = dropdown!.scrollTop;\n const dropdownHeight = dropdown!.clientHeight;\n\n const searchContainer = dropdown!.querySelector('.sd-select-multiple-group__search-container');\n const searchOffset = searchContainer ? (searchContainer as HTMLElement).offsetHeight : 0;\n\n const visibleContentHeight = dropdownHeight - searchOffset;\n const visibleTop = dropdownScrollTop + searchOffset;\n const visibleBottom = dropdownScrollTop + dropdownHeight;\n\n if (optionTop < visibleTop) {\n dropdown!.scrollTo({ top: optionTop - searchOffset, behavior: 'instant' });\n } else if (optionTop + optionHeight > visibleBottom) {\n dropdown!.scrollTo({\n top: optionTop + optionHeight - visibleContentHeight - searchOffset,\n behavior: 'instant',\n });\n }\n });\n }\n\n render() {\n return (\n <sd-field\n label={this.label}\n name={this.name}\n rules={this.rules}\n error={this.error}\n disabled={this.disabled}\n useLabelRequired={this.useLabelRequired}\n labelTooltip={this.labelTooltip}\n labelTooltipProps={this.labelTooltipProps}\n ref={el => (this.formField = el)}\n style={{ '--field-width': this.width || '200px' }}\n >\n <div\n class={{\n 'sd-select-multiple-group': true,\n 'sd-select-multiple-group--open': this.isOpen,\n 'sd-select-multiple-group--disabled': this.disabled,\n 'sd-select-multiple-group--label': !!this.label,\n }}\n ref={el => (this.selectRef = el)}\n >\n {this.renderTrigger()}\n {this.renderDropdown()}\n </div>\n </sd-field>\n );\n }\n\n private renderTrigger() {\n const selectedOption = this.getSelectedOption();\n return (\n <div\n class=\"sd-select-multiple-group__trigger\"\n tabindex={this.disabled ? -1 : 0}\n onClick={this.handleTriggerClick}\n style={this.triggerStyle}\n >\n <span class=\"sd-select-multiple-group__value\">{this.getTriggerLabel()}</span>\n {this.clearable && selectedOption?.length > 0 && !this.disabled && (\n <sd-icon\n key=\"close-icon\"\n name=\"close\"\n size={10}\n color=\"#888\"\n class=\"sd-select-multiple-group__clear\"\n onClick={async event => {\n event.stopPropagation();\n this.value = null;\n await this.formField?.sdValidate();\n }}\n ></sd-icon>\n )}\n\n <sd-icon\n key=\"arrow-icon\"\n name=\"arrowDown\"\n color=\"#888\"\n class={{\n 'sd-select-multiple-group__arrow': true,\n 'sd-select-multiple-group__arrow--open': this.isOpen,\n }}\n ></sd-icon>\n </div>\n );\n }\n\n private renderDropdown() {\n const style = {\n '--select-width': this.dropDownWidth || '200px',\n '--select-dropdown-height': this.dropdownHeight || '260px',\n };\n\n if (this.isOpen === false) return null;\n\n return (\n <sd-portal open={this.isOpen} parentRef={this.selectRef} onSdClose={this.closeDropdown}>\n <div style={{ width: '0', height: '0', overflow: 'visible' }}>\n <div\n class={{\n 'sd-select-multiple-group__dropdown': true,\n 'sd-select-multiple-group__dropdown--ready': this.isDropdownReady,\n }}\n style={{ ...style, ...this.dropdownStyle }}\n onScroll={this.handleDropdownScroll}\n ref={el => (this.dropdownRef = el)}\n >\n {this.searchable && (\n <sd-select-search-input\n ref={el => (this.searchRef = el)}\n isScrolled={this.isScrolled}\n searchText={this.searchText}\n onSdSearchInput={(event: CustomEvent<string>) => (this.searchText = event.detail || '')}\n onSdSearchFocus={() => (this.itemIndex = -1)}\n ></sd-select-search-input>\n )}\n\n {this.filteredOptions.length > 0 ? (\n <Fragment>\n {this.useAll && (\n <sd-select-option-group\n option={{ label: this.allCheckOptionLabel, value: '', type: 'all' }}\n index={0}\n isSelected={this.isAllOptionsSelected()}\n isFocused={this.itemIndex === 0}\n optionStyle={this.optionStyle}\n onOptionClick={({\n detail,\n }: {\n detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n };\n }) => this.handleAllOptionClick(detail)}\n useCheckbox={this.useCheckbox}\n useIndicator={false}\n ></sd-select-option-group>\n )}\n {this.filteredOptions.map((option, index) => (\n <slot name={`option-${option.value}`}>\n <sd-select-option-group\n option={option}\n index={index}\n isSelected={\n option.type === 'item'\n ? this.value?.some(selected => selected.value === option.value)\n : this.isAllChildrenSelected(option)\n }\n isFocused={index === this.itemIndex}\n optionStyle={this.optionStyle}\n onOptionClick={({\n detail,\n }: {\n detail: {\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n };\n }) => {\n if (option.type !== 'item' && !this.useCheckbox) {\n return;\n }\n\n this.handleOptionClick(detail);\n }}\n useCheckbox={this.useCheckbox}\n {...(option.type !== 'item' && { countInfo: this.getChildrenOptions(option) })}\n ></sd-select-option-group>\n </slot>\n ))}\n </Fragment>\n ) : (\n <slot name=\"option-placeholder\">\n <div class={'sd-select-multiple-group__option-placeholder'} style={this.optionStyle}>\n {this.optionPlaceholder}\n </div>\n </slot>\n )}\n </div>\n </div>\n </sd-portal>\n );\n }\n}\n"]}
@@ -39,7 +39,7 @@ export class SdSelectOptionGroup {
39
39
  }
40
40
  };
41
41
  render() {
42
- return (h("div", { key: 'ed43a2fa2ae5b182f1c99b272126fb3629617681', class: {
42
+ return (h("div", { key: '9ba2c1d9963ae5b20d8823ed4e1054f4b1ea1164', class: {
43
43
  'sd-select__option-group': true,
44
44
  'sd-select__option-group--selected': !!this.isSelected,
45
45
  'sd-select__option-group--disabled': !!this.option.disabled,
@@ -48,10 +48,10 @@ export class SdSelectOptionGroup {
48
48
  'sd-select__option-group--group': this.option.type === 'group',
49
49
  'sd-select__option-group--subgroup': this.option.type === 'subgroup',
50
50
  'sd-select__option-group--item': this.option.type === 'item',
51
- }, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, h("div", { key: '97de3f6a855bf737cbaa5f23f7986b2c5ee10c52', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (h("sd-checkbox", { key: '7d8814dc060dd769f100be09d87edcc440cbf93d', checked: this.isSelected, disabled: this.option.disabled, onClick: e => {
51
+ }, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, h("div", { key: '6576ff206863a28062566b816cd81955f1890ec2', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (h("sd-checkbox", { key: 'ad1367ec16aff35a09bc1ca62d4981a29ad0c20e', value: this.isSelected, disabled: this.option.disabled, onClick: e => {
52
52
  e.preventDefault();
53
53
  this.handleClick(this.option, this.isSelected, e);
54
- } })), h("span", { key: '8fd8bf56260bf49f42a0cb205868a45912e5a4de', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (h("span", { key: 'eaa10fa1f13f4f6bc48b22967b1b31a2e894865c', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
54
+ } })), h("span", { key: 'a51e3950353966056edd756259d3224bd588c78b', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (h("span", { key: 'ed003ff2d7616096a4759b253718e5fc5a09c007', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
55
55
  }
56
56
  static get is() { return "sd-select-option-group"; }
57
57
  static get originalStyleUrls() {
@@ -1 +1 @@
1
- {"version":3,"file":"sd-select-option-group.js","sourceRoot":"","sources":["../../../../src/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State } from '@stencil/core';\nimport { SelectOptionGroup } from '../../sd-select/sd-select';\n\n@Component({\n tag: 'sd-select-option-group',\n styleUrl: 'sd-select-option-group.scss',\n})\nexport class SdSelectOptionGroup {\n @Element() el!: HTMLElement;\n\n @Prop() option!: SelectOptionGroup;\n @Prop() index!: number;\n @Prop() isSelected: boolean | null = false;\n @Prop() isFocused: boolean = false;\n @Prop() optionStyle?: { [key: string]: string };\n @Prop() disabled: boolean = false;\n @Prop() useCheckbox: boolean = false;\n @Prop() useIndicator?: boolean = true;\n @Prop() countInfo?: { selectedCount: number; totalCount: number } = {\n selectedCount: 0,\n totalCount: 0,\n };\n\n @State() isHovered: boolean = false;\n\n @Method()\n async isDisabled(): Promise<boolean> {\n return !!this.option.disabled || this.option.type === 'group' || this.option.type === 'subgroup';\n }\n\n @Event() optionClick!: EventEmitter<{\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n }>;\n\n private handleClick = (\n option: SelectOptionGroup,\n isSelected: boolean | null,\n event: MouseEvent,\n ) => {\n event.stopPropagation();\n\n if (option.type === 'group' || option.type === 'subgroup') {\n this.optionClick.emit({\n option: this.option,\n isSelected,\n index: this.index,\n event,\n });\n return;\n }\n\n if (!this.option.disabled && !this.disabled) {\n this.optionClick.emit({\n option: this.option,\n isSelected,\n index: this.index,\n event,\n });\n }\n };\n\n render() {\n return (\n <div\n class={{\n 'sd-select__option-group': true,\n 'sd-select__option-group--selected': !!this.isSelected,\n 'sd-select__option-group--disabled': !!this.option.disabled,\n 'sd-select__option-group--focused': this.isFocused,\n 'sd-select__option-group--use-checkbox': this.useCheckbox,\n 'sd-select__option-group--group': this.option.type === 'group',\n 'sd-select__option-group--subgroup': this.option.type === 'subgroup',\n 'sd-select__option-group--item': this.option.type === 'item',\n }}\n onMouseEnter={() => (this.isHovered = true)}\n onMouseLeave={() => (this.isHovered = false)}\n style={this.optionStyle}\n data-index={this.index}\n onClick={event => this.handleClick(this.option, this.isSelected, event)}\n >\n <div class=\"sd-select__option-group__label-wrapper\">\n {this.useCheckbox && (\n <sd-checkbox\n checked={this.isSelected}\n disabled={this.option.disabled}\n onClick={e => {\n e.preventDefault();\n this.handleClick(this.option, this.isSelected, e);\n }}\n ></sd-checkbox>\n )}\n <span class=\"sd-select__option-group-label\">{this.option.label}</span>\n {this.useIndicator && this.option.type !== 'item' && (\n <span class=\"sd-select__option-group__count-indicator\">{`(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`}</span>\n )}\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"sd-select-option-group.js","sourceRoot":"","sources":["../../../../src/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State } from '@stencil/core';\nimport { SelectOptionGroup } from '../../sd-select/sd-select';\n\n@Component({\n tag: 'sd-select-option-group',\n styleUrl: 'sd-select-option-group.scss',\n})\nexport class SdSelectOptionGroup {\n @Element() el!: HTMLElement;\n\n @Prop() option!: SelectOptionGroup;\n @Prop() index!: number;\n @Prop() isSelected: boolean | null = false;\n @Prop() isFocused: boolean = false;\n @Prop() optionStyle?: { [key: string]: string };\n @Prop() disabled: boolean = false;\n @Prop() useCheckbox: boolean = false;\n @Prop() useIndicator?: boolean = true;\n @Prop() countInfo?: { selectedCount: number; totalCount: number } = {\n selectedCount: 0,\n totalCount: 0,\n };\n\n @State() isHovered: boolean = false;\n\n @Method()\n async isDisabled(): Promise<boolean> {\n return !!this.option.disabled || this.option.type === 'group' || this.option.type === 'subgroup';\n }\n\n @Event() optionClick!: EventEmitter<{\n option: SelectOptionGroup;\n isSelected: boolean | null;\n index: number;\n event: MouseEvent;\n }>;\n\n private handleClick = (\n option: SelectOptionGroup,\n isSelected: boolean | null,\n event: MouseEvent,\n ) => {\n event.stopPropagation();\n\n if (option.type === 'group' || option.type === 'subgroup') {\n this.optionClick.emit({\n option: this.option,\n isSelected,\n index: this.index,\n event,\n });\n return;\n }\n\n if (!this.option.disabled && !this.disabled) {\n this.optionClick.emit({\n option: this.option,\n isSelected,\n index: this.index,\n event,\n });\n }\n };\n\n render() {\n return (\n <div\n class={{\n 'sd-select__option-group': true,\n 'sd-select__option-group--selected': !!this.isSelected,\n 'sd-select__option-group--disabled': !!this.option.disabled,\n 'sd-select__option-group--focused': this.isFocused,\n 'sd-select__option-group--use-checkbox': this.useCheckbox,\n 'sd-select__option-group--group': this.option.type === 'group',\n 'sd-select__option-group--subgroup': this.option.type === 'subgroup',\n 'sd-select__option-group--item': this.option.type === 'item',\n }}\n onMouseEnter={() => (this.isHovered = true)}\n onMouseLeave={() => (this.isHovered = false)}\n style={this.optionStyle}\n data-index={this.index}\n onClick={event => this.handleClick(this.option, this.isSelected, event)}\n >\n <div class=\"sd-select__option-group__label-wrapper\">\n {this.useCheckbox && (\n <sd-checkbox\n value={this.isSelected}\n disabled={this.option.disabled}\n onClick={e => {\n e.preventDefault();\n this.handleClick(this.option, this.isSelected, e);\n }}\n ></sd-checkbox>\n )}\n <span class=\"sd-select__option-group-label\">{this.option.label}</span>\n {this.useIndicator && this.option.type !== 'item' && (\n <span class=\"sd-select__option-group__count-indicator\">{`(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`}</span>\n )}\n </div>\n </div>\n );\n }\n}\n"]}
@@ -29,16 +29,40 @@
29
29
  }
30
30
  .sd-table__wrapper .sd-table__container {
31
31
  width: 100%;
32
- height: auto;
32
+ height: var(--table-container-height, auto);
33
+ display: flex;
34
+ flex-direction: column;
35
+ position: relative;
33
36
  border: 1px solid #e1e1e1;
34
37
  border-radius: 8px;
35
38
  font-size: 12px;
36
39
  overflow: hidden;
40
+ background: #ffffff;
37
41
  }
38
42
  .sd-table__wrapper .sd-table__container .sd-table__middle {
39
43
  overflow: auto;
40
44
  will-change: scroll-position;
41
- height: var(--table-height, auto);
45
+ min-height: var(--table-container-height, auto);
46
+ }
47
+ .sd-table__wrapper .sd-table__container .sd-table__middle--scrollable {
48
+ height: var(--table-container-height, auto);
49
+ }
50
+ .sd-table__wrapper .sd-table__container .sd-table__middle--loading {
51
+ overflow: hidden !important;
52
+ pointer-events: none;
53
+ }
54
+ .sd-table__wrapper .sd-table__container .sd-table__middle--loading__spinner {
55
+ position: absolute;
56
+ top: 0;
57
+ left: 0;
58
+ width: 100%;
59
+ height: var(--table-container-height, 100%);
60
+ min-height: var(--table-container-height, 100%);
61
+ background: rgba(255, 255, 255, 0.6);
62
+ z-index: 200;
63
+ display: flex;
64
+ align-items: center;
65
+ justify-content: center;
42
66
  }
43
67
  .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table {
44
68
  background-color: white;
@@ -47,16 +71,40 @@
47
71
  border-collapse: separate;
48
72
  border-spacing: 0;
49
73
  table-layout: fixed;
74
+ }
75
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll {
50
76
  position: relative;
77
+ height: var(--total-virtual-height, --table-container-height, auto);
78
+ }
79
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr:not([aria-hidden=true]) {
80
+ width: 100%;
81
+ }
82
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true] {
83
+ padding: 0;
84
+ border: none;
85
+ }
86
+ .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 {
87
+ display: none;
51
88
  }
52
89
  .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected,
53
90
  .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected {
91
+ position: relative;
54
92
  width: 52px !important;
55
93
  max-width: 52px !important;
56
94
  min-width: 52px !important;
57
95
  padding: 0 10px 0 24px;
58
96
  text-align: left;
59
97
  }
98
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected sd-checkbox label,
99
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected sd-checkbox label {
100
+ position: relative;
101
+ }
102
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected sd-checkbox label:before,
103
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected sd-checkbox label:before {
104
+ content: "";
105
+ position: absolute;
106
+ inset: -6px;
107
+ }
60
108
  .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-header thead {
61
109
  position: sticky;
62
110
  top: 0;
@@ -142,10 +190,10 @@
142
190
  .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead {
143
191
  height: 36px;
144
192
  }
145
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead sd-tr {
193
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr {
146
194
  width: 100%;
147
195
  }
148
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead sd-tr sd-th {
196
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th {
149
197
  background: #f5faff;
150
198
  height: 36px;
151
199
  padding: 0 16px;
@@ -156,22 +204,22 @@
156
204
  user-select: none;
157
205
  position: relative;
158
206
  }
159
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead sd-tr sd-th.sd-th .sd-th__content {
207
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content {
160
208
  display: flex;
161
209
  flex-flow: row nowrap;
162
210
  align-items: center;
163
211
  gap: 4px;
164
212
  }
165
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead sd-tr sd-th.sd-th .sd-th__content--left {
213
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--left {
166
214
  justify-content: flex-start;
167
215
  }
168
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead sd-tr sd-th.sd-th .sd-th__content--center {
216
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--center {
169
217
  justify-content: center;
170
218
  }
171
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead sd-tr sd-th.sd-th .sd-th__content--right {
219
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--right {
172
220
  justify-content: flex-end;
173
221
  }
174
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead sd-tr sd-th.sd-th .sd-th__resizer {
222
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__resizer {
175
223
  position: absolute;
176
224
  top: 50%;
177
225
  right: 0;
@@ -183,41 +231,36 @@
183
231
  border-left: 1px solid #cccccc;
184
232
  border-right: 1px solid #cccccc;
185
233
  }
186
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-tbody .sd-table__loading {
187
- position: absolute;
188
- top: 0;
189
- left: 0;
190
- width: 100%;
191
- height: calc(var(--table-height, auto) - 36px);
192
- min-height: calc(100% - 36px);
193
- background: rgba(255, 255, 255, 0.6);
194
- z-index: 200;
195
- display: flex;
196
- align-items: center;
197
- justify-content: center;
198
- }
199
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-tbody sd-tr:last-of-type sd-td {
200
- border-bottom: none;
201
- }
202
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-tbody sd-tr sd-td {
234
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td {
203
235
  height: 44px;
204
236
  padding: 0 16px;
205
237
  border-bottom: 1px solid #e1e1e1;
206
238
  background: white;
207
239
  vertical-align: middle;
208
240
  }
209
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-tbody sd-tr sd-td.sd-td--left {
241
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--left {
210
242
  text-align: left;
211
243
  }
212
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-tbody sd-tr sd-td.sd-td--center {
244
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--center {
213
245
  text-align: center;
214
246
  }
215
- .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-tbody sd-tr sd-td.sd-td--right {
247
+ .sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--right {
216
248
  text-align: right;
217
249
  }
218
250
  .sd-table__wrapper .sd-table__container .sd-table__bottom {
219
- background: white;
251
+ background: transparent;
220
252
  text-align: center;
253
+ display: flex;
254
+ align-items: center;
255
+ justify-content: center;
256
+ flex: 1;
257
+ min-height: 240px;
258
+ translate: 0 -10%;
259
+ pointer-events: none;
260
+ }
261
+ .sd-table__wrapper .sd-table__container .sd-table__bottom .sd-table__no-data {
262
+ font-size: 12px;
263
+ color: #888888;
221
264
  }
222
265
  .sd-table__wrapper .sd-table__pagination {
223
266
  position: relative;
@@ -235,4 +278,52 @@
235
278
  right: 10px;
236
279
  top: 50%;
237
280
  transform: translateY(-50%);
281
+ }
282
+ .sd-table__wrapper .sd-table__virtual-spacer,
283
+ .sd-table__wrapper .sd-table__virtual-row-spacer {
284
+ padding: 0 !important;
285
+ }
286
+ .sd-table__wrapper .sd-table__virtual-spacer td,
287
+ .sd-table__wrapper .sd-table__virtual-row-spacer td {
288
+ padding: 0 !important;
289
+ border: none;
290
+ }
291
+ .sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton,
292
+ .sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton {
293
+ width: 100%;
294
+ height: 100%;
295
+ 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));
296
+ background-size: 100% 200%;
297
+ animation: skeleton-loading 1.5s ease-in-out infinite;
298
+ position: relative;
299
+ }
300
+ .sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton::before,
301
+ .sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton::before {
302
+ content: "";
303
+ position: absolute;
304
+ top: 0;
305
+ left: 0;
306
+ right: 0;
307
+ bottom: 0;
308
+ 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));
309
+ pointer-events: none;
310
+ }
311
+ .sd-table__wrapper .sd-table__skeleton-cell {
312
+ width: 100%;
313
+ height: 20px;
314
+ 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%);
315
+ background-size: 200% 100%;
316
+ animation: skeleton-loading 1.5s ease-in-out infinite;
317
+ border-radius: 4px;
318
+ }
319
+ @keyframes skeleton-loading {
320
+ 0% {
321
+ background-position: 0% 0%;
322
+ }
323
+ 50% {
324
+ background-position: 100% 100%;
325
+ }
326
+ 100% {
327
+ background-position: 0% 0%;
328
+ }
238
329
  }