igniteui-webcomponents 5.3.0 → 5.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 (491) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +10 -5
  3. package/animations/player.d.ts +1 -0
  4. package/animations/player.js +7 -0
  5. package/animations/player.js.map +1 -1
  6. package/animations/presets/scale/index.d.ts +2 -0
  7. package/animations/presets/scale/index.js +12 -0
  8. package/animations/presets/scale/index.js.map +1 -0
  9. package/components/avatar/avatar.d.ts +2 -1
  10. package/components/avatar/avatar.js.map +1 -1
  11. package/components/badge/badge.d.ts +2 -2
  12. package/components/badge/badge.js.map +1 -1
  13. package/components/button/button.d.ts +2 -1
  14. package/components/button/button.js.map +1 -1
  15. package/components/button/icon-button.d.ts +2 -1
  16. package/components/button/icon-button.js.map +1 -1
  17. package/components/button-group/button-group.d.ts +3 -2
  18. package/components/button-group/button-group.js.map +1 -1
  19. package/components/button-group/themes/light/button-group.indigo.css.js +1 -1
  20. package/components/button-group/themes/light/button-group.indigo.css.js.map +1 -1
  21. package/components/calendar/base.d.ts +2 -2
  22. package/components/calendar/base.js.map +1 -1
  23. package/components/calendar/calendar.d.ts +5 -4
  24. package/components/calendar/calendar.js.map +1 -1
  25. package/components/calendar/days-view/days-view.js +5 -1
  26. package/components/calendar/days-view/days-view.js.map +1 -1
  27. package/components/calendar/themes/calendar.base.css.js +1 -1
  28. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  29. package/components/calendar/themes/dark/calendar.bootstrap.css.js +1 -1
  30. package/components/calendar/themes/dark/calendar.bootstrap.css.js.map +1 -1
  31. package/components/calendar/themes/dark/calendar.fluent.css.js +1 -1
  32. package/components/calendar/themes/dark/calendar.fluent.css.js.map +1 -1
  33. package/components/calendar/themes/dark/calendar.indigo.css.js +1 -1
  34. package/components/calendar/themes/dark/calendar.indigo.css.js.map +1 -1
  35. package/components/calendar/themes/dark/calendar.material.css.js +1 -1
  36. package/components/calendar/themes/dark/calendar.material.css.js.map +1 -1
  37. package/components/calendar/themes/light/calendar.bootstrap.css.js +1 -1
  38. package/components/calendar/themes/light/calendar.bootstrap.css.js.map +1 -1
  39. package/components/calendar/themes/light/calendar.fluent.css.js +1 -1
  40. package/components/calendar/themes/light/calendar.fluent.css.js.map +1 -1
  41. package/components/calendar/themes/light/calendar.indigo.css.js +1 -1
  42. package/components/calendar/themes/light/calendar.indigo.css.js.map +1 -1
  43. package/components/calendar/themes/light/calendar.material.css.js +1 -1
  44. package/components/calendar/themes/light/calendar.material.css.js.map +1 -1
  45. package/components/calendar/themes/light/calendar.shared.css.js +1 -1
  46. package/components/calendar/themes/light/calendar.shared.css.js.map +1 -1
  47. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js +1 -1
  48. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js.map +1 -1
  49. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js +1 -1
  50. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js.map +1 -1
  51. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js +1 -1
  52. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js.map +1 -1
  53. package/components/calendar/themes/shared/fluent/days-view.fluent.css.js +1 -1
  54. package/components/calendar/themes/shared/fluent/days-view.fluent.css.js.map +1 -1
  55. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js +1 -1
  56. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js.map +1 -1
  57. package/components/calendar/themes/shared/material/calendar.material.css.js +1 -1
  58. package/components/calendar/themes/shared/material/calendar.material.css.js.map +1 -1
  59. package/components/calendar/themes/shared/material/days-view.material.css.js +1 -1
  60. package/components/calendar/themes/shared/material/days-view.material.css.js.map +1 -1
  61. package/components/calendar/types.d.ts +3 -0
  62. package/components/calendar/types.js.map +1 -1
  63. package/components/card/card.actions.d.ts +2 -1
  64. package/components/card/card.actions.js.map +1 -1
  65. package/components/card/themes/card.actions.base.css.js +1 -1
  66. package/components/card/themes/card.actions.base.css.js.map +1 -1
  67. package/components/card/themes/container.js +2 -1
  68. package/components/card/themes/container.js.map +1 -1
  69. package/components/card/themes/dark/card.bootstrap.css.js +1 -1
  70. package/components/card/themes/dark/card.bootstrap.css.js.map +1 -1
  71. package/components/card/themes/dark/card.fluent.css.js +1 -1
  72. package/components/card/themes/dark/card.fluent.css.js.map +1 -1
  73. package/components/card/themes/dark/card.indigo.css.js +1 -1
  74. package/components/card/themes/dark/card.indigo.css.js.map +1 -1
  75. package/components/card/themes/dark/card.material.css.js +1 -1
  76. package/components/card/themes/dark/card.material.css.js.map +1 -1
  77. package/components/card/themes/dark/card.shared.css.js +1 -1
  78. package/components/card/themes/dark/card.shared.css.js.map +1 -1
  79. package/components/card/themes/light/container/card.bootstrap.css.js +1 -1
  80. package/components/card/themes/light/container/card.bootstrap.css.js.map +1 -1
  81. package/components/card/themes/light/container/card.fluent.css.js +1 -1
  82. package/components/card/themes/light/container/card.fluent.css.js.map +1 -1
  83. package/components/card/themes/light/container/card.indigo.css.js +1 -1
  84. package/components/card/themes/light/container/card.indigo.css.js.map +1 -1
  85. package/components/card/themes/light/container/card.material.css.js +1 -1
  86. package/components/card/themes/light/container/card.material.css.js.map +1 -1
  87. package/components/card/themes/light/container/card.shared.css.js +1 -1
  88. package/components/card/themes/light/container/card.shared.css.js.map +1 -1
  89. package/components/card/themes/shared/container/card.bootstrap.css.d.ts +1 -0
  90. package/components/card/themes/shared/container/card.bootstrap.css.js +3 -0
  91. package/components/card/themes/shared/container/card.bootstrap.css.js.map +1 -0
  92. package/components/card/themes/shared/container/card.indigo.css.js +1 -1
  93. package/components/card/themes/shared/container/card.indigo.css.js.map +1 -1
  94. package/components/card/themes/shared/content/card.content.bootstrap.css.js +1 -1
  95. package/components/card/themes/shared/content/card.content.bootstrap.css.js.map +1 -1
  96. package/components/card/themes/shared/header/card.header.bootstrap.css.js +1 -1
  97. package/components/card/themes/shared/header/card.header.bootstrap.css.js.map +1 -1
  98. package/components/card/themes/shared/header/card.header.fluent.css.js +1 -1
  99. package/components/card/themes/shared/header/card.header.fluent.css.js.map +1 -1
  100. package/components/card/themes/shared/header/card.header.indigo.css.js +1 -1
  101. package/components/card/themes/shared/header/card.header.indigo.css.js.map +1 -1
  102. package/components/carousel/carousel-slide.d.ts +5 -1
  103. package/components/carousel/carousel-slide.js.map +1 -1
  104. package/components/carousel/carousel.d.ts +3 -2
  105. package/components/carousel/carousel.js.map +1 -1
  106. package/components/carousel/themes/dark/carousel.bootstrap.css.js +1 -1
  107. package/components/carousel/themes/dark/carousel.bootstrap.css.js.map +1 -1
  108. package/components/carousel/themes/dark/carousel.fluent.css.js +1 -1
  109. package/components/carousel/themes/dark/carousel.fluent.css.js.map +1 -1
  110. package/components/carousel/themes/dark/carousel.indigo.css.js +1 -1
  111. package/components/carousel/themes/dark/carousel.indigo.css.js.map +1 -1
  112. package/components/carousel/themes/dark/carousel.material.css.js +1 -1
  113. package/components/carousel/themes/dark/carousel.material.css.js.map +1 -1
  114. package/components/carousel/themes/light/carousel.bootstrap.css.js +1 -1
  115. package/components/carousel/themes/light/carousel.bootstrap.css.js.map +1 -1
  116. package/components/carousel/themes/light/carousel.fluent.css.js +1 -1
  117. package/components/carousel/themes/light/carousel.fluent.css.js.map +1 -1
  118. package/components/carousel/themes/light/carousel.indigo.css.js +1 -1
  119. package/components/carousel/themes/light/carousel.indigo.css.js.map +1 -1
  120. package/components/carousel/themes/light/carousel.material.css.js +1 -1
  121. package/components/carousel/themes/light/carousel.material.css.js.map +1 -1
  122. package/components/carousel/themes/shared/carousel.bootstrap.css.js +1 -1
  123. package/components/carousel/themes/shared/carousel.bootstrap.css.js.map +1 -1
  124. package/components/carousel/themes/shared/carousel.common.css.js +1 -1
  125. package/components/carousel/themes/shared/carousel.common.css.js.map +1 -1
  126. package/components/carousel/themes/shared/carousel.fluent.css.js +1 -1
  127. package/components/carousel/themes/shared/carousel.fluent.css.js.map +1 -1
  128. package/components/carousel/themes/shared/carousel.indigo.css.js +1 -1
  129. package/components/carousel/themes/shared/carousel.indigo.css.js.map +1 -1
  130. package/components/checkbox/checkbox-base.d.ts +6 -3
  131. package/components/checkbox/checkbox-base.js.map +1 -1
  132. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
  133. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
  134. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js +1 -1
  135. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js.map +1 -1
  136. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js +1 -1
  137. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
  138. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js +1 -1
  139. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js.map +1 -1
  140. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js +1 -1
  141. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js.map +1 -1
  142. package/components/checkbox/themes/dark/switch/switch.fluent.css.js +1 -1
  143. package/components/checkbox/themes/dark/switch/switch.fluent.css.js.map +1 -1
  144. package/components/checkbox/themes/dark/switch/switch.indigo.css.js +1 -1
  145. package/components/checkbox/themes/dark/switch/switch.indigo.css.js.map +1 -1
  146. package/components/checkbox/themes/dark/switch/switch.material.css.js +1 -1
  147. package/components/checkbox/themes/dark/switch/switch.material.css.js.map +1 -1
  148. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
  149. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js.map +1 -1
  150. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js +1 -1
  151. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js.map +1 -1
  152. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js +1 -1
  153. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
  154. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js +1 -1
  155. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js.map +1 -1
  156. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js +1 -1
  157. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js.map +1 -1
  158. package/components/checkbox/themes/light/switch/switch.fluent.css.js +1 -1
  159. package/components/checkbox/themes/light/switch/switch.fluent.css.js.map +1 -1
  160. package/components/checkbox/themes/light/switch/switch.indigo.css.js +1 -1
  161. package/components/checkbox/themes/light/switch/switch.indigo.css.js.map +1 -1
  162. package/components/checkbox/themes/light/switch/switch.material.css.js +1 -1
  163. package/components/checkbox/themes/light/switch/switch.material.css.js.map +1 -1
  164. package/components/checkbox/themes/light/switch/switch.shared.css.js +1 -1
  165. package/components/checkbox/themes/light/switch/switch.shared.css.js.map +1 -1
  166. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  167. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  168. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js +1 -1
  169. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js.map +1 -1
  170. package/components/checkbox/themes/shared/switch/switch.common.css.js +1 -1
  171. package/components/checkbox/themes/shared/switch/switch.common.css.js.map +1 -1
  172. package/components/checkbox/themes/shared/switch/switch.fluent.css.js +1 -1
  173. package/components/checkbox/themes/shared/switch/switch.fluent.css.js.map +1 -1
  174. package/components/checkbox/themes/shared/switch/switch.indigo.css.js +1 -1
  175. package/components/checkbox/themes/shared/switch/switch.indigo.css.js.map +1 -1
  176. package/components/checkbox/themes/shared/switch/switch.material.css.js +1 -1
  177. package/components/checkbox/themes/shared/switch/switch.material.css.js.map +1 -1
  178. package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
  179. package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
  180. package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
  181. package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
  182. package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
  183. package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
  184. package/components/combo/combo.d.ts +2 -2
  185. package/components/combo/combo.js +23 -12
  186. package/components/combo/combo.js.map +1 -1
  187. package/components/combo/themes/dark/combo.bootstrap.css.js +1 -1
  188. package/components/combo/themes/dark/combo.bootstrap.css.js.map +1 -1
  189. package/components/combo/themes/dark/combo.fluent.css.js +1 -1
  190. package/components/combo/themes/dark/combo.fluent.css.js.map +1 -1
  191. package/components/combo/themes/dark/combo.indigo.css.js +1 -1
  192. package/components/combo/themes/dark/combo.indigo.css.js.map +1 -1
  193. package/components/combo/themes/dark/combo.material.css.js +1 -1
  194. package/components/combo/themes/dark/combo.material.css.js.map +1 -1
  195. package/components/combo/themes/light/combo.bootstrap.css.js +1 -1
  196. package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -1
  197. package/components/combo/themes/light/combo.fluent.css.js +1 -1
  198. package/components/combo/themes/light/combo.fluent.css.js.map +1 -1
  199. package/components/combo/themes/light/combo.indigo.css.js +1 -1
  200. package/components/combo/themes/light/combo.indigo.css.js.map +1 -1
  201. package/components/combo/themes/light/combo.material.css.js +1 -1
  202. package/components/combo/themes/light/combo.material.css.js.map +1 -1
  203. package/components/combo/themes/light/combo.shared.css.js +1 -1
  204. package/components/combo/themes/light/combo.shared.css.js.map +1 -1
  205. package/components/common/controllers/drag.d.ts +13 -0
  206. package/components/common/controllers/drag.js +30 -4
  207. package/components/common/controllers/drag.js.map +1 -1
  208. package/components/common/controllers/root-scroll.d.ts +2 -1
  209. package/components/common/controllers/root-scroll.js.map +1 -1
  210. package/components/common/definitions/defineAllComponents.js +2 -0
  211. package/components/common/definitions/defineAllComponents.js.map +1 -1
  212. package/components/common/mixins/alert.d.ts +2 -1
  213. package/components/common/mixins/alert.js.map +1 -1
  214. package/components/common/mixins/forms/associated.js +1 -1
  215. package/components/common/mixins/forms/associated.js.map +1 -1
  216. package/components/common/mixins/forms/form-value.d.ts +1 -0
  217. package/components/common/mixins/forms/form-value.js +16 -0
  218. package/components/common/mixins/forms/form-value.js.map +1 -1
  219. package/components/common/util.d.ts +11 -3
  220. package/components/common/util.js +110 -3
  221. package/components/common/util.js.map +1 -1
  222. package/components/date-picker/date-picker.d.ts +5 -5
  223. package/components/date-picker/date-picker.js.map +1 -1
  224. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js +1 -1
  225. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js.map +1 -1
  226. package/components/date-picker/themes/dark/date-picker.fluent.css.js +1 -1
  227. package/components/date-picker/themes/dark/date-picker.fluent.css.js.map +1 -1
  228. package/components/date-picker/themes/dark/date-picker.indigo.css.js +1 -1
  229. package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -1
  230. package/components/date-picker/themes/dark/date-picker.material.css.js +1 -1
  231. package/components/date-picker/themes/dark/date-picker.material.css.js.map +1 -1
  232. package/components/date-picker/themes/light/date-picker.bootstrap.css.js +1 -1
  233. package/components/date-picker/themes/light/date-picker.bootstrap.css.js.map +1 -1
  234. package/components/date-picker/themes/light/date-picker.fluent.css.js +1 -1
  235. package/components/date-picker/themes/light/date-picker.fluent.css.js.map +1 -1
  236. package/components/date-picker/themes/light/date-picker.indigo.css.js +1 -1
  237. package/components/date-picker/themes/light/date-picker.indigo.css.js.map +1 -1
  238. package/components/date-picker/themes/light/date-picker.material.css.js +1 -1
  239. package/components/date-picker/themes/light/date-picker.material.css.js.map +1 -1
  240. package/components/date-picker/themes/light/date-picker.shared.css.js +1 -1
  241. package/components/date-picker/themes/light/date-picker.shared.css.js.map +1 -1
  242. package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
  243. package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
  244. package/components/divider/divider.d.ts +2 -1
  245. package/components/divider/divider.js.map +1 -1
  246. package/components/dropdown/dropdown.d.ts +4 -4
  247. package/components/dropdown/dropdown.js.map +1 -1
  248. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
  249. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
  250. package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
  251. package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
  252. package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
  253. package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
  254. package/components/dropdown/themes/dark/dropdown.material.css.js +1 -1
  255. package/components/dropdown/themes/dark/dropdown.material.css.js.map +1 -1
  256. package/components/dropdown/themes/dark/dropdown.shared.css.js +1 -1
  257. package/components/dropdown/themes/dark/dropdown.shared.css.js.map +1 -1
  258. package/components/dropdown/themes/light/dropdown.bootstrap.css.js +1 -1
  259. package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
  260. package/components/dropdown/themes/light/dropdown.fluent.css.js +1 -1
  261. package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
  262. package/components/dropdown/themes/light/dropdown.indigo.css.js +1 -1
  263. package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -1
  264. package/components/dropdown/themes/light/dropdown.material.css.js +1 -1
  265. package/components/dropdown/themes/light/dropdown.material.css.js.map +1 -1
  266. package/components/dropdown/themes/light/dropdown.shared.css.js +1 -1
  267. package/components/dropdown/themes/light/dropdown.shared.css.js.map +1 -1
  268. package/components/expansion-panel/expansion-panel.d.ts +2 -1
  269. package/components/expansion-panel/expansion-panel.js.map +1 -1
  270. package/components/file-input/file-input.d.ts +85 -0
  271. package/components/file-input/file-input.js +155 -0
  272. package/components/file-input/file-input.js.map +1 -0
  273. package/components/file-input/themes/file-input.base.css.d.ts +1 -0
  274. package/components/file-input/themes/file-input.base.css.js +3 -0
  275. package/components/file-input/themes/file-input.base.css.js.map +1 -0
  276. package/components/file-input/themes/shared/file-input.bootstrap.css.d.ts +1 -0
  277. package/components/file-input/themes/shared/file-input.bootstrap.css.js +3 -0
  278. package/components/file-input/themes/shared/file-input.bootstrap.css.js.map +1 -0
  279. package/components/file-input/themes/shared/file-input.fluent.css.d.ts +1 -0
  280. package/components/file-input/themes/shared/file-input.fluent.css.js +3 -0
  281. package/components/file-input/themes/shared/file-input.fluent.css.js.map +1 -0
  282. package/components/file-input/themes/shared/file-input.indigo.css.d.ts +1 -0
  283. package/components/file-input/themes/shared/file-input.indigo.css.js +3 -0
  284. package/components/file-input/themes/shared/file-input.indigo.css.js.map +1 -0
  285. package/components/file-input/themes/shared/file-input.material.css.d.ts +1 -0
  286. package/components/file-input/themes/shared/file-input.material.css.js +3 -0
  287. package/components/file-input/themes/shared/file-input.material.css.js.map +1 -0
  288. package/components/file-input/themes/themes.d.ts +2 -0
  289. package/components/file-input/themes/themes.js +50 -0
  290. package/components/file-input/themes/themes.js.map +1 -0
  291. package/components/file-input/validators.d.ts +3 -0
  292. package/components/file-input/validators.js +5 -0
  293. package/components/file-input/validators.js.map +1 -0
  294. package/components/icon/icon.registry.js +2 -2
  295. package/components/icon/icon.registry.js.map +1 -1
  296. package/components/input/input-base.d.ts +3 -1
  297. package/components/input/input-base.js +6 -2
  298. package/components/input/input-base.js.map +1 -1
  299. package/components/input/input.d.ts +2 -2
  300. package/components/input/input.js.map +1 -1
  301. package/components/input/themes/dark/input.fluent.css.js +1 -1
  302. package/components/input/themes/dark/input.fluent.css.js.map +1 -1
  303. package/components/input/themes/light/input.fluent.css.js +1 -1
  304. package/components/input/themes/light/input.fluent.css.js.map +1 -1
  305. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  306. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  307. package/components/input/themes/shared/input.fluent.css.js +1 -1
  308. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  309. package/components/input/themes/shared/input.material.css.js +1 -1
  310. package/components/input/themes/shared/input.material.css.js.map +1 -1
  311. package/components/mask-input/mask-input.d.ts +2 -1
  312. package/components/mask-input/mask-input.js.map +1 -1
  313. package/components/nav-drawer/nav-drawer.d.ts +2 -1
  314. package/components/nav-drawer/nav-drawer.js.map +1 -1
  315. package/components/popover/popover.d.ts +19 -3
  316. package/components/popover/popover.js +58 -9
  317. package/components/popover/popover.js.map +1 -1
  318. package/components/progress/linear-progress.d.ts +2 -1
  319. package/components/progress/linear-progress.js.map +1 -1
  320. package/components/radio/radio.d.ts +12 -3
  321. package/components/radio/radio.js +18 -0
  322. package/components/radio/radio.js.map +1 -1
  323. package/components/radio/themes/dark/radio.bootstrap.css.js +1 -1
  324. package/components/radio/themes/dark/radio.bootstrap.css.js.map +1 -1
  325. package/components/radio/themes/light/radio.bootstrap.css.js +1 -1
  326. package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
  327. package/components/radio/themes/light/radio.shared.css.js +1 -1
  328. package/components/radio/themes/light/radio.shared.css.js.map +1 -1
  329. package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
  330. package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
  331. package/components/radio-group/radio-group.d.ts +2 -1
  332. package/components/radio-group/radio-group.js.map +1 -1
  333. package/components/rating/themes/dark/rating.indigo.css.js +1 -1
  334. package/components/rating/themes/dark/rating.indigo.css.js.map +1 -1
  335. package/components/rating/themes/light/rating.indigo.css.js +1 -1
  336. package/components/rating/themes/light/rating.indigo.css.js.map +1 -1
  337. package/components/rating/themes/light/rating.shared.css.js +1 -1
  338. package/components/rating/themes/light/rating.shared.css.js.map +1 -1
  339. package/components/rating/themes/rating.base.css.js +1 -1
  340. package/components/rating/themes/rating.base.css.js.map +1 -1
  341. package/components/rating/themes/shared/rating.common.css.js +1 -1
  342. package/components/rating/themes/shared/rating.common.css.js.map +1 -1
  343. package/components/rating/themes/shared/rating.indigo.css.js +1 -1
  344. package/components/rating/themes/shared/rating.indigo.css.js.map +1 -1
  345. package/components/resize-container/resize-container.d.ts +1 -0
  346. package/components/resize-container/resize-container.js.map +1 -1
  347. package/components/select/select.d.ts +4 -4
  348. package/components/select/select.js.map +1 -1
  349. package/components/select/themes/dark/select.bootstrap.css.js +1 -1
  350. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
  351. package/components/select/themes/dark/select.fluent.css.js +1 -1
  352. package/components/select/themes/dark/select.fluent.css.js.map +1 -1
  353. package/components/select/themes/dark/select.indigo.css.js +1 -1
  354. package/components/select/themes/dark/select.indigo.css.js.map +1 -1
  355. package/components/select/themes/dark/select.material.css.js +1 -1
  356. package/components/select/themes/dark/select.material.css.js.map +1 -1
  357. package/components/select/themes/light/select.bootstrap.css.js +1 -1
  358. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  359. package/components/select/themes/light/select.fluent.css.js +1 -1
  360. package/components/select/themes/light/select.fluent.css.js.map +1 -1
  361. package/components/select/themes/light/select.indigo.css.js +1 -1
  362. package/components/select/themes/light/select.indigo.css.js.map +1 -1
  363. package/components/select/themes/light/select.material.css.js +1 -1
  364. package/components/select/themes/light/select.material.css.js.map +1 -1
  365. package/components/select/themes/light/select.shared.css.js +1 -1
  366. package/components/select/themes/light/select.shared.css.js.map +1 -1
  367. package/components/slider/range-slider.d.ts +5 -3
  368. package/components/slider/range-slider.js.map +1 -1
  369. package/components/slider/slider-base.d.ts +3 -2
  370. package/components/slider/slider-base.js +1 -3
  371. package/components/slider/slider-base.js.map +1 -1
  372. package/components/slider/themes/dark/slider.bootstrap.css.js +1 -1
  373. package/components/slider/themes/dark/slider.bootstrap.css.js.map +1 -1
  374. package/components/slider/themes/light/slider.bootstrap.css.js +1 -1
  375. package/components/slider/themes/light/slider.bootstrap.css.js.map +1 -1
  376. package/components/snackbar/themes/dark/snackbar.fluent.css.js +1 -1
  377. package/components/snackbar/themes/dark/snackbar.fluent.css.js.map +1 -1
  378. package/components/snackbar/themes/light/snackbar.fluent.css.js +1 -1
  379. package/components/snackbar/themes/light/snackbar.fluent.css.js.map +1 -1
  380. package/components/snackbar/themes/light/snackbar.shared.css.js +1 -1
  381. package/components/snackbar/themes/light/snackbar.shared.css.js.map +1 -1
  382. package/components/stepper/animations.d.ts +2 -1
  383. package/components/stepper/animations.js.map +1 -1
  384. package/components/stepper/step.d.ts +8 -3
  385. package/components/stepper/step.js.map +1 -1
  386. package/components/stepper/stepper.common.d.ts +8 -4
  387. package/components/stepper/stepper.common.js.map +1 -1
  388. package/components/stepper/stepper.d.ts +6 -5
  389. package/components/stepper/stepper.js.map +1 -1
  390. package/components/stepper/themes/step/step.base.css.js +1 -1
  391. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  392. package/components/tabs/tabs.d.ts +3 -2
  393. package/components/tabs/tabs.js.map +1 -1
  394. package/components/textarea/textarea.d.ts +2 -2
  395. package/components/textarea/textarea.js.map +1 -1
  396. package/components/textarea/themes/dark/textarea.fluent.css.js +1 -1
  397. package/components/textarea/themes/dark/textarea.fluent.css.js.map +1 -1
  398. package/components/textarea/themes/light/textarea.fluent.css.js +1 -1
  399. package/components/textarea/themes/light/textarea.fluent.css.js.map +1 -1
  400. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  401. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  402. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  403. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  404. package/components/tile-manager/tile-ghost-util.js +2 -0
  405. package/components/tile-manager/tile-ghost-util.js.map +1 -1
  406. package/components/tile-manager/tile-manager.js.map +1 -1
  407. package/components/tile-manager/tile.d.ts +4 -2
  408. package/components/tile-manager/tile.js +36 -17
  409. package/components/tile-manager/tile.js.map +1 -1
  410. package/components/toast/themes/dark/toast.bootstrap.css.js +1 -1
  411. package/components/toast/themes/dark/toast.bootstrap.css.js.map +1 -1
  412. package/components/toast/themes/dark/toast.fluent.css.js +1 -1
  413. package/components/toast/themes/dark/toast.fluent.css.js.map +1 -1
  414. package/components/toast/themes/dark/toast.material.css.js +1 -1
  415. package/components/toast/themes/dark/toast.material.css.js.map +1 -1
  416. package/components/toast/themes/dark/toast.shared.css.js +1 -1
  417. package/components/toast/themes/dark/toast.shared.css.js.map +1 -1
  418. package/components/toast/themes/light/toast.bootstrap.css.js +1 -1
  419. package/components/toast/themes/light/toast.bootstrap.css.js.map +1 -1
  420. package/components/toast/themes/light/toast.fluent.css.js +1 -1
  421. package/components/toast/themes/light/toast.fluent.css.js.map +1 -1
  422. package/components/toast/themes/light/toast.shared.css.js +1 -1
  423. package/components/toast/themes/light/toast.shared.css.js.map +1 -1
  424. package/components/tooltip/controller.d.ts +87 -0
  425. package/components/tooltip/controller.js +172 -0
  426. package/components/tooltip/controller.js.map +1 -0
  427. package/components/tooltip/service.d.ts +12 -0
  428. package/components/tooltip/service.js +42 -0
  429. package/components/tooltip/service.js.map +1 -0
  430. package/components/tooltip/themes/dark/tooltip.bootstrap.css.d.ts +1 -0
  431. package/components/tooltip/themes/dark/tooltip.bootstrap.css.js +3 -0
  432. package/components/tooltip/themes/dark/tooltip.bootstrap.css.js.map +1 -0
  433. package/components/tooltip/themes/dark/tooltip.fluent.css.d.ts +1 -0
  434. package/components/tooltip/themes/dark/tooltip.fluent.css.js +3 -0
  435. package/components/tooltip/themes/dark/tooltip.fluent.css.js.map +1 -0
  436. package/components/tooltip/themes/dark/tooltip.indigo.css.d.ts +1 -0
  437. package/components/tooltip/themes/dark/tooltip.indigo.css.js +3 -0
  438. package/components/tooltip/themes/dark/tooltip.indigo.css.js.map +1 -0
  439. package/components/tooltip/themes/dark/tooltip.material.css.d.ts +1 -0
  440. package/components/tooltip/themes/dark/tooltip.material.css.js +3 -0
  441. package/components/tooltip/themes/dark/tooltip.material.css.js.map +1 -0
  442. package/components/tooltip/themes/light/tooltip.bootstrap.css.d.ts +1 -0
  443. package/components/tooltip/themes/light/tooltip.bootstrap.css.js +3 -0
  444. package/components/tooltip/themes/light/tooltip.bootstrap.css.js.map +1 -0
  445. package/components/tooltip/themes/light/tooltip.fluent.css.d.ts +1 -0
  446. package/components/tooltip/themes/light/tooltip.fluent.css.js +3 -0
  447. package/components/tooltip/themes/light/tooltip.fluent.css.js.map +1 -0
  448. package/components/tooltip/themes/light/tooltip.indigo.css.d.ts +1 -0
  449. package/components/tooltip/themes/light/tooltip.indigo.css.js +3 -0
  450. package/components/tooltip/themes/light/tooltip.indigo.css.js.map +1 -0
  451. package/components/tooltip/themes/light/tooltip.material.css.d.ts +1 -0
  452. package/components/tooltip/themes/light/tooltip.material.css.js +3 -0
  453. package/components/tooltip/themes/light/tooltip.material.css.js.map +1 -0
  454. package/components/tooltip/themes/light/tooltip.shared.css.d.ts +1 -0
  455. package/components/tooltip/themes/light/tooltip.shared.css.js +3 -0
  456. package/components/tooltip/themes/light/tooltip.shared.css.js.map +1 -0
  457. package/components/tooltip/themes/shared/tooltip.common.css.d.ts +1 -0
  458. package/components/tooltip/themes/shared/tooltip.common.css.js +3 -0
  459. package/components/tooltip/themes/shared/tooltip.common.css.js.map +1 -0
  460. package/components/tooltip/themes/shared/tooltip.indigo.css.d.ts +1 -0
  461. package/components/tooltip/themes/shared/tooltip.indigo.css.js +3 -0
  462. package/components/tooltip/themes/shared/tooltip.indigo.css.js.map +1 -0
  463. package/components/tooltip/themes/themes.d.ts +2 -0
  464. package/components/tooltip/themes/themes.js +47 -0
  465. package/components/tooltip/themes/themes.js.map +1 -0
  466. package/components/tooltip/themes/tooltip.base.css.d.ts +1 -0
  467. package/components/tooltip/themes/tooltip.base.css.js +3 -0
  468. package/components/tooltip/themes/tooltip.base.css.js.map +1 -0
  469. package/components/tooltip/tooltip.d.ts +154 -0
  470. package/components/tooltip/tooltip.js +284 -0
  471. package/components/tooltip/tooltip.js.map +1 -0
  472. package/components/tree/tree.common.d.ts +4 -6
  473. package/components/tree/tree.common.js.map +1 -1
  474. package/components/tree/tree.d.ts +2 -1
  475. package/components/tree/tree.js.map +1 -1
  476. package/components/tree/tree.selection.js.map +1 -1
  477. package/components/types.d.ts +30 -2
  478. package/components/types.js.map +1 -1
  479. package/custom-elements.json +14111 -11208
  480. package/igniteui-webcomponents.css-data.json +1 -1
  481. package/igniteui-webcomponents.html-data.json +1 -1
  482. package/index.d.ts +16 -6
  483. package/index.js +3 -1
  484. package/index.js.map +1 -1
  485. package/package.json +2 -2
  486. package/theming/types.d.ts +2 -2
  487. package/theming/types.js.map +1 -1
  488. package/web-types.json +2 -2
  489. package/components/common/decorators/blazorTypeOverride.d.ts +0 -7
  490. package/components/common/decorators/blazorTypeOverride.js +0 -4
  491. package/components/common/decorators/blazorTypeOverride.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"combo.material.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,0mGAA0mG,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--toggle-button-background-focus: var(--ig-combo-toggle-button-background-focus, var(--ig-gray-400));--toggle-button-foreground-disabled: var(--ig-combo-toggle-button-foreground-disabled, var(--ig-gray-500));--clear-button-background-focus: var(--ig-combo-clear-button-background-focus, transparent);--helper-text-color: var(--ig-combo-helper-text-color, var(--ig-gray-700));--disabled-text-color: var(--ig-combo-disabled-text-color, var(--ig-gray-500));--error-secondary-color: var(--ig-combo-error-secondary-color, var(--ig-error-500));--ig-theme: material;--elevation: var(--ig-combo-list-elevation, var(--ig-elevation-3));--background-color: var(--ig-combo-list-background-color, var(--ig-surface-500));--header-text-color: var(--ig-combo-list-header-text-color, var(--ig-secondary-500));--item-text-color: var(--ig-combo-list-item-text-color, var(--ig-gray-800));--item-icon-color: var(--ig-combo-list-item-icon-color, var(--ig-gray-800));--hover-item-text-color: var(--ig-combo-list-hover-item-text-color, var(--ig-gray-800));--hover-item-icon-color: var(--ig-combo-list-hover-item-icon-color, var(--ig-gray-800));--focused-item-text-color: var(--ig-combo-list-focused-item-text-color, var(--ig-gray-800));--focused-item-border-color: var(--ig-combo-list-focused-item-border-color, transparent);--selected-item-background: var(--ig-combo-list-selected-item-background, var(--ig-secondary-100));--disabled-item-background: var(--ig-combo-list-disabled-item-background, transparent);--disabled-item-text-color: var(--ig-combo-list-disabled-item-text-color, var(--ig-gray-400));--border-color: var(--ig-combo-list-border-color, var(--ig-gray-300));--border-width: var(--ig-combo-list-border-width, 0);--border-radius: var(--ig-combo-list-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2) * 1.25rem), 1.25rem));--item-border-radius: var(--ig-combo-list-item-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 1.25rem), 1.25rem));--size: var(--ig-combo-list-size, max(var(--is-large, 1) * max(2.5rem, -1 * 2.5rem), var(--is-medium, 1) * max(2rem, -1 * 2rem), var(--is-small, 1) * max(1.75rem, -1 * 1.75rem)));--hover-item-background: var(--ig-combo-list-hover-item-background, hsl(from var(--ig-gray-100) h s l/0.8));--focused-item-background: var(--ig-combo-list-focused-item-background, hsl(from var(--ig-gray-100) h s l/0.8));--selected-item-text-color: var(--ig-combo-list-selected-item-text-color, var(--ig-secondary-100-contrast));--selected-item-icon-color: var(--ig-combo-list-selected-item-icon-color, var(--ig-secondary-100-contrast));--selected-hover-item-background: var(--ig-combo-list-selected-hover-item-background, var(--ig-secondary-200));--selected-hover-item-text-color: var(--ig-combo-list-selected-hover-item-text-color, var(--ig-secondary-200-contrast));--selected-hover-item-icon-color: var(--ig-combo-list-selected-hover-item-icon-color, var(--ig-secondary-200-contrast));--selected-focus-item-background: var(--ig-combo-list-selected-focus-item-background, var(--ig-secondary-200));--selected-focus-item-text-color: var(--ig-combo-list-selected-focus-item-text-color, var(--ig-secondary-200-contrast));--ig-theme: material}`;\n"]}
1
+ {"version":3,"file":"combo.material.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,u9FAAu9F,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--toggle-button-background-focus: var(--ig-combo-toggle-button-background-focus, var(--ig-gray-400));--clear-button-background-focus: var(--ig-combo-clear-button-background-focus, transparent);--helper-text-color: var(--ig-combo-helper-text-color, var(--ig-gray-700));--disabled-text-color: var(--ig-combo-disabled-text-color, var(--ig-gray-500));--error-secondary-color: var(--ig-combo-error-secondary-color, var(--ig-error-500));--ig-theme: material;--elevation: var(--ig-combo-list-elevation, var(--ig-elevation-3));--background-color: var(--ig-combo-list-background-color, var(--ig-surface-500));--header-text-color: var(--ig-combo-list-header-text-color, var(--ig-secondary-500));--item-text-color: var(--ig-combo-list-item-text-color, var(--ig-gray-800));--item-icon-color: var(--ig-combo-list-item-icon-color, var(--ig-gray-800));--hover-item-background: var(--ig-combo-list-hover-item-background, var(--ig-gray-100));--hover-item-text-color: var(--ig-combo-list-hover-item-text-color, var(--ig-gray-800));--hover-item-icon-color: var(--ig-combo-list-hover-item-icon-color, var(--ig-gray-800));--focused-item-background: var(--ig-combo-list-focused-item-background, var(--ig-gray-100));--focused-item-text-color: var(--ig-combo-list-focused-item-text-color, var(--ig-gray-800));--focused-item-border-color: var(--ig-combo-list-focused-item-border-color, transparent);--selected-item-background: var(--ig-combo-list-selected-item-background, var(--ig-secondary-100));--disabled-item-background: var(--ig-combo-list-disabled-item-background, transparent);--disabled-item-text-color: var(--ig-combo-list-disabled-item-text-color, var(--ig-gray-500));--border-color: var(--ig-combo-list-border-color, var(--ig-gray-300));--border-width: var(--ig-combo-list-border-width, 0);--border-radius: var(--ig-combo-list-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2) * 1.25rem), 1.25rem));--item-border-radius: var(--ig-combo-list-item-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 1.25rem), 1.25rem));--size: var(--ig-combo-list-size, max(var(--is-large, 1) * max(2.5rem, -1 * 2.5rem), var(--is-medium, 1) * max(2rem, -1 * 2rem), var(--is-small, 1) * max(1.75rem, -1 * 1.75rem)));--selected-item-text-color: var(--ig-combo-list-selected-item-text-color, var(--ig-secondary-100-contrast));--selected-item-icon-color: var(--ig-combo-list-selected-item-icon-color, var(--ig-secondary-100-contrast));--selected-hover-item-background: var(--ig-combo-list-selected-hover-item-background, var(--ig-secondary-200));--selected-hover-item-text-color: var(--ig-combo-list-selected-hover-item-text-color, var(--ig-secondary-200-contrast));--selected-hover-item-icon-color: var(--ig-combo-list-selected-hover-item-icon-color, var(--ig-secondary-200-contrast));--selected-focus-item-background: var(--ig-combo-list-selected-focus-item-background, var(--ig-secondary-200));--selected-focus-item-text-color: var(--ig-combo-list-selected-focus-item-text-color, var(--ig-secondary-200-contrast));--ig-theme: material}`;\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--toggle-button-background-focus--border: var(--ig-combo-toggle-button-background-focus--border, var(--ig-gray-300));--case-icon-color: var(--ig-combo-case-icon-color, var(--ig-gray-400));--case-icon-color--active: var(--ig-combo-case-icon-color--active, var(--ig-primary-500));--empty-list-background: var(--ig-combo-empty-list-background, var(--ig-surface-500));--search-separator-border-color: var(--ig-combo-search-separator-border-color, var(--ig-gray-500));--empty-list-placeholder-color: var(--ig-combo-empty-list-placeholder-color, var(--ig-gray-700));--toggle-button-background: var(--ig-combo-toggle-button-background, var(--ig-gray-300));--toggle-button-background-focus: var(--ig-combo-toggle-button-background-focus, var(--ig-gray-300));--toggle-button-foreground: var(--ig-combo-toggle-button-foreground, var(--ig-gray-700));--toggle-button-foreground-focus: var(--ig-combo-toggle-button-foreground-focus, var(--ig-gray-900));--toggle-button-foreground-filled: var(--ig-combo-toggle-button-foreground-filled, var(--ig-gray-900));--clear-button-background: var(--ig-combo-clear-button-background, transparent);--clear-button-foreground: var(--ig-combo-clear-button-foreground, var(--ig-gray-900));--clear-button-foreground-focus: var(--ig-combo-clear-button-foreground-focus, var(--ig-gray-900));--toggle-button-background-disabled: var(--ig-combo-toggle-button-background-disabled, var(--ig-gray-100));--toggle-button-foreground-disabled: var(--ig-combo-toggle-button-foreground-disabled, var(--ig-gray-400));--default-size: var(--ig-combo-default-size, 2)}`;
2
+ export const styles = css `:host{--toggle-button-background-focus--border: var(--ig-combo-toggle-button-background-focus--border, var(--ig-gray-300));--case-icon-color: var(--ig-combo-case-icon-color, var(--ig-gray-400));--case-icon-color--active: var(--ig-combo-case-icon-color--active, var(--ig-primary-500));--empty-list-background: var(--ig-combo-empty-list-background, var(--ig-surface-500));--search-separator-border-color: var(--ig-combo-search-separator-border-color, var(--ig-gray-500));--empty-list-placeholder-color: var(--ig-combo-empty-list-placeholder-color, var(--ig-gray-700));--toggle-button-background: var(--ig-combo-toggle-button-background, var(--ig-gray-300));--toggle-button-background-focus: var(--ig-combo-toggle-button-background-focus, var(--ig-gray-300));--toggle-button-foreground: var(--ig-combo-toggle-button-foreground, var(--ig-gray-700));--toggle-button-foreground-focus: var(--ig-combo-toggle-button-foreground-focus, var(--ig-gray-900));--toggle-button-foreground-filled: var(--ig-combo-toggle-button-foreground-filled, var(--ig-gray-900));--clear-button-background: var(--ig-combo-clear-button-background, transparent);--clear-button-foreground: var(--ig-combo-clear-button-foreground, var(--ig-gray-900));--clear-button-foreground-focus: var(--ig-combo-clear-button-foreground-focus, var(--ig-gray-900));--toggle-button-background-disabled: var(--ig-combo-toggle-button-background-disabled, var(--ig-gray-100));--toggle-button-foreground-disabled: var(--ig-combo-toggle-button-foreground-disabled, var(--ig-gray-500));--default-size: var(--ig-combo-default-size, 2)}`;
3
3
  //# sourceMappingURL=combo.shared.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combo.shared.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.shared.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,2iDAA2iD,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--toggle-button-background-focus--border: var(--ig-combo-toggle-button-background-focus--border, var(--ig-gray-300));--case-icon-color: var(--ig-combo-case-icon-color, var(--ig-gray-400));--case-icon-color--active: var(--ig-combo-case-icon-color--active, var(--ig-primary-500));--empty-list-background: var(--ig-combo-empty-list-background, var(--ig-surface-500));--search-separator-border-color: var(--ig-combo-search-separator-border-color, var(--ig-gray-500));--empty-list-placeholder-color: var(--ig-combo-empty-list-placeholder-color, var(--ig-gray-700));--toggle-button-background: var(--ig-combo-toggle-button-background, var(--ig-gray-300));--toggle-button-background-focus: var(--ig-combo-toggle-button-background-focus, var(--ig-gray-300));--toggle-button-foreground: var(--ig-combo-toggle-button-foreground, var(--ig-gray-700));--toggle-button-foreground-focus: var(--ig-combo-toggle-button-foreground-focus, var(--ig-gray-900));--toggle-button-foreground-filled: var(--ig-combo-toggle-button-foreground-filled, var(--ig-gray-900));--clear-button-background: var(--ig-combo-clear-button-background, transparent);--clear-button-foreground: var(--ig-combo-clear-button-foreground, var(--ig-gray-900));--clear-button-foreground-focus: var(--ig-combo-clear-button-foreground-focus, var(--ig-gray-900));--toggle-button-background-disabled: var(--ig-combo-toggle-button-background-disabled, var(--ig-gray-100));--toggle-button-foreground-disabled: var(--ig-combo-toggle-button-foreground-disabled, var(--ig-gray-400));--default-size: var(--ig-combo-default-size, 2)}`;\n"]}
1
+ {"version":3,"file":"combo.shared.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.shared.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,2iDAA2iD,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--toggle-button-background-focus--border: var(--ig-combo-toggle-button-background-focus--border, var(--ig-gray-300));--case-icon-color: var(--ig-combo-case-icon-color, var(--ig-gray-400));--case-icon-color--active: var(--ig-combo-case-icon-color--active, var(--ig-primary-500));--empty-list-background: var(--ig-combo-empty-list-background, var(--ig-surface-500));--search-separator-border-color: var(--ig-combo-search-separator-border-color, var(--ig-gray-500));--empty-list-placeholder-color: var(--ig-combo-empty-list-placeholder-color, var(--ig-gray-700));--toggle-button-background: var(--ig-combo-toggle-button-background, var(--ig-gray-300));--toggle-button-background-focus: var(--ig-combo-toggle-button-background-focus, var(--ig-gray-300));--toggle-button-foreground: var(--ig-combo-toggle-button-foreground, var(--ig-gray-700));--toggle-button-foreground-focus: var(--ig-combo-toggle-button-foreground-focus, var(--ig-gray-900));--toggle-button-foreground-filled: var(--ig-combo-toggle-button-foreground-filled, var(--ig-gray-900));--clear-button-background: var(--ig-combo-clear-button-background, transparent);--clear-button-foreground: var(--ig-combo-clear-button-foreground, var(--ig-gray-900));--clear-button-foreground-focus: var(--ig-combo-clear-button-foreground-focus, var(--ig-gray-900));--toggle-button-background-disabled: var(--ig-combo-toggle-button-background-disabled, var(--ig-gray-100));--toggle-button-foreground-disabled: var(--ig-combo-toggle-button-foreground-disabled, var(--ig-gray-500));--default-size: var(--ig-combo-default-size, 2)}`;\n"]}
@@ -17,11 +17,23 @@ type State = {
17
17
  x: number;
18
18
  y: number;
19
19
  };
20
+ pointerState: {
21
+ previous: {
22
+ x: number;
23
+ y: number;
24
+ };
25
+ current: {
26
+ x: number;
27
+ y: number;
28
+ };
29
+ direction: Direction;
30
+ };
20
31
  };
21
32
  type DragState = State & {
22
33
  ghost: HTMLElement | null;
23
34
  element: Element | null;
24
35
  };
36
+ type Direction = 'start' | 'end' | 'bottom' | 'top';
25
37
  type DragControllerConfiguration = {
26
38
  /** Whether the drag feature is enabled for the current host. */
27
39
  enabled?: boolean;
@@ -130,6 +142,7 @@ declare class DragController implements ReactiveController {
130
142
  private _setDragState;
131
143
  private _updateMatcher;
132
144
  private _updatePosition;
145
+ private _updatePointerState;
133
146
  private _assignPosition;
134
147
  private _createDragGhost;
135
148
  private _removeGhost;
@@ -1,5 +1,5 @@
1
1
  import { getDefaultLayer } from '../../resize-container/default-ghost.js';
2
- import { findElementFromEventPath, getRoot, roundByDPR } from '../util.js';
2
+ import { findElementFromEventPath, getRoot, isLTR, roundByDPR, } from '../util.js';
3
3
  const additionalEvents = [
4
4
  'pointermove',
5
5
  'lostpointercapture',
@@ -99,7 +99,10 @@ class DragController {
99
99
  this._setInitialState(event);
100
100
  this._createDragGhost();
101
101
  this._updatePosition(event);
102
- const parameters = { event, state: this._stateParameters };
102
+ const parameters = {
103
+ event,
104
+ state: this._stateParameters,
105
+ };
103
106
  if (this._options.start?.call(this._host, parameters) === false) {
104
107
  this.dispose();
105
108
  return;
@@ -112,8 +115,12 @@ class DragController {
112
115
  return;
113
116
  }
114
117
  this._updatePosition(event);
118
+ this._updatePointerState(event);
115
119
  this._updateMatcher(event);
116
- const parameters = { event, state: this._stateParameters };
120
+ const parameters = {
121
+ event,
122
+ state: this._stateParameters,
123
+ };
117
124
  this._options.move?.call(this._host, parameters);
118
125
  this._assignPosition(this._dragItem);
119
126
  }
@@ -145,6 +152,11 @@ class DragController {
145
152
  current: structuredClone(rect),
146
153
  position,
147
154
  offset,
155
+ pointerState: {
156
+ previous: { x: clientX, y: clientY },
157
+ current: { x: clientX, y: clientY },
158
+ direction: 'end',
159
+ },
148
160
  };
149
161
  }
150
162
  _setDragState(enabled = true) {
@@ -201,7 +213,21 @@ class DragController {
201
213
  : this._state.initial;
202
214
  const posX = this._hasSnapping ? clientX - layerX : clientX - layerX + x;
203
215
  const posY = this._hasSnapping ? clientY - layerY : clientY - layerY + y;
204
- Object.assign(this._state.position, { x: posX, y: posY });
216
+ this._state.position = { x: posX, y: posY };
217
+ }
218
+ _updatePointerState({ clientX, clientY }) {
219
+ const state = this._state.pointerState;
220
+ state.previous = { ...state.current };
221
+ state.current = { x: clientX, y: clientY };
222
+ const dx = state.current.x - state.previous.x;
223
+ const dy = state.current.y - state.previous.y;
224
+ if (Math.abs(dx) >= Math.abs(dy)) {
225
+ const swapHorizontal = isLTR(this._host) ? dx >= 0 : dx <= 0;
226
+ state.direction = swapHorizontal ? 'end' : 'start';
227
+ }
228
+ else {
229
+ state.direction = dy >= 0 ? 'bottom' : 'top';
230
+ }
205
231
  }
206
232
  _assignPosition(element) {
207
233
  element.style.transform = `translate3d(${roundByDPR(this._state.position.x)}px,${roundByDPR(this._state.position.y)}px,0)`;
@@ -1 +1 @@
1
- {"version":3,"file":"drag.js","sourceRoot":"","sources":["../../../../src/components/common/controllers/drag.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n LitElement,\n ReactiveController,\n ReactiveControllerHost,\n} from 'lit';\nimport type { Ref } from 'lit/directives/ref.js';\n\nimport { getDefaultLayer } from '../../resize-container/default-ghost.js';\nimport { findElementFromEventPath, getRoot, roundByDPR } from '../util.js';\n\ntype DragCallback = (parameters: DragCallbackParameters) => unknown;\ntype DragCancelCallback = (state: DragState) => unknown;\n\nexport type DragCallbackParameters = {\n event: PointerEvent;\n state: DragState;\n};\n\ntype State = {\n initial: DOMRect;\n current: DOMRect;\n position: { x: number; y: number };\n offset: { x: number; y: number };\n};\n\ntype DragState = State & {\n ghost: HTMLElement | null;\n element: Element | null;\n};\n\ntype DragControllerConfiguration = {\n /** Whether the drag feature is enabled for the current host. */\n enabled?: boolean;\n /**\n * The mode of the drag operation.\n *\n * Deferred will create a ghost element and keep the original element\n * at its place until the operation completes successfully.\n */\n mode?: 'immediate' | 'deferred';\n /**\n * Whether starting a drag operation should snap the dragged item's top left corner\n * to the cursor position.\n */\n snapToCursor?: boolean;\n /**\n * Guard function invoked during the `start` callback.\n * Returning a truthy value will stop the current drag operation.\n */\n skip?: (event: PointerEvent) => boolean;\n\n matchTarget?: (target: Element) => boolean;\n /**\n *\n */\n trigger?: () => HTMLElement;\n /**\n * Contain drag operations to the scope of the passed DOM element.\n */\n container?: Ref<HTMLElement>;\n /**\n * The DOM element that will \"host\" the ghost drag element when the controller\n * is set to **deferred**.\n *\n * @remarks\n * In **immediate** mode, this property is ignored.\n */\n layer?: () => HTMLElement;\n\n ghost?: () => HTMLElement;\n\n /** Callback invoked at the beginning of a drag operation. */\n start?: DragCallback;\n /** Callback invoked while dragging the target element. */\n move?: DragCallback;\n\n enter?: DragCallback;\n\n leave?: DragCallback;\n\n over?: DragCallback;\n\n /** Callback invoked during a drop operation. */\n end?: DragCallback;\n /** Callback invoked when a drag is cancelled */\n cancel?: DragCancelCallback;\n};\n\nconst additionalEvents = [\n 'pointermove',\n 'lostpointercapture',\n 'contextmenu',\n] as const;\n\nclass DragController implements ReactiveController {\n private _host: ReactiveControllerHost & LitElement;\n private _options: DragControllerConfiguration = {\n enabled: true,\n mode: 'deferred',\n snapToCursor: false,\n layer: getDefaultLayer,\n };\n\n private _state!: State;\n\n private _matchedElement!: Element | null;\n\n private _id = -1;\n private _hasPointerCapture = false;\n\n private _ghost: HTMLElement | null = null;\n\n /** Whether `snapToCursor` is enabled for the controller. */\n private get _hasSnapping(): boolean {\n return Boolean(this._options.snapToCursor);\n }\n\n /** Whether the current drag mode is deferred. */\n private get _isDeferred(): boolean {\n return this._options.mode === 'deferred';\n }\n\n /**\n * The source element which will capture pointer events and initiate drag mode.\n *\n * @remarks\n * By default that will be the host element itself, unless `trigger` is passed in.\n */\n private get _element(): HTMLElement {\n return this._options.trigger?.() ?? this._host;\n }\n\n /**\n * The element being dragged.\n *\n * @remarks\n * When in **deferred** mode this returns a reference to the drag ghost element,\n * otherwise it is the host element.\n */\n private get _dragItem(): HTMLElement {\n return this._isDeferred ? this._ghost! : this._host;\n }\n\n /**\n * The DOM element that will \"host\" the ghost drag element when the controller\n * is set to **deferred**.\n *\n * @remarks\n * In **immediate** mode, this property is ignored.\n */\n private get _layer(): HTMLElement {\n if (!this._isDeferred) {\n return this._host;\n }\n\n return this._options.layer?.() ?? this._host;\n }\n\n private get _stateParameters(): DragState {\n return {\n ...this._state,\n ghost: this._ghost,\n element: this._matchedElement,\n };\n }\n\n constructor(\n host: ReactiveControllerHost & LitElement,\n options?: DragControllerConfiguration\n ) {\n this._host = host;\n this._host.addController(this);\n this.set(options);\n }\n\n // #region Public API\n\n /** Whether the drag controller is enabled. */\n public get enabled(): boolean {\n return Boolean(this._options.enabled);\n }\n\n /** Updates the drag controller configuration. */\n public set(options?: DragControllerConfiguration): void {\n Object.assign(this._options, options);\n }\n\n /** Stops any drag operation and cleans up state, additional event listeners and elements. */\n public dispose(): void {\n this._matchedElement = null;\n this._removeGhost();\n this._setDragState(false);\n }\n\n /** @internal */\n public hostConnected(): void {\n this._host.addEventListener('dragstart', this);\n this._host.addEventListener('touchstart', this, { passive: false });\n this._host.addEventListener('pointerdown', this);\n }\n\n /** @internal */\n public hostDisconnected(): void {\n this._host.removeEventListener('dragstart', this);\n this._host.removeEventListener('touchstart', this);\n this._host.removeEventListener('pointerdown', this);\n this._setDragCancelListener(false);\n this._removeGhost();\n }\n\n /** @internal */\n public handleEvent(event: PointerEvent & KeyboardEvent): void {\n if (!this.enabled) {\n return;\n }\n\n switch (event.type) {\n case 'touchstart':\n case 'dragstart':\n // Prevent contextmenu default behavior during drag\n case 'contextmenu':\n event.preventDefault();\n break;\n case 'keydown':\n this._handleCancel(event);\n break;\n case 'pointerdown':\n this._handlePointerDown(event);\n break;\n case 'pointermove':\n this._handlePointerMove(event);\n break;\n case 'lostpointercapture':\n this._handlePointerEnd(event);\n break;\n }\n }\n\n // #endregion\n\n // #region Event handlers\n\n private _handlePointerDown(event: PointerEvent): void {\n if (this._shouldSkip(event)) {\n return;\n }\n\n this._setInitialState(event);\n this._createDragGhost();\n this._updatePosition(event);\n\n const parameters = { event, state: this._stateParameters };\n if (this._options.start?.call(this._host, parameters) === false) {\n this.dispose();\n return;\n }\n\n this._assignPosition(this._dragItem);\n this._setDragState();\n }\n\n private _handlePointerMove(event: PointerEvent): void {\n if (!this._hasPointerCapture) {\n return;\n }\n\n this._updatePosition(event);\n this._updateMatcher(event);\n\n const parameters = { event, state: this._stateParameters };\n this._options.move?.call(this._host, parameters);\n\n this._assignPosition(this._dragItem);\n }\n\n private _handlePointerEnd(event: PointerEvent): void {\n this._options.end?.call(this._host, {\n event,\n state: this._stateParameters,\n });\n this.dispose();\n }\n\n private _handleCancel(event: KeyboardEvent): void {\n const key = event.key.toLowerCase();\n\n if (this._hasPointerCapture && key === 'escape') {\n // Reset state\n this._options.cancel?.call(this._host, this._stateParameters);\n }\n }\n\n // #endregion\n\n private _setDragCancelListener(enabled = true): void {\n enabled\n ? globalThis.addEventListener('keydown', this)\n : globalThis.removeEventListener('keydown', this);\n }\n\n private _setInitialState({\n pointerId,\n clientX,\n clientY,\n }: PointerEvent): void {\n const rect = this._host.getBoundingClientRect();\n const position = { x: rect.x, y: rect.y };\n const offset = { x: rect.x - clientX, y: rect.y - clientY };\n\n this._id = pointerId;\n this._state = {\n initial: rect,\n current: structuredClone(rect),\n position,\n offset,\n };\n }\n\n private _setDragState(enabled = true): void {\n this._hasPointerCapture = enabled;\n const cssValue = enabled ? 'none' : '';\n\n Object.assign(this._element.style, {\n touchAction: cssValue,\n userSelect: cssValue,\n });\n\n enabled\n ? this._element.setPointerCapture(this._id)\n : this._element.releasePointerCapture(this._id);\n\n this._setDragCancelListener(enabled);\n\n // Toggle additional events\n for (const type of additionalEvents) {\n enabled\n ? this._host.addEventListener(type, this)\n : this._host.removeEventListener(type, this);\n }\n }\n\n private _updateMatcher(event: PointerEvent) {\n if (!this._options.matchTarget) {\n return;\n }\n\n const match = getRoot(this._host)\n .elementsFromPoint(event.clientX, event.clientY)\n .find((element) => this._options.matchTarget!.call(this._host, element));\n\n if (match && !this._matchedElement) {\n this._matchedElement = match;\n this._options.enter?.call(this._host, {\n event,\n state: this._stateParameters,\n });\n return;\n }\n\n if (!match && this._matchedElement) {\n this._options.leave?.call(this._host, {\n event,\n state: this._stateParameters,\n });\n this._matchedElement = null;\n return;\n }\n\n if (match && match === this._matchedElement) {\n this._options.over?.call(this._host, {\n event,\n state: this._stateParameters,\n });\n }\n }\n\n private _updatePosition({ clientX, clientY }: PointerEvent): void {\n const { x, y } = this._state.offset;\n const { x: layerX, y: layerY } = this._isDeferred\n ? this._layer.getBoundingClientRect()\n : this._state.initial;\n\n const posX = this._hasSnapping ? clientX - layerX : clientX - layerX + x;\n const posY = this._hasSnapping ? clientY - layerY : clientY - layerY + y;\n\n Object.assign(this._state.position, { x: posX, y: posY });\n }\n\n private _assignPosition(element: HTMLElement): void {\n element.style.transform = `translate3d(${roundByDPR(this._state.position.x)}px,${roundByDPR(this._state.position.y)}px,0)`;\n }\n\n private _createDragGhost(): void {\n if (!this._isDeferred) {\n return;\n }\n\n this._ghost =\n this._options.ghost?.call(this._host) ??\n createDefaultDragGhost(this._host.getBoundingClientRect());\n\n this._layer.append(this._ghost);\n }\n\n private _removeGhost(): void {\n this._ghost?.remove();\n this._ghost = null;\n }\n\n private _shouldSkip(event: PointerEvent): boolean {\n return (\n Boolean(event.button) ||\n this._options.skip?.call(this._host, event) ||\n !findElementFromEventPath((e) => e === this._element, event)\n );\n }\n}\n\nfunction createDefaultDragGhost({ x, y, width, height }: DOMRect): HTMLElement {\n const element = document.createElement('div');\n\n Object.assign(element.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`,\n width: `${width}px`,\n height: `${height}px`,\n zIndex: 1000,\n background: 'gold',\n });\n\n return element;\n}\n\n/**\n * Adds a drag and drop controller to the given host\n */\nexport function addDragController(\n host: ReactiveControllerHost & LitElement,\n options?: DragControllerConfiguration\n): DragController {\n return new DragController(host, options);\n}\n"]}
1
+ {"version":3,"file":"drag.js","sourceRoot":"","sources":["../../../../src/components/common/controllers/drag.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n LitElement,\n ReactiveController,\n ReactiveControllerHost,\n} from 'lit';\nimport type { Ref } from 'lit/directives/ref.js';\n\nimport { getDefaultLayer } from '../../resize-container/default-ghost.js';\nimport {\n findElementFromEventPath,\n getRoot,\n isLTR,\n roundByDPR,\n} from '../util.js';\n\ntype DragCallback = (parameters: DragCallbackParameters) => unknown;\ntype DragCancelCallback = (state: DragState) => unknown;\n\nexport type DragCallbackParameters = {\n event: PointerEvent;\n state: DragState;\n};\n\ntype State = {\n initial: DOMRect;\n current: DOMRect;\n position: { x: number; y: number };\n offset: { x: number; y: number };\n pointerState: {\n previous: { x: number; y: number };\n current: { x: number; y: number };\n direction: Direction;\n };\n};\n\ntype DragState = State & {\n ghost: HTMLElement | null;\n element: Element | null;\n};\n\ntype Direction = 'start' | 'end' | 'bottom' | 'top';\n\ntype DragControllerConfiguration = {\n /** Whether the drag feature is enabled for the current host. */\n enabled?: boolean;\n /**\n * The mode of the drag operation.\n *\n * Deferred will create a ghost element and keep the original element\n * at its place until the operation completes successfully.\n */\n mode?: 'immediate' | 'deferred';\n /**\n * Whether starting a drag operation should snap the dragged item's top left corner\n * to the cursor position.\n */\n snapToCursor?: boolean;\n /**\n * Guard function invoked during the `start` callback.\n * Returning a truthy value will stop the current drag operation.\n */\n skip?: (event: PointerEvent) => boolean;\n\n matchTarget?: (target: Element) => boolean;\n /**\n *\n */\n trigger?: () => HTMLElement;\n /**\n * Contain drag operations to the scope of the passed DOM element.\n */\n container?: Ref<HTMLElement>;\n /**\n * The DOM element that will \"host\" the ghost drag element when the controller\n * is set to **deferred**.\n *\n * @remarks\n * In **immediate** mode, this property is ignored.\n */\n layer?: () => HTMLElement;\n\n ghost?: () => HTMLElement;\n\n /** Callback invoked at the beginning of a drag operation. */\n start?: DragCallback;\n /** Callback invoked while dragging the target element. */\n move?: DragCallback;\n\n enter?: DragCallback;\n\n leave?: DragCallback;\n\n over?: DragCallback;\n\n /** Callback invoked during a drop operation. */\n end?: DragCallback;\n /** Callback invoked when a drag is cancelled */\n cancel?: DragCancelCallback;\n};\n\nconst additionalEvents = [\n 'pointermove',\n 'lostpointercapture',\n 'contextmenu',\n] as const;\n\nclass DragController implements ReactiveController {\n private _host: ReactiveControllerHost & LitElement;\n private _options: DragControllerConfiguration = {\n enabled: true,\n mode: 'deferred',\n snapToCursor: false,\n layer: getDefaultLayer,\n };\n\n private _state!: State;\n\n private _matchedElement!: Element | null;\n\n private _id = -1;\n private _hasPointerCapture = false;\n\n private _ghost: HTMLElement | null = null;\n\n /** Whether `snapToCursor` is enabled for the controller. */\n private get _hasSnapping(): boolean {\n return Boolean(this._options.snapToCursor);\n }\n\n /** Whether the current drag mode is deferred. */\n private get _isDeferred(): boolean {\n return this._options.mode === 'deferred';\n }\n\n /**\n * The source element which will capture pointer events and initiate drag mode.\n *\n * @remarks\n * By default that will be the host element itself, unless `trigger` is passed in.\n */\n private get _element(): HTMLElement {\n return this._options.trigger?.() ?? this._host;\n }\n\n /**\n * The element being dragged.\n *\n * @remarks\n * When in **deferred** mode this returns a reference to the drag ghost element,\n * otherwise it is the host element.\n */\n private get _dragItem(): HTMLElement {\n return this._isDeferred ? this._ghost! : this._host;\n }\n\n /**\n * The DOM element that will \"host\" the ghost drag element when the controller\n * is set to **deferred**.\n *\n * @remarks\n * In **immediate** mode, this property is ignored.\n */\n private get _layer(): HTMLElement {\n if (!this._isDeferred) {\n return this._host;\n }\n\n return this._options.layer?.() ?? this._host;\n }\n\n private get _stateParameters(): DragState {\n return {\n ...this._state,\n ghost: this._ghost,\n element: this._matchedElement,\n };\n }\n\n constructor(\n host: ReactiveControllerHost & LitElement,\n options?: DragControllerConfiguration\n ) {\n this._host = host;\n this._host.addController(this);\n this.set(options);\n }\n\n // #region Public API\n\n /** Whether the drag controller is enabled. */\n public get enabled(): boolean {\n return Boolean(this._options.enabled);\n }\n\n /** Updates the drag controller configuration. */\n public set(options?: DragControllerConfiguration): void {\n Object.assign(this._options, options);\n }\n\n /** Stops any drag operation and cleans up state, additional event listeners and elements. */\n public dispose(): void {\n this._matchedElement = null;\n this._removeGhost();\n this._setDragState(false);\n }\n\n /** @internal */\n public hostConnected(): void {\n this._host.addEventListener('dragstart', this);\n this._host.addEventListener('touchstart', this, { passive: false });\n this._host.addEventListener('pointerdown', this);\n }\n\n /** @internal */\n public hostDisconnected(): void {\n this._host.removeEventListener('dragstart', this);\n this._host.removeEventListener('touchstart', this);\n this._host.removeEventListener('pointerdown', this);\n this._setDragCancelListener(false);\n this._removeGhost();\n }\n\n /** @internal */\n public handleEvent(event: PointerEvent & KeyboardEvent): void {\n if (!this.enabled) {\n return;\n }\n\n switch (event.type) {\n case 'touchstart':\n case 'dragstart':\n // Prevent contextmenu default behavior during drag\n case 'contextmenu':\n event.preventDefault();\n break;\n case 'keydown':\n this._handleCancel(event);\n break;\n case 'pointerdown':\n this._handlePointerDown(event);\n break;\n case 'pointermove':\n this._handlePointerMove(event);\n break;\n case 'lostpointercapture':\n this._handlePointerEnd(event);\n break;\n }\n }\n\n // #endregion\n\n // #region Event handlers\n\n private _handlePointerDown(event: PointerEvent): void {\n if (this._shouldSkip(event)) {\n return;\n }\n\n this._setInitialState(event);\n this._createDragGhost();\n this._updatePosition(event);\n\n const parameters = {\n event,\n state: this._stateParameters,\n };\n\n if (this._options.start?.call(this._host, parameters) === false) {\n this.dispose();\n return;\n }\n\n this._assignPosition(this._dragItem);\n this._setDragState();\n }\n\n private _handlePointerMove(event: PointerEvent): void {\n if (!this._hasPointerCapture) {\n return;\n }\n\n this._updatePosition(event);\n this._updatePointerState(event);\n this._updateMatcher(event);\n\n const parameters = {\n event,\n state: this._stateParameters,\n };\n\n this._options.move?.call(this._host, parameters);\n\n this._assignPosition(this._dragItem);\n }\n\n private _handlePointerEnd(event: PointerEvent): void {\n this._options.end?.call(this._host, {\n event,\n state: this._stateParameters,\n });\n this.dispose();\n }\n\n private _handleCancel(event: KeyboardEvent): void {\n const key = event.key.toLowerCase();\n\n if (this._hasPointerCapture && key === 'escape') {\n // Reset state\n this._options.cancel?.call(this._host, this._stateParameters);\n }\n }\n\n // #endregion\n\n private _setDragCancelListener(enabled = true): void {\n enabled\n ? globalThis.addEventListener('keydown', this)\n : globalThis.removeEventListener('keydown', this);\n }\n\n private _setInitialState({\n pointerId,\n clientX,\n clientY,\n }: PointerEvent): void {\n const rect = this._host.getBoundingClientRect();\n const position = { x: rect.x, y: rect.y };\n const offset = { x: rect.x - clientX, y: rect.y - clientY };\n\n this._id = pointerId;\n this._state = {\n initial: rect,\n current: structuredClone(rect),\n position,\n offset,\n pointerState: {\n previous: { x: clientX, y: clientY },\n current: { x: clientX, y: clientY },\n direction: 'end',\n },\n };\n }\n\n private _setDragState(enabled = true): void {\n this._hasPointerCapture = enabled;\n const cssValue = enabled ? 'none' : '';\n\n Object.assign(this._element.style, {\n touchAction: cssValue,\n userSelect: cssValue,\n });\n\n enabled\n ? this._element.setPointerCapture(this._id)\n : this._element.releasePointerCapture(this._id);\n\n this._setDragCancelListener(enabled);\n\n // Toggle additional events\n for (const type of additionalEvents) {\n enabled\n ? this._host.addEventListener(type, this)\n : this._host.removeEventListener(type, this);\n }\n }\n\n private _updateMatcher(event: PointerEvent) {\n if (!this._options.matchTarget) {\n return;\n }\n\n const match = getRoot(this._host)\n .elementsFromPoint(event.clientX, event.clientY)\n .find((element) => this._options.matchTarget!.call(this._host, element));\n\n if (match && !this._matchedElement) {\n this._matchedElement = match;\n this._options.enter?.call(this._host, {\n event,\n state: this._stateParameters,\n });\n return;\n }\n\n if (!match && this._matchedElement) {\n this._options.leave?.call(this._host, {\n event,\n state: this._stateParameters,\n });\n this._matchedElement = null;\n return;\n }\n\n if (match && match === this._matchedElement) {\n this._options.over?.call(this._host, {\n event,\n state: this._stateParameters,\n });\n }\n }\n\n private _updatePosition({ clientX, clientY }: PointerEvent): void {\n const { x, y } = this._state.offset;\n const { x: layerX, y: layerY } = this._isDeferred\n ? this._layer.getBoundingClientRect()\n : this._state.initial;\n\n const posX = this._hasSnapping ? clientX - layerX : clientX - layerX + x;\n const posY = this._hasSnapping ? clientY - layerY : clientY - layerY + y;\n\n this._state.position = { x: posX, y: posY };\n }\n\n private _updatePointerState({ clientX, clientY }: PointerEvent): void {\n const state = this._state.pointerState;\n\n state.previous = { ...state.current };\n state.current = { x: clientX, y: clientY };\n\n const dx = state.current.x - state.previous.x;\n const dy = state.current.y - state.previous.y;\n\n if (Math.abs(dx) >= Math.abs(dy)) {\n const swapHorizontal = isLTR(this._host) ? dx >= 0 : dx <= 0;\n state.direction = swapHorizontal ? 'end' : 'start';\n } else {\n state.direction = dy >= 0 ? 'bottom' : 'top';\n }\n }\n\n private _assignPosition(element: HTMLElement): void {\n element.style.transform = `translate3d(${roundByDPR(this._state.position.x)}px,${roundByDPR(this._state.position.y)}px,0)`;\n }\n\n private _createDragGhost(): void {\n if (!this._isDeferred) {\n return;\n }\n\n this._ghost =\n this._options.ghost?.call(this._host) ??\n createDefaultDragGhost(this._host.getBoundingClientRect());\n\n this._layer.append(this._ghost);\n }\n\n private _removeGhost(): void {\n this._ghost?.remove();\n this._ghost = null;\n }\n\n private _shouldSkip(event: PointerEvent): boolean {\n return (\n Boolean(event.button) ||\n this._options.skip?.call(this._host, event) ||\n !findElementFromEventPath((e) => e === this._element, event)\n );\n }\n}\n\nfunction createDefaultDragGhost({ x, y, width, height }: DOMRect): HTMLElement {\n const element = document.createElement('div');\n\n Object.assign(element.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`,\n width: `${width}px`,\n height: `${height}px`,\n zIndex: 1000,\n background: 'gold',\n });\n\n return element;\n}\n\n/**\n * Adds a drag and drop controller to the given host\n */\nexport function addDragController(\n host: ReactiveControllerHost & LitElement,\n options?: DragControllerConfiguration\n): DragController {\n return new DragController(host, options);\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import type { PopoverScrollStrategy } from '../../types.js';
2
3
  type RootScrollControllerConfig = {
3
4
  hideCallback?: () => void;
4
5
  resetListeners?: boolean;
@@ -6,7 +7,7 @@ type RootScrollControllerConfig = {
6
7
  type RootScrollControllerHost = ReactiveControllerHost & {
7
8
  open: boolean;
8
9
  hide(): void;
9
- scrollStrategy?: 'scroll' | 'close' | 'block';
10
+ scrollStrategy?: PopoverScrollStrategy;
10
11
  };
11
12
  declare class RootScrollController implements ReactiveController {
12
13
  private readonly host;
@@ -1 +1 @@
1
- {"version":3,"file":"root-scroll.js","sourceRoot":"","sources":["../../../../src/components/common/controllers/root-scroll.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from 'lit';\n\ntype RootScrollControllerConfig = {\n hideCallback?: () => void;\n resetListeners?: boolean;\n};\n\ntype RootScrollControllerHost = ReactiveControllerHost & {\n open: boolean;\n hide(): void;\n scrollStrategy?: 'scroll' | 'close' | 'block';\n};\n\ntype ScrollRecord = { scrollTop: number; scrollLeft: number };\n\nclass RootScrollController implements ReactiveController {\n private _cache: WeakMap<Element, ScrollRecord>;\n\n constructor(\n private readonly host: RootScrollControllerHost,\n private config?: RootScrollControllerConfig\n ) {\n this._cache = new WeakMap();\n this.host.addController(this);\n }\n\n private configureListeners() {\n this.host.open ? this.addEventListeners() : this.removeEventListeners();\n }\n\n private hide() {\n this.config?.hideCallback\n ? this.config.hideCallback.call(this.host)\n : this.host.hide();\n }\n\n private addEventListeners() {\n if (this.host.scrollStrategy !== 'scroll') {\n document.addEventListener('scroll', this, { capture: true });\n }\n }\n\n private removeEventListeners() {\n document.removeEventListener('scroll', this, { capture: true });\n this._cache = new WeakMap();\n }\n\n public handleEvent(event: Event) {\n this.host.scrollStrategy === 'close' ? this.hide() : this._block(event);\n }\n\n private _block(event: Event) {\n event.preventDefault();\n const element = event.target as Element;\n const cache = this._cache;\n\n if (!cache.has(element)) {\n cache.set(element, {\n scrollTop: element.firstElementChild?.scrollTop ?? element.scrollTop,\n scrollLeft: element.firstElementChild?.scrollLeft ?? element.scrollLeft,\n });\n }\n\n const record = cache.get(element)!;\n Object.assign(element, record);\n\n if (element.firstElementChild) {\n Object.assign(element.firstElementChild, record);\n }\n }\n\n public update(config?: RootScrollControllerConfig) {\n if (config) {\n this.config = { ...this.config, ...config };\n }\n\n if (config?.resetListeners) {\n this.removeEventListeners();\n }\n\n this.configureListeners();\n }\n\n public hostConnected() {\n this.configureListeners();\n }\n\n public hostDisconnected() {\n this.removeEventListeners();\n }\n}\n\nexport function addRootScrollHandler(\n host: RootScrollControllerHost,\n config?: RootScrollControllerConfig\n) {\n return new RootScrollController(host, config);\n}\n"]}
1
+ {"version":3,"file":"root-scroll.js","sourceRoot":"","sources":["../../../../src/components/common/controllers/root-scroll.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type { PopoverScrollStrategy } from '../../types.js';\n\ntype RootScrollControllerConfig = {\n hideCallback?: () => void;\n resetListeners?: boolean;\n};\n\ntype RootScrollControllerHost = ReactiveControllerHost & {\n open: boolean;\n hide(): void;\n scrollStrategy?: PopoverScrollStrategy;\n};\n\ntype ScrollRecord = { scrollTop: number; scrollLeft: number };\n\nclass RootScrollController implements ReactiveController {\n private _cache: WeakMap<Element, ScrollRecord>;\n\n constructor(\n private readonly host: RootScrollControllerHost,\n private config?: RootScrollControllerConfig\n ) {\n this._cache = new WeakMap();\n this.host.addController(this);\n }\n\n private configureListeners() {\n this.host.open ? this.addEventListeners() : this.removeEventListeners();\n }\n\n private hide() {\n this.config?.hideCallback\n ? this.config.hideCallback.call(this.host)\n : this.host.hide();\n }\n\n private addEventListeners() {\n if (this.host.scrollStrategy !== 'scroll') {\n document.addEventListener('scroll', this, { capture: true });\n }\n }\n\n private removeEventListeners() {\n document.removeEventListener('scroll', this, { capture: true });\n this._cache = new WeakMap();\n }\n\n public handleEvent(event: Event) {\n this.host.scrollStrategy === 'close' ? this.hide() : this._block(event);\n }\n\n private _block(event: Event) {\n event.preventDefault();\n const element = event.target as Element;\n const cache = this._cache;\n\n if (!cache.has(element)) {\n cache.set(element, {\n scrollTop: element.firstElementChild?.scrollTop ?? element.scrollTop,\n scrollLeft: element.firstElementChild?.scrollLeft ?? element.scrollLeft,\n });\n }\n\n const record = cache.get(element)!;\n Object.assign(element, record);\n\n if (element.firstElementChild) {\n Object.assign(element.firstElementChild, record);\n }\n }\n\n public update(config?: RootScrollControllerConfig) {\n if (config) {\n this.config = { ...this.config, ...config };\n }\n\n if (config?.resetListeners) {\n this.removeEventListeners();\n }\n\n this.configureListeners();\n }\n\n public hostConnected() {\n this.configureListeners();\n }\n\n public hostDisconnected() {\n this.removeEventListeners();\n }\n}\n\nexport function addRootScrollHandler(\n host: RootScrollControllerHost,\n config?: RootScrollControllerConfig\n) {\n return new RootScrollController(host, config);\n}\n"]}
@@ -63,6 +63,7 @@ import IgcTextareaComponent from '../../textarea/textarea.js';
63
63
  import IgcTileManagerComponent from '../../tile-manager/tile-manager.js';
64
64
  import IgcTileComponent from '../../tile-manager/tile.js';
65
65
  import IgcToastComponent from '../../toast/toast.js';
66
+ import IgcTooltipComponent from '../../tooltip/tooltip.js';
66
67
  import IgcTreeItemComponent from '../../tree/tree-item.js';
67
68
  import IgcTreeComponent from '../../tree/tree.js';
68
69
  import { defineComponents } from './defineComponents.js';
@@ -134,6 +135,7 @@ const allComponents = [
134
135
  IgcTextareaComponent,
135
136
  IgcTileComponent,
136
137
  IgcTileManagerComponent,
138
+ IgcTooltipComponent,
137
139
  ];
138
140
  export function defineAllComponents() {
139
141
  defineComponents(...allComponents);
@@ -1 +1 @@
1
- {"version":3,"file":"defineAllComponents.js","sourceRoot":"","sources":["../../../../src/components/common/definitions/defineAllComponents.ts"],"names":[],"mappings":"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","sourcesContent":["import IgcAccordionComponent from '../../accordion/accordion.js';\nimport IgcAvatarComponent from '../../avatar/avatar.js';\nimport IgcBadgeComponent from '../../badge/badge.js';\nimport IgcBannerComponent from '../../banner/banner.js';\nimport IgcButtonGroupComponent from '../../button-group/button-group.js';\nimport IgcToggleButtonComponent from '../../button-group/toggle-button.js';\nimport IgcButtonComponent from '../../button/button.js';\nimport IgcIconButtonComponent from '../../button/icon-button.js';\nimport IgcCalendarComponent from '../../calendar/calendar.js';\nimport IgcCardActionsComponent from '../../card/card.actions.js';\nimport IgcCardContentComponent from '../../card/card.content.js';\nimport IgcCardHeaderComponent from '../../card/card.header.js';\nimport IgcCardComponent from '../../card/card.js';\nimport IgcCardMediaComponent from '../../card/card.media.js';\nimport IgcCarouselIndicatorComponent from '../../carousel/carousel-indicator.js';\nimport IgcCarouselSlideComponent from '../../carousel/carousel-slide.js';\nimport IgcCarouselComponent from '../../carousel/carousel.js';\nimport IgcCheckboxComponent from '../../checkbox/checkbox.js';\nimport IgcSwitchComponent from '../../checkbox/switch.js';\nimport IgcChipComponent from '../../chip/chip.js';\nimport IgcComboComponent from '../../combo/combo.js';\nimport IgcDatePickerComponent from '../../date-picker/date-picker.js';\nimport IgcDateTimeInputComponent from '../../date-time-input/date-time-input.js';\nimport IgcDialogComponent from '../../dialog/dialog.js';\nimport IgcDividerComponent from '../../divider/divider.js';\nimport IgcDropdownGroupComponent from '../../dropdown/dropdown-group.js';\nimport IgcDropdownHeaderComponent from '../../dropdown/dropdown-header.js';\nimport IgcDropdownItemComponent from '../../dropdown/dropdown-item.js';\nimport IgcDropdownComponent from '../../dropdown/dropdown.js';\nimport IgcExpansionPanelComponent from '../../expansion-panel/expansion-panel.js';\nimport IgcIconComponent from '../../icon/icon.js';\nimport IgcInputComponent from '../../input/input.js';\nimport IgcListHeaderComponent from '../../list/list-header.js';\nimport IgcListItemComponent from '../../list/list-item.js';\nimport IgcListComponent from '../../list/list.js';\nimport IgcMaskInputComponent from '../../mask-input/mask-input.js';\nimport IgcNavDrawerHeaderItemComponent from '../../nav-drawer/nav-drawer-header-item.js';\nimport IgcNavDrawerItemComponent from '../../nav-drawer/nav-drawer-item.js';\nimport IgcNavDrawerComponent from '../../nav-drawer/nav-drawer.js';\nimport IgcNavbarComponent from '../../navbar/navbar.js';\nimport IgcCircularGradientComponent from '../../progress/circular-gradient.js';\nimport IgcCircularProgressComponent from '../../progress/circular-progress.js';\nimport IgcLinearProgressComponent from '../../progress/linear-progress.js';\nimport IgcRadioGroupComponent from '../../radio-group/radio-group.js';\nimport IgcRadioComponent from '../../radio/radio.js';\nimport IgcRatingSymbolComponent from '../../rating/rating-symbol.js';\nimport IgcRatingComponent from '../../rating/rating.js';\nimport IgcRippleComponent from '../../ripple/ripple.js';\nimport IgcSelectGroupComponent from '../../select/select-group.js';\nimport IgcSelectHeaderComponent from '../../select/select-header.js';\nimport IgcSelectItemComponent from '../../select/select-item.js';\nimport IgcSelectComponent from '../../select/select.js';\nimport IgcRangeSliderComponent from '../../slider/range-slider.js';\nimport IgcSliderLabelComponent from '../../slider/slider-label.js';\nimport IgcSliderComponent from '../../slider/slider.js';\nimport IgcSnackbarComponent from '../../snackbar/snackbar.js';\nimport IgcStepComponent from '../../stepper/step.js';\nimport IgcStepperComponent from '../../stepper/stepper.js';\nimport IgcTabPanelComponent from '../../tabs/tab-panel.js';\nimport IgcTabComponent from '../../tabs/tab.js';\nimport IgcTabsComponent from '../../tabs/tabs.js';\nimport IgcTextareaComponent from '../../textarea/textarea.js';\nimport IgcTileManagerComponent from '../../tile-manager/tile-manager.js';\nimport IgcTileComponent from '../../tile-manager/tile.js';\nimport IgcToastComponent from '../../toast/toast.js';\nimport IgcTreeItemComponent from '../../tree/tree-item.js';\nimport IgcTreeComponent from '../../tree/tree.js';\nimport { defineComponents } from './defineComponents.js';\nimport type { IgniteComponent } from './register.js';\n\nconst allComponents: IgniteComponent[] = [\n IgcAvatarComponent,\n IgcAccordionComponent,\n IgcBadgeComponent,\n IgcBannerComponent,\n IgcButtonComponent,\n IgcIconButtonComponent,\n IgcToggleButtonComponent,\n IgcButtonGroupComponent,\n IgcCalendarComponent,\n IgcCardActionsComponent,\n IgcCardContentComponent,\n IgcCardHeaderComponent,\n IgcCardMediaComponent,\n IgcCardComponent,\n IgcCarouselComponent,\n IgcCarouselIndicatorComponent,\n IgcCarouselSlideComponent,\n IgcCheckboxComponent,\n IgcChipComponent,\n IgcComboComponent,\n IgcDatePickerComponent,\n IgcDropdownComponent,\n IgcDropdownGroupComponent,\n IgcDropdownHeaderComponent,\n IgcDropdownItemComponent,\n IgcDialogComponent,\n IgcDividerComponent,\n IgcSwitchComponent,\n IgcExpansionPanelComponent,\n IgcIconComponent,\n IgcInputComponent,\n IgcListHeaderComponent,\n IgcListItemComponent,\n IgcListComponent,\n IgcMaskInputComponent,\n IgcNavDrawerHeaderItemComponent,\n IgcNavDrawerItemComponent,\n IgcNavDrawerComponent,\n IgcNavbarComponent,\n IgcRadioComponent,\n IgcRadioGroupComponent,\n IgcRatingComponent,\n IgcRatingSymbolComponent,\n IgcRippleComponent,\n IgcSelectGroupComponent,\n IgcSelectHeaderComponent,\n IgcSelectItemComponent,\n IgcSelectComponent,\n IgcTreeComponent,\n IgcTreeItemComponent,\n IgcSliderComponent,\n IgcToastComponent,\n IgcSliderLabelComponent,\n IgcRangeSliderComponent,\n IgcTabsComponent,\n IgcTabComponent,\n IgcTabPanelComponent,\n IgcCircularProgressComponent,\n IgcLinearProgressComponent,\n IgcCircularGradientComponent,\n IgcSnackbarComponent,\n IgcDateTimeInputComponent,\n IgcStepperComponent,\n IgcStepComponent,\n IgcTextareaComponent,\n IgcTileComponent,\n IgcTileManagerComponent,\n];\n\nexport function defineAllComponents() {\n defineComponents(...allComponents);\n}\n"]}
1
+ {"version":3,"file":"defineAllComponents.js","sourceRoot":"","sources":["../../../../src/components/common/definitions/defineAllComponents.ts"],"names":[],"mappings":"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","sourcesContent":["import IgcAccordionComponent from '../../accordion/accordion.js';\nimport IgcAvatarComponent from '../../avatar/avatar.js';\nimport IgcBadgeComponent from '../../badge/badge.js';\nimport IgcBannerComponent from '../../banner/banner.js';\nimport IgcButtonGroupComponent from '../../button-group/button-group.js';\nimport IgcToggleButtonComponent from '../../button-group/toggle-button.js';\nimport IgcButtonComponent from '../../button/button.js';\nimport IgcIconButtonComponent from '../../button/icon-button.js';\nimport IgcCalendarComponent from '../../calendar/calendar.js';\nimport IgcCardActionsComponent from '../../card/card.actions.js';\nimport IgcCardContentComponent from '../../card/card.content.js';\nimport IgcCardHeaderComponent from '../../card/card.header.js';\nimport IgcCardComponent from '../../card/card.js';\nimport IgcCardMediaComponent from '../../card/card.media.js';\nimport IgcCarouselIndicatorComponent from '../../carousel/carousel-indicator.js';\nimport IgcCarouselSlideComponent from '../../carousel/carousel-slide.js';\nimport IgcCarouselComponent from '../../carousel/carousel.js';\nimport IgcCheckboxComponent from '../../checkbox/checkbox.js';\nimport IgcSwitchComponent from '../../checkbox/switch.js';\nimport IgcChipComponent from '../../chip/chip.js';\nimport IgcComboComponent from '../../combo/combo.js';\nimport IgcDatePickerComponent from '../../date-picker/date-picker.js';\nimport IgcDateTimeInputComponent from '../../date-time-input/date-time-input.js';\nimport IgcDialogComponent from '../../dialog/dialog.js';\nimport IgcDividerComponent from '../../divider/divider.js';\nimport IgcDropdownGroupComponent from '../../dropdown/dropdown-group.js';\nimport IgcDropdownHeaderComponent from '../../dropdown/dropdown-header.js';\nimport IgcDropdownItemComponent from '../../dropdown/dropdown-item.js';\nimport IgcDropdownComponent from '../../dropdown/dropdown.js';\nimport IgcExpansionPanelComponent from '../../expansion-panel/expansion-panel.js';\nimport IgcIconComponent from '../../icon/icon.js';\nimport IgcInputComponent from '../../input/input.js';\nimport IgcListHeaderComponent from '../../list/list-header.js';\nimport IgcListItemComponent from '../../list/list-item.js';\nimport IgcListComponent from '../../list/list.js';\nimport IgcMaskInputComponent from '../../mask-input/mask-input.js';\nimport IgcNavDrawerHeaderItemComponent from '../../nav-drawer/nav-drawer-header-item.js';\nimport IgcNavDrawerItemComponent from '../../nav-drawer/nav-drawer-item.js';\nimport IgcNavDrawerComponent from '../../nav-drawer/nav-drawer.js';\nimport IgcNavbarComponent from '../../navbar/navbar.js';\nimport IgcCircularGradientComponent from '../../progress/circular-gradient.js';\nimport IgcCircularProgressComponent from '../../progress/circular-progress.js';\nimport IgcLinearProgressComponent from '../../progress/linear-progress.js';\nimport IgcRadioGroupComponent from '../../radio-group/radio-group.js';\nimport IgcRadioComponent from '../../radio/radio.js';\nimport IgcRatingSymbolComponent from '../../rating/rating-symbol.js';\nimport IgcRatingComponent from '../../rating/rating.js';\nimport IgcRippleComponent from '../../ripple/ripple.js';\nimport IgcSelectGroupComponent from '../../select/select-group.js';\nimport IgcSelectHeaderComponent from '../../select/select-header.js';\nimport IgcSelectItemComponent from '../../select/select-item.js';\nimport IgcSelectComponent from '../../select/select.js';\nimport IgcRangeSliderComponent from '../../slider/range-slider.js';\nimport IgcSliderLabelComponent from '../../slider/slider-label.js';\nimport IgcSliderComponent from '../../slider/slider.js';\nimport IgcSnackbarComponent from '../../snackbar/snackbar.js';\nimport IgcStepComponent from '../../stepper/step.js';\nimport IgcStepperComponent from '../../stepper/stepper.js';\nimport IgcTabPanelComponent from '../../tabs/tab-panel.js';\nimport IgcTabComponent from '../../tabs/tab.js';\nimport IgcTabsComponent from '../../tabs/tabs.js';\nimport IgcTextareaComponent from '../../textarea/textarea.js';\nimport IgcTileManagerComponent from '../../tile-manager/tile-manager.js';\nimport IgcTileComponent from '../../tile-manager/tile.js';\nimport IgcToastComponent from '../../toast/toast.js';\nimport IgcTooltipComponent from '../../tooltip/tooltip.js';\nimport IgcTreeItemComponent from '../../tree/tree-item.js';\nimport IgcTreeComponent from '../../tree/tree.js';\nimport { defineComponents } from './defineComponents.js';\nimport type { IgniteComponent } from './register.js';\n\nconst allComponents: IgniteComponent[] = [\n IgcAvatarComponent,\n IgcAccordionComponent,\n IgcBadgeComponent,\n IgcBannerComponent,\n IgcButtonComponent,\n IgcIconButtonComponent,\n IgcToggleButtonComponent,\n IgcButtonGroupComponent,\n IgcCalendarComponent,\n IgcCardActionsComponent,\n IgcCardContentComponent,\n IgcCardHeaderComponent,\n IgcCardMediaComponent,\n IgcCardComponent,\n IgcCarouselComponent,\n IgcCarouselIndicatorComponent,\n IgcCarouselSlideComponent,\n IgcCheckboxComponent,\n IgcChipComponent,\n IgcComboComponent,\n IgcDatePickerComponent,\n IgcDropdownComponent,\n IgcDropdownGroupComponent,\n IgcDropdownHeaderComponent,\n IgcDropdownItemComponent,\n IgcDialogComponent,\n IgcDividerComponent,\n IgcSwitchComponent,\n IgcExpansionPanelComponent,\n IgcIconComponent,\n IgcInputComponent,\n IgcListHeaderComponent,\n IgcListItemComponent,\n IgcListComponent,\n IgcMaskInputComponent,\n IgcNavDrawerHeaderItemComponent,\n IgcNavDrawerItemComponent,\n IgcNavDrawerComponent,\n IgcNavbarComponent,\n IgcRadioComponent,\n IgcRadioGroupComponent,\n IgcRatingComponent,\n IgcRatingSymbolComponent,\n IgcRippleComponent,\n IgcSelectGroupComponent,\n IgcSelectHeaderComponent,\n IgcSelectItemComponent,\n IgcSelectComponent,\n IgcTreeComponent,\n IgcTreeItemComponent,\n IgcSliderComponent,\n IgcToastComponent,\n IgcSliderLabelComponent,\n IgcRangeSliderComponent,\n IgcTabsComponent,\n IgcTabComponent,\n IgcTabPanelComponent,\n IgcCircularProgressComponent,\n IgcLinearProgressComponent,\n IgcCircularGradientComponent,\n IgcSnackbarComponent,\n IgcDateTimeInputComponent,\n IgcStepperComponent,\n IgcStepComponent,\n IgcTextareaComponent,\n IgcTileComponent,\n IgcTileManagerComponent,\n IgcTooltipComponent,\n];\n\nexport function defineAllComponents() {\n defineComponents(...allComponents);\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
2
  import type { addAnimationController } from '../../../animations/player.js';
3
+ import type { AbsolutePosition } from '../../types.js';
3
4
  export declare abstract class IgcBaseAlertLikeComponent extends LitElement {
4
5
  private _internals;
5
6
  protected _autoHideTimeout?: number;
@@ -23,7 +24,7 @@ export declare abstract class IgcBaseAlertLikeComponent extends LitElement {
23
24
  * Sets the position of the component in the viewport.
24
25
  * @attr
25
26
  */
26
- position: 'bottom' | 'middle' | 'top';
27
+ position: AbsolutePosition;
27
28
  protected displayTimeChange(): void;
28
29
  protected keepOpenChange(): void;
29
30
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/alert.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport type { addAnimationController } from '../../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../../animations/presets/fade/index.js';\nimport { watch } from '../decorators/watch.js';\n\n// It'd be better to have this as a mixin rather than a base class once the analyzer\n// knows how to resolve multiple mixin chains\n\nexport abstract class IgcBaseAlertLikeComponent extends LitElement {\n private _internals: ElementInternals;\n protected _autoHideTimeout?: number;\n\n declare protected abstract _animationPlayer: ReturnType<\n typeof addAnimationController\n >;\n\n /**\n * Whether the component is in shown state.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Determines the duration in ms in which the component will be visible.\n * @attr display-time\n */\n @property({ type: Number, attribute: 'display-time' })\n public displayTime = 4000;\n\n /**\n * Determines whether the component should close after the `displayTime` is over.\n * @attr keep-open\n */\n @property({ type: Boolean, reflect: true, attribute: 'keep-open' })\n public keepOpen = false;\n\n /**\n * Sets the position of the component in the viewport.\n * @attr\n */\n @property({ reflect: true })\n public position: 'bottom' | 'middle' | 'top' = 'bottom';\n\n @watch('displayTime', { waitUntilFirstUpdate: true })\n protected displayTimeChange() {\n this.setAutoHideTimer();\n }\n\n @watch('keepOpen', { waitUntilFirstUpdate: true })\n protected keepOpenChange() {\n clearTimeout(this._autoHideTimeout);\n }\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n\n this._internals.role = 'status';\n this._internals.ariaLive = 'polite';\n }\n\n private async toggleAnimation(state: 'open' | 'close') {\n const animation = state === 'open' ? fadeIn : fadeOut;\n\n const [_, event] = await Promise.all([\n this._animationPlayer.stopAll(),\n this._animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n private setAutoHideTimer() {\n clearTimeout(this._autoHideTimeout);\n if (this.open && this.displayTime > 0 && !this.keepOpen) {\n this._autoHideTimeout = setTimeout(() => this.hide(), this.displayTime);\n }\n }\n\n /** Opens the component. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n await this.toggleAnimation('open');\n this.setAutoHideTimer();\n return true;\n }\n\n /** Closes the component. */\n public async hide(): Promise<boolean> {\n if (!this.open) {\n return false;\n }\n\n clearTimeout(this._autoHideTimeout);\n await this.toggleAnimation('close');\n this.open = false;\n return true;\n }\n\n /** Toggles the open state of the component. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n}\n"]}
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/alert.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport type { addAnimationController } from '../../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../../animations/presets/fade/index.js';\nimport type { AbsolutePosition } from '../../types.js';\nimport { watch } from '../decorators/watch.js';\n\n// It'd be better to have this as a mixin rather than a base class once the analyzer\n// knows how to resolve multiple mixin chains\n\nexport abstract class IgcBaseAlertLikeComponent extends LitElement {\n private _internals: ElementInternals;\n protected _autoHideTimeout?: number;\n\n declare protected abstract _animationPlayer: ReturnType<\n typeof addAnimationController\n >;\n\n /**\n * Whether the component is in shown state.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Determines the duration in ms in which the component will be visible.\n * @attr display-time\n */\n @property({ type: Number, attribute: 'display-time' })\n public displayTime = 4000;\n\n /**\n * Determines whether the component should close after the `displayTime` is over.\n * @attr keep-open\n */\n @property({ type: Boolean, reflect: true, attribute: 'keep-open' })\n public keepOpen = false;\n\n /**\n * Sets the position of the component in the viewport.\n * @attr\n */\n @property({ reflect: true })\n public position: AbsolutePosition = 'bottom';\n\n @watch('displayTime', { waitUntilFirstUpdate: true })\n protected displayTimeChange() {\n this.setAutoHideTimer();\n }\n\n @watch('keepOpen', { waitUntilFirstUpdate: true })\n protected keepOpenChange() {\n clearTimeout(this._autoHideTimeout);\n }\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n\n this._internals.role = 'status';\n this._internals.ariaLive = 'polite';\n }\n\n private async toggleAnimation(state: 'open' | 'close') {\n const animation = state === 'open' ? fadeIn : fadeOut;\n\n const [_, event] = await Promise.all([\n this._animationPlayer.stopAll(),\n this._animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n private setAutoHideTimer() {\n clearTimeout(this._autoHideTimeout);\n if (this.open && this.displayTime > 0 && !this.keepOpen) {\n this._autoHideTimeout = setTimeout(() => this.hide(), this.displayTime);\n }\n }\n\n /** Opens the component. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n await this.toggleAnimation('open');\n this.setAutoHideTimer();\n return true;\n }\n\n /** Closes the component. */\n public async hide(): Promise<boolean> {\n if (!this.open) {\n return false;\n }\n\n clearTimeout(this._autoHideTimeout);\n await this.toggleAnimation('close');\n this.open = false;\n return true;\n }\n\n /** Toggles the open state of the component. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n}\n"]}
@@ -56,7 +56,7 @@ function BaseFormAssociated(base) {
56
56
  this.invalid = true;
57
57
  }
58
58
  _setInvalidState() {
59
- if (this.hasUpdated || this._dirty) {
59
+ if (this._dirty || !this._pristine) {
60
60
  this.invalid = !this.checkValidity();
61
61
  }
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"associated.js","sourceRoot":"","sources":["../../../../../src/components/common/mixins/forms/associated.ts"],"names":[],"mappings":"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","sourcesContent":["import type { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { isFunction, isString } from '../../util.js';\nimport type { Validator } from '../../validators.js';\nimport type { Constructor } from '../constructor.js';\nimport type { FormValue } from './form-value.js';\nimport type {\n FormAssociatedCheckboxElementInterface,\n FormAssociatedElementInterface,\n FormRestoreMode,\n FormValueType,\n} from './types.js';\n\nfunction BaseFormAssociated<T extends Constructor<LitElement>>(base: T) {\n class BaseFormAssociatedElement extends base {\n public static readonly formAssociated = true;\n\n private __internals: ElementInternals;\n protected _formValue!: FormValue<unknown>;\n\n protected _disabled = false;\n protected _invalid = false;\n protected _dirty = false;\n protected _pristine = true;\n\n protected get __validators(): Validator[] {\n return [];\n }\n\n /**\n * The name attribute of the control.\n * @attr\n */\n @property({ reflect: true })\n public name!: string;\n\n /**\n * The disabled state of the component.\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set disabled(value: boolean) {\n this._disabled = value;\n this.toggleAttribute('disabled', Boolean(this._disabled));\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Sets the control into invalid state (visual state only).\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set invalid(value: boolean) {\n this._invalid = value;\n this.toggleAttribute('invalid', Boolean(this._invalid));\n }\n\n public get invalid(): boolean {\n return this._invalid;\n }\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null {\n return this.__internals.form;\n }\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState {\n return this.__internals.validity;\n }\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string {\n return this.__internals.validationMessage;\n }\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean {\n return this.__internals.willValidate;\n }\n\n constructor(...args: any[]) {\n super(args);\n this.__internals = this.attachInternals();\n this.addEventListener('invalid', this._handleInvalid);\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this._dirty = false;\n this._updateValidity();\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this.invalid = true;\n }\n\n private _setInvalidState(): void {\n if (this.hasUpdated || this._dirty) {\n this.invalid = !this.checkValidity();\n }\n }\n\n private __runValidators() {\n const validity: ValidityStateFlags = {};\n let message = '';\n\n for (const validator of this.__validators) {\n const isValid = validator.isValid(this);\n\n validity[validator.key] = !isValid;\n\n if (!isValid) {\n message = isFunction(validator.message)\n ? validator.message(this)\n : validator.message;\n }\n }\n\n return { validity, message };\n }\n\n protected _setDefaultValue(current: string | null): void {\n this._formValue.defaultValue = current;\n }\n\n protected _restoreDefaultValue(): void {\n this._formValue.setValueAndFormState(this._formValue.defaultValue);\n this._updateValidity();\n this.requestUpdate();\n }\n\n protected _validate(message?: string): void {\n this._updateValidity(message);\n this._setInvalidState();\n }\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected _updateValidity(error?: string) {\n let { validity, message } = this.__runValidators();\n const hasCustomError = this.validity.customError;\n\n // valueMissing has precedence over the other validators aside from customError\n if (validity.valueMissing) {\n validity = {\n valueMissing: true,\n customError: hasCustomError,\n };\n }\n\n if (hasCustomError && error === undefined) {\n // Internal validation cycle after the user has called setCustomValidity()\n // with some message. Keep the customError flag and the passed in message.\n validity.customError = true;\n message = this.validationMessage;\n } else if (hasCustomError && error === '') {\n // setCustomValidity with an empty message.\n validity.customError = false;\n } else if (error && error !== '') {\n // setCustomValidity with a message.\n validity.customError = true;\n message = error;\n }\n\n this.__internals.setValidity(validity, message);\n }\n\n protected _setFormValue(value: FormValueType, state?: FormValueType): void {\n this._pristine = false;\n this.__internals.setFormValue(value, state);\n }\n\n protected formAssociatedCallback(_form: HTMLFormElement): void {}\n\n protected formDisabledCallback(state: boolean): void {\n this._disabled = state;\n this.requestUpdate();\n }\n\n protected formResetCallback(): void {\n this._restoreDefaultValue();\n this._pristine = true;\n this._dirty = false;\n this.invalid = false;\n }\n\n /* c8 ignore next 4 */\n protected formStateRestoreCallback(\n _state: FormValueType,\n _mode: FormRestoreMode\n ): void {}\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity() {\n const state = this.__internals.reportValidity();\n this.invalid = !state;\n return state;\n }\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity() {\n const state = this.__internals.checkValidity();\n this.invalid = !state;\n return state;\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this._updateValidity(message);\n }\n }\n return BaseFormAssociatedElement as Constructor<BaseFormAssociatedElement> &\n T;\n}\n\n/**\n * Mixes the passed in class and turns it into a form associated custom element.\n */\nexport function FormAssociatedMixin<T extends Constructor<LitElement>>(\n base: T\n) {\n class FormAssociatedElement extends BaseFormAssociated(base) {\n /* blazorCSSuppress */\n @property({ attribute: false })\n public set defaultValue(value: unknown) {\n this._formValue.defaultValue = value;\n\n if (this._pristine && 'value' in this) {\n this.value = this.defaultValue;\n this._pristine = true;\n this._validate();\n }\n }\n\n public get defaultValue() {\n return this._formValue.defaultValue;\n }\n\n public override attributeChangedCallback(\n name: string,\n prev: string | null,\n current: string | null\n ): void {\n super.attributeChangedCallback(name, prev, current);\n if (name === 'value') {\n this._setDefaultValue(current);\n }\n }\n }\n\n return FormAssociatedElement as unknown as Constructor<FormAssociatedElementInterface> &\n T;\n}\n\n/**\n * Mixes the passed in class and turns it into a form associated custom element.\n */\nexport function FormAssociatedCheckboxMixin<T extends Constructor<LitElement>>(\n base: T\n) {\n class FormAssociatedCheckboxElement extends BaseFormAssociated(base) {\n /* blazorCSSuppress */\n @property({ attribute: false })\n public set defaultChecked(value: boolean) {\n this._formValue.defaultValue = value;\n\n if (this._pristine && 'checked' in this) {\n this.checked = this.defaultChecked;\n this._pristine = true;\n this._validate();\n }\n }\n\n public get defaultChecked(): boolean {\n return this._formValue.defaultValue as boolean;\n }\n\n public override attributeChangedCallback(\n name: string,\n prev: string | null,\n current: string | null\n ): void {\n super.attributeChangedCallback(name, prev, current);\n if (name === 'checked') {\n this._setDefaultValue(isString(current) ? 'true' : null);\n }\n }\n }\n\n return FormAssociatedCheckboxElement as unknown as Constructor<FormAssociatedCheckboxElementInterface> &\n T;\n}\n"]}
1
+ {"version":3,"file":"associated.js","sourceRoot":"","sources":["../../../../../src/components/common/mixins/forms/associated.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAWrD,SAAS,kBAAkB,CAAoC,IAAO;IACpE,MAAM,yBAA0B,SAAQ,IAAI;QAW1C,IAAc,YAAY;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QAeD,IAAW,QAAQ,CAAC,KAAc;YAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAW,QAAQ;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAQD,IAAW,OAAO,CAAC,KAAc;YAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAW,OAAO;YAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QAGD,IAAW,IAAI;YACb,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC/B,CAAC;QAMD,IAAW,QAAQ;YACjB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnC,CAAC;QAGD,IAAW,iBAAiB;YAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QAC5C,CAAC;QAMD,IAAW,YAAY;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;QACvC,CAAC;QAED,YAAY,GAAG,IAAW;YACxB,KAAK,CAAC,IAAI,CAAC,CAAC;YAzEJ,cAAS,GAAG,KAAK,CAAC;YAClB,aAAQ,GAAG,KAAK,CAAC;YACjB,WAAM,GAAG,KAAK,CAAC;YACf,cAAS,GAAG,IAAI,CAAC;YAuEzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QAEe,iBAAiB;YAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QAEO,cAAc,CAAC,KAAY;YACjC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QAEO,gBAAgB;YACtB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;QAEO,eAAe;YACrB,MAAM,QAAQ,GAAuB,EAAE,CAAC;YACxC,IAAI,OAAO,GAAG,EAAE,CAAC;YAEjB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAExC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;gBAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;wBACrC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;wBACzB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC;QAES,gBAAgB,CAAC,OAAsB;YAC/C,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC;QACzC,CAAC;QAES,oBAAoB;YAC5B,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;QAES,SAAS,CAAC,OAAgB;YAClC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAKS,eAAe,CAAC,KAAc;YACtC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACnD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAGjD,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC1B,QAAQ,GAAG;oBACT,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,cAAc;iBAC5B,CAAC;YACJ,CAAC;YAED,IAAI,cAAc,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAG1C,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,CAAC;iBAAM,IAAI,cAAc,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBAE1C,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;YAC/B,CAAC;iBAAM,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBAEjC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAES,aAAa,CAAC,KAAoB,EAAE,KAAqB;YACjE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QAES,sBAAsB,CAAC,KAAsB,IAAS,CAAC;QAEvD,oBAAoB,CAAC,KAAc;YAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;QAES,iBAAiB;YACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;QAGS,wBAAwB,CAChC,MAAqB,EACrB,KAAsB,IACf,CAAC;QAGH,cAAc;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAGM,aAAa;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAMM,iBAAiB,CAAC,OAAe;YACtC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;;IAnNsB,wCAAc,GAAG,IAAI,AAAP,CAAQ;IAmBtC;QADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2DACP;IAQrB;QADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6DAI1C;IAYD;QADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4DAI1C;IAwKH,OAAO,yBACJ,CAAC;AACN,CAAC;AAKD,MAAM,UAAU,mBAAmB,CACjC,IAAO;IAEP,MAAM,qBAAsB,SAAQ,kBAAkB,CAAC,IAAI,CAAC;QAG1D,IAAW,YAAY,CAAC,KAAc;YACpC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;YAErC,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAW,YAAY;YACrB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QACtC,CAAC;QAEe,wBAAwB,CACtC,IAAY,EACZ,IAAmB,EACnB,OAAsB;YAEtB,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF;IAxBC;QADC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;6DAS9B;IAkBH,OAAO,qBACJ,CAAC;AACN,CAAC;AAKD,MAAM,UAAU,2BAA2B,CACzC,IAAO;IAEP,MAAM,6BAA8B,SAAQ,kBAAkB,CAAC,IAAI,CAAC;QAGlE,IAAW,cAAc,CAAC,KAAc;YACtC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;YAErC,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;gBACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAW,cAAc;YACvB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAuB,CAAC;QACjD,CAAC;QAEe,wBAAwB,CACtC,IAAY,EACZ,IAAmB,EACnB,OAAsB;YAEtB,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;KACF;IAxBC;QADC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;uEAS9B;IAkBH,OAAO,6BACJ,CAAC;AACN,CAAC","sourcesContent":["import type { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { isFunction, isString } from '../../util.js';\nimport type { Validator } from '../../validators.js';\nimport type { Constructor } from '../constructor.js';\nimport type { FormValue } from './form-value.js';\nimport type {\n FormAssociatedCheckboxElementInterface,\n FormAssociatedElementInterface,\n FormRestoreMode,\n FormValueType,\n} from './types.js';\n\nfunction BaseFormAssociated<T extends Constructor<LitElement>>(base: T) {\n class BaseFormAssociatedElement extends base {\n public static readonly formAssociated = true;\n\n private __internals: ElementInternals;\n protected _formValue!: FormValue<unknown>;\n\n protected _disabled = false;\n protected _invalid = false;\n protected _dirty = false;\n protected _pristine = true;\n\n protected get __validators(): Validator[] {\n return [];\n }\n\n /**\n * The name attribute of the control.\n * @attr\n */\n @property({ reflect: true })\n public name!: string;\n\n /**\n * The disabled state of the component.\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set disabled(value: boolean) {\n this._disabled = value;\n this.toggleAttribute('disabled', Boolean(this._disabled));\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Sets the control into invalid state (visual state only).\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set invalid(value: boolean) {\n this._invalid = value;\n this.toggleAttribute('invalid', Boolean(this._invalid));\n }\n\n public get invalid(): boolean {\n return this._invalid;\n }\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null {\n return this.__internals.form;\n }\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState {\n return this.__internals.validity;\n }\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string {\n return this.__internals.validationMessage;\n }\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean {\n return this.__internals.willValidate;\n }\n\n constructor(...args: any[]) {\n super(args);\n this.__internals = this.attachInternals();\n this.addEventListener('invalid', this._handleInvalid);\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this._dirty = false;\n this._updateValidity();\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this.invalid = true;\n }\n\n private _setInvalidState(): void {\n if (this._dirty || !this._pristine) {\n this.invalid = !this.checkValidity();\n }\n }\n\n private __runValidators() {\n const validity: ValidityStateFlags = {};\n let message = '';\n\n for (const validator of this.__validators) {\n const isValid = validator.isValid(this);\n\n validity[validator.key] = !isValid;\n\n if (!isValid) {\n message = isFunction(validator.message)\n ? validator.message(this)\n : validator.message;\n }\n }\n\n return { validity, message };\n }\n\n protected _setDefaultValue(current: string | null): void {\n this._formValue.defaultValue = current;\n }\n\n protected _restoreDefaultValue(): void {\n this._formValue.setValueAndFormState(this._formValue.defaultValue);\n this._updateValidity();\n this.requestUpdate();\n }\n\n protected _validate(message?: string): void {\n this._updateValidity(message);\n this._setInvalidState();\n }\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected _updateValidity(error?: string) {\n let { validity, message } = this.__runValidators();\n const hasCustomError = this.validity.customError;\n\n // valueMissing has precedence over the other validators aside from customError\n if (validity.valueMissing) {\n validity = {\n valueMissing: true,\n customError: hasCustomError,\n };\n }\n\n if (hasCustomError && error === undefined) {\n // Internal validation cycle after the user has called setCustomValidity()\n // with some message. Keep the customError flag and the passed in message.\n validity.customError = true;\n message = this.validationMessage;\n } else if (hasCustomError && error === '') {\n // setCustomValidity with an empty message.\n validity.customError = false;\n } else if (error && error !== '') {\n // setCustomValidity with a message.\n validity.customError = true;\n message = error;\n }\n\n this.__internals.setValidity(validity, message);\n }\n\n protected _setFormValue(value: FormValueType, state?: FormValueType): void {\n this._pristine = false;\n this.__internals.setFormValue(value, state);\n }\n\n protected formAssociatedCallback(_form: HTMLFormElement): void {}\n\n protected formDisabledCallback(state: boolean): void {\n this._disabled = state;\n this.requestUpdate();\n }\n\n protected formResetCallback(): void {\n this._restoreDefaultValue();\n this._pristine = true;\n this._dirty = false;\n this.invalid = false;\n }\n\n /* c8 ignore next 4 */\n protected formStateRestoreCallback(\n _state: FormValueType,\n _mode: FormRestoreMode\n ): void {}\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity() {\n const state = this.__internals.reportValidity();\n this.invalid = !state;\n return state;\n }\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity() {\n const state = this.__internals.checkValidity();\n this.invalid = !state;\n return state;\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this._updateValidity(message);\n }\n }\n return BaseFormAssociatedElement as Constructor<BaseFormAssociatedElement> &\n T;\n}\n\n/**\n * Mixes the passed in class and turns it into a form associated custom element.\n */\nexport function FormAssociatedMixin<T extends Constructor<LitElement>>(\n base: T\n) {\n class FormAssociatedElement extends BaseFormAssociated(base) {\n /* blazorCSSuppress */\n @property({ attribute: false })\n public set defaultValue(value: unknown) {\n this._formValue.defaultValue = value;\n\n if (this._pristine && 'value' in this) {\n this.value = this.defaultValue;\n this._pristine = true;\n this._validate();\n }\n }\n\n public get defaultValue() {\n return this._formValue.defaultValue;\n }\n\n public override attributeChangedCallback(\n name: string,\n prev: string | null,\n current: string | null\n ): void {\n super.attributeChangedCallback(name, prev, current);\n if (name === 'value') {\n this._setDefaultValue(current);\n }\n }\n }\n\n return FormAssociatedElement as unknown as Constructor<FormAssociatedElementInterface> &\n T;\n}\n\n/**\n * Mixes the passed in class and turns it into a form associated custom element.\n */\nexport function FormAssociatedCheckboxMixin<T extends Constructor<LitElement>>(\n base: T\n) {\n class FormAssociatedCheckboxElement extends BaseFormAssociated(base) {\n /* blazorCSSuppress */\n @property({ attribute: false })\n public set defaultChecked(value: boolean) {\n this._formValue.defaultValue = value;\n\n if (this._pristine && 'checked' in this) {\n this.checked = this.defaultChecked;\n this._pristine = true;\n this._validate();\n }\n }\n\n public get defaultChecked(): boolean {\n return this._formValue.defaultValue as boolean;\n }\n\n public override attributeChangedCallback(\n name: string,\n prev: string | null,\n current: string | null\n ): void {\n super.attributeChangedCallback(name, prev, current);\n if (name === 'checked') {\n this._setDefaultValue(isString(current) ? 'true' : null);\n }\n }\n }\n\n return FormAssociatedCheckboxElement as unknown as Constructor<FormAssociatedCheckboxElementInterface> &\n T;\n}\n"]}
@@ -15,6 +15,7 @@ type FormValueConfig<T> = {
15
15
  export declare const defaultBooleanTransformers: Partial<FormValueTransformers<boolean>>;
16
16
  export declare const defaultNumberTransformers: Partial<FormValueTransformers<number>>;
17
17
  export declare const defaultDateTimeTransformers: Partial<FormValueTransformers<Date | null>>;
18
+ export declare const defaultFileListTransformer: Partial<FormValueTransformers<FileList | null>>;
18
19
  export declare class FormValue<T> {
19
20
  private static readonly setFormValueKey;
20
21
  private _host;
@@ -27,6 +27,22 @@ export const defaultDateTimeTransformers = {
27
27
  setDefaultValue: convertToDate,
28
28
  setFormValue: getDateFormValue,
29
29
  };
30
+ export const defaultFileListTransformer = {
31
+ setValue: (value) => value || null,
32
+ getValue: (value) => value,
33
+ setDefaultValue: (value) => value || null,
34
+ getDefaultValue: (value) => value,
35
+ setFormValue: (files, host) => {
36
+ if (!host.name || !files) {
37
+ return null;
38
+ }
39
+ const data = new FormData();
40
+ for (const file of Array.from(files)) {
41
+ data.append(host.name, file);
42
+ }
43
+ return data;
44
+ },
45
+ };
30
46
  export class FormValue {
31
47
  constructor(host, config) {
32
48
  this._host = host;
@@ -1 +1 @@
1
- {"version":3,"file":"form-value.js","sourceRoot":"","sources":["../../../../../src/components/common/mixins/forms/form-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,UAAU,oBAAoB,CAClC,IAAoB,EACpB,MAA0B;IAE1B,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAgBD,MAAM,mBAAmB,GAAkC;IACzD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IAC1B,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;IACvC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACjC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAiB,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAEnC;IACF,QAAQ,EAAE,OAAO;IACjB,eAAe,EAAE,OAAO;IACxB,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,OAAO,OAAO,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GACpC;IACE,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,QAAQ;IACzB,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;CAC1C,CAAC;AAEJ,MAAM,CAAC,MAAM,2BAA2B,GAEpC;IACF,QAAQ,EAAE,aAAa;IACvB,eAAe,EAAE,aAAa;IAC9B,YAAY,EAAE,gBAAgB;CAC/B,CAAC;AAGF,MAAM,OAAO,SAAS;IASpB,YAAY,IAAoB,EAAE,MAA0B;QAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAErD,IAAI,CAAC,aAAa,GAAG;YACnB,GAAG,mBAAmB;YACtB,GAAG,MAAM,CAAC,YAAY;SACK,CAAC;IAChC,CAAC;IAEM,oBAAoB,CAAC,KAAQ;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,IAAW,YAAY,CAAC,KAAQ;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChE,CAAC;IAED,IAAW,KAAK,CAAC,KAAQ;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;;AA1CuB,yBAAe,GAAG,eAAwB,CAAC","sourcesContent":["import { convertToDate, getDateFormValue } from '../../../calendar/helpers.js';\nimport { asNumber } from '../../util.js';\nimport type { FormValueType, IgcFormControl } from './types.js';\n\nexport function createFormValueState<T>(\n host: IgcFormControl,\n config: FormValueConfig<T>\n): FormValue<T> {\n return new FormValue(host, config);\n}\n\ntype FormValueTransformers<T> = {\n setValue: (value: T) => T;\n getValue: (value: T) => T;\n setDefaultValue: (value: T) => T;\n getDefaultValue: (value: T) => T;\n setFormValue: (value: T, host: IgcFormControl) => FormValueType;\n};\n\ntype FormValueConfig<T> = {\n initialValue: T;\n initialDefaultValue?: T;\n transformers?: Partial<FormValueTransformers<T>>;\n};\n\nconst defaultTransformers: FormValueTransformers<string> = {\n setValue: (value) => value || '',\n getValue: (value) => value,\n setDefaultValue: (value) => value || '',\n getDefaultValue: (value) => value,\n setFormValue: (value, _: IgcFormControl) => value || null,\n};\n\nexport const defaultBooleanTransformers: Partial<\n FormValueTransformers<boolean>\n> = {\n setValue: Boolean,\n setDefaultValue: Boolean,\n setFormValue: (checked, host) => {\n return checked && 'value' in host ? (host.value as string) || 'on' : null;\n },\n};\n\nexport const defaultNumberTransformers: Partial<FormValueTransformers<number>> =\n {\n setValue: asNumber,\n setDefaultValue: asNumber,\n setFormValue: (value) => value.toString(),\n };\n\nexport const defaultDateTimeTransformers: Partial<\n FormValueTransformers<Date | null>\n> = {\n setValue: convertToDate,\n setDefaultValue: convertToDate,\n setFormValue: getDateFormValue,\n};\n\n/* blazorSuppress */\nexport class FormValue<T> {\n private static readonly setFormValueKey = '_setFormValue' as const;\n\n private _host: IgcFormControl;\n private _value: T;\n private _defaultValue: T;\n private _transformers: FormValueTransformers<T>;\n private _setFormValue: IgcFormControl[typeof FormValue.setFormValueKey];\n\n constructor(host: IgcFormControl, config: FormValueConfig<T>) {\n this._host = host;\n this._value = config.initialValue;\n this._defaultValue = config.initialDefaultValue ?? this._value;\n this._setFormValue = host[FormValue.setFormValueKey];\n\n this._transformers = {\n ...defaultTransformers,\n ...config.transformers,\n } as FormValueTransformers<T>;\n }\n\n public setValueAndFormState(value: T): void {\n this.value = value;\n this._setFormValue.call(\n this._host,\n this._transformers.setFormValue(this.value, this._host)\n );\n }\n\n public set defaultValue(value: T) {\n this._defaultValue = this._transformers.setDefaultValue(value);\n }\n\n public get defaultValue(): T {\n return this._transformers.getDefaultValue(this._defaultValue);\n }\n\n public set value(value: T) {\n this._value = this._transformers.setValue(value);\n }\n\n public get value(): T {\n return this._transformers.getValue(this._value);\n }\n}\n"]}
1
+ {"version":3,"file":"form-value.js","sourceRoot":"","sources":["../../../../../src/components/common/mixins/forms/form-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,UAAU,oBAAoB,CAClC,IAAoB,EACpB,MAA0B;IAE1B,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAgBD,MAAM,mBAAmB,GAAkC;IACzD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IAC1B,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;IACvC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACjC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAiB,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAEnC;IACF,QAAQ,EAAE,OAAO;IACjB,eAAe,EAAE,OAAO;IACxB,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,OAAO,OAAO,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GACpC;IACE,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,QAAQ;IACzB,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;CAC1C,CAAC;AAEJ,MAAM,CAAC,MAAM,2BAA2B,GAEpC;IACF,QAAQ,EAAE,aAAa;IACvB,eAAe,EAAE,aAAa;IAC9B,YAAY,EAAE,gBAAgB;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAEnC;IACF,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IAC1B,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACjC,YAAY,EAAE,CAAC,KAAsB,EAAE,IAAoB,EAAE,EAAE;QAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAGF,MAAM,OAAO,SAAS;IASpB,YAAY,IAAoB,EAAE,MAA0B;QAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAErD,IAAI,CAAC,aAAa,GAAG;YACnB,GAAG,mBAAmB;YACtB,GAAG,MAAM,CAAC,YAAY;SACK,CAAC;IAChC,CAAC;IAEM,oBAAoB,CAAC,KAAQ;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,IAAW,YAAY,CAAC,KAAQ;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChE,CAAC;IAED,IAAW,KAAK,CAAC,KAAQ;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;;AA1CuB,yBAAe,GAAG,eAAwB,CAAC","sourcesContent":["import { convertToDate, getDateFormValue } from '../../../calendar/helpers.js';\nimport { asNumber } from '../../util.js';\nimport type { FormValueType, IgcFormControl } from './types.js';\n\nexport function createFormValueState<T>(\n host: IgcFormControl,\n config: FormValueConfig<T>\n): FormValue<T> {\n return new FormValue(host, config);\n}\n\ntype FormValueTransformers<T> = {\n setValue: (value: T) => T;\n getValue: (value: T) => T;\n setDefaultValue: (value: T) => T;\n getDefaultValue: (value: T) => T;\n setFormValue: (value: T, host: IgcFormControl) => FormValueType;\n};\n\ntype FormValueConfig<T> = {\n initialValue: T;\n initialDefaultValue?: T;\n transformers?: Partial<FormValueTransformers<T>>;\n};\n\nconst defaultTransformers: FormValueTransformers<string> = {\n setValue: (value) => value || '',\n getValue: (value) => value,\n setDefaultValue: (value) => value || '',\n getDefaultValue: (value) => value,\n setFormValue: (value, _: IgcFormControl) => value || null,\n};\n\nexport const defaultBooleanTransformers: Partial<\n FormValueTransformers<boolean>\n> = {\n setValue: Boolean,\n setDefaultValue: Boolean,\n setFormValue: (checked, host) => {\n return checked && 'value' in host ? (host.value as string) || 'on' : null;\n },\n};\n\nexport const defaultNumberTransformers: Partial<FormValueTransformers<number>> =\n {\n setValue: asNumber,\n setDefaultValue: asNumber,\n setFormValue: (value) => value.toString(),\n };\n\nexport const defaultDateTimeTransformers: Partial<\n FormValueTransformers<Date | null>\n> = {\n setValue: convertToDate,\n setDefaultValue: convertToDate,\n setFormValue: getDateFormValue,\n};\n\nexport const defaultFileListTransformer: Partial<\n FormValueTransformers<FileList | null>\n> = {\n setValue: (value) => value || null,\n getValue: (value) => value,\n setDefaultValue: (value) => value || null,\n getDefaultValue: (value) => value,\n setFormValue: (files: FileList | null, host: IgcFormControl) => {\n if (!host.name || !files) {\n return null;\n }\n\n const data = new FormData();\n\n for (const file of Array.from(files)) {\n data.append(host.name, file);\n }\n\n return data;\n },\n};\n\n/* blazorSuppress */\nexport class FormValue<T> {\n private static readonly setFormValueKey = '_setFormValue' as const;\n\n private _host: IgcFormControl;\n private _value: T;\n private _defaultValue: T;\n private _transformers: FormValueTransformers<T>;\n private _setFormValue: IgcFormControl[typeof FormValue.setFormValueKey];\n\n constructor(host: IgcFormControl, config: FormValueConfig<T>) {\n this._host = host;\n this._value = config.initialValue;\n this._defaultValue = config.initialDefaultValue ?? this._value;\n this._setFormValue = host[FormValue.setFormValueKey];\n\n this._transformers = {\n ...defaultTransformers,\n ...config.transformers,\n } as FormValueTransformers<T>;\n }\n\n public setValueAndFormState(value: T): void {\n this.value = value;\n this._setFormValue.call(\n this._host,\n this._transformers.setFormValue(this.value, this._host)\n );\n }\n\n public set defaultValue(value: T) {\n this._defaultValue = this._transformers.setDefaultValue(value);\n }\n\n public get defaultValue(): T {\n return this._transformers.getDefaultValue(this._defaultValue);\n }\n\n public set value(value: T) {\n this._value = this._transformers.setValue(value);\n }\n\n public get value(): T {\n return this._transformers.getValue(this._value);\n }\n}\n"]}
@@ -8,7 +8,6 @@ export declare const clamp: (number: number, min: number, max: number) => number
8
8
  export declare function numberOfDecimals(number: number): number;
9
9
  export declare function roundPrecise(number: number, magnitude?: number): number;
10
10
  export declare function numberInRangeInclusive(value: number, min: number, max: number): boolean;
11
- export declare function sameObject(a: object, b: object): boolean;
12
11
  /**
13
12
  *
14
13
  * Returns an element's offset relative to its parent. Similar to element.offsetTop and element.offsetLeft, except the
@@ -104,10 +103,13 @@ export declare function splitToWords(text: string): string[];
104
103
  export declare function toKebabCase(text: string): string;
105
104
  export declare function isFunction(value: unknown): value is CallableFunction;
106
105
  export declare function isString(value: unknown): value is string;
106
+ export declare function isObject(value: unknown): value is object;
107
+ export declare function isEventListenerObject(x: unknown): x is EventListenerObject;
108
+ export declare function addWeakEventListener(element: Element, event: string, listener: EventListenerOrEventListenerObject, options?: AddEventListenerOptions | boolean): void;
107
109
  /**
108
- * Returns whether a given collection has at least one member.
110
+ * Returns whether a given collection is empty.
109
111
  */
110
- export declare function isEmpty<T, U extends string>(x: ArrayLike<T> | Set<T> | Map<U, T>): boolean;
112
+ export declare function isEmpty<T, U extends object>(x: ArrayLike<T> | Set<T> | Map<U, T>): boolean;
111
113
  export declare function asArray<T>(value?: T | T[]): T[];
112
114
  export declare function partition<T>(array: T[], isTruthy: (value: T) => boolean): [truthy: T[], falsy: T[]];
113
115
  /** Returns the center x/y coordinate of a given element. */
@@ -116,3 +118,9 @@ export declare function getCenterPoint(element: Element): {
116
118
  y: number;
117
119
  };
118
120
  export declare function roundByDPR(value: number): number;
121
+ export declare function isRegExp(value: unknown): value is RegExp;
122
+ export declare function equal<T>(a: unknown, b: T, visited?: WeakSet<WeakKey>): boolean;
123
+ /** Required utility type for specific props */
124
+ export type RequiredProps<T, K extends keyof T> = T & {
125
+ [P in K]-?: T[P];
126
+ };