godown 3.0.0-canary.9 → 3.0.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/README.md +38 -9
- package/alert.d.ts +1 -0
- package/alert.d.ts.map +1 -1
- package/alert.js +1 -5
- package/alert.js.map +1 -1
- package/avatar.d.ts +1 -0
- package/avatar.d.ts.map +1 -1
- package/avatar.js +1 -5
- package/avatar.js.map +1 -1
- package/badge.d.ts +9 -0
- package/badge.d.ts.map +1 -0
- package/badge.js +2 -0
- package/badge.js.map +1 -0
- package/breath.js +1 -5
- package/breath.js.map +1 -1
- package/build/godown+lit.iife.js +59 -0
- package/build/godown+lit.iife.js.map +1 -0
- package/build/godown+lit.js +59 -0
- package/build/godown+lit.js.map +1 -0
- package/build/godown+lit.umd.js +59 -0
- package/build/godown+lit.umd.js.map +1 -0
- package/build/godown.iife.js +47 -0
- package/build/godown.js +48 -0
- package/build/godown.js.map +1 -0
- package/build/godown.umd.js +48 -0
- package/build/godown.umd.js.map +1 -0
- package/button.d.ts +1 -0
- package/button.d.ts.map +1 -1
- package/button.js +1 -5
- package/button.js.map +1 -1
- package/card.d.ts +1 -0
- package/card.d.ts.map +1 -1
- package/card.js +1 -5
- package/card.js.map +1 -1
- package/carousel.d.ts +1 -0
- package/carousel.d.ts.map +1 -1
- package/carousel.js +1 -5
- package/carousel.js.map +1 -1
- package/components/alert.d.ts +4 -1
- package/components/alert.d.ts.map +1 -1
- package/components/alert.js +1 -176
- package/components/alert.js.map +1 -1
- package/components/avatar.d.ts +7 -2
- package/components/avatar.d.ts.map +1 -1
- package/components/avatar.js +1 -62
- package/components/avatar.js.map +1 -1
- package/components/badge.d.ts +23 -0
- package/components/badge.d.ts.map +1 -0
- package/components/badge.js +2 -0
- package/components/badge.js.map +1 -0
- package/components/breath.d.ts +6 -4
- package/components/breath.d.ts.map +1 -1
- package/components/breath.js +1 -80
- package/components/breath.js.map +1 -1
- package/components/button.d.ts +8 -5
- package/components/button.d.ts.map +1 -1
- package/components/button.js +1 -168
- package/components/button.js.map +1 -1
- package/components/card.d.ts +3 -1
- package/components/card.d.ts.map +1 -1
- package/components/card.js +1 -48
- package/components/card.js.map +1 -1
- package/components/carousel.d.ts +5 -1
- package/components/carousel.d.ts.map +1 -1
- package/components/carousel.js +1 -113
- package/components/carousel.js.map +1 -1
- package/components/details.d.ts +4 -3
- package/components/details.d.ts.map +1 -1
- package/components/details.js +1 -52
- package/components/details.js.map +1 -1
- package/components/dialog.d.ts +4 -2
- package/components/dialog.d.ts.map +1 -1
- package/components/dialog.js +1 -96
- package/components/dialog.js.map +1 -1
- package/components/divider.d.ts +3 -3
- package/components/divider.d.ts.map +1 -1
- package/components/divider.js +1 -36
- package/components/divider.js.map +1 -1
- package/components/dragbox.d.ts +4 -2
- package/components/dragbox.d.ts.map +1 -1
- package/components/dragbox.js +1 -109
- package/components/dragbox.js.map +1 -1
- package/components/flex.d.ts +3 -1
- package/components/flex.d.ts.map +1 -1
- package/components/flex.js +1 -62
- package/components/flex.js.map +1 -1
- package/components/form.d.ts +3 -1
- package/components/form.d.ts.map +1 -1
- package/components/form.js +1 -75
- package/components/form.js.map +1 -1
- package/components/grid.d.ts +3 -1
- package/components/grid.d.ts.map +1 -1
- package/components/grid.js +1 -56
- package/components/grid.js.map +1 -1
- package/components/heading.d.ts +29 -0
- package/components/heading.d.ts.map +1 -0
- package/components/heading.js +2 -0
- package/components/heading.js.map +1 -0
- package/components/input.d.ts +5 -1
- package/components/input.d.ts.map +1 -1
- package/components/input.js +1 -50
- package/components/input.js.map +1 -1
- package/components/layout.d.ts +6 -4
- package/components/layout.d.ts.map +1 -1
- package/components/layout.js +1 -58
- package/components/layout.js.map +1 -1
- package/components/link.d.ts +5 -0
- package/components/link.d.ts.map +1 -1
- package/components/link.js +1 -44
- package/components/link.js.map +1 -1
- package/components/progress.d.ts +3 -1
- package/components/progress.d.ts.map +1 -1
- package/components/progress.js +1 -58
- package/components/progress.js.map +1 -1
- package/components/range.d.ts +10 -4
- package/components/range.d.ts.map +1 -1
- package/components/range.js +1 -266
- package/components/range.js.map +1 -1
- package/components/rotate.d.ts +3 -1
- package/components/rotate.d.ts.map +1 -1
- package/components/rotate.js +1 -56
- package/components/rotate.js.map +1 -1
- package/components/router.d.ts +14 -16
- package/components/router.d.ts.map +1 -1
- package/components/router.js +1 -250
- package/components/router.js.map +1 -1
- package/components/select.d.ts +7 -2
- package/components/select.d.ts.map +1 -1
- package/components/select.js +1 -211
- package/components/select.js.map +1 -1
- package/components/skeleton.d.ts +3 -1
- package/components/skeleton.d.ts.map +1 -1
- package/components/skeleton.js +1 -54
- package/components/skeleton.js.map +1 -1
- package/components/split.d.ts +8 -2
- package/components/split.d.ts.map +1 -1
- package/components/split.js +1 -153
- package/components/split.js.map +1 -1
- package/components/switch.d.ts +5 -2
- package/components/switch.d.ts.map +1 -1
- package/components/switch.js +1 -92
- package/components/switch.js.map +1 -1
- package/components/text.d.ts +3 -1
- package/components/text.d.ts.map +1 -1
- package/components/text.js +1 -43
- package/components/text.js.map +1 -1
- package/components/time.d.ts +4 -2
- package/components/time.d.ts.map +1 -1
- package/components/time.js +1 -77
- package/components/time.js.map +1 -1
- package/components/tooltip.d.ts +4 -2
- package/components/tooltip.d.ts.map +1 -1
- package/components/tooltip.js +1 -80
- package/components/tooltip.js.map +1 -1
- package/components/typewriter.d.ts +6 -12
- package/components/typewriter.d.ts.map +1 -1
- package/components/typewriter.js +1 -129
- package/components/typewriter.js.map +1 -1
- package/core/global-style.d.ts +2 -2
- package/core/global-style.d.ts.map +1 -1
- package/core/global-style.js +1 -52
- package/core/global-style.js.map +1 -1
- package/core/super-anchor.d.ts +2 -1
- package/core/super-anchor.d.ts.map +1 -1
- package/core/super-anchor.js +1 -38
- package/core/super-anchor.js.map +1 -1
- package/core/super-input.d.ts +4 -3
- package/core/super-input.d.ts.map +1 -1
- package/core/super-input.js +1 -111
- package/core/super-input.js.map +1 -1
- package/core/super-openable.d.ts +1 -1
- package/core/super-openable.d.ts.map +1 -1
- package/core/super-openable.js +1 -37
- package/core/super-openable.js.map +1 -1
- package/custom-elements.json +1 -1
- package/details.d.ts +1 -0
- package/details.d.ts.map +1 -1
- package/details.js +1 -5
- package/details.js.map +1 -1
- package/dev/alert.d.ts +1 -0
- package/dev/alert.d.ts.map +1 -1
- package/dev/alert.js +1 -0
- package/dev/alert.js.map +1 -1
- package/dev/avatar.d.ts +1 -0
- package/dev/avatar.d.ts.map +1 -1
- package/dev/avatar.js +1 -0
- package/dev/avatar.js.map +1 -1
- package/dev/badge.d.ts +9 -0
- package/dev/badge.d.ts.map +1 -0
- package/dev/badge.js +5 -0
- package/dev/badge.js.map +1 -0
- package/dev/button.d.ts +1 -0
- package/dev/button.d.ts.map +1 -1
- package/dev/button.js +1 -0
- package/dev/button.js.map +1 -1
- package/dev/card.d.ts +1 -0
- package/dev/card.d.ts.map +1 -1
- package/dev/card.js +1 -0
- package/dev/card.js.map +1 -1
- package/dev/carousel.d.ts +1 -0
- package/dev/carousel.d.ts.map +1 -1
- package/dev/carousel.js +1 -0
- package/dev/carousel.js.map +1 -1
- package/dev/components/alert.d.ts +4 -1
- package/dev/components/alert.d.ts.map +1 -1
- package/dev/components/alert.js +20 -23
- package/dev/components/alert.js.map +1 -1
- package/dev/components/avatar.d.ts +7 -2
- package/dev/components/avatar.d.ts.map +1 -1
- package/dev/components/avatar.js +22 -10
- package/dev/components/avatar.js.map +1 -1
- package/dev/components/badge.d.ts +23 -0
- package/dev/components/badge.d.ts.map +1 -0
- package/dev/components/badge.js +107 -0
- package/dev/components/badge.js.map +1 -0
- package/dev/components/breath.d.ts +6 -4
- package/dev/components/breath.d.ts.map +1 -1
- package/dev/components/breath.js +29 -26
- package/dev/components/breath.js.map +1 -1
- package/dev/components/button.d.ts +8 -5
- package/dev/components/button.d.ts.map +1 -1
- package/dev/components/button.js +31 -17
- package/dev/components/button.js.map +1 -1
- package/dev/components/card.d.ts +3 -1
- package/dev/components/card.d.ts.map +1 -1
- package/dev/components/card.js +8 -11
- package/dev/components/card.js.map +1 -1
- package/dev/components/carousel.d.ts +5 -1
- package/dev/components/carousel.d.ts.map +1 -1
- package/dev/components/carousel.js +32 -26
- package/dev/components/carousel.js.map +1 -1
- package/dev/components/details.d.ts +4 -3
- package/dev/components/details.d.ts.map +1 -1
- package/dev/components/details.js +22 -27
- package/dev/components/details.js.map +1 -1
- package/dev/components/dialog.d.ts +4 -2
- package/dev/components/dialog.d.ts.map +1 -1
- package/dev/components/dialog.js +17 -16
- package/dev/components/dialog.js.map +1 -1
- package/dev/components/divider.d.ts +3 -3
- package/dev/components/divider.d.ts.map +1 -1
- package/dev/components/divider.js +29 -17
- package/dev/components/divider.js.map +1 -1
- package/dev/components/dragbox.d.ts +4 -2
- package/dev/components/dragbox.d.ts.map +1 -1
- package/dev/components/dragbox.js +11 -4
- package/dev/components/dragbox.js.map +1 -1
- package/dev/components/flex.d.ts +3 -1
- package/dev/components/flex.d.ts.map +1 -1
- package/dev/components/flex.js +17 -9
- package/dev/components/flex.js.map +1 -1
- package/dev/components/form.d.ts +3 -1
- package/dev/components/form.d.ts.map +1 -1
- package/dev/components/form.js +2 -3
- package/dev/components/form.js.map +1 -1
- package/dev/components/grid.d.ts +3 -1
- package/dev/components/grid.d.ts.map +1 -1
- package/dev/components/grid.js +17 -10
- package/dev/components/grid.js.map +1 -1
- package/dev/components/heading.d.ts +29 -0
- package/dev/components/heading.d.ts.map +1 -0
- package/dev/components/heading.js +103 -0
- package/dev/components/heading.js.map +1 -0
- package/dev/components/input.d.ts +5 -1
- package/dev/components/input.d.ts.map +1 -1
- package/dev/components/input.js +17 -17
- package/dev/components/input.js.map +1 -1
- package/dev/components/layout.d.ts +6 -4
- package/dev/components/layout.d.ts.map +1 -1
- package/dev/components/layout.js +23 -22
- package/dev/components/layout.js.map +1 -1
- package/dev/components/link.d.ts +5 -0
- package/dev/components/link.d.ts.map +1 -1
- package/dev/components/link.js +12 -2
- package/dev/components/link.js.map +1 -1
- package/dev/components/progress.d.ts +3 -1
- package/dev/components/progress.d.ts.map +1 -1
- package/dev/components/progress.js +41 -38
- package/dev/components/progress.js.map +1 -1
- package/dev/components/range.d.ts +10 -4
- package/dev/components/range.d.ts.map +1 -1
- package/dev/components/range.js +53 -51
- package/dev/components/range.js.map +1 -1
- package/dev/components/rotate.d.ts +3 -1
- package/dev/components/rotate.d.ts.map +1 -1
- package/dev/components/rotate.js +3 -5
- package/dev/components/rotate.js.map +1 -1
- package/dev/components/router.d.ts +14 -16
- package/dev/components/router.d.ts.map +1 -1
- package/dev/components/router.js +14 -27
- package/dev/components/router.js.map +1 -1
- package/dev/components/select.d.ts +7 -2
- package/dev/components/select.d.ts.map +1 -1
- package/dev/components/select.js +44 -31
- package/dev/components/select.js.map +1 -1
- package/dev/components/skeleton.d.ts +3 -1
- package/dev/components/skeleton.d.ts.map +1 -1
- package/dev/components/skeleton.js +9 -9
- package/dev/components/skeleton.js.map +1 -1
- package/dev/components/split.d.ts +8 -2
- package/dev/components/split.d.ts.map +1 -1
- package/dev/components/split.js +32 -24
- package/dev/components/split.js.map +1 -1
- package/dev/components/switch.d.ts +5 -2
- package/dev/components/switch.d.ts.map +1 -1
- package/dev/components/switch.js +22 -25
- package/dev/components/switch.js.map +1 -1
- package/dev/components/text.d.ts +3 -1
- package/dev/components/text.d.ts.map +1 -1
- package/dev/components/text.js +12 -15
- package/dev/components/text.js.map +1 -1
- package/dev/components/time.d.ts +4 -2
- package/dev/components/time.d.ts.map +1 -1
- package/dev/components/time.js +7 -5
- package/dev/components/time.js.map +1 -1
- package/dev/components/tooltip.d.ts +4 -2
- package/dev/components/tooltip.d.ts.map +1 -1
- package/dev/components/tooltip.js +37 -27
- package/dev/components/tooltip.js.map +1 -1
- package/dev/components/typewriter.d.ts +6 -12
- package/dev/components/typewriter.d.ts.map +1 -1
- package/dev/components/typewriter.js +22 -36
- package/dev/components/typewriter.js.map +1 -1
- package/dev/core/global-style.d.ts +2 -2
- package/dev/core/global-style.d.ts.map +1 -1
- package/dev/core/global-style.js +11 -6
- package/dev/core/global-style.js.map +1 -1
- package/dev/core/super-anchor.d.ts +2 -1
- package/dev/core/super-anchor.d.ts.map +1 -1
- package/dev/core/super-anchor.js +25 -23
- package/dev/core/super-anchor.js.map +1 -1
- package/dev/core/super-input.d.ts +4 -3
- package/dev/core/super-input.d.ts.map +1 -1
- package/dev/core/super-input.js +43 -36
- package/dev/core/super-input.js.map +1 -1
- package/dev/core/super-openable.d.ts +1 -1
- package/dev/core/super-openable.d.ts.map +1 -1
- package/dev/core/super-openable.js +2 -2
- package/dev/core/super-openable.js.map +1 -1
- package/dev/details.d.ts +1 -0
- package/dev/details.d.ts.map +1 -1
- package/dev/details.js +1 -0
- package/dev/details.js.map +1 -1
- package/dev/dialog.d.ts +1 -0
- package/dev/dialog.d.ts.map +1 -1
- package/dev/dialog.js +1 -0
- package/dev/dialog.js.map +1 -1
- package/dev/divider.d.ts +1 -0
- package/dev/divider.d.ts.map +1 -1
- package/dev/divider.js +1 -0
- package/dev/divider.js.map +1 -1
- package/dev/dragbox.d.ts +1 -0
- package/dev/dragbox.d.ts.map +1 -1
- package/dev/dragbox.js +1 -0
- package/dev/dragbox.js.map +1 -1
- package/dev/flex.d.ts +1 -0
- package/dev/flex.d.ts.map +1 -1
- package/dev/flex.js +1 -0
- package/dev/flex.js.map +1 -1
- package/dev/form.d.ts +1 -0
- package/dev/form.d.ts.map +1 -1
- package/dev/form.js +1 -0
- package/dev/form.js.map +1 -1
- package/dev/grid.d.ts +1 -0
- package/dev/grid.d.ts.map +1 -1
- package/dev/grid.js +1 -0
- package/dev/grid.js.map +1 -1
- package/dev/heading.d.ts +9 -0
- package/dev/heading.d.ts.map +1 -0
- package/dev/heading.js +5 -0
- package/dev/heading.js.map +1 -0
- package/dev/index.d.ts +2 -0
- package/dev/index.d.ts.map +1 -1
- package/dev/index.js +2 -0
- package/dev/index.js.map +1 -1
- package/dev/layout.d.ts.map +1 -1
- package/dev/progress.d.ts.map +1 -1
- package/dev/router.d.ts.map +1 -1
- package/dev/split.d.ts +1 -1
- package/dev/split.d.ts.map +1 -1
- package/dev/typewriter.d.ts +1 -0
- package/dev/typewriter.d.ts.map +1 -1
- package/dev/typewriter.js +1 -0
- package/dev/typewriter.js.map +1 -1
- package/dialog.d.ts +1 -0
- package/dialog.d.ts.map +1 -1
- package/dialog.js +1 -5
- package/dialog.js.map +1 -1
- package/divider.d.ts +1 -0
- package/divider.d.ts.map +1 -1
- package/divider.js +1 -5
- package/divider.js.map +1 -1
- package/dragbox.d.ts +1 -0
- package/dragbox.d.ts.map +1 -1
- package/dragbox.js +1 -5
- package/dragbox.js.map +1 -1
- package/flex.d.ts +1 -0
- package/flex.d.ts.map +1 -1
- package/flex.js +1 -5
- package/flex.js.map +1 -1
- package/form.d.ts +1 -0
- package/form.d.ts.map +1 -1
- package/form.js +1 -5
- package/form.js.map +1 -1
- package/grid.d.ts +1 -0
- package/grid.d.ts.map +1 -1
- package/grid.js +1 -5
- package/grid.js.map +1 -1
- package/heading.d.ts +9 -0
- package/heading.d.ts.map +1 -0
- package/heading.js +2 -0
- package/heading.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -56
- package/index.js.map +1 -1
- package/input.js +1 -5
- package/input.js.map +1 -1
- package/layout.d.ts.map +1 -1
- package/layout.js +1 -5
- package/layout.js.map +1 -1
- package/link.js +1 -5
- package/link.js.map +1 -1
- package/package.json +11 -6
- package/progress.d.ts.map +1 -1
- package/progress.js +1 -5
- package/progress.js.map +1 -1
- package/range.js +1 -5
- package/range.js.map +1 -1
- package/rotate.js +1 -5
- package/rotate.js.map +1 -1
- package/router.d.ts.map +1 -1
- package/router.js +1 -5
- package/router.js.map +1 -1
- package/select.js +1 -5
- package/select.js.map +1 -1
- package/skeleton.js +1 -5
- package/skeleton.js.map +1 -1
- package/split.d.ts +1 -1
- package/split.d.ts.map +1 -1
- package/split.js +1 -5
- package/split.js.map +1 -1
- package/src/alert.ts +2 -0
- package/src/avatar.ts +2 -0
- package/src/badge.ts +13 -0
- package/src/button.ts +2 -0
- package/src/card.ts +2 -0
- package/src/carousel.ts +2 -0
- package/src/components/alert.ts +26 -29
- package/src/components/avatar.ts +26 -14
- package/src/components/badge.ts +107 -0
- package/src/components/breath.ts +36 -31
- package/src/components/button.ts +31 -32
- package/src/components/card.ts +9 -12
- package/src/components/carousel.ts +41 -34
- package/src/components/details.ts +24 -29
- package/src/components/dialog.ts +24 -25
- package/src/components/divider.ts +29 -17
- package/src/components/dragbox.ts +18 -13
- package/src/components/flex.ts +20 -10
- package/src/components/form.ts +6 -7
- package/src/components/grid.ts +20 -11
- package/src/components/heading.ts +105 -0
- package/src/components/input.ts +20 -20
- package/src/components/layout.ts +20 -23
- package/src/components/link.ts +12 -3
- package/src/components/progress.ts +46 -41
- package/src/components/range.ts +69 -76
- package/src/components/rotate.ts +11 -10
- package/src/components/router.ts +42 -40
- package/src/components/select.ts +57 -45
- package/src/components/skeleton.ts +11 -11
- package/src/components/split.ts +45 -35
- package/src/components/switch.ts +27 -30
- package/src/components/text.ts +14 -21
- package/src/components/time.ts +14 -12
- package/src/components/tooltip.ts +36 -32
- package/src/components/typewriter.ts +32 -45
- package/src/core/global-style.ts +25 -11
- package/src/core/super-anchor.ts +30 -26
- package/src/core/super-input.ts +53 -53
- package/src/core/super-openable.ts +7 -7
- package/src/details.ts +2 -0
- package/src/dialog.ts +2 -0
- package/src/divider.ts +2 -0
- package/src/dragbox.ts +2 -0
- package/src/flex.ts +2 -0
- package/src/form.ts +2 -0
- package/src/grid.ts +2 -0
- package/src/heading.ts +13 -0
- package/src/index.ts +2 -0
- package/src/layout.ts +1 -0
- package/src/progress.ts +1 -0
- package/src/router.ts +1 -0
- package/src/split.ts +1 -1
- package/src/typewriter.ts +2 -0
- package/switch.js +1 -5
- package/switch.js.map +1 -1
- package/text.js +1 -5
- package/text.js.map +1 -1
- package/time.js +1 -5
- package/time.js.map +1 -1
- package/tooltip.js +1 -5
- package/tooltip.js.map +1 -1
- package/typewriter.d.ts +1 -0
- package/typewriter.d.ts.map +1 -1
- package/typewriter.js +1 -5
- package/typewriter.js.map +1 -1
- package/vscode.html-custom-data.json +1 -1
- package/web-types.json +1 -1
package/src/components/router.ts
CHANGED
@@ -1,7 +1,4 @@
|
|
1
|
-
import { godown } from "@godown/element
|
2
|
-
import { styles } from "@godown/element/decorators/styles.js";
|
3
|
-
import { htmlSlot } from "@godown/element/directives/html-slot.js";
|
4
|
-
import { RouteTree } from "@godown/element/tools/route-tree.js";
|
1
|
+
import { godown, htmlSlot, RouteTree, styles } from "@godown/element";
|
5
2
|
import { css, type PropertyValueMap, type TemplateResult } from "lit";
|
6
3
|
import { property, state } from "lit/decorators.js";
|
7
4
|
|
@@ -33,8 +30,8 @@ const protoName = "router";
|
|
33
30
|
*/
|
34
31
|
@godown(protoName)
|
35
32
|
@styles(css`:host{display:contents;}`)
|
36
|
-
class Router
|
37
|
-
static routerInstances = new Set<Router>();
|
33
|
+
class Router extends GlobalStyle {
|
34
|
+
static routerInstances: Set<Router> = new Set<Router>();
|
38
35
|
|
39
36
|
private __fieldRouteTree: RouteTree = new RouteTree();
|
40
37
|
private __slottedRouteTree: RouteTree = new RouteTree();
|
@@ -43,7 +40,7 @@ class Router<C = unknown> extends GlobalStyle {
|
|
43
40
|
& Record<string, any>
|
44
41
|
& {
|
45
42
|
path: string;
|
46
|
-
component?:
|
43
|
+
component?: unknown;
|
47
44
|
}
|
48
45
|
)[];
|
49
46
|
|
@@ -51,7 +48,7 @@ class Router<C = unknown> extends GlobalStyle {
|
|
51
48
|
* Render result.
|
52
49
|
*/
|
53
50
|
@state()
|
54
|
-
component:
|
51
|
+
component: unknown | TemplateResult = null;
|
55
52
|
|
56
53
|
/**
|
57
54
|
* Dynamic parameters record.
|
@@ -69,13 +66,7 @@ class Router<C = unknown> extends GlobalStyle {
|
|
69
66
|
* Current pathname (equals to location.pathname).
|
70
67
|
*/
|
71
68
|
@property()
|
72
|
-
pathname
|
73
|
-
|
74
|
-
/**
|
75
|
-
* Path prefix.
|
76
|
-
*/
|
77
|
-
@property()
|
78
|
-
baseURL = "";
|
69
|
+
pathname: string;
|
79
70
|
|
80
71
|
/**
|
81
72
|
* Rendered content when there is no match.
|
@@ -107,15 +98,19 @@ class Router<C = unknown> extends GlobalStyle {
|
|
107
98
|
this.collectFieldRoutes(value);
|
108
99
|
}
|
109
100
|
|
110
|
-
get routes() {
|
101
|
+
get routes(): (Record<string, any> & {
|
102
|
+
path: string;
|
103
|
+
render?: (ur: ReturnType<Router["useRouter"]>) => unknown;
|
104
|
+
component?: unknown;
|
105
|
+
})[] {
|
111
106
|
return this.__routes;
|
112
107
|
}
|
113
108
|
|
114
|
-
clear() {
|
109
|
+
clear(): void {
|
115
110
|
this.__cacheRecord.clear();
|
116
111
|
}
|
117
112
|
|
118
|
-
protected render() {
|
113
|
+
protected render(): unknown {
|
119
114
|
this.params = {};
|
120
115
|
if (this.cache) {
|
121
116
|
const cached = this.__cacheRecord.get(this.pathname);
|
@@ -137,7 +132,7 @@ class Router<C = unknown> extends GlobalStyle {
|
|
137
132
|
return this.component ?? this.default ?? null;
|
138
133
|
}
|
139
134
|
|
140
|
-
connectedCallback() {
|
135
|
+
connectedCallback(): void {
|
141
136
|
super.connectedCallback();
|
142
137
|
Router.routerInstances.add(this);
|
143
138
|
this.pathname ??= location.pathname;
|
@@ -153,12 +148,17 @@ class Router<C = unknown> extends GlobalStyle {
|
|
153
148
|
}
|
154
149
|
}
|
155
150
|
|
156
|
-
disconnectedCallback() {
|
151
|
+
disconnectedCallback(): void {
|
157
152
|
super.disconnectedCallback();
|
158
153
|
Router.routerInstances.delete(this);
|
159
154
|
}
|
160
155
|
|
161
|
-
useRouter() {
|
156
|
+
useRouter(): {
|
157
|
+
pathname: string;
|
158
|
+
params: Record<string, string>;
|
159
|
+
path: string;
|
160
|
+
component: unknown;
|
161
|
+
} {
|
162
162
|
return {
|
163
163
|
pathname: this.pathname,
|
164
164
|
params: this.params,
|
@@ -174,10 +174,10 @@ class Router<C = unknown> extends GlobalStyle {
|
|
174
174
|
pathname: string;
|
175
175
|
params: Record<string, string>;
|
176
176
|
path: string;
|
177
|
-
component:
|
177
|
+
component: unknown | TemplateResult;
|
178
178
|
}, first: boolean) => void = null;
|
179
179
|
|
180
|
-
protected updated(changedProperties: PropertyValueMap<this>) {
|
180
|
+
protected updated(changedProperties: PropertyValueMap<this>): void {
|
181
181
|
const shouldDispatch = changedProperties.has("pathname") || changedProperties.has("path");
|
182
182
|
if (shouldDispatch) {
|
183
183
|
const ur = this.useRouter();
|
@@ -193,8 +193,8 @@ class Router<C = unknown> extends GlobalStyle {
|
|
193
193
|
/**
|
194
194
|
* Get component from {@linkcode routes} by query.
|
195
195
|
*/
|
196
|
-
fieldComponent(query?: string) {
|
197
|
-
query ||= this.
|
196
|
+
fieldComponent(query?: string): unknown {
|
197
|
+
query ||= this.__fieldRouteTree.search(this.pathname)?.pattern;
|
198
198
|
this.path = query;
|
199
199
|
|
200
200
|
if (!query) {
|
@@ -206,33 +206,38 @@ class Router<C = unknown> extends GlobalStyle {
|
|
206
206
|
if (!route) {
|
207
207
|
return null;
|
208
208
|
}
|
209
|
+
|
210
|
+
if ("render" in route) {
|
211
|
+
return route.render?.(this.useRouter()) || null;
|
212
|
+
}
|
213
|
+
|
209
214
|
return route.component;
|
210
215
|
}
|
211
216
|
|
212
217
|
/**
|
213
218
|
* Get component from slotted elements by query.
|
214
219
|
*/
|
215
|
-
slottedComponent(
|
220
|
+
slottedComponent(query?: string): TemplateResult<1> {
|
216
221
|
const slottedPaths = this._slottedNames;
|
217
|
-
|
218
|
-
this.path =
|
222
|
+
query ||= this.__slottedRouteTree.search(this.pathname)?.pattern;
|
223
|
+
this.path = query;
|
219
224
|
|
220
|
-
if (!
|
225
|
+
if (!query) {
|
221
226
|
return null;
|
222
227
|
}
|
223
228
|
|
224
|
-
this.path = slottedPaths.find((s) => s ===
|
229
|
+
this.path = slottedPaths.find((s) => s === query);
|
225
230
|
if (!this.path) {
|
226
231
|
return null;
|
227
232
|
}
|
228
|
-
this.params = this.parseParams(
|
233
|
+
this.params = this.parseParams(query, this.pathname);
|
229
234
|
return htmlSlot(this.path);
|
230
235
|
}
|
231
236
|
|
232
237
|
/**
|
233
238
|
* Reset the route tree, clear cache, collect routes from child elements.
|
234
239
|
*/
|
235
|
-
collectSlottedRoutes() {
|
240
|
+
collectSlottedRoutes(): void {
|
236
241
|
this.__slottedRouteTree = new RouteTree();
|
237
242
|
this.clear();
|
238
243
|
this._slottedNames.forEach(slotName => {
|
@@ -243,7 +248,7 @@ class Router<C = unknown> extends GlobalStyle {
|
|
243
248
|
/**
|
244
249
|
* Reset the route tree, clear cache, collect routes from value.
|
245
250
|
*/
|
246
|
-
collectFieldRoutes(value: typeof this.routes) {
|
251
|
+
collectFieldRoutes(value: typeof this.routes): void {
|
247
252
|
this.__fieldRouteTree = new RouteTree();
|
248
253
|
this.clear();
|
249
254
|
value.forEach(({ path }) => {
|
@@ -251,15 +256,11 @@ class Router<C = unknown> extends GlobalStyle {
|
|
251
256
|
});
|
252
257
|
}
|
253
258
|
|
254
|
-
|
255
|
-
return
|
256
|
-
}
|
257
|
-
|
258
|
-
parseParams(routeTemplate: string, path: string) {
|
259
|
-
return this.__fieldRouteTree.parseParams(path, routeTemplate);
|
259
|
+
parseParams(routeTemplate: string, path: string = this.pathname): Record<string, string> {
|
260
|
+
return RouteTree.parseParams(path, routeTemplate);
|
260
261
|
}
|
261
262
|
|
262
|
-
static updateAll() {
|
263
|
+
static updateAll(): void {
|
263
264
|
this.routerInstances.forEach((i) => {
|
264
265
|
i.handlePopstate();
|
265
266
|
});
|
@@ -271,3 +272,4 @@ class Router<C = unknown> extends GlobalStyle {
|
|
271
272
|
}
|
272
273
|
|
273
274
|
export default Router;
|
275
|
+
export { Router };
|
package/src/components/select.ts
CHANGED
@@ -1,12 +1,7 @@
|
|
1
|
-
import { HandlerEvent } from "@godown/element";
|
2
|
-
import { godown } from "@godown/element/decorators/godown.js";
|
3
|
-
import { part } from "@godown/element/decorators/part.js";
|
4
|
-
import { styles } from "@godown/element/decorators/styles.js";
|
5
|
-
import { htmlSlot } from "@godown/element/directives/html-slot.js";
|
1
|
+
import { attr, godown, type HandlerEvent, htmlSlot, part, styles } from "@godown/element";
|
6
2
|
import svgCaretDown from "@godown/f7-icon/icons/chevron-down.js";
|
7
|
-
import { css, html, nothing } from "lit";
|
3
|
+
import { css, html, nothing, type TemplateResult } from "lit";
|
8
4
|
import { property, state } from "lit/decorators.js";
|
9
|
-
import { ifDefined } from "lit/directives/if-defined.js";
|
10
5
|
|
11
6
|
import Input from "./input.js";
|
12
7
|
|
@@ -44,28 +39,36 @@ const protoName = "select";
|
|
44
39
|
*
|
45
40
|
* Input will filter the element.
|
46
41
|
*
|
42
|
+
* @fires input - Fires when the input value changes.
|
43
|
+
* @fires change - Fires when the input value changes.
|
44
|
+
* @fires select - Fires when select an option.
|
47
45
|
* @slot - Options.
|
48
46
|
* @category input
|
49
47
|
*/
|
50
48
|
@godown(protoName)
|
51
49
|
@styles(
|
52
50
|
css`
|
53
|
-
[part=
|
51
|
+
[part=input] {
|
54
52
|
text-overflow: ellipsis;
|
55
53
|
}
|
56
54
|
|
57
|
-
[part=
|
55
|
+
[part=content] {
|
58
56
|
position: absolute;
|
59
57
|
width: 100%;
|
58
|
+
visibility: hidden;
|
60
59
|
}
|
61
60
|
|
62
|
-
[direction=
|
61
|
+
[direction=bottom] [part=content] {
|
63
62
|
top: 100%;
|
64
63
|
}
|
65
64
|
|
66
|
-
[direction=
|
65
|
+
[direction=top] [part=content] {
|
67
66
|
bottom: 100%;
|
68
67
|
}
|
68
|
+
|
69
|
+
[visible] [part=content] {
|
70
|
+
visibility: visible
|
71
|
+
}
|
69
72
|
`,
|
70
73
|
)
|
71
74
|
class Select extends Input {
|
@@ -85,10 +88,10 @@ class Select extends Input {
|
|
85
88
|
direction: "top" | "bottom" | undefined;
|
86
89
|
|
87
90
|
@property({ type: Boolean })
|
88
|
-
multiple
|
91
|
+
multiple = false;
|
89
92
|
|
90
93
|
@property({ type: Boolean })
|
91
|
-
visible
|
94
|
+
visible = false;
|
92
95
|
|
93
96
|
@state()
|
94
97
|
protected autoDirection: "top" | "bottom" = "bottom";
|
@@ -98,35 +101,42 @@ class Select extends Input {
|
|
98
101
|
protected defaultChecked: HTMLElement[];
|
99
102
|
private _store: { value: string; text: string; }[] = [];
|
100
103
|
|
101
|
-
protected render() {
|
102
|
-
return html`<div
|
103
|
-
|
104
|
+
protected render(): TemplateResult<1> {
|
105
|
+
return html`<div
|
106
|
+
part="root"
|
107
|
+
${
|
108
|
+
attr({
|
109
|
+
...this.observedRecord,
|
110
|
+
direction: this.direction || this.autoDirection,
|
111
|
+
})
|
112
|
+
}
|
113
|
+
class="input-field"
|
114
|
+
>
|
115
|
+
${[
|
104
116
|
this._renderPrefix(),
|
105
117
|
html`<input
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
118
|
+
part="input"
|
119
|
+
dir="${this.dir || nothing}"
|
120
|
+
id="${this.makeId}"
|
121
|
+
.value="${this.text}"
|
122
|
+
type="${this.type}"
|
123
|
+
placeholder="${this.placeholder || nothing}"
|
124
|
+
?autofocus="${this.autofocus}"
|
125
|
+
autocapitalize="${this.autocapitalize || nothing}"
|
126
|
+
autocomplete="${this.autocomplete || nothing}"
|
127
|
+
?disabled="${this.disabled}"
|
128
|
+
@focus="${this._handleFocus}"
|
129
|
+
@input="${this._handleInput}"
|
130
|
+
>`,
|
119
131
|
html`<label for="${this.makeId}" part="suffix">
|
120
|
-
|
121
|
-
|
122
|
-
html`<label for="${this.makeId}" part="content"
|
123
|
-
style="visibility:${this.visible ? "visible" : "hidden"}"
|
124
|
-
direction="${this.direction || this.autoDirection}">${htmlSlot()}</label>`,
|
132
|
+
<i part="icon">${svgCaretDown()}</i>
|
133
|
+
</label>`,
|
134
|
+
html`<label for="${this.makeId}" part="content"> ${htmlSlot()} </label>`,
|
125
135
|
]}
|
126
136
|
</div>`;
|
127
137
|
}
|
128
138
|
|
129
|
-
protected _handleFocus() {
|
139
|
+
protected _handleFocus(): void {
|
130
140
|
if (!this.direction) {
|
131
141
|
const { top, bottom } = this.getBoundingClientRect();
|
132
142
|
if (window.innerHeight - bottom < this._content.clientHeight && top > this._content.clientHeight) {
|
@@ -138,7 +148,7 @@ class Select extends Input {
|
|
138
148
|
this.visible = true;
|
139
149
|
}
|
140
150
|
|
141
|
-
protected firstUpdated() {
|
151
|
+
protected firstUpdated(): void {
|
142
152
|
this.events.add(this._content, "click", (e: HandlerEvent) => {
|
143
153
|
e.preventDefault();
|
144
154
|
e.stopPropagation();
|
@@ -164,7 +174,7 @@ class Select extends Input {
|
|
164
174
|
});
|
165
175
|
}
|
166
176
|
|
167
|
-
protected _connectedInit() {
|
177
|
+
protected _connectedInit(): void {
|
168
178
|
if (!this.value) {
|
169
179
|
const checked = [...this.querySelectorAll<HTMLElement>("[checked]")];
|
170
180
|
const list = this.multiple
|
@@ -193,7 +203,7 @@ class Select extends Input {
|
|
193
203
|
this.defaultChecked.forEach(element => updateChecked(element, 1));
|
194
204
|
}
|
195
205
|
|
196
|
-
select(value: string, text?: string) {
|
206
|
+
select(value: string, text?: string): 0 | 1 {
|
197
207
|
text ||= value;
|
198
208
|
let operation: 0 | 1 = 0;
|
199
209
|
if (this.multiple) {
|
@@ -216,12 +226,12 @@ class Select extends Input {
|
|
216
226
|
operation = 1;
|
217
227
|
}
|
218
228
|
}
|
219
|
-
this.dispatchEvent(new CustomEvent("
|
229
|
+
this.dispatchEvent(new CustomEvent("select", { detail: this.value, composed: true }));
|
220
230
|
this.filter();
|
221
231
|
return operation;
|
222
232
|
}
|
223
233
|
|
224
|
-
filter(query?: string) {
|
234
|
+
filter(query?: string): void {
|
225
235
|
query = query?.trim();
|
226
236
|
[...this.children].forEach((element: HTMLElement) => {
|
227
237
|
this.filterCallback(
|
@@ -235,26 +245,27 @@ class Select extends Input {
|
|
235
245
|
}
|
236
246
|
|
237
247
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
238
|
-
filterCallback(element: HTMLElement, match: boolean, query: string) {
|
248
|
+
filterCallback(element: HTMLElement, match: boolean, query: string): void {
|
239
249
|
element.style.display = match ? "" : "none";
|
240
250
|
}
|
241
251
|
|
242
|
-
protected _handleInput(e: HandlerEvent<HTMLInputElement>) {
|
252
|
+
protected _handleInput(e: HandlerEvent<HTMLInputElement>): void {
|
243
253
|
e.stopPropagation();
|
244
254
|
if (this.compositing) {
|
245
255
|
return;
|
246
256
|
}
|
247
257
|
const s = this._input.value;
|
248
258
|
this.filter(this.multiple ? betweenAt(this._input.selectionStart, s, ",") : s);
|
249
|
-
this.dispatchEvent(new CustomEvent("input", { detail: this.
|
259
|
+
this.dispatchEvent(new CustomEvent("input", { detail: this.value, composed: true, bubbles: true }));
|
260
|
+
this.dispatchEvent(new CustomEvent("change", { detail: this.value, composed: true }));
|
250
261
|
}
|
251
262
|
|
252
|
-
focus(options?: FocusOptions) {
|
263
|
+
focus(options?: FocusOptions): void {
|
253
264
|
this._input.focus(options);
|
254
265
|
this.visible = true;
|
255
266
|
}
|
256
267
|
|
257
|
-
blur() {
|
268
|
+
blur(): void {
|
258
269
|
this._input.blur();
|
259
270
|
this.visible = false;
|
260
271
|
super.blur();
|
@@ -266,3 +277,4 @@ class Select extends Input {
|
|
266
277
|
}
|
267
278
|
|
268
279
|
export default Select;
|
280
|
+
export { Select };
|
@@ -1,8 +1,6 @@
|
|
1
|
-
import { godown } from "@godown/element
|
2
|
-
import { styles } from "@godown/element/decorators/styles.js";
|
3
|
-
import { htmlSlot } from "@godown/element/directives/html-slot.js";
|
1
|
+
import { attr, godown, htmlSlot, styles } from "@godown/element";
|
4
2
|
import iconPhoto from "@godown/f7-icon/icons/photo.js";
|
5
|
-
import { css, html } from "lit";
|
3
|
+
import { css, html, type TemplateResult } from "lit";
|
6
4
|
import { property, state } from "lit/decorators.js";
|
7
5
|
|
8
6
|
import { cssGlobalVars, GlobalStyle, scopePrefix } from "../core/global-style.js";
|
@@ -36,7 +34,7 @@ const cssScope = scopePrefix(protoName);
|
|
36
34
|
overflow: hidden;
|
37
35
|
}
|
38
36
|
|
39
|
-
[part=
|
37
|
+
[part=root] {
|
40
38
|
height: 100%;
|
41
39
|
min-height: inherit;
|
42
40
|
text-align: center;
|
@@ -49,7 +47,7 @@ const cssScope = scopePrefix(protoName);
|
|
49
47
|
margin: calc(var(--size) * 0.05);
|
50
48
|
}
|
51
49
|
|
52
|
-
|
50
|
+
[animation=position] {
|
53
51
|
background-image: linear-gradient(
|
54
52
|
var(${cssScope}--deg),
|
55
53
|
var(${cssScope}--from) 36%,
|
@@ -70,7 +68,7 @@ const cssScope = scopePrefix(protoName);
|
|
70
68
|
}
|
71
69
|
}
|
72
70
|
|
73
|
-
|
71
|
+
[animation=opacity] {
|
74
72
|
animation-name: op;
|
75
73
|
animation-direction: alternate;
|
76
74
|
}
|
@@ -105,14 +103,16 @@ class Skeleton extends GlobalStyle {
|
|
105
103
|
@state()
|
106
104
|
loading = true;
|
107
105
|
|
108
|
-
protected render() {
|
106
|
+
protected render(): TemplateResult<1> {
|
109
107
|
if (!this.loading) {
|
110
108
|
return htmlSlot();
|
111
109
|
}
|
112
|
-
return html`<div part="root"
|
113
|
-
|
114
|
-
|
110
|
+
return html`<div part="root" ${attr(this.observedRecord)}>
|
111
|
+
${this.type === "image" ? iconPhoto() : ""}
|
112
|
+
${htmlSlot("loading")}
|
113
|
+
</div>`;
|
115
114
|
}
|
116
115
|
}
|
117
116
|
|
118
117
|
export default Skeleton;
|
118
|
+
export { Skeleton };
|
package/src/components/split.ts
CHANGED
@@ -1,8 +1,5 @@
|
|
1
|
-
import { godown } from "@godown/element
|
2
|
-
import {
|
3
|
-
import { classList } from "@godown/element/directives/class-list.js";
|
4
|
-
import { type HandlerEvent } from "@godown/element/element.js";
|
5
|
-
import { css, html, nothing } from "lit";
|
1
|
+
import { attr, classList, godown, type HandlerEvent, styles } from "@godown/element";
|
2
|
+
import { css, html, nothing, type TemplateResult } from "lit";
|
6
3
|
import { property, state } from "lit/decorators.js";
|
7
4
|
|
8
5
|
import { cssGlobalVars, scopePrefix } from "../core/global-style.js";
|
@@ -26,6 +23,10 @@ const loop = <T>(len: number, fn: (index?: number) => T) => {
|
|
26
23
|
*
|
27
24
|
* Delete: will move the focus box forward until the first and no inputs for each.
|
28
25
|
*
|
26
|
+
* @fires input - Fires when the input value changes.
|
27
|
+
* @fires change - Fires when the input value changes.
|
28
|
+
* @fires focus - Fires when the input is focused.
|
29
|
+
* @fires blur - Fires when the input is blurred.
|
29
30
|
* @category input
|
30
31
|
*/
|
31
32
|
@godown(protoName)
|
@@ -40,17 +41,21 @@ const loop = <T>(len: number, fn: (index?: number) => T) => {
|
|
40
41
|
${cssScope}--gap: .25em;
|
41
42
|
}
|
42
43
|
|
43
|
-
[part=
|
44
|
+
:host([contents]) [part=root] {
|
45
|
+
width: fit-content;
|
46
|
+
}
|
47
|
+
|
48
|
+
[part=root] {
|
44
49
|
gap: var(${cssScope}--gap);
|
45
50
|
width: 100%;
|
46
51
|
position: relative;
|
47
52
|
vertical-align: top;
|
48
|
-
display:
|
53
|
+
display: flex;
|
49
54
|
justify-content: space-between;
|
50
55
|
border-radius: inherit;
|
51
56
|
}
|
52
57
|
|
53
|
-
[part=
|
58
|
+
[part=input-box] {
|
54
59
|
width: var(${cssScope}--size);
|
55
60
|
height: var(${cssScope}--size);
|
56
61
|
vertical-align: top;
|
@@ -59,7 +64,7 @@ const loop = <T>(len: number, fn: (index?: number) => T) => {
|
|
59
64
|
border-radius: inherit;
|
60
65
|
}
|
61
66
|
|
62
|
-
[part=
|
67
|
+
[part=input] {
|
63
68
|
width: 100%;
|
64
69
|
height: 100%;
|
65
70
|
opacity: 0;
|
@@ -92,27 +97,30 @@ class Split extends SuperInput {
|
|
92
97
|
@state()
|
93
98
|
currentValue: (string | void)[] = [];
|
94
99
|
|
95
|
-
protected render() {
|
96
|
-
return html
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
100
|
+
protected render(): TemplateResult<1> {
|
101
|
+
return html`<div part="root" ${attr(this.observedRecord)}>
|
102
|
+
${
|
103
|
+
loop(
|
104
|
+
this.len,
|
105
|
+
(index: number) =>
|
106
|
+
html`<span
|
107
|
+
part="input-box"
|
108
|
+
@click="${this.disabled ? null : () => this.focusAt(index)}"
|
109
|
+
class="${classList({ focus: this.current === index }) || nothing}"
|
110
|
+
>${this.currentValue[index]}</span
|
111
|
+
>`,
|
112
|
+
)
|
104
113
|
}
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
114
|
+
<input
|
115
|
+
part="input"
|
116
|
+
id="${this.makeId}"
|
117
|
+
@blur=${this.blur}
|
118
|
+
@input="${this._handleInput}"
|
119
|
+
.value="${
|
111
120
|
/* Ensure that input always has a value of length this.len */
|
112
121
|
this.value.padStart(this.len, " ")}"
|
113
|
-
|
114
|
-
|
115
|
-
`;
|
122
|
+
>
|
123
|
+
</div> `;
|
116
124
|
}
|
117
125
|
|
118
126
|
connectedCallback(): void {
|
@@ -120,7 +128,7 @@ class Split extends SuperInput {
|
|
120
128
|
this.reset();
|
121
129
|
}
|
122
130
|
|
123
|
-
protected _handleInput(e: HandlerEvent<HTMLInputElement, InputEvent>) {
|
131
|
+
protected _handleInput(e: HandlerEvent<HTMLInputElement, InputEvent>): void {
|
124
132
|
e.stopPropagation();
|
125
133
|
if (this.compositing) {
|
126
134
|
return;
|
@@ -129,8 +137,7 @@ class Split extends SuperInput {
|
|
129
137
|
this.fillInput(e.data);
|
130
138
|
this.value = this.currentValue.join("");
|
131
139
|
|
132
|
-
this.dispatchEvent(new CustomEvent("input", { detail: this.value,
|
133
|
-
this.dispatchEvent(new CustomEvent("change", { detail: this.value, composed: true }));
|
140
|
+
this.dispatchEvent(new CustomEvent("input", { detail: this.value, composed: true, bubbles: true }));
|
134
141
|
}
|
135
142
|
|
136
143
|
/**
|
@@ -149,7 +156,7 @@ class Split extends SuperInput {
|
|
149
156
|
*
|
150
157
|
* @param data Input event data.
|
151
158
|
*/
|
152
|
-
protected fillInput(data: string | null) {
|
159
|
+
protected fillInput(data: string | null): void {
|
153
160
|
if (data === null) {
|
154
161
|
// delete
|
155
162
|
|
@@ -192,23 +199,25 @@ class Split extends SuperInput {
|
|
192
199
|
}
|
193
200
|
}
|
194
201
|
|
195
|
-
focus() {
|
202
|
+
focus(): void {
|
196
203
|
this.focusAt(this.current);
|
197
204
|
super.focus();
|
198
205
|
}
|
199
206
|
|
200
|
-
focusAt(i: number) {
|
207
|
+
focusAt(i: number): void {
|
201
208
|
this.current = i;
|
202
209
|
this._input.focus();
|
210
|
+
this.dispatchEvent(new CustomEvent("focus", { detail: i, bubbles: true, composed: true }));
|
203
211
|
}
|
204
212
|
|
205
|
-
blur() {
|
213
|
+
blur(): void {
|
206
214
|
this._input.blur();
|
207
215
|
this.current = -1;
|
208
216
|
super.blur();
|
217
|
+
this.dispatchEvent(new CustomEvent("blur", { bubbles: true, composed: true }));
|
209
218
|
}
|
210
219
|
|
211
|
-
reset() {
|
220
|
+
reset(): void {
|
212
221
|
this.current = -1;
|
213
222
|
this.value = this.default;
|
214
223
|
this.currentValue = this.value.split("").concat(Array(this.len - this.value.length).fill(null));
|
@@ -219,3 +228,4 @@ class Split extends SuperInput {
|
|
219
228
|
}
|
220
229
|
|
221
230
|
export default Split;
|
231
|
+
export { Split };
|