igniteui-webcomponents 7.2.4 → 7.3.0-beta.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 (976) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/animations/player.js +1 -1
  3. package/animations/player.js.map +1 -1
  4. package/animations/view-transition.js +1 -1
  5. package/animations/view-transition.js.map +1 -1
  6. package/components/accordion/accordion.d.ts +1 -1
  7. package/components/accordion/accordion.js +7 -6
  8. package/components/accordion/accordion.js.map +1 -1
  9. package/components/avatar/avatar.js +3 -3
  10. package/components/avatar/avatar.js.map +1 -1
  11. package/components/avatar/themes/themes.d.ts +1 -1
  12. package/components/avatar/themes/themes.js.map +1 -1
  13. package/components/badge/badge.d.ts +1 -1
  14. package/components/badge/badge.js +5 -5
  15. package/components/badge/badge.js.map +1 -1
  16. package/components/badge/themes/themes.d.ts +1 -1
  17. package/components/badge/themes/themes.js.map +1 -1
  18. package/components/banner/banner.d.ts +2 -2
  19. package/components/banner/banner.js +8 -8
  20. package/components/banner/banner.js.map +1 -1
  21. package/components/banner/themes/themes.d.ts +1 -1
  22. package/components/banner/themes/themes.js.map +1 -1
  23. package/components/button/button-base.d.ts +2 -2
  24. package/components/button/button-base.js +9 -8
  25. package/components/button/button-base.js.map +1 -1
  26. package/components/button/button.d.ts +3 -3
  27. package/components/button/button.js +2 -2
  28. package/components/button/button.js.map +1 -1
  29. package/components/button/icon-button.js +3 -3
  30. package/components/button/icon-button.js.map +1 -1
  31. package/components/button/themes/button/themes.d.ts +1 -1
  32. package/components/button/themes/button/themes.js.map +1 -1
  33. package/components/button/themes/icon-button/themes.d.ts +1 -1
  34. package/components/button/themes/icon-button/themes.js.map +1 -1
  35. package/components/button-group/button-group.d.ts +42 -21
  36. package/components/button-group/button-group.js +101 -106
  37. package/components/button-group/button-group.js.map +1 -1
  38. package/components/button-group/themes/button.d.ts +1 -1
  39. package/components/button-group/themes/button.js.map +1 -1
  40. package/components/button-group/themes/group.d.ts +1 -1
  41. package/components/button-group/themes/group.js.map +1 -1
  42. package/components/button-group/toggle-button.d.ts +17 -10
  43. package/components/button-group/toggle-button.js +28 -13
  44. package/components/button-group/toggle-button.js.map +1 -1
  45. package/components/calendar/base.d.ts +29 -10
  46. package/components/calendar/base.js +12 -15
  47. package/components/calendar/base.js.map +1 -1
  48. package/components/calendar/calendar.d.ts +39 -8
  49. package/components/calendar/calendar.js +96 -85
  50. package/components/calendar/calendar.js.map +1 -1
  51. package/components/calendar/days-view/days-view.d.ts +49 -22
  52. package/components/calendar/days-view/days-view.js +102 -163
  53. package/components/calendar/days-view/days-view.js.map +1 -1
  54. package/components/calendar/helpers.d.ts +3 -62
  55. package/components/calendar/helpers.js +6 -110
  56. package/components/calendar/helpers.js.map +1 -1
  57. package/components/calendar/months-view/months-view.d.ts +7 -21
  58. package/components/calendar/months-view/months-view.js +30 -83
  59. package/components/calendar/months-view/months-view.js.map +1 -1
  60. package/components/calendar/selection.d.ts +21 -0
  61. package/components/calendar/selection.js +42 -0
  62. package/components/calendar/selection.js.map +1 -0
  63. package/components/calendar/themes/calendar.d.ts +1 -1
  64. package/components/calendar/themes/calendar.js.map +1 -1
  65. package/components/calendar/themes/days.d.ts +1 -1
  66. package/components/calendar/themes/days.js.map +1 -1
  67. package/components/calendar/themes/year-month.d.ts +1 -1
  68. package/components/calendar/themes/year-month.js.map +1 -1
  69. package/components/calendar/types.d.ts +18 -0
  70. package/components/calendar/types.js.map +1 -1
  71. package/components/calendar/year-month-view.base.d.ts +44 -0
  72. package/components/calendar/year-month-view.base.js +89 -0
  73. package/components/calendar/year-month-view.base.js.map +1 -0
  74. package/components/calendar/years-view/years-view.d.ts +7 -20
  75. package/components/calendar/years-view/years-view.js +25 -79
  76. package/components/calendar/years-view/years-view.js.map +1 -1
  77. package/components/card/card.actions.js +2 -2
  78. package/components/card/card.actions.js.map +1 -1
  79. package/components/card/card.content.d.ts +1 -1
  80. package/components/card/card.content.js +2 -2
  81. package/components/card/card.content.js.map +1 -1
  82. package/components/card/card.d.ts +1 -1
  83. package/components/card/card.header.js +2 -2
  84. package/components/card/card.header.js.map +1 -1
  85. package/components/card/card.js +2 -2
  86. package/components/card/card.js.map +1 -1
  87. package/components/card/card.media.d.ts +1 -1
  88. package/components/card/card.media.js +1 -1
  89. package/components/card/card.media.js.map +1 -1
  90. package/components/card/themes/actions.d.ts +1 -1
  91. package/components/card/themes/actions.js.map +1 -1
  92. package/components/card/themes/container.d.ts +1 -1
  93. package/components/card/themes/container.js.map +1 -1
  94. package/components/card/themes/content.d.ts +1 -1
  95. package/components/card/themes/content.js.map +1 -1
  96. package/components/card/themes/header.d.ts +1 -1
  97. package/components/card/themes/header.js.map +1 -1
  98. package/components/carousel/animations.d.ts +1 -1
  99. package/components/carousel/animations.js +2 -2
  100. package/components/carousel/animations.js.map +1 -1
  101. package/components/carousel/carousel-indicator-container.js +4 -4
  102. package/components/carousel/carousel-indicator-container.js.map +1 -1
  103. package/components/carousel/carousel-indicator.d.ts +1 -1
  104. package/components/carousel/carousel-indicator.js +5 -5
  105. package/components/carousel/carousel-indicator.js.map +1 -1
  106. package/components/carousel/carousel-slide.d.ts +1 -1
  107. package/components/carousel/carousel-slide.js +9 -9
  108. package/components/carousel/carousel-slide.js.map +1 -1
  109. package/components/carousel/carousel.d.ts +7 -7
  110. package/components/carousel/carousel.js +39 -28
  111. package/components/carousel/carousel.js.map +1 -1
  112. package/components/carousel/themes/container.d.ts +1 -1
  113. package/components/carousel/themes/container.js.map +1 -1
  114. package/components/carousel/themes/indicator-container.d.ts +1 -1
  115. package/components/carousel/themes/indicator-container.js.map +1 -1
  116. package/components/chat/chat-input.d.ts +4 -4
  117. package/components/chat/chat-input.js +9 -8
  118. package/components/chat/chat-input.js.map +1 -1
  119. package/components/chat/chat-message.d.ts +1 -1
  120. package/components/chat/chat-message.js +7 -6
  121. package/components/chat/chat-message.js.map +1 -1
  122. package/components/chat/chat-state.d.ts +2 -2
  123. package/components/chat/chat-state.js +2 -1
  124. package/components/chat/chat-state.js.map +1 -1
  125. package/components/chat/chat.d.ts +4 -4
  126. package/components/chat/chat.js +7 -7
  127. package/components/chat/chat.js.map +1 -1
  128. package/components/chat/message-attachments.js +5 -5
  129. package/components/chat/message-attachments.js.map +1 -1
  130. package/components/chat/themes/attachments.d.ts +1 -1
  131. package/components/chat/themes/attachments.js.map +1 -1
  132. package/components/chat/themes/input.d.ts +1 -1
  133. package/components/chat/themes/input.js.map +1 -1
  134. package/components/chat/themes/message.d.ts +1 -1
  135. package/components/chat/themes/message.js.map +1 -1
  136. package/components/chat/themes/themes.d.ts +1 -1
  137. package/components/chat/themes/themes.js.map +1 -1
  138. package/components/chat/types.d.ts +2 -2
  139. package/components/chat/types.js.map +1 -1
  140. package/components/chat/utils.d.ts +1 -1
  141. package/components/chat/utils.js +3 -3
  142. package/components/chat/utils.js.map +1 -1
  143. package/components/checkbox/checkbox-base.d.ts +7 -7
  144. package/components/checkbox/checkbox-base.js +7 -7
  145. package/components/checkbox/checkbox-base.js.map +1 -1
  146. package/components/checkbox/checkbox.js +7 -6
  147. package/components/checkbox/checkbox.js.map +1 -1
  148. package/components/checkbox/switch.js +7 -6
  149. package/components/checkbox/switch.js.map +1 -1
  150. package/components/checkbox/themes/checkbox-themes.d.ts +1 -1
  151. package/components/checkbox/themes/checkbox-themes.js.map +1 -1
  152. package/components/checkbox/themes/switch-themes.d.ts +1 -1
  153. package/components/checkbox/themes/switch-themes.js.map +1 -1
  154. package/components/checkbox/validators.d.ts +1 -1
  155. package/components/checkbox/validators.js +1 -1
  156. package/components/checkbox/validators.js.map +1 -1
  157. package/components/chip/chip.d.ts +9 -3
  158. package/components/chip/chip.js +10 -6
  159. package/components/chip/chip.js.map +1 -1
  160. package/components/chip/themes/chip.base.css.js +1 -1
  161. package/components/chip/themes/chip.base.css.js.map +1 -1
  162. package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
  163. package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
  164. package/components/chip/themes/dark/chip.fluent.css.js +1 -1
  165. package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
  166. package/components/chip/themes/dark/chip.indigo.css.js +1 -1
  167. package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
  168. package/components/chip/themes/dark/chip.material.css.js +1 -1
  169. package/components/chip/themes/dark/chip.material.css.js.map +1 -1
  170. package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
  171. package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
  172. package/components/chip/themes/light/chip.fluent.css.js +1 -1
  173. package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
  174. package/components/chip/themes/light/chip.indigo.css.js +1 -1
  175. package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
  176. package/components/chip/themes/light/chip.material.css.js +1 -1
  177. package/components/chip/themes/light/chip.material.css.js.map +1 -1
  178. package/components/chip/themes/light/chip.shared.css.js +1 -1
  179. package/components/chip/themes/light/chip.shared.css.js.map +1 -1
  180. package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
  181. package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
  182. package/components/chip/themes/shared/chip.common.css.js +1 -1
  183. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  184. package/components/chip/themes/shared/chip.fluent.css.js +1 -1
  185. package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
  186. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  187. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  188. package/components/chip/themes/themes.d.ts +1 -1
  189. package/components/chip/themes/themes.js.map +1 -1
  190. package/components/combo/combo-header.js +2 -2
  191. package/components/combo/combo-header.js.map +1 -1
  192. package/components/combo/combo-item.d.ts +0 -2
  193. package/components/combo/combo-item.js +4 -7
  194. package/components/combo/combo-item.js.map +1 -1
  195. package/components/combo/combo.d.ts +84 -27
  196. package/components/combo/combo.js +194 -157
  197. package/components/combo/combo.js.map +1 -1
  198. package/components/combo/controllers/data.d.ts +30 -3
  199. package/components/combo/controllers/data.js +34 -9
  200. package/components/combo/controllers/data.js.map +1 -1
  201. package/components/combo/controllers/navigation.d.ts +8 -2
  202. package/components/combo/controllers/navigation.js +11 -12
  203. package/components/combo/controllers/navigation.js.map +1 -1
  204. package/components/combo/operations/filter.d.ts +17 -1
  205. package/components/combo/operations/filter.js +29 -9
  206. package/components/combo/operations/filter.js.map +1 -1
  207. package/components/combo/operations/group.js +1 -1
  208. package/components/combo/operations/group.js.map +1 -1
  209. package/components/combo/themes/combo.base.css.js +1 -1
  210. package/components/combo/themes/combo.base.css.js.map +1 -1
  211. package/components/combo/themes/themes.d.ts +1 -1
  212. package/components/combo/themes/themes.js.map +1 -1
  213. package/components/combo/types.d.ts +8 -4
  214. package/components/combo/types.js.map +1 -1
  215. package/components/combo/validators.d.ts +1 -1
  216. package/components/combo/validators.js.map +1 -1
  217. package/components/date-picker/date-picker.base.d.ts +294 -0
  218. package/components/date-picker/date-picker.base.js +480 -0
  219. package/components/date-picker/date-picker.base.js.map +1 -0
  220. package/components/date-picker/date-picker.d.ts +53 -174
  221. package/components/date-picker/date-picker.js +88 -399
  222. package/components/date-picker/date-picker.js.map +1 -1
  223. package/components/date-picker/themes/themes.d.ts +1 -1
  224. package/components/date-picker/themes/themes.js.map +1 -1
  225. package/components/date-picker/validators.d.ts +1 -1
  226. package/components/date-picker/validators.js +2 -2
  227. package/components/date-picker/validators.js.map +1 -1
  228. package/components/date-range-picker/date-range-input.d.ts +12 -14
  229. package/components/date-range-picker/date-range-input.js +42 -98
  230. package/components/date-range-picker/date-range-input.js.map +1 -1
  231. package/components/date-range-picker/date-range-mask-parser.d.ts +22 -34
  232. package/components/date-range-picker/date-range-mask-parser.js +38 -69
  233. package/components/date-range-picker/date-range-mask-parser.js.map +1 -1
  234. package/components/date-range-picker/date-range-picker.d.ts +97 -191
  235. package/components/date-range-picker/date-range-picker.js +210 -532
  236. package/components/date-range-picker/date-range-picker.js.map +1 -1
  237. package/components/date-range-picker/predefined-ranges-area.d.ts +2 -2
  238. package/components/date-range-picker/predefined-ranges-area.js +5 -5
  239. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  240. package/components/date-range-picker/themes/ranges-themes.d.ts +1 -1
  241. package/components/date-range-picker/themes/ranges-themes.js.map +1 -1
  242. package/components/date-range-picker/themes/themes.d.ts +1 -1
  243. package/components/date-range-picker/themes/themes.js.map +1 -1
  244. package/components/date-range-picker/validators.d.ts +1 -1
  245. package/components/date-range-picker/validators.js +15 -22
  246. package/components/date-range-picker/validators.js.map +1 -1
  247. package/components/date-time-input/date-part.d.ts +18 -1
  248. package/components/date-time-input/date-part.js +10 -0
  249. package/components/date-time-input/date-part.js.map +1 -1
  250. package/components/date-time-input/date-time-input.base.d.ts +72 -25
  251. package/components/date-time-input/date-time-input.base.js +100 -36
  252. package/components/date-time-input/date-time-input.base.js.map +1 -1
  253. package/components/date-time-input/date-time-input.d.ts +13 -23
  254. package/components/date-time-input/date-time-input.js +45 -65
  255. package/components/date-time-input/date-time-input.js.map +1 -1
  256. package/components/date-time-input/datetime-mask-parser.d.ts +45 -109
  257. package/components/date-time-input/datetime-mask-parser.js +88 -139
  258. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  259. package/components/date-time-input/validators.d.ts +1 -1
  260. package/components/date-time-input/validators.js +2 -2
  261. package/components/date-time-input/validators.js.map +1 -1
  262. package/components/dialog/dialog.d.ts +2 -2
  263. package/components/dialog/dialog.js +17 -18
  264. package/components/dialog/dialog.js.map +1 -1
  265. package/components/dialog/themes/themes.d.ts +1 -1
  266. package/components/dialog/themes/themes.js.map +1 -1
  267. package/components/divider/divider.d.ts +2 -1
  268. package/components/divider/divider.js +3 -3
  269. package/components/divider/divider.js.map +1 -1
  270. package/components/divider/themes/themes.d.ts +1 -1
  271. package/components/divider/themes/themes.js.map +1 -1
  272. package/components/dropdown/dropdown-group.d.ts +10 -3
  273. package/components/dropdown/dropdown-group.js +21 -5
  274. package/components/dropdown/dropdown-group.js.map +1 -1
  275. package/components/dropdown/dropdown-header.d.ts +2 -2
  276. package/components/dropdown/dropdown-header.js +7 -2
  277. package/components/dropdown/dropdown-header.js.map +1 -1
  278. package/components/dropdown/dropdown-item.d.ts +4 -4
  279. package/components/dropdown/dropdown-item.js +3 -3
  280. package/components/dropdown/dropdown-item.js.map +1 -1
  281. package/components/dropdown/dropdown.d.ts +75 -32
  282. package/components/dropdown/dropdown.js +189 -110
  283. package/components/dropdown/dropdown.js.map +1 -1
  284. package/components/dropdown/themes/container.d.ts +1 -1
  285. package/components/dropdown/themes/container.js.map +1 -1
  286. package/components/dropdown/themes/group.d.ts +1 -1
  287. package/components/dropdown/themes/group.js.map +1 -1
  288. package/components/dropdown/themes/header.d.ts +1 -1
  289. package/components/dropdown/themes/header.js.map +1 -1
  290. package/components/dropdown/themes/item.d.ts +1 -1
  291. package/components/dropdown/themes/item.js.map +1 -1
  292. package/components/expansion-panel/expansion-panel.d.ts +14 -5
  293. package/components/expansion-panel/expansion-panel.js +10 -9
  294. package/components/expansion-panel/expansion-panel.js.map +1 -1
  295. package/components/expansion-panel/themes/themes.d.ts +1 -1
  296. package/components/expansion-panel/themes/themes.js.map +1 -1
  297. package/components/file-input/file-input.d.ts +20 -12
  298. package/components/file-input/file-input.js +17 -12
  299. package/components/file-input/file-input.js.map +1 -1
  300. package/components/file-input/themes/themes.d.ts +1 -1
  301. package/components/file-input/themes/themes.js.map +1 -1
  302. package/components/file-input/validators.d.ts +1 -1
  303. package/components/file-input/validators.js +1 -1
  304. package/components/file-input/validators.js.map +1 -1
  305. package/components/focus-trap/focus-trap.js +3 -2
  306. package/components/focus-trap/focus-trap.js.map +1 -1
  307. package/components/highlight/highlight.js +2 -2
  308. package/components/highlight/highlight.js.map +1 -1
  309. package/components/highlight/service.d.ts +4 -1
  310. package/components/highlight/service.js +23 -7
  311. package/components/highlight/service.js.map +1 -1
  312. package/components/highlight/themes/themes.d.ts +1 -1
  313. package/components/highlight/themes/themes.js.map +1 -1
  314. package/components/icon/icon-references.d.ts +3 -2
  315. package/components/icon/icon-references.js +103 -491
  316. package/components/icon/icon-references.js.map +1 -1
  317. package/components/icon/icon-state.broadcast.d.ts +14 -17
  318. package/components/icon/icon-state.broadcast.js +19 -20
  319. package/components/icon/icon-state.broadcast.js.map +1 -1
  320. package/components/icon/icon.d.ts +12 -24
  321. package/components/icon/icon.js +36 -28
  322. package/components/icon/icon.js.map +1 -1
  323. package/components/icon/icon.registry.d.ts +69 -131
  324. package/components/icon/icon.registry.js +51 -53
  325. package/components/icon/icon.registry.js.map +1 -1
  326. package/components/icon/internal-icons-lib.js +2 -2
  327. package/components/icon/internal-icons-lib.js.map +1 -1
  328. package/components/icon/registry/parser.d.ts +15 -3
  329. package/components/icon/registry/parser.js +36 -11
  330. package/components/icon/registry/parser.js.map +1 -1
  331. package/components/icon/registry/types.d.ts +55 -11
  332. package/components/icon/registry/types.js.map +1 -1
  333. package/components/icon/themes/icon.base.css.js +1 -1
  334. package/components/icon/themes/icon.base.css.js.map +1 -1
  335. package/components/icon/themes/shared/icon.common.css.js +1 -1
  336. package/components/icon/themes/shared/icon.common.css.js.map +1 -1
  337. package/components/icon/themes/themes.d.ts +1 -1
  338. package/components/icon/themes/themes.js.map +1 -1
  339. package/components/input/input-base.d.ts +10 -25
  340. package/components/input/input-base.js +14 -23
  341. package/components/input/input-base.js.map +1 -1
  342. package/components/input/input.d.ts +15 -12
  343. package/components/input/input.js +8 -9
  344. package/components/input/input.js.map +1 -1
  345. package/components/input/themes/input.base.css.js +1 -1
  346. package/components/input/themes/input.base.css.js.map +1 -1
  347. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  348. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  349. package/components/input/themes/shared/input.common.css.js +1 -1
  350. package/components/input/themes/shared/input.common.css.js.map +1 -1
  351. package/components/input/themes/shared/input.fluent.css.js +1 -1
  352. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  353. package/components/input/themes/shared/input.indigo.css.js +1 -1
  354. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  355. package/components/input/themes/shared/input.material.css.js +1 -1
  356. package/components/input/themes/shared/input.material.css.js.map +1 -1
  357. package/components/input/themes/themes.d.ts +1 -1
  358. package/components/input/themes/themes.js.map +1 -1
  359. package/components/input/validators.d.ts +1 -1
  360. package/components/input/validators.js +1 -1
  361. package/components/input/validators.js.map +1 -1
  362. package/components/list/list-header.js +3 -3
  363. package/components/list/list-header.js.map +1 -1
  364. package/components/list/list-item.js +3 -3
  365. package/components/list/list-item.js.map +1 -1
  366. package/components/list/list.js +3 -3
  367. package/components/list/list.js.map +1 -1
  368. package/components/list/themes/container.d.ts +1 -1
  369. package/components/list/themes/container.js.map +1 -1
  370. package/components/list/themes/header.d.ts +1 -1
  371. package/components/list/themes/header.js.map +1 -1
  372. package/components/list/themes/item.d.ts +1 -1
  373. package/components/list/themes/item.js.map +1 -1
  374. package/components/mask-input/mask-history.d.ts +99 -0
  375. package/components/mask-input/mask-history.js +95 -0
  376. package/components/mask-input/mask-history.js.map +1 -0
  377. package/components/mask-input/mask-input.d.ts +14 -9
  378. package/components/mask-input/mask-input.js +20 -24
  379. package/components/mask-input/mask-input.js.map +1 -1
  380. package/components/mask-input/mask-parser.d.ts +20 -2
  381. package/components/mask-input/mask-parser.js +21 -13
  382. package/components/mask-input/mask-parser.js.map +1 -1
  383. package/components/mask-input/validators.d.ts +1 -1
  384. package/components/mask-input/validators.js +1 -1
  385. package/components/mask-input/validators.js.map +1 -1
  386. package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
  387. package/components/nav-drawer/nav-drawer-header-item.js +2 -2
  388. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  389. package/components/nav-drawer/nav-drawer-item.d.ts +2 -2
  390. package/components/nav-drawer/nav-drawer-item.js +4 -4
  391. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  392. package/components/nav-drawer/nav-drawer.d.ts +3 -3
  393. package/components/nav-drawer/nav-drawer.js +11 -14
  394. package/components/nav-drawer/nav-drawer.js.map +1 -1
  395. package/components/nav-drawer/themes/container.base.css.js +1 -1
  396. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  397. package/components/nav-drawer/themes/container.d.ts +1 -1
  398. package/components/nav-drawer/themes/container.js +2 -3
  399. package/components/nav-drawer/themes/container.js.map +1 -1
  400. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
  401. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
  402. package/components/nav-drawer/themes/header-item.d.ts +1 -1
  403. package/components/nav-drawer/themes/header-item.js.map +1 -1
  404. package/components/nav-drawer/themes/item.d.ts +1 -1
  405. package/components/nav-drawer/themes/item.js.map +1 -1
  406. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
  407. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
  408. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
  409. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
  410. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
  411. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
  412. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
  413. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
  414. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
  415. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
  416. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
  417. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
  418. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
  419. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
  420. package/components/navbar/navbar.js +2 -2
  421. package/components/navbar/navbar.js.map +1 -1
  422. package/components/navbar/themes/themes.d.ts +1 -1
  423. package/components/navbar/themes/themes.js.map +1 -1
  424. package/components/popover/popover.d.ts +10 -3
  425. package/components/popover/popover.js +114 -99
  426. package/components/popover/popover.js.map +1 -1
  427. package/components/progress/base.d.ts +1 -1
  428. package/components/progress/base.js +5 -4
  429. package/components/progress/base.js.map +1 -1
  430. package/components/progress/circular-gradient.d.ts +2 -2
  431. package/components/progress/circular-gradient.js +1 -1
  432. package/components/progress/circular-gradient.js.map +1 -1
  433. package/components/progress/circular-progress.d.ts +15 -15
  434. package/components/progress/circular-progress.js +7 -6
  435. package/components/progress/circular-progress.js.map +1 -1
  436. package/components/progress/linear-progress.d.ts +12 -12
  437. package/components/progress/linear-progress.js +4 -4
  438. package/components/progress/linear-progress.js.map +1 -1
  439. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  440. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  441. package/components/progress/themes/circular/themes.d.ts +1 -1
  442. package/components/progress/themes/circular/themes.js.map +1 -1
  443. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  444. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  445. package/components/progress/themes/linear/themes.d.ts +1 -1
  446. package/components/progress/themes/linear/themes.js.map +1 -1
  447. package/components/qr-code/model/encode.d.ts +20 -0
  448. package/components/qr-code/model/encode.js +166 -0
  449. package/components/qr-code/model/encode.js.map +1 -0
  450. package/components/qr-code/model/error-correction.d.ts +15 -0
  451. package/components/qr-code/model/error-correction.js +1114 -0
  452. package/components/qr-code/model/error-correction.js.map +1 -0
  453. package/components/qr-code/model/mask.d.ts +11 -0
  454. package/components/qr-code/model/mask.js +161 -0
  455. package/components/qr-code/model/mask.js.map +1 -0
  456. package/components/qr-code/model/matrix.d.ts +15 -0
  457. package/components/qr-code/model/matrix.js +277 -0
  458. package/components/qr-code/model/matrix.js.map +1 -0
  459. package/components/qr-code/qr-code.d.ts +134 -0
  460. package/components/qr-code/qr-code.js +221 -0
  461. package/components/qr-code/qr-code.js.map +1 -0
  462. package/components/qr-code/renderer/constants.d.ts +26 -0
  463. package/components/qr-code/renderer/constants.js +5 -0
  464. package/components/qr-code/renderer/constants.js.map +1 -0
  465. package/components/qr-code/renderer/corner.d.ts +23 -0
  466. package/components/qr-code/renderer/corner.js +25 -0
  467. package/components/qr-code/renderer/corner.js.map +1 -0
  468. package/components/qr-code/renderer/dots.d.ts +14 -0
  469. package/components/qr-code/renderer/dots.js +7 -0
  470. package/components/qr-code/renderer/dots.js.map +1 -0
  471. package/components/qr-code/renderer/helpers.d.ts +18 -0
  472. package/components/qr-code/renderer/helpers.js +158 -0
  473. package/components/qr-code/renderer/helpers.js.map +1 -0
  474. package/components/qr-code/renderer/image.d.ts +23 -0
  475. package/components/qr-code/renderer/image.js +29 -0
  476. package/components/qr-code/renderer/image.js.map +1 -0
  477. package/components/qr-code/themes/dark/qr-code.bootstrap.css.js +3 -0
  478. package/components/qr-code/themes/dark/qr-code.bootstrap.css.js.map +1 -0
  479. package/components/qr-code/themes/dark/qr-code.fluent.css.d.ts +1 -0
  480. package/components/qr-code/themes/dark/qr-code.fluent.css.js +3 -0
  481. package/components/qr-code/themes/dark/qr-code.fluent.css.js.map +1 -0
  482. package/components/qr-code/themes/dark/qr-code.indigo.css.d.ts +1 -0
  483. package/components/qr-code/themes/dark/qr-code.indigo.css.js +3 -0
  484. package/components/qr-code/themes/dark/qr-code.indigo.css.js.map +1 -0
  485. package/components/qr-code/themes/dark/qr-code.material.css.d.ts +1 -0
  486. package/components/qr-code/themes/dark/qr-code.material.css.js +3 -0
  487. package/components/qr-code/themes/dark/qr-code.material.css.js.map +1 -0
  488. package/components/qr-code/themes/light/qr-code.bootstrap.css.d.ts +1 -0
  489. package/components/qr-code/themes/light/qr-code.bootstrap.css.js +3 -0
  490. package/components/qr-code/themes/light/qr-code.bootstrap.css.js.map +1 -0
  491. package/components/qr-code/themes/light/qr-code.fluent.css.d.ts +1 -0
  492. package/components/qr-code/themes/light/qr-code.fluent.css.js +3 -0
  493. package/components/qr-code/themes/light/qr-code.fluent.css.js.map +1 -0
  494. package/components/qr-code/themes/light/qr-code.indigo.css.d.ts +1 -0
  495. package/components/qr-code/themes/light/qr-code.indigo.css.js +3 -0
  496. package/components/qr-code/themes/light/qr-code.indigo.css.js.map +1 -0
  497. package/components/qr-code/themes/light/qr-code.material.css.d.ts +1 -0
  498. package/components/qr-code/themes/light/qr-code.material.css.js +3 -0
  499. package/components/qr-code/themes/light/qr-code.material.css.js.map +1 -0
  500. package/components/qr-code/themes/light/qr-code.shared.css.d.ts +1 -0
  501. package/components/qr-code/themes/light/qr-code.shared.css.js +3 -0
  502. package/components/qr-code/themes/light/qr-code.shared.css.js.map +1 -0
  503. package/components/qr-code/themes/qr-code.base.css.d.ts +1 -0
  504. package/components/qr-code/themes/qr-code.base.css.js +3 -0
  505. package/components/qr-code/themes/qr-code.base.css.js.map +1 -0
  506. package/components/qr-code/themes/shared/qr-code.common.css.d.ts +1 -0
  507. package/components/qr-code/themes/shared/qr-code.common.css.js +3 -0
  508. package/components/qr-code/themes/shared/qr-code.common.css.js.map +1 -0
  509. package/components/qr-code/themes/themes.d.ts +2 -0
  510. package/components/qr-code/themes/themes.js +46 -0
  511. package/components/qr-code/themes/themes.js.map +1 -0
  512. package/components/qr-code/types.d.ts +16 -0
  513. package/components/qr-code/types.js +2 -0
  514. package/components/qr-code/types.js.map +1 -0
  515. package/components/radio/controller.d.ts +35 -0
  516. package/components/radio/controller.js +100 -0
  517. package/components/radio/controller.js.map +1 -0
  518. package/components/radio/radio.d.ts +26 -14
  519. package/components/radio/radio.js +47 -36
  520. package/components/radio/radio.js.map +1 -1
  521. package/components/radio/themes/themes.d.ts +1 -1
  522. package/components/radio/themes/themes.js.map +1 -1
  523. package/components/radio/validators.d.ts +1 -1
  524. package/components/radio/validators.js +5 -3
  525. package/components/radio/validators.js.map +1 -1
  526. package/components/radio-group/radio-group.d.ts +19 -10
  527. package/components/radio-group/radio-group.js +50 -41
  528. package/components/radio-group/radio-group.js.map +1 -1
  529. package/components/radio-group/themes/themes.d.ts +1 -1
  530. package/components/radio-group/themes/themes.js.map +1 -1
  531. package/components/rating/rating-symbol.d.ts +1 -1
  532. package/components/rating/rating-symbol.js +1 -1
  533. package/components/rating/rating-symbol.js.map +1 -1
  534. package/components/rating/rating.d.ts +6 -6
  535. package/components/rating/rating.js +12 -9
  536. package/components/rating/rating.js.map +1 -1
  537. package/components/rating/themes/themes.d.ts +1 -1
  538. package/components/rating/themes/themes.js.map +1 -1
  539. package/components/resize-container/resize-container.d.ts +4 -4
  540. package/components/resize-container/resize-container.js +4 -4
  541. package/components/resize-container/resize-container.js.map +1 -1
  542. package/components/resize-container/resize-controller.js +2 -2
  543. package/components/resize-container/resize-controller.js.map +1 -1
  544. package/components/resize-container/themes/themes.d.ts +1 -1
  545. package/components/resize-container/themes/themes.js.map +1 -1
  546. package/components/ripple/ripple.d.ts +1 -1
  547. package/components/ripple/ripple.js +3 -2
  548. package/components/ripple/ripple.js.map +1 -1
  549. package/components/select/select-group.d.ts +9 -2
  550. package/components/select/select-group.js +21 -5
  551. package/components/select/select-group.js.map +1 -1
  552. package/components/select/select-header.d.ts +1 -1
  553. package/components/select/select-header.js +7 -2
  554. package/components/select/select-header.js.map +1 -1
  555. package/components/select/select-item.d.ts +4 -4
  556. package/components/select/select-item.js +3 -3
  557. package/components/select/select-item.js.map +1 -1
  558. package/components/select/select.d.ts +48 -27
  559. package/components/select/select.js +128 -74
  560. package/components/select/select.js.map +1 -1
  561. package/components/select/themes/select.base.css.js +1 -1
  562. package/components/select/themes/select.base.css.js.map +1 -1
  563. package/components/select/themes/themes.d.ts +1 -1
  564. package/components/select/themes/themes.js.map +1 -1
  565. package/components/select/validators.d.ts +1 -1
  566. package/components/select/validators.js +1 -1
  567. package/components/select/validators.js.map +1 -1
  568. package/components/slider/range-slider.d.ts +2 -2
  569. package/components/slider/range-slider.js +3 -3
  570. package/components/slider/range-slider.js.map +1 -1
  571. package/components/slider/slider-base.js +9 -5
  572. package/components/slider/slider-base.js.map +1 -1
  573. package/components/slider/slider-label.js +1 -1
  574. package/components/slider/slider-label.js.map +1 -1
  575. package/components/slider/slider.d.ts +3 -3
  576. package/components/slider/slider.js +6 -6
  577. package/components/slider/slider.js.map +1 -1
  578. package/components/slider/themes/themes.d.ts +1 -1
  579. package/components/slider/themes/themes.js.map +1 -1
  580. package/components/snackbar/snackbar.d.ts +3 -3
  581. package/components/snackbar/snackbar.js +4 -4
  582. package/components/snackbar/snackbar.js.map +1 -1
  583. package/components/snackbar/themes/themes.d.ts +1 -1
  584. package/components/snackbar/themes/themes.js.map +1 -1
  585. package/components/splitter/splitter.d.ts +106 -23
  586. package/components/splitter/splitter.js +234 -147
  587. package/components/splitter/splitter.js.map +1 -1
  588. package/components/splitter/themes/themes.d.ts +1 -1
  589. package/components/splitter/themes/themes.js.map +1 -1
  590. package/components/splitter/types.d.ts +14 -3
  591. package/components/splitter/types.js.map +1 -1
  592. package/components/stepper/common/animations.d.ts +1 -1
  593. package/components/stepper/common/animations.js +2 -2
  594. package/components/stepper/common/animations.js.map +1 -1
  595. package/components/stepper/step.d.ts +1 -1
  596. package/components/stepper/step.js +7 -7
  597. package/components/stepper/step.js.map +1 -1
  598. package/components/stepper/stepper.d.ts +5 -5
  599. package/components/stepper/stepper.js +12 -9
  600. package/components/stepper/stepper.js.map +1 -1
  601. package/components/stepper/themes/step/themes.d.ts +1 -1
  602. package/components/stepper/themes/step/themes.js.map +1 -1
  603. package/components/tabs/tab-dom.d.ts +31 -28
  604. package/components/tabs/tab-dom.js +84 -34
  605. package/components/tabs/tab-dom.js.map +1 -1
  606. package/components/tabs/tab.d.ts +24 -6
  607. package/components/tabs/tab.js +34 -13
  608. package/components/tabs/tab.js.map +1 -1
  609. package/components/tabs/tabs.d.ts +36 -22
  610. package/components/tabs/tabs.js +113 -102
  611. package/components/tabs/tabs.js.map +1 -1
  612. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +1 -1
  613. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -1
  614. package/components/tabs/themes/tab-themes.d.ts +1 -1
  615. package/components/tabs/themes/tab-themes.js.map +1 -1
  616. package/components/tabs/themes/tabs-themes.d.ts +1 -1
  617. package/components/tabs/themes/tabs-themes.js.map +1 -1
  618. package/components/tabs/themes/tabs.base.css.js +1 -1
  619. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  620. package/components/textarea/textarea.d.ts +19 -14
  621. package/components/textarea/textarea.js +22 -17
  622. package/components/textarea/textarea.js.map +1 -1
  623. package/components/textarea/themes/themes.d.ts +1 -1
  624. package/components/textarea/themes/themes.js.map +1 -1
  625. package/components/textarea/validators.d.ts +1 -1
  626. package/components/textarea/validators.js +1 -1
  627. package/components/textarea/validators.js.map +1 -1
  628. package/components/theme-provider/theme-provider.d.ts +1 -1
  629. package/components/theme-provider/theme-provider.js +2 -2
  630. package/components/theme-provider/theme-provider.js.map +1 -1
  631. package/components/tile-manager/position.d.ts +1 -1
  632. package/components/tile-manager/position.js +2 -2
  633. package/components/tile-manager/position.js.map +1 -1
  634. package/components/tile-manager/resize-state.js +4 -3
  635. package/components/tile-manager/resize-state.js.map +1 -1
  636. package/components/tile-manager/themes/container.d.ts +1 -1
  637. package/components/tile-manager/themes/container.js.map +1 -1
  638. package/components/tile-manager/themes/tile.d.ts +1 -1
  639. package/components/tile-manager/themes/tile.js.map +1 -1
  640. package/components/tile-manager/tile-ghost-util.js +1 -1
  641. package/components/tile-manager/tile-ghost-util.js.map +1 -1
  642. package/components/tile-manager/tile-manager.d.ts +1 -1
  643. package/components/tile-manager/tile-manager.js +7 -7
  644. package/components/tile-manager/tile-manager.js.map +1 -1
  645. package/components/tile-manager/tile.d.ts +4 -4
  646. package/components/tile-manager/tile.js +16 -13
  647. package/components/tile-manager/tile.js.map +1 -1
  648. package/components/toast/themes/themes.d.ts +1 -1
  649. package/components/toast/themes/themes.js.map +1 -1
  650. package/components/toast/toast.d.ts +1 -1
  651. package/components/toast/toast.js +3 -3
  652. package/components/toast/toast.js.map +1 -1
  653. package/components/tooltip/controller.d.ts +18 -16
  654. package/components/tooltip/controller.js +62 -41
  655. package/components/tooltip/controller.js.map +1 -1
  656. package/components/tooltip/service.d.ts +2 -1
  657. package/components/tooltip/service.js +10 -15
  658. package/components/tooltip/service.js.map +1 -1
  659. package/components/tooltip/themes/shared/tooltip.common.css.js +1 -1
  660. package/components/tooltip/themes/shared/tooltip.common.css.js.map +1 -1
  661. package/components/tooltip/themes/shared/tooltip.indigo.css.js +1 -1
  662. package/components/tooltip/themes/shared/tooltip.indigo.css.js.map +1 -1
  663. package/components/tooltip/themes/themes.d.ts +1 -1
  664. package/components/tooltip/themes/themes.js.map +1 -1
  665. package/components/tooltip/themes/tooltip.base.css.js +1 -1
  666. package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
  667. package/components/tooltip/tooltip.d.ts +64 -18
  668. package/components/tooltip/tooltip.js +110 -60
  669. package/components/tooltip/tooltip.js.map +1 -1
  670. package/components/tree/themes/container.base.css.js +1 -1
  671. package/components/tree/themes/container.base.css.js.map +1 -1
  672. package/components/tree/themes/container.d.ts +1 -1
  673. package/components/tree/themes/container.js.map +1 -1
  674. package/components/tree/themes/item.base.css.js +1 -1
  675. package/components/tree/themes/item.base.css.js.map +1 -1
  676. package/components/tree/themes/item.d.ts +1 -1
  677. package/components/tree/themes/item.js.map +1 -1
  678. package/components/tree/tree-item.d.ts +62 -36
  679. package/components/tree/tree-item.js +198 -208
  680. package/components/tree/tree-item.js.map +1 -1
  681. package/components/tree/tree.common.d.ts +16 -1
  682. package/components/tree/tree.common.js +40 -1
  683. package/components/tree/tree.common.js.map +1 -1
  684. package/components/tree/tree.d.ts +21 -14
  685. package/components/tree/tree.js +64 -72
  686. package/components/tree/tree.js.map +1 -1
  687. package/components/tree/tree.navigation.d.ts +39 -29
  688. package/components/tree/tree.navigation.js +140 -192
  689. package/components/tree/tree.navigation.js.map +1 -1
  690. package/components/tree/tree.selection.d.ts +32 -31
  691. package/components/tree/tree.selection.js +184 -178
  692. package/components/tree/tree.selection.js.map +1 -1
  693. package/components/types.js.map +1 -1
  694. package/components/validation-container/validation-container.d.ts +1 -1
  695. package/components/validation-container/validation-container.js +7 -6
  696. package/components/validation-container/validation-container.js.map +1 -1
  697. package/components/virtualization/engine.d.ts +92 -0
  698. package/components/virtualization/engine.js +217 -0
  699. package/components/virtualization/engine.js.map +1 -0
  700. package/components/virtualization/types.d.ts +53 -0
  701. package/components/virtualization/types.js +14 -0
  702. package/components/virtualization/types.js.map +1 -0
  703. package/components/virtualization/virtualization.d.ts +235 -0
  704. package/components/virtualization/virtualization.js +474 -0
  705. package/components/virtualization/virtualization.js.map +1 -0
  706. package/components/visually-hidden/visually-hidden.js +1 -1
  707. package/components/visually-hidden/visually-hidden.js.map +1 -1
  708. package/custom-elements.json +57745 -48130
  709. package/extras/chat-markdown-renderer.d.ts +1 -1
  710. package/extras/chat-markdown-renderer.js.map +1 -1
  711. package/igniteui-webcomponents.css-data.json +2 -2
  712. package/igniteui-webcomponents.html-data.json +1 -1
  713. package/index.d.ts +17 -12
  714. package/index.js +11 -9
  715. package/index.js.map +1 -1
  716. package/internals/abort-handler.js.map +1 -0
  717. package/internals/context.d.ts +39 -0
  718. package/{components/common → internals}/context.js +2 -1
  719. package/internals/context.js.map +1 -0
  720. package/internals/controllers/adopt-styles.d.ts +76 -0
  721. package/internals/controllers/adopt-styles.js +173 -0
  722. package/internals/controllers/adopt-styles.js.map +1 -0
  723. package/internals/controllers/aria-projection.d.ts +144 -0
  724. package/internals/controllers/aria-projection.js +138 -0
  725. package/internals/controllers/aria-projection.js.map +1 -0
  726. package/{components/common → internals}/controllers/async-consumer.js +8 -7
  727. package/internals/controllers/async-consumer.js.map +1 -0
  728. package/internals/controllers/command.js.map +1 -0
  729. package/{components/common → internals}/controllers/drag.js +3 -2
  730. package/internals/controllers/drag.js.map +1 -0
  731. package/{components/common → internals}/controllers/focus-ring.js +5 -2
  732. package/internals/controllers/focus-ring.js.map +1 -0
  733. package/{components/common → internals}/controllers/fullscreen.js +6 -3
  734. package/internals/controllers/fullscreen.js.map +1 -0
  735. package/{components/common → internals}/controllers/gestures.d.ts +1 -1
  736. package/{components/common → internals}/controllers/gestures.js +4 -4
  737. package/internals/controllers/gestures.js.map +1 -0
  738. package/{components/common → internals}/controllers/id-resolver.js +15 -21
  739. package/internals/controllers/id-resolver.js.map +1 -0
  740. package/{components/common → internals}/controllers/internals.d.ts +39 -3
  741. package/{components/common → internals}/controllers/internals.js +28 -0
  742. package/internals/controllers/internals.js.map +1 -0
  743. package/{components/common → internals}/controllers/key-bindings.d.ts +3 -6
  744. package/{components/common → internals}/controllers/key-bindings.js +43 -29
  745. package/internals/controllers/key-bindings.js.map +1 -0
  746. package/{components/common → internals}/controllers/mutation-observer.d.ts +3 -2
  747. package/{components/common → internals}/controllers/mutation-observer.js +24 -22
  748. package/internals/controllers/mutation-observer.js.map +1 -0
  749. package/{components/common → internals}/controllers/resize-observer.d.ts +11 -1
  750. package/{components/common → internals}/controllers/resize-observer.js +13 -2
  751. package/internals/controllers/resize-observer.js.map +1 -0
  752. package/{components/common → internals}/controllers/root-click.js +8 -13
  753. package/internals/controllers/root-click.js.map +1 -0
  754. package/{components/common → internals}/controllers/root-scroll.d.ts +11 -8
  755. package/internals/controllers/root-scroll.js +71 -0
  756. package/internals/controllers/root-scroll.js.map +1 -0
  757. package/{components/common → internals}/controllers/slot.d.ts +17 -1
  758. package/{components/common → internals}/controllers/slot.js +18 -6
  759. package/internals/controllers/slot.js.map +1 -0
  760. package/internals/date/compare.d.ts +2 -0
  761. package/internals/date/compare.js +23 -0
  762. package/internals/date/compare.js.map +1 -0
  763. package/internals/date/converters.d.ts +18 -0
  764. package/internals/date/converters.js +73 -0
  765. package/internals/date/converters.js.map +1 -0
  766. package/{components/calendar → internals/date}/model.d.ts +6 -3
  767. package/{components/calendar → internals/date}/model.js +23 -0
  768. package/internals/date/model.js.map +1 -0
  769. package/internals/decorators/blazorAdditionalDependencies.js.map +1 -0
  770. package/internals/decorators/blazorDeepImport.js.map +1 -0
  771. package/internals/decorators/blazorInclude.js.map +1 -0
  772. package/internals/decorators/blazorIndirectRender.js.map +1 -0
  773. package/internals/decorators/blazorSuppressComponent.js.map +1 -0
  774. package/internals/decorators/shadow-options.js.map +1 -0
  775. package/internals/decorators/watch.js.map +1 -0
  776. package/internals/definitions/defineAllComponents.js +153 -0
  777. package/internals/definitions/defineAllComponents.js.map +1 -0
  778. package/internals/definitions/defineComponents.js.map +1 -0
  779. package/internals/definitions/register.js.map +1 -0
  780. package/{components/common → internals}/i18n/EN/calendar.resources.js +1 -1
  781. package/internals/i18n/EN/calendar.resources.js.map +1 -0
  782. package/internals/i18n/EN/chat.resources.js.map +1 -0
  783. package/internals/i18n/EN/date-picker.resources.js.map +1 -0
  784. package/internals/i18n/EN/date-range-picker.resources.js.map +1 -0
  785. package/internals/i18n/i18n-controller.js.map +1 -0
  786. package/{components/common → internals}/i18n/utils.js +1 -1
  787. package/internals/i18n/utils.js.map +1 -0
  788. package/{components/common → internals}/mixins/alert.d.ts +2 -2
  789. package/{components/common → internals}/mixins/alert.js +3 -3
  790. package/internals/mixins/alert.js.map +1 -0
  791. package/{components/common → internals}/mixins/combo-box.d.ts +10 -2
  792. package/{components/common → internals}/mixins/combo-box.js +9 -4
  793. package/internals/mixins/combo-box.js.map +1 -0
  794. package/internals/mixins/constructor.js.map +1 -0
  795. package/internals/mixins/event-emitter.js.map +1 -0
  796. package/{components/common → internals}/mixins/forms/associated-required.js +10 -19
  797. package/internals/mixins/forms/associated-required.js.map +1 -0
  798. package/{components/common → internals}/mixins/forms/associated.js +45 -38
  799. package/internals/mixins/forms/associated.js.map +1 -0
  800. package/{components/common → internals}/mixins/forms/form-transformers.d.ts +1 -1
  801. package/{components/common → internals}/mixins/forms/form-transformers.js +2 -2
  802. package/internals/mixins/forms/form-transformers.js.map +1 -0
  803. package/internals/mixins/forms/form-value.js.map +1 -0
  804. package/{components/common → internals}/mixins/forms/types.d.ts +5 -6
  805. package/internals/mixins/forms/types.js.map +1 -0
  806. package/{components/common → internals}/mixins/mask-behavior.d.ts +11 -3
  807. package/{components/common → internals}/mixins/mask-behavior.js +117 -29
  808. package/internals/mixins/mask-behavior.js.map +1 -0
  809. package/{components/common → internals}/mixins/option.d.ts +0 -2
  810. package/{components/common → internals}/mixins/option.js +1 -4
  811. package/internals/mixins/option.js.map +1 -0
  812. package/internals/part-map.js.map +1 -0
  813. package/{components/common → internals}/templates/input-shell.d.ts +8 -1
  814. package/{components/common → internals}/templates/input-shell.js +14 -4
  815. package/internals/templates/input-shell.js.map +1 -0
  816. package/{components/common → internals}/templates/masked-input.d.ts +8 -4
  817. package/{components/common → internals}/templates/masked-input.js +4 -3
  818. package/internals/templates/masked-input.js.map +1 -0
  819. package/internals/utils/arrays.d.ts +53 -0
  820. package/internals/utils/arrays.js +31 -0
  821. package/internals/utils/arrays.js.map +1 -0
  822. package/internals/utils/dom.d.ts +92 -0
  823. package/internals/utils/dom.js +143 -0
  824. package/internals/utils/dom.js.map +1 -0
  825. package/internals/utils/events.d.ts +41 -0
  826. package/internals/utils/events.js +37 -0
  827. package/internals/utils/events.js.map +1 -0
  828. package/internals/utils/lit.d.ts +8 -0
  829. package/internals/utils/lit.js +15 -0
  830. package/internals/utils/lit.js.map +1 -0
  831. package/internals/utils/math.d.ts +50 -0
  832. package/internals/utils/math.js +38 -0
  833. package/internals/utils/math.js.map +1 -0
  834. package/internals/utils/objects.d.ts +25 -0
  835. package/internals/utils/objects.js +125 -0
  836. package/internals/utils/objects.js.map +1 -0
  837. package/internals/utils/strings.d.ts +44 -0
  838. package/internals/utils/strings.js +46 -0
  839. package/internals/utils/strings.js.map +1 -0
  840. package/internals/utils/types.d.ts +13 -0
  841. package/internals/utils/types.js +31 -0
  842. package/internals/utils/types.js.map +1 -0
  843. package/{components/common → internals}/validators.d.ts +1 -1
  844. package/{components/common → internals}/validators.js +4 -2
  845. package/internals/validators.js.map +1 -0
  846. package/package.json +15 -7
  847. package/themes/dark/bootstrap.css +1 -1
  848. package/themes/dark/fluent.css +1 -1
  849. package/themes/dark/indigo.css +1 -1
  850. package/themes/dark/material.css +1 -1
  851. package/themes/light/bootstrap.css +1 -1
  852. package/themes/light/fluent.css +1 -1
  853. package/themes/light/indigo.css +1 -1
  854. package/themes/light/material.css +1 -1
  855. package/theming/theming-controller.d.ts +2 -2
  856. package/theming/theming-controller.js.map +1 -1
  857. package/web-types.json +3 -3
  858. package/components/calendar/model.js.map +0 -1
  859. package/components/combo/combo-list.d.ts +0 -11
  860. package/components/combo/combo-list.js +0 -13
  861. package/components/combo/combo-list.js.map +0 -1
  862. package/components/common/abort-handler.js.map +0 -1
  863. package/components/common/context.d.ts +0 -25
  864. package/components/common/context.js.map +0 -1
  865. package/components/common/controllers/adopt-styles.d.ts +0 -124
  866. package/components/common/controllers/adopt-styles.js +0 -75
  867. package/components/common/controllers/adopt-styles.js.map +0 -1
  868. package/components/common/controllers/async-consumer.js.map +0 -1
  869. package/components/common/controllers/command.js.map +0 -1
  870. package/components/common/controllers/drag.js.map +0 -1
  871. package/components/common/controllers/focus-ring.js.map +0 -1
  872. package/components/common/controllers/fullscreen.js.map +0 -1
  873. package/components/common/controllers/gestures.js.map +0 -1
  874. package/components/common/controllers/id-resolver.js.map +0 -1
  875. package/components/common/controllers/internals.js.map +0 -1
  876. package/components/common/controllers/key-bindings.js.map +0 -1
  877. package/components/common/controllers/mutation-observer.js.map +0 -1
  878. package/components/common/controllers/resize-observer.js.map +0 -1
  879. package/components/common/controllers/root-click.js.map +0 -1
  880. package/components/common/controllers/root-scroll.js +0 -63
  881. package/components/common/controllers/root-scroll.js.map +0 -1
  882. package/components/common/controllers/slot.js.map +0 -1
  883. package/components/common/decorators/blazorAdditionalDependencies.js.map +0 -1
  884. package/components/common/decorators/blazorDeepImport.js.map +0 -1
  885. package/components/common/decorators/blazorInclude.js.map +0 -1
  886. package/components/common/decorators/blazorIndirectRender.js.map +0 -1
  887. package/components/common/decorators/blazorSuppressComponent.js.map +0 -1
  888. package/components/common/decorators/shadow-options.js.map +0 -1
  889. package/components/common/decorators/watch.js.map +0 -1
  890. package/components/common/definitions/defineAllComponents.js +0 -151
  891. package/components/common/definitions/defineAllComponents.js.map +0 -1
  892. package/components/common/definitions/defineComponents.js.map +0 -1
  893. package/components/common/definitions/register.js.map +0 -1
  894. package/components/common/i18n/EN/calendar.resources.js.map +0 -1
  895. package/components/common/i18n/EN/chat.resources.js.map +0 -1
  896. package/components/common/i18n/EN/date-picker.resources.js.map +0 -1
  897. package/components/common/i18n/EN/date-range-picker.resources.js.map +0 -1
  898. package/components/common/i18n/i18n-controller.js.map +0 -1
  899. package/components/common/i18n/utils.js.map +0 -1
  900. package/components/common/mixins/alert.js.map +0 -1
  901. package/components/common/mixins/combo-box.js.map +0 -1
  902. package/components/common/mixins/constructor.js.map +0 -1
  903. package/components/common/mixins/event-emitter.js.map +0 -1
  904. package/components/common/mixins/forms/associated-required.js.map +0 -1
  905. package/components/common/mixins/forms/associated.js.map +0 -1
  906. package/components/common/mixins/forms/form-transformers.js.map +0 -1
  907. package/components/common/mixins/forms/form-value.js.map +0 -1
  908. package/components/common/mixins/forms/types.js.map +0 -1
  909. package/components/common/mixins/mask-behavior.js.map +0 -1
  910. package/components/common/mixins/option.js.map +0 -1
  911. package/components/common/part-map.js.map +0 -1
  912. package/components/common/templates/input-shell.js.map +0 -1
  913. package/components/common/templates/masked-input.js.map +0 -1
  914. package/components/common/util.d.ts +0 -196
  915. package/components/common/util.js +0 -390
  916. package/components/common/util.js.map +0 -1
  917. package/components/common/validators.js.map +0 -1
  918. package/components/icon/registry/default-map.d.ts +0 -107
  919. package/components/icon/registry/default-map.js +0 -25
  920. package/components/icon/registry/default-map.js.map +0 -1
  921. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js +0 -3
  922. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js.map +0 -1
  923. package/components/radio/utils.d.ts +0 -13
  924. package/components/radio/utils.js +0 -37
  925. package/components/radio/utils.js.map +0 -1
  926. /package/components/{nav-drawer/themes/shared/container/nav-drawer.fluent.css.d.ts → qr-code/themes/dark/qr-code.bootstrap.css.d.ts} +0 -0
  927. /package/{components/common → internals}/abort-handler.d.ts +0 -0
  928. /package/{components/common → internals}/abort-handler.js +0 -0
  929. /package/{components/common → internals}/controllers/async-consumer.d.ts +0 -0
  930. /package/{components/common → internals}/controllers/command.d.ts +0 -0
  931. /package/{components/common → internals}/controllers/command.js +0 -0
  932. /package/{components/common → internals}/controllers/drag.d.ts +0 -0
  933. /package/{components/common → internals}/controllers/focus-ring.d.ts +0 -0
  934. /package/{components/common → internals}/controllers/fullscreen.d.ts +0 -0
  935. /package/{components/common → internals}/controllers/id-resolver.d.ts +0 -0
  936. /package/{components/common → internals}/controllers/root-click.d.ts +0 -0
  937. /package/{components/common → internals}/decorators/blazorAdditionalDependencies.d.ts +0 -0
  938. /package/{components/common → internals}/decorators/blazorAdditionalDependencies.js +0 -0
  939. /package/{components/common → internals}/decorators/blazorDeepImport.d.ts +0 -0
  940. /package/{components/common → internals}/decorators/blazorDeepImport.js +0 -0
  941. /package/{components/common → internals}/decorators/blazorInclude.d.ts +0 -0
  942. /package/{components/common → internals}/decorators/blazorInclude.js +0 -0
  943. /package/{components/common → internals}/decorators/blazorIndirectRender.d.ts +0 -0
  944. /package/{components/common → internals}/decorators/blazorIndirectRender.js +0 -0
  945. /package/{components/common → internals}/decorators/blazorSuppressComponent.d.ts +0 -0
  946. /package/{components/common → internals}/decorators/blazorSuppressComponent.js +0 -0
  947. /package/{components/common → internals}/decorators/shadow-options.d.ts +0 -0
  948. /package/{components/common → internals}/decorators/shadow-options.js +0 -0
  949. /package/{components/common → internals}/decorators/watch.d.ts +0 -0
  950. /package/{components/common → internals}/decorators/watch.js +0 -0
  951. /package/{components/common → internals}/definitions/defineAllComponents.d.ts +0 -0
  952. /package/{components/common → internals}/definitions/defineComponents.d.ts +0 -0
  953. /package/{components/common → internals}/definitions/defineComponents.js +0 -0
  954. /package/{components/common → internals}/definitions/register.d.ts +0 -0
  955. /package/{components/common → internals}/definitions/register.js +0 -0
  956. /package/{components/common → internals}/i18n/EN/calendar.resources.d.ts +0 -0
  957. /package/{components/common → internals}/i18n/EN/chat.resources.d.ts +0 -0
  958. /package/{components/common → internals}/i18n/EN/chat.resources.js +0 -0
  959. /package/{components/common → internals}/i18n/EN/date-picker.resources.d.ts +0 -0
  960. /package/{components/common → internals}/i18n/EN/date-picker.resources.js +0 -0
  961. /package/{components/common → internals}/i18n/EN/date-range-picker.resources.d.ts +0 -0
  962. /package/{components/common → internals}/i18n/EN/date-range-picker.resources.js +0 -0
  963. /package/{components/common → internals}/i18n/i18n-controller.d.ts +0 -0
  964. /package/{components/common → internals}/i18n/i18n-controller.js +0 -0
  965. /package/{components/common → internals}/i18n/utils.d.ts +0 -0
  966. /package/{components/common → internals}/mixins/constructor.d.ts +0 -0
  967. /package/{components/common → internals}/mixins/constructor.js +0 -0
  968. /package/{components/common → internals}/mixins/event-emitter.d.ts +0 -0
  969. /package/{components/common → internals}/mixins/event-emitter.js +0 -0
  970. /package/{components/common → internals}/mixins/forms/associated-required.d.ts +0 -0
  971. /package/{components/common → internals}/mixins/forms/associated.d.ts +0 -0
  972. /package/{components/common → internals}/mixins/forms/form-value.d.ts +0 -0
  973. /package/{components/common → internals}/mixins/forms/form-value.js +0 -0
  974. /package/{components/common → internals}/mixins/forms/types.js +0 -0
  975. /package/{components/common → internals}/part-map.d.ts +0 -0
  976. /package/{components/common → internals}/part-map.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-correction.js","sourceRoot":"","sources":["../../../../src/components/qr-code/model/error-correction.ts"],"names":[],"mappings":"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","sourcesContent":["const EXP_TABLE: number[] = new Array(512);\nconst LOG_TABLE: number[] = new Array(256);\nconst POLYNOMIALS = new Map<number, number[]>();\n\n(function initTables() {\n let x = 1;\n for (let i = 0; i < 256; i++) {\n EXP_TABLE[i] = x;\n LOG_TABLE[x] = i;\n x <<= 1;\n if (x & 0x100) {\n x ^= 0x11d;\n }\n }\n for (let i = 256; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 256];\n }\n})();\n\nfunction gfMul(a: number, b: number): number {\n if (a === 0 || b === 0) return 0;\n return EXP_TABLE[(LOG_TABLE[a] + LOG_TABLE[b]) % 255];\n}\n\nfunction gfPow(a: number, power: number): number {\n return EXP_TABLE[(LOG_TABLE[a] * power) % 255];\n}\n\nfunction generatePolynomial(degree: number): number[] {\n let poly = [1];\n\n for (let i = 0; i < degree; i++) {\n const term = [1, gfPow(2, i)];\n const newPoly = new Array(poly.length + term.length - 1).fill(0);\n for (let j = 0; j < poly.length; j++) {\n for (let k = 0; k < term.length; k++) {\n newPoly[j + k] ^= gfMul(poly[j], term[k]);\n }\n }\n poly = newPoly;\n }\n return poly;\n}\n\nfunction getPolynomial(degree: number): number[] {\n let poly = POLYNOMIALS.get(degree);\n if (!poly) {\n poly = generatePolynomial(degree);\n POLYNOMIALS.set(degree, poly);\n }\n return poly;\n}\n\n/** Computes Reed-Solomon error correction codewords for a data block of the given EC degree. */\nexport function calculateECC(data: number[], degree: number): number[] {\n const poly = getPolynomial(degree);\n const ecc: number[] = new Array(data.length + degree).fill(0);\n\n for (let i = 0; i < data.length; i++) {\n ecc[i] = data[i];\n }\n\n for (let i = 0; i < data.length; i++) {\n const factor = ecc[i];\n if (factor !== 0) {\n for (let j = 0; j < poly.length; j++) {\n ecc[i + j] ^= gfMul(poly[j], factor);\n }\n }\n }\n\n return ecc.slice(data.length, data.length + degree);\n}\n\n/** Describes one error correction block configuration for a QR version + EC level. */\nexport type ECBlock = {\n ecPerBlock: number;\n groups: { numBlocks: number; dataCW: number }[];\n};\n\nexport const EC_BLOCKS_TABLE: ECBlock[][] = [\n // Version 1\n [\n { ecPerBlock: 7, groups: [{ numBlocks: 1, dataCW: 19 }] },\n { ecPerBlock: 10, groups: [{ numBlocks: 1, dataCW: 16 }] },\n { ecPerBlock: 13, groups: [{ numBlocks: 1, dataCW: 13 }] },\n { ecPerBlock: 17, groups: [{ numBlocks: 1, dataCW: 9 }] },\n ],\n // Version 2\n [\n { ecPerBlock: 10, groups: [{ numBlocks: 1, dataCW: 34 }] },\n { ecPerBlock: 16, groups: [{ numBlocks: 1, dataCW: 28 }] },\n { ecPerBlock: 22, groups: [{ numBlocks: 1, dataCW: 22 }] },\n { ecPerBlock: 28, groups: [{ numBlocks: 1, dataCW: 16 }] },\n ],\n // Version 3\n [\n { ecPerBlock: 15, groups: [{ numBlocks: 1, dataCW: 55 }] },\n { ecPerBlock: 26, groups: [{ numBlocks: 1, dataCW: 44 }] },\n { ecPerBlock: 18, groups: [{ numBlocks: 2, dataCW: 17 }] },\n { ecPerBlock: 22, groups: [{ numBlocks: 2, dataCW: 13 }] },\n ],\n // Version 4\n [\n { ecPerBlock: 20, groups: [{ numBlocks: 1, dataCW: 80 }] },\n { ecPerBlock: 18, groups: [{ numBlocks: 2, dataCW: 32 }] },\n { ecPerBlock: 26, groups: [{ numBlocks: 2, dataCW: 24 }] },\n { ecPerBlock: 16, groups: [{ numBlocks: 4, dataCW: 9 }] },\n ],\n // Version 5\n [\n { ecPerBlock: 26, groups: [{ numBlocks: 1, dataCW: 108 }] },\n { ecPerBlock: 24, groups: [{ numBlocks: 2, dataCW: 43 }] },\n {\n ecPerBlock: 18,\n groups: [\n { numBlocks: 2, dataCW: 15 },\n { numBlocks: 2, dataCW: 16 },\n ],\n },\n {\n ecPerBlock: 22,\n groups: [\n { numBlocks: 2, dataCW: 11 },\n { numBlocks: 2, dataCW: 12 },\n ],\n },\n ],\n // Version 6\n [\n { ecPerBlock: 18, groups: [{ numBlocks: 2, dataCW: 68 }] },\n { ecPerBlock: 16, groups: [{ numBlocks: 4, dataCW: 27 }] },\n { ecPerBlock: 24, groups: [{ numBlocks: 4, dataCW: 19 }] },\n { ecPerBlock: 28, groups: [{ numBlocks: 4, dataCW: 15 }] },\n ],\n // Version 7\n [\n { ecPerBlock: 20, groups: [{ numBlocks: 2, dataCW: 78 }] },\n { ecPerBlock: 18, groups: [{ numBlocks: 4, dataCW: 31 }] },\n {\n ecPerBlock: 18,\n groups: [\n { numBlocks: 2, dataCW: 14 },\n { numBlocks: 4, dataCW: 15 },\n ],\n },\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 4, dataCW: 13 },\n { numBlocks: 1, dataCW: 14 },\n ],\n },\n ],\n // Version 8\n [\n { ecPerBlock: 24, groups: [{ numBlocks: 2, dataCW: 97 }] },\n {\n ecPerBlock: 22,\n groups: [\n { numBlocks: 2, dataCW: 38 },\n { numBlocks: 2, dataCW: 39 },\n ],\n },\n {\n ecPerBlock: 22,\n groups: [\n { numBlocks: 4, dataCW: 18 },\n { numBlocks: 2, dataCW: 19 },\n ],\n },\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 4, dataCW: 14 },\n { numBlocks: 2, dataCW: 15 },\n ],\n },\n ],\n // Version 9\n [\n { ecPerBlock: 30, groups: [{ numBlocks: 2, dataCW: 116 }] },\n {\n ecPerBlock: 22,\n groups: [\n { numBlocks: 3, dataCW: 36 },\n { numBlocks: 2, dataCW: 37 },\n ],\n },\n {\n ecPerBlock: 20,\n groups: [\n { numBlocks: 4, dataCW: 16 },\n { numBlocks: 4, dataCW: 17 },\n ],\n },\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 4, dataCW: 12 },\n { numBlocks: 4, dataCW: 13 },\n ],\n },\n ],\n // Version 10\n [\n {\n ecPerBlock: 18,\n groups: [\n { numBlocks: 2, dataCW: 68 },\n { numBlocks: 2, dataCW: 69 },\n ],\n },\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 4, dataCW: 43 },\n { numBlocks: 1, dataCW: 44 },\n ],\n },\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 6, dataCW: 19 },\n { numBlocks: 2, dataCW: 20 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 6, dataCW: 15 },\n { numBlocks: 2, dataCW: 16 },\n ],\n },\n ],\n // Version 11\n [\n { ecPerBlock: 20, groups: [{ numBlocks: 4, dataCW: 81 }] },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 1, dataCW: 50 },\n { numBlocks: 4, dataCW: 51 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 4, dataCW: 22 },\n { numBlocks: 4, dataCW: 23 },\n ],\n },\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 3, dataCW: 12 },\n { numBlocks: 8, dataCW: 13 },\n ],\n },\n ],\n // Version 12\n [\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 2, dataCW: 92 },\n { numBlocks: 2, dataCW: 93 },\n ],\n },\n {\n ecPerBlock: 22,\n groups: [\n { numBlocks: 6, dataCW: 36 },\n { numBlocks: 2, dataCW: 37 },\n ],\n },\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 4, dataCW: 20 },\n { numBlocks: 6, dataCW: 21 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 7, dataCW: 14 },\n { numBlocks: 4, dataCW: 15 },\n ],\n },\n ],\n // Version 13\n [\n { ecPerBlock: 26, groups: [{ numBlocks: 4, dataCW: 107 }] },\n {\n ecPerBlock: 22,\n groups: [\n { numBlocks: 8, dataCW: 37 },\n { numBlocks: 1, dataCW: 38 },\n ],\n },\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 8, dataCW: 20 },\n { numBlocks: 4, dataCW: 21 },\n ],\n },\n {\n ecPerBlock: 22,\n groups: [\n { numBlocks: 12, dataCW: 11 },\n { numBlocks: 4, dataCW: 12 },\n ],\n },\n ],\n // Version 14\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 3, dataCW: 115 },\n { numBlocks: 1, dataCW: 116 },\n ],\n },\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 4, dataCW: 40 },\n { numBlocks: 5, dataCW: 41 },\n ],\n },\n {\n ecPerBlock: 20,\n groups: [\n { numBlocks: 11, dataCW: 16 },\n { numBlocks: 5, dataCW: 17 },\n ],\n },\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 11, dataCW: 12 },\n { numBlocks: 5, dataCW: 13 },\n ],\n },\n ],\n // Version 15\n [\n {\n ecPerBlock: 22,\n groups: [\n { numBlocks: 5, dataCW: 87 },\n { numBlocks: 1, dataCW: 88 },\n ],\n },\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 5, dataCW: 41 },\n { numBlocks: 5, dataCW: 42 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 5, dataCW: 24 },\n { numBlocks: 7, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 11, dataCW: 12 },\n { numBlocks: 7, dataCW: 13 },\n ],\n },\n ],\n // Version 16\n [\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 5, dataCW: 98 },\n { numBlocks: 1, dataCW: 99 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 7, dataCW: 45 },\n { numBlocks: 3, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 24,\n groups: [\n { numBlocks: 15, dataCW: 19 },\n { numBlocks: 2, dataCW: 20 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 3, dataCW: 15 },\n { numBlocks: 13, dataCW: 16 },\n ],\n },\n ],\n // Version 17\n [\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 1, dataCW: 107 },\n { numBlocks: 5, dataCW: 108 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 10, dataCW: 46 },\n { numBlocks: 1, dataCW: 47 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 1, dataCW: 22 },\n { numBlocks: 15, dataCW: 23 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 2, dataCW: 14 },\n { numBlocks: 17, dataCW: 15 },\n ],\n },\n ],\n // Version 18\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 5, dataCW: 120 },\n { numBlocks: 1, dataCW: 121 },\n ],\n },\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 9, dataCW: 43 },\n { numBlocks: 4, dataCW: 44 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 17, dataCW: 22 },\n { numBlocks: 1, dataCW: 23 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 2, dataCW: 14 },\n { numBlocks: 19, dataCW: 15 },\n ],\n },\n ],\n // Version 19\n [\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 3, dataCW: 113 },\n { numBlocks: 4, dataCW: 114 },\n ],\n },\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 3, dataCW: 44 },\n { numBlocks: 11, dataCW: 45 },\n ],\n },\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 17, dataCW: 21 },\n { numBlocks: 4, dataCW: 22 },\n ],\n },\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 9, dataCW: 13 },\n { numBlocks: 16, dataCW: 14 },\n ],\n },\n ],\n // Version 20\n [\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 3, dataCW: 107 },\n { numBlocks: 5, dataCW: 108 },\n ],\n },\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 3, dataCW: 41 },\n { numBlocks: 13, dataCW: 42 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 15, dataCW: 24 },\n { numBlocks: 5, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 15, dataCW: 15 },\n { numBlocks: 10, dataCW: 16 },\n ],\n },\n ],\n // Version 21\n [\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 4, dataCW: 116 },\n { numBlocks: 4, dataCW: 117 },\n ],\n },\n { ecPerBlock: 26, groups: [{ numBlocks: 17, dataCW: 42 }] },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 17, dataCW: 22 },\n { numBlocks: 6, dataCW: 23 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 19, dataCW: 16 },\n { numBlocks: 6, dataCW: 17 },\n ],\n },\n ],\n // Version 22\n [\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 2, dataCW: 111 },\n { numBlocks: 7, dataCW: 112 },\n ],\n },\n { ecPerBlock: 28, groups: [{ numBlocks: 17, dataCW: 46 }] },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 7, dataCW: 24 },\n { numBlocks: 16, dataCW: 25 },\n ],\n },\n { ecPerBlock: 24, groups: [{ numBlocks: 34, dataCW: 13 }] },\n ],\n // Version 23\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 4, dataCW: 121 },\n { numBlocks: 5, dataCW: 122 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 4, dataCW: 47 },\n { numBlocks: 14, dataCW: 48 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 11, dataCW: 24 },\n { numBlocks: 14, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 16, dataCW: 15 },\n { numBlocks: 14, dataCW: 16 },\n ],\n },\n ],\n // Version 24\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 6, dataCW: 117 },\n { numBlocks: 4, dataCW: 118 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 6, dataCW: 45 },\n { numBlocks: 14, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 11, dataCW: 24 },\n { numBlocks: 16, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 30, dataCW: 16 },\n { numBlocks: 2, dataCW: 17 },\n ],\n },\n ],\n // Version 25\n [\n {\n ecPerBlock: 26,\n groups: [\n { numBlocks: 8, dataCW: 106 },\n { numBlocks: 4, dataCW: 107 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 8, dataCW: 47 },\n { numBlocks: 13, dataCW: 48 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 7, dataCW: 24 },\n { numBlocks: 22, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 22, dataCW: 15 },\n { numBlocks: 13, dataCW: 16 },\n ],\n },\n ],\n // Version 26\n [\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 10, dataCW: 114 },\n { numBlocks: 2, dataCW: 115 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 19, dataCW: 46 },\n { numBlocks: 4, dataCW: 47 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 28, dataCW: 22 },\n { numBlocks: 6, dataCW: 23 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 33, dataCW: 16 },\n { numBlocks: 4, dataCW: 17 },\n ],\n },\n ],\n // Version 27\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 8, dataCW: 122 },\n { numBlocks: 4, dataCW: 123 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 22, dataCW: 45 },\n { numBlocks: 3, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 8, dataCW: 23 },\n { numBlocks: 26, dataCW: 24 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 12, dataCW: 15 },\n { numBlocks: 28, dataCW: 16 },\n ],\n },\n ],\n // Version 28\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 3, dataCW: 117 },\n { numBlocks: 10, dataCW: 118 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 3, dataCW: 45 },\n { numBlocks: 23, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 4, dataCW: 24 },\n { numBlocks: 31, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 11, dataCW: 15 },\n { numBlocks: 31, dataCW: 16 },\n ],\n },\n ],\n // Version 29\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 7, dataCW: 116 },\n { numBlocks: 7, dataCW: 117 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 21, dataCW: 45 },\n { numBlocks: 7, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 1, dataCW: 23 },\n { numBlocks: 37, dataCW: 24 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 19, dataCW: 15 },\n { numBlocks: 26, dataCW: 16 },\n ],\n },\n ],\n // Version 30\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 5, dataCW: 115 },\n { numBlocks: 10, dataCW: 116 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 19, dataCW: 45 },\n { numBlocks: 10, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 15, dataCW: 24 },\n { numBlocks: 25, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 23, dataCW: 15 },\n { numBlocks: 25, dataCW: 16 },\n ],\n },\n ],\n // Version 31\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 13, dataCW: 115 },\n { numBlocks: 3, dataCW: 116 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 2, dataCW: 45 },\n { numBlocks: 29, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 42, dataCW: 24 },\n { numBlocks: 1, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 23, dataCW: 15 },\n { numBlocks: 28, dataCW: 16 },\n ],\n },\n ],\n // Version 32\n [\n { ecPerBlock: 30, groups: [{ numBlocks: 17, dataCW: 115 }] },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 10, dataCW: 45 },\n { numBlocks: 23, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 10, dataCW: 24 },\n { numBlocks: 35, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 19, dataCW: 15 },\n { numBlocks: 35, dataCW: 16 },\n ],\n },\n ],\n // Version 33\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 17, dataCW: 115 },\n { numBlocks: 1, dataCW: 116 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 14, dataCW: 45 },\n { numBlocks: 21, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 29, dataCW: 24 },\n { numBlocks: 19, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 11, dataCW: 15 },\n { numBlocks: 46, dataCW: 16 },\n ],\n },\n ],\n // Version 34\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 13, dataCW: 115 },\n { numBlocks: 6, dataCW: 116 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 14, dataCW: 45 },\n { numBlocks: 23, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 44, dataCW: 24 },\n { numBlocks: 7, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 59, dataCW: 16 },\n { numBlocks: 1, dataCW: 17 },\n ],\n },\n ],\n // Version 35\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 12, dataCW: 121 },\n { numBlocks: 7, dataCW: 122 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 12, dataCW: 45 },\n { numBlocks: 26, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 39, dataCW: 24 },\n { numBlocks: 14, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 22, dataCW: 15 },\n { numBlocks: 41, dataCW: 16 },\n ],\n },\n ],\n // Version 36\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 6, dataCW: 121 },\n { numBlocks: 14, dataCW: 122 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 6, dataCW: 45 },\n { numBlocks: 34, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 46, dataCW: 24 },\n { numBlocks: 10, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 2, dataCW: 15 },\n { numBlocks: 64, dataCW: 16 },\n ],\n },\n ],\n // Version 37\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 17, dataCW: 122 },\n { numBlocks: 4, dataCW: 123 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 29, dataCW: 45 },\n { numBlocks: 14, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 49, dataCW: 24 },\n { numBlocks: 10, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 24, dataCW: 15 },\n { numBlocks: 46, dataCW: 16 },\n ],\n },\n ],\n // Version 38\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 4, dataCW: 122 },\n { numBlocks: 18, dataCW: 123 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 13, dataCW: 45 },\n { numBlocks: 32, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 48, dataCW: 24 },\n { numBlocks: 14, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 42, dataCW: 15 },\n { numBlocks: 32, dataCW: 16 },\n ],\n },\n ],\n // Version 39\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 20, dataCW: 117 },\n { numBlocks: 4, dataCW: 118 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 40, dataCW: 45 },\n { numBlocks: 7, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 43, dataCW: 24 },\n { numBlocks: 22, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 10, dataCW: 15 },\n { numBlocks: 67, dataCW: 16 },\n ],\n },\n ],\n // Version 40\n [\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 19, dataCW: 118 },\n { numBlocks: 6, dataCW: 119 },\n ],\n },\n {\n ecPerBlock: 28,\n groups: [\n { numBlocks: 18, dataCW: 45 },\n { numBlocks: 31, dataCW: 46 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 34, dataCW: 24 },\n { numBlocks: 34, dataCW: 25 },\n ],\n },\n {\n ecPerBlock: 30,\n groups: [\n { numBlocks: 20, dataCW: 15 },\n { numBlocks: 61, dataCW: 16 },\n ],\n },\n ],\n];\n\n/** Returns the total number of data codewords available for the given version and EC level index. */\nexport function getDataCodewordsCount(\n version: number,\n errorCorrectionLevel: number\n): number {\n const ecBlock = EC_BLOCKS_TABLE[version - 1][errorCorrectionLevel];\n let totalDataCodewords = 0;\n\n for (const group of ecBlock.groups) {\n totalDataCodewords += group.numBlocks * group.dataCW;\n }\n return totalDataCodewords;\n}\n\n/** Interleaves data and ECC codewords from all blocks per the QR specification, producing the final codeword sequence. */\nexport function interleaveBlocks(\n dataBlocks: number[],\n version: number,\n errorCorrectionLevel: number\n): number[] {\n const ecBlock = EC_BLOCKS_TABLE[version - 1][errorCorrectionLevel];\n const blocks: number[][] = [];\n const eccBlocks: number[][] = [];\n\n let offset = 0;\n\n for (const group of ecBlock.groups) {\n for (let b = 0; b < group.numBlocks; b++) {\n const block = dataBlocks.slice(offset, offset + group.dataCW);\n blocks.push(block);\n eccBlocks.push(calculateECC(block, ecBlock.ecPerBlock));\n offset += group.dataCW;\n }\n }\n\n const interleaved: number[] = [];\n const maxDataLength = Math.max(...blocks.map((b) => b.length));\n for (let i = 0; i < maxDataLength; i++) {\n for (const block of blocks) {\n if (i < block.length) {\n interleaved.push(block[i]);\n }\n }\n }\n\n const maxECCLength = ecBlock.ecPerBlock;\n for (let i = 0; i < maxECCLength; i++) {\n for (const eccBlock of eccBlocks) {\n if (i < eccBlock.length) {\n interleaved.push(eccBlock[i]);\n }\n }\n }\n\n return interleaved;\n}\n"]}
@@ -0,0 +1,11 @@
1
+ /** One of the eight QR mask pattern indices (0–7). */
2
+ export type MaskPattern = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
3
+ /**
4
+ * Applies the given mask pattern to all non-function modules of the matrix,
5
+ * returning a new 2D array (the input is not mutated).
6
+ */
7
+ export declare function applyMask(matrix: boolean[][], functionModules: boolean[][], pattern: MaskPattern): boolean[][];
8
+ /** Computes the total QR penalty score for a masked matrix (sum of rules 1–4). */
9
+ export declare function calculatePenalty(matrix: boolean[][]): number;
10
+ /** Evaluates all eight mask patterns and returns the one with the lowest penalty score. */
11
+ export declare function selectBestMask(matrix: boolean[][], functionModules: boolean[][]): MaskPattern;
@@ -0,0 +1,161 @@
1
+ const MASK_PATTERN_FUNCTIONS = [
2
+ (row, col) => (row + col) % 2 === 0,
3
+ (row, _) => row % 2 === 0,
4
+ (_, col) => col % 3 === 0,
5
+ (row, col) => (row + col) % 3 === 0,
6
+ (row, col) => (Math.floor(row / 2) + Math.floor(col / 3)) % 2 === 0,
7
+ (row, col) => ((row * col) % 2) + ((row * col) % 3) === 0,
8
+ (row, col) => (((row * col) % 2) + ((row * col) % 3)) % 2 === 0,
9
+ (row, col) => (((row + col) % 2) + ((row * col) % 3)) % 2 === 0,
10
+ ];
11
+ export function applyMask(matrix, functionModules, pattern) {
12
+ const condition = MASK_PATTERN_FUNCTIONS[pattern];
13
+ return matrix.map((row, r) => row.map((val, c) => {
14
+ if (functionModules[r][c])
15
+ return val;
16
+ return condition(r, c) ? !val : val;
17
+ }));
18
+ }
19
+ function penaltyRule1(matrix) {
20
+ const size = matrix.length;
21
+ let penalty = 0;
22
+ for (let r = 0; r < size; r++) {
23
+ let runLen = 1;
24
+ for (let c = 1; c < size; c++) {
25
+ if (matrix[r][c] === matrix[r][c - 1]) {
26
+ runLen++;
27
+ }
28
+ else {
29
+ if (runLen >= 5)
30
+ penalty += 3 + (runLen - 5);
31
+ runLen = 1;
32
+ }
33
+ }
34
+ if (runLen >= 5)
35
+ penalty += 3 + (runLen - 5);
36
+ runLen = 1;
37
+ for (let i = 1; i < size; i++) {
38
+ if (matrix[i][r] === matrix[i - 1][r]) {
39
+ runLen++;
40
+ }
41
+ else {
42
+ if (runLen >= 5)
43
+ penalty += 3 + (runLen - 5);
44
+ runLen = 1;
45
+ }
46
+ }
47
+ if (runLen >= 5)
48
+ penalty += 3 + (runLen - 5);
49
+ }
50
+ return penalty;
51
+ }
52
+ function penaltyRule2(matrix) {
53
+ const size = matrix.length;
54
+ let penalty = 0;
55
+ for (let r = 0; r < size - 1; r++) {
56
+ for (let c = 0; c < size - 1; c++) {
57
+ const value = matrix[r][c];
58
+ if (matrix[r][c + 1] === value &&
59
+ matrix[r + 1][c] === value &&
60
+ matrix[r + 1][c + 1] === value) {
61
+ penalty += 3;
62
+ }
63
+ }
64
+ }
65
+ return penalty;
66
+ }
67
+ const N3_PATTERN1 = [
68
+ true,
69
+ false,
70
+ true,
71
+ true,
72
+ true,
73
+ false,
74
+ true,
75
+ false,
76
+ false,
77
+ false,
78
+ false,
79
+ ];
80
+ const N3_PATTERN2 = [
81
+ false,
82
+ false,
83
+ false,
84
+ false,
85
+ true,
86
+ false,
87
+ true,
88
+ true,
89
+ true,
90
+ false,
91
+ true,
92
+ ];
93
+ function matchPatternInRow(row, start, pattern) {
94
+ for (let i = 0; i < pattern.length; i++) {
95
+ if (row[start + i] !== pattern[i])
96
+ return false;
97
+ }
98
+ return true;
99
+ }
100
+ function matchPatternInColumn(matrix, startRow, col, pattern) {
101
+ for (let i = 0; i < pattern.length; i++) {
102
+ if (matrix[startRow + i][col] !== pattern[i])
103
+ return false;
104
+ }
105
+ return true;
106
+ }
107
+ function penaltyRule3(matrix) {
108
+ const size = matrix.length;
109
+ let penalty = 0;
110
+ for (let r = 0; r < size; r++) {
111
+ const row = matrix[r];
112
+ for (let c = 0; c <= size - 11; c++) {
113
+ if (matchPatternInRow(row, c, N3_PATTERN1) ||
114
+ matchPatternInRow(row, c, N3_PATTERN2)) {
115
+ penalty += 40;
116
+ }
117
+ }
118
+ }
119
+ for (let c = 0; c < size; c++) {
120
+ for (let r = 0; r <= size - 11; r++) {
121
+ if (matchPatternInColumn(matrix, r, c, N3_PATTERN1) ||
122
+ matchPatternInColumn(matrix, r, c, N3_PATTERN2)) {
123
+ penalty += 40;
124
+ }
125
+ }
126
+ }
127
+ return penalty;
128
+ }
129
+ function penaltyRule4(matrix) {
130
+ const size = matrix.length;
131
+ let darkCount = 0;
132
+ const totalModules = size * size;
133
+ for (const row of matrix) {
134
+ for (const val of row) {
135
+ if (val)
136
+ darkCount++;
137
+ }
138
+ }
139
+ const darkRatio = (darkCount / totalModules) * 100;
140
+ return Math.floor(Math.abs(darkRatio - 50) / 5) * 10;
141
+ }
142
+ export function calculatePenalty(matrix) {
143
+ return (penaltyRule1(matrix) +
144
+ penaltyRule2(matrix) +
145
+ penaltyRule3(matrix) +
146
+ penaltyRule4(matrix));
147
+ }
148
+ export function selectBestMask(matrix, functionModules) {
149
+ let bestMask = 0;
150
+ let lowestPenalty = Number.POSITIVE_INFINITY;
151
+ for (let pattern = 0; pattern < 8; pattern++) {
152
+ const maskedMatrix = applyMask(matrix, functionModules, pattern);
153
+ const penalty = calculatePenalty(maskedMatrix);
154
+ if (penalty < lowestPenalty) {
155
+ lowestPenalty = penalty;
156
+ bestMask = pattern;
157
+ }
158
+ }
159
+ return bestMask;
160
+ }
161
+ //# sourceMappingURL=mask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask.js","sourceRoot":"","sources":["../../../../src/components/qr-code/model/mask.ts"],"names":[],"mappings":"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","sourcesContent":["/** One of the eight QR mask pattern indices (0–7). */\nexport type MaskPattern = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;\n\nconst MASK_PATTERN_FUNCTIONS: ((row: number, col: number) => boolean)[] = [\n (row, col) => (row + col) % 2 === 0,\n (row, _) => row % 2 === 0,\n (_, col) => col % 3 === 0,\n (row, col) => (row + col) % 3 === 0,\n (row, col) => (Math.floor(row / 2) + Math.floor(col / 3)) % 2 === 0,\n (row, col) => ((row * col) % 2) + ((row * col) % 3) === 0,\n (row, col) => (((row * col) % 2) + ((row * col) % 3)) % 2 === 0,\n (row, col) => (((row + col) % 2) + ((row * col) % 3)) % 2 === 0,\n];\n\n/**\n * Applies the given mask pattern to all non-function modules of the matrix,\n * returning a new 2D array (the input is not mutated).\n */\nexport function applyMask(\n matrix: boolean[][],\n functionModules: boolean[][],\n pattern: MaskPattern\n): boolean[][] {\n const condition = MASK_PATTERN_FUNCTIONS[pattern];\n return matrix.map((row, r) =>\n row.map((val, c) => {\n if (functionModules[r][c]) return val;\n return condition(r, c) ? !val : val;\n })\n );\n}\n\n// Penalty Rule 1: Adjacent modules in row/column in same color\nfunction penaltyRule1(matrix: boolean[][]): number {\n const size = matrix.length;\n let penalty = 0;\n\n for (let r = 0; r < size; r++) {\n // Compute horizontal runs\n let runLen = 1;\n for (let c = 1; c < size; c++) {\n if (matrix[r][c] === matrix[r][c - 1]) {\n runLen++;\n } else {\n if (runLen >= 5) penalty += 3 + (runLen - 5);\n runLen = 1;\n }\n }\n if (runLen >= 5) penalty += 3 + (runLen - 5);\n\n // Compute vertical runs\n runLen = 1;\n for (let i = 1; i < size; i++) {\n if (matrix[i][r] === matrix[i - 1][r]) {\n runLen++;\n } else {\n if (runLen >= 5) penalty += 3 + (runLen - 5);\n runLen = 1;\n }\n }\n if (runLen >= 5) penalty += 3 + (runLen - 5);\n }\n\n return penalty;\n}\n\n// Penalty Rule 2: Blocks of modules in same color\nfunction penaltyRule2(matrix: boolean[][]): number {\n const size = matrix.length;\n let penalty = 0;\n\n for (let r = 0; r < size - 1; r++) {\n for (let c = 0; c < size - 1; c++) {\n const value = matrix[r][c];\n if (\n matrix[r][c + 1] === value &&\n matrix[r + 1][c] === value &&\n matrix[r + 1][c + 1] === value\n ) {\n penalty += 3;\n }\n }\n }\n\n return penalty;\n}\n\nconst N3_PATTERN1 = [\n true,\n false,\n true,\n true,\n true,\n false,\n true,\n false,\n false,\n false,\n false,\n];\nconst N3_PATTERN2 = [\n false,\n false,\n false,\n false,\n true,\n false,\n true,\n true,\n true,\n false,\n true,\n];\n\nfunction matchPatternInRow(\n row: boolean[],\n start: number,\n pattern: boolean[]\n): boolean {\n for (let i = 0; i < pattern.length; i++) {\n if (row[start + i] !== pattern[i]) return false;\n }\n return true;\n}\n\nfunction matchPatternInColumn(\n matrix: boolean[][],\n startRow: number,\n col: number,\n pattern: boolean[]\n): boolean {\n for (let i = 0; i < pattern.length; i++) {\n if (matrix[startRow + i][col] !== pattern[i]) return false;\n }\n return true;\n}\n\n// Penalty Rule 3: Patterns similar to the finder patterns\nfunction penaltyRule3(matrix: boolean[][]): number {\n const size = matrix.length;\n let penalty = 0;\n\n for (let r = 0; r < size; r++) {\n const row = matrix[r];\n for (let c = 0; c <= size - 11; c++) {\n if (\n matchPatternInRow(row, c, N3_PATTERN1) ||\n matchPatternInRow(row, c, N3_PATTERN2)\n ) {\n penalty += 40;\n }\n }\n }\n\n for (let c = 0; c < size; c++) {\n for (let r = 0; r <= size - 11; r++) {\n if (\n matchPatternInColumn(matrix, r, c, N3_PATTERN1) ||\n matchPatternInColumn(matrix, r, c, N3_PATTERN2)\n ) {\n penalty += 40;\n }\n }\n }\n\n return penalty;\n}\n\n// Penalty Rule 4: Proportion of dark modules in entire symbol\nfunction penaltyRule4(matrix: boolean[][]): number {\n const size = matrix.length;\n let darkCount = 0;\n const totalModules = size * size;\n\n for (const row of matrix) {\n for (const val of row) {\n if (val) darkCount++;\n }\n }\n\n const darkRatio = (darkCount / totalModules) * 100;\n return Math.floor(Math.abs(darkRatio - 50) / 5) * 10;\n}\n\n/** Computes the total QR penalty score for a masked matrix (sum of rules 1–4). */\nexport function calculatePenalty(matrix: boolean[][]): number {\n return (\n penaltyRule1(matrix) +\n penaltyRule2(matrix) +\n penaltyRule3(matrix) +\n penaltyRule4(matrix)\n );\n}\n\n/** Evaluates all eight mask patterns and returns the one with the lowest penalty score. */\nexport function selectBestMask(\n matrix: boolean[][],\n functionModules: boolean[][]\n): MaskPattern {\n let bestMask: MaskPattern = 0;\n let lowestPenalty = Number.POSITIVE_INFINITY;\n\n for (let pattern = 0; pattern < 8; pattern++) {\n const maskedMatrix = applyMask(\n matrix,\n functionModules,\n pattern as MaskPattern\n );\n const penalty = calculatePenalty(maskedMatrix);\n if (penalty < lowestPenalty) {\n lowestPenalty = penalty;\n bestMask = pattern as MaskPattern;\n }\n }\n return bestMask;\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import type { QrErrorCorrectionLevel } from '../types.js';
2
+ /** Result produced by `generateQRCodeMatrix`. */
3
+ export interface QRCodeMatrixResult {
4
+ /** The fully masked QR boolean matrix ready for rendering. */
5
+ matrix: boolean[][];
6
+ /** QR version (1–40) that was used. */
7
+ version: number;
8
+ /** Side length of the matrix in modules (= `version * 4 + 17`). */
9
+ size: number;
10
+ }
11
+ /**
12
+ * Main entry point for QR matrix generation. Encodes `data`, builds the module
13
+ * matrix (finder, alignment, timing, data, format), and applies the optimal mask.
14
+ */
15
+ export declare function generateQRCodeMatrix(data: string, ecLevel?: QrErrorCorrectionLevel, requiredVersion?: number): QRCodeMatrixResult;
@@ -0,0 +1,277 @@
1
+ import { encodeQR } from './encode.js';
2
+ import { applyMask, selectBestMask } from './mask.js';
3
+ const ALIGNMENT_PATTERN_TABLE = [
4
+ [],
5
+ [6, 18],
6
+ [6, 22],
7
+ [6, 26],
8
+ [6, 30],
9
+ [6, 34],
10
+ [6, 22, 38],
11
+ [6, 24, 42],
12
+ [6, 26, 46],
13
+ [6, 28, 50],
14
+ [6, 30, 54],
15
+ [6, 32, 58],
16
+ [6, 34, 62],
17
+ [6, 26, 46, 66],
18
+ [6, 26, 48, 70],
19
+ [6, 26, 50, 74],
20
+ [6, 30, 54, 78],
21
+ [6, 30, 56, 82],
22
+ [6, 30, 58, 86],
23
+ [6, 34, 62, 90],
24
+ [6, 28, 50, 72, 94],
25
+ [6, 26, 50, 74, 98],
26
+ [6, 30, 54, 78, 102],
27
+ [6, 28, 54, 80, 106],
28
+ [6, 32, 58, 84, 110],
29
+ [6, 30, 58, 86, 114],
30
+ [6, 34, 62, 90, 118],
31
+ [6, 26, 50, 74, 98, 122],
32
+ [6, 30, 54, 78, 102, 126],
33
+ [6, 26, 52, 78, 104, 130],
34
+ [6, 30, 56, 82, 108, 132],
35
+ [6, 34, 60, 86, 112, 136],
36
+ [6, 30, 58, 86, 114, 142],
37
+ [6, 34, 62, 90, 118, 146],
38
+ [6, 30, 54, 78, 102, 126, 150],
39
+ [6, 24, 50, 76, 102, 128, 154],
40
+ [6, 28, 54, 80, 106, 132, 158],
41
+ [6, 32, 58, 84, 110, 136, 162],
42
+ [6, 26, 54, 82, 110, 138, 166],
43
+ [6, 30, 58, 86, 114, 142, 170],
44
+ ];
45
+ const FORMAT_INFO_TABLE = [
46
+ 0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976,
47
+ 0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0,
48
+ 0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed,
49
+ 0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b,
50
+ ];
51
+ const VERSION_INFO_TABLE = [
52
+ 0x07c94,
53
+ 0x085bc,
54
+ 0x09a99,
55
+ 0x0a4d3,
56
+ 0x0bbf6,
57
+ 0x0c762,
58
+ 0x0d847,
59
+ 0x0e60d,
60
+ 0x0f928,
61
+ 0x10b78,
62
+ 0x1145d,
63
+ 0x12a17,
64
+ 0x13532,
65
+ 0x149a6,
66
+ 0x15683,
67
+ 0x168c9,
68
+ 0x177ec,
69
+ 0x18ec4,
70
+ 0x191e1,
71
+ 0x1afab,
72
+ 0x1b08e,
73
+ 0x1cc1a,
74
+ 0x1d33f,
75
+ 0x1ed75,
76
+ 0x1f250,
77
+ 0x209d5,
78
+ 0x216f0,
79
+ 0x228ba,
80
+ 0x2379f,
81
+ 0x24b0b,
82
+ 0x2542e,
83
+ 0x26a64,
84
+ 0x27541,
85
+ 0x28c69,
86
+ ];
87
+ const EC_LEVEL_FORMAT_INDEX = {
88
+ L: 0,
89
+ M: 1,
90
+ Q: 2,
91
+ H: 3,
92
+ };
93
+ function createMatrix(size) {
94
+ return Array.from({ length: size }, () => new Array(size).fill(false));
95
+ }
96
+ function placeFinderPattern(matrix, functionModules, row, col) {
97
+ for (let r = -1; r <= 7; r++) {
98
+ for (let c = -1; c <= 7; c++) {
99
+ const mr = row + r;
100
+ const mc = col + c;
101
+ if (mr < 0 || mr >= matrix.length || mc < 0 || mc >= matrix.length) {
102
+ continue;
103
+ }
104
+ functionModules[mr][mc] = true;
105
+ if (r === -1 || r === 7 || c === -1 || c === 7) {
106
+ matrix[mr][mc] = false;
107
+ }
108
+ else if (r === 0 || r === 6 || c === 0 || c === 6) {
109
+ matrix[mr][mc] = true;
110
+ }
111
+ else if (r >= 2 && r <= 4 && c >= 2 && c <= 4) {
112
+ matrix[mr][mc] = true;
113
+ }
114
+ else {
115
+ matrix[mr][mc] = false;
116
+ }
117
+ }
118
+ }
119
+ }
120
+ function placeAlignmentPattern(matrix, functionModules, row, col) {
121
+ for (let r = -2; r <= 2; r++) {
122
+ for (let c = -2; c <= 2; c++) {
123
+ const mr = row + r;
124
+ const mc = col + c;
125
+ functionModules[mr][mc] = true;
126
+ if (r === -2 || r === 2 || c === -2 || c === 2) {
127
+ matrix[mr][mc] = true;
128
+ }
129
+ else if (r === 0 && c === 0) {
130
+ matrix[mr][mc] = true;
131
+ }
132
+ else {
133
+ matrix[mr][mc] = false;
134
+ }
135
+ }
136
+ }
137
+ }
138
+ function placeTimingPatterns(matrix, functionModules) {
139
+ const size = matrix.length;
140
+ for (let i = 8; i < size - 8; i++) {
141
+ const bit = i % 2 === 0;
142
+ matrix[6][i] = bit;
143
+ matrix[i][6] = bit;
144
+ functionModules[6][i] = true;
145
+ functionModules[i][6] = true;
146
+ }
147
+ }
148
+ const FORMAT_INFO_POSITIONS = [
149
+ [8, 0],
150
+ [8, 1],
151
+ [8, 2],
152
+ [8, 3],
153
+ [8, 4],
154
+ [8, 5],
155
+ [8, 7],
156
+ [8, 8],
157
+ [7, 8],
158
+ [5, 8],
159
+ [4, 8],
160
+ [3, 8],
161
+ [2, 8],
162
+ [1, 8],
163
+ [0, 8],
164
+ ];
165
+ function reserveFormatInfoAreas(functionModules, size) {
166
+ for (const [r, c] of FORMAT_INFO_POSITIONS) {
167
+ functionModules[r][c] = true;
168
+ }
169
+ for (let i = 0; i < 8; i++) {
170
+ functionModules[8][size - 1 - i] = true;
171
+ }
172
+ for (let i = 0; i < 7; i++) {
173
+ functionModules[size - 7 + i][8] = true;
174
+ }
175
+ }
176
+ function reserveVersionInfoAreas(matrix, functionModules, version) {
177
+ if (version < 7)
178
+ return;
179
+ const size = matrix.length;
180
+ const versionInfo = VERSION_INFO_TABLE[version - 7];
181
+ for (let i = 0; i < 18; i++) {
182
+ const bit = (versionInfo >> i) & 1;
183
+ const r = Math.floor(i / 3);
184
+ const c = i % 3;
185
+ matrix[r][size - 11 + c] = bit === 1;
186
+ functionModules[r][size - 11 + c] = true;
187
+ matrix[size - 11 + c][r] = bit === 1;
188
+ functionModules[size - 11 + c][r] = true;
189
+ }
190
+ }
191
+ function placeDataBits(matrix, functionModules, codewords) {
192
+ const size = matrix.length;
193
+ const totalBits = codewords.length * 8;
194
+ let bitIndex = 0;
195
+ let col = size - 1;
196
+ let goingUp = true;
197
+ while (col >= 0) {
198
+ if (col === 6) {
199
+ col--;
200
+ continue;
201
+ }
202
+ const rowStart = goingUp ? size - 1 : 0;
203
+ const rowEnd = goingUp ? -1 : size;
204
+ const rowStep = goingUp ? -1 : 1;
205
+ for (let row = rowStart; row !== rowEnd; row += rowStep) {
206
+ for (let dc = 0; dc < 2; dc++) {
207
+ const c = col - dc;
208
+ if (c < 0)
209
+ continue;
210
+ if (functionModules[row][c])
211
+ continue;
212
+ if (bitIndex < totalBits) {
213
+ const byteIndex = Math.floor(bitIndex / 8);
214
+ const bitPosition = 7 - (bitIndex % 8);
215
+ matrix[row][c] = ((codewords[byteIndex] >> bitPosition) & 1) === 1;
216
+ bitIndex++;
217
+ }
218
+ else {
219
+ matrix[row][c] = false;
220
+ }
221
+ }
222
+ }
223
+ col -= 2;
224
+ goingUp = !goingUp;
225
+ }
226
+ }
227
+ export function generateQRCodeMatrix(data, ecLevel = 'M', requiredVersion) {
228
+ const encoded = encodeQR(data, ecLevel, requiredVersion);
229
+ const { codewords, version } = encoded;
230
+ const size = version * 4 + 17;
231
+ const matrix = createMatrix(size);
232
+ const functionModules = createMatrix(size);
233
+ placeFinderPattern(matrix, functionModules, 0, 0);
234
+ placeFinderPattern(matrix, functionModules, 0, size - 7);
235
+ placeFinderPattern(matrix, functionModules, size - 7, 0);
236
+ placeTimingPatterns(matrix, functionModules);
237
+ const darkRow = 4 * version + 9;
238
+ matrix[darkRow][8] = true;
239
+ functionModules[darkRow][8] = true;
240
+ const alignmentPositions = ALIGNMENT_PATTERN_TABLE[version - 1];
241
+ for (const r of alignmentPositions) {
242
+ for (const c of alignmentPositions) {
243
+ if ((r <= 8 && c <= 8) ||
244
+ (r <= 8 && c >= size - 8) ||
245
+ (r >= size - 8 && c <= 8)) {
246
+ continue;
247
+ }
248
+ placeAlignmentPattern(matrix, functionModules, r, c);
249
+ }
250
+ }
251
+ reserveVersionInfoAreas(matrix, functionModules, version);
252
+ reserveFormatInfoAreas(functionModules, size);
253
+ placeDataBits(matrix, functionModules, codewords);
254
+ const bestMask = selectBestMask(matrix, functionModules);
255
+ const maskedMatrix = applyMask(matrix, functionModules, bestMask);
256
+ const ecFormatIndex = EC_LEVEL_FORMAT_INDEX[ecLevel];
257
+ const formatBits = FORMAT_INFO_TABLE[ecFormatIndex * 8 + bestMask];
258
+ writeFormatInfo(maskedMatrix, formatBits, size);
259
+ return { matrix: maskedMatrix, version, size };
260
+ }
261
+ function writeFormatInfo(matrix, formatBits, size) {
262
+ for (let i = 0; i < 15; i++) {
263
+ const bit = (formatBits >> (14 - i)) & 1;
264
+ const [r, c] = FORMAT_INFO_POSITIONS[i];
265
+ matrix[r][c] = bit === 1;
266
+ }
267
+ for (let i = 0; i < 8; i++) {
268
+ const bit = (formatBits >> i) & 1;
269
+ matrix[8][size - 1 - i] = bit === 1;
270
+ }
271
+ for (let i = 0; i < 7; i++) {
272
+ const bit = (formatBits >> (i + 7)) & 1;
273
+ matrix[size - 7 + i][8] = bit === 1;
274
+ }
275
+ matrix[size - 8][8] = true;
276
+ }
277
+ //# sourceMappingURL=matrix.js.map