igniteui-webcomponents 7.2.3 → 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.
- package/CHANGELOG.md +156 -0
- package/animations/player.d.ts +4 -11
- package/animations/player.js +4 -10
- package/animations/player.js.map +1 -1
- package/animations/view-transition.d.ts +44 -0
- package/animations/view-transition.js +81 -0
- package/animations/view-transition.js.map +1 -0
- package/components/accordion/accordion.d.ts +1 -1
- package/components/accordion/accordion.js +7 -6
- package/components/accordion/accordion.js.map +1 -1
- package/components/avatar/avatar.js +10 -10
- package/components/avatar/avatar.js.map +1 -1
- package/components/avatar/themes/themes.d.ts +1 -1
- package/components/avatar/themes/themes.js.map +1 -1
- package/components/badge/badge.d.ts +1 -1
- package/components/badge/badge.js +5 -5
- package/components/badge/badge.js.map +1 -1
- package/components/badge/themes/themes.d.ts +1 -1
- package/components/badge/themes/themes.js.map +1 -1
- package/components/banner/banner.d.ts +2 -2
- package/components/banner/banner.js +8 -8
- package/components/banner/banner.js.map +1 -1
- package/components/banner/themes/themes.d.ts +1 -1
- package/components/banner/themes/themes.js.map +1 -1
- package/components/button/button-base.d.ts +2 -2
- package/components/button/button-base.js +15 -12
- package/components/button/button-base.js.map +1 -1
- package/components/button/button.d.ts +3 -3
- package/components/button/button.js +2 -2
- package/components/button/button.js.map +1 -1
- package/components/button/icon-button.js +12 -12
- package/components/button/icon-button.js.map +1 -1
- package/components/button/themes/button/themes.d.ts +1 -1
- package/components/button/themes/button/themes.js.map +1 -1
- package/components/button/themes/icon-button/themes.d.ts +1 -1
- package/components/button/themes/icon-button/themes.js.map +1 -1
- package/components/button-group/button-group.d.ts +42 -21
- package/components/button-group/button-group.js +101 -106
- package/components/button-group/button-group.js.map +1 -1
- package/components/button-group/themes/button.d.ts +1 -1
- package/components/button-group/themes/button.js.map +1 -1
- package/components/button-group/themes/group.d.ts +1 -1
- package/components/button-group/themes/group.js.map +1 -1
- package/components/button-group/toggle-button.d.ts +17 -10
- package/components/button-group/toggle-button.js +28 -13
- package/components/button-group/toggle-button.js.map +1 -1
- package/components/calendar/base.d.ts +29 -10
- package/components/calendar/base.js +12 -15
- package/components/calendar/base.js.map +1 -1
- package/components/calendar/calendar.d.ts +39 -8
- package/components/calendar/calendar.js +96 -85
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.d.ts +49 -22
- package/components/calendar/days-view/days-view.js +102 -163
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/helpers.d.ts +3 -62
- package/components/calendar/helpers.js +6 -110
- package/components/calendar/helpers.js.map +1 -1
- package/components/calendar/months-view/months-view.d.ts +7 -21
- package/components/calendar/months-view/months-view.js +30 -83
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/selection.d.ts +21 -0
- package/components/calendar/selection.js +42 -0
- package/components/calendar/selection.js.map +1 -0
- package/components/calendar/themes/calendar.d.ts +1 -1
- package/components/calendar/themes/calendar.js.map +1 -1
- package/components/calendar/themes/days.d.ts +1 -1
- package/components/calendar/themes/days.js.map +1 -1
- package/components/calendar/themes/year-month.d.ts +1 -1
- package/components/calendar/themes/year-month.js.map +1 -1
- package/components/calendar/types.d.ts +18 -0
- package/components/calendar/types.js.map +1 -1
- package/components/calendar/year-month-view.base.d.ts +44 -0
- package/components/calendar/year-month-view.base.js +89 -0
- package/components/calendar/year-month-view.base.js.map +1 -0
- package/components/calendar/years-view/years-view.d.ts +7 -20
- package/components/calendar/years-view/years-view.js +25 -79
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/card/card.actions.js +2 -2
- package/components/card/card.actions.js.map +1 -1
- package/components/card/card.content.d.ts +1 -1
- package/components/card/card.content.js +2 -2
- package/components/card/card.content.js.map +1 -1
- package/components/card/card.d.ts +1 -1
- package/components/card/card.header.js +2 -2
- package/components/card/card.header.js.map +1 -1
- package/components/card/card.js +2 -2
- package/components/card/card.js.map +1 -1
- package/components/card/card.media.d.ts +1 -1
- package/components/card/card.media.js +1 -1
- package/components/card/card.media.js.map +1 -1
- package/components/card/themes/actions.d.ts +1 -1
- package/components/card/themes/actions.js.map +1 -1
- package/components/card/themes/container.d.ts +1 -1
- package/components/card/themes/container.js.map +1 -1
- package/components/card/themes/content.d.ts +1 -1
- package/components/card/themes/content.js.map +1 -1
- package/components/card/themes/header.d.ts +1 -1
- package/components/card/themes/header.js.map +1 -1
- package/components/carousel/animations.d.ts +1 -1
- package/components/carousel/animations.js +2 -2
- package/components/carousel/animations.js.map +1 -1
- package/components/carousel/carousel-indicator-container.js +4 -4
- package/components/carousel/carousel-indicator-container.js.map +1 -1
- package/components/carousel/carousel-indicator.d.ts +1 -1
- package/components/carousel/carousel-indicator.js +5 -5
- package/components/carousel/carousel-indicator.js.map +1 -1
- package/components/carousel/carousel-slide.d.ts +1 -1
- package/components/carousel/carousel-slide.js +9 -9
- package/components/carousel/carousel-slide.js.map +1 -1
- package/components/carousel/carousel.d.ts +7 -7
- package/components/carousel/carousel.js +40 -30
- package/components/carousel/carousel.js.map +1 -1
- package/components/carousel/themes/container.d.ts +1 -1
- package/components/carousel/themes/container.js.map +1 -1
- package/components/carousel/themes/indicator-container.d.ts +1 -1
- package/components/carousel/themes/indicator-container.js.map +1 -1
- package/components/chat/chat-input.d.ts +4 -4
- package/components/chat/chat-input.js +13 -12
- package/components/chat/chat-input.js.map +1 -1
- package/components/chat/chat-message.d.ts +1 -1
- package/components/chat/chat-message.js +7 -6
- package/components/chat/chat-message.js.map +1 -1
- package/components/chat/chat-state.d.ts +2 -2
- package/components/chat/chat-state.js +2 -1
- package/components/chat/chat-state.js.map +1 -1
- package/components/chat/chat.d.ts +4 -4
- package/components/chat/chat.js +13 -13
- package/components/chat/chat.js.map +1 -1
- package/components/chat/message-attachments.js +5 -5
- package/components/chat/message-attachments.js.map +1 -1
- package/components/chat/themes/attachments.d.ts +1 -1
- package/components/chat/themes/attachments.js.map +1 -1
- package/components/chat/themes/input.d.ts +1 -1
- package/components/chat/themes/input.js.map +1 -1
- package/components/chat/themes/message.d.ts +1 -1
- package/components/chat/themes/message.js.map +1 -1
- package/components/chat/themes/themes.d.ts +1 -1
- package/components/chat/themes/themes.js.map +1 -1
- package/components/chat/types.d.ts +2 -2
- package/components/chat/types.js.map +1 -1
- package/components/chat/utils.d.ts +1 -1
- package/components/chat/utils.js +3 -3
- package/components/chat/utils.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +7 -7
- package/components/checkbox/checkbox-base.js +7 -7
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.js +7 -6
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.js +7 -6
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/themes/checkbox-themes.d.ts +1 -1
- package/components/checkbox/themes/checkbox-themes.js.map +1 -1
- package/components/checkbox/themes/switch-themes.d.ts +1 -1
- package/components/checkbox/themes/switch-themes.js.map +1 -1
- package/components/checkbox/validators.d.ts +1 -1
- package/components/checkbox/validators.js +1 -1
- package/components/checkbox/validators.js.map +1 -1
- package/components/chip/chip.d.ts +9 -3
- package/components/chip/chip.js +10 -6
- package/components/chip/chip.js.map +1 -1
- package/components/chip/themes/chip.base.css.js +1 -1
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/dark/chip.fluent.css.js +1 -1
- package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/dark/chip.indigo.css.js +1 -1
- package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/dark/chip.material.css.js +1 -1
- package/components/chip/themes/dark/chip.material.css.js.map +1 -1
- package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/light/chip.fluent.css.js +1 -1
- package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/light/chip.indigo.css.js +1 -1
- package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/light/chip.material.css.js +1 -1
- package/components/chip/themes/light/chip.material.css.js.map +1 -1
- package/components/chip/themes/light/chip.shared.css.js +1 -1
- package/components/chip/themes/light/chip.shared.css.js.map +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/shared/chip.common.css.js +1 -1
- package/components/chip/themes/shared/chip.common.css.js.map +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/themes.d.ts +1 -1
- package/components/chip/themes/themes.js.map +1 -1
- package/components/combo/combo-header.js +2 -2
- package/components/combo/combo-header.js.map +1 -1
- package/components/combo/combo-item.d.ts +0 -2
- package/components/combo/combo-item.js +4 -7
- package/components/combo/combo-item.js.map +1 -1
- package/components/combo/combo.d.ts +84 -26
- package/components/combo/combo.js +197 -152
- package/components/combo/combo.js.map +1 -1
- package/components/combo/controllers/data.d.ts +30 -3
- package/components/combo/controllers/data.js +34 -9
- package/components/combo/controllers/data.js.map +1 -1
- package/components/combo/controllers/navigation.d.ts +8 -2
- package/components/combo/controllers/navigation.js +11 -12
- package/components/combo/controllers/navigation.js.map +1 -1
- package/components/combo/operations/filter.d.ts +17 -1
- package/components/combo/operations/filter.js +29 -9
- package/components/combo/operations/filter.js.map +1 -1
- package/components/combo/operations/group.js +1 -1
- package/components/combo/operations/group.js.map +1 -1
- package/components/combo/themes/combo.base.css.js +1 -1
- package/components/combo/themes/combo.base.css.js.map +1 -1
- package/components/combo/themes/themes.d.ts +1 -1
- package/components/combo/themes/themes.js.map +1 -1
- package/components/combo/types.d.ts +8 -4
- package/components/combo/types.js.map +1 -1
- package/components/combo/validators.d.ts +1 -1
- package/components/combo/validators.js.map +1 -1
- package/components/date-picker/date-picker.base.d.ts +294 -0
- package/components/date-picker/date-picker.base.js +480 -0
- package/components/date-picker/date-picker.base.js.map +1 -0
- package/components/date-picker/date-picker.d.ts +52 -172
- package/components/date-picker/date-picker.js +88 -393
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/themes/themes.d.ts +1 -1
- package/components/date-picker/themes/themes.js.map +1 -1
- package/components/date-picker/validators.d.ts +1 -1
- package/components/date-picker/validators.js +2 -2
- package/components/date-picker/validators.js.map +1 -1
- package/components/date-range-picker/date-range-input.d.ts +12 -14
- package/components/date-range-picker/date-range-input.js +42 -98
- package/components/date-range-picker/date-range-input.js.map +1 -1
- package/components/date-range-picker/date-range-mask-parser.d.ts +22 -34
- package/components/date-range-picker/date-range-mask-parser.js +38 -69
- package/components/date-range-picker/date-range-mask-parser.js.map +1 -1
- package/components/date-range-picker/date-range-picker.d.ts +98 -191
- package/components/date-range-picker/date-range-picker.js +210 -530
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/predefined-ranges-area.d.ts +2 -2
- package/components/date-range-picker/predefined-ranges-area.js +5 -5
- package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
- package/components/date-range-picker/themes/ranges-themes.d.ts +1 -1
- package/components/date-range-picker/themes/ranges-themes.js.map +1 -1
- package/components/date-range-picker/themes/themes.d.ts +1 -1
- package/components/date-range-picker/themes/themes.js.map +1 -1
- package/components/date-range-picker/validators.d.ts +1 -1
- package/components/date-range-picker/validators.js +15 -22
- package/components/date-range-picker/validators.js.map +1 -1
- package/components/date-time-input/date-part.d.ts +18 -1
- package/components/date-time-input/date-part.js +10 -0
- package/components/date-time-input/date-part.js.map +1 -1
- package/components/date-time-input/date-time-input.base.d.ts +74 -12
- package/components/date-time-input/date-time-input.base.js +99 -27
- package/components/date-time-input/date-time-input.base.js.map +1 -1
- package/components/date-time-input/date-time-input.d.ts +13 -23
- package/components/date-time-input/date-time-input.js +45 -65
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/datetime-mask-parser.d.ts +45 -109
- package/components/date-time-input/datetime-mask-parser.js +88 -139
- package/components/date-time-input/datetime-mask-parser.js.map +1 -1
- package/components/date-time-input/validators.d.ts +1 -1
- package/components/date-time-input/validators.js +2 -2
- package/components/date-time-input/validators.js.map +1 -1
- package/components/dialog/dialog.d.ts +2 -2
- package/components/dialog/dialog.js +21 -22
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/themes/themes.d.ts +1 -1
- package/components/dialog/themes/themes.js.map +1 -1
- package/components/divider/divider.d.ts +2 -1
- package/components/divider/divider.js +3 -3
- package/components/divider/divider.js.map +1 -1
- package/components/divider/themes/themes.d.ts +1 -1
- package/components/divider/themes/themes.js.map +1 -1
- package/components/dropdown/dropdown-group.d.ts +10 -3
- package/components/dropdown/dropdown-group.js +21 -5
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown-header.d.ts +2 -2
- package/components/dropdown/dropdown-header.js +7 -2
- package/components/dropdown/dropdown-header.js.map +1 -1
- package/components/dropdown/dropdown-item.d.ts +4 -4
- package/components/dropdown/dropdown-item.js +3 -3
- package/components/dropdown/dropdown-item.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +75 -32
- package/components/dropdown/dropdown.js +189 -110
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/themes/container.d.ts +1 -1
- package/components/dropdown/themes/container.js.map +1 -1
- package/components/dropdown/themes/group.d.ts +1 -1
- package/components/dropdown/themes/group.js.map +1 -1
- package/components/dropdown/themes/header.d.ts +1 -1
- package/components/dropdown/themes/header.js.map +1 -1
- package/components/dropdown/themes/item.d.ts +1 -1
- package/components/dropdown/themes/item.js.map +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +14 -5
- package/components/expansion-panel/expansion-panel.js +10 -9
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/expansion-panel/themes/themes.d.ts +1 -1
- package/components/expansion-panel/themes/themes.js.map +1 -1
- package/components/file-input/file-input.d.ts +20 -12
- package/components/file-input/file-input.js +17 -12
- package/components/file-input/file-input.js.map +1 -1
- package/components/file-input/themes/themes.d.ts +1 -1
- package/components/file-input/themes/themes.js.map +1 -1
- package/components/file-input/validators.d.ts +1 -1
- package/components/file-input/validators.js +1 -1
- package/components/file-input/validators.js.map +1 -1
- package/components/focus-trap/focus-trap.js +3 -2
- package/components/focus-trap/focus-trap.js.map +1 -1
- package/components/highlight/highlight.js +2 -2
- package/components/highlight/highlight.js.map +1 -1
- package/components/highlight/service.d.ts +4 -1
- package/components/highlight/service.js +23 -7
- package/components/highlight/service.js.map +1 -1
- package/components/highlight/themes/themes.d.ts +1 -1
- package/components/highlight/themes/themes.js.map +1 -1
- package/components/icon/icon-references.d.ts +3 -2
- package/components/icon/icon-references.js +103 -491
- package/components/icon/icon-references.js.map +1 -1
- package/components/icon/icon-state.broadcast.d.ts +14 -17
- package/components/icon/icon-state.broadcast.js +19 -20
- package/components/icon/icon-state.broadcast.js.map +1 -1
- package/components/icon/icon.d.ts +14 -25
- package/components/icon/icon.js +37 -24
- package/components/icon/icon.js.map +1 -1
- package/components/icon/icon.registry.d.ts +69 -131
- package/components/icon/icon.registry.js +51 -53
- package/components/icon/icon.registry.js.map +1 -1
- package/components/icon/internal-icons-lib.js +2 -2
- package/components/icon/internal-icons-lib.js.map +1 -1
- package/components/icon/registry/parser.d.ts +15 -3
- package/components/icon/registry/parser.js +36 -11
- package/components/icon/registry/parser.js.map +1 -1
- package/components/icon/registry/types.d.ts +55 -11
- package/components/icon/registry/types.js.map +1 -1
- package/components/icon/themes/icon.base.css.js +1 -1
- package/components/icon/themes/icon.base.css.js.map +1 -1
- package/components/icon/themes/shared/icon.common.css.js +1 -1
- package/components/icon/themes/shared/icon.common.css.js.map +1 -1
- package/components/icon/themes/themes.d.ts +1 -1
- package/components/icon/themes/themes.js.map +1 -1
- package/components/input/input-base.d.ts +12 -12
- package/components/input/input-base.js +13 -15
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.d.ts +15 -12
- package/components/input/input.js +8 -8
- package/components/input/input.js.map +1 -1
- package/components/input/themes/input.base.css.js +1 -1
- package/components/input/themes/input.base.css.js.map +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/shared/input.common.css.js +1 -1
- package/components/input/themes/shared/input.common.css.js.map +1 -1
- package/components/input/themes/shared/input.fluent.css.js +1 -1
- package/components/input/themes/shared/input.fluent.css.js.map +1 -1
- package/components/input/themes/shared/input.indigo.css.js +1 -1
- package/components/input/themes/shared/input.indigo.css.js.map +1 -1
- package/components/input/themes/shared/input.material.css.js +1 -1
- package/components/input/themes/shared/input.material.css.js.map +1 -1
- package/components/input/themes/themes.d.ts +1 -1
- package/components/input/themes/themes.js.map +1 -1
- package/components/input/validators.d.ts +1 -1
- package/components/input/validators.js +1 -1
- package/components/input/validators.js.map +1 -1
- package/components/list/list-header.js +3 -3
- package/components/list/list-header.js.map +1 -1
- package/components/list/list-item.js +3 -3
- package/components/list/list-item.js.map +1 -1
- package/components/list/list.js +3 -3
- package/components/list/list.js.map +1 -1
- package/components/list/themes/container.d.ts +1 -1
- package/components/list/themes/container.js.map +1 -1
- package/components/list/themes/header.d.ts +1 -1
- package/components/list/themes/header.js.map +1 -1
- package/components/list/themes/item.d.ts +1 -1
- package/components/list/themes/item.js.map +1 -1
- package/components/mask-input/mask-history.d.ts +99 -0
- package/components/mask-input/mask-history.js +95 -0
- package/components/mask-input/mask-history.js.map +1 -0
- package/components/mask-input/mask-input.d.ts +14 -9
- package/components/mask-input/mask-input.js +20 -23
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/mask-input/mask-parser.d.ts +20 -2
- package/components/mask-input/mask-parser.js +21 -13
- package/components/mask-input/mask-parser.js.map +1 -1
- package/components/mask-input/validators.d.ts +1 -1
- package/components/mask-input/validators.js +1 -1
- package/components/mask-input/validators.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
- package/components/nav-drawer/nav-drawer-header-item.js +2 -2
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.d.ts +2 -2
- package/components/nav-drawer/nav-drawer-item.js +4 -4
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.d.ts +3 -3
- package/components/nav-drawer/nav-drawer.js +11 -14
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/nav-drawer/themes/container.base.css.js +1 -1
- package/components/nav-drawer/themes/container.base.css.js.map +1 -1
- package/components/nav-drawer/themes/container.d.ts +1 -1
- package/components/nav-drawer/themes/container.js +2 -3
- package/components/nav-drawer/themes/container.js.map +1 -1
- package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
- package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
- package/components/nav-drawer/themes/header-item.d.ts +1 -1
- package/components/nav-drawer/themes/header-item.js.map +1 -1
- package/components/nav-drawer/themes/item.d.ts +1 -1
- package/components/nav-drawer/themes/item.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
- package/components/navbar/navbar.js +2 -2
- package/components/navbar/navbar.js.map +1 -1
- package/components/navbar/themes/themes.d.ts +1 -1
- package/components/navbar/themes/themes.js.map +1 -1
- package/components/popover/popover.d.ts +10 -3
- package/components/popover/popover.js +114 -99
- package/components/popover/popover.js.map +1 -1
- package/components/progress/base.d.ts +1 -1
- package/components/progress/base.js +5 -4
- package/components/progress/base.js.map +1 -1
- package/components/progress/circular-gradient.d.ts +2 -2
- package/components/progress/circular-gradient.js +1 -1
- package/components/progress/circular-gradient.js.map +1 -1
- package/components/progress/circular-progress.d.ts +15 -15
- package/components/progress/circular-progress.js +7 -6
- package/components/progress/circular-progress.js.map +1 -1
- package/components/progress/linear-progress.d.ts +12 -12
- package/components/progress/linear-progress.js +4 -4
- package/components/progress/linear-progress.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
- package/components/progress/themes/circular/themes.d.ts +1 -1
- package/components/progress/themes/circular/themes.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
- package/components/progress/themes/linear/themes.d.ts +1 -1
- package/components/progress/themes/linear/themes.js.map +1 -1
- package/components/qr-code/model/encode.d.ts +20 -0
- package/components/qr-code/model/encode.js +166 -0
- package/components/qr-code/model/encode.js.map +1 -0
- package/components/qr-code/model/error-correction.d.ts +15 -0
- package/components/qr-code/model/error-correction.js +1114 -0
- package/components/qr-code/model/error-correction.js.map +1 -0
- package/components/qr-code/model/mask.d.ts +11 -0
- package/components/qr-code/model/mask.js +161 -0
- package/components/qr-code/model/mask.js.map +1 -0
- package/components/qr-code/model/matrix.d.ts +15 -0
- package/components/qr-code/model/matrix.js +277 -0
- package/components/qr-code/model/matrix.js.map +1 -0
- package/components/qr-code/qr-code.d.ts +134 -0
- package/components/qr-code/qr-code.js +221 -0
- package/components/qr-code/qr-code.js.map +1 -0
- package/components/qr-code/renderer/constants.d.ts +26 -0
- package/components/qr-code/renderer/constants.js +5 -0
- package/components/qr-code/renderer/constants.js.map +1 -0
- package/components/qr-code/renderer/corner.d.ts +23 -0
- package/components/qr-code/renderer/corner.js +25 -0
- package/components/qr-code/renderer/corner.js.map +1 -0
- package/components/qr-code/renderer/dots.d.ts +14 -0
- package/components/qr-code/renderer/dots.js +7 -0
- package/components/qr-code/renderer/dots.js.map +1 -0
- package/components/qr-code/renderer/helpers.d.ts +18 -0
- package/components/qr-code/renderer/helpers.js +158 -0
- package/components/qr-code/renderer/helpers.js.map +1 -0
- package/components/qr-code/renderer/image.d.ts +23 -0
- package/components/qr-code/renderer/image.js +29 -0
- package/components/qr-code/renderer/image.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.bootstrap.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.bootstrap.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.material.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.material.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.material.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.material.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.material.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.material.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.shared.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.shared.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.shared.css.js.map +1 -0
- package/components/qr-code/themes/qr-code.base.css.d.ts +1 -0
- package/components/qr-code/themes/qr-code.base.css.js +3 -0
- package/components/qr-code/themes/qr-code.base.css.js.map +1 -0
- package/components/qr-code/themes/shared/qr-code.common.css.d.ts +1 -0
- package/components/qr-code/themes/shared/qr-code.common.css.js +3 -0
- package/components/qr-code/themes/shared/qr-code.common.css.js.map +1 -0
- package/components/qr-code/themes/themes.d.ts +2 -0
- package/components/qr-code/themes/themes.js +46 -0
- package/components/qr-code/themes/themes.js.map +1 -0
- package/components/qr-code/types.d.ts +16 -0
- package/components/qr-code/types.js +2 -0
- package/components/qr-code/types.js.map +1 -0
- package/components/radio/controller.d.ts +35 -0
- package/components/radio/controller.js +100 -0
- package/components/radio/controller.js.map +1 -0
- package/components/radio/radio.d.ts +26 -14
- package/components/radio/radio.js +47 -36
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/themes.d.ts +1 -1
- package/components/radio/themes/themes.js.map +1 -1
- package/components/radio/validators.d.ts +1 -1
- package/components/radio/validators.js +5 -3
- package/components/radio/validators.js.map +1 -1
- package/components/radio-group/radio-group.d.ts +19 -10
- package/components/radio-group/radio-group.js +50 -41
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/radio-group/themes/themes.d.ts +1 -1
- package/components/radio-group/themes/themes.js.map +1 -1
- package/components/rating/rating-symbol.d.ts +1 -1
- package/components/rating/rating-symbol.js +1 -1
- package/components/rating/rating-symbol.js.map +1 -1
- package/components/rating/rating.d.ts +6 -6
- package/components/rating/rating.js +12 -9
- package/components/rating/rating.js.map +1 -1
- package/components/rating/themes/themes.d.ts +1 -1
- package/components/rating/themes/themes.js.map +1 -1
- package/components/resize-container/resize-container.d.ts +4 -4
- package/components/resize-container/resize-container.js +4 -4
- package/components/resize-container/resize-container.js.map +1 -1
- package/components/resize-container/resize-controller.js +2 -2
- package/components/resize-container/resize-controller.js.map +1 -1
- package/components/resize-container/themes/themes.d.ts +1 -1
- package/components/resize-container/themes/themes.js.map +1 -1
- package/components/ripple/ripple.d.ts +1 -1
- package/components/ripple/ripple.js +3 -2
- package/components/ripple/ripple.js.map +1 -1
- package/components/select/select-group.d.ts +9 -2
- package/components/select/select-group.js +21 -5
- package/components/select/select-group.js.map +1 -1
- package/components/select/select-header.d.ts +1 -1
- package/components/select/select-header.js +7 -2
- package/components/select/select-header.js.map +1 -1
- package/components/select/select-item.d.ts +4 -4
- package/components/select/select-item.js +3 -3
- package/components/select/select-item.js.map +1 -1
- package/components/select/select.d.ts +49 -22
- package/components/select/select.js +132 -67
- package/components/select/select.js.map +1 -1
- package/components/select/themes/select.base.css.js +1 -1
- package/components/select/themes/select.base.css.js.map +1 -1
- package/components/select/themes/themes.d.ts +1 -1
- package/components/select/themes/themes.js.map +1 -1
- package/components/select/validators.d.ts +1 -1
- package/components/select/validators.js +1 -1
- package/components/select/validators.js.map +1 -1
- package/components/slider/range-slider.d.ts +2 -2
- package/components/slider/range-slider.js +8 -8
- package/components/slider/range-slider.js.map +1 -1
- package/components/slider/slider-base.js +18 -14
- package/components/slider/slider-base.js.map +1 -1
- package/components/slider/slider-label.js +1 -1
- package/components/slider/slider-label.js.map +1 -1
- package/components/slider/slider.d.ts +3 -3
- package/components/slider/slider.js +6 -6
- package/components/slider/slider.js.map +1 -1
- package/components/slider/themes/themes.d.ts +1 -1
- package/components/slider/themes/themes.js.map +1 -1
- package/components/snackbar/snackbar.d.ts +3 -3
- package/components/snackbar/snackbar.js +8 -8
- package/components/snackbar/snackbar.js.map +1 -1
- package/components/snackbar/themes/themes.d.ts +1 -1
- package/components/snackbar/themes/themes.js.map +1 -1
- package/components/splitter/splitter.d.ts +106 -23
- package/components/splitter/splitter.js +234 -147
- package/components/splitter/splitter.js.map +1 -1
- package/components/splitter/themes/themes.d.ts +1 -1
- package/components/splitter/themes/themes.js.map +1 -1
- package/components/splitter/types.d.ts +14 -3
- package/components/splitter/types.js.map +1 -1
- package/components/stepper/common/animations.d.ts +1 -1
- package/components/stepper/common/animations.js +2 -2
- package/components/stepper/common/animations.js.map +1 -1
- package/components/stepper/step.d.ts +1 -1
- package/components/stepper/step.js +7 -7
- package/components/stepper/step.js.map +1 -1
- package/components/stepper/stepper.d.ts +5 -5
- package/components/stepper/stepper.js +12 -9
- package/components/stepper/stepper.js.map +1 -1
- package/components/stepper/themes/step/themes.d.ts +1 -1
- package/components/stepper/themes/step/themes.js.map +1 -1
- package/components/tabs/tab-dom.d.ts +31 -28
- package/components/tabs/tab-dom.js +84 -34
- package/components/tabs/tab-dom.js.map +1 -1
- package/components/tabs/tab.d.ts +24 -6
- package/components/tabs/tab.js +34 -13
- package/components/tabs/tab.js.map +1 -1
- package/components/tabs/tabs.d.ts +36 -22
- package/components/tabs/tabs.js +118 -88
- package/components/tabs/tabs.js.map +1 -1
- package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +1 -1
- package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -1
- package/components/tabs/themes/tab-themes.d.ts +1 -1
- package/components/tabs/themes/tab-themes.js.map +1 -1
- package/components/tabs/themes/tabs-themes.d.ts +1 -1
- package/components/tabs/themes/tabs-themes.js.map +1 -1
- package/components/tabs/themes/tabs.base.css.js +1 -1
- package/components/tabs/themes/tabs.base.css.js.map +1 -1
- package/components/textarea/textarea.d.ts +19 -14
- package/components/textarea/textarea.js +22 -16
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/themes.d.ts +1 -1
- package/components/textarea/themes/themes.js.map +1 -1
- package/components/textarea/validators.d.ts +1 -1
- package/components/textarea/validators.js +1 -1
- package/components/textarea/validators.js.map +1 -1
- package/components/theme-provider/theme-provider.d.ts +1 -1
- package/components/theme-provider/theme-provider.js +2 -2
- package/components/theme-provider/theme-provider.js.map +1 -1
- package/components/tile-manager/position.d.ts +1 -1
- package/components/tile-manager/position.js +2 -2
- package/components/tile-manager/position.js.map +1 -1
- package/components/tile-manager/resize-state.js +4 -3
- package/components/tile-manager/resize-state.js.map +1 -1
- package/components/tile-manager/themes/container.d.ts +1 -1
- package/components/tile-manager/themes/container.js.map +1 -1
- package/components/tile-manager/themes/tile.d.ts +1 -1
- package/components/tile-manager/themes/tile.js.map +1 -1
- package/components/tile-manager/tile-ghost-util.js +1 -1
- package/components/tile-manager/tile-ghost-util.js.map +1 -1
- package/components/tile-manager/tile-manager.d.ts +1 -1
- package/components/tile-manager/tile-manager.js +7 -7
- package/components/tile-manager/tile-manager.js.map +1 -1
- package/components/tile-manager/tile.d.ts +4 -4
- package/components/tile-manager/tile.js +29 -25
- package/components/tile-manager/tile.js.map +1 -1
- package/components/toast/themes/themes.d.ts +1 -1
- package/components/toast/themes/themes.js.map +1 -1
- package/components/toast/toast.d.ts +1 -1
- package/components/toast/toast.js +3 -3
- package/components/toast/toast.js.map +1 -1
- package/components/tooltip/controller.d.ts +18 -16
- package/components/tooltip/controller.js +62 -41
- package/components/tooltip/controller.js.map +1 -1
- package/components/tooltip/service.d.ts +2 -1
- package/components/tooltip/service.js +10 -15
- package/components/tooltip/service.js.map +1 -1
- package/components/tooltip/themes/shared/tooltip.common.css.js +1 -1
- package/components/tooltip/themes/shared/tooltip.common.css.js.map +1 -1
- package/components/tooltip/themes/shared/tooltip.indigo.css.js +1 -1
- package/components/tooltip/themes/shared/tooltip.indigo.css.js.map +1 -1
- package/components/tooltip/themes/themes.d.ts +1 -1
- package/components/tooltip/themes/themes.js.map +1 -1
- package/components/tooltip/themes/tooltip.base.css.js +1 -1
- package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
- package/components/tooltip/tooltip.d.ts +64 -18
- package/components/tooltip/tooltip.js +112 -62
- package/components/tooltip/tooltip.js.map +1 -1
- package/components/tree/themes/container.base.css.js +1 -1
- package/components/tree/themes/container.base.css.js.map +1 -1
- package/components/tree/themes/container.d.ts +1 -1
- package/components/tree/themes/container.js.map +1 -1
- package/components/tree/themes/item.base.css.js +1 -1
- package/components/tree/themes/item.base.css.js.map +1 -1
- package/components/tree/themes/item.d.ts +1 -1
- package/components/tree/themes/item.js.map +1 -1
- package/components/tree/tree-item.d.ts +62 -36
- package/components/tree/tree-item.js +223 -233
- package/components/tree/tree-item.js.map +1 -1
- package/components/tree/tree.common.d.ts +16 -1
- package/components/tree/tree.common.js +40 -1
- package/components/tree/tree.common.js.map +1 -1
- package/components/tree/tree.d.ts +21 -14
- package/components/tree/tree.js +64 -72
- package/components/tree/tree.js.map +1 -1
- package/components/tree/tree.navigation.d.ts +39 -29
- package/components/tree/tree.navigation.js +140 -192
- package/components/tree/tree.navigation.js.map +1 -1
- package/components/tree/tree.selection.d.ts +32 -31
- package/components/tree/tree.selection.js +184 -178
- package/components/tree/tree.selection.js.map +1 -1
- package/components/types.js.map +1 -1
- package/components/validation-container/validation-container.d.ts +33 -6
- package/components/validation-container/validation-container.js +81 -70
- package/components/validation-container/validation-container.js.map +1 -1
- package/components/virtualization/engine.d.ts +92 -0
- package/components/virtualization/engine.js +217 -0
- package/components/virtualization/engine.js.map +1 -0
- package/components/virtualization/types.d.ts +53 -0
- package/components/virtualization/types.js +14 -0
- package/components/virtualization/types.js.map +1 -0
- package/components/virtualization/virtualization.d.ts +235 -0
- package/components/virtualization/virtualization.js +474 -0
- package/components/virtualization/virtualization.js.map +1 -0
- package/components/visually-hidden/visually-hidden.js +1 -1
- package/components/visually-hidden/visually-hidden.js.map +1 -1
- package/custom-elements.json +57500 -47242
- package/extras/chat-markdown-renderer.d.ts +1 -1
- package/extras/chat-markdown-renderer.js.map +1 -1
- package/igniteui-webcomponents.css-data.json +2 -2
- package/igniteui-webcomponents.html-data.json +1 -1
- package/index.d.ts +20 -15
- package/index.js +11 -9
- package/index.js.map +1 -1
- package/internals/abort-handler.js.map +1 -0
- package/internals/context.d.ts +39 -0
- package/{components/common → internals}/context.js +2 -1
- package/internals/context.js.map +1 -0
- package/internals/controllers/adopt-styles.d.ts +76 -0
- package/internals/controllers/adopt-styles.js +173 -0
- package/internals/controllers/adopt-styles.js.map +1 -0
- package/internals/controllers/aria-projection.d.ts +144 -0
- package/internals/controllers/aria-projection.js +138 -0
- package/internals/controllers/aria-projection.js.map +1 -0
- package/{components/common → internals}/controllers/async-consumer.js +8 -7
- package/internals/controllers/async-consumer.js.map +1 -0
- package/internals/controllers/command.js.map +1 -0
- package/{components/common → internals}/controllers/drag.js +3 -2
- package/internals/controllers/drag.js.map +1 -0
- package/{components/common → internals}/controllers/focus-ring.js +5 -2
- package/internals/controllers/focus-ring.js.map +1 -0
- package/{components/common → internals}/controllers/fullscreen.js +6 -3
- package/internals/controllers/fullscreen.js.map +1 -0
- package/{components/common → internals}/controllers/gestures.d.ts +1 -1
- package/{components/common → internals}/controllers/gestures.js +4 -4
- package/internals/controllers/gestures.js.map +1 -0
- package/{components/common → internals}/controllers/id-resolver.js +15 -21
- package/internals/controllers/id-resolver.js.map +1 -0
- package/{components/common → internals}/controllers/internals.d.ts +48 -3
- package/{components/common → internals}/controllers/internals.js +32 -0
- package/internals/controllers/internals.js.map +1 -0
- package/{components/common → internals}/controllers/key-bindings.d.ts +3 -6
- package/{components/common → internals}/controllers/key-bindings.js +43 -29
- package/internals/controllers/key-bindings.js.map +1 -0
- package/{components/common → internals}/controllers/mutation-observer.d.ts +5 -4
- package/internals/controllers/mutation-observer.js +74 -0
- package/internals/controllers/mutation-observer.js.map +1 -0
- package/{components/common → internals}/controllers/resize-observer.d.ts +11 -1
- package/{components/common → internals}/controllers/resize-observer.js +13 -2
- package/internals/controllers/resize-observer.js.map +1 -0
- package/{components/common → internals}/controllers/root-click.js +8 -13
- package/internals/controllers/root-click.js.map +1 -0
- package/{components/common → internals}/controllers/root-scroll.d.ts +11 -8
- package/internals/controllers/root-scroll.js +71 -0
- package/internals/controllers/root-scroll.js.map +1 -0
- package/{components/common → internals}/controllers/slot.d.ts +18 -2
- package/{components/common → internals}/controllers/slot.js +21 -6
- package/internals/controllers/slot.js.map +1 -0
- package/internals/date/compare.d.ts +2 -0
- package/internals/date/compare.js +23 -0
- package/internals/date/compare.js.map +1 -0
- package/internals/date/converters.d.ts +18 -0
- package/internals/date/converters.js +73 -0
- package/internals/date/converters.js.map +1 -0
- package/{components/calendar → internals/date}/model.d.ts +6 -3
- package/{components/calendar → internals/date}/model.js +23 -0
- package/internals/date/model.js.map +1 -0
- package/internals/decorators/blazorAdditionalDependencies.js.map +1 -0
- package/internals/decorators/blazorDeepImport.js.map +1 -0
- package/internals/decorators/blazorInclude.js.map +1 -0
- package/internals/decorators/blazorIndirectRender.js.map +1 -0
- package/internals/decorators/blazorSuppressComponent.js.map +1 -0
- package/internals/decorators/shadow-options.js.map +1 -0
- package/internals/decorators/watch.js.map +1 -0
- package/internals/definitions/defineAllComponents.js +153 -0
- package/internals/definitions/defineAllComponents.js.map +1 -0
- package/internals/definitions/defineComponents.js.map +1 -0
- package/internals/definitions/register.js.map +1 -0
- package/{components/common → internals}/i18n/EN/calendar.resources.js +1 -1
- package/internals/i18n/EN/calendar.resources.js.map +1 -0
- package/internals/i18n/EN/chat.resources.js.map +1 -0
- package/internals/i18n/EN/date-picker.resources.js.map +1 -0
- package/internals/i18n/EN/date-range-picker.resources.js.map +1 -0
- package/internals/i18n/i18n-controller.js.map +1 -0
- package/{components/common → internals}/i18n/utils.js +1 -1
- package/internals/i18n/utils.js.map +1 -0
- package/{components/common → internals}/mixins/alert.d.ts +2 -2
- package/{components/common → internals}/mixins/alert.js +3 -3
- package/internals/mixins/alert.js.map +1 -0
- package/{components/common → internals}/mixins/combo-box.d.ts +10 -2
- package/{components/common → internals}/mixins/combo-box.js +9 -4
- package/internals/mixins/combo-box.js.map +1 -0
- package/internals/mixins/constructor.js.map +1 -0
- package/internals/mixins/event-emitter.js.map +1 -0
- package/{components/common → internals}/mixins/forms/associated-required.js +10 -19
- package/internals/mixins/forms/associated-required.js.map +1 -0
- package/{components/common → internals}/mixins/forms/associated.d.ts +1 -1
- package/{components/common → internals}/mixins/forms/associated.js +66 -51
- package/internals/mixins/forms/associated.js.map +1 -0
- package/{components/common → internals}/mixins/forms/form-transformers.d.ts +1 -1
- package/{components/common → internals}/mixins/forms/form-transformers.js +2 -2
- package/internals/mixins/forms/form-transformers.js.map +1 -0
- package/internals/mixins/forms/form-value.js.map +1 -0
- package/{components/common → internals}/mixins/forms/types.d.ts +7 -7
- package/internals/mixins/forms/types.js.map +1 -0
- package/{components/common → internals}/mixins/mask-behavior.d.ts +11 -3
- package/{components/common → internals}/mixins/mask-behavior.js +117 -29
- package/internals/mixins/mask-behavior.js.map +1 -0
- package/{components/common → internals}/mixins/option.d.ts +0 -2
- package/{components/common → internals}/mixins/option.js +1 -4
- package/internals/mixins/option.js.map +1 -0
- package/internals/part-map.js.map +1 -0
- package/{components/common → internals}/templates/input-shell.d.ts +8 -1
- package/{components/common → internals}/templates/input-shell.js +14 -4
- package/internals/templates/input-shell.js.map +1 -0
- package/{components/common → internals}/templates/masked-input.d.ts +8 -2
- package/{components/common → internals}/templates/masked-input.js +5 -3
- package/internals/templates/masked-input.js.map +1 -0
- package/internals/utils/arrays.d.ts +53 -0
- package/internals/utils/arrays.js +31 -0
- package/internals/utils/arrays.js.map +1 -0
- package/internals/utils/dom.d.ts +92 -0
- package/internals/utils/dom.js +143 -0
- package/internals/utils/dom.js.map +1 -0
- package/internals/utils/events.d.ts +41 -0
- package/internals/utils/events.js +37 -0
- package/internals/utils/events.js.map +1 -0
- package/internals/utils/lit.d.ts +8 -0
- package/internals/utils/lit.js +15 -0
- package/internals/utils/lit.js.map +1 -0
- package/internals/utils/math.d.ts +50 -0
- package/internals/utils/math.js +38 -0
- package/internals/utils/math.js.map +1 -0
- package/internals/utils/objects.d.ts +25 -0
- package/internals/utils/objects.js +125 -0
- package/internals/utils/objects.js.map +1 -0
- package/internals/utils/strings.d.ts +44 -0
- package/internals/utils/strings.js +46 -0
- package/internals/utils/strings.js.map +1 -0
- package/internals/utils/types.d.ts +13 -0
- package/internals/utils/types.js +31 -0
- package/internals/utils/types.js.map +1 -0
- package/{components/common → internals}/validators.d.ts +1 -1
- package/{components/common → internals}/validators.js +4 -2
- package/internals/validators.js.map +1 -0
- package/package.json +15 -7
- package/skills/igniteui-wc-generate-from-image-design/references/gotchas.md +15 -1
- package/themes/dark/bootstrap.css +1 -1
- package/themes/dark/fluent.css +1 -1
- package/themes/dark/indigo.css +1 -1
- package/themes/dark/material.css +1 -1
- package/themes/light/bootstrap.css +1 -1
- package/themes/light/fluent.css +1 -1
- package/themes/light/indigo.css +1 -1
- package/themes/light/material.css +1 -1
- package/theming/theming-controller.d.ts +2 -2
- package/theming/theming-controller.js.map +1 -1
- package/web-types.json +3 -3
- package/components/calendar/model.js.map +0 -1
- package/components/combo/combo-list.d.ts +0 -11
- package/components/combo/combo-list.js +0 -13
- package/components/combo/combo-list.js.map +0 -1
- package/components/common/abort-handler.js.map +0 -1
- package/components/common/context.d.ts +0 -25
- package/components/common/context.js.map +0 -1
- package/components/common/controllers/adopt-styles.d.ts +0 -124
- package/components/common/controllers/adopt-styles.js +0 -75
- package/components/common/controllers/adopt-styles.js.map +0 -1
- package/components/common/controllers/async-consumer.js.map +0 -1
- package/components/common/controllers/command.js.map +0 -1
- package/components/common/controllers/drag.js.map +0 -1
- package/components/common/controllers/focus-ring.js.map +0 -1
- package/components/common/controllers/fullscreen.js.map +0 -1
- package/components/common/controllers/gestures.js.map +0 -1
- package/components/common/controllers/id-resolver.js.map +0 -1
- package/components/common/controllers/internals.js.map +0 -1
- package/components/common/controllers/key-bindings.js.map +0 -1
- package/components/common/controllers/mutation-observer.js +0 -69
- package/components/common/controllers/mutation-observer.js.map +0 -1
- package/components/common/controllers/resize-observer.js.map +0 -1
- package/components/common/controllers/root-click.js.map +0 -1
- package/components/common/controllers/root-scroll.js +0 -63
- package/components/common/controllers/root-scroll.js.map +0 -1
- package/components/common/controllers/slot.js.map +0 -1
- package/components/common/decorators/blazorAdditionalDependencies.js.map +0 -1
- package/components/common/decorators/blazorDeepImport.js.map +0 -1
- package/components/common/decorators/blazorInclude.js.map +0 -1
- package/components/common/decorators/blazorIndirectRender.js.map +0 -1
- package/components/common/decorators/blazorSuppressComponent.js.map +0 -1
- package/components/common/decorators/shadow-options.js.map +0 -1
- package/components/common/decorators/watch.js.map +0 -1
- package/components/common/definitions/defineAllComponents.js +0 -151
- package/components/common/definitions/defineAllComponents.js.map +0 -1
- package/components/common/definitions/defineComponents.js.map +0 -1
- package/components/common/definitions/register.js.map +0 -1
- package/components/common/i18n/EN/calendar.resources.js.map +0 -1
- package/components/common/i18n/EN/chat.resources.js.map +0 -1
- package/components/common/i18n/EN/date-picker.resources.js.map +0 -1
- package/components/common/i18n/EN/date-range-picker.resources.js.map +0 -1
- package/components/common/i18n/i18n-controller.js.map +0 -1
- package/components/common/i18n/utils.js.map +0 -1
- package/components/common/mixins/alert.js.map +0 -1
- package/components/common/mixins/combo-box.js.map +0 -1
- package/components/common/mixins/constructor.js.map +0 -1
- package/components/common/mixins/event-emitter.js.map +0 -1
- package/components/common/mixins/forms/associated-required.js.map +0 -1
- package/components/common/mixins/forms/associated.js.map +0 -1
- package/components/common/mixins/forms/form-transformers.js.map +0 -1
- package/components/common/mixins/forms/form-value.js.map +0 -1
- package/components/common/mixins/forms/types.js.map +0 -1
- package/components/common/mixins/mask-behavior.js.map +0 -1
- package/components/common/mixins/option.js.map +0 -1
- package/components/common/part-map.js.map +0 -1
- package/components/common/templates/input-shell.js.map +0 -1
- package/components/common/templates/masked-input.js.map +0 -1
- package/components/common/util.d.ts +0 -196
- package/components/common/util.js +0 -390
- package/components/common/util.js.map +0 -1
- package/components/common/validators.js.map +0 -1
- package/components/icon/registry/default-map.d.ts +0 -107
- package/components/icon/registry/default-map.js +0 -25
- package/components/icon/registry/default-map.js.map +0 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js +0 -3
- package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js.map +0 -1
- package/components/radio/utils.d.ts +0 -13
- package/components/radio/utils.js +0 -37
- package/components/radio/utils.js.map +0 -1
- /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
- /package/{components/common → internals}/abort-handler.d.ts +0 -0
- /package/{components/common → internals}/abort-handler.js +0 -0
- /package/{components/common → internals}/controllers/async-consumer.d.ts +0 -0
- /package/{components/common → internals}/controllers/command.d.ts +0 -0
- /package/{components/common → internals}/controllers/command.js +0 -0
- /package/{components/common → internals}/controllers/drag.d.ts +0 -0
- /package/{components/common → internals}/controllers/focus-ring.d.ts +0 -0
- /package/{components/common → internals}/controllers/fullscreen.d.ts +0 -0
- /package/{components/common → internals}/controllers/id-resolver.d.ts +0 -0
- /package/{components/common → internals}/controllers/root-click.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorAdditionalDependencies.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorAdditionalDependencies.js +0 -0
- /package/{components/common → internals}/decorators/blazorDeepImport.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorDeepImport.js +0 -0
- /package/{components/common → internals}/decorators/blazorInclude.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorInclude.js +0 -0
- /package/{components/common → internals}/decorators/blazorIndirectRender.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorIndirectRender.js +0 -0
- /package/{components/common → internals}/decorators/blazorSuppressComponent.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorSuppressComponent.js +0 -0
- /package/{components/common → internals}/decorators/shadow-options.d.ts +0 -0
- /package/{components/common → internals}/decorators/shadow-options.js +0 -0
- /package/{components/common → internals}/decorators/watch.d.ts +0 -0
- /package/{components/common → internals}/decorators/watch.js +0 -0
- /package/{components/common → internals}/definitions/defineAllComponents.d.ts +0 -0
- /package/{components/common → internals}/definitions/defineComponents.d.ts +0 -0
- /package/{components/common → internals}/definitions/defineComponents.js +0 -0
- /package/{components/common → internals}/definitions/register.d.ts +0 -0
- /package/{components/common → internals}/definitions/register.js +0 -0
- /package/{components/common → internals}/i18n/EN/calendar.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/chat.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/chat.resources.js +0 -0
- /package/{components/common → internals}/i18n/EN/date-picker.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/date-picker.resources.js +0 -0
- /package/{components/common → internals}/i18n/EN/date-range-picker.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/date-range-picker.resources.js +0 -0
- /package/{components/common → internals}/i18n/i18n-controller.d.ts +0 -0
- /package/{components/common → internals}/i18n/i18n-controller.js +0 -0
- /package/{components/common → internals}/i18n/utils.d.ts +0 -0
- /package/{components/common → internals}/mixins/constructor.d.ts +0 -0
- /package/{components/common → internals}/mixins/constructor.js +0 -0
- /package/{components/common → internals}/mixins/event-emitter.d.ts +0 -0
- /package/{components/common → internals}/mixins/event-emitter.js +0 -0
- /package/{components/common → internals}/mixins/forms/associated-required.d.ts +0 -0
- /package/{components/common → internals}/mixins/forms/form-value.d.ts +0 -0
- /package/{components/common → internals}/mixins/forms/form-value.js +0 -0
- /package/{components/common → internals}/mixins/forms/types.js +0 -0
- /package/{components/common → internals}/part-map.d.ts +0 -0
- /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
|