igniteui-webcomponents 7.3.2 → 7.4.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 (441) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/animations/easings.d.ts +21 -31
  3. package/animations/easings.js +21 -34
  4. package/animations/easings.js.map +1 -1
  5. package/animations/player.d.ts +8 -16
  6. package/animations/player.js +5 -8
  7. package/animations/player.js.map +1 -1
  8. package/animations/view-transition.d.ts +10 -10
  9. package/animations/view-transition.js +26 -37
  10. package/animations/view-transition.js.map +1 -1
  11. package/components/breadcrumb/breadcrumb.d.ts +74 -0
  12. package/components/breadcrumb/breadcrumb.js +107 -0
  13. package/components/breadcrumb/breadcrumb.js.map +1 -0
  14. package/components/breadcrumb/breadcrumbs.d.ts +60 -0
  15. package/components/breadcrumb/breadcrumbs.js +50 -0
  16. package/components/breadcrumb/breadcrumbs.js.map +1 -0
  17. package/components/breadcrumb/themes/breadcrumb.base.css.js +3 -0
  18. package/components/breadcrumb/themes/breadcrumb.base.css.js.map +1 -0
  19. package/components/breadcrumb/themes/breadcrumbs.base.css.d.ts +1 -0
  20. package/components/{resize-container/themes/resize-container.base.css.js → breadcrumb/themes/breadcrumbs.base.css.js} +2 -2
  21. package/components/breadcrumb/themes/breadcrumbs.base.css.js.map +1 -0
  22. package/components/breadcrumb/themes/dark/breadcrumb.bootstrap.css.d.ts +1 -0
  23. package/components/breadcrumb/themes/dark/breadcrumb.bootstrap.css.js +3 -0
  24. package/components/breadcrumb/themes/dark/breadcrumb.bootstrap.css.js.map +1 -0
  25. package/components/breadcrumb/themes/dark/breadcrumb.fluent.css.d.ts +1 -0
  26. package/components/breadcrumb/themes/dark/breadcrumb.fluent.css.js +3 -0
  27. package/components/breadcrumb/themes/dark/breadcrumb.fluent.css.js.map +1 -0
  28. package/components/breadcrumb/themes/dark/breadcrumb.indigo.css.d.ts +1 -0
  29. package/components/breadcrumb/themes/dark/breadcrumb.indigo.css.js +3 -0
  30. package/components/breadcrumb/themes/dark/breadcrumb.indigo.css.js.map +1 -0
  31. package/components/breadcrumb/themes/dark/breadcrumb.material.css.d.ts +1 -0
  32. package/components/breadcrumb/themes/dark/breadcrumb.material.css.js +3 -0
  33. package/components/breadcrumb/themes/dark/breadcrumb.material.css.js.map +1 -0
  34. package/components/breadcrumb/themes/light/breadcrumb.bootstrap.css.d.ts +1 -0
  35. package/components/breadcrumb/themes/light/breadcrumb.bootstrap.css.js +3 -0
  36. package/components/breadcrumb/themes/light/breadcrumb.bootstrap.css.js.map +1 -0
  37. package/components/breadcrumb/themes/light/breadcrumb.fluent.css.d.ts +1 -0
  38. package/components/breadcrumb/themes/light/breadcrumb.fluent.css.js +3 -0
  39. package/components/breadcrumb/themes/light/breadcrumb.fluent.css.js.map +1 -0
  40. package/components/breadcrumb/themes/light/breadcrumb.indigo.css.d.ts +1 -0
  41. package/components/breadcrumb/themes/light/breadcrumb.indigo.css.js +3 -0
  42. package/components/breadcrumb/themes/light/breadcrumb.indigo.css.js.map +1 -0
  43. package/components/breadcrumb/themes/light/breadcrumb.material.css.d.ts +1 -0
  44. package/components/breadcrumb/themes/light/breadcrumb.material.css.js +3 -0
  45. package/components/breadcrumb/themes/light/breadcrumb.material.css.js.map +1 -0
  46. package/components/breadcrumb/themes/light/breadcrumb.shared.css.d.ts +1 -0
  47. package/components/breadcrumb/themes/light/breadcrumb.shared.css.js +3 -0
  48. package/components/breadcrumb/themes/light/breadcrumb.shared.css.js.map +1 -0
  49. package/components/breadcrumb/themes/shared/breadcrumb.bootstrap.css.d.ts +1 -0
  50. package/components/breadcrumb/themes/shared/breadcrumb.bootstrap.css.js +3 -0
  51. package/components/breadcrumb/themes/shared/breadcrumb.bootstrap.css.js.map +1 -0
  52. package/components/breadcrumb/themes/shared/breadcrumb.common.css.d.ts +1 -0
  53. package/components/breadcrumb/themes/shared/breadcrumb.common.css.js +3 -0
  54. package/components/breadcrumb/themes/shared/breadcrumb.common.css.js.map +1 -0
  55. package/components/breadcrumb/themes/shared/breadcrumb.fluent.css.d.ts +1 -0
  56. package/components/breadcrumb/themes/shared/breadcrumb.fluent.css.js +3 -0
  57. package/components/breadcrumb/themes/shared/breadcrumb.fluent.css.js.map +1 -0
  58. package/components/breadcrumb/themes/shared/breadcrumb.indigo.css.d.ts +1 -0
  59. package/components/breadcrumb/themes/shared/breadcrumb.indigo.css.js +3 -0
  60. package/components/breadcrumb/themes/shared/breadcrumb.indigo.css.js.map +1 -0
  61. package/components/breadcrumb/themes/shared/breadcrumb.material.css.d.ts +1 -0
  62. package/components/breadcrumb/themes/shared/breadcrumb.material.css.js +3 -0
  63. package/components/breadcrumb/themes/shared/breadcrumb.material.css.js.map +1 -0
  64. package/components/breadcrumb/themes/themes.d.ts +2 -0
  65. package/components/breadcrumb/themes/themes.js +50 -0
  66. package/components/breadcrumb/themes/themes.js.map +1 -0
  67. package/components/button/button.d.ts +0 -2
  68. package/components/button/button.js.map +1 -1
  69. package/components/button-group/button-group.d.ts +42 -12
  70. package/components/button-group/button-group.js +82 -34
  71. package/components/button-group/button-group.js.map +1 -1
  72. package/components/button-group/toggle-button.d.ts +6 -1
  73. package/components/button-group/toggle-button.js +28 -2
  74. package/components/button-group/toggle-button.js.map +1 -1
  75. package/components/calendar/base.js +2 -1
  76. package/components/calendar/base.js.map +1 -1
  77. package/components/calendar/calendar.d.ts +2 -3
  78. package/components/calendar/calendar.js.map +1 -1
  79. package/components/calendar/days-view/days-view.d.ts +2 -2
  80. package/components/calendar/days-view/days-view.js.map +1 -1
  81. package/components/carousel/carousel-indicator.js +1 -0
  82. package/components/carousel/carousel-indicator.js.map +1 -1
  83. package/components/carousel/carousel-slide.d.ts +1 -1
  84. package/components/carousel/carousel-slide.js.map +1 -1
  85. package/components/carousel/carousel.d.ts +3 -3
  86. package/components/carousel/carousel.js.map +1 -1
  87. package/components/chat/chat-input.d.ts +1 -2
  88. package/components/chat/chat-input.js +1 -1
  89. package/components/chat/chat-input.js.map +1 -1
  90. package/components/chat/chat-state.d.ts +8 -9
  91. package/components/chat/chat-state.js.map +1 -1
  92. package/components/chat/chat.d.ts +1 -3
  93. package/components/chat/chat.js +2 -2
  94. package/components/chat/chat.js.map +1 -1
  95. package/components/chat/message-attachments.d.ts +6 -15
  96. package/components/chat/message-attachments.js.map +1 -1
  97. package/components/chat/utils.d.ts +0 -1
  98. package/components/chat/utils.js +1 -1
  99. package/components/chat/utils.js.map +1 -1
  100. package/components/checkbox/checkbox-base.d.ts +1 -1
  101. package/components/checkbox/checkbox.js +1 -1
  102. package/components/checkbox/checkbox.js.map +1 -1
  103. package/components/chip/chip.d.ts +2 -2
  104. package/components/chip/chip.js.map +1 -1
  105. package/components/color-picker/color-picker.d.ts +35 -34
  106. package/components/color-picker/color-picker.js +9 -4
  107. package/components/color-picker/color-picker.js.map +1 -1
  108. package/components/color-picker/common.d.ts +0 -2
  109. package/components/color-picker/common.js +2 -2
  110. package/components/color-picker/common.js.map +1 -1
  111. package/components/color-picker/converters.js.map +1 -1
  112. package/components/color-picker/picker-canvas.js.map +1 -1
  113. package/components/combo/combo.d.ts +18 -20
  114. package/components/combo/combo.js +8 -2
  115. package/components/combo/combo.js.map +1 -1
  116. package/components/combo/controllers/data.d.ts +7 -10
  117. package/components/combo/controllers/data.js.map +1 -1
  118. package/components/date-picker/date-picker.base.d.ts +22 -27
  119. package/components/date-picker/date-picker.base.js +7 -1
  120. package/components/date-picker/date-picker.base.js.map +1 -1
  121. package/components/date-picker/date-picker.d.ts +1 -1
  122. package/components/date-picker/date-picker.js +5 -3
  123. package/components/date-picker/date-picker.js.map +1 -1
  124. package/components/date-range-picker/date-range-input.d.ts +0 -2
  125. package/components/date-range-picker/date-range-input.js +0 -6
  126. package/components/date-range-picker/date-range-input.js.map +1 -1
  127. package/components/date-range-picker/date-range-picker.d.ts +22 -31
  128. package/components/date-range-picker/date-range-picker.js +7 -7
  129. package/components/date-range-picker/date-range-picker.js.map +1 -1
  130. package/components/date-range-picker/i18n.d.ts +21 -0
  131. package/components/date-range-picker/i18n.js +10 -0
  132. package/components/date-range-picker/i18n.js.map +1 -0
  133. package/components/date-range-picker/predefined-ranges-area.d.ts +3 -3
  134. package/components/date-range-picker/predefined-ranges-area.js +2 -5
  135. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  136. package/components/date-range-picker/validators.d.ts +0 -4
  137. package/components/date-range-picker/validators.js +4 -4
  138. package/components/date-range-picker/validators.js.map +1 -1
  139. package/components/date-time-input/date-time-input.base.d.ts +39 -37
  140. package/components/date-time-input/date-time-input.base.js +6 -0
  141. package/components/date-time-input/date-time-input.base.js.map +1 -1
  142. package/components/date-time-input/date-time-input.d.ts +1 -11
  143. package/components/date-time-input/date-time-input.js +0 -6
  144. package/components/date-time-input/date-time-input.js.map +1 -1
  145. package/components/date-time-input/datetime-mask-parser.d.ts +0 -10
  146. package/components/date-time-input/datetime-mask-parser.js +1 -1
  147. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  148. package/components/dialog/dialog.js.map +1 -1
  149. package/components/dropdown/dropdown-group.d.ts +2 -10
  150. package/components/dropdown/dropdown-group.js +2 -27
  151. package/components/dropdown/dropdown-group.js.map +1 -1
  152. package/components/dropdown/dropdown.d.ts +17 -23
  153. package/components/dropdown/dropdown.js +5 -17
  154. package/components/dropdown/dropdown.js.map +1 -1
  155. package/components/file-input/file-input.d.ts +2 -2
  156. package/components/file-input/file-input.js.map +1 -1
  157. package/components/icon/icon.d.ts +1 -1
  158. package/components/icon/icon.registry.d.ts +6 -6
  159. package/components/icon/icon.registry.js.map +1 -1
  160. package/components/input/input.d.ts +3 -3
  161. package/components/input/input.js.map +1 -1
  162. package/components/mask-input/mask-history.d.ts +22 -18
  163. package/components/mask-input/mask-history.js.map +1 -1
  164. package/components/mask-input/mask-input.d.ts +1 -1
  165. package/components/mask-input/mask-parser.d.ts +11 -13
  166. package/components/mask-input/mask-parser.js.map +1 -1
  167. package/components/popover/popover.d.ts +45 -34
  168. package/components/popover/popover.js +54 -122
  169. package/components/popover/popover.js.map +1 -1
  170. package/components/popover/position/arrow.d.ts +19 -0
  171. package/components/popover/position/arrow.js +33 -0
  172. package/components/popover/position/arrow.js.map +1 -0
  173. package/components/popover/position/floating.d.ts +40 -0
  174. package/components/popover/position/floating.js +146 -0
  175. package/components/popover/position/floating.js.map +1 -0
  176. package/components/popover/position/native.d.ts +45 -0
  177. package/components/popover/position/native.js +158 -0
  178. package/components/popover/position/native.js.map +1 -0
  179. package/components/popover/position/strategy.d.ts +37 -0
  180. package/components/popover/position/strategy.js +21 -0
  181. package/components/popover/position/strategy.js.map +1 -0
  182. package/components/popover/position/types.d.ts +26 -0
  183. package/components/popover/position/types.js +15 -0
  184. package/components/popover/position/types.js.map +1 -0
  185. package/components/popover/themes/light/popover.base.css.js +1 -1
  186. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  187. package/components/progress/circular-progress.d.ts +0 -5
  188. package/components/progress/circular-progress.js.map +1 -1
  189. package/components/qr-code/qr-code.d.ts +1 -1
  190. package/components/radio/radio.d.ts +4 -4
  191. package/components/radio/radio.js +17 -14
  192. package/components/radio/radio.js.map +1 -1
  193. package/components/radio-group/radio-group.js.map +1 -1
  194. package/components/rating/rating.d.ts +6 -6
  195. package/components/rating/rating.js.map +1 -1
  196. package/components/select/select-group.d.ts +5 -10
  197. package/components/select/select-group.js +10 -34
  198. package/components/select/select-group.js.map +1 -1
  199. package/components/select/select.d.ts +12 -20
  200. package/components/select/select.js +4 -14
  201. package/components/select/select.js.map +1 -1
  202. package/components/splitter/splitter.d.ts +6 -6
  203. package/components/splitter/splitter.js.map +1 -1
  204. package/components/textarea/textarea.d.ts +1 -1
  205. package/components/textarea/textarea.js.map +1 -1
  206. package/components/tile-manager/tile-manager.d.ts +6 -7
  207. package/components/tile-manager/tile-manager.js.map +1 -1
  208. package/components/tile-manager/tile.d.ts +3 -3
  209. package/components/tile-manager/tile.js.map +1 -1
  210. package/components/toast/toast.d.ts +0 -2
  211. package/components/toast/toast.js.map +1 -1
  212. package/components/tooltip/controller.js.map +1 -1
  213. package/components/tooltip/service.js +4 -5
  214. package/components/tooltip/service.js.map +1 -1
  215. package/components/tooltip/tooltip.d.ts +34 -13
  216. package/components/tooltip/tooltip.js +8 -4
  217. package/components/tooltip/tooltip.js.map +1 -1
  218. package/components/tree/tree-item.d.ts +6 -6
  219. package/components/tree/tree-item.js.map +1 -1
  220. package/components/tree/tree.navigation.d.ts +5 -6
  221. package/components/tree/tree.navigation.js.map +1 -1
  222. package/components/tree/tree.selection.js.map +1 -1
  223. package/components/types.d.ts +1 -1
  224. package/components/types.js.map +1 -1
  225. package/components/validation-container/validation-container.js.map +1 -1
  226. package/components/virtualization/engine.d.ts +5 -5
  227. package/components/virtualization/engine.js.map +1 -1
  228. package/components/virtualization/virtualization.d.ts +61 -63
  229. package/components/virtualization/virtualization.js +6 -5
  230. package/components/virtualization/virtualization.js.map +1 -1
  231. package/custom-elements.json +16280 -19679
  232. package/igniteui-webcomponents.css-data.json +2 -2
  233. package/igniteui-webcomponents.html-data.json +1 -1
  234. package/index.d.ts +2 -0
  235. package/index.js +2 -0
  236. package/index.js.map +1 -1
  237. package/internals/abort-handler.d.ts +13 -25
  238. package/internals/abort-handler.js +4 -6
  239. package/internals/abort-handler.js.map +1 -1
  240. package/internals/context.d.ts +13 -7
  241. package/internals/context.js +2 -1
  242. package/internals/context.js.map +1 -1
  243. package/internals/controllers/adopt-styles.d.ts +19 -20
  244. package/internals/controllers/adopt-styles.js +3 -8
  245. package/internals/controllers/adopt-styles.js.map +1 -1
  246. package/internals/controllers/aria-projection.d.ts +56 -55
  247. package/internals/controllers/aria-projection.js +14 -15
  248. package/internals/controllers/aria-projection.js.map +1 -1
  249. package/internals/controllers/async-consumer.js.map +1 -1
  250. package/internals/controllers/command.d.ts +15 -30
  251. package/internals/controllers/command.js +2 -7
  252. package/internals/controllers/command.js.map +1 -1
  253. package/internals/controllers/context-provider.d.ts +7 -13
  254. package/internals/controllers/context-provider.js.map +1 -1
  255. package/internals/controllers/focus-ring.d.ts +10 -30
  256. package/internals/controllers/focus-ring.js +6 -12
  257. package/internals/controllers/focus-ring.js.map +1 -1
  258. package/internals/controllers/fullscreen.d.ts +7 -23
  259. package/internals/controllers/fullscreen.js +3 -9
  260. package/internals/controllers/fullscreen.js.map +1 -1
  261. package/internals/controllers/gestures.d.ts +10 -29
  262. package/internals/controllers/gestures.js +1 -3
  263. package/internals/controllers/gestures.js.map +1 -1
  264. package/internals/controllers/group.d.ts +13 -30
  265. package/internals/controllers/group.js.map +1 -1
  266. package/internals/controllers/host-listeners.d.ts +28 -0
  267. package/internals/controllers/host-listeners.js +27 -0
  268. package/internals/controllers/host-listeners.js.map +1 -0
  269. package/internals/controllers/id-resolver.d.ts +8 -9
  270. package/internals/controllers/id-resolver.js +6 -14
  271. package/internals/controllers/id-resolver.js.map +1 -1
  272. package/internals/controllers/internals.d.ts +53 -104
  273. package/internals/controllers/internals.js +40 -13
  274. package/internals/controllers/internals.js.map +1 -1
  275. package/internals/controllers/key-bindings.d.ts +61 -158
  276. package/internals/controllers/key-bindings.js +68 -67
  277. package/internals/controllers/key-bindings.js.map +1 -1
  278. package/internals/controllers/keys.d.ts +32 -0
  279. package/internals/controllers/keys.js +20 -0
  280. package/internals/controllers/keys.js.map +1 -0
  281. package/internals/controllers/mutation-observer.d.ts +14 -37
  282. package/internals/controllers/mutation-observer.js +1 -1
  283. package/internals/controllers/mutation-observer.js.map +1 -1
  284. package/internals/controllers/resize-observer.d.ts +9 -19
  285. package/internals/controllers/resize-observer.js.map +1 -1
  286. package/internals/controllers/root-click.d.ts +11 -42
  287. package/internals/controllers/root-click.js +4 -6
  288. package/internals/controllers/root-click.js.map +1 -1
  289. package/internals/controllers/roving-focus.d.ts +16 -35
  290. package/internals/controllers/roving-focus.js.map +1 -1
  291. package/internals/controllers/slot.d.ts +25 -54
  292. package/internals/controllers/slot.js +6 -6
  293. package/internals/controllers/slot.js.map +1 -1
  294. package/internals/controllers/toggle.d.ts +44 -48
  295. package/internals/controllers/toggle.js.map +1 -1
  296. package/internals/date/compare.js.map +1 -1
  297. package/internals/date/converters.d.ts +10 -7
  298. package/internals/date/converters.js.map +1 -1
  299. package/internals/date/model.d.ts +9 -16
  300. package/internals/date/model.js +22 -25
  301. package/internals/date/model.js.map +1 -1
  302. package/internals/decorators/blazorAdditionalDependencies.d.ts +4 -2
  303. package/internals/decorators/blazorAdditionalDependencies.js.map +1 -1
  304. package/internals/decorators/blazorDeepImport.d.ts +1 -3
  305. package/internals/decorators/blazorDeepImport.js.map +1 -1
  306. package/internals/decorators/blazorInclude.d.ts +3 -2
  307. package/internals/decorators/blazorInclude.js.map +1 -1
  308. package/internals/decorators/blazorIndirectRender.d.ts +1 -3
  309. package/internals/decorators/blazorIndirectRender.js.map +1 -1
  310. package/internals/decorators/blazorSuppressComponent.d.ts +1 -3
  311. package/internals/decorators/blazorSuppressComponent.js.map +1 -1
  312. package/internals/decorators/coerced-property.d.ts +14 -20
  313. package/internals/decorators/coerced-property.js.map +1 -1
  314. package/internals/decorators/shadow-options.d.ts +2 -5
  315. package/internals/decorators/shadow-options.js.map +1 -1
  316. package/internals/definitions/defineAllComponents.js +2 -0
  317. package/internals/definitions/defineAllComponents.js.map +1 -1
  318. package/internals/directives/drag.d.ts +51 -81
  319. package/internals/directives/drag.js +27 -89
  320. package/internals/directives/drag.js.map +1 -1
  321. package/internals/directives/pointer-operation.d.ts +75 -0
  322. package/internals/directives/pointer-operation.js +92 -0
  323. package/internals/directives/pointer-operation.js.map +1 -0
  324. package/internals/directives/resize.d.ts +36 -64
  325. package/internals/directives/resize.js +18 -85
  326. package/internals/directives/resize.js.map +1 -1
  327. package/internals/i18n/EN/calendar.resources.d.ts +8 -2
  328. package/internals/i18n/EN/calendar.resources.js +2 -2
  329. package/internals/i18n/EN/calendar.resources.js.map +1 -1
  330. package/internals/i18n/EN/chat.resources.d.ts +8 -2
  331. package/internals/i18n/EN/chat.resources.js +3 -10
  332. package/internals/i18n/EN/chat.resources.js.map +1 -1
  333. package/internals/i18n/EN/date-picker.resources.d.ts +6 -4
  334. package/internals/i18n/EN/date-picker.resources.js +1 -7
  335. package/internals/i18n/EN/date-picker.resources.js.map +1 -1
  336. package/internals/i18n/EN/date-range-picker.resources.d.ts +9 -2
  337. package/internals/i18n/EN/date-range-picker.resources.js +2 -2
  338. package/internals/i18n/EN/date-range-picker.resources.js.map +1 -1
  339. package/internals/i18n/i18n-controller.d.ts +44 -46
  340. package/internals/i18n/i18n-controller.js +46 -33
  341. package/internals/i18n/i18n-controller.js.map +1 -1
  342. package/internals/i18n/utils.d.ts +9 -4
  343. package/internals/i18n/utils.js +4 -27
  344. package/internals/i18n/utils.js.map +1 -1
  345. package/internals/mixins/alert.d.ts +10 -25
  346. package/internals/mixins/alert.js.map +1 -1
  347. package/internals/mixins/combo-box.d.ts +21 -11
  348. package/internals/mixins/combo-box.js +16 -22
  349. package/internals/mixins/combo-box.js.map +1 -1
  350. package/internals/mixins/event-emitter.js +9 -11
  351. package/internals/mixins/event-emitter.js.map +1 -1
  352. package/internals/mixins/forms/associated-required.d.ts +4 -4
  353. package/internals/mixins/forms/associated-required.js.map +1 -1
  354. package/internals/mixins/forms/associated.d.ts +4 -2
  355. package/internals/mixins/forms/associated.js +8 -19
  356. package/internals/mixins/forms/associated.js.map +1 -1
  357. package/internals/mixins/forms/form-transformers.js.map +1 -1
  358. package/internals/mixins/forms/types.d.ts +24 -80
  359. package/internals/mixins/forms/types.js.map +1 -1
  360. package/internals/mixins/group.d.ts +18 -0
  361. package/internals/mixins/group.js +37 -0
  362. package/internals/mixins/group.js.map +1 -0
  363. package/internals/mixins/i18n.d.ts +10 -16
  364. package/internals/mixins/i18n.js.map +1 -1
  365. package/internals/mixins/mask-behavior.d.ts +8 -22
  366. package/internals/mixins/mask-behavior.js +1 -2
  367. package/internals/mixins/mask-behavior.js.map +1 -1
  368. package/internals/mixins/option.d.ts +1 -2
  369. package/internals/mixins/option.js +2 -1
  370. package/internals/mixins/option.js.map +1 -1
  371. package/internals/part-map.d.ts +4 -2
  372. package/internals/part-map.js +1 -1
  373. package/internals/part-map.js.map +1 -1
  374. package/internals/templates/input-shell.d.ts +8 -17
  375. package/internals/templates/input-shell.js +4 -1
  376. package/internals/templates/input-shell.js.map +1 -1
  377. package/internals/templates/masked-input.d.ts +7 -8
  378. package/internals/templates/masked-input.js.map +1 -1
  379. package/internals/templates/slotted-icon.d.ts +7 -12
  380. package/internals/templates/slotted-icon.js.map +1 -1
  381. package/internals/templates/toggle-shell.d.ts +6 -7
  382. package/internals/templates/toggle-shell.js.map +1 -1
  383. package/internals/timing.d.ts +5 -14
  384. package/internals/timing.js.map +1 -1
  385. package/internals/utils/arrays.d.ts +21 -21
  386. package/internals/utils/arrays.js +14 -0
  387. package/internals/utils/arrays.js.map +1 -1
  388. package/internals/utils/dom.d.ts +51 -39
  389. package/internals/utils/dom.js +1 -2
  390. package/internals/utils/dom.js.map +1 -1
  391. package/internals/utils/events.d.ts +29 -16
  392. package/internals/utils/events.js +9 -1
  393. package/internals/utils/events.js.map +1 -1
  394. package/internals/utils/lit.d.ts +5 -2
  395. package/internals/utils/lit.js.map +1 -1
  396. package/internals/utils/math.d.ts +8 -6
  397. package/internals/utils/math.js.map +1 -1
  398. package/internals/utils/objects.d.ts +3 -20
  399. package/internals/utils/objects.js +1 -39
  400. package/internals/utils/objects.js.map +1 -1
  401. package/internals/utils/strings.d.ts +9 -11
  402. package/internals/utils/strings.js.map +1 -1
  403. package/internals/utils/types.d.ts +16 -3
  404. package/internals/utils/types.js +3 -0
  405. package/internals/utils/types.js.map +1 -1
  406. package/internals/validators.d.ts +9 -8
  407. package/internals/validators.js +12 -6
  408. package/internals/validators.js.map +1 -1
  409. package/package.json +1 -1
  410. package/skills/README.md +3 -0
  411. package/skills/igniteui-wc-figma-to-app/SKILL.md +907 -0
  412. package/skills/igniteui-wc-figma-to-app/references/asset-extraction.md +363 -0
  413. package/skills/igniteui-wc-figma-to-app/references/design-token-bridge.md +407 -0
  414. package/skills/igniteui-wc-figma-to-app/references/figma-component-map.md +325 -0
  415. package/skills/igniteui-wc-figma-to-app/references/mcp-setup.md +409 -0
  416. package/skills/igniteui-wc-figma-to-app/references/validation-patterns.md +376 -0
  417. package/theming/config.d.ts +14 -5
  418. package/theming/config.js +38 -18
  419. package/theming/config.js.map +1 -1
  420. package/theming/context.d.ts +1 -23
  421. package/theming/context.js.map +1 -1
  422. package/theming/theming-controller.d.ts +2 -32
  423. package/theming/theming-controller.js +15 -21
  424. package/theming/theming-controller.js.map +1 -1
  425. package/theming/theming-event.d.ts +0 -7
  426. package/theming/theming-event.js +0 -13
  427. package/theming/theming-event.js.map +1 -1
  428. package/theming/types.d.ts +1 -8
  429. package/theming/types.js.map +1 -1
  430. package/web-types.json +3 -3
  431. package/animations/presets/slide/index.d.ts +0 -3
  432. package/animations/presets/slide/index.js +0 -16
  433. package/animations/presets/slide/index.js.map +0 -1
  434. package/components/resize-container/themes/resize-container.base.css.js.map +0 -1
  435. package/internals/controllers/root-scroll.d.ts +0 -31
  436. package/internals/controllers/root-scroll.js +0 -71
  437. package/internals/controllers/root-scroll.js.map +0 -1
  438. package/theming/utils.d.ts +0 -11
  439. package/theming/utils.js +0 -20
  440. package/theming/utils.js.map +0 -1
  441. /package/components/{resize-container/themes/resize-container.base.css.d.ts → breadcrumb/themes/breadcrumb.base.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"splitter.js","sourceRoot":"","sources":["../../../src/components/splitter/splitter.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { eventOptions, property, query, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { type StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport { addInternalsController } from '#internals/controllers/internals.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n endKey,\n homeKey,\n} from '#internals/controllers/key-bindings.js';\nimport { createResizeObserverController } from '#internals/controllers/resize-observer.js';\nimport { addSlotController, setSlots } from '#internals/controllers/slot.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport type { Constructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { partMap } from '#internals/part-map.js';\nimport { isLTR, resolveCssLength } from '#internals/utils/dom.js';\nimport { bindIf } from '#internals/utils/lit.js';\nimport {\n asNumber,\n asPercent,\n clamp,\n roundPrecise,\n} from '#internals/utils/math.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport type { SplitterOrientation } from '../types.js';\nimport IgcVisuallyHiddenComponent from '../visually-hidden/visually-hidden.js';\nimport { styles as shared } from './themes/shared/splitter.common.css.js';\nimport { styles } from './themes/splitter.base.css.js';\nimport { all } from './themes/themes.js';\nimport type {\n IgcSplitterComponentEventMap,\n IgcSplitterLayoutChangedEventArgs,\n IgcSplitterResizeEventArgs,\n IgcSplitterResizeEventDetail,\n PanePosition,\n PaneResizeSnapshot,\n SplitterPaneState,\n SplitterResizeState,\n} from './types.js';\n\nconst KEYBOARD_RESIZE_STEP = 10;\n\nconst PANES = ['start', 'end'] as const satisfies readonly PanePosition[];\n\n/** A number carrying a percentage sign or one of the CSS length units. */\nconst CSS_LENGTH =\n /^[+-]?(\\d+\\.?\\d*|\\.\\d+)(%|px|em|rem|ch|ex|cap|ic|lh|rlh|vw|vh|vi|vb|vmin|vmax|cm|mm|q|in|pt|pc)$/i;\n\n/** A bare number, with no unit at all. */\nconst UNITLESS_NUMBER = /^[+-]?(\\d+\\.?\\d*|\\.\\d+)$/;\n\nconst DEFAULT_RESIZE_STATE: SplitterResizeState = {\n startPane: null,\n endPane: null,\n dragStartPosition: { x: 0, y: 0 },\n dragPointerId: -1,\n};\n\n/**\n * A splitter component that provides a resizable split-pane layout, dividing the view\n * into two panels - *start* and *end* - separated by a draggable bar.\n *\n * Panels can be resized by dragging the bar, using keyboard shortcuts, or collapsed/expanded\n * using the built-in collapse buttons or the programmatic `toggle()` API.\n * Nested splitters are supported for more complex layouts.\n *\n * @example\n * ```html\n * <!-- Basic horizontal splitter -->\n * <igc-splitter>\n * <div slot=\"start\">Start panel</div>\n * <div slot=\"end\">End panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```html\n * <!-- Vertical splitter with size constraints -->\n * <igc-splitter orientation=\"vertical\" start-min-size=\"100px\" end-min-size=\"100px\">\n * <div slot=\"start\">Top panel</div>\n * <div slot=\"end\">Bottom panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```html\n * <!-- Nested splitters for a multi-pane layout -->\n * <igc-splitter style=\"height: 600px;\">\n * <igc-splitter slot=\"start\" orientation=\"vertical\">\n * <div slot=\"start\">Top left</div>\n * <div slot=\"end\">Bottom left</div>\n * </igc-splitter>\n * <div slot=\"end\">Right panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```ts\n * // Programmatically collapse/expand a pane\n * const splitter = document.querySelector('igc-splitter');\n * splitter.toggle('start'); // collapse start pane\n * splitter.toggle('start'); // expand start pane\n * ```\n *\n * ## Keyboard interactions\n *\n * When the splitter bar is focused:\n *\n * | Key | Action |\n * |---|---|\n * | `Arrow Left` / `Arrow Right` | Resize panes (horizontal orientation) |\n * | `Arrow Up` / `Arrow Down` | Resize panes (vertical orientation) |\n * | `Home` | Snap start pane to its minimum size |\n * | `End` | Snap start pane to its maximum size |\n * | `Ctrl + Arrow Left` / `Ctrl + Arrow Up` | Collapse or expand the start pane |\n * | `Ctrl + Arrow Right` / `Ctrl + Arrow Down` | Collapse or expand the end pane |\n *\n * @element igc-splitter\n *\n * @fires igcResizeStart - Emitted once when a resize operation begins (pointer drag or keyboard).\n * @fires igcResizing - Emitted continuously while a pane is being resized.\n * @fires igcResizeEnd - Emitted once when a resize operation completes.\n * @fires igcLayoutChanged - Emitted after a user-driven resize or expansion change, with a full\n * snapshot of the current layout (pane sizes and collapsed states).\n *\n * @slot start - Content projected into the start (left/top) panel.\n * @slot end - Content projected into the end (right/bottom) panel.\n *\n * @csspart splitter-bar - The resizable bar element between the two panels.\n * @csspart drag-handle - The drag handle icon/element on the splitter bar.\n * @csspart start-pane - The container for the start panel content.\n * @csspart end-pane - The container for the end panel content.\n * @csspart start-collapse-btn - The button to collapse the start panel.\n * @csspart end-collapse-btn - The button to collapse the end panel.\n * @csspart start-expand-btn - The button to expand the start panel when collapsed.\n * @csspart end-expand-btn - The button to expand the end panel when collapsed.\n *\n * @remarks\n * The bar holds two expander elements, one on either side of the drag handle,\n * and each carries whichever part name applies to the current collapsed state.\n * A part name is therefore not tied to a fixed side: with the end pane\n * collapsed, `end-expand-btn` lands on the *first* of the two.\n */\nexport default class IgcSplitterComponent extends EventEmitterMixin<\n IgcSplitterComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-splitter';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcSplitterComponent, IgcVisuallyHiddenComponent);\n }\n\n //#region Private Properties\n\n private readonly _internals = addInternalsController(this);\n\n private readonly _separatorRef = createRef<HTMLElement>();\n\n private readonly _startPaneState: SplitterPaneState = {\n size: 'auto',\n styles: {},\n };\n private readonly _endPaneState: SplitterPaneState = {\n size: 'auto',\n styles: {},\n };\n\n @state()\n private _collapsedPane: PanePosition | null = null;\n\n private _resizeState: SplitterResizeState = { ...DEFAULT_RESIZE_STATE };\n\n private _measurement: { container: number; bar: number } | null = null;\n\n /** Container extent at the last resize notification we acted on. */\n private _observedSize = -1;\n\n @query('[part~=\"base\"]')\n private readonly _base!: HTMLElement;\n\n @query('[part~=\"start-pane\"]', true)\n private readonly _startPane!: HTMLElement;\n\n @query('[part~=\"end-pane\"]', true)\n private readonly _endPane!: HTMLElement;\n\n private get _separator(): HTMLElement | undefined {\n return this._separatorRef.value;\n }\n\n private get _isDragging(): boolean {\n return this._resizeState.dragPointerId !== -1;\n }\n\n private get _resizeDisallowed(): boolean {\n return this.disableResize || this._collapsedPane != null;\n }\n\n private get _isHorizontal(): boolean {\n return this.orientation === 'horizontal';\n }\n\n private get _separatorCursor(): string {\n if (this._resizeDisallowed) {\n return 'default';\n }\n return this._isHorizontal ? 'col-resize' : 'row-resize';\n }\n\n //#endregion\n\n //#region Public Properties\n\n /**\n * The orientation of the splitter, which determines the direction of resizing and collapsing.\n *\n * Changing the orientation after the initial render clears the pane sizes and\n * their min/max constraints, along with the corresponding attributes - a size\n * authored for one axis rarely makes sense on the other.\n * @attr orientation\n * @default 'horizontal'\n */\n @property({ reflect: true })\n public orientation: SplitterOrientation = 'horizontal';\n\n /**\n * Whether collapsing either pane is disabled. When `true`, this also hides\n * the expand/collapse buttons on the splitter bar.\n * @attr disable-collapse\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-collapse' })\n public disableCollapse = false;\n\n /**\n * Whether resizing the panes by dragging the splitter bar or using keyboard\n * shortcuts is disabled. When `true`, this also hides the drag handle on the\n * splitter bar.\n * @attr disable-resize\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-resize' })\n public disableResize = false;\n\n /**\n * Whether the expand/collapse buttons on the splitter bar are hidden.\n *\n * Note that the buttons will also be hidden if `disable-collapse` is true or\n * if a pane is currently collapsed.\n * @attr hide-collapse-buttons\n * @default false\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'hide-collapse-buttons',\n })\n public hideCollapseButtons = false;\n\n /**\n * Whether the drag handle on the splitter bar is hidden.\n *\n * Note that the drag handle will also be hidden if `disable-resize` is true.\n * @attr hide-drag-handle\n * @default false\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'hide-drag-handle',\n })\n public hideDragHandle = false;\n\n /**\n * The minimum size of the start pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `100px` or `20%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr start-min-size\n */\n @property({ attribute: 'start-min-size' })\n public set startMinSize(value: string | undefined) {\n this._startPaneState.minSize = this._normalizeValue(value);\n }\n\n public get startMinSize(): string | undefined {\n return this._startPaneState.minSize;\n }\n\n /**\n * The minimum size of the end pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `100px` or `20%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr end-min-size\n */\n @property({ attribute: 'end-min-size' })\n public set endMinSize(value: string | undefined) {\n this._endPaneState.minSize = this._normalizeValue(value);\n }\n\n public get endMinSize(): string | undefined {\n return this._endPaneState.minSize;\n }\n\n /**\n * The maximum size of the start pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `500px` or `80%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr start-max-size\n */\n @property({ attribute: 'start-max-size' })\n public set startMaxSize(value: string | undefined) {\n this._startPaneState.maxSize = this._normalizeValue(value);\n }\n\n public get startMaxSize(): string | undefined {\n return this._startPaneState.maxSize;\n }\n\n /**\n * The maximum size of the end pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `500px` or `80%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr end-max-size\n */\n @property({ attribute: 'end-max-size' })\n public set endMaxSize(value: string | undefined) {\n this._endPaneState.maxSize = this._normalizeValue(value);\n }\n\n public get endMaxSize(): string | undefined {\n return this._endPaneState.maxSize;\n }\n\n /**\n * The size of the start pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `200px` or `50%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 falls back to automatic sizing.\n * @attr start-size\n */\n @property({ attribute: 'start-size' })\n public set startSize(value: string | undefined) {\n this._setPaneSize('start', value);\n }\n\n public get startSize(): string | undefined {\n return this._startPaneState.size;\n }\n\n /**\n * The size of the end pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `200px` or `50%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 falls back to automatic sizing.\n * @attr end-size\n */\n @property({ attribute: 'end-size' })\n public set endSize(value: string | undefined) {\n this._setPaneSize('end', value);\n }\n\n public get endSize(): string | undefined {\n return this._endPaneState.size;\n }\n\n /**\n * Whether the start pane is currently collapsed. Set this property to\n * collapse or expand the pane programmatically.\n * @attr start-collapsed\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'start-collapsed' })\n public set startCollapsed(value: boolean) {\n this._setCollapsed('start', value);\n }\n\n public get startCollapsed(): boolean {\n return this._isCollapsed('start');\n }\n\n /**\n * Whether the end pane is currently collapsed. Set this property to\n * collapse or expand the pane programmatically.\n * @attr end-collapsed\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'end-collapsed' })\n public set endCollapsed(value: boolean) {\n this._setCollapsed('end', value);\n }\n\n public get endCollapsed(): boolean {\n return this._isCollapsed('end');\n }\n\n //#endregion\n\n //#region Lifecycle\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addSlotController(this, { slots: setSlots('start', 'end') });\n\n createResizeObserverController(this, {\n callback: () => this._handleContainerResize(),\n });\n\n addKeybindings(this, {\n ref: this._separatorRef,\n })\n .set(arrowUp, () => this._handleResizePanes(-1, 'vertical'))\n .set(arrowDown, () => this._handleResizePanes(1, 'vertical'))\n .set(arrowLeft, () => this._handleResizePanes(-1, 'horizontal'))\n .set(arrowRight, () => this._handleResizePanes(1, 'horizontal'))\n .set(homeKey, () => this._handleMinMaxResize('min'))\n .set(endKey, () => this._handleMinMaxResize('max'))\n .set([ctrlKey, arrowUp], () =>\n this._handleArrowsExpandCollapse('start', 'vertical')\n )\n .set([ctrlKey, arrowDown], () =>\n this._handleArrowsExpandCollapse('end', 'vertical')\n )\n .set([ctrlKey, arrowLeft], () =>\n this._handleArrowsExpandCollapse('start', 'horizontal')\n )\n .set([ctrlKey, arrowRight], () =>\n this._handleArrowsExpandCollapse('end', 'horizontal')\n );\n }\n\n protected override update(changed: PropertyValues<this>): void {\n this._measurement = null;\n\n if (changed.get('orientation') != null) {\n this._resetPaneSizes();\n }\n\n if (this.hasUpdated) {\n this._updatePanes();\n }\n\n super.update(changed);\n }\n\n protected override updated(): void {\n // Layout has just been committed; the `update()` measurements are stale.\n this._measurement = null;\n this._updateBarAria();\n }\n\n public override disconnectedCallback(): void {\n this._endDrag();\n super.disconnectedCallback();\n }\n\n //#endregion\n\n //#region Resize Event Handlers\n\n private _handleBarPointerDown(e: PointerEvent): void {\n if (e.button !== 0 || this._isDragging) {\n return;\n }\n\n e.preventDefault();\n\n this._resizeState = {\n ...this._resizeState,\n dragPointerId: e.pointerId,\n dragStartPosition: { x: e.clientX, y: e.clientY },\n };\n\n this._resizeStart();\n this._separator?.setPointerCapture(this._resizeState.dragPointerId);\n }\n\n private _getDragDelta(e: PointerEvent): number {\n const deltaX = e.clientX - this._resizeState.dragStartPosition.x;\n const deltaY = e.clientY - this._resizeState.dragStartPosition.y;\n return this._resolveDelta(deltaX, deltaY);\n }\n\n private _handleBarPointerMove(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n const delta = this._getDragDelta(e);\n\n if (delta !== 0) {\n this._resizing(delta);\n }\n }\n\n private _handleEndDrag(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n this._resizeEnd(this._getDragDelta(e));\n this._endDrag();\n }\n\n /** A cancelled gesture reverts, but still reports an end for the start it emitted. */\n private _handleCancelDrag(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n this._resizeEnd(0);\n this._endDrag();\n }\n\n private _endDrag(): void {\n const { dragPointerId } = this._resizeState;\n\n // `releasePointerCapture` throws for a pointer that is no longer active.\n if (this._separator?.hasPointerCapture(dragPointerId)) {\n this._separator.releasePointerCapture(dragPointerId);\n }\n\n this._resizeState = { ...DEFAULT_RESIZE_STATE };\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * Toggles the collapsed state of the specified pane.\n *\n * Does not emit `igcLayoutChanged` - that event reports user-driven changes,\n * and a programmatic call is already known to the caller.\n */\n public toggle(position: PanePosition): void {\n this._applyCollapse(this._collapsedPane === position ? null : position);\n }\n\n //#endregion\n\n //#region Internal API\n\n private _applyCollapse(target: PanePosition | null): void {\n if (this._collapsedPane === null && target !== null) {\n this._savePaneSizes();\n }\n\n const wasStartCollapsed = this._isCollapsed('start');\n const wasEndCollapsed = this._isCollapsed('end');\n\n this._collapsedPane = target;\n\n // `toggle()`, the expanders and Ctrl + arrow bypass the decorated accessors,\n // and one assignment can change both flags. Request both so Lit reflects\n // them from their getters instead of leaving one stale.\n this.requestUpdate('startCollapsed', wasStartCollapsed);\n this.requestUpdate('endCollapsed', wasEndCollapsed);\n\n this._internals.setState('start-collapsed', this._isCollapsed('start'));\n this._internals.setState('end-collapsed', this._isCollapsed('end'));\n\n this._restoreSizesOnExpandCollapse();\n }\n\n private _setPaneSize(pane: PanePosition, value: string | undefined): void {\n this._getPaneState(pane).size = this._normalizeValue(value, 'auto');\n\n // A size authored while collapsed outranks the pre-collapse snapshot. The\n // whole snapshot goes - keeping the other pane's share would over-subscribe\n // the container and leave both panes shrinking to fit.\n if (this._collapsedPane !== null) {\n for (const target of PANES) {\n this._getPaneState(target).savedSize = undefined;\n }\n }\n }\n\n /** Drops the authored sizes and their attributes, which would otherwise diverge. */\n private _resetPaneSizes(): void {\n for (const pane of PANES) {\n const state = this._getPaneState(pane);\n state.size = 'auto';\n state.minSize = undefined;\n state.maxSize = undefined;\n state.savedSize = undefined;\n\n for (const suffix of ['size', 'min-size', 'max-size']) {\n this.removeAttribute(`${pane}-${suffix}`);\n }\n }\n }\n\n private _setCollapsed(pane: PanePosition, value: boolean): void {\n if (this._isCollapsed(pane) === value) {\n return;\n }\n this._applyCollapse(value ? pane : null);\n }\n\n private _savePaneSizes(): void {\n // Not measurable yet (collapsed before the first render) - keep the\n // explicit size rather than lose it to the 'auto' reset.\n if (this._getTotalSize() === 0) {\n this._startPaneState.savedSize = this._startPaneState.size;\n this._endPaneState.savedSize = this._endPaneState.size;\n return;\n }\n // Higher precision than the ARIA percent so restored layouts don't drift.\n const [start, end] = this._rectSize();\n this._startPaneState.savedSize = `${this._asPercentOfContainer(start, 2)}%`;\n this._endPaneState.savedSize = `${this._asPercentOfContainer(end, 2)}%`;\n }\n\n /* Reset sizes on collapse; restore saved sizes on expand */\n private _restoreSizesOnExpandCollapse(): void {\n if (this._collapsedPane !== null) {\n this._startPaneState.size = 'auto';\n this._endPaneState.size = 'auto';\n } else {\n this._startPaneState.size =\n this._startPaneState.savedSize ?? this.startSize;\n this._endPaneState.size = this._endPaneState.savedSize ?? this.endSize;\n }\n }\n\n /**\n * The container is what the browser resolves a percentage `flex-basis`\n * against, so a value measured this way survives a round trip through CSS.\n */\n private _asPercentOfContainer(size: number, precision = 0): number {\n const containerSize = this._getContainerSize();\n return containerSize === 0\n ? 0\n : roundPrecise(asPercent(size, containerSize), precision);\n }\n\n /** Resolves a CSS length to pixels, percentages against the container. */\n private _toPixels(value: string): number {\n if (value.endsWith('%')) {\n return (asNumber(value) / 100) * this._getContainerSize();\n }\n\n return this._base ? resolveCssLength(this._base, value) : 0;\n }\n\n private _getStartPaneSizePercent(): number {\n if (!this._startPane || this._isCollapsed('start')) {\n return 0;\n }\n\n if (this._isCollapsed('end')) {\n return 100;\n }\n\n return this._asPercentOfContainer(this._rectSize()[0]);\n }\n\n private _getMinMaxAsPercent(type: 'min' | 'max'): number {\n const value = type === 'min' ? this.startMinSize : this.startMaxSize;\n\n if (!value) {\n return type === 'min' ? 0 : 100;\n }\n\n return this._asPercentOfContainer(this._toPixels(value));\n }\n\n private _isCollapsed(which: PanePosition): boolean {\n return this._collapsedPane === which;\n }\n\n private _otherPane(pane: PanePosition): PanePosition {\n return pane === 'start' ? 'end' : 'start';\n }\n\n private _updateBarAria(): void {\n const separator = this._separator;\n\n if (separator) {\n const value = this._getStartPaneSizePercent();\n\n separator.ariaValueNow = value.toString();\n separator.ariaValueText = `${value}%`;\n separator.ariaValueMin = this._getMinMaxAsPercent('min').toString();\n separator.ariaValueMax = this._getMinMaxAsPercent('max').toString();\n }\n }\n\n private _getPaneState(which: PanePosition): SplitterPaneState {\n return which === 'start' ? this._startPaneState : this._endPaneState;\n }\n\n private _isPercentageSize(which: PanePosition): boolean {\n const { size } = this._getPaneState(which);\n return !!size && size.includes('%');\n }\n\n private _isAutoSize(which: PanePosition): boolean {\n return this._getPaneState(which).size === 'auto';\n }\n\n private _normalizeValue(\n value: string | undefined,\n fallback?: 'auto'\n ): string | undefined {\n const trimmed = value?.trim();\n if (!trimmed || trimmed === 'auto') {\n return fallback;\n }\n\n const numericValue = asNumber(trimmed, -1);\n if (numericValue < 0) return fallback;\n if (trimmed.includes('%') && numericValue > 100) return fallback;\n\n // Zero is the one length that needs no unit; any other bare number is\n // invalid CSS and would silently drop the whole `flex` shorthand.\n const isUnitlessZero = numericValue === 0 && UNITLESS_NUMBER.test(trimmed);\n\n return isUnitlessZero || CSS_LENGTH.test(trimmed) ? trimmed : fallback;\n }\n\n private _getFlex(which: PanePosition, forceAuto = false): string {\n const isAuto = forceAuto || this._isAutoSize(which);\n const size = isAuto ? '0px' : this._getPaneState(which).size;\n return `${isAuto ? 1 : 0} 1 ${size}`;\n }\n\n private _handleResizePanes(\n direction: -1 | 1,\n validOrientation: SplitterOrientation\n ): void {\n if (this._resizeDisallowed || this.orientation !== validOrientation) {\n return;\n }\n const delta = this._resolveDelta(\n KEYBOARD_RESIZE_STEP,\n KEYBOARD_RESIZE_STEP,\n direction\n );\n\n this._runResize(delta);\n }\n\n /**\n * A complete resize for a non-pointer gesture. Sharing `_calcNewSizes` with\n * the drag path is what keeps both panes' constraints honoured and the\n * emitted sizes equal to the ones that actually render.\n */\n private _runResize(delta: number): void {\n this._resizeStart();\n this._resizing(delta);\n this._resizeEnd(delta);\n this._endDrag();\n }\n\n @eventOptions({ passive: false })\n private _preventDefaultForEvent(e: Event): void {\n e.preventDefault();\n }\n\n private _resolveDelta(\n deltaX: number,\n deltaY: number,\n direction?: -1 | 1\n ): number {\n const isHorizontal = this._isHorizontal;\n const rtlMultiplier = isHorizontal && !isLTR(this) ? -1 : 1;\n const delta = isHorizontal ? deltaX : deltaY;\n return delta * rtlMultiplier * (direction ?? 1);\n }\n\n /** Snaps the start pane to its minimum or maximum size. */\n private _handleMinMaxResize(type: 'min' | 'max'): void {\n if (this._resizeDisallowed) {\n return;\n }\n\n const targetStartSizePx =\n this._getConstraintInPx('start', type) ??\n (type === 'min' ? 0 : this._getTotalSize());\n\n this._runResize(targetStartSizePx - this._rectSize()[0]);\n }\n\n private _handleExpanderAction(pane: PanePosition): void {\n const other = this._otherPane(pane);\n this._toggleWithEvent(this._collapsedPane === other ? other : pane);\n }\n\n private _toggleWithEvent(position: PanePosition): void {\n this.toggle(position);\n this._emitLayoutChanged();\n }\n\n // Both sizes render as 'auto' while collapsed, so report the pre-collapse\n // ones instead - those are what a consumer needs to restore the layout.\n private _reportedSize(pane: PanePosition): string {\n const state = this._getPaneState(pane);\n return (\n (this._collapsedPane !== null ? state.savedSize : state.size) ?? 'auto'\n );\n }\n\n private _emitLayoutChanged(): void {\n const detail: IgcSplitterLayoutChangedEventArgs = {\n startSize: this._reportedSize('start'),\n endSize: this._reportedSize('end'),\n startCollapsed: this.startCollapsed,\n endCollapsed: this.endCollapsed,\n };\n this.emitEvent('igcLayoutChanged', { detail });\n }\n\n private _handleArrowsExpandCollapse(\n target: PanePosition,\n validOrientation: SplitterOrientation\n ): void {\n if (this.disableCollapse || this.orientation !== validOrientation) {\n return;\n }\n const isFlipped = validOrientation === 'horizontal' && !isLTR(this);\n this._handleExpanderAction(isFlipped ? this._otherPane(target) : target);\n }\n\n private _resizeStart(): void {\n const [startSize, endSize] = this._rectSize();\n\n this._resizeState.startPane = this._createPaneState('start', startSize);\n this._resizeState.endPane = this._createPaneState('end', endSize);\n\n this.emitEvent('igcResizeStart', {\n detail: { startPanelSize: startSize, endPanelSize: endSize },\n });\n }\n\n private _createPaneState(\n pane: PanePosition,\n size: number\n ): PaneResizeSnapshot {\n return {\n initialSize: size,\n isPercentageBased: this._isPercentageSize(pane) || this._isAutoSize(pane),\n minSizePx: this._getConstraintInPx(pane, 'min'),\n maxSizePx: this._getConstraintInPx(pane, 'max'),\n };\n }\n\n private _getConstraintInPx(\n pane: PanePosition,\n type: 'min' | 'max'\n ): number | undefined {\n const { minSize, maxSize } = this._getPaneState(pane);\n const value = type === 'max' ? maxSize : minSize;\n\n return value ? this._toPixels(value) : undefined;\n }\n\n private _resizing(delta: number): void {\n if (!this._resizeState.startPane || !this._resizeState.endPane) {\n return;\n }\n\n const [startPaneSize, endPaneSize] = this._calcNewSizes(delta);\n\n this.startSize = `${startPaneSize}px`;\n this.endSize = `${endPaneSize}px`;\n\n this.emitEvent('igcResizing', {\n detail: {\n startPanelSize: startPaneSize,\n endPanelSize: endPaneSize,\n delta,\n },\n });\n }\n\n private _computeSize(\n pane: PaneResizeSnapshot,\n paneSize: number,\n containerSize: number\n ): string {\n return pane.isPercentageBased\n ? `${asPercent(paneSize, containerSize)}%`\n : `${roundPrecise(paneSize, 0)}px`;\n }\n\n private _resizeEnd(delta: number): void {\n const { startPane, endPane } = this._resizeState;\n\n if (!startPane || !endPane) {\n return;\n }\n\n // A cancelled gesture reverts to the sizes captured at `_resizeStart`.\n const [startPaneSize, endPaneSize] =\n delta === 0\n ? [startPane.initialSize, endPane.initialSize]\n : this._calcNewSizes(delta);\n const containerSize = this._getContainerSize();\n\n this.startSize = this._computeSize(startPane, startPaneSize, containerSize);\n this.endSize = this._computeSize(endPane, endPaneSize, containerSize);\n\n this.emitEvent('igcResizeEnd', {\n detail: {\n startPanelSize: startPaneSize,\n endPanelSize: endPaneSize,\n delta,\n },\n });\n this._emitLayoutChanged();\n }\n\n private _rectSize(): [number, number] {\n const axis = this._isHorizontal ? 'width' : 'height';\n const startPaneRect = this._startPane.getBoundingClientRect();\n const endPaneRect = this._endPane.getBoundingClientRect();\n\n return [startPaneRect[axis], endPaneRect[axis]];\n }\n\n private _calcNewSizes(delta: number): [number, number] {\n if (!this._resizeState.startPane || !this._resizeState.endPane)\n return [0, 0];\n\n const start = this._resizeState.startPane;\n const end = this._resizeState.endPane;\n const minStart = start.minSizePx || 0;\n const minEnd = end.minSizePx || 0;\n const maxStart =\n start.maxSizePx || start.initialSize + end.initialSize - minEnd;\n const maxEnd =\n end.maxSizePx || start.initialSize + end.initialSize - minStart;\n\n const maxPosDelta = Math.min(\n maxStart - start.initialSize,\n end.initialSize - minEnd\n );\n const maxNegDelta = Math.min(\n start.initialSize - minStart,\n maxEnd - end.initialSize\n );\n const finalDelta = clamp(delta, -maxNegDelta, maxPosDelta);\n\n return [start.initialSize + finalDelta, end.initialSize - finalDelta];\n }\n\n /**\n * Reads the container and bar extents once per update pass - both\n * `_updatePanes` and `_updateBarAria` need them, and the style writes in\n * between would force a reflow for every repeated read.\n */\n private _measure(): { container: number; bar: number } {\n const axis = this._isHorizontal ? 'width' : 'height';\n\n this._measurement ??= {\n container: this._base ? this._base.getBoundingClientRect()[axis] : 0,\n bar: this._separator\n ? roundPrecise(this._separator.getBoundingClientRect()[axis])\n : 0,\n };\n\n return this._measurement;\n }\n\n /** The content box of the flex container - the basis for every percentage. */\n private _getContainerSize(): number {\n return this._measure().container;\n }\n\n /** The space left for the panes once the bar has taken its own. */\n private _getTotalSize(): number {\n const { container, bar } = this._measure();\n return container === 0 ? 0 : container - bar;\n }\n\n private _handleContainerResize(): void {\n this._measurement = null;\n const size = this._getContainerSize();\n\n if (size !== this._observedSize) {\n this._observedSize = size;\n this.requestUpdate();\n }\n }\n\n private _updatePanes(): void {\n const isCollapsed = this._collapsedPane !== null;\n\n // A collapsed pane renders as `auto` with its constraints lifted, while the\n // authored values stay untouched so they survive the round trip.\n for (const pane of PANES) {\n const { minSize, maxSize } = this._getPaneState(pane);\n\n this._setPaneMinMaxSizes(\n pane,\n isCollapsed ? '0' : minSize,\n isCollapsed ? '100%' : maxSize\n );\n this._updatePaneStyles(pane, { flex: this._getFlex(pane, isCollapsed) });\n }\n }\n\n private _updatePaneStyles(pane: PanePosition, styles: StyleInfo): void {\n Object.assign(this._getPaneState(pane).styles, styles);\n }\n\n private _setPaneMinMaxSizes(\n pane: PanePosition,\n minSize?: string,\n maxSize?: string\n ): void {\n const min = this._ensureMinConstraintIsWithinBounds(pane, minSize) ?? 0;\n const max = maxSize ?? '100%';\n\n this._updatePaneStyles(\n pane,\n this._isHorizontal\n ? { minWidth: min, maxWidth: max, minHeight: 0, maxHeight: '100%' }\n : { minWidth: 0, maxWidth: '100%', minHeight: min, maxHeight: max }\n );\n }\n\n private _ensureMinConstraintIsWithinBounds(\n pane: PanePosition,\n minSize?: string\n ): string | undefined {\n const total = this._getTotalSize();\n\n if (!minSize || total <= 0) {\n return minSize;\n }\n\n const minPx = this._getConstraintInPx(pane, 'min') ?? 0;\n const otherMinPx =\n this._getConstraintInPx(this._otherPane(pane), 'min') ?? 0;\n\n // Dropping a constraint the panes cannot both satisfy keeps content from\n // overflowing. It is reapplied once the container grows to accommodate it.\n return minPx + otherMinPx > total ? undefined : minSize;\n }\n\n private _handleExpanderClick(pane: PanePosition, event: PointerEvent): void {\n // Keep the bar from starting a resize\n event.stopPropagation();\n this._handleExpanderAction(pane);\n }\n\n //#endregion\n\n //#region Rendering\n\n private _resolvePartNames(expander: PanePosition): Record<string, boolean> {\n const other = this._otherPane(expander);\n const otherIsCollapsed = this._isCollapsed(other);\n\n return {\n [`${other}-expand-btn`]: otherIsCollapsed,\n [`${expander}-collapse-btn`]: !otherIsCollapsed,\n };\n }\n\n private _renderBarControls() {\n const dragHandleHidden = this.hideDragHandle || this.disableResize;\n const hidden = this.disableCollapse || this.hideCollapseButtons;\n const prevButtonHidden = hidden || this._isCollapsed('start');\n const nextButtonHidden = hidden || this._isCollapsed('end');\n\n return html`\n <div\n part=\"${partMap(this._resolvePartNames('start'))}\"\n ?hidden=${prevButtonHidden}\n @pointerdown=${(e: PointerEvent) =>\n this._handleExpanderClick('start', e)}\n ></div>\n <div part=\"drag-handle\" ?hidden=${dragHandleHidden}></div>\n <div\n part=\"${partMap(this._resolvePartNames('end'))}\"\n ?hidden=${nextButtonHidden}\n @pointerdown=${(e: PointerEvent) => this._handleExpanderClick('end', e)}\n ></div>\n `;\n }\n\n private _renderAccessibleLabel() {\n return html`\n <igc-visually-hidden id=\"splitter-label\"\n >Resize panes</igc-visually-hidden\n >\n <igc-visually-hidden id=\"splitter-state\">\n ${\n this._isCollapsed('start')\n ? 'Start pane collapsed'\n : 'Start pane expanded'\n }\n and\n ${this._isCollapsed('end') ? 'End pane collapsed' : 'End pane expanded'}\n </igc-visually-hidden>\n `;\n }\n\n private _renderSeparator() {\n const canResize = !this._resizeDisallowed;\n\n return html`\n <div\n ${ref(this._separatorRef)}\n part=\"splitter-bar\"\n role=\"separator\"\n tabindex=${this.disableCollapse && this.disableResize ? -1 : 0}\n aria-controls=\"start-pane end-pane\"\n aria-labelledby=\"splitter-label\"\n aria-describedby=\"splitter-state\"\n aria-orientation=${this.orientation}\n style=${styleMap({ '--cursor': this._separatorCursor })}\n @touchstart=${bindIf(canResize, this._preventDefaultForEvent)}\n @contextmenu=${bindIf(canResize, this._preventDefaultForEvent)}\n @pointerdown=${bindIf(canResize, this._handleBarPointerDown)}\n @pointermove=${this._handleBarPointerMove}\n @pointerup=${this._handleEndDrag}\n @lostpointercapture=${this._handleEndDrag}\n @pointercancel=${this._handleCancelDrag}\n >\n ${this._renderBarControls()}\n </div>\n `;\n }\n\n protected override render() {\n return html`\n ${this._renderAccessibleLabel()}\n <div part=\"base\">\n <div\n part=\"start-pane\"\n id=\"start-pane\"\n style=${styleMap(this._startPaneState.styles)}\n >\n <slot name=\"start\"></slot>\n </div>\n ${this._renderSeparator()}\n <div\n part=\"end-pane\"\n id=\"end-pane\"\n style=${styleMap(this._endPaneState.styles)}\n >\n <slot name=\"end\"></slot>\n </div>\n </div>\n `;\n }\n\n //#endregion\n}\n\nexport type {\n IgcSplitterComponentEventMap,\n IgcSplitterLayoutChangedEventArgs,\n IgcSplitterResizeEventArgs,\n IgcSplitterResizeEventDetail,\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-splitter': IgcSplitterComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"splitter.js","sourceRoot":"","sources":["../../../src/components/splitter/splitter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAkB,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,GACR,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EACL,QAAQ,EACR,SAAS,EACT,KAAK,EACL,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,0BAA0B,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAYzC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,CAA4C,CAAC;AAG1E,MAAM,UAAU,GACd,mGAAmG,CAAC;AAGtG,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAEnD,MAAM,oBAAoB,GAAwB;IAChD,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;IACb,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACjC,aAAa,EAAE,CAAC,CAAC;CAClB,CAAC;AAuFF,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,iBAAiB,CAGjE,UAAU,CAAC;aACY,YAAO,GAAG,cAAc,AAAjB,CAAkB;aAClC,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAGjC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC;IACtE,CAAC;IAoCD,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IAC3D,CAAC;IAED,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC;IAC3C,CAAC;IAED,IAAY,gBAAgB;QAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC1D,CAAC;IA2ED,IAAW,YAAY,CAAC,KAAyB;QAC/C,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACtC,CAAC;IAWD,IAAW,UAAU,CAAC,KAAyB;QAC7C,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACpC,CAAC;IAWD,IAAW,YAAY,CAAC,KAAyB;QAC/C,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACtC,CAAC;IAWD,IAAW,UAAU,CAAC,KAAyB;QAC7C,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACpC,CAAC;IAWD,IAAW,SAAS,CAAC,KAAyB;QAC5C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACnC,CAAC;IAWD,IAAW,OAAO,CAAC,KAAyB;QAC1C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjC,CAAC;IASD,IAAW,cAAc,CAAC,KAAc;QACtC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IASD,IAAW,YAAY,CAAC,KAAc;QACpC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAMD;QACE,KAAK,EAAE,CAAC;QAhQO,eAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE1C,kBAAa,GAAG,SAAS,EAAe,CAAC;QAEzC,oBAAe,GAAsB;YACpD,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE;SACX,CAAC;QACe,kBAAa,GAAsB;YAClD,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE;SACX,CAAC;QAGM,mBAAc,GAAwB,IAAI,CAAC;QAE3C,iBAAY,GAAwB,EAAE,GAAG,oBAAoB,EAAE,CAAC;QAEhE,iBAAY,GAA8C,IAAI,CAAC;QAG/D,kBAAa,GAAG,CAAC,CAAC,CAAC;QAgDpB,gBAAW,GAAwB,YAAY,CAAC;QAShD,oBAAe,GAAG,KAAK,CAAC;QAUxB,kBAAa,GAAG,KAAK,CAAC;QAetB,wBAAmB,GAAG,KAAK,CAAC;QAc5B,mBAAc,GAAG,KAAK,CAAC;QA6I5B,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEhC,iBAAiB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAE7D,8BAA8B,CAAC,IAAI,EAAE;YACnC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;SAC9C,CAAC,CAAC;QAEH,cAAc,CAAC,IAAI,EAAE;YACnB,GAAG,EAAE,IAAI,CAAC,aAAa;SACxB,CAAC;aACC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;aAC3D,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;aAC5D,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;aAC/D,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;aAC/D,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;aACnD,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;aAClD,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAC5B,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAC,CACtD;aACA,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAC9B,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,UAAU,CAAC,CACpD;aACA,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAC9B,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,YAAY,CAAC,CACxD;aACA,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,CAC/B,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,YAAY,CAAC,CACtD,CAAC;IACN,CAAC;IAEkB,MAAM,CAAC,OAA6B;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAEkB,OAAO;QAExB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAC/B,CAAC;IAMO,qBAAqB,CAAC,CAAe;QAC3C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,CAAC,YAAY,GAAG;YAClB,GAAG,IAAI,CAAC,YAAY;YACpB,aAAa,EAAE,CAAC,CAAC,SAAS;YAC1B,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;SAClD,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IAEO,aAAa,CAAC,CAAe;QACnC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEO,qBAAqB,CAAC,CAAe;QAC3C,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAEpC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,CAAe;QACpC,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAGO,iBAAiB,CAAC,CAAe;QACvC,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,QAAQ;QACd,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QAG5C,IAAI,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAClD,CAAC;IAYM,MAAM,CAAC,QAAsB;QAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC;IAMO,cAAc,CAAC,MAA2B;QAChD,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpD,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAK7B,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QAEpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACvC,CAAC;IAEO,YAAY,CAAC,IAAkB,EAAE,KAAyB;QAChE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAKpE,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAGO,eAAe;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;YACpB,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAE5B,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,IAAkB,EAAE,KAAc;QACtD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEO,cAAc;QAGpB,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC3D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACvD,OAAO;QACT,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IAC1E,CAAC;IAGO,6BAA6B;QACnC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,MAAM,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,IAAI;gBACvB,IAAI,CAAC,eAAe,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;QACzE,CAAC;IACH,CAAC;IAMO,qBAAqB,CAAC,IAAY,EAAE,SAAS,GAAG,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/C,OAAO,aAAa,KAAK,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAGO,SAAS,CAAC,KAAa;QAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC;QACb,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAEO,mBAAmB,CAAC,IAAmB;QAC7C,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAErE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,YAAY,CAAC,KAAmB;QACtC,OAAO,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC;IACvC,CAAC;IAEO,UAAU,CAAC,IAAkB;QACnC,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5C,CAAC;IAEO,cAAc;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAE9C,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1C,SAAS,CAAC,aAAa,GAAG,GAAG,KAAK,GAAG,CAAC;YACtC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpE,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAmB;QACvC,OAAO,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IACvE,CAAC;IAEO,iBAAiB,CAAC,KAAmB;QAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAEO,WAAW,CAAC,KAAmB;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;IACnD,CAAC;IAEO,eAAe,CACrB,KAAyB,EACzB,QAAiB;QAEjB,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACnC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,YAAY,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;QACtC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,YAAY,GAAG,GAAG;YAAE,OAAO,QAAQ,CAAC;QAIjE,MAAM,cAAc,GAAG,YAAY,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3E,OAAO,cAAc,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzE,CAAC;IAEO,QAAQ,CAAC,KAAmB,EAAE,SAAS,GAAG,KAAK;QACrD,MAAM,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QAC7D,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;IACvC,CAAC;IAEO,kBAAkB,CACxB,SAAiB,EACjB,gBAAqC;QAErC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,KAAK,gBAAgB,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAC9B,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,CACV,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAOO,UAAU,CAAC,KAAa;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAGO,uBAAuB,CAAC,CAAQ;QACtC,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC;IAEO,aAAa,CACnB,MAAc,EACd,MAAc,EACd,SAAkB;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,MAAM,aAAa,GAAG,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7C,OAAO,KAAK,GAAG,aAAa,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAGO,mBAAmB,CAAC,IAAmB;QAC7C,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,GACrB,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC;YACtC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,qBAAqB,CAAC,IAAkB;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAEO,gBAAgB,CAAC,QAAsB;QAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAIO,aAAa,CAAC,IAAkB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,CACL,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CACxE,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,MAAM,MAAM,GAAsC;YAChD,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YACtC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAClC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,2BAA2B,CACjC,MAAoB,EACpB,gBAAqC;QAErC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,KAAK,gBAAgB,EAAE,CAAC;YAClE,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,gBAAgB,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;IAEO,YAAY;QAClB,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE9C,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAElE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YAC/B,MAAM,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE;SAC7D,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CACtB,IAAkB,EAClB,IAAY;QAEZ,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACzE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC;SAChD,CAAC;IACJ,CAAC;IAEO,kBAAkB,CACxB,IAAkB,EAClB,IAAmB;QAEnB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAEjD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE/D,IAAI,CAAC,SAAS,GAAG,GAAG,aAAa,IAAI,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,GAAG,WAAW,IAAI,CAAC;QAElC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YAC5B,MAAM,EAAE;gBACN,cAAc,EAAE,aAAa;gBAC7B,YAAY,EAAE,WAAW;gBACzB,KAAK;aACN;SACF,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAClB,IAAwB,EACxB,QAAgB,EAChB,aAAqB;QAErB,OAAO,IAAI,CAAC,iBAAiB;YAC3B,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG;YAC1C,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QAEjD,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAGD,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAChC,KAAK,KAAK,CAAC;YACT,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;YAC7B,MAAM,EAAE;gBACN,cAAc,EAAE,aAAa;gBAC7B,YAAY,EAAE,WAAW;gBACzB,KAAK;aACN;SACF,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,SAAS;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAE1D,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO;YAC5D,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GACZ,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC;QAClE,MAAM,MAAM,GACV,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC;QAElE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,QAAQ,GAAG,KAAK,CAAC,WAAW,EAC5B,GAAG,CAAC,WAAW,GAAG,MAAM,CACzB,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,KAAK,CAAC,WAAW,GAAG,QAAQ,EAC5B,MAAM,GAAG,GAAG,CAAC,WAAW,CACzB,CAAC;QACF,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAE3D,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,EAAE,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;IACxE,CAAC;IAOO,QAAQ;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAErD,IAAI,CAAC,YAAY,KAAK;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,GAAG,EAAE,IAAI,CAAC,UAAU;gBAClB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;SACN,CAAC;QAEF,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAGO,iBAAiB;QACvB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC;IACnC,CAAC;IAGO,aAAa;QACnB,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;IAC/C,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEtC,IAAI,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;QAIjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAEtD,IAAI,CAAC,mBAAmB,CACtB,IAAI,EACJ,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAC3B,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAC/B,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAAkB,EAAE,MAAiB;QAC7D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEO,mBAAmB,CACzB,IAAkB,EAClB,OAAgB,EAChB,OAAgB;QAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,kCAAkC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC;QAE9B,IAAI,CAAC,iBAAiB,CACpB,IAAI,EACJ,IAAI,CAAC,aAAa;YAChB,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;YACnE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CACtE,CAAC;IACJ,CAAC;IAEO,kCAAkC,CACxC,IAAkB,EAClB,OAAgB;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEnC,IAAI,CAAC,OAAO,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,UAAU,GACd,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAI7D,OAAO,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1D,CAAC;IAEO,oBAAoB,CAAC,IAAkB,EAAE,KAAmB;QAElE,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAMO,iBAAiB,CAAC,QAAsB;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAElD,OAAO;YACL,CAAC,GAAG,KAAK,aAAa,CAAC,EAAE,gBAAgB;YACzC,CAAC,GAAG,QAAQ,eAAe,CAAC,EAAE,CAAC,gBAAgB;SAChD,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,mBAAmB,CAAC;QAChE,MAAM,gBAAgB,GAAG,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAA;;gBAEC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;kBACtC,gBAAgB;uBACX,CAAC,CAAe,EAAE,EAAE,CACjC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC;;wCAEP,gBAAgB;;gBAExC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;kBACpC,gBAAgB;uBACX,CAAC,CAAe,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC;;KAE1E,CAAC;IACJ,CAAC;IAEO,sBAAsB;QAC5B,OAAO,IAAI,CAAA;;;;;UAML,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YACxB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,qBACN;;UAEE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB;;KAE1E,CAAC;IACJ,CAAC;IAEO,gBAAgB;QACtB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAE1C,OAAO,IAAI,CAAA;;UAEL,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;;;mBAGd,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;2BAI3C,IAAI,CAAC,WAAW;gBAC3B,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;sBACzC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC;uBAC9C,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC;uBAC/C,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC;uBAC7C,IAAI,CAAC,qBAAqB;qBAC5B,IAAI,CAAC,cAAc;8BACV,IAAI,CAAC,cAAc;yBACxB,IAAI,CAAC,iBAAiB;;UAErC,IAAI,CAAC,kBAAkB,EAAE;;KAE9B,CAAC;IACJ,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,sBAAsB,EAAE;;;;;kBAKnB,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;;;;UAI7C,IAAI,CAAC,gBAAgB,EAAE;;;;kBAIf,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;;;;;KAKhD,CAAC;IACJ,CAAC;;AAl+BO;IADP,KAAK,EAAE;4DAC2C;AAUlC;IADhB,KAAK,CAAC,gBAAgB,CAAC;mDACa;AAGpB;IADhB,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC;wDACM;AAGzB;IADhB,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC;sDACM;AAuCjC;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yDAC2B;AAShD;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;6DAC3C;AAUxB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;2DAC3C;AAetB;IALN,QAAQ,CAAC;QACR,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,uBAAuB;KACnC,CAAC;iEACiC;AAc5B;IALN,QAAQ,CAAC;QACR,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,kBAAkB;KAC9B,CAAC;4DAC4B;AAW9B;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;wDAGzC;AAeD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;sDAGvC;AAeD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;wDAGzC;AAeD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;sDAGvC;AAeD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;qDAGrC;AAeD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;mDAGnC;AAaD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;0DAGxE;AAaD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;wDAGtE;AAkXO;IADP,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;mEAGhC","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { eventOptions, property, query, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { type StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport { addInternalsController } from '#internals/controllers/internals.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n endKey,\n homeKey,\n} from '#internals/controllers/key-bindings.js';\nimport { createResizeObserverController } from '#internals/controllers/resize-observer.js';\nimport { addSlotController, setSlots } from '#internals/controllers/slot.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport type { Constructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { partMap } from '#internals/part-map.js';\nimport { isLTR, resolveCssLength } from '#internals/utils/dom.js';\nimport { bindIf } from '#internals/utils/lit.js';\nimport {\n asNumber,\n asPercent,\n clamp,\n roundPrecise,\n} from '#internals/utils/math.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport type { SplitterOrientation } from '../types.js';\nimport IgcVisuallyHiddenComponent from '../visually-hidden/visually-hidden.js';\nimport { styles as shared } from './themes/shared/splitter.common.css.js';\nimport { styles } from './themes/splitter.base.css.js';\nimport { all } from './themes/themes.js';\nimport type {\n IgcSplitterComponentEventMap,\n IgcSplitterLayoutChangedEventArgs,\n IgcSplitterResizeEventArgs,\n IgcSplitterResizeEventDetail,\n PanePosition,\n PaneResizeSnapshot,\n SplitterPaneState,\n SplitterResizeState,\n} from './types.js';\n\nconst KEYBOARD_RESIZE_STEP = 10;\n\nconst PANES = ['start', 'end'] as const satisfies readonly PanePosition[];\n\n/** A number carrying a percentage sign or one of the CSS length units. */\nconst CSS_LENGTH =\n /^[+-]?(\\d+\\.?\\d*|\\.\\d+)(%|px|em|rem|ch|ex|cap|ic|lh|rlh|vw|vh|vi|vb|vmin|vmax|cm|mm|q|in|pt|pc)$/i;\n\n/** A bare number, with no unit at all. */\nconst UNITLESS_NUMBER = /^[+-]?(\\d+\\.?\\d*|\\.\\d+)$/;\n\nconst DEFAULT_RESIZE_STATE: SplitterResizeState = {\n startPane: null,\n endPane: null,\n dragStartPosition: { x: 0, y: 0 },\n dragPointerId: -1,\n};\n\n/**\n * A splitter component that provides a resizable split-pane layout, dividing the view\n * into two panels - *start* and *end* - separated by a draggable bar.\n *\n * Panels can be resized by dragging the bar, using keyboard shortcuts, or collapsed/expanded\n * using the built-in collapse buttons or the programmatic `toggle()` API.\n * Nested splitters are supported for more complex layouts.\n *\n * @example\n * ```html\n * <!-- Basic horizontal splitter -->\n * <igc-splitter>\n * <div slot=\"start\">Start panel</div>\n * <div slot=\"end\">End panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```html\n * <!-- Vertical splitter with size constraints -->\n * <igc-splitter orientation=\"vertical\" start-min-size=\"100px\" end-min-size=\"100px\">\n * <div slot=\"start\">Top panel</div>\n * <div slot=\"end\">Bottom panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```html\n * <!-- Nested splitters for a multi-pane layout -->\n * <igc-splitter style=\"height: 600px;\">\n * <igc-splitter slot=\"start\" orientation=\"vertical\">\n * <div slot=\"start\">Top left</div>\n * <div slot=\"end\">Bottom left</div>\n * </igc-splitter>\n * <div slot=\"end\">Right panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```ts\n * // Programmatically collapse/expand a pane\n * const splitter = document.querySelector('igc-splitter');\n * splitter.toggle('start'); // collapse start pane\n * splitter.toggle('start'); // expand start pane\n * ```\n *\n * ## Keyboard interactions\n *\n * When the splitter bar is focused:\n *\n * | Key | Action |\n * |---|---|\n * | `Arrow Left` / `Arrow Right` | Resize panes (horizontal orientation) |\n * | `Arrow Up` / `Arrow Down` | Resize panes (vertical orientation) |\n * | `Home` | Snap start pane to its minimum size |\n * | `End` | Snap start pane to its maximum size |\n * | `Ctrl + Arrow Left` / `Ctrl + Arrow Up` | Collapse or expand the start pane |\n * | `Ctrl + Arrow Right` / `Ctrl + Arrow Down` | Collapse or expand the end pane |\n *\n * @element igc-splitter\n *\n * @fires igcResizeStart - Emitted once when a resize operation begins (pointer drag or keyboard).\n * @fires igcResizing - Emitted continuously while a pane is being resized.\n * @fires igcResizeEnd - Emitted once when a resize operation completes.\n * @fires igcLayoutChanged - Emitted after a user-driven resize or expansion change, with a full\n * snapshot of the current layout (pane sizes and collapsed states).\n *\n * @slot start - Content projected into the start (left/top) panel.\n * @slot end - Content projected into the end (right/bottom) panel.\n *\n * @csspart splitter-bar - The resizable bar element between the two panels.\n * @csspart drag-handle - The drag handle icon/element on the splitter bar.\n * @csspart start-pane - The container for the start panel content.\n * @csspart end-pane - The container for the end panel content.\n * @csspart start-collapse-btn - The button to collapse the start panel.\n * @csspart end-collapse-btn - The button to collapse the end panel.\n * @csspart start-expand-btn - The button to expand the start panel when collapsed.\n * @csspart end-expand-btn - The button to expand the end panel when collapsed.\n *\n * @remarks\n * The bar holds two expander elements, one on either side of the drag handle,\n * and each carries whichever part name applies to the current collapsed state.\n * A part name is therefore not tied to a fixed side: with the end pane\n * collapsed, `end-expand-btn` lands on the *first* of the two.\n */\nexport default class IgcSplitterComponent extends EventEmitterMixin<\n IgcSplitterComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-splitter';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcSplitterComponent, IgcVisuallyHiddenComponent);\n }\n\n //#region Private Properties\n\n private readonly _internals = addInternalsController(this);\n\n private readonly _separatorRef = createRef<HTMLElement>();\n\n private readonly _startPaneState: SplitterPaneState = {\n size: 'auto',\n styles: {},\n };\n private readonly _endPaneState: SplitterPaneState = {\n size: 'auto',\n styles: {},\n };\n\n @state()\n private _collapsedPane: PanePosition | null = null;\n\n private _resizeState: SplitterResizeState = { ...DEFAULT_RESIZE_STATE };\n\n private _measurement: { container: number; bar: number } | null = null;\n\n /** Container extent at the last resize notification we acted on. */\n private _observedSize = -1;\n\n @query('[part~=\"base\"]')\n private readonly _base!: HTMLElement;\n\n @query('[part~=\"start-pane\"]', true)\n private readonly _startPane!: HTMLElement;\n\n @query('[part~=\"end-pane\"]', true)\n private readonly _endPane!: HTMLElement;\n\n private get _separator(): HTMLElement | undefined {\n return this._separatorRef.value;\n }\n\n private get _isDragging(): boolean {\n return this._resizeState.dragPointerId !== -1;\n }\n\n private get _resizeDisallowed(): boolean {\n return this.disableResize || this._collapsedPane != null;\n }\n\n private get _isHorizontal(): boolean {\n return this.orientation === 'horizontal';\n }\n\n private get _separatorCursor(): string {\n if (this._resizeDisallowed) {\n return 'default';\n }\n return this._isHorizontal ? 'col-resize' : 'row-resize';\n }\n\n //#endregion\n\n //#region Public Properties\n\n /**\n * The orientation of the splitter, which determines the direction of resizing and collapsing.\n *\n * Changing the orientation after the initial render clears the pane sizes and\n * their min/max constraints, along with the corresponding attributes - a size\n * authored for one axis rarely makes sense on the other.\n * @attr orientation\n * @default 'horizontal'\n */\n @property({ reflect: true })\n public orientation: SplitterOrientation = 'horizontal';\n\n /**\n * Whether collapsing either pane is disabled. When `true`, this also hides\n * the expand/collapse buttons on the splitter bar.\n * @attr disable-collapse\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-collapse' })\n public disableCollapse = false;\n\n /**\n * Whether resizing the panes by dragging the splitter bar or using keyboard\n * shortcuts is disabled. When `true`, this also hides the drag handle on the\n * splitter bar.\n * @attr disable-resize\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-resize' })\n public disableResize = false;\n\n /**\n * Whether the expand/collapse buttons on the splitter bar are hidden.\n *\n * Note that the buttons will also be hidden if `disable-collapse` is true or\n * if a pane is currently collapsed.\n * @attr hide-collapse-buttons\n * @default false\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'hide-collapse-buttons',\n })\n public hideCollapseButtons = false;\n\n /**\n * Whether the drag handle on the splitter bar is hidden.\n *\n * Note that the drag handle will also be hidden if `disable-resize` is true.\n * @attr hide-drag-handle\n * @default false\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'hide-drag-handle',\n })\n public hideDragHandle = false;\n\n /**\n * The minimum size of the start pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `100px` or `20%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr start-min-size\n */\n @property({ attribute: 'start-min-size' })\n public set startMinSize(value: string | undefined) {\n this._startPaneState.minSize = this._normalizeValue(value);\n }\n\n public get startMinSize(): string | undefined {\n return this._startPaneState.minSize;\n }\n\n /**\n * The minimum size of the end pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `100px` or `20%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr end-min-size\n */\n @property({ attribute: 'end-min-size' })\n public set endMinSize(value: string | undefined) {\n this._endPaneState.minSize = this._normalizeValue(value);\n }\n\n public get endMinSize(): string | undefined {\n return this._endPaneState.minSize;\n }\n\n /**\n * The maximum size of the start pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `500px` or `80%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr start-max-size\n */\n @property({ attribute: 'start-max-size' })\n public set startMaxSize(value: string | undefined) {\n this._startPaneState.maxSize = this._normalizeValue(value);\n }\n\n public get startMaxSize(): string | undefined {\n return this._startPaneState.maxSize;\n }\n\n /**\n * The maximum size of the end pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `500px` or `80%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr end-max-size\n */\n @property({ attribute: 'end-max-size' })\n public set endMaxSize(value: string | undefined) {\n this._endPaneState.maxSize = this._normalizeValue(value);\n }\n\n public get endMaxSize(): string | undefined {\n return this._endPaneState.maxSize;\n }\n\n /**\n * The size of the start pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `200px` or `50%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 falls back to automatic sizing.\n * @attr start-size\n */\n @property({ attribute: 'start-size' })\n public set startSize(value: string | undefined) {\n this._setPaneSize('start', value);\n }\n\n public get startSize(): string | undefined {\n return this._startPaneState.size;\n }\n\n /**\n * The size of the end pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `200px` or `50%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 falls back to automatic sizing.\n * @attr end-size\n */\n @property({ attribute: 'end-size' })\n public set endSize(value: string | undefined) {\n this._setPaneSize('end', value);\n }\n\n public get endSize(): string | undefined {\n return this._endPaneState.size;\n }\n\n /**\n * Whether the start pane is currently collapsed. Set this property to\n * collapse or expand the pane programmatically.\n * @attr start-collapsed\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'start-collapsed' })\n public set startCollapsed(value: boolean) {\n this._setCollapsed('start', value);\n }\n\n public get startCollapsed(): boolean {\n return this._isCollapsed('start');\n }\n\n /**\n * Whether the end pane is currently collapsed. Set this property to\n * collapse or expand the pane programmatically.\n * @attr end-collapsed\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'end-collapsed' })\n public set endCollapsed(value: boolean) {\n this._setCollapsed('end', value);\n }\n\n public get endCollapsed(): boolean {\n return this._isCollapsed('end');\n }\n\n //#endregion\n\n //#region Lifecycle\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addSlotController(this, { slots: setSlots('start', 'end') });\n\n createResizeObserverController(this, {\n callback: () => this._handleContainerResize(),\n });\n\n addKeybindings(this, {\n ref: this._separatorRef,\n })\n .set(arrowUp, () => this._handleResizePanes(-1, 'vertical'))\n .set(arrowDown, () => this._handleResizePanes(1, 'vertical'))\n .set(arrowLeft, () => this._handleResizePanes(-1, 'horizontal'))\n .set(arrowRight, () => this._handleResizePanes(1, 'horizontal'))\n .set(homeKey, () => this._handleMinMaxResize('min'))\n .set(endKey, () => this._handleMinMaxResize('max'))\n .set([ctrlKey, arrowUp], () =>\n this._handleArrowsExpandCollapse('start', 'vertical')\n )\n .set([ctrlKey, arrowDown], () =>\n this._handleArrowsExpandCollapse('end', 'vertical')\n )\n .set([ctrlKey, arrowLeft], () =>\n this._handleArrowsExpandCollapse('start', 'horizontal')\n )\n .set([ctrlKey, arrowRight], () =>\n this._handleArrowsExpandCollapse('end', 'horizontal')\n );\n }\n\n protected override update(changed: PropertyValues<this>): void {\n this._measurement = null;\n\n if (changed.get('orientation') != null) {\n this._resetPaneSizes();\n }\n\n if (this.hasUpdated) {\n this._updatePanes();\n }\n\n super.update(changed);\n }\n\n protected override updated(): void {\n // Layout has just been committed; the `update()` measurements are stale.\n this._measurement = null;\n this._updateBarAria();\n }\n\n public override disconnectedCallback(): void {\n this._endDrag();\n super.disconnectedCallback();\n }\n\n //#endregion\n\n //#region Resize Event Handlers\n\n private _handleBarPointerDown(e: PointerEvent): void {\n if (e.button !== 0 || this._isDragging) {\n return;\n }\n\n e.preventDefault();\n\n this._resizeState = {\n ...this._resizeState,\n dragPointerId: e.pointerId,\n dragStartPosition: { x: e.clientX, y: e.clientY },\n };\n\n this._resizeStart();\n this._separator?.setPointerCapture(this._resizeState.dragPointerId);\n }\n\n private _getDragDelta(e: PointerEvent): number {\n const deltaX = e.clientX - this._resizeState.dragStartPosition.x;\n const deltaY = e.clientY - this._resizeState.dragStartPosition.y;\n return this._resolveDelta(deltaX, deltaY);\n }\n\n private _handleBarPointerMove(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n const delta = this._getDragDelta(e);\n\n if (delta !== 0) {\n this._resizing(delta);\n }\n }\n\n private _handleEndDrag(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n this._resizeEnd(this._getDragDelta(e));\n this._endDrag();\n }\n\n /** A cancelled gesture reverts, but still reports an end for the start it emitted. */\n private _handleCancelDrag(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n this._resizeEnd(0);\n this._endDrag();\n }\n\n private _endDrag(): void {\n const { dragPointerId } = this._resizeState;\n\n // `releasePointerCapture` throws for a pointer that is no longer active.\n if (this._separator?.hasPointerCapture(dragPointerId)) {\n this._separator.releasePointerCapture(dragPointerId);\n }\n\n this._resizeState = { ...DEFAULT_RESIZE_STATE };\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * Toggles the collapsed state of the specified pane.\n *\n * Does not emit `igcLayoutChanged` - that event reports user-driven changes,\n * and a programmatic call is already known to the caller.\n */\n public toggle(position: PanePosition): void {\n this._applyCollapse(this._collapsedPane === position ? null : position);\n }\n\n //#endregion\n\n //#region Internal API\n\n private _applyCollapse(target: PanePosition | null): void {\n if (this._collapsedPane === null && target !== null) {\n this._savePaneSizes();\n }\n\n const wasStartCollapsed = this._isCollapsed('start');\n const wasEndCollapsed = this._isCollapsed('end');\n\n this._collapsedPane = target;\n\n // `toggle()`, the expanders and Ctrl + arrow do not use the decorated\n // accessors, and one assignment can change both flags. Request both, so that\n // Lit reads them from their getters and leaves neither stale.\n this.requestUpdate('startCollapsed', wasStartCollapsed);\n this.requestUpdate('endCollapsed', wasEndCollapsed);\n\n this._internals.setState('start-collapsed', this._isCollapsed('start'));\n this._internals.setState('end-collapsed', this._isCollapsed('end'));\n\n this._restoreSizesOnExpandCollapse();\n }\n\n private _setPaneSize(pane: PanePosition, value: string | undefined): void {\n this._getPaneState(pane).size = this._normalizeValue(value, 'auto');\n\n // A size set while collapsed wins over the snapshot from before the\n // collapse. Drop the full snapshot. The share of the other pane would\n // over-subscribe the container and shrink both panes.\n if (this._collapsedPane !== null) {\n for (const target of PANES) {\n this._getPaneState(target).savedSize = undefined;\n }\n }\n }\n\n /** Drops the authored sizes and their attributes, which would otherwise diverge. */\n private _resetPaneSizes(): void {\n for (const pane of PANES) {\n const state = this._getPaneState(pane);\n state.size = 'auto';\n state.minSize = undefined;\n state.maxSize = undefined;\n state.savedSize = undefined;\n\n for (const suffix of ['size', 'min-size', 'max-size']) {\n this.removeAttribute(`${pane}-${suffix}`);\n }\n }\n }\n\n private _setCollapsed(pane: PanePosition, value: boolean): void {\n if (this._isCollapsed(pane) === value) {\n return;\n }\n this._applyCollapse(value ? pane : null);\n }\n\n private _savePaneSizes(): void {\n // Not measurable yet (collapsed before the first render) - keep the\n // explicit size rather than lose it to the 'auto' reset.\n if (this._getTotalSize() === 0) {\n this._startPaneState.savedSize = this._startPaneState.size;\n this._endPaneState.savedSize = this._endPaneState.size;\n return;\n }\n // Higher precision than the ARIA percent so restored layouts don't drift.\n const [start, end] = this._rectSize();\n this._startPaneState.savedSize = `${this._asPercentOfContainer(start, 2)}%`;\n this._endPaneState.savedSize = `${this._asPercentOfContainer(end, 2)}%`;\n }\n\n /* Reset sizes on collapse; restore saved sizes on expand */\n private _restoreSizesOnExpandCollapse(): void {\n if (this._collapsedPane !== null) {\n this._startPaneState.size = 'auto';\n this._endPaneState.size = 'auto';\n } else {\n this._startPaneState.size =\n this._startPaneState.savedSize ?? this.startSize;\n this._endPaneState.size = this._endPaneState.savedSize ?? this.endSize;\n }\n }\n\n /**\n * The container is what the browser resolves a percentage `flex-basis`\n * against, so a value measured this way survives a round trip through CSS.\n */\n private _asPercentOfContainer(size: number, precision = 0): number {\n const containerSize = this._getContainerSize();\n return containerSize === 0\n ? 0\n : roundPrecise(asPercent(size, containerSize), precision);\n }\n\n /** Resolves a CSS length to pixels, percentages against the container. */\n private _toPixels(value: string): number {\n if (value.endsWith('%')) {\n return (asNumber(value) / 100) * this._getContainerSize();\n }\n\n return this._base ? resolveCssLength(this._base, value) : 0;\n }\n\n private _getStartPaneSizePercent(): number {\n if (!this._startPane || this._isCollapsed('start')) {\n return 0;\n }\n\n if (this._isCollapsed('end')) {\n return 100;\n }\n\n return this._asPercentOfContainer(this._rectSize()[0]);\n }\n\n private _getMinMaxAsPercent(type: 'min' | 'max'): number {\n const value = type === 'min' ? this.startMinSize : this.startMaxSize;\n\n if (!value) {\n return type === 'min' ? 0 : 100;\n }\n\n return this._asPercentOfContainer(this._toPixels(value));\n }\n\n private _isCollapsed(which: PanePosition): boolean {\n return this._collapsedPane === which;\n }\n\n private _otherPane(pane: PanePosition): PanePosition {\n return pane === 'start' ? 'end' : 'start';\n }\n\n private _updateBarAria(): void {\n const separator = this._separator;\n\n if (separator) {\n const value = this._getStartPaneSizePercent();\n\n separator.ariaValueNow = value.toString();\n separator.ariaValueText = `${value}%`;\n separator.ariaValueMin = this._getMinMaxAsPercent('min').toString();\n separator.ariaValueMax = this._getMinMaxAsPercent('max').toString();\n }\n }\n\n private _getPaneState(which: PanePosition): SplitterPaneState {\n return which === 'start' ? this._startPaneState : this._endPaneState;\n }\n\n private _isPercentageSize(which: PanePosition): boolean {\n const { size } = this._getPaneState(which);\n return !!size && size.includes('%');\n }\n\n private _isAutoSize(which: PanePosition): boolean {\n return this._getPaneState(which).size === 'auto';\n }\n\n private _normalizeValue(\n value: string | undefined,\n fallback?: 'auto'\n ): string | undefined {\n const trimmed = value?.trim();\n if (!trimmed || trimmed === 'auto') {\n return fallback;\n }\n\n const numericValue = asNumber(trimmed, -1);\n if (numericValue < 0) return fallback;\n if (trimmed.includes('%') && numericValue > 100) return fallback;\n\n // Zero is the one length that needs no unit; any other bare number is\n // invalid CSS and would silently drop the whole `flex` shorthand.\n const isUnitlessZero = numericValue === 0 && UNITLESS_NUMBER.test(trimmed);\n\n return isUnitlessZero || CSS_LENGTH.test(trimmed) ? trimmed : fallback;\n }\n\n private _getFlex(which: PanePosition, forceAuto = false): string {\n const isAuto = forceAuto || this._isAutoSize(which);\n const size = isAuto ? '0px' : this._getPaneState(which).size;\n return `${isAuto ? 1 : 0} 1 ${size}`;\n }\n\n private _handleResizePanes(\n direction: -1 | 1,\n validOrientation: SplitterOrientation\n ): void {\n if (this._resizeDisallowed || this.orientation !== validOrientation) {\n return;\n }\n const delta = this._resolveDelta(\n KEYBOARD_RESIZE_STEP,\n KEYBOARD_RESIZE_STEP,\n direction\n );\n\n this._runResize(delta);\n }\n\n /**\n * A complete resize for a gesture that is not a pointer drag. `_calcNewSizes`\n * is shared with the drag path, which keeps the constraints of both panes and\n * makes the emitted sizes equal to the rendered ones.\n */\n private _runResize(delta: number): void {\n this._resizeStart();\n this._resizing(delta);\n this._resizeEnd(delta);\n this._endDrag();\n }\n\n @eventOptions({ passive: false })\n private _preventDefaultForEvent(e: Event): void {\n e.preventDefault();\n }\n\n private _resolveDelta(\n deltaX: number,\n deltaY: number,\n direction?: -1 | 1\n ): number {\n const isHorizontal = this._isHorizontal;\n const rtlMultiplier = isHorizontal && !isLTR(this) ? -1 : 1;\n const delta = isHorizontal ? deltaX : deltaY;\n return delta * rtlMultiplier * (direction ?? 1);\n }\n\n /** Snaps the start pane to its minimum or maximum size. */\n private _handleMinMaxResize(type: 'min' | 'max'): void {\n if (this._resizeDisallowed) {\n return;\n }\n\n const targetStartSizePx =\n this._getConstraintInPx('start', type) ??\n (type === 'min' ? 0 : this._getTotalSize());\n\n this._runResize(targetStartSizePx - this._rectSize()[0]);\n }\n\n private _handleExpanderAction(pane: PanePosition): void {\n const other = this._otherPane(pane);\n this._toggleWithEvent(this._collapsedPane === other ? other : pane);\n }\n\n private _toggleWithEvent(position: PanePosition): void {\n this.toggle(position);\n this._emitLayoutChanged();\n }\n\n // Both sizes render as 'auto' while collapsed, so report the pre-collapse\n // ones instead - those are what a consumer needs to restore the layout.\n private _reportedSize(pane: PanePosition): string {\n const state = this._getPaneState(pane);\n return (\n (this._collapsedPane !== null ? state.savedSize : state.size) ?? 'auto'\n );\n }\n\n private _emitLayoutChanged(): void {\n const detail: IgcSplitterLayoutChangedEventArgs = {\n startSize: this._reportedSize('start'),\n endSize: this._reportedSize('end'),\n startCollapsed: this.startCollapsed,\n endCollapsed: this.endCollapsed,\n };\n this.emitEvent('igcLayoutChanged', { detail });\n }\n\n private _handleArrowsExpandCollapse(\n target: PanePosition,\n validOrientation: SplitterOrientation\n ): void {\n if (this.disableCollapse || this.orientation !== validOrientation) {\n return;\n }\n const isFlipped = validOrientation === 'horizontal' && !isLTR(this);\n this._handleExpanderAction(isFlipped ? this._otherPane(target) : target);\n }\n\n private _resizeStart(): void {\n const [startSize, endSize] = this._rectSize();\n\n this._resizeState.startPane = this._createPaneState('start', startSize);\n this._resizeState.endPane = this._createPaneState('end', endSize);\n\n this.emitEvent('igcResizeStart', {\n detail: { startPanelSize: startSize, endPanelSize: endSize },\n });\n }\n\n private _createPaneState(\n pane: PanePosition,\n size: number\n ): PaneResizeSnapshot {\n return {\n initialSize: size,\n isPercentageBased: this._isPercentageSize(pane) || this._isAutoSize(pane),\n minSizePx: this._getConstraintInPx(pane, 'min'),\n maxSizePx: this._getConstraintInPx(pane, 'max'),\n };\n }\n\n private _getConstraintInPx(\n pane: PanePosition,\n type: 'min' | 'max'\n ): number | undefined {\n const { minSize, maxSize } = this._getPaneState(pane);\n const value = type === 'max' ? maxSize : minSize;\n\n return value ? this._toPixels(value) : undefined;\n }\n\n private _resizing(delta: number): void {\n if (!this._resizeState.startPane || !this._resizeState.endPane) {\n return;\n }\n\n const [startPaneSize, endPaneSize] = this._calcNewSizes(delta);\n\n this.startSize = `${startPaneSize}px`;\n this.endSize = `${endPaneSize}px`;\n\n this.emitEvent('igcResizing', {\n detail: {\n startPanelSize: startPaneSize,\n endPanelSize: endPaneSize,\n delta,\n },\n });\n }\n\n private _computeSize(\n pane: PaneResizeSnapshot,\n paneSize: number,\n containerSize: number\n ): string {\n return pane.isPercentageBased\n ? `${asPercent(paneSize, containerSize)}%`\n : `${roundPrecise(paneSize, 0)}px`;\n }\n\n private _resizeEnd(delta: number): void {\n const { startPane, endPane } = this._resizeState;\n\n if (!startPane || !endPane) {\n return;\n }\n\n // A cancelled gesture reverts to the sizes captured at `_resizeStart`.\n const [startPaneSize, endPaneSize] =\n delta === 0\n ? [startPane.initialSize, endPane.initialSize]\n : this._calcNewSizes(delta);\n const containerSize = this._getContainerSize();\n\n this.startSize = this._computeSize(startPane, startPaneSize, containerSize);\n this.endSize = this._computeSize(endPane, endPaneSize, containerSize);\n\n this.emitEvent('igcResizeEnd', {\n detail: {\n startPanelSize: startPaneSize,\n endPanelSize: endPaneSize,\n delta,\n },\n });\n this._emitLayoutChanged();\n }\n\n private _rectSize(): [number, number] {\n const axis = this._isHorizontal ? 'width' : 'height';\n const startPaneRect = this._startPane.getBoundingClientRect();\n const endPaneRect = this._endPane.getBoundingClientRect();\n\n return [startPaneRect[axis], endPaneRect[axis]];\n }\n\n private _calcNewSizes(delta: number): [number, number] {\n if (!this._resizeState.startPane || !this._resizeState.endPane)\n return [0, 0];\n\n const start = this._resizeState.startPane;\n const end = this._resizeState.endPane;\n const minStart = start.minSizePx || 0;\n const minEnd = end.minSizePx || 0;\n const maxStart =\n start.maxSizePx || start.initialSize + end.initialSize - minEnd;\n const maxEnd =\n end.maxSizePx || start.initialSize + end.initialSize - minStart;\n\n const maxPosDelta = Math.min(\n maxStart - start.initialSize,\n end.initialSize - minEnd\n );\n const maxNegDelta = Math.min(\n start.initialSize - minStart,\n maxEnd - end.initialSize\n );\n const finalDelta = clamp(delta, -maxNegDelta, maxPosDelta);\n\n return [start.initialSize + finalDelta, end.initialSize - finalDelta];\n }\n\n /**\n * Reads the container and bar extents one time per update pass. Both\n * `_updatePanes` and `_updateBarAria` need them, and the style writes between\n * them would force a reflow for each read.\n */\n private _measure(): { container: number; bar: number } {\n const axis = this._isHorizontal ? 'width' : 'height';\n\n this._measurement ??= {\n container: this._base ? this._base.getBoundingClientRect()[axis] : 0,\n bar: this._separator\n ? roundPrecise(this._separator.getBoundingClientRect()[axis])\n : 0,\n };\n\n return this._measurement;\n }\n\n /** The content box of the flex container - the basis for every percentage. */\n private _getContainerSize(): number {\n return this._measure().container;\n }\n\n /** The space left for the panes once the bar has taken its own. */\n private _getTotalSize(): number {\n const { container, bar } = this._measure();\n return container === 0 ? 0 : container - bar;\n }\n\n private _handleContainerResize(): void {\n this._measurement = null;\n const size = this._getContainerSize();\n\n if (size !== this._observedSize) {\n this._observedSize = size;\n this.requestUpdate();\n }\n }\n\n private _updatePanes(): void {\n const isCollapsed = this._collapsedPane !== null;\n\n // A collapsed pane renders as `auto` with its constraints lifted, while the\n // authored values stay untouched so they survive the round trip.\n for (const pane of PANES) {\n const { minSize, maxSize } = this._getPaneState(pane);\n\n this._setPaneMinMaxSizes(\n pane,\n isCollapsed ? '0' : minSize,\n isCollapsed ? '100%' : maxSize\n );\n this._updatePaneStyles(pane, { flex: this._getFlex(pane, isCollapsed) });\n }\n }\n\n private _updatePaneStyles(pane: PanePosition, styles: StyleInfo): void {\n Object.assign(this._getPaneState(pane).styles, styles);\n }\n\n private _setPaneMinMaxSizes(\n pane: PanePosition,\n minSize?: string,\n maxSize?: string\n ): void {\n const min = this._ensureMinConstraintIsWithinBounds(pane, minSize) ?? 0;\n const max = maxSize ?? '100%';\n\n this._updatePaneStyles(\n pane,\n this._isHorizontal\n ? { minWidth: min, maxWidth: max, minHeight: 0, maxHeight: '100%' }\n : { minWidth: 0, maxWidth: '100%', minHeight: min, maxHeight: max }\n );\n }\n\n private _ensureMinConstraintIsWithinBounds(\n pane: PanePosition,\n minSize?: string\n ): string | undefined {\n const total = this._getTotalSize();\n\n if (!minSize || total <= 0) {\n return minSize;\n }\n\n const minPx = this._getConstraintInPx(pane, 'min') ?? 0;\n const otherMinPx =\n this._getConstraintInPx(this._otherPane(pane), 'min') ?? 0;\n\n // Dropping a constraint the panes cannot both satisfy keeps content from\n // overflowing. It is reapplied once the container grows to accommodate it.\n return minPx + otherMinPx > total ? undefined : minSize;\n }\n\n private _handleExpanderClick(pane: PanePosition, event: PointerEvent): void {\n // Keep the bar from starting a resize\n event.stopPropagation();\n this._handleExpanderAction(pane);\n }\n\n //#endregion\n\n //#region Rendering\n\n private _resolvePartNames(expander: PanePosition): Record<string, boolean> {\n const other = this._otherPane(expander);\n const otherIsCollapsed = this._isCollapsed(other);\n\n return {\n [`${other}-expand-btn`]: otherIsCollapsed,\n [`${expander}-collapse-btn`]: !otherIsCollapsed,\n };\n }\n\n private _renderBarControls() {\n const dragHandleHidden = this.hideDragHandle || this.disableResize;\n const hidden = this.disableCollapse || this.hideCollapseButtons;\n const prevButtonHidden = hidden || this._isCollapsed('start');\n const nextButtonHidden = hidden || this._isCollapsed('end');\n\n return html`\n <div\n part=\"${partMap(this._resolvePartNames('start'))}\"\n ?hidden=${prevButtonHidden}\n @pointerdown=${(e: PointerEvent) =>\n this._handleExpanderClick('start', e)}\n ></div>\n <div part=\"drag-handle\" ?hidden=${dragHandleHidden}></div>\n <div\n part=\"${partMap(this._resolvePartNames('end'))}\"\n ?hidden=${nextButtonHidden}\n @pointerdown=${(e: PointerEvent) => this._handleExpanderClick('end', e)}\n ></div>\n `;\n }\n\n private _renderAccessibleLabel() {\n return html`\n <igc-visually-hidden id=\"splitter-label\"\n >Resize panes</igc-visually-hidden\n >\n <igc-visually-hidden id=\"splitter-state\">\n ${\n this._isCollapsed('start')\n ? 'Start pane collapsed'\n : 'Start pane expanded'\n }\n and\n ${this._isCollapsed('end') ? 'End pane collapsed' : 'End pane expanded'}\n </igc-visually-hidden>\n `;\n }\n\n private _renderSeparator() {\n const canResize = !this._resizeDisallowed;\n\n return html`\n <div\n ${ref(this._separatorRef)}\n part=\"splitter-bar\"\n role=\"separator\"\n tabindex=${this.disableCollapse && this.disableResize ? -1 : 0}\n aria-controls=\"start-pane end-pane\"\n aria-labelledby=\"splitter-label\"\n aria-describedby=\"splitter-state\"\n aria-orientation=${this.orientation}\n style=${styleMap({ '--cursor': this._separatorCursor })}\n @touchstart=${bindIf(canResize, this._preventDefaultForEvent)}\n @contextmenu=${bindIf(canResize, this._preventDefaultForEvent)}\n @pointerdown=${bindIf(canResize, this._handleBarPointerDown)}\n @pointermove=${this._handleBarPointerMove}\n @pointerup=${this._handleEndDrag}\n @lostpointercapture=${this._handleEndDrag}\n @pointercancel=${this._handleCancelDrag}\n >\n ${this._renderBarControls()}\n </div>\n `;\n }\n\n protected override render() {\n return html`\n ${this._renderAccessibleLabel()}\n <div part=\"base\">\n <div\n part=\"start-pane\"\n id=\"start-pane\"\n style=${styleMap(this._startPaneState.styles)}\n >\n <slot name=\"start\"></slot>\n </div>\n ${this._renderSeparator()}\n <div\n part=\"end-pane\"\n id=\"end-pane\"\n style=${styleMap(this._endPaneState.styles)}\n >\n <slot name=\"end\"></slot>\n </div>\n </div>\n `;\n }\n\n //#endregion\n}\n\nexport type {\n IgcSplitterComponentEventMap,\n IgcSplitterLayoutChangedEventArgs,\n IgcSplitterResizeEventArgs,\n IgcSplitterResizeEventDetail,\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-splitter': IgcSplitterComponent;\n }\n}\n"]}
@@ -26,7 +26,7 @@ declare const IgcTextareaComponent_base: Constructor<import("../../internals/mix
26
26
  * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).
27
27
  *
28
28
  * @fires igcInput - Emitted when the control receives user input.
29
- * @fires igcChange - Emitted when the a change to the control value is committed by the user.
29
+ * @fires igcChange - Emitted when a change to the control value is committed by the user.
30
30
  *
31
31
  * @csspart container - The main wrapper that holds all main input elements of the textarea.
32
32
  * @csspart input - The native input element of the textarea.
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/components/textarea/textarea.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport {\n addAriaTarget,\n ariaBindings,\n} from '#internals/controllers/aria-projection.js';\nimport { createResizeObserverController } from '#internals/controllers/resize-observer.js';\nimport {\n addSlotController,\n type InferSlotNames,\n type SlotChangeCallbackParameters,\n setSlots,\n} from '#internals/controllers/slot.js';\nimport { shadowOptions } from '#internals/decorators/shadow-options.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport type { Constructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '#internals/mixins/forms/associated-required.js';\nimport { createFormValueState } from '#internals/mixins/forms/form-value.js';\nimport {\n renderInputShell,\n resolveInputPartNames,\n} from '#internals/templates/input-shell.js';\nimport { addSafeEventListener } from '#internals/utils/events.js';\nimport { asNumber } from '#internals/utils/math.js';\nimport { createIdGenerator } from '#internals/utils/strings.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport type {\n RangeTextSelectMode,\n SelectionRangeDirection,\n TextareaResize,\n} from '../types.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { styles as shared } from './themes/shared/textarea.common.css.js';\nimport { styles } from './themes/textarea.base.css.js';\nimport { all } from './themes/themes.js';\nimport { textAreaValidators } from './validators.js';\n\nexport interface IgcTextareaComponentEventMap {\n igcInput: CustomEvent<string>;\n igcChange: CustomEvent<string>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n}\n\nconst nextId = createIdGenerator('textarea');\nconst Slots = setSlots(\n 'prefix',\n 'suffix',\n 'helper-text',\n 'value-missing',\n 'too-long',\n 'too-short',\n 'custom-error',\n 'invalid'\n);\n\n/**\n * Represents a multi-line plain-text editing control,\n * useful when you want to allow users to enter a sizeable amount of free-form text,\n * for example a comment on a review or feedback form.\n *\n * @element igc-textarea\n *\n * @slot - Text content from the default slot will be used as the value of the component.\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot too-long - Renders content when the maxlength validation fails.\n * @slot too-short - Renders content when the minlength validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcInput - Emitted when the control receives user input.\n * @fires igcChange - Emitted when the a change to the control value is committed by the user.\n *\n * @csspart container - The main wrapper that holds all main input elements of the textarea.\n * @csspart input - The native input element of the textarea.\n * @csspart label - The native label element of the textarea.\n * @csspart prefix - The prefix wrapper of the textarea.\n * @csspart suffix - The suffix wrapper of the textarea.\n * @csspart helper-text - The helper text wrapper of the textarea.\n */\n@shadowOptions({ delegatesFocus: true })\nexport default class IgcTextareaComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<IgcTextareaComponentEventMap, Constructor<LitElement>>(\n LitElement\n )\n) {\n public static readonly tagName = 'igc-textarea';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcTextareaComponent, IgcValidationContainerComponent);\n }\n\n //#region Private properties and state\n\n private readonly _inputId = nextId();\n\n private readonly _themes = addThemingController(this, all);\n\n private readonly _slots = addSlotController(this, {\n slots: Slots,\n onChange: this._handleSlotChange,\n });\n\n /**\n * Receives ARIA semantics projected by a composite host onto the inner\n * native textarea. See {@link addAriaTarget}.\n */\n private readonly _ariaTarget = addAriaTarget(this, {\n labels: () => this._internals.labels,\n description: () =>\n this._slots.hasAssignedElements('helper-text')\n ? this.renderRoot.querySelector('#helper-text')\n : null,\n });\n\n @query('textarea')\n private readonly _input?: HTMLTextAreaElement;\n\n protected override get __validators() {\n return textAreaValidators;\n }\n\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: '',\n });\n\n //#endregion\n\n //#region Public properties and attributes\n\n /**\n * Specifies what permission, if any, the browser has to provide automated assistance in filling out form field values,\n * as well as guidance to the browser as to the type of information expected in the field.\n * Refer to [this page](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for additional information.\n *\n * @attr\n */\n @property()\n public autocomplete!: string;\n\n /**\n * Controls whether and how text input is automatically capitalized as it is entered/edited by the user.\n *\n * [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autocapitalize).\n *\n * @attr\n */\n @property()\n public override autocapitalize!: string;\n\n /**\n * Hints at the type of data that might be entered by the user while editing the element or its contents.\n * This allows a browser to display an appropriate virtual keyboard.\n *\n * [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode)\n *\n * @attr inputmode\n */\n @property({ attribute: 'inputmode' })\n public override inputMode!: string;\n\n /**\n * The label for the control.\n *\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * The maximum number of characters (UTF-16 code units) that the user can enter.\n * If this value isn't specified, the user can enter an unlimited number of characters.\n *\n * @attr maxlength\n */\n @property({ type: Number, attribute: 'maxlength' })\n public maxLength!: number;\n\n /**\n * The minimum number of characters (UTF-16 code units) required that the user should enter.\n *\n * @attr minlength\n */\n @property({ type: Number, attribute: 'minlength' })\n public minLength!: number;\n\n /**\n * Whether the control will have outlined appearance.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The placeholder text of the control.\n *\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /**\n * Makes the control a readonly field.\n *\n * @attr readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'readonly' })\n public readOnly = false;\n\n /**\n * Controls whether the control can be resized.\n * When `auto` is set, the control will try to expand and fit its content.\n *\n * @attr\n */\n @property()\n public resize: TextareaResize = 'vertical';\n\n /**\n * The number of visible text lines for the control. If it is specified, it must be a positive integer.\n * If it is not specified, the default value is 3.\n *\n * @attr\n */\n @property({ type: Number })\n public rows = 3;\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the component\n *\n * @attr\n */\n @property()\n public set value(value: string) {\n this._formValue.setValueAndFormState(value);\n }\n\n public get value(): string {\n return this._formValue.value;\n }\n\n /**\n * Controls whether the element may be checked for spelling errors.\n *\n * @attr\n */\n @property({\n type: Boolean,\n converter: {\n fromAttribute: (value) => !(!value || value === 'false'),\n toAttribute: (value) => (value ? 'true' : 'false'),\n },\n })\n public override spellcheck = true;\n\n /**\n * Indicates how the control should wrap the value for form submission.\n * Refer to [this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#attributes)\n * for explanation of the available values.\n *\n * @attr\n */\n @property()\n public wrap: 'hard' | 'soft' | 'off' = 'soft';\n\n /**\n * Enables validation rules to be evaluated without restricting user input. This applies to the `maxLength` property\n * when it is defined.\n *\n * @attr validate-only\n */\n @property({ type: Boolean, reflect: true, attribute: 'validate-only' })\n public validateOnly = false;\n\n //#endregion\n\n //#region Life-cycle hooks\n\n constructor() {\n super();\n\n createResizeObserverController(this, {\n callback: this._setAreaHeight,\n });\n\n addSafeEventListener(this, 'blur', this._handleBlur);\n }\n\n protected override updated(props: PropertyValues<this>): void {\n if (props.has('rows') || props.has('resize') || props.has('value')) {\n this._setAreaHeight();\n }\n }\n\n //#endregion\n\n //#region Internal methods\n\n protected _setAreaHeight(): void {\n const input = this._input;\n\n if (!input) {\n return;\n }\n\n if (this.resize !== 'auto') {\n input.style.removeProperty('height');\n return;\n }\n\n input.style.height = 'auto';\n\n const { borderTopWidth, borderBottomWidth } = getComputedStyle(input);\n const height =\n input.scrollHeight +\n asNumber(borderTopWidth) +\n asNumber(borderBottomWidth);\n\n input.style.height = `${height}px`;\n }\n\n //#endregion\n\n //#region Event handlers\n\n private _handleSlotChange({\n isDefault,\n }: SlotChangeCallbackParameters<InferSlotNames<typeof Slots>>): void {\n if (!isDefault) {\n return;\n }\n\n const value = this._slots\n .getAssignedNodes('[default]', true)\n .map((node) => node.textContent?.trim())\n .filter(Boolean)\n .join('\\r\\n');\n\n if (value === this.value) {\n return;\n }\n\n if (this._pristine) {\n this.defaultValue = value;\n } else {\n this.value = value;\n }\n }\n\n protected _handleInput(): void {\n this._commitValue(this._input?.value ?? '', 'igcInput');\n }\n\n protected _handleChange(): void {\n this._commitValue(this._input?.value ?? '', 'igcChange');\n }\n\n //#endregion\n\n //#region Public methods\n\n /** Selects all text within the control. */\n public select(): void {\n this._input?.select();\n }\n\n /* blazorSuppress */\n /** Sets the text selection range of the control */\n public setSelectionRange(\n start: number,\n end: number,\n direction: SelectionRangeDirection = 'none'\n ): void {\n this._input?.setSelectionRange(start, end, direction);\n }\n\n /* blazorSuppress */\n /** Replaces the selected text in the control. */\n public setRangeText(\n replacement: string,\n start: number,\n end: number,\n selectMode: RangeTextSelectMode = 'preserve'\n ): void {\n this._input?.setRangeText(replacement, start, end, selectMode);\n this.value = this._input?.value ?? '';\n }\n\n /* blazorSuppress */\n public override scrollTo(options?: ScrollToOptions | undefined): void;\n /* blazorSuppress */\n public override scrollTo(x: number, y: number): void;\n public override scrollTo(x?: unknown, y?: unknown): void {\n x != null && y != null\n ? this._input?.scrollTo(x as number, y as number)\n : this._input?.scrollTo(x as ScrollToOptions);\n }\n\n //#endregion\n\n //#region Renderers\n\n protected _renderInput() {\n return html`\n <slot style=\"display: none\"></slot>\n <textarea\n ${ariaBindings(this._ariaTarget.resolveBindings())}\n id=${this._inputId}\n part=\"input\"\n style=${styleMap({\n resize: this.resize === 'auto' ? 'none' : this.resize,\n })}\n @input=${this._handleInput}\n @change=${this._handleChange}\n placeholder=${ifDefined(this.placeholder)}\n .rows=${this.rows}\n .value=${live(this.value)}\n .wrap=${this.wrap}\n autocomplete=${ifDefined(this.autocomplete as any)}\n autocapitalize=${ifDefined(this.autocapitalize as any)}\n inputmode=${ifDefined(this.inputMode)}\n spellcheck=${ifDefined(this.spellcheck)}\n minlength=${ifDefined(this.minLength)}\n maxlength=${ifDefined(this.validateOnly ? undefined : this.maxLength)}\n ?disabled=${this.disabled}\n ?required=${this.required}\n ?readonly=${this.readOnly}\n ></textarea>\n `;\n }\n\n protected override render() {\n return cache(\n renderInputShell(this, {\n theme: this._themes.theme,\n label: this.label,\n labelId: this._inputId,\n containerParts: resolveInputPartNames(\n this._slots,\n 'container',\n !!this.value\n ),\n materialParts: { placeholder: !!this.placeholder },\n hideEmptyAffixes: true,\n renderInput: this._renderInput,\n })\n );\n }\n\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-textarea': IgcTextareaComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/components/textarea/textarea.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport {\n addAriaTarget,\n ariaBindings,\n} from '#internals/controllers/aria-projection.js';\nimport { createResizeObserverController } from '#internals/controllers/resize-observer.js';\nimport {\n addSlotController,\n type InferSlotNames,\n type SlotChangeCallbackParameters,\n setSlots,\n} from '#internals/controllers/slot.js';\nimport { shadowOptions } from '#internals/decorators/shadow-options.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport type { Constructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '#internals/mixins/forms/associated-required.js';\nimport { createFormValueState } from '#internals/mixins/forms/form-value.js';\nimport {\n renderInputShell,\n resolveInputPartNames,\n} from '#internals/templates/input-shell.js';\nimport { addSafeEventListener } from '#internals/utils/events.js';\nimport { asNumber } from '#internals/utils/math.js';\nimport { createIdGenerator } from '#internals/utils/strings.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport type {\n RangeTextSelectMode,\n SelectionRangeDirection,\n TextareaResize,\n} from '../types.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { styles as shared } from './themes/shared/textarea.common.css.js';\nimport { styles } from './themes/textarea.base.css.js';\nimport { all } from './themes/themes.js';\nimport { textAreaValidators } from './validators.js';\n\nexport interface IgcTextareaComponentEventMap {\n igcInput: CustomEvent<string>;\n igcChange: CustomEvent<string>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n}\n\nconst nextId = createIdGenerator('textarea');\nconst Slots = setSlots(\n 'prefix',\n 'suffix',\n 'helper-text',\n 'value-missing',\n 'too-long',\n 'too-short',\n 'custom-error',\n 'invalid'\n);\n\n/**\n * Represents a multi-line plain-text editing control,\n * useful when you want to allow users to enter a sizeable amount of free-form text,\n * for example a comment on a review or feedback form.\n *\n * @element igc-textarea\n *\n * @slot - Text content from the default slot will be used as the value of the component.\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot too-long - Renders content when the maxlength validation fails.\n * @slot too-short - Renders content when the minlength validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcInput - Emitted when the control receives user input.\n * @fires igcChange - Emitted when a change to the control value is committed by the user.\n *\n * @csspart container - The main wrapper that holds all main input elements of the textarea.\n * @csspart input - The native input element of the textarea.\n * @csspart label - The native label element of the textarea.\n * @csspart prefix - The prefix wrapper of the textarea.\n * @csspart suffix - The suffix wrapper of the textarea.\n * @csspart helper-text - The helper text wrapper of the textarea.\n */\n@shadowOptions({ delegatesFocus: true })\nexport default class IgcTextareaComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<IgcTextareaComponentEventMap, Constructor<LitElement>>(\n LitElement\n )\n) {\n public static readonly tagName = 'igc-textarea';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcTextareaComponent, IgcValidationContainerComponent);\n }\n\n //#region Private properties and state\n\n private readonly _inputId = nextId();\n\n private readonly _themes = addThemingController(this, all);\n\n private readonly _slots = addSlotController(this, {\n slots: Slots,\n onChange: this._handleSlotChange,\n });\n\n /**\n * Receives ARIA semantics projected by a composite host onto the inner\n * native textarea. See {@link addAriaTarget}.\n */\n private readonly _ariaTarget = addAriaTarget(this, {\n labels: () => this._internals.labels,\n description: () =>\n this._slots.hasAssignedElements('helper-text')\n ? this.renderRoot.querySelector('#helper-text')\n : null,\n });\n\n @query('textarea')\n private readonly _input?: HTMLTextAreaElement;\n\n protected override get __validators() {\n return textAreaValidators;\n }\n\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: '',\n });\n\n //#endregion\n\n //#region Public properties and attributes\n\n /**\n * Specifies what permission, if any, the browser has to provide automated assistance in filling out form field values,\n * as well as guidance to the browser as to the type of information expected in the field.\n * Refer to [this page](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for additional information.\n *\n * @attr\n */\n @property()\n public autocomplete!: string;\n\n /**\n * Controls whether and how text input is automatically capitalized as it is entered/edited by the user.\n *\n * [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autocapitalize).\n *\n * @attr\n */\n @property()\n public override autocapitalize!: string;\n\n /**\n * Hints at the type of data that might be entered by the user while editing the element or its contents.\n * This allows a browser to display an appropriate virtual keyboard.\n *\n * [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode)\n *\n * @attr inputmode\n */\n @property({ attribute: 'inputmode' })\n public override inputMode!: string;\n\n /**\n * The label for the control.\n *\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * The maximum number of characters (UTF-16 code units) that the user can enter.\n * If this value isn't specified, the user can enter an unlimited number of characters.\n *\n * @attr maxlength\n */\n @property({ type: Number, attribute: 'maxlength' })\n public maxLength!: number;\n\n /**\n * The minimum number of characters (UTF-16 code units) required that the user should enter.\n *\n * @attr minlength\n */\n @property({ type: Number, attribute: 'minlength' })\n public minLength!: number;\n\n /**\n * Whether the control will have outlined appearance.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The placeholder text of the control.\n *\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /**\n * Makes the control a readonly field.\n *\n * @attr readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'readonly' })\n public readOnly = false;\n\n /**\n * Controls whether the control can be resized.\n * When `auto` is set, the control will try to expand and fit its content.\n *\n * @attr\n */\n @property()\n public resize: TextareaResize = 'vertical';\n\n /**\n * The number of visible text lines for the control. If it is specified, it must be a positive integer.\n * If it is not specified, the default value is 3.\n *\n * @attr\n */\n @property({ type: Number })\n public rows = 3;\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the component\n *\n * @attr\n */\n @property()\n public set value(value: string) {\n this._formValue.setValueAndFormState(value);\n }\n\n public get value(): string {\n return this._formValue.value;\n }\n\n /**\n * Controls whether the element may be checked for spelling errors.\n *\n * @attr\n */\n @property({\n type: Boolean,\n converter: {\n fromAttribute: (value) => !(!value || value === 'false'),\n toAttribute: (value) => (value ? 'true' : 'false'),\n },\n })\n public override spellcheck = true;\n\n /**\n * Indicates how the control should wrap the value for form submission.\n * Refer to [this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#attributes)\n * for explanation of the available values.\n *\n * @attr\n */\n @property()\n public wrap: 'hard' | 'soft' | 'off' = 'soft';\n\n /**\n * Enables validation rules to be evaluated without restricting user input. This applies to the `maxLength` property\n * when it is defined.\n *\n * @attr validate-only\n */\n @property({ type: Boolean, reflect: true, attribute: 'validate-only' })\n public validateOnly = false;\n\n //#endregion\n\n //#region Life-cycle hooks\n\n constructor() {\n super();\n\n createResizeObserverController(this, {\n callback: this._setAreaHeight,\n });\n\n addSafeEventListener(this, 'blur', this._handleBlur);\n }\n\n protected override updated(props: PropertyValues<this>): void {\n if (props.has('rows') || props.has('resize') || props.has('value')) {\n this._setAreaHeight();\n }\n }\n\n //#endregion\n\n //#region Internal methods\n\n protected _setAreaHeight(): void {\n const input = this._input;\n\n if (!input) {\n return;\n }\n\n if (this.resize !== 'auto') {\n input.style.removeProperty('height');\n return;\n }\n\n input.style.height = 'auto';\n\n const { borderTopWidth, borderBottomWidth } = getComputedStyle(input);\n const height =\n input.scrollHeight +\n asNumber(borderTopWidth) +\n asNumber(borderBottomWidth);\n\n input.style.height = `${height}px`;\n }\n\n //#endregion\n\n //#region Event handlers\n\n private _handleSlotChange({\n isDefault,\n }: SlotChangeCallbackParameters<InferSlotNames<typeof Slots>>): void {\n if (!isDefault) {\n return;\n }\n\n const value = this._slots\n .getAssignedNodes('[default]', true)\n .map((node) => node.textContent?.trim())\n .filter(Boolean)\n .join('\\r\\n');\n\n if (value === this.value) {\n return;\n }\n\n if (this._pristine) {\n this.defaultValue = value;\n } else {\n this.value = value;\n }\n }\n\n protected _handleInput(): void {\n this._commitValue(this._input?.value ?? '', 'igcInput');\n }\n\n protected _handleChange(): void {\n this._commitValue(this._input?.value ?? '', 'igcChange');\n }\n\n //#endregion\n\n //#region Public methods\n\n /** Selects all text within the control. */\n public select(): void {\n this._input?.select();\n }\n\n /* blazorSuppress */\n /** Sets the text selection range of the control */\n public setSelectionRange(\n start: number,\n end: number,\n direction: SelectionRangeDirection = 'none'\n ): void {\n this._input?.setSelectionRange(start, end, direction);\n }\n\n /* blazorSuppress */\n /** Replaces the selected text in the control. */\n public setRangeText(\n replacement: string,\n start: number,\n end: number,\n selectMode: RangeTextSelectMode = 'preserve'\n ): void {\n this._input?.setRangeText(replacement, start, end, selectMode);\n this.value = this._input?.value ?? '';\n }\n\n /* blazorSuppress */\n public override scrollTo(options?: ScrollToOptions | undefined): void;\n /* blazorSuppress */\n public override scrollTo(x: number, y: number): void;\n public override scrollTo(x?: unknown, y?: unknown): void {\n x != null && y != null\n ? this._input?.scrollTo(x as number, y as number)\n : this._input?.scrollTo(x as ScrollToOptions);\n }\n\n //#endregion\n\n //#region Renderers\n\n protected _renderInput() {\n return html`\n <slot style=\"display: none\"></slot>\n <textarea\n ${ariaBindings(this._ariaTarget.resolveBindings())}\n id=${this._inputId}\n part=\"input\"\n style=${styleMap({\n resize: this.resize === 'auto' ? 'none' : this.resize,\n })}\n @input=${this._handleInput}\n @change=${this._handleChange}\n placeholder=${ifDefined(this.placeholder)}\n .rows=${this.rows}\n .value=${live(this.value)}\n .wrap=${this.wrap}\n autocomplete=${ifDefined(this.autocomplete as any)}\n autocapitalize=${ifDefined(this.autocapitalize as any)}\n inputmode=${ifDefined(this.inputMode)}\n spellcheck=${ifDefined(this.spellcheck)}\n minlength=${ifDefined(this.minLength)}\n maxlength=${ifDefined(this.validateOnly ? undefined : this.maxLength)}\n ?disabled=${this.disabled}\n ?required=${this.required}\n ?readonly=${this.readOnly}\n ></textarea>\n `;\n }\n\n protected override render() {\n return cache(\n renderInputShell(this, {\n theme: this._themes.theme,\n label: this.label,\n labelId: this._inputId,\n containerParts: resolveInputPartNames(\n this._slots,\n 'container',\n !!this.value\n ),\n materialParts: { placeholder: !!this.placeholder },\n hideEmptyAffixes: true,\n renderInput: this._renderInput,\n })\n );\n }\n\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-textarea': IgcTextareaComponent;\n }\n}\n"]}
@@ -13,7 +13,7 @@ import IgcTileComponent from './tile.js';
13
13
  * @cssproperty --column-count - The number of columns for the tile manager. The `column-count` attribute sets this variable.
14
14
  * @cssproperty --min-col-width - The minimum size of the columns in the tile-manager. The `min-column-width` attribute sets this variable.
15
15
  * @cssproperty --min-row-height - The minimum size of the rows in the tile-manager. The `min-row-height` attribute sets this variable.
16
- * @cssproperty --grid-gap - The gap size of the underlying CSS grid container. The `gap` attributes sts this variable.
16
+ * @cssproperty --grid-gap - The gap size of the underlying CSS grid container. The `gap` attribute sets this variable.
17
17
  *
18
18
  */
19
19
  export default class IgcTileManagerComponent extends LitElement {
@@ -79,14 +79,13 @@ export default class IgcTileManagerComponent extends LitElement {
79
79
  private _updateMaximizedTile;
80
80
  private _observerCallback;
81
81
  /**
82
- * Locks/unlocks the grid container height in response to a tile's maximized state changing.
82
+ * Locks the grid height while a tile is maximized.
83
83
  *
84
84
  * @remarks
85
- * Maximizing a tile removes it from the grid flow (absolute positioning), so it no longer
86
- * contributes to the grid's intrinsic height. When that tile is the sole contributor to the
87
- * tallest row track, the container would otherwise collapse to the remaining tiles and cut off
88
- * the maximized tile's content. Capturing the current height before the layout change keeps the
89
- * container stable, and it is released once no tile remains maximized.
85
+ * A maximized tile is absolutely positioned and adds no height to the grid.
86
+ * If it is the tallest tile, the grid collapses and cuts off its content.
87
+ * Capture the height before the layout changes, and release it when no tile
88
+ * is maximized.
90
89
  */
91
90
  private _setMaximizedState;
92
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tile-manager.js","sourceRoot":"","sources":["../../../src/components/tile-manager/tile-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { type StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport {\n type TileManagerContext,\n tileManagerContext,\n} from '#internals/context.js';\nimport { addContextProvider } from '#internals/controllers/context-provider.js';\nimport {\n createMutationController,\n type MutationControllerParams,\n} from '#internals/controllers/mutation-observer.js';\nimport {\n coercedProperty,\n type CoercedPropertyConfig,\n} from '#internals/decorators/coerced-property.js';\nimport { shadowOptions } from '#internals/decorators/shadow-options.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { partMap } from '#internals/part-map.js';\nimport { asNumber } from '#internals/utils/math.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport type { TileManagerDragMode, TileManagerResizeMode } from '../types.js';\nimport { createTilesState } from './position.js';\nimport { createSerializer } from './serializer.js';\nimport { all } from './themes/container.js';\nimport { styles as shared } from './themes/shared/tile-manager.common.css.js';\nimport { styles } from './themes/tile-manager.base.css.js';\nimport IgcTileComponent from './tile.js';\n\n/* blazorAdditionalDependency: IgcTileComponent */\n/**\n * The tile manager component enables the dynamic arrangement, resizing, and interaction of tiles.\n *\n * @element igc-tile-manager\n *\n * @slot - Default slot for the tile manager. Only tile elements will be projected inside the CSS grid container.\n *\n * @csspart base - The tile manager CSS Grid container.\n *\n * @cssproperty --column-count - The number of columns for the tile manager. The `column-count` attribute sets this variable.\n * @cssproperty --min-col-width - The minimum size of the columns in the tile-manager. The `min-column-width` attribute sets this variable.\n * @cssproperty --min-row-height - The minimum size of the rows in the tile-manager. The `min-row-height` attribute sets this variable.\n * @cssproperty --grid-gap - The gap size of the underlying CSS grid container. The `gap` attributes sts this variable.\n *\n */\n@shadowOptions({ slotAssignment: 'manual' })\nexport default class IgcTileManagerComponent extends LitElement {\n public static readonly tagName = 'igc-tile-manager';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcTileManagerComponent, IgcTileComponent);\n }\n\n // #region Internal state\n\n private _internalStyles: StyleInfo = {};\n\n /** Whether any of the tiles is currently in a maximized state. */\n @state()\n private _hasMaximizedTile = false;\n\n /** Shared config for the properties that project into a grid CSS variable. */\n private static _styleVariable<T = string | undefined>(\n name: string,\n transform: (value: T) => T = (value) => (value ?? undefined) as T\n ): CoercedPropertyConfig<T, IgcTileManagerComponent> {\n return {\n transform: ({ value }) => transform(value),\n onChange: ({ value, host }) => {\n Object.assign(host._internalStyles, { [name]: value || undefined });\n },\n };\n }\n\n private _serializer = createSerializer(this);\n private _tilesState = createTilesState(this);\n\n private _grid = createRef<HTMLElement>();\n\n // #endregion\n\n // #region Context helpers\n\n private readonly _managerContext: TileManagerContext = {\n instance: this,\n grid: this._grid,\n setMaximizedState: () => this._setMaximizedState(),\n };\n\n private readonly _context = addContextProvider(this, {\n context: tileManagerContext,\n watch: ['dragMode', 'resizeMode'],\n value: () => this._managerContext,\n });\n\n // #endregion\n\n // #region Properties and Attributes\n\n /**\n * Whether resize operations are enabled.\n *\n * @attr resize-mode\n * @default none\n */\n @property({ attribute: 'resize-mode' })\n public resizeMode: TileManagerResizeMode = 'none';\n\n /**\n * Whether drag and drop operations are enabled.\n *\n * @attr drag-mode\n * @default none\n */\n @property({ attribute: 'drag-mode' })\n public dragMode: TileManagerDragMode = 'none';\n\n /**\n * Sets the number of columns for the tile manager.\n * Setting value <= than zero will trigger a responsive layout.\n *\n * @attr column-count\n * @default 0\n */\n @property({ type: Number, attribute: 'column-count' })\n @coercedProperty(\n IgcTileManagerComponent._styleVariable<number>('--column-count', (value) =>\n Math.max(0, asNumber(value))\n )\n )\n public columnCount = 0;\n\n /**\n * Sets the minimum width for a column unit in the tile manager.\n * @attr min-column-width\n */\n @property({ attribute: 'min-column-width' })\n @coercedProperty(IgcTileManagerComponent._styleVariable('--min-col-width'))\n public minColumnWidth?: string = undefined;\n\n /**\n * Sets the minimum height for a row unit in the tile manager.\n * @attr min-row-height\n */\n @property({ attribute: 'min-row-height' })\n @coercedProperty(IgcTileManagerComponent._styleVariable('--min-row-height'))\n public minRowHeight?: string = undefined;\n\n /**\n * Sets the gap size between tiles in the tile manager.\n *\n * @attr gap\n */\n @property()\n @coercedProperty(IgcTileManagerComponent._styleVariable('--grid-gap'))\n public gap?: string = undefined;\n\n /**\n * Gets the tiles sorted by their position in the layout.\n * @property\n */\n public get tiles() {\n return this._tilesState.tiles;\n }\n\n // #endregion\n\n // #region Internal API\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n createMutationController(this, {\n callback: this._observerCallback,\n filter: [IgcTileComponent.tagName],\n config: {\n childList: true,\n },\n });\n }\n\n protected override updated(changed: PropertyValues<this>) {\n if (changed.has('columnCount')) {\n this._tilesState.adjustTileGridPosition();\n }\n }\n\n protected override firstUpdated() {\n this._tilesState.assignPositions();\n this._tilesState.assignTiles();\n this._updateMaximizedTile();\n this._context.publish();\n }\n\n private _updateMaximizedTile(): void {\n this._hasMaximizedTile = this.tiles.some((tile) => tile.maximized);\n }\n\n private _observerCallback({\n changes: { added, removed },\n }: MutationControllerParams<IgcTileComponent>) {\n const isOwn = ({ target }: { target: Element }) =>\n target.closest(this.tagName) === this;\n\n for (const { node } of removed.filter(isOwn)) {\n this._tilesState.remove(node);\n }\n\n for (const { node } of added.filter(isOwn)) {\n this._tilesState.add(node);\n }\n\n this._tilesState.assignTiles();\n this._tilesState.adjustTileGridPosition();\n this._updateMaximizedTile();\n }\n\n /**\n * Locks/unlocks the grid container height in response to a tile's maximized state changing.\n *\n * @remarks\n * Maximizing a tile removes it from the grid flow (absolute positioning), so it no longer\n * contributes to the grid's intrinsic height. When that tile is the sole contributor to the\n * tallest row track, the container would otherwise collapse to the remaining tiles and cut off\n * the maximized tile's content. Capturing the current height before the layout change keeps the\n * container stable, and it is released once no tile remains maximized.\n */\n private _setMaximizedState(): void {\n const grid = this._grid.value;\n this._updateMaximizedTile();\n\n if (grid) {\n if (this._hasMaximizedTile) {\n if (!grid.style.minHeight) {\n grid.style.minHeight = `${grid.offsetHeight}px`;\n }\n } else {\n grid.style.minHeight = '';\n }\n }\n }\n\n // #endregion\n\n // #region Public API\n\n /**\n * Returns the properties of the current tile collections as a JSON payload.\n *\n * @remarks\n * The content of the tiles is not serialized or saved. Only tile properties\n * are serialized.\n */\n public saveLayout(): string {\n return this._serializer.saveAsJSON();\n }\n\n /**\n * Restores a previously serialized state produced by `saveLayout`.\n */\n public loadLayout(data: string): void {\n this._serializer.loadFromJSON(data);\n }\n\n // #endregion\n\n // #region Rendering\n\n protected override render() {\n const parts = {\n base: true,\n 'maximized-tile': this._hasMaximizedTile,\n };\n\n return html`\n <div\n ${ref(this._grid)}\n style=${styleMap(this._internalStyles)}\n part=${partMap(parts)}\n >\n <slot></slot>\n </div>\n `;\n }\n\n // #endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tile-manager': IgcTileManagerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"tile-manager.js","sourceRoot":"","sources":["../../../src/components/tile-manager/tile-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { type StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport {\n type TileManagerContext,\n tileManagerContext,\n} from '#internals/context.js';\nimport { addContextProvider } from '#internals/controllers/context-provider.js';\nimport {\n createMutationController,\n type MutationControllerParams,\n} from '#internals/controllers/mutation-observer.js';\nimport {\n coercedProperty,\n type CoercedPropertyConfig,\n} from '#internals/decorators/coerced-property.js';\nimport { shadowOptions } from '#internals/decorators/shadow-options.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { partMap } from '#internals/part-map.js';\nimport { asNumber } from '#internals/utils/math.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport type { TileManagerDragMode, TileManagerResizeMode } from '../types.js';\nimport { createTilesState } from './position.js';\nimport { createSerializer } from './serializer.js';\nimport { all } from './themes/container.js';\nimport { styles as shared } from './themes/shared/tile-manager.common.css.js';\nimport { styles } from './themes/tile-manager.base.css.js';\nimport IgcTileComponent from './tile.js';\n\n/* blazorAdditionalDependency: IgcTileComponent */\n/**\n * The tile manager component enables the dynamic arrangement, resizing, and interaction of tiles.\n *\n * @element igc-tile-manager\n *\n * @slot - Default slot for the tile manager. Only tile elements will be projected inside the CSS grid container.\n *\n * @csspart base - The tile manager CSS Grid container.\n *\n * @cssproperty --column-count - The number of columns for the tile manager. The `column-count` attribute sets this variable.\n * @cssproperty --min-col-width - The minimum size of the columns in the tile-manager. The `min-column-width` attribute sets this variable.\n * @cssproperty --min-row-height - The minimum size of the rows in the tile-manager. The `min-row-height` attribute sets this variable.\n * @cssproperty --grid-gap - The gap size of the underlying CSS grid container. The `gap` attribute sets this variable.\n *\n */\n@shadowOptions({ slotAssignment: 'manual' })\nexport default class IgcTileManagerComponent extends LitElement {\n public static readonly tagName = 'igc-tile-manager';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcTileManagerComponent, IgcTileComponent);\n }\n\n // #region Internal state\n\n private _internalStyles: StyleInfo = {};\n\n /** Whether any of the tiles is currently in a maximized state. */\n @state()\n private _hasMaximizedTile = false;\n\n /** Shared config for the properties that project into a grid CSS variable. */\n private static _styleVariable<T = string | undefined>(\n name: string,\n transform: (value: T) => T = (value) => (value ?? undefined) as T\n ): CoercedPropertyConfig<T, IgcTileManagerComponent> {\n return {\n transform: ({ value }) => transform(value),\n onChange: ({ value, host }) => {\n Object.assign(host._internalStyles, { [name]: value || undefined });\n },\n };\n }\n\n private _serializer = createSerializer(this);\n private _tilesState = createTilesState(this);\n\n private _grid = createRef<HTMLElement>();\n\n // #endregion\n\n // #region Context helpers\n\n private readonly _managerContext: TileManagerContext = {\n instance: this,\n grid: this._grid,\n setMaximizedState: () => this._setMaximizedState(),\n };\n\n private readonly _context = addContextProvider(this, {\n context: tileManagerContext,\n watch: ['dragMode', 'resizeMode'],\n value: () => this._managerContext,\n });\n\n // #endregion\n\n // #region Properties and Attributes\n\n /**\n * Whether resize operations are enabled.\n *\n * @attr resize-mode\n * @default none\n */\n @property({ attribute: 'resize-mode' })\n public resizeMode: TileManagerResizeMode = 'none';\n\n /**\n * Whether drag and drop operations are enabled.\n *\n * @attr drag-mode\n * @default none\n */\n @property({ attribute: 'drag-mode' })\n public dragMode: TileManagerDragMode = 'none';\n\n /**\n * Sets the number of columns for the tile manager.\n * Setting value <= than zero will trigger a responsive layout.\n *\n * @attr column-count\n * @default 0\n */\n @property({ type: Number, attribute: 'column-count' })\n @coercedProperty(\n IgcTileManagerComponent._styleVariable<number>('--column-count', (value) =>\n Math.max(0, asNumber(value))\n )\n )\n public columnCount = 0;\n\n /**\n * Sets the minimum width for a column unit in the tile manager.\n * @attr min-column-width\n */\n @property({ attribute: 'min-column-width' })\n @coercedProperty(IgcTileManagerComponent._styleVariable('--min-col-width'))\n public minColumnWidth?: string = undefined;\n\n /**\n * Sets the minimum height for a row unit in the tile manager.\n * @attr min-row-height\n */\n @property({ attribute: 'min-row-height' })\n @coercedProperty(IgcTileManagerComponent._styleVariable('--min-row-height'))\n public minRowHeight?: string = undefined;\n\n /**\n * Sets the gap size between tiles in the tile manager.\n *\n * @attr gap\n */\n @property()\n @coercedProperty(IgcTileManagerComponent._styleVariable('--grid-gap'))\n public gap?: string = undefined;\n\n /**\n * Gets the tiles sorted by their position in the layout.\n * @property\n */\n public get tiles() {\n return this._tilesState.tiles;\n }\n\n // #endregion\n\n // #region Internal API\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n createMutationController(this, {\n callback: this._observerCallback,\n filter: [IgcTileComponent.tagName],\n config: {\n childList: true,\n },\n });\n }\n\n protected override updated(changed: PropertyValues<this>) {\n if (changed.has('columnCount')) {\n this._tilesState.adjustTileGridPosition();\n }\n }\n\n protected override firstUpdated() {\n this._tilesState.assignPositions();\n this._tilesState.assignTiles();\n this._updateMaximizedTile();\n this._context.publish();\n }\n\n private _updateMaximizedTile(): void {\n this._hasMaximizedTile = this.tiles.some((tile) => tile.maximized);\n }\n\n private _observerCallback({\n changes: { added, removed },\n }: MutationControllerParams<IgcTileComponent>) {\n const isOwn = ({ target }: { target: Element }) =>\n target.closest(this.tagName) === this;\n\n for (const { node } of removed.filter(isOwn)) {\n this._tilesState.remove(node);\n }\n\n for (const { node } of added.filter(isOwn)) {\n this._tilesState.add(node);\n }\n\n this._tilesState.assignTiles();\n this._tilesState.adjustTileGridPosition();\n this._updateMaximizedTile();\n }\n\n /**\n * Locks the grid height while a tile is maximized.\n *\n * @remarks\n * A maximized tile is absolutely positioned and adds no height to the grid.\n * If it is the tallest tile, the grid collapses and cuts off its content.\n * Capture the height before the layout changes, and release it when no tile\n * is maximized.\n */\n private _setMaximizedState(): void {\n const grid = this._grid.value;\n this._updateMaximizedTile();\n\n if (grid) {\n if (this._hasMaximizedTile) {\n if (!grid.style.minHeight) {\n grid.style.minHeight = `${grid.offsetHeight}px`;\n }\n } else {\n grid.style.minHeight = '';\n }\n }\n }\n\n // #endregion\n\n // #region Public API\n\n /**\n * Returns the properties of the current tile collections as a JSON payload.\n *\n * @remarks\n * The content of the tiles is not serialized or saved. Only tile properties\n * are serialized.\n */\n public saveLayout(): string {\n return this._serializer.saveAsJSON();\n }\n\n /**\n * Restores a previously serialized state produced by `saveLayout`.\n */\n public loadLayout(data: string): void {\n this._serializer.loadFromJSON(data);\n }\n\n // #endregion\n\n // #region Rendering\n\n protected override render() {\n const parts = {\n base: true,\n 'maximized-tile': this._hasMaximizedTile,\n };\n\n return html`\n <div\n ${ref(this._grid)}\n style=${styleMap(this._internalStyles)}\n part=${partMap(parts)}\n >\n <slot></slot>\n </div>\n `;\n }\n\n // #endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tile-manager': IgcTileManagerComponent;\n }\n}\n"]}
@@ -21,8 +21,8 @@ declare const IgcTileComponent_base: Constructor<import("#internals/mixins/event
21
21
  *
22
22
  * @element igc-tile
23
23
  *
24
- * @fires igcTileFullscreen - Fired when tile the fullscreen state changes.
25
- * @fires igcTileMaximize - Fired when tile the maximize state changes.
24
+ * @fires igcTileFullscreen - Fired when the fullscreen state of the tile changes.
25
+ * @fires igcTileMaximize - Fired when the maximize state of the tile changes.
26
26
  * @fires igcTileDragStart - Fired when a drag operation on a tile is about to begin. Cancelable.
27
27
  * @fires igcTileDragEnd - Fired when a drag operation with a tile is successfully completed.
28
28
  * @fires igcTileDragCancel - Fired when a tile drag operation is canceled by the user.
@@ -201,7 +201,7 @@ export default class IgcTileComponent extends IgcTileComponent_base {
201
201
  private _handleResizePointerLeave;
202
202
  private _createResizeOptions;
203
203
  private _renderAdorner;
204
- protected _renderAdorners(): typeof nothing | import("lit-html").TemplateResult<1>;
204
+ protected _renderAdorners(): import("lit-html").TemplateResult<1> | typeof nothing;
205
205
  protected render(): import("lit-html").TemplateResult<1>;
206
206
  }
207
207
  declare global {