igniteui-webcomponents 5.1.2 → 5.3.0-alpha.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 (495) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/components/avatar/themes/avatar.base.css.js +1 -1
  3. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  4. package/components/avatar/themes/dark/avatar.bootstrap.css.js +1 -1
  5. package/components/avatar/themes/dark/avatar.bootstrap.css.js.map +1 -1
  6. package/components/avatar/themes/light/avatar.bootstrap.css.js +1 -1
  7. package/components/avatar/themes/light/avatar.bootstrap.css.js.map +1 -1
  8. package/components/avatar/themes/light/avatar.shared.css.js +1 -1
  9. package/components/avatar/themes/light/avatar.shared.css.js.map +1 -1
  10. package/components/avatar/themes/shared/avatar.common.css.js +1 -1
  11. package/components/avatar/themes/shared/avatar.common.css.js.map +1 -1
  12. package/components/avatar/themes/shared/avatar.indigo.css.js +1 -1
  13. package/components/avatar/themes/shared/avatar.indigo.css.js.map +1 -1
  14. package/components/badge/themes/badge.base.css.js +1 -1
  15. package/components/badge/themes/badge.base.css.js.map +1 -1
  16. package/components/badge/themes/dark/badge.bootstrap.css.js +1 -1
  17. package/components/badge/themes/dark/badge.bootstrap.css.js.map +1 -1
  18. package/components/badge/themes/dark/badge.indigo.css.js +1 -1
  19. package/components/badge/themes/dark/badge.indigo.css.js.map +1 -1
  20. package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
  21. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  22. package/components/badge/themes/light/badge.indigo.css.js +1 -1
  23. package/components/badge/themes/light/badge.indigo.css.js.map +1 -1
  24. package/components/badge/themes/light/badge.shared.css.js +1 -1
  25. package/components/badge/themes/light/badge.shared.css.js.map +1 -1
  26. package/components/badge/themes/shared/badge.common.css.js +1 -1
  27. package/components/badge/themes/shared/badge.common.css.js.map +1 -1
  28. package/components/badge/themes/shared/badge.indigo.css.js +1 -1
  29. package/components/badge/themes/shared/badge.indigo.css.js.map +1 -1
  30. package/components/button/themes/button/button.base.css.js +1 -1
  31. package/components/button/themes/button/button.base.css.js.map +1 -1
  32. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  33. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  34. package/components/button-group/themes/button.base.css.js +1 -1
  35. package/components/button-group/themes/button.base.css.js.map +1 -1
  36. package/components/button-group/themes/group.base.css.js +1 -1
  37. package/components/button-group/themes/group.base.css.js.map +1 -1
  38. package/components/calendar/base.d.ts +7 -7
  39. package/components/calendar/base.js +23 -16
  40. package/components/calendar/base.js.map +1 -1
  41. package/components/calendar/calendar.js.map +1 -1
  42. package/components/calendar/helpers.d.ts +28 -3
  43. package/components/calendar/helpers.js +36 -11
  44. package/components/calendar/helpers.js.map +1 -1
  45. package/components/calendar/themes/calendar.base.css.js +1 -1
  46. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  47. package/components/card/themes/card.actions.base.css.js +1 -1
  48. package/components/card/themes/card.actions.base.css.js.map +1 -1
  49. package/components/card/themes/card.content.base.css.js +1 -1
  50. package/components/card/themes/card.content.base.css.js.map +1 -1
  51. package/components/card/themes/card.header.base.css.js +1 -1
  52. package/components/card/themes/card.header.base.css.js.map +1 -1
  53. package/components/card/themes/card.media.base.css.js +1 -1
  54. package/components/card/themes/card.media.base.css.js.map +1 -1
  55. package/components/card/themes/container.base.css.js +1 -1
  56. package/components/card/themes/container.base.css.js.map +1 -1
  57. package/components/card/themes/dark/card.fluent.css.js +1 -1
  58. package/components/card/themes/dark/card.fluent.css.js.map +1 -1
  59. package/components/card/themes/light/container/card.fluent.css.js +1 -1
  60. package/components/card/themes/light/container/card.fluent.css.js.map +1 -1
  61. package/components/carousel/carousel-indicator.js +1 -1
  62. package/components/carousel/carousel-indicator.js.map +1 -1
  63. package/components/carousel/carousel-slide.js +1 -1
  64. package/components/carousel/carousel-slide.js.map +1 -1
  65. package/components/carousel/carousel.js +1 -1
  66. package/components/carousel/carousel.js.map +1 -1
  67. package/components/carousel/themes/carousel-indicator-container.base.css.js +1 -1
  68. package/components/carousel/themes/carousel-indicator-container.base.css.js.map +1 -1
  69. package/components/carousel/themes/carousel-indicator.base.css.js +1 -1
  70. package/components/carousel/themes/carousel-indicator.base.css.js.map +1 -1
  71. package/components/carousel/themes/carousel-slide.base.css.js +1 -1
  72. package/components/carousel/themes/carousel-slide.base.css.js.map +1 -1
  73. package/components/carousel/themes/carousel.base.css.js +1 -1
  74. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  75. package/components/checkbox/checkbox-base.d.ts +3 -1
  76. package/components/checkbox/checkbox-base.js +14 -10
  77. package/components/checkbox/checkbox-base.js.map +1 -1
  78. package/components/checkbox/checkbox.js +1 -2
  79. package/components/checkbox/checkbox.js.map +1 -1
  80. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  81. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  82. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
  83. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
  84. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js +1 -1
  85. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
  86. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
  87. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js.map +1 -1
  88. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js +1 -1
  89. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
  90. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js +1 -1
  91. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js.map +1 -1
  92. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  93. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  94. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js +1 -1
  95. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js.map +1 -1
  96. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  97. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  98. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  99. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  100. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  101. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  102. package/components/checkbox/themes/switch.base.css.js +1 -1
  103. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  104. package/components/chip/themes/chip.base.css.js +1 -1
  105. package/components/chip/themes/chip.base.css.js.map +1 -1
  106. package/components/combo/combo-item.d.ts +4 -2
  107. package/components/combo/combo-item.js +19 -16
  108. package/components/combo/combo-item.js.map +1 -1
  109. package/components/combo/combo.d.ts +52 -41
  110. package/components/combo/combo.js +340 -339
  111. package/components/combo/combo.js.map +1 -1
  112. package/components/combo/controllers/data.d.ts +3 -1
  113. package/components/combo/controllers/data.js +9 -2
  114. package/components/combo/controllers/data.js.map +1 -1
  115. package/components/combo/controllers/navigation.d.ts +3 -1
  116. package/components/combo/controllers/navigation.js +4 -3
  117. package/components/combo/controllers/navigation.js.map +1 -1
  118. package/components/combo/controllers/selection.d.ts +14 -6
  119. package/components/combo/controllers/selection.js +66 -59
  120. package/components/combo/controllers/selection.js.map +1 -1
  121. package/components/combo/themes/combo-header.base.css.js +1 -1
  122. package/components/combo/themes/combo-header.base.css.js.map +1 -1
  123. package/components/combo/themes/combo-item.base.css.js +1 -1
  124. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  125. package/components/combo/themes/combo.base.css.js +1 -1
  126. package/components/combo/themes/combo.base.css.js.map +1 -1
  127. package/components/common/context.d.ts +22 -0
  128. package/components/common/context.js +6 -0
  129. package/components/common/context.js.map +1 -0
  130. package/components/common/mixins/alert.js.map +1 -1
  131. package/components/common/mixins/combo-box.js.map +1 -1
  132. package/components/common/mixins/forms/associated.js +41 -39
  133. package/components/common/mixins/forms/associated.js.map +1 -1
  134. package/components/common/mixins/forms/form-value.d.ts +32 -0
  135. package/components/common/mixins/forms/form-value.js +59 -0
  136. package/components/common/mixins/forms/form-value.js.map +1 -0
  137. package/components/common/mixins/forms/types.d.ts +9 -8
  138. package/components/common/mixins/forms/types.js.map +1 -1
  139. package/components/common/util.d.ts +4 -0
  140. package/components/common/util.js +21 -0
  141. package/components/common/util.js.map +1 -1
  142. package/components/common/validators.d.ts +7 -7
  143. package/components/common/validators.js +24 -17
  144. package/components/common/validators.js.map +1 -1
  145. package/components/date-picker/date-picker.d.ts +17 -14
  146. package/components/date-picker/date-picker.js +30 -20
  147. package/components/date-picker/date-picker.js.map +1 -1
  148. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  149. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  150. package/components/date-picker/validators.js +2 -2
  151. package/components/date-picker/validators.js.map +1 -1
  152. package/components/date-time-input/date-time-input.d.ts +9 -6
  153. package/components/date-time-input/date-time-input.js +33 -30
  154. package/components/date-time-input/date-time-input.js.map +1 -1
  155. package/components/date-time-input/date-util.js +2 -12
  156. package/components/date-time-input/date-util.js.map +1 -1
  157. package/components/date-time-input/validators.js +2 -2
  158. package/components/date-time-input/validators.js.map +1 -1
  159. package/components/dialog/themes/dialog.base.css.js +1 -1
  160. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  161. package/components/dialog/themes/shared/dialog.fluent.css.js +1 -1
  162. package/components/dialog/themes/shared/dialog.fluent.css.js.map +1 -1
  163. package/components/divider/themes/divider.base.css.js +1 -1
  164. package/components/divider/themes/divider.base.css.js.map +1 -1
  165. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  166. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  167. package/components/dropdown/themes/dropdown-header.base.css.js +1 -1
  168. package/components/dropdown/themes/dropdown-header.base.css.js.map +1 -1
  169. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  170. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  171. package/components/dropdown/themes/dropdown.base.css.js +1 -1
  172. package/components/dropdown/themes/dropdown.base.css.js.map +1 -1
  173. package/components/dropdown/themes/header.js +7 -0
  174. package/components/dropdown/themes/header.js.map +1 -1
  175. package/components/dropdown/themes/shared/dropdown.bootstrap.css.js +1 -1
  176. package/components/dropdown/themes/shared/dropdown.bootstrap.css.js.map +1 -1
  177. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.d.ts +1 -0
  178. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js +3 -0
  179. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js.map +1 -0
  180. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  181. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  182. package/components/icon/icon-references.js +46 -0
  183. package/components/icon/icon-references.js.map +1 -1
  184. package/components/icon/icon-state.broadcast.d.ts +1 -0
  185. package/components/icon/icon-state.broadcast.js +4 -1
  186. package/components/icon/icon-state.broadcast.js.map +1 -1
  187. package/components/icon/internal-icons-lib.js +47 -0
  188. package/components/icon/internal-icons-lib.js.map +1 -1
  189. package/components/icon/registry/types.d.ts +1 -0
  190. package/components/icon/registry/types.js.map +1 -1
  191. package/components/icon/themes/icon.base.css.js +1 -1
  192. package/components/icon/themes/icon.base.css.js.map +1 -1
  193. package/components/input/input-base.js +8 -2
  194. package/components/input/input-base.js.map +1 -1
  195. package/components/input/input.d.ts +21 -9
  196. package/components/input/input.js +59 -32
  197. package/components/input/input.js.map +1 -1
  198. package/components/input/themes/input.base.css.js +1 -1
  199. package/components/input/themes/input.base.css.js.map +1 -1
  200. package/components/input/themes/shared/input.common.css.js +1 -1
  201. package/components/input/themes/shared/input.common.css.js.map +1 -1
  202. package/components/input/themes/shared/input.indigo.css.js +1 -1
  203. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  204. package/components/input/themes/shared/input.material.css.js +1 -1
  205. package/components/input/themes/shared/input.material.css.js.map +1 -1
  206. package/components/list/themes/container.base.css.js +1 -1
  207. package/components/list/themes/container.base.css.js.map +1 -1
  208. package/components/list/themes/dark/container/list.bootstrap.css.js +1 -1
  209. package/components/list/themes/dark/container/list.bootstrap.css.js.map +1 -1
  210. package/components/list/themes/dark/container/list.fluent.css.js +1 -1
  211. package/components/list/themes/dark/container/list.fluent.css.js.map +1 -1
  212. package/components/list/themes/dark/container/list.indigo.css.js +1 -1
  213. package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
  214. package/components/list/themes/dark/container/list.material.css.js +1 -1
  215. package/components/list/themes/dark/container/list.material.css.js.map +1 -1
  216. package/components/list/themes/dark/header/list-header.bootstrap.css.js +1 -1
  217. package/components/list/themes/dark/header/list-header.bootstrap.css.js.map +1 -1
  218. package/components/list/themes/dark/header/list-header.fluent.css.js +1 -1
  219. package/components/list/themes/dark/header/list-header.fluent.css.js.map +1 -1
  220. package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
  221. package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
  222. package/components/list/themes/dark/header/list-header.material.css.js +1 -1
  223. package/components/list/themes/dark/header/list-header.material.css.js.map +1 -1
  224. package/components/list/themes/dark/item/list-item.bootstrap.css.js +1 -1
  225. package/components/list/themes/dark/item/list-item.bootstrap.css.js.map +1 -1
  226. package/components/list/themes/dark/item/list-item.fluent.css.js +1 -1
  227. package/components/list/themes/dark/item/list-item.fluent.css.js.map +1 -1
  228. package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
  229. package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
  230. package/components/list/themes/dark/item/list-item.material.css.js +1 -1
  231. package/components/list/themes/dark/item/list-item.material.css.js.map +1 -1
  232. package/components/list/themes/item.base.css.js +1 -1
  233. package/components/list/themes/item.base.css.js.map +1 -1
  234. package/components/list/themes/light/container/list.fluent.css.js +1 -1
  235. package/components/list/themes/light/container/list.fluent.css.js.map +1 -1
  236. package/components/list/themes/light/container/list.indigo.css.js +1 -1
  237. package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
  238. package/components/list/themes/light/container/list.shared.css.js +1 -1
  239. package/components/list/themes/light/container/list.shared.css.js.map +1 -1
  240. package/components/list/themes/light/header/list-header.fluent.css.js +1 -1
  241. package/components/list/themes/light/header/list-header.fluent.css.js.map +1 -1
  242. package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
  243. package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
  244. package/components/list/themes/light/item/list-item.fluent.css.js +1 -1
  245. package/components/list/themes/light/item/list-item.fluent.css.js.map +1 -1
  246. package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
  247. package/components/list/themes/light/item/list-item.indigo.css.js.map +1 -1
  248. package/components/list/themes/shared/container/list.indigo.css.js +1 -1
  249. package/components/list/themes/shared/container/list.indigo.css.js.map +1 -1
  250. package/components/list/themes/shared/item/list-item.common.css.js +1 -1
  251. package/components/list/themes/shared/item/list-item.common.css.js.map +1 -1
  252. package/components/list/themes/shared/item/list-item.fluent.css.js +1 -1
  253. package/components/list/themes/shared/item/list-item.fluent.css.js.map +1 -1
  254. package/components/list/themes/shared/item/list-item.indigo.css.js +1 -1
  255. package/components/list/themes/shared/item/list-item.indigo.css.js.map +1 -1
  256. package/components/mask-input/mask-input.d.ts +5 -3
  257. package/components/mask-input/mask-input.js +35 -23
  258. package/components/mask-input/mask-input.js.map +1 -1
  259. package/components/nav-drawer/themes/container.base.css.js +1 -1
  260. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  261. package/components/nav-drawer/themes/header-item.base.css.js +1 -1
  262. package/components/nav-drawer/themes/header-item.base.css.js.map +1 -1
  263. package/components/nav-drawer/themes/item.base.css.js +1 -1
  264. package/components/nav-drawer/themes/item.base.css.js.map +1 -1
  265. package/components/navbar/themes/navbar.base.css.js +1 -1
  266. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  267. package/components/popover/themes/light/popover.base.css.js +1 -1
  268. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  269. package/components/progress/base.d.ts +11 -12
  270. package/components/progress/base.js +59 -70
  271. package/components/progress/base.js.map +1 -1
  272. package/components/progress/circular-progress.d.ts +0 -1
  273. package/components/progress/circular-progress.js +15 -15
  274. package/components/progress/circular-progress.js.map +1 -1
  275. package/components/progress/linear-progress.js +7 -13
  276. package/components/progress/linear-progress.js.map +1 -1
  277. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  278. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  279. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js +1 -1
  280. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js.map +1 -1
  281. package/components/progress/themes/circular/shared/circular.progress.common.css.js +1 -1
  282. package/components/progress/themes/circular/shared/circular.progress.common.css.js.map +1 -1
  283. package/components/progress/themes/circular/shared/circular.progress.fluent.css.js +1 -1
  284. package/components/progress/themes/circular/shared/circular.progress.fluent.css.js.map +1 -1
  285. package/components/progress/themes/circular/shared/circular.progress.indigo.css.js +1 -1
  286. package/components/progress/themes/circular/shared/circular.progress.indigo.css.js.map +1 -1
  287. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  288. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  289. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js +1 -1
  290. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js.map +1 -1
  291. package/components/progress/themes/linear/shared/linear.progress.common.css.js +1 -1
  292. package/components/progress/themes/linear/shared/linear.progress.common.css.js.map +1 -1
  293. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js +1 -1
  294. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js.map +1 -1
  295. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js +1 -1
  296. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js.map +1 -1
  297. package/components/radio/radio.d.ts +4 -3
  298. package/components/radio/radio.js +48 -33
  299. package/components/radio/radio.js.map +1 -1
  300. package/components/radio/themes/radio.base.css.js +1 -1
  301. package/components/radio/themes/radio.base.css.js.map +1 -1
  302. package/components/radio-group/radio-group.base.css.js +1 -1
  303. package/components/radio-group/radio-group.base.css.js.map +1 -1
  304. package/components/radio-group/radio-group.d.ts +4 -0
  305. package/components/radio-group/radio-group.js +18 -0
  306. package/components/radio-group/radio-group.js.map +1 -1
  307. package/components/rating/rating-symbol.js +2 -2
  308. package/components/rating/rating-symbol.js.map +1 -1
  309. package/components/rating/rating.d.ts +25 -17
  310. package/components/rating/rating.js +47 -43
  311. package/components/rating/rating.js.map +1 -1
  312. package/components/rating/themes/rating-symbol.base.css.js +1 -1
  313. package/components/rating/themes/rating-symbol.base.css.js.map +1 -1
  314. package/components/rating/themes/rating.base.css.js +1 -1
  315. package/components/rating/themes/rating.base.css.js.map +1 -1
  316. package/components/ripple/ripple.material.css.js +1 -1
  317. package/components/ripple/ripple.material.css.js.map +1 -1
  318. package/components/select/select.d.ts +7 -9
  319. package/components/select/select.js +29 -31
  320. package/components/select/select.js.map +1 -1
  321. package/components/select/themes/select.base.css.js +1 -1
  322. package/components/select/themes/select.base.css.js.map +1 -1
  323. package/components/slider/slider-base.d.ts +0 -1
  324. package/components/slider/slider-base.js +0 -4
  325. package/components/slider/slider-base.js.map +1 -1
  326. package/components/slider/slider.d.ts +3 -2
  327. package/components/slider/slider.js +9 -9
  328. package/components/slider/slider.js.map +1 -1
  329. package/components/slider/themes/slider.base.css.js +1 -1
  330. package/components/slider/themes/slider.base.css.js.map +1 -1
  331. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  332. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  333. package/components/stepper/step.d.ts +1 -1
  334. package/components/stepper/step.js.map +1 -1
  335. package/components/stepper/themes/step/step.base.css.js +1 -1
  336. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  337. package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
  338. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  339. package/components/tabs/themes/dark/tab.bootstrap.css.js +1 -1
  340. package/components/tabs/themes/dark/tab.bootstrap.css.js.map +1 -1
  341. package/components/tabs/themes/dark/tab.fluent.css.js +1 -1
  342. package/components/tabs/themes/dark/tab.fluent.css.js.map +1 -1
  343. package/components/tabs/themes/dark/tab.indigo.css.js +1 -1
  344. package/components/tabs/themes/dark/tab.indigo.css.js.map +1 -1
  345. package/components/tabs/themes/dark/tab.material.css.js +1 -1
  346. package/components/tabs/themes/dark/tab.material.css.js.map +1 -1
  347. package/components/tabs/themes/light/tab.bootstrap.css.js +1 -1
  348. package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -1
  349. package/components/tabs/themes/light/tab.fluent.css.js +1 -1
  350. package/components/tabs/themes/light/tab.fluent.css.js.map +1 -1
  351. package/components/tabs/themes/light/tab.indigo.css.js +1 -1
  352. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
  353. package/components/tabs/themes/tab.base.css.js +1 -1
  354. package/components/tabs/themes/tab.base.css.js.map +1 -1
  355. package/components/tabs/themes/tabs.base.css.js +1 -1
  356. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  357. package/components/textarea/textarea.d.ts +5 -4
  358. package/components/textarea/textarea.js +15 -8
  359. package/components/textarea/textarea.js.map +1 -1
  360. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  361. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  362. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  363. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  364. package/components/textarea/themes/textarea.base.css.js +1 -1
  365. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  366. package/components/tile-manager/controllers/fullscreen.d.ts +15 -0
  367. package/components/tile-manager/controllers/fullscreen.js +43 -0
  368. package/components/tile-manager/controllers/fullscreen.js.map +1 -0
  369. package/components/tile-manager/controllers/tile-dnd.d.ts +24 -0
  370. package/components/tile-manager/controllers/tile-dnd.js +46 -0
  371. package/components/tile-manager/controllers/tile-dnd.js.map +1 -0
  372. package/components/tile-manager/position.d.ts +20 -0
  373. package/components/tile-manager/position.js +61 -0
  374. package/components/tile-manager/position.js.map +1 -0
  375. package/components/tile-manager/resize-controller.d.ts +52 -0
  376. package/components/tile-manager/resize-controller.js +157 -0
  377. package/components/tile-manager/resize-controller.js.map +1 -0
  378. package/components/tile-manager/resize-element.d.ts +41 -0
  379. package/components/tile-manager/resize-element.js +107 -0
  380. package/components/tile-manager/resize-element.js.map +1 -0
  381. package/components/tile-manager/serializer.d.ts +24 -0
  382. package/components/tile-manager/serializer.js +52 -0
  383. package/components/tile-manager/serializer.js.map +1 -0
  384. package/components/tile-manager/themes/container.d.ts +2 -0
  385. package/components/tile-manager/themes/container.js +47 -0
  386. package/components/tile-manager/themes/container.js.map +1 -0
  387. package/components/tile-manager/themes/dark/tile-manager.bootstrap.css.d.ts +1 -0
  388. package/components/tile-manager/themes/dark/tile-manager.bootstrap.css.js +3 -0
  389. package/components/tile-manager/themes/dark/tile-manager.bootstrap.css.js.map +1 -0
  390. package/components/tile-manager/themes/dark/tile-manager.fluent.css.d.ts +1 -0
  391. package/components/tile-manager/themes/dark/tile-manager.fluent.css.js +3 -0
  392. package/components/tile-manager/themes/dark/tile-manager.fluent.css.js.map +1 -0
  393. package/components/tile-manager/themes/dark/tile-manager.indigo.css.d.ts +1 -0
  394. package/components/tile-manager/themes/dark/tile-manager.indigo.css.js +3 -0
  395. package/components/tile-manager/themes/dark/tile-manager.indigo.css.js.map +1 -0
  396. package/components/tile-manager/themes/dark/tile-manager.material.css.d.ts +1 -0
  397. package/components/tile-manager/themes/dark/tile-manager.material.css.js +3 -0
  398. package/components/tile-manager/themes/dark/tile-manager.material.css.js.map +1 -0
  399. package/components/tile-manager/themes/dark/tile-manager.shared.css.d.ts +1 -0
  400. package/components/tile-manager/themes/dark/tile-manager.shared.css.js +3 -0
  401. package/components/tile-manager/themes/dark/tile-manager.shared.css.js.map +1 -0
  402. package/components/tile-manager/themes/header.d.ts +2 -0
  403. package/components/tile-manager/themes/header.js +28 -0
  404. package/components/tile-manager/themes/header.js.map +1 -0
  405. package/components/tile-manager/themes/light/tile-manager.bootstrap.css.d.ts +1 -0
  406. package/components/tile-manager/themes/light/tile-manager.bootstrap.css.js +3 -0
  407. package/components/tile-manager/themes/light/tile-manager.bootstrap.css.js.map +1 -0
  408. package/components/tile-manager/themes/light/tile-manager.fluent.css.d.ts +1 -0
  409. package/components/tile-manager/themes/light/tile-manager.fluent.css.js +3 -0
  410. package/components/tile-manager/themes/light/tile-manager.fluent.css.js.map +1 -0
  411. package/components/tile-manager/themes/light/tile-manager.indigo.css.d.ts +1 -0
  412. package/components/tile-manager/themes/light/tile-manager.indigo.css.js +3 -0
  413. package/components/tile-manager/themes/light/tile-manager.indigo.css.js.map +1 -0
  414. package/components/tile-manager/themes/light/tile-manager.material.css.d.ts +1 -0
  415. package/components/tile-manager/themes/light/tile-manager.material.css.js +3 -0
  416. package/components/tile-manager/themes/light/tile-manager.material.css.js.map +1 -0
  417. package/components/tile-manager/themes/light/tile-manager.shared.css.d.ts +1 -0
  418. package/components/tile-manager/themes/light/tile-manager.shared.css.js +3 -0
  419. package/components/tile-manager/themes/light/tile-manager.shared.css.js.map +1 -0
  420. package/components/tile-manager/themes/resize.base.css.d.ts +1 -0
  421. package/components/tile-manager/themes/resize.base.css.js +3 -0
  422. package/components/tile-manager/themes/resize.base.css.js.map +1 -0
  423. package/components/tile-manager/themes/shared/header/tile-header.bootstrap.css.d.ts +1 -0
  424. package/components/tile-manager/themes/shared/header/tile-header.bootstrap.css.js +3 -0
  425. package/components/tile-manager/themes/shared/header/tile-header.bootstrap.css.js.map +1 -0
  426. package/components/tile-manager/themes/shared/header/tile-header.common.css.d.ts +1 -0
  427. package/components/tile-manager/themes/shared/header/tile-header.common.css.js +3 -0
  428. package/components/tile-manager/themes/shared/header/tile-header.common.css.js.map +1 -0
  429. package/components/tile-manager/themes/shared/header/tile-header.fluent.css.d.ts +1 -0
  430. package/components/tile-manager/themes/shared/header/tile-header.fluent.css.js +3 -0
  431. package/components/tile-manager/themes/shared/header/tile-header.fluent.css.js.map +1 -0
  432. package/components/tile-manager/themes/shared/header/tile-header.indigo.css.d.ts +1 -0
  433. package/components/tile-manager/themes/shared/header/tile-header.indigo.css.js +3 -0
  434. package/components/tile-manager/themes/shared/header/tile-header.indigo.css.js.map +1 -0
  435. package/components/tile-manager/themes/shared/resize.common.css.d.ts +1 -0
  436. package/components/tile-manager/themes/shared/resize.common.css.js +3 -0
  437. package/components/tile-manager/themes/shared/resize.common.css.js.map +1 -0
  438. package/components/tile-manager/themes/shared/tile/tile.common.css.d.ts +1 -0
  439. package/components/tile-manager/themes/shared/tile/tile.common.css.js +3 -0
  440. package/components/tile-manager/themes/shared/tile/tile.common.css.js.map +1 -0
  441. package/components/tile-manager/themes/shared/tile/tile.indigo.css.d.ts +1 -0
  442. package/components/tile-manager/themes/shared/tile/tile.indigo.css.js +3 -0
  443. package/components/tile-manager/themes/shared/tile/tile.indigo.css.js.map +1 -0
  444. package/components/tile-manager/themes/shared/tile-manager.common.css.d.ts +1 -0
  445. package/components/tile-manager/themes/shared/tile-manager.common.css.js +3 -0
  446. package/components/tile-manager/themes/shared/tile-manager.common.css.js.map +1 -0
  447. package/components/tile-manager/themes/tile-header.base.css.d.ts +1 -0
  448. package/components/tile-manager/themes/tile-header.base.css.js +3 -0
  449. package/components/tile-manager/themes/tile-header.base.css.js.map +1 -0
  450. package/components/tile-manager/themes/tile-manager.base.css.d.ts +1 -0
  451. package/components/tile-manager/themes/tile-manager.base.css.js +3 -0
  452. package/components/tile-manager/themes/tile-manager.base.css.js.map +1 -0
  453. package/components/tile-manager/themes/tile.base.css.d.ts +1 -0
  454. package/components/tile-manager/themes/tile.base.css.js +3 -0
  455. package/components/tile-manager/themes/tile.base.css.js.map +1 -0
  456. package/components/tile-manager/themes/tile.d.ts +2 -0
  457. package/components/tile-manager/themes/tile.js +14 -0
  458. package/components/tile-manager/themes/tile.js.map +1 -0
  459. package/components/tile-manager/tile-header.d.ts +34 -0
  460. package/components/tile-manager/tile-header.js +106 -0
  461. package/components/tile-manager/tile-header.js.map +1 -0
  462. package/components/tile-manager/tile-manager.d.ts +83 -0
  463. package/components/tile-manager/tile-manager.js +188 -0
  464. package/components/tile-manager/tile-manager.js.map +1 -0
  465. package/components/tile-manager/tile-util.d.ts +6 -0
  466. package/components/tile-manager/tile-util.js +70 -0
  467. package/components/tile-manager/tile-util.js.map +1 -0
  468. package/components/tile-manager/tile.d.ts +128 -0
  469. package/components/tile-manager/tile.js +467 -0
  470. package/components/tile-manager/tile.js.map +1 -0
  471. package/components/toast/themes/toast.base.css.js +1 -1
  472. package/components/toast/themes/toast.base.css.js.map +1 -1
  473. package/components/tree/themes/container.base.css.js +1 -1
  474. package/components/tree/themes/container.base.css.js.map +1 -1
  475. package/components/tree/themes/shared/item.material.css.js +1 -1
  476. package/components/tree/themes/shared/item.material.css.js.map +1 -1
  477. package/custom-elements.json +7211 -4772
  478. package/igniteui-webcomponents.css-data.json +1 -1
  479. package/igniteui-webcomponents.html-data.json +1 -1
  480. package/index.d.ts +3 -0
  481. package/index.js +3 -0
  482. package/index.js.map +1 -1
  483. package/package.json +1 -1
  484. package/themes/dark/bootstrap.css +1 -1
  485. package/themes/dark/fluent.css +1 -1
  486. package/themes/dark/indigo.css +1 -1
  487. package/themes/dark/material.css +1 -1
  488. package/themes/light/bootstrap.css +1 -1
  489. package/themes/light/fluent.css +1 -1
  490. package/themes/light/indigo.css +1 -1
  491. package/themes/light/material.css +1 -1
  492. package/web-types.json +2 -2
  493. package/components/carousel/context.d.ts +0 -4
  494. package/components/carousel/context.js +0 -3
  495. package/components/carousel/context.js.map +0 -1
@@ -0,0 +1,188 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var IgcTileManagerComponent_1;
8
+ import { ContextProvider } from '@lit/context';
9
+ import { LitElement, html } from 'lit';
10
+ import { property } from 'lit/decorators.js';
11
+ import { styleMap } from 'lit/directives/style-map.js';
12
+ import { themes } from '../../theming/theming-decorator.js';
13
+ import { tileManagerContext } from '../common/context.js';
14
+ import { createMutationController, } from '../common/controllers/mutation-observer.js';
15
+ import { registerComponent } from '../common/definitions/register.js';
16
+ import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
17
+ import { asNumber, findElementFromEventPath, partNameMap, } from '../common/util.js';
18
+ import { createTilesState, isSameTile, swapTiles } from './position.js';
19
+ import { createSerializer } from './serializer.js';
20
+ import { all } from './themes/container.js';
21
+ import { styles as shared } from './themes/shared/tile-manager.common.css.js';
22
+ import { styles } from './themes/tile-manager.base.css.js';
23
+ import IgcTileComponent from './tile.js';
24
+ let IgcTileManagerComponent = IgcTileManagerComponent_1 = class IgcTileManagerComponent extends EventEmitterMixin(LitElement) {
25
+ static register() {
26
+ registerComponent(IgcTileManagerComponent_1, IgcTileComponent);
27
+ }
28
+ _setManagerContext() {
29
+ this._context.setValue({
30
+ instance: this,
31
+ draggedItem: this._draggedItem,
32
+ lastSwapTile: this._lastSwapTile,
33
+ }, true);
34
+ }
35
+ _observerCallback({ changes: { added, removed }, }) {
36
+ const ownAdded = added.filter(({ target }) => target.closest(this.tagName) === this);
37
+ const ownRemoved = removed.filter(({ target }) => target.closest(this.tagName) === this);
38
+ for (const remove of ownRemoved) {
39
+ this._tilesState.remove(remove.node);
40
+ }
41
+ for (const added of ownAdded) {
42
+ this._tilesState.add(added.node);
43
+ }
44
+ this._tilesState.assignTiles();
45
+ }
46
+ set columnCount(value) {
47
+ this._columnCount = Math.max(0, asNumber(value));
48
+ Object.assign(this._internalStyles, {
49
+ '--ig-column-count': this._columnCount || undefined,
50
+ });
51
+ }
52
+ get columnCount() {
53
+ return this._columnCount;
54
+ }
55
+ set minColumnWidth(value) {
56
+ this._minColWidth = value ?? undefined;
57
+ Object.assign(this._internalStyles, {
58
+ '--ig-min-col-width': this._minColWidth,
59
+ });
60
+ }
61
+ get minColumnWidth() {
62
+ return this._minColWidth;
63
+ }
64
+ set minRowHeight(value) {
65
+ this._minRowHeight = value ?? undefined;
66
+ Object.assign(this._internalStyles, {
67
+ '--ig-min-row-height': this._minRowHeight,
68
+ });
69
+ }
70
+ get minRowHeight() {
71
+ return this._minRowHeight;
72
+ }
73
+ set gap(value) {
74
+ this._gap = value ?? undefined;
75
+ Object.assign(this._internalStyles, {
76
+ '--ig-gap': this._gap,
77
+ });
78
+ }
79
+ get gap() {
80
+ return this._gap;
81
+ }
82
+ get tiles() {
83
+ return this._tilesState.tiles;
84
+ }
85
+ constructor() {
86
+ super();
87
+ this._internalStyles = {};
88
+ this._columnCount = 0;
89
+ this._draggedItem = null;
90
+ this._lastSwapTile = null;
91
+ this._serializer = createSerializer(this);
92
+ this._tilesState = createTilesState(this);
93
+ this._context = new ContextProvider(this, {
94
+ context: tileManagerContext,
95
+ initialValue: {
96
+ instance: this,
97
+ draggedItem: this._draggedItem,
98
+ lastSwapTile: this._lastSwapTile,
99
+ },
100
+ });
101
+ this.dragMode = 'slide';
102
+ createMutationController(this, {
103
+ callback: this._observerCallback,
104
+ filter: [IgcTileComponent.tagName],
105
+ config: {
106
+ childList: true,
107
+ },
108
+ });
109
+ }
110
+ firstUpdated() {
111
+ this._tilesState.assignPositions();
112
+ this._tilesState.assignTiles();
113
+ }
114
+ handleTileDragStart({ detail }) {
115
+ this.emitEvent('igcTileDragStarted', { detail });
116
+ this._draggedItem = detail;
117
+ this._setManagerContext();
118
+ }
119
+ handleTileDragEnd() {
120
+ if (this._draggedItem) {
121
+ this._draggedItem = null;
122
+ this._setManagerContext();
123
+ }
124
+ }
125
+ handleDragOver(event) {
126
+ event.preventDefault();
127
+ }
128
+ handleDrop(event) {
129
+ event.preventDefault();
130
+ const draggedItem = this._draggedItem;
131
+ const target = findElementFromEventPath(IgcTileComponent.tagName, event);
132
+ if (!isSameTile(draggedItem, target) &&
133
+ this.dragMode === 'swap' &&
134
+ !target?.disableDrag) {
135
+ swapTiles(draggedItem, target);
136
+ }
137
+ }
138
+ saveLayout() {
139
+ return this._serializer.saveAsJSON();
140
+ }
141
+ loadLayout(data) {
142
+ this._serializer.loadFromJSON(data);
143
+ }
144
+ render() {
145
+ const parts = partNameMap({
146
+ base: true,
147
+ 'maximized-tile': this.tiles.some((tile) => tile.maximized),
148
+ });
149
+ return html `
150
+ <div
151
+ style=${styleMap(this._internalStyles)}
152
+ part=${parts}
153
+ @tileDragStart=${this.handleTileDragStart}
154
+ @tileDragEnd=${this.handleTileDragEnd}
155
+ @dragover=${this.handleDragOver}
156
+ @drop=${this.handleDrop}
157
+ >
158
+ <slot></slot>
159
+ </div>
160
+ `;
161
+ }
162
+ };
163
+ IgcTileManagerComponent.tagName = 'igc-tile-manager';
164
+ IgcTileManagerComponent.styles = [styles, shared];
165
+ IgcTileManagerComponent.shadowRootOptions = {
166
+ mode: 'open',
167
+ slotAssignment: 'manual',
168
+ };
169
+ __decorate([
170
+ property({ attribute: 'drag-mode' })
171
+ ], IgcTileManagerComponent.prototype, "dragMode", void 0);
172
+ __decorate([
173
+ property({ type: Number, attribute: 'column-count' })
174
+ ], IgcTileManagerComponent.prototype, "columnCount", null);
175
+ __decorate([
176
+ property({ attribute: 'min-column-width' })
177
+ ], IgcTileManagerComponent.prototype, "minColumnWidth", null);
178
+ __decorate([
179
+ property({ attribute: 'min-row-height' })
180
+ ], IgcTileManagerComponent.prototype, "minRowHeight", null);
181
+ __decorate([
182
+ property()
183
+ ], IgcTileManagerComponent.prototype, "gap", null);
184
+ IgcTileManagerComponent = IgcTileManagerComponent_1 = __decorate([
185
+ themes(all)
186
+ ], IgcTileManagerComponent);
187
+ export default IgcTileManagerComponent;
188
+ //# sourceMappingURL=tile-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-manager.js","sourceRoot":"","sources":["../../../src/components/tile-manager/tile-manager.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAkB,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAEL,wBAAwB,GACzB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,gBAAgB,MAAM,WAAW,CAAC;AAe1B,IAAM,uBAAuB,+BAA7B,MAAM,uBAAwB,SAAQ,iBAAiB,CAGpE,UAAU,CAAC;IAUJ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,yBAAuB,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAuBO,kBAAkB;QACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACpB;YACE,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,YAAY,EAAE,IAAI,CAAC,aAAa;SACjC,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,EACxB,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GACgB;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CACtD,CAAC;QACF,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAC/B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CACtD,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAiBD,IAAW,WAAW,CAAC,KAAa;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAClC,mBAAmB,EAAE,IAAI,CAAC,YAAY,IAAI,SAAS;SACpD,CAAC,CAAC;IACL,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAOD,IAAW,cAAc,CAAC,KAAyB;QACjD,IAAI,CAAC,YAAY,GAAG,KAAK,IAAI,SAAS,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAClC,oBAAoB,EAAE,IAAI,CAAC,YAAY;SACxC,CAAC,CAAC;IACL,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAOD,IAAW,YAAY,CAAC,KAAyB;QAC/C,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,SAAS,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAClC,qBAAqB,EAAE,IAAI,CAAC,aAAa;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAMD,IAAW,GAAG,CAAC,KAAyB;QACtC,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,SAAS,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAClC,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAMD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAvIF,oBAAe,GAAc,EAAE,CAAC;QAEhC,iBAAY,GAAG,CAAC,CAAC;QAIjB,iBAAY,GAA4B,IAAI,CAAC;QAC7C,kBAAa,GAA4B,IAAI,CAAC;QAE9C,gBAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,gBAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAErC,aAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE;YAC3C,OAAO,EAAE,kBAAkB;YAC3B,YAAY,EAAE;gBACZ,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,YAAY,EAAE,IAAI,CAAC,aAAa;aACjC;SACF,CAAC,CAAC;QAuCI,aAAQ,GAAqB,OAAO,CAAC;QA+E1C,wBAAwB,CAAC,IAAI,EAAE;YAC7B,QAAQ,EAAE,IAAI,CAAC,iBAAiB;YAChC,MAAM,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAClC,MAAM,EAAE;gBACN,SAAS,EAAE,IAAI;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAEkB,YAAY;QAC7B,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAEO,mBAAmB,CAAC,EAAE,MAAM,EAAiC;QACnE,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,KAAgB;QACrC,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAEO,UAAU,CAAC,KAAgB;QACjC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,MAAM,MAAM,GAAG,wBAAwB,CACrC,gBAAgB,CAAC,OAAO,EACxB,KAAK,CACN,CAAC;QAEF,IACE,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC;YAChC,IAAI,CAAC,QAAQ,KAAK,MAAM;YACxB,CAAC,MAAM,EAAE,WAAW,EACpB,CAAC;YACD,SAAS,CAAC,WAAY,EAAE,MAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAEM,UAAU,CAAC,IAAY;QAC5B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEkB,MAAM;QACvB,MAAM,KAAK,GAAG,WAAW,CAAC;YACxB,IAAI,EAAE,IAAI;YACV,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;SAC5D,CAAC,CAAC;QAEH,OAAO,IAAI,CAAA;;gBAEC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;eAC/B,KAAK;yBACK,IAAI,CAAC,mBAAmB;uBAC1B,IAAI,CAAC,iBAAiB;oBACzB,IAAI,CAAC,cAAc;gBACvB,IAAI,CAAC,UAAU;;;;KAI1B,CAAC;IACJ,CAAC;;AAjOsB,+BAAO,GAAG,kBAAkB,AAArB,CAAsB;AACtC,8BAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAEvB,yCAAiB,GAAmB;IACnD,IAAI,EAAE,MAAM;IACZ,cAAc,EAAE,QAAQ;CACzB,AAHiC,CAGhC;AAiEK;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;yDACO;AAU5C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;0DAMrD;AAWD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;6DAM3C;AAWD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;2DAMzC;AAUD;IADC,QAAQ,EAAE;kDAMV;AAzIkB,uBAAuB;IAD3C,MAAM,CAAC,GAAG,CAAC;GACS,uBAAuB,CAsO3C;eAtOoB,uBAAuB","sourcesContent":["import { ContextProvider } from '@lit/context';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { type StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { tileManagerContext } from '../common/context.js';\nimport {\n type MutationControllerParams,\n createMutationController,\n} from '../common/controllers/mutation-observer.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport {\n asNumber,\n findElementFromEventPath,\n partNameMap,\n} from '../common/util.js';\nimport { createTilesState, isSameTile, swapTiles } from './position.js';\nimport { createSerializer } from './serializer.js';\nimport { all } from './themes/container.js';\nimport { styles as shared } from './themes/shared/tile-manager.common.css.js';\nimport { styles } from './themes/tile-manager.base.css.js';\nimport IgcTileComponent from './tile.js';\n\n// REVIEW: WIP\nexport interface IgcTileManagerComponentEventMap {\n igcTileDragStarted: CustomEvent<IgcTileComponent>;\n}\n\n/**\n * The tile manager component enables the dynamic arrangement, resizing, and interaction of tiles.\n *\n * @element igc-tile-manager\n *\n * @fires igcTileDragStarted - Fired when an owning tile begins a drag operation.\n */\n@themes(all)\nexport default class IgcTileManagerComponent extends EventEmitterMixin<\n IgcTileManagerComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-tile-manager';\n public static styles = [styles, shared];\n\n protected static shadowRootOptions: ShadowRootInit = {\n mode: 'open',\n slotAssignment: 'manual',\n };\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcTileManagerComponent, IgcTileComponent);\n }\n\n private _internalStyles: StyleInfo = {};\n\n private _columnCount = 0;\n private _gap?: string;\n private _minColWidth?: string;\n private _minRowHeight?: string;\n private _draggedItem: IgcTileComponent | null = null;\n private _lastSwapTile: IgcTileComponent | null = null;\n\n private _serializer = createSerializer(this);\n private _tilesState = createTilesState(this);\n\n private _context = new ContextProvider(this, {\n context: tileManagerContext,\n initialValue: {\n instance: this,\n draggedItem: this._draggedItem,\n lastSwapTile: this._lastSwapTile,\n },\n });\n\n private _setManagerContext() {\n this._context.setValue(\n {\n instance: this,\n draggedItem: this._draggedItem,\n lastSwapTile: this._lastSwapTile,\n },\n true\n );\n }\n\n private _observerCallback({\n changes: { added, removed },\n }: MutationControllerParams<IgcTileComponent>) {\n const ownAdded = added.filter(\n ({ target }) => target.closest(this.tagName) === this\n );\n const ownRemoved = removed.filter(\n ({ target }) => target.closest(this.tagName) === this\n );\n\n for (const remove of ownRemoved) {\n this._tilesState.remove(remove.node);\n }\n\n for (const added of ownAdded) {\n this._tilesState.add(added.node);\n }\n\n this._tilesState.assignTiles();\n }\n\n /**\n * Determines whether the tiles slide or swap on drop.\n * @attr drag-mode\n */\n @property({ attribute: 'drag-mode' })\n public dragMode: 'slide' | 'swap' = 'slide';\n\n /**\n * Sets the number of columns for the tile manager.\n * Setting value <= than zero will trigger a responsive layout.\n *\n * @attr column-count\n * @default 0\n */\n @property({ type: Number, attribute: 'column-count' })\n public set columnCount(value: number) {\n this._columnCount = Math.max(0, asNumber(value));\n Object.assign(this._internalStyles, {\n '--ig-column-count': this._columnCount || undefined,\n });\n }\n\n public get columnCount(): number {\n return this._columnCount;\n }\n\n /**\n * Sets the minimum width for a column unit in the tile manager.\n * @attr min-column-width\n */\n @property({ attribute: 'min-column-width' })\n public set minColumnWidth(value: string | undefined) {\n this._minColWidth = value ?? undefined;\n Object.assign(this._internalStyles, {\n '--ig-min-col-width': this._minColWidth,\n });\n }\n\n public get minColumnWidth(): string | undefined {\n return this._minColWidth;\n }\n\n /**\n * Sets the minimum height for a row unit in the tile manager.\n * @attr min-row-height\n */\n @property({ attribute: 'min-row-height' })\n public set minRowHeight(value: string | undefined) {\n this._minRowHeight = value ?? undefined;\n Object.assign(this._internalStyles, {\n '--ig-min-row-height': this._minRowHeight,\n });\n }\n\n public get minRowHeight(): string | undefined {\n return this._minRowHeight;\n }\n\n /**\n * Sets the gap size of the the tile manager.\n */\n @property()\n public set gap(value: string | undefined) {\n this._gap = value ?? undefined;\n Object.assign(this._internalStyles, {\n '--ig-gap': this._gap,\n });\n }\n\n public get gap(): string | undefined {\n return this._gap;\n }\n\n /**\n * Gets the tiles sorted by their position in the layout.\n * @attr\n */\n public get tiles() {\n return this._tilesState.tiles;\n }\n\n constructor() {\n super();\n\n createMutationController(this, {\n callback: this._observerCallback,\n filter: [IgcTileComponent.tagName],\n config: {\n childList: true,\n },\n });\n }\n\n protected override firstUpdated() {\n this._tilesState.assignPositions();\n this._tilesState.assignTiles();\n }\n\n private handleTileDragStart({ detail }: CustomEvent<IgcTileComponent>) {\n this.emitEvent('igcTileDragStarted', { detail });\n this._draggedItem = detail;\n this._setManagerContext();\n }\n\n private handleTileDragEnd() {\n if (this._draggedItem) {\n this._draggedItem = null;\n this._setManagerContext();\n }\n }\n\n private handleDragOver(event: DragEvent) {\n event.preventDefault(); // Allow dropping\n }\n\n private handleDrop(event: DragEvent) {\n event.preventDefault();\n\n const draggedItem = this._draggedItem;\n const target = findElementFromEventPath<IgcTileComponent>(\n IgcTileComponent.tagName,\n event\n );\n\n if (\n !isSameTile(draggedItem, target) &&\n this.dragMode === 'swap' &&\n !target?.disableDrag\n ) {\n swapTiles(draggedItem!, target!);\n }\n }\n\n public saveLayout(): string {\n return this._serializer.saveAsJSON();\n }\n\n public loadLayout(data: string): void {\n this._serializer.loadFromJSON(data);\n }\n\n protected override render() {\n const parts = partNameMap({\n base: true,\n 'maximized-tile': this.tiles.some((tile) => tile.maximized),\n });\n\n return html`\n <div\n style=${styleMap(this._internalStyles)}\n part=${parts}\n @tileDragStart=${this.handleTileDragStart}\n @tileDragEnd=${this.handleTileDragEnd}\n @dragover=${this.handleDragOver}\n @drop=${this.handleDrop}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tile-manager': IgcTileManagerComponent;\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export declare class ResizeUtil {
2
+ static calculateSnappedHeight(deltaY: number, startingY: number, rowHeights: number[], rowGap: number, initialTop: number, initialHeight: number): number;
3
+ static calculateSnappedWidth(deltaX: number, initialWidth: number, gap: number, gridColumnWidth: number): number;
4
+ static calculate(initialTop: number, rowHeights: number[], rowGap: number): any;
5
+ private static accumulateHeight;
6
+ }
@@ -0,0 +1,70 @@
1
+ export class ResizeUtil {
2
+ static calculateSnappedHeight(deltaY, startingY, rowHeights, rowGap, initialTop, initialHeight) {
3
+ const snappedHeight = startingY + deltaY;
4
+ const rowsAbove = ResizeUtil.calculate(initialTop, rowHeights, rowGap).targetIndex || 0;
5
+ const res = ResizeUtil.calculate(snappedHeight, rowHeights, rowGap);
6
+ const accumulatedHeight = res.accumulatedHeight;
7
+ const startRowIndex = res.targetIndex;
8
+ const aboveRowsHeight = ResizeUtil.accumulateHeight(rowsAbove, rowHeights, rowGap);
9
+ let result = initialHeight;
10
+ let previousRowsHeight = ResizeUtil.accumulateHeight(startRowIndex, rowHeights, rowGap);
11
+ if (deltaY > 0) {
12
+ const rowHeight = rowHeights[startRowIndex];
13
+ const halfwayThreshold = previousRowsHeight + rowGap + rowHeight / 2;
14
+ if (snappedHeight >= halfwayThreshold) {
15
+ result = accumulatedHeight - aboveRowsHeight;
16
+ }
17
+ else {
18
+ result = initialHeight + deltaY;
19
+ }
20
+ result = result <= 0 ? rowHeights[startRowIndex - 1] : result;
21
+ }
22
+ else if (deltaY < 0) {
23
+ previousRowsHeight =
24
+ previousRowsHeight === 0 ? rowHeights[0] : previousRowsHeight;
25
+ const currentRowHeight = rowHeights[startRowIndex];
26
+ const halfwayThreshold = accumulatedHeight - currentRowHeight / 2 - rowGap;
27
+ if (startRowIndex !== 0 && startRowIndex >= startRowIndex - 1) {
28
+ if (snappedHeight <= halfwayThreshold) {
29
+ result =
30
+ accumulatedHeight - currentRowHeight - rowGap - aboveRowsHeight;
31
+ }
32
+ else {
33
+ result = rowHeights
34
+ .slice(rowsAbove, startRowIndex)
35
+ .reduce((sum, height) => sum + height, 0);
36
+ }
37
+ }
38
+ else {
39
+ result = snappedHeight - aboveRowsHeight;
40
+ }
41
+ }
42
+ return result;
43
+ }
44
+ static calculateSnappedWidth(deltaX, initialWidth, gap, gridColumnWidth) {
45
+ const newSize = initialWidth + deltaX;
46
+ const totalSpan = Math.round(newSize / (gridColumnWidth + gap));
47
+ const snappedWidth = totalSpan * gridColumnWidth + (totalSpan - 1) * gap;
48
+ return snappedWidth < gridColumnWidth ? gridColumnWidth : snappedWidth;
49
+ }
50
+ static calculate(initialTop, rowHeights, rowGap) {
51
+ let targetIndex = 0;
52
+ let accumulatedHeight = 0;
53
+ for (let i = 0; i < rowHeights.length; i++) {
54
+ accumulatedHeight += rowHeights[i] + (i > 0 ? rowGap : 0);
55
+ if (initialTop <= accumulatedHeight) {
56
+ targetIndex = i;
57
+ break;
58
+ }
59
+ }
60
+ return { targetIndex, accumulatedHeight };
61
+ }
62
+ static accumulateHeight(rowIndex, rowHeights, rowGap) {
63
+ let accumulatedHeight = 0;
64
+ for (let i = 0; i < rowIndex; i++) {
65
+ accumulatedHeight += rowHeights[i] + rowGap;
66
+ }
67
+ return accumulatedHeight;
68
+ }
69
+ }
70
+ //# sourceMappingURL=tile-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-util.js","sourceRoot":"","sources":["../../../src/components/tile-manager/tile-util.ts"],"names":[],"mappings":"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","sourcesContent":["export class ResizeUtil {\n public static calculateSnappedHeight(\n deltaY: number,\n startingY: number,\n rowHeights: number[],\n rowGap: number,\n initialTop: number,\n initialHeight: number\n ): number {\n const snappedHeight = startingY + deltaY;\n const rowsAbove =\n ResizeUtil.calculate(initialTop, rowHeights, rowGap).targetIndex || 0;\n const res = ResizeUtil.calculate(snappedHeight, rowHeights, rowGap)!;\n const accumulatedHeight = res.accumulatedHeight;\n const startRowIndex = res.targetIndex;\n const aboveRowsHeight = ResizeUtil.accumulateHeight(\n rowsAbove,\n rowHeights,\n rowGap\n );\n\n let result = initialHeight;\n let previousRowsHeight = ResizeUtil.accumulateHeight(\n startRowIndex,\n rowHeights,\n rowGap\n );\n\n if (deltaY > 0) {\n const rowHeight = rowHeights[startRowIndex];\n const halfwayThreshold = previousRowsHeight + rowGap + rowHeight / 2;\n\n if (snappedHeight >= halfwayThreshold) {\n result = accumulatedHeight - aboveRowsHeight;\n } else {\n result = initialHeight + deltaY;\n }\n\n result = result <= 0 ? rowHeights[startRowIndex - 1] : result;\n } else if (deltaY < 0) {\n previousRowsHeight =\n previousRowsHeight === 0 ? rowHeights[0] : previousRowsHeight;\n const currentRowHeight = rowHeights[startRowIndex];\n const halfwayThreshold =\n accumulatedHeight - currentRowHeight / 2 - rowGap;\n\n if (startRowIndex !== 0 && startRowIndex >= startRowIndex - 1) {\n if (snappedHeight <= halfwayThreshold) {\n result =\n accumulatedHeight - currentRowHeight - rowGap - aboveRowsHeight;\n } else {\n result = rowHeights\n .slice(rowsAbove, startRowIndex)\n .reduce((sum, height) => sum + height, 0);\n }\n } else {\n result = snappedHeight - aboveRowsHeight;\n }\n }\n\n return result;\n }\n\n public static calculateSnappedWidth(\n deltaX: number,\n initialWidth: number,\n gap: number,\n gridColumnWidth: number\n ): number {\n const newSize = initialWidth + deltaX;\n const totalSpan = Math.round(newSize / (gridColumnWidth + gap));\n const snappedWidth = totalSpan * gridColumnWidth + (totalSpan - 1) * gap;\n\n return snappedWidth < gridColumnWidth ? gridColumnWidth : snappedWidth;\n }\n\n public static calculate(\n initialTop: number,\n rowHeights: number[],\n rowGap: number\n ): any {\n let targetIndex = 0;\n let accumulatedHeight = 0;\n\n for (let i = 0; i < rowHeights.length; i++) {\n accumulatedHeight += rowHeights[i] + (i > 0 ? rowGap : 0);\n if (initialTop <= accumulatedHeight) {\n targetIndex = i;\n break;\n }\n }\n\n return { targetIndex, accumulatedHeight };\n }\n\n private static accumulateHeight(\n rowIndex: number,\n rowHeights: number[],\n rowGap: number\n ): number {\n let accumulatedHeight = 0;\n for (let i = 0; i < rowIndex; i++) {\n accumulatedHeight += rowHeights[i] + rowGap;\n }\n\n return accumulatedHeight;\n }\n}\n"]}
@@ -0,0 +1,128 @@
1
+ import { LitElement, type PropertyValues } from 'lit';
2
+ import type { Constructor } from '../common/mixins/constructor.js';
3
+ type IgcTileChangeState = {
4
+ tile: IgcTileComponent;
5
+ state: boolean;
6
+ };
7
+ export interface IgcTileComponentEventMap {
8
+ igcTileFullscreen: CustomEvent<IgcTileChangeState>;
9
+ igcTileMaximize: CustomEvent<IgcTileChangeState>;
10
+ tileDragStart: CustomEvent<IgcTileComponent>;
11
+ tileDragEnd: CustomEvent<IgcTileComponent>;
12
+ igcResizeStart: CustomEvent<IgcTileComponent>;
13
+ igcResizeMove: CustomEvent<IgcTileComponent>;
14
+ igcResizeEnd: CustomEvent<IgcTileComponent>;
15
+ }
16
+ declare const IgcTileComponent_base: Constructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcTileComponentEventMap>> & Constructor<LitElement>;
17
+ /**
18
+ * The tile component is used within the `igc-tile-manager` as a container
19
+ * for displaying various types of information.
20
+ *
21
+ * @element igc-tile
22
+ *
23
+ * @fires igcTileFullscreen - Fired when tile fullscreen state changes.
24
+ * @fires igcTileMaximize - Fired when tile maximize state changes.
25
+ * @fires igcResizeStart - Fired when tile begins resizing.
26
+ * @fires igcResizeMove - Fired when tile is being resized.
27
+ * @fires igcResizeEnd - Fired when tile finishes resizing.
28
+ */
29
+ export default class IgcTileComponent extends IgcTileComponent_base {
30
+ static readonly tagName = "igc-tile";
31
+ static styles: import("lit").CSSResult[];
32
+ static register(): void;
33
+ private static readonly increment;
34
+ private _dragController;
35
+ private _fullscreenController;
36
+ private _colSpan;
37
+ private _rowSpan;
38
+ private _colStart;
39
+ private _rowStart;
40
+ private _position;
41
+ private _disableDrag;
42
+ private _maximized;
43
+ private _initialPointerX;
44
+ private _initialPointerY;
45
+ private _dragCounter;
46
+ private _dragGhost;
47
+ private _dragImage;
48
+ private _cachedStyles;
49
+ private _managerContext?;
50
+ private _context;
51
+ private _setTileContext;
52
+ private get _draggedItem();
53
+ private get _isSlideMode();
54
+ _ghost: HTMLElement;
55
+ _tileContent: HTMLElement;
56
+ private _isDragging;
57
+ private _hasDragOver;
58
+ private _isResizing;
59
+ /**
60
+ * The unique identifier of the tile.
61
+ * @attr
62
+ */
63
+ tileId: string | null;
64
+ set colSpan(value: number);
65
+ get colSpan(): number;
66
+ set rowSpan(value: number);
67
+ get rowSpan(): number;
68
+ set colStart(value: number);
69
+ get colStart(): number | null;
70
+ set rowStart(value: number);
71
+ get rowStart(): number | null;
72
+ /**
73
+ * Indicates whether the tile occupies the whole screen.
74
+ * @attr fullscreen
75
+ */
76
+ set fullscreen(value: boolean);
77
+ get fullscreen(): boolean;
78
+ /**
79
+ * Indicates whether the tile occupies all available space within the layout.
80
+ * @attr maximized
81
+ */
82
+ set maximized(value: boolean);
83
+ get maximized(): boolean;
84
+ /**
85
+ * Indicates whether the tile can be dragged.
86
+ * @attr disable-drag
87
+ */
88
+ set disableDrag(value: boolean);
89
+ get disableDrag(): boolean;
90
+ /**
91
+ * Indicates whether the tile can be resized.
92
+ * @attr disable-resize
93
+ */
94
+ disableResize: boolean;
95
+ /**
96
+ * Gets/sets the tile's visual position in the layout.
97
+ * Corresponds to the CSS order property.
98
+ * @attr
99
+ */
100
+ set position(value: number);
101
+ get position(): number;
102
+ protected get gridColumnWidth(): number;
103
+ constructor();
104
+ connectedCallback(): void;
105
+ protected updated(changedProperties: PropertyValues): void;
106
+ private emitFullScreenEvent;
107
+ private assignDragImage;
108
+ private handleDragStart;
109
+ private handleDragEnter;
110
+ private handleDragOver;
111
+ private handleDragLeave;
112
+ private handleDragEnd;
113
+ private hasPointerLeftLastSwapTile;
114
+ private cacheStyles;
115
+ private _handleResizeStart;
116
+ private _handleResize;
117
+ private _handleResizeEnd;
118
+ private _calculateRowSpan;
119
+ protected ghostFactory: () => HTMLDivElement;
120
+ protected renderContent(): import("lit-html").TemplateResult<1>;
121
+ protected render(): import("lit-html").TemplateResult<1>;
122
+ }
123
+ declare global {
124
+ interface HTMLElementTagNameMap {
125
+ 'igc-tile': IgcTileComponent;
126
+ }
127
+ }
128
+ export {};