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,158 @@
|
|
|
1
|
+
function squarePath(x, y, s) {
|
|
2
|
+
return `M${x},${y}h${s}v${s}h${-s}Z`;
|
|
3
|
+
}
|
|
4
|
+
function roundedRect(x, y, width, height, radius) {
|
|
5
|
+
const cr = Math.min(radius, width / 2, height / 2);
|
|
6
|
+
return (`M${x + cr},${y}` +
|
|
7
|
+
`h${width - 2 * cr}` +
|
|
8
|
+
`q${cr},0 ${cr},${cr}` +
|
|
9
|
+
`v${height - 2 * cr}` +
|
|
10
|
+
`q0,${cr} ${-cr},${cr}` +
|
|
11
|
+
`h${-(width - 2 * cr)}` +
|
|
12
|
+
`q${-cr},0 ${-cr},${-cr}` +
|
|
13
|
+
`v${-(height - 2 * cr)}` +
|
|
14
|
+
`q0,${-cr} ${cr},${-cr}z`);
|
|
15
|
+
}
|
|
16
|
+
function roundedRectPerCorner(x, y, width, height, rTL, rTR, rBR, rBL) {
|
|
17
|
+
return (`M${x + rTL},${y}` +
|
|
18
|
+
`h${width - rTL - rTR}` +
|
|
19
|
+
`q${rTR},0 ${rTR},${rTR}` +
|
|
20
|
+
`v${height - rTR - rBR}` +
|
|
21
|
+
`q0,${rBR} ${-rBR},${rBR}` +
|
|
22
|
+
`h${-(width - rBR - rBL)}` +
|
|
23
|
+
`q${-rBL},0 ${-rBL},${-rBL}` +
|
|
24
|
+
`v${-(height - rBL - rTL)}` +
|
|
25
|
+
`q0,${-rTL} ${rTL},${-rTL}z`);
|
|
26
|
+
}
|
|
27
|
+
function dotPath(x, y, s, style, neighbors) {
|
|
28
|
+
switch (style) {
|
|
29
|
+
case 'square':
|
|
30
|
+
return squarePath(x, y, s);
|
|
31
|
+
case 'circle': {
|
|
32
|
+
const cx = x + s / 2;
|
|
33
|
+
const cy = y + s / 2;
|
|
34
|
+
const r = s / 2;
|
|
35
|
+
return (`M${cx - r},${cy}` +
|
|
36
|
+
`a${r},${r} 0 1,0 ${r * 2},0` +
|
|
37
|
+
`a${r},${r} 0 1,0 ${-r * 2},0z`);
|
|
38
|
+
}
|
|
39
|
+
case 'rounded': {
|
|
40
|
+
const R = s * 0.45;
|
|
41
|
+
const n = neighbors || {
|
|
42
|
+
top: false,
|
|
43
|
+
right: false,
|
|
44
|
+
bottom: false,
|
|
45
|
+
left: false,
|
|
46
|
+
};
|
|
47
|
+
const rTL = n.top || n.left ? 0 : R;
|
|
48
|
+
const rTR = n.top || n.right ? 0 : R;
|
|
49
|
+
const rBR = n.bottom || n.right ? 0 : R;
|
|
50
|
+
const rBL = n.bottom || n.left ? 0 : R;
|
|
51
|
+
return roundedRectPerCorner(x, y, s, s, rTL, rTR, rBR, rBL);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export function cornerDotPath(x, y, size, style) {
|
|
56
|
+
switch (style) {
|
|
57
|
+
case 'circle': {
|
|
58
|
+
const cx = x + size / 2;
|
|
59
|
+
const cy = y + size / 2;
|
|
60
|
+
const r = size / 2;
|
|
61
|
+
return (`M${cx - r},${cy}` +
|
|
62
|
+
`a${r},${r} 0 1,0 ${r * 2},0` +
|
|
63
|
+
`a${r},${r} 0 1,0 ${-r * 2},0z`);
|
|
64
|
+
}
|
|
65
|
+
case 'rounded': {
|
|
66
|
+
return roundedRect(x, y, size, size, size * 0.3);
|
|
67
|
+
}
|
|
68
|
+
default:
|
|
69
|
+
return squarePath(x, y, size);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export function cornerSquarePath(x, y, size, style) {
|
|
73
|
+
const moduleSize = size / 7;
|
|
74
|
+
const inner = size - 2 * moduleSize;
|
|
75
|
+
const innerOffset = moduleSize;
|
|
76
|
+
switch (style) {
|
|
77
|
+
case 'square': {
|
|
78
|
+
const outer = squarePath(x, y, size);
|
|
79
|
+
const cut = squarePath(x + innerOffset, y + innerOffset, inner);
|
|
80
|
+
return `${outer} ${cut}`;
|
|
81
|
+
}
|
|
82
|
+
case 'rounded': {
|
|
83
|
+
const outer = roundedRect(x, y, size, size, size * 0.15);
|
|
84
|
+
const cut = squarePath(x + innerOffset, y + innerOffset, inner);
|
|
85
|
+
return `${outer} ${cut}`;
|
|
86
|
+
}
|
|
87
|
+
default: {
|
|
88
|
+
const cx = x + size / 2;
|
|
89
|
+
const cy = y + size / 2;
|
|
90
|
+
const rOuter = size / 2;
|
|
91
|
+
const rInner = inner / 2;
|
|
92
|
+
return (`M${cx - rOuter},${cy}` +
|
|
93
|
+
`a${rOuter},${rOuter} 0 1,0 ${rOuter * 2},0` +
|
|
94
|
+
`a${rOuter},${rOuter} 0 1,0 ${-rOuter * 2},0z` +
|
|
95
|
+
`M${cx - rInner},${cy}` +
|
|
96
|
+
`a${rInner},${rInner} 0 1,1 ${rInner * 2},0` +
|
|
97
|
+
`a${rInner},${rInner} 0 1,1 ${-rInner * 2},0z`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function moduleToPx(moduleIndex, moduleSize, marginPx) {
|
|
102
|
+
return moduleIndex * moduleSize + marginPx;
|
|
103
|
+
}
|
|
104
|
+
function finderCorners(size) {
|
|
105
|
+
return [
|
|
106
|
+
[0, 0],
|
|
107
|
+
[0, size - 7],
|
|
108
|
+
[size - 7, 0],
|
|
109
|
+
];
|
|
110
|
+
}
|
|
111
|
+
function getFinderPatternModules(size) {
|
|
112
|
+
const modules = new Set();
|
|
113
|
+
for (const [startRow, startCol] of finderCorners(size)) {
|
|
114
|
+
for (let r = -1; r <= 7; r++) {
|
|
115
|
+
for (let c = -1; c <= 7; c++) {
|
|
116
|
+
const row = startRow + r;
|
|
117
|
+
const col = startCol + c;
|
|
118
|
+
if (row >= 0 && col >= 0 && row < size && col < size) {
|
|
119
|
+
modules.add(row * size + col);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return modules;
|
|
125
|
+
}
|
|
126
|
+
export function renderDataModules(data, moduleSize, marginPx, dotStyle) {
|
|
127
|
+
const size = data.length;
|
|
128
|
+
const finderModules = getFinderPatternModules(size);
|
|
129
|
+
const paths = [];
|
|
130
|
+
for (let r = 0; r < size; r++) {
|
|
131
|
+
for (let c = 0; c < size; c++) {
|
|
132
|
+
if (finderModules.has(r * size + c))
|
|
133
|
+
continue;
|
|
134
|
+
if (!data[r][c])
|
|
135
|
+
continue;
|
|
136
|
+
const x = moduleToPx(c, moduleSize, marginPx);
|
|
137
|
+
const y = moduleToPx(r, moduleSize, marginPx);
|
|
138
|
+
let neighbors;
|
|
139
|
+
if (dotStyle === 'rounded') {
|
|
140
|
+
neighbors = {
|
|
141
|
+
top: r > 0 && data[r - 1][c],
|
|
142
|
+
right: c < size - 1 && data[r][c + 1],
|
|
143
|
+
bottom: r < size - 1 && data[r + 1][c],
|
|
144
|
+
left: c > 0 && data[r][c - 1],
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
paths.push(dotPath(x, y, moduleSize, dotStyle, neighbors));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return paths;
|
|
151
|
+
}
|
|
152
|
+
export function getFinderPatterns(size, moduleSize, marginPx) {
|
|
153
|
+
return finderCorners(size).map(([r, c]) => ({
|
|
154
|
+
x: moduleToPx(c, moduleSize, marginPx),
|
|
155
|
+
y: moduleToPx(r, moduleSize, marginPx),
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/components/qr-code/renderer/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n QrCornerDotStyle,\n QrCornerSquareStyle,\n QrDotStyle,\n} from '../types.js';\n\ntype DotNeighbor = {\n top: boolean;\n right: boolean;\n bottom: boolean;\n left: boolean;\n};\n\nfunction squarePath(x: number, y: number, s: number): string {\n return `M${x},${y}h${s}v${s}h${-s}Z`;\n}\n\nfunction roundedRect(\n x: number,\n y: number,\n width: number,\n height: number,\n radius: number\n): string {\n const cr = Math.min(radius, width / 2, height / 2);\n return (\n `M${x + cr},${y}` +\n `h${width - 2 * cr}` +\n `q${cr},0 ${cr},${cr}` +\n `v${height - 2 * cr}` +\n `q0,${cr} ${-cr},${cr}` +\n `h${-(width - 2 * cr)}` +\n `q${-cr},0 ${-cr},${-cr}` +\n `v${-(height - 2 * cr)}` +\n `q0,${-cr} ${cr},${-cr}z`\n );\n}\n\nfunction roundedRectPerCorner(\n x: number,\n y: number,\n width: number,\n height: number,\n rTL: number,\n rTR: number,\n rBR: number,\n rBL: number\n): string {\n return (\n `M${x + rTL},${y}` +\n `h${width - rTL - rTR}` +\n `q${rTR},0 ${rTR},${rTR}` +\n `v${height - rTR - rBR}` +\n `q0,${rBR} ${-rBR},${rBR}` +\n `h${-(width - rBR - rBL)}` +\n `q${-rBL},0 ${-rBL},${-rBL}` +\n `v${-(height - rBL - rTL)}` +\n `q0,${-rTL} ${rTL},${-rTL}z`\n );\n}\n\n/** Returns an SVG path string for a single data module at `(x, y)` with side `s`, in the given style.\n * For `'rounded'`, adjacent module flags control which corners are rounded. */\nfunction dotPath(\n x: number,\n y: number,\n s: number,\n style: QrDotStyle,\n neighbors?: DotNeighbor\n): string {\n switch (style) {\n case 'square':\n return squarePath(x, y, s);\n case 'circle': {\n const cx = x + s / 2;\n const cy = y + s / 2;\n const r = s / 2;\n return (\n `M${cx - r},${cy}` +\n `a${r},${r} 0 1,0 ${r * 2},0` +\n `a${r},${r} 0 1,0 ${-r * 2},0z`\n );\n }\n case 'rounded': {\n const R = s * 0.45;\n const n = neighbors || {\n top: false,\n right: false,\n bottom: false,\n left: false,\n };\n const rTL = n.top || n.left ? 0 : R;\n const rTR = n.top || n.right ? 0 : R;\n const rBR = n.bottom || n.right ? 0 : R;\n const rBL = n.bottom || n.left ? 0 : R;\n return roundedRectPerCorner(x, y, s, s, rTL, rTR, rBR, rBL);\n }\n }\n}\n\n/** Returns an SVG path string for the inner dot of a finder-pattern corner. */\nexport function cornerDotPath(\n x: number,\n y: number,\n size: number,\n style: QrCornerDotStyle\n): string {\n switch (style) {\n case 'circle': {\n const cx = x + size / 2;\n const cy = y + size / 2;\n const r = size / 2;\n return (\n `M${cx - r},${cy}` +\n `a${r},${r} 0 1,0 ${r * 2},0` +\n `a${r},${r} 0 1,0 ${-r * 2},0z`\n );\n }\n case 'rounded': {\n return roundedRect(x, y, size, size, size * 0.3);\n }\n default:\n return squarePath(x, y, size);\n }\n}\n\n/** Returns an SVG path string (outer ring with inner cutout) for the outer square of a finder-pattern corner. */\nexport function cornerSquarePath(\n x: number,\n y: number,\n size: number,\n style: QrCornerSquareStyle\n): string {\n const moduleSize = size / 7;\n const inner = size - 2 * moduleSize;\n const innerOffset = moduleSize;\n\n switch (style) {\n case 'square': {\n const outer = squarePath(x, y, size);\n const cut = squarePath(x + innerOffset, y + innerOffset, inner);\n return `${outer} ${cut}`;\n }\n case 'rounded': {\n const outer = roundedRect(x, y, size, size, size * 0.15);\n const cut = squarePath(x + innerOffset, y + innerOffset, inner);\n return `${outer} ${cut}`;\n }\n default: {\n const cx = x + size / 2;\n const cy = y + size / 2;\n const rOuter = size / 2;\n const rInner = inner / 2;\n return (\n `M${cx - rOuter},${cy}` +\n `a${rOuter},${rOuter} 0 1,0 ${rOuter * 2},0` +\n `a${rOuter},${rOuter} 0 1,0 ${-rOuter * 2},0z` +\n `M${cx - rInner},${cy}` +\n `a${rInner},${rInner} 0 1,1 ${rInner * 2},0` +\n `a${rInner},${rInner} 0 1,1 ${-rInner * 2},0z`\n );\n }\n }\n}\n\n/** Converts a module grid index to a pixel coordinate, accounting for margin. */\nfunction moduleToPx(\n moduleIndex: number,\n moduleSize: number,\n marginPx: number\n): number {\n return moduleIndex * moduleSize + marginPx;\n}\n\nfunction finderCorners(size: number): [number, number][] {\n return [\n [0, 0], // Top-left\n [0, size - 7], // Top-right\n [size - 7, 0], // Bottom-left\n ];\n}\n\n/**\n * Returns the set of flat module indices `(row * size + col)` occupied by the\n * three finder patterns (including their separators), used to skip those modules\n * during data rendering.\n */\nfunction getFinderPatternModules(size: number): Set<number> {\n const modules = new Set<number>();\n\n for (const [startRow, startCol] of finderCorners(size)) {\n for (let r = -1; r <= 7; r++) {\n for (let c = -1; c <= 7; c++) {\n const row = startRow + r;\n const col = startCol + c;\n if (row >= 0 && col >= 0 && row < size && col < size) {\n modules.add(row * size + col);\n }\n }\n }\n }\n\n return modules;\n}\n\n/**\n * Generates SVG path strings for all dark data modules in the matrix,\n * skipping finder-pattern areas. Returns one path string per visible module.\n */\nexport function renderDataModules(\n data: boolean[][],\n moduleSize: number,\n marginPx: number,\n dotStyle: QrDotStyle\n): string[] {\n const size = data.length;\n const finderModules = getFinderPatternModules(size);\n const paths: string[] = [];\n\n for (let r = 0; r < size; r++) {\n for (let c = 0; c < size; c++) {\n if (finderModules.has(r * size + c)) continue;\n if (!data[r][c]) continue;\n\n const x = moduleToPx(c, moduleSize, marginPx);\n const y = moduleToPx(r, moduleSize, marginPx);\n\n let neighbors: DotNeighbor | undefined;\n if (dotStyle === 'rounded') {\n neighbors = {\n top: r > 0 && data[r - 1][c],\n right: c < size - 1 && data[r][c + 1],\n bottom: r < size - 1 && data[r + 1][c],\n left: c > 0 && data[r][c - 1],\n };\n }\n\n paths.push(dotPath(x, y, moduleSize, dotStyle, neighbors));\n }\n }\n\n return paths;\n}\n\n/**\n * Returns the pixel top-left coordinates `{ x, y }` for each of the three\n * finder-pattern corners, ready to pass to `renderQrCorner`.\n */\nexport function getFinderPatterns(\n size: number,\n moduleSize: number,\n marginPx: number\n) {\n return finderCorners(size).map(([r, c]) => ({\n x: moduleToPx(c, moduleSize, marginPx),\n y: moduleToPx(r, moduleSize, marginPx),\n }));\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type RenderQrMaskAndImageProperties = {
|
|
2
|
+
hasLogo: boolean;
|
|
3
|
+
src: string;
|
|
4
|
+
aspectRatio: number;
|
|
5
|
+
area: number;
|
|
6
|
+
size: number;
|
|
7
|
+
margin?: number;
|
|
8
|
+
svgSize: number;
|
|
9
|
+
maskId: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Renders an SVG mask and image element for the QR code's logo, based on the presence of a logo,
|
|
13
|
+
* its source, aspect ratio, desired area, QR code size, margin, overall SVG size, and a unique mask ID.
|
|
14
|
+
*
|
|
15
|
+
* The mask is a white rectangle with a black cutout where the logo will be placed, ensuring the QR code
|
|
16
|
+
* remains scannable while accommodating the logo.
|
|
17
|
+
*/
|
|
18
|
+
export declare function renderQrMaskAndImage({ hasLogo, src, aspectRatio, area, size, margin, svgSize, maskId, }: RenderQrMaskAndImageProperties): {
|
|
19
|
+
mask: symbol | import("lit-html").TemplateResult<2>;
|
|
20
|
+
image: symbol | import("lit-html").TemplateResult<2>;
|
|
21
|
+
shouldApplyMask: boolean;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { nothing, svg } from 'lit';
|
|
2
|
+
export function renderQrMaskAndImage({ hasLogo, src, aspectRatio, area, size, margin, svgSize, maskId, }) {
|
|
3
|
+
const clamped = area * svgSize * svgSize;
|
|
4
|
+
const boxWidth = Math.sqrt(clamped * aspectRatio);
|
|
5
|
+
const boxHeight = Math.sqrt(clamped / aspectRatio);
|
|
6
|
+
const boxMargin = (margin ?? 0) * (svgSize / size);
|
|
7
|
+
const boxX = (svgSize - boxWidth) / 2;
|
|
8
|
+
const boxY = (svgSize - boxHeight) / 2;
|
|
9
|
+
const x = boxX + boxMargin;
|
|
10
|
+
const y = boxY + boxMargin;
|
|
11
|
+
const width = Math.max(0, boxWidth - boxMargin * 2);
|
|
12
|
+
const height = Math.max(0, boxHeight - boxMargin * 2);
|
|
13
|
+
const shouldApplyMask = hasLogo && width > 0 && height > 0;
|
|
14
|
+
const mask = shouldApplyMask
|
|
15
|
+
? svg `
|
|
16
|
+
<defs>
|
|
17
|
+
<mask id=${maskId}>
|
|
18
|
+
<rect width=${svgSize} height=${svgSize} fill="white" />
|
|
19
|
+
<rect x=${boxX} y=${boxY} width=${boxWidth} height=${boxHeight} fill="black" />
|
|
20
|
+
</mask>
|
|
21
|
+
</defs>
|
|
22
|
+
`
|
|
23
|
+
: nothing;
|
|
24
|
+
const image = hasLogo && width > 0 && height > 0
|
|
25
|
+
? svg `<image href=${src} x=${x} y=${y} width=${width} height=${height} />`
|
|
26
|
+
: nothing;
|
|
27
|
+
return { mask, image, shouldApplyMask };
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/components/qr-code/renderer/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAoBnC,MAAM,UAAU,oBAAoB,CAAC,EACnC,OAAO,EACP,GAAG,EACH,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,GACyB;IAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,OAAO,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG,eAAe;QAC1B,CAAC,CAAC,GAAG,CAAA;;mBAEU,MAAM;wBACD,OAAO,WAAW,OAAO;oBAC7B,IAAI,MAAM,IAAI,UAAU,QAAQ,WAAW,SAAS;;;GAGrE;QACC,CAAC,CAAC,OAAO,CAAC;IAEZ,MAAM,KAAK,GACT,OAAO,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC;QAChC,CAAC,CAAC,GAAG,CAAA,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,WAAW,MAAM,KAAK;QAC1E,CAAC,CAAC,OAAO,CAAC;IAEd,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;AAC1C,CAAC","sourcesContent":["import { nothing, svg } from 'lit';\n\ntype RenderQrMaskAndImageProperties = {\n hasLogo: boolean;\n src: string;\n aspectRatio: number;\n area: number;\n size: number;\n margin?: number;\n svgSize: number;\n maskId: string;\n};\n\n/**\n * Renders an SVG mask and image element for the QR code's logo, based on the presence of a logo,\n * its source, aspect ratio, desired area, QR code size, margin, overall SVG size, and a unique mask ID.\n *\n * The mask is a white rectangle with a black cutout where the logo will be placed, ensuring the QR code\n * remains scannable while accommodating the logo.\n */\nexport function renderQrMaskAndImage({\n hasLogo,\n src,\n aspectRatio,\n area,\n size,\n margin,\n svgSize,\n maskId,\n}: RenderQrMaskAndImageProperties) {\n const clamped = area * svgSize * svgSize;\n const boxWidth = Math.sqrt(clamped * aspectRatio);\n const boxHeight = Math.sqrt(clamped / aspectRatio);\n const boxMargin = (margin ?? 0) * (svgSize / size);\n const boxX = (svgSize - boxWidth) / 2;\n const boxY = (svgSize - boxHeight) / 2;\n const x = boxX + boxMargin;\n const y = boxY + boxMargin;\n const width = Math.max(0, boxWidth - boxMargin * 2);\n const height = Math.max(0, boxHeight - boxMargin * 2);\n\n const shouldApplyMask = hasLogo && width > 0 && height > 0;\n\n const mask = shouldApplyMask\n ? svg`\n <defs>\n <mask id=${maskId}>\n <rect width=${svgSize} height=${svgSize} fill=\"white\" />\n <rect x=${boxX} y=${boxY} width=${boxWidth} height=${boxHeight} fill=\"black\" />\n </mask>\n </defs>\n `\n : nothing;\n\n const image =\n hasLogo && width > 0 && height > 0\n ? svg`<image href=${src} x=${x} y=${y} width=${width} height=${height} />`\n : nothing;\n\n return { mask, image, shouldApplyMask };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/dark/qr-code.bootstrap.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,uDAAuD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--ig-theme: bootstrap;--ig-theme-variant: dark}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/dark/qr-code.fluent.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,oDAAoD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--ig-theme: fluent;--ig-theme-variant: dark}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/dark/qr-code.indigo.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,oDAAoD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--ig-theme: indigo;--ig-theme-variant: dark}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.material.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/dark/qr-code.material.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,sDAAsD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--ig-theme: material;--ig-theme-variant: dark}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/light/qr-code.bootstrap.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,wDAAwD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--ig-theme: bootstrap;--ig-theme-variant: light}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/light/qr-code.fluent.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,qDAAqD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--ig-theme: fluent;--ig-theme-variant: light}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/light/qr-code.indigo.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,qDAAqD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--ig-theme: indigo;--ig-theme-variant: light}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.material.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/light/qr-code.material.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,uDAAuD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--ig-theme: material;--ig-theme-variant: light}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `:host{--background: var(--ig-qr-code-background, white);--dark-color: var(--ig-qr-code-dark-color, black);--corner-square-color: var(--ig-qr-code-corner-square-color, var(--dark-color));--corner-dot-color: var(--ig-qr-code-corner-dot-color, var(--dark-color));--ig-theme-variant: light}`;
|
|
3
|
+
//# sourceMappingURL=qr-code.shared.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.shared.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/light/qr-code.shared.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,gSAAgS,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--background: var(--ig-qr-code-background, white);--dark-color: var(--ig-qr-code-dark-color, black);--corner-square-color: var(--ig-qr-code-corner-square-color, var(--dark-color));--corner-dot-color: var(--ig-qr-code-corner-dot-color, var(--dark-color));--ig-theme-variant: light}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:inline-block;contain:content}`;
|
|
3
|
+
//# sourceMappingURL=qr-code.base.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.base.css.js","sourceRoot":"","sources":["../../../../src/components/qr-code/themes/qr-code.base.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,q/BAAq/B,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:inline-block;contain:content}`;\n "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `[part=background]{fill:var(--background)}[part=dots]{fill:var(--dark-color)}[part=corner-square]{fill:var(--corner-square-color)}[part=corner-dot]{fill:var(--corner-dot-color)}`;
|
|
3
|
+
//# sourceMappingURL=qr-code.common.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.common.css.js","sourceRoot":"","sources":["../../../../../src/components/qr-code/themes/shared/qr-code.common.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,kLAAkL,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`[part=background]{fill:var(--background)}[part=dots]{fill:var(--dark-color)}[part=corner-square]{fill:var(--corner-square-color)}[part=corner-dot]{fill:var(--corner-dot-color)}`;\n "]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
import { styles as bootstrapDark } from './dark/qr-code.bootstrap.css.js';
|
|
3
|
+
import { styles as fluentDark } from './dark/qr-code.fluent.css.js';
|
|
4
|
+
import { styles as indigoDark } from './dark/qr-code.indigo.css.js';
|
|
5
|
+
import { styles as materialDark } from './dark/qr-code.material.css.js';
|
|
6
|
+
import { styles as bootstrapLight } from './light/qr-code.bootstrap.css.js';
|
|
7
|
+
import { styles as fluentLight } from './light/qr-code.fluent.css.js';
|
|
8
|
+
import { styles as indigoLight } from './light/qr-code.indigo.css.js';
|
|
9
|
+
import { styles as materialLight } from './light/qr-code.material.css.js';
|
|
10
|
+
import { styles as shared } from './light/qr-code.shared.css.js';
|
|
11
|
+
const light = {
|
|
12
|
+
shared: css `
|
|
13
|
+
${shared}
|
|
14
|
+
`,
|
|
15
|
+
material: css `
|
|
16
|
+
${materialLight}
|
|
17
|
+
`,
|
|
18
|
+
bootstrap: css `
|
|
19
|
+
${bootstrapLight}
|
|
20
|
+
`,
|
|
21
|
+
fluent: css `
|
|
22
|
+
${fluentLight}
|
|
23
|
+
`,
|
|
24
|
+
indigo: css `
|
|
25
|
+
${indigoLight}
|
|
26
|
+
`,
|
|
27
|
+
};
|
|
28
|
+
const dark = {
|
|
29
|
+
shared: css `
|
|
30
|
+
${shared}
|
|
31
|
+
`,
|
|
32
|
+
material: css `
|
|
33
|
+
${materialDark}
|
|
34
|
+
`,
|
|
35
|
+
bootstrap: css `
|
|
36
|
+
${bootstrapDark}
|
|
37
|
+
`,
|
|
38
|
+
fluent: css `
|
|
39
|
+
${fluentDark}
|
|
40
|
+
`,
|
|
41
|
+
indigo: css `
|
|
42
|
+
${indigoDark}
|
|
43
|
+
`,
|
|
44
|
+
};
|
|
45
|
+
export const all = { light, dark };
|
|
46
|
+
//# sourceMappingURL=themes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../../src/components/qr-code/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,aAAa;GAChB;IACD,SAAS,EAAE,GAAG,CAAA;MACV,cAAc;GACjB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,YAAY;GACf;IACD,SAAS,EAAE,GAAG,CAAA;MACV,aAAa;GAChB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\nimport type { Themes } from '#theming/types.js';\n// Dark Overrides\nimport { styles as bootstrapDark } from './dark/qr-code.bootstrap.css.js';\nimport { styles as fluentDark } from './dark/qr-code.fluent.css.js';\nimport { styles as indigoDark } from './dark/qr-code.indigo.css.js';\nimport { styles as materialDark } from './dark/qr-code.material.css.js';\n// Light Overrides\nimport { styles as bootstrapLight } from './light/qr-code.bootstrap.css.js';\nimport { styles as fluentLight } from './light/qr-code.fluent.css.js';\nimport { styles as indigoLight } from './light/qr-code.indigo.css.js';\nimport { styles as materialLight } from './light/qr-code.material.css.js';\nimport { styles as shared } from './light/qr-code.shared.css.js';\n\nconst light = {\n shared: css`\n ${shared}\n `,\n material: css`\n ${materialLight}\n `,\n bootstrap: css`\n ${bootstrapLight}\n `,\n fluent: css`\n ${fluentLight}\n `,\n indigo: css`\n ${indigoLight}\n `,\n};\n\nconst dark = {\n shared: css`\n ${shared}\n `,\n material: css`\n ${materialDark}\n `,\n bootstrap: css`\n ${bootstrapDark}\n `,\n fluent: css`\n ${fluentDark}\n `,\n indigo: css`\n ${indigoDark}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Shape of individual data modules in the QR code body. */
|
|
2
|
+
export type QrDotStyle = 'square' | 'circle' | 'rounded';
|
|
3
|
+
/** Shape of the inner dot inside each finder-pattern corner. */
|
|
4
|
+
export type QrCornerDotStyle = 'square' | 'circle' | 'rounded';
|
|
5
|
+
/** Shape of the outer square of each finder-pattern corner. */
|
|
6
|
+
export type QrCornerSquareStyle = 'square' | 'circle' | 'rounded';
|
|
7
|
+
/**
|
|
8
|
+
* QR error correction level. Higher levels recover more data but reduce capacity.
|
|
9
|
+
* - `L` ~7%, `M` ~15%, `Q` ~25%, `H` ~30%.
|
|
10
|
+
*/
|
|
11
|
+
export type QrErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H';
|
|
12
|
+
/**
|
|
13
|
+
* QR data encoding mode, selected automatically based on the input string.
|
|
14
|
+
* - `numeric` — digits only; `alphanumeric` — digits + uppercase letters + a few symbols; `byte` — arbitrary UTF-8.
|
|
15
|
+
*/
|
|
16
|
+
export type QrEncodingMode = 'numeric' | 'alphanumeric' | 'byte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/qr-code/types.ts"],"names":[],"mappings":"","sourcesContent":["/** Shape of individual data modules in the QR code body. */\nexport type QrDotStyle = 'square' | 'circle' | 'rounded';\n\n/** Shape of the inner dot inside each finder-pattern corner. */\nexport type QrCornerDotStyle = 'square' | 'circle' | 'rounded';\n\n/** Shape of the outer square of each finder-pattern corner. */\nexport type QrCornerSquareStyle = 'square' | 'circle' | 'rounded';\n\n/**\n * QR error correction level. Higher levels recover more data but reduce capacity.\n * - `L` ~7%, `M` ~15%, `Q` ~25%, `H` ~30%.\n */\nexport type QrErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H';\n\n/**\n * QR data encoding mode, selected automatically based on the input string.\n * - `numeric` — digits only; `alphanumeric` — digits + uppercase letters + a few symbols; `byte` — arbitrary UTF-8.\n */\nexport type QrEncodingMode = 'numeric' | 'alphanumeric' | 'byte';\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ReactiveController } from 'lit';
|
|
2
|
+
import type IgcRadioComponent from './radio.js';
|
|
3
|
+
/** Keeps a radio in the group of its current root node and name. */
|
|
4
|
+
declare class RadioGroupController implements ReactiveController {
|
|
5
|
+
/** Gives each radio of the group the state that the group derives. */
|
|
6
|
+
private static _sync;
|
|
7
|
+
private readonly _host;
|
|
8
|
+
private readonly _onSync;
|
|
9
|
+
/** The root node the host is registered under, or null while it is not registered. */
|
|
10
|
+
private _root;
|
|
11
|
+
private _name;
|
|
12
|
+
/** Whether the host still belongs to the group that holds its entry. */
|
|
13
|
+
private get _isCurrent();
|
|
14
|
+
private get _group();
|
|
15
|
+
/** The radios of the host group, in DOM order. A radio with no group is on its own. */
|
|
16
|
+
get members(): IgcRadioComponent[];
|
|
17
|
+
constructor(host: IgcRadioComponent, onSync: (hasCheckedRadio: boolean) => void);
|
|
18
|
+
/** @internal */
|
|
19
|
+
hostConnected(): void;
|
|
20
|
+
/** @internal */
|
|
21
|
+
hostDisconnected(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Moves the host to the group of its current root node and name. Does nothing while
|
|
24
|
+
* both stay the same. If not, the group that the host joins and the group that it
|
|
25
|
+
* leaves both update their state.
|
|
26
|
+
*/
|
|
27
|
+
updateMembership(): void;
|
|
28
|
+
/** Updates the state of the host group. */
|
|
29
|
+
sync(): void;
|
|
30
|
+
private _unregister;
|
|
31
|
+
}
|
|
32
|
+
export type { RadioGroupController };
|
|
33
|
+
export declare function addRadioGroupController(host: IgcRadioComponent, onSync: (hasCheckedRadio: boolean) => void): RadioGroupController;
|
|
34
|
+
/** Returns the radios of the group of `member`, in DOM order. */
|
|
35
|
+
export declare function getGroupMembers(member: IgcRadioComponent): IgcRadioComponent[];
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { isEmpty } from '#internals/utils/arrays.js';
|
|
2
|
+
import { getRoot } from '#internals/utils/dom.js';
|
|
3
|
+
const registry = new WeakMap();
|
|
4
|
+
const controllers = new WeakMap();
|
|
5
|
+
function byDocumentOrder(a, b) {
|
|
6
|
+
if (a === b) {
|
|
7
|
+
return 0;
|
|
8
|
+
}
|
|
9
|
+
return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING
|
|
10
|
+
? -1
|
|
11
|
+
: 1;
|
|
12
|
+
}
|
|
13
|
+
function groupOf(root, name) {
|
|
14
|
+
const names = registry.get(root) ?? new Map();
|
|
15
|
+
const group = names.get(name) ?? new Set();
|
|
16
|
+
names.set(name, group);
|
|
17
|
+
registry.set(root, names);
|
|
18
|
+
return group;
|
|
19
|
+
}
|
|
20
|
+
class RadioGroupController {
|
|
21
|
+
static _sync(group) {
|
|
22
|
+
const members = Array.from(group);
|
|
23
|
+
const hasCheckedRadio = members.some((member) => member._host.checked && !member._host.disabled);
|
|
24
|
+
for (const member of members) {
|
|
25
|
+
member._onSync(hasCheckedRadio);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
get _isCurrent() {
|
|
29
|
+
return this._host.name === this._name && getRoot(this._host) === this._root;
|
|
30
|
+
}
|
|
31
|
+
get _group() {
|
|
32
|
+
const entries = this._root
|
|
33
|
+
? Array.from(registry.get(this._root)?.get(this._name) ?? [])
|
|
34
|
+
: [];
|
|
35
|
+
const members = entries.filter((member) => member._isCurrent);
|
|
36
|
+
return isEmpty(members)
|
|
37
|
+
? [this]
|
|
38
|
+
: members.sort((a, b) => byDocumentOrder(a._host, b._host));
|
|
39
|
+
}
|
|
40
|
+
get members() {
|
|
41
|
+
return this._group.map((member) => member._host);
|
|
42
|
+
}
|
|
43
|
+
constructor(host, onSync) {
|
|
44
|
+
this._root = null;
|
|
45
|
+
this._name = '';
|
|
46
|
+
this._host = host;
|
|
47
|
+
this._onSync = onSync;
|
|
48
|
+
controllers.set(host, this);
|
|
49
|
+
host.addController(this);
|
|
50
|
+
}
|
|
51
|
+
hostConnected() {
|
|
52
|
+
this.updateMembership();
|
|
53
|
+
}
|
|
54
|
+
hostDisconnected() {
|
|
55
|
+
this._unregister();
|
|
56
|
+
}
|
|
57
|
+
updateMembership() {
|
|
58
|
+
const host = this._host;
|
|
59
|
+
const root = host.isConnected ? getRoot(host) : null;
|
|
60
|
+
const name = host.name || '';
|
|
61
|
+
if (root === this._root && name === this._name) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this._unregister();
|
|
65
|
+
if (root && name) {
|
|
66
|
+
this._root = root;
|
|
67
|
+
this._name = name;
|
|
68
|
+
groupOf(root, name).add(this);
|
|
69
|
+
}
|
|
70
|
+
this.sync();
|
|
71
|
+
}
|
|
72
|
+
sync() {
|
|
73
|
+
RadioGroupController._sync(this._group);
|
|
74
|
+
}
|
|
75
|
+
_unregister() {
|
|
76
|
+
const { _root: root, _name: name } = this;
|
|
77
|
+
const names = root ? registry.get(root) : undefined;
|
|
78
|
+
const group = names?.get(name);
|
|
79
|
+
this._root = null;
|
|
80
|
+
this._name = '';
|
|
81
|
+
if (!group?.delete(this)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (isEmpty(group)) {
|
|
85
|
+
names?.delete(name);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
RadioGroupController._sync(group);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
export function addRadioGroupController(host, onSync) {
|
|
93
|
+
return new RadioGroupController(host, onSync);
|
|
94
|
+
}
|
|
95
|
+
export function getGroupMembers(member) {
|
|
96
|
+
const controller = controllers.get(member);
|
|
97
|
+
controller?.updateMembership();
|
|
98
|
+
return controller?.members ?? [member];
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=controller.js.map
|