godown 3.13.1 → 3.13.2
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/alert.d.ts +0 -1
- package/alert.d.ts.map +1 -1
- package/alert.js.map +1 -1
- package/avatar.d.ts +0 -1
- package/avatar.d.ts.map +1 -1
- package/avatar.js.map +1 -1
- package/badge.d.ts +0 -1
- package/badge.d.ts.map +1 -1
- package/badge.js.map +1 -1
- package/breath.d.ts +0 -1
- package/breath.d.ts.map +1 -1
- package/breath.js.map +1 -1
- package/build/godown+lit.iife.js +16 -57
- package/build/godown+lit.iife.js.map +1 -1
- package/build/godown+lit.js +16 -57
- package/build/godown+lit.js.map +1 -1
- package/build/godown+lit.umd.js +16 -57
- package/build/godown+lit.umd.js.map +1 -1
- package/build/godown.iife.js +15 -47
- package/build/godown.iife.js.map +1 -1
- package/build/godown.js +15 -47
- package/build/godown.js.map +1 -1
- package/build/godown.umd.js +15 -47
- package/build/godown.umd.js.map +1 -1
- package/button.d.ts +0 -1
- package/button.d.ts.map +1 -1
- package/button.js.map +1 -1
- package/card.d.ts +0 -1
- package/card.d.ts.map +1 -1
- package/card.js.map +1 -1
- package/carousel.d.ts +0 -1
- package/carousel.d.ts.map +1 -1
- package/carousel.js.map +1 -1
- package/chip.d.ts +0 -1
- package/chip.d.ts.map +1 -1
- package/chip.js.map +1 -1
- package/custom-elements.json +1 -1
- package/details.d.ts +0 -1
- package/details.d.ts.map +1 -1
- package/details.js.map +1 -1
- package/dialog.d.ts +0 -1
- package/dialog.d.ts.map +1 -1
- package/dialog.js.map +1 -1
- package/divider.d.ts +0 -1
- package/divider.d.ts.map +1 -1
- package/divider.js.map +1 -1
- package/dragbox.d.ts +0 -1
- package/dragbox.d.ts.map +1 -1
- package/dragbox.js.map +1 -1
- package/flex.d.ts +0 -1
- package/flex.d.ts.map +1 -1
- package/flex.js.map +1 -1
- package/form.d.ts +0 -1
- package/form.d.ts.map +1 -1
- package/form.js.map +1 -1
- package/grid.d.ts +0 -1
- package/grid.d.ts.map +1 -1
- package/grid.js.map +1 -1
- package/heading.d.ts +0 -1
- package/heading.d.ts.map +1 -1
- package/heading.js.map +1 -1
- package/index.d.ts +0 -1
- package/index.d.ts.map +1 -1
- package/index.js.map +1 -1
- package/input.d.ts +0 -1
- package/input.d.ts.map +1 -1
- package/input.js.map +1 -1
- package/internal/global-style.d.ts +13 -15
- package/internal/global-style.d.ts.map +1 -1
- package/internal/global-style.js +1 -1
- package/internal/global-style.js.map +1 -1
- package/internal/icons/caret-down.d.ts +0 -1
- package/internal/icons/caret-down.d.ts.map +1 -1
- package/internal/icons/caret-down.js +1 -1
- package/internal/icons/caret-down.js.map +1 -1
- package/internal/icons/caret-left.d.ts +0 -1
- package/internal/icons/caret-left.d.ts.map +1 -1
- package/internal/icons/caret-left.js +1 -1
- package/internal/icons/caret-left.js.map +1 -1
- package/internal/icons/caret-right.d.ts +0 -1
- package/internal/icons/caret-right.d.ts.map +1 -1
- package/internal/icons/caret-right.js +1 -1
- package/internal/icons/caret-right.js.map +1 -1
- package/internal/icons/eye-slash.d.ts +0 -1
- package/internal/icons/eye-slash.d.ts.map +1 -1
- package/internal/icons/eye-slash.js +1 -1
- package/internal/icons/eye-slash.js.map +1 -1
- package/internal/popover.d.ts +0 -1
- package/internal/popover.d.ts.map +1 -1
- package/internal/popover.js +1 -1
- package/internal/popover.js.map +1 -1
- package/internal/reset-style.d.ts +0 -1
- package/internal/reset-style.d.ts.map +1 -1
- package/internal/reset-style.js +2 -1
- package/internal/reset-style.js.map +1 -1
- package/internal/ring.d.ts +9 -10
- package/internal/ring.d.ts.map +1 -1
- package/internal/ring.js +1 -1
- package/internal/ring.js.map +1 -1
- package/internal/super-input.d.ts +32 -33
- package/internal/super-input.d.ts.map +1 -1
- package/internal/super-input.js +2 -1
- package/internal/super-input.js.map +1 -1
- package/internal/utils.d.ts +0 -1
- package/internal/utils.d.ts.map +1 -1
- package/internal/utils.js +1 -1
- package/internal/utils.js.map +1 -1
- package/layout.d.ts +0 -1
- package/layout.d.ts.map +1 -1
- package/layout.js.map +1 -1
- package/link.d.ts +0 -1
- package/link.d.ts.map +1 -1
- package/link.js.map +1 -1
- package/package.json +5 -5
- package/popover.d.ts +0 -1
- package/popover.d.ts.map +1 -1
- package/popover.js.map +1 -1
- package/progress.d.ts +0 -1
- package/progress.d.ts.map +1 -1
- package/progress.js.map +1 -1
- package/range.d.ts +0 -1
- package/range.d.ts.map +1 -1
- package/range.js.map +1 -1
- package/rotate.d.ts +0 -1
- package/rotate.d.ts.map +1 -1
- package/rotate.js.map +1 -1
- package/router.d.ts +0 -1
- package/router.d.ts.map +1 -1
- package/router.js.map +1 -1
- package/select.d.ts +0 -1
- package/select.d.ts.map +1 -1
- package/select.js.map +1 -1
- package/skeleton.d.ts +0 -1
- package/skeleton.d.ts.map +1 -1
- package/skeleton.js.map +1 -1
- package/split.d.ts +0 -1
- package/split.d.ts.map +1 -1
- package/split.js.map +1 -1
- package/src/internal/popover.ts +1 -1
- package/src/web-components/alert/component.ts +1 -1
- package/src/web-components/breath/component.ts +1 -1
- package/src/web-components/router/component.ts +12 -12
- package/src/web-components/skeleton/component.ts +2 -2
- package/src/web-components/time/component.ts +1 -1
- package/switch.d.ts +0 -1
- package/switch.d.ts.map +1 -1
- package/switch.js.map +1 -1
- package/tabs.d.ts +0 -1
- package/tabs.d.ts.map +1 -1
- package/tabs.js.map +1 -1
- package/text.d.ts +0 -1
- package/text.d.ts.map +1 -1
- package/text.js.map +1 -1
- package/time.d.ts +0 -1
- package/time.d.ts.map +1 -1
- package/time.js.map +1 -1
- package/tooltip.d.ts +0 -1
- package/tooltip.d.ts.map +1 -1
- package/tooltip.js.map +1 -1
- package/typewriter.d.ts +0 -1
- package/typewriter.d.ts.map +1 -1
- package/typewriter.js.map +1 -1
- package/web-components/alert/component.d.ts +20 -21
- package/web-components/alert/component.d.ts.map +1 -1
- package/web-components/alert/component.js +1 -1
- package/web-components/alert/component.js.map +1 -1
- package/web-components/alert/definition.d.ts +3 -4
- package/web-components/alert/definition.d.ts.map +1 -1
- package/web-components/alert/definition.js +1 -1
- package/web-components/alert/definition.js.map +1 -1
- package/web-components/avatar/component.d.ts +25 -26
- package/web-components/avatar/component.d.ts.map +1 -1
- package/web-components/avatar/component.js +1 -1
- package/web-components/avatar/component.js.map +1 -1
- package/web-components/avatar/definition.d.ts +3 -4
- package/web-components/avatar/definition.d.ts.map +1 -1
- package/web-components/avatar/definition.js +1 -1
- package/web-components/avatar/definition.js.map +1 -1
- package/web-components/badge/component.d.ts +7 -8
- package/web-components/badge/component.d.ts.map +1 -1
- package/web-components/badge/component.js +2 -1
- package/web-components/badge/component.js.map +1 -1
- package/web-components/badge/definition.d.ts +3 -4
- package/web-components/badge/definition.d.ts.map +1 -1
- package/web-components/badge/definition.js +1 -1
- package/web-components/badge/definition.js.map +1 -1
- package/web-components/breath/component.d.ts +28 -29
- package/web-components/breath/component.d.ts.map +1 -1
- package/web-components/breath/component.js +1 -1
- package/web-components/breath/component.js.map +1 -1
- package/web-components/breath/definition.d.ts +3 -4
- package/web-components/breath/definition.d.ts.map +1 -1
- package/web-components/breath/definition.js +1 -1
- package/web-components/breath/definition.js.map +1 -1
- package/web-components/button/component.d.ts +35 -36
- package/web-components/button/component.d.ts.map +1 -1
- package/web-components/button/component.js +1 -1
- package/web-components/button/component.js.map +1 -1
- package/web-components/button/definition.d.ts +3 -4
- package/web-components/button/definition.d.ts.map +1 -1
- package/web-components/button/definition.js +1 -1
- package/web-components/button/definition.js.map +1 -1
- package/web-components/card/component.d.ts +21 -22
- package/web-components/card/component.d.ts.map +1 -1
- package/web-components/card/component.js +1 -1
- package/web-components/card/component.js.map +1 -1
- package/web-components/card/definition.d.ts +3 -4
- package/web-components/card/definition.d.ts.map +1 -1
- package/web-components/card/definition.js +1 -1
- package/web-components/card/definition.js.map +1 -1
- package/web-components/carousel/component.d.ts +32 -33
- package/web-components/carousel/component.d.ts.map +1 -1
- package/web-components/carousel/component.js +2 -1
- package/web-components/carousel/component.js.map +1 -1
- package/web-components/carousel/definition.d.ts +3 -4
- package/web-components/carousel/definition.d.ts.map +1 -1
- package/web-components/carousel/definition.js +1 -1
- package/web-components/carousel/definition.js.map +1 -1
- package/web-components/chip/component.d.ts +21 -22
- package/web-components/chip/component.d.ts.map +1 -1
- package/web-components/chip/component.js +1 -1
- package/web-components/chip/component.js.map +1 -1
- package/web-components/chip/definition.d.ts +3 -4
- package/web-components/chip/definition.d.ts.map +1 -1
- package/web-components/chip/definition.js +1 -1
- package/web-components/chip/definition.js.map +1 -1
- package/web-components/details/component.d.ts +16 -17
- package/web-components/details/component.d.ts.map +1 -1
- package/web-components/details/component.js +1 -1
- package/web-components/details/component.js.map +1 -1
- package/web-components/details/definition.d.ts +3 -4
- package/web-components/details/definition.d.ts.map +1 -1
- package/web-components/details/definition.js +1 -1
- package/web-components/details/definition.js.map +1 -1
- package/web-components/dialog/component.d.ts +30 -31
- package/web-components/dialog/component.d.ts.map +1 -1
- package/web-components/dialog/component.js +1 -1
- package/web-components/dialog/component.js.map +1 -1
- package/web-components/dialog/definition.d.ts +3 -4
- package/web-components/dialog/definition.d.ts.map +1 -1
- package/web-components/dialog/definition.js +1 -1
- package/web-components/dialog/definition.js.map +1 -1
- package/web-components/divider/component.d.ts +9 -10
- package/web-components/divider/component.d.ts.map +1 -1
- package/web-components/divider/component.js +1 -1
- package/web-components/divider/component.js.map +1 -1
- package/web-components/divider/definition.d.ts +3 -4
- package/web-components/divider/definition.d.ts.map +1 -1
- package/web-components/divider/definition.js +1 -1
- package/web-components/divider/definition.js.map +1 -1
- package/web-components/dragbox/component.d.ts +31 -32
- package/web-components/dragbox/component.d.ts.map +1 -1
- package/web-components/dragbox/component.js +2 -1
- package/web-components/dragbox/component.js.map +1 -1
- package/web-components/dragbox/definition.d.ts +3 -4
- package/web-components/dragbox/definition.d.ts.map +1 -1
- package/web-components/dragbox/definition.js +1 -1
- package/web-components/dragbox/definition.js.map +1 -1
- package/web-components/flex/component.d.ts +26 -27
- package/web-components/flex/component.d.ts.map +1 -1
- package/web-components/flex/component.js +2 -1
- package/web-components/flex/component.js.map +1 -1
- package/web-components/flex/definition.d.ts +3 -4
- package/web-components/flex/definition.d.ts.map +1 -1
- package/web-components/flex/definition.js +1 -1
- package/web-components/flex/definition.js.map +1 -1
- package/web-components/form/component.d.ts +16 -17
- package/web-components/form/component.d.ts.map +1 -1
- package/web-components/form/component.js +2 -1
- package/web-components/form/component.js.map +1 -1
- package/web-components/form/definition.d.ts +3 -4
- package/web-components/form/definition.d.ts.map +1 -1
- package/web-components/form/definition.js +1 -1
- package/web-components/form/definition.js.map +1 -1
- package/web-components/grid/component.d.ts +30 -31
- package/web-components/grid/component.d.ts.map +1 -1
- package/web-components/grid/component.js +2 -1
- package/web-components/grid/component.js.map +1 -1
- package/web-components/grid/definition.d.ts +3 -4
- package/web-components/grid/definition.d.ts.map +1 -1
- package/web-components/grid/definition.js +1 -1
- package/web-components/grid/definition.js.map +1 -1
- package/web-components/heading/component.d.ts +23 -24
- package/web-components/heading/component.d.ts.map +1 -1
- package/web-components/heading/component.js +2 -1
- package/web-components/heading/component.js.map +1 -1
- package/web-components/heading/definition.d.ts +3 -4
- package/web-components/heading/definition.d.ts.map +1 -1
- package/web-components/heading/definition.js +1 -1
- package/web-components/heading/definition.js.map +1 -1
- package/web-components/input/component.d.ts +17 -18
- package/web-components/input/component.d.ts.map +1 -1
- package/web-components/input/component.js +1 -1
- package/web-components/input/component.js.map +1 -1
- package/web-components/input/definition.d.ts +3 -4
- package/web-components/input/definition.d.ts.map +1 -1
- package/web-components/input/definition.js +1 -1
- package/web-components/input/definition.js.map +1 -1
- package/web-components/layout/component.d.ts +18 -19
- package/web-components/layout/component.d.ts.map +1 -1
- package/web-components/layout/component.js +2 -1
- package/web-components/layout/component.js.map +1 -1
- package/web-components/layout/definition.d.ts +3 -4
- package/web-components/layout/definition.d.ts.map +1 -1
- package/web-components/layout/definition.js +1 -1
- package/web-components/layout/definition.js.map +1 -1
- package/web-components/link/component.d.ts +54 -55
- package/web-components/link/component.d.ts.map +1 -1
- package/web-components/link/component.js +2 -1
- package/web-components/link/component.js.map +1 -1
- package/web-components/link/definition.d.ts +3 -4
- package/web-components/link/definition.d.ts.map +1 -1
- package/web-components/link/definition.js +1 -1
- package/web-components/link/definition.js.map +1 -1
- package/web-components/popover/component.d.ts +28 -29
- package/web-components/popover/component.d.ts.map +1 -1
- package/web-components/popover/component.js +2 -1
- package/web-components/popover/component.js.map +1 -1
- package/web-components/popover/definition.d.ts +3 -4
- package/web-components/popover/definition.d.ts.map +1 -1
- package/web-components/popover/definition.js +1 -1
- package/web-components/popover/definition.js.map +1 -1
- package/web-components/progress/component.d.ts +8 -9
- package/web-components/progress/component.d.ts.map +1 -1
- package/web-components/progress/component.js +1 -1
- package/web-components/progress/component.js.map +1 -1
- package/web-components/progress/definition.d.ts +3 -4
- package/web-components/progress/definition.d.ts.map +1 -1
- package/web-components/progress/definition.js +1 -1
- package/web-components/progress/definition.js.map +1 -1
- package/web-components/range/component.d.ts +108 -109
- package/web-components/range/component.d.ts.map +1 -1
- package/web-components/range/component.js +1 -1
- package/web-components/range/component.js.map +1 -1
- package/web-components/range/definition.d.ts +3 -4
- package/web-components/range/definition.d.ts.map +1 -1
- package/web-components/range/definition.js +1 -1
- package/web-components/range/definition.js.map +1 -1
- package/web-components/rotate/component.d.ts +22 -23
- package/web-components/rotate/component.d.ts.map +1 -1
- package/web-components/rotate/component.js +1 -1
- package/web-components/rotate/component.js.map +1 -1
- package/web-components/rotate/definition.d.ts +3 -4
- package/web-components/rotate/definition.d.ts.map +1 -1
- package/web-components/rotate/definition.js +1 -1
- package/web-components/rotate/definition.js.map +1 -1
- package/web-components/router/component.d.ts +99 -100
- package/web-components/router/component.d.ts.map +1 -1
- package/web-components/router/component.js +2 -1
- package/web-components/router/component.js.map +1 -1
- package/web-components/router/definition.d.ts +3 -4
- package/web-components/router/definition.d.ts.map +1 -1
- package/web-components/router/definition.js +1 -1
- package/web-components/router/definition.js.map +1 -1
- package/web-components/select/component.d.ts +30 -31
- package/web-components/select/component.d.ts.map +1 -1
- package/web-components/select/component.js +2 -1
- package/web-components/select/component.js.map +1 -1
- package/web-components/select/definition.d.ts +3 -4
- package/web-components/select/definition.d.ts.map +1 -1
- package/web-components/select/definition.js +1 -1
- package/web-components/select/definition.js.map +1 -1
- package/web-components/skeleton/component.d.ts +11 -12
- package/web-components/skeleton/component.d.ts.map +1 -1
- package/web-components/skeleton/component.js +1 -1
- package/web-components/skeleton/component.js.map +1 -1
- package/web-components/skeleton/definition.d.ts +3 -4
- package/web-components/skeleton/definition.d.ts.map +1 -1
- package/web-components/skeleton/definition.js +1 -1
- package/web-components/skeleton/definition.js.map +1 -1
- package/web-components/split/component.d.ts +48 -49
- package/web-components/split/component.d.ts.map +1 -1
- package/web-components/split/component.js +1 -1
- package/web-components/split/component.js.map +1 -1
- package/web-components/split/definition.d.ts +3 -4
- package/web-components/split/definition.d.ts.map +1 -1
- package/web-components/split/definition.js +1 -1
- package/web-components/split/definition.js.map +1 -1
- package/web-components/switch/component.d.ts +20 -21
- package/web-components/switch/component.d.ts.map +1 -1
- package/web-components/switch/component.js +1 -1
- package/web-components/switch/component.js.map +1 -1
- package/web-components/switch/definition.d.ts +3 -4
- package/web-components/switch/definition.d.ts.map +1 -1
- package/web-components/switch/definition.js +1 -1
- package/web-components/switch/definition.js.map +1 -1
- package/web-components/tabs/component.d.ts +39 -40
- package/web-components/tabs/component.d.ts.map +1 -1
- package/web-components/tabs/component.js +1 -1
- package/web-components/tabs/component.js.map +1 -1
- package/web-components/tabs/definition.d.ts +3 -4
- package/web-components/tabs/definition.d.ts.map +1 -1
- package/web-components/tabs/definition.js +1 -1
- package/web-components/tabs/definition.js.map +1 -1
- package/web-components/text/component.d.ts +10 -11
- package/web-components/text/component.d.ts.map +1 -1
- package/web-components/text/component.js +1 -1
- package/web-components/text/component.js.map +1 -1
- package/web-components/text/definition.d.ts +3 -4
- package/web-components/text/definition.d.ts.map +1 -1
- package/web-components/text/definition.js +1 -1
- package/web-components/text/definition.js.map +1 -1
- package/web-components/time/component.d.ts +28 -29
- package/web-components/time/component.d.ts.map +1 -1
- package/web-components/time/component.js +1 -1
- package/web-components/time/component.js.map +1 -1
- package/web-components/time/definition.d.ts +3 -4
- package/web-components/time/definition.d.ts.map +1 -1
- package/web-components/time/definition.js +1 -1
- package/web-components/time/definition.js.map +1 -1
- package/web-components/tooltip/component.d.ts +19 -20
- package/web-components/tooltip/component.d.ts.map +1 -1
- package/web-components/tooltip/component.js +1 -1
- package/web-components/tooltip/component.js.map +1 -1
- package/web-components/tooltip/definition.d.ts +3 -4
- package/web-components/tooltip/definition.d.ts.map +1 -1
- package/web-components/tooltip/definition.js +1 -1
- package/web-components/tooltip/definition.js.map +1 -1
- package/web-components/typewriter/component.d.ts +43 -44
- package/web-components/typewriter/component.d.ts.map +1 -1
- package/web-components/typewriter/component.js +1 -1
- package/web-components/typewriter/component.js.map +1 -1
- package/web-components/typewriter/definition.d.ts +3 -4
- package/web-components/typewriter/definition.d.ts.map +1 -1
- package/web-components/typewriter/definition.js +1 -1
- package/web-components/typewriter/definition.js.map +1 -1
- package/web-types.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../src/web-components/rotate/component.ts"],"sourcesContent":
|
1
|
+
{"version":3,"file":"component.js","sources":["../../src/web-components/rotate/component.ts"],"sourcesContent":["import { godown, htmlSlot, queryPart, styles } from \"@godown/element\";\nimport { type TemplateResult, css, html } from \"lit\";\n\nimport { GlobalStyle, scopePrefix } from \"../../internal/global-style.js\";\n\nconst protoName = \"rotate\";\nconst cssScope = scopePrefix(protoName);\n\n/**\n * {@linkcode Rotate} Make child elements rotate.\n *\n * @category wrapper\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: block;\n width: fit-content;\n transition: all 0.5s ease-in-out;\n ${cssScope}--offset: .5em;\n }\n\n div {\n position: relative;\n transition: inherit;\n transition-property: transform;\n }\n\n i {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n box-sizing: content-box;\n padding: var(${cssScope}--offset);\n margin: calc(-1 * var(${cssScope}--offset));\n }\n\n [part=\"slot\"] {\n z-index: 2;\n }\n`)\nclass Rotate extends GlobalStyle {\n @queryPart(\"root\")\n protected _root: HTMLElement;\n\n protected render(): TemplateResult<1> {\n return html`\n <div part=\"root\">\n <div\n part=\"slot\"\n @mousemove=\"${this._handleRotate}\"\n >\n ${htmlSlot()}\n </div>\n <i @mouseleave=\"${this.reset}\"></i>\n </div>\n `;\n }\n\n reset(): void {\n this._root.style.removeProperty(\"transform\");\n this._root.style.removeProperty(\"transition\");\n }\n\n protected _handleRotate(e: MouseEvent): void {\n const { rotateX, rotateY } = this._computeOffset(e);\n this._root.style.setProperty(\"transform\", `rotateX(${rotateX}rad) rotateY(${rotateY}rad)`);\n this._root.style.setProperty(\"transition\", \"0s\");\n }\n\n /**\n * Compute offset.\n *\n * @returns rotateX, rotateY\n * @example\n * ```ts\n * const { rotateX, rotateY } = this._computeOffset(e);\n * `rotateX(${rotateX}rad) rotateY(${rotateY}rad)`;\n * ```\n */\n protected _computeOffset(e: MouseEvent): {\n rotateX: number;\n rotateY: number;\n } {\n const { left, top, width, height } = this._root.getBoundingClientRect();\n const { clientX, clientY } = e;\n const offsetX = clientX - left;\n const offsetY = clientY - top;\n\n const rotateX = -(offsetY - height / 2) / height / 2;\n const rotateY = (offsetX - width / 2) / width / 2;\n return { rotateX, rotateY };\n }\n}\n\nexport default Rotate;\nexport { Rotate };\n"],"names":["Rotate","e: MouseEvent","rotateX","rotateY","offsetX","clientX","left","offsetY","clientY","top","height","width"],"mappings":"yNAKA,MAAM,UAAY,SACZ,SAAW,YAAY,UAAU,CAOvC,IAAA,OAAA,MA6BMA,UAAe,WAAY,CAIrB,QAA4B,CACpC,MAAO,KAAI,CAAA,+CAIO,EAAE,KAAK,cAAc,GAEjC,EAAE,UAAU,CAAA,wBAEE,EAAE,KAAK,MAAM,aAEjC,CAAC,AACF,CAED,OAAc,CAEZ,AADA,KAAK,MAAM,MAAM,eAAe,YAAY,CAC5C,KAAK,MAAM,MAAM,eAAe,aAAa,AAC9C,CAES,cAAcC,EAAqB,CAC3C,GAAM,CAAE,UAAS,UAAS,CAAG,KAAK,eAAe,EAAE,CAEnD,AADA,KAAK,MAAM,MAAM,YAAY,YAAa,CAAC,QAAQ,EAAEC,EAAQ,aAAa,EAAEC,EAAQ,IAAI,CAAC,CAAC,CAC1F,KAAK,MAAM,MAAM,YAAY,aAAc,KAAK,AACjD,CAYS,eAAeF,EAGvB,CACA,GAAM,CAAE,OAAM,MAAK,QAAO,SAAQ,CAAG,KAAK,MAAM,uBAAuB,CACjE,CAAE,UAAS,UAAS,CAAG,EACvBG,EAAUC,EAAUC,EACpBC,EAAUC,EAAUC,EAEpBP,IAAYK,EAAUG,EAAS,GAAKA,EAAS,EAC7CP,GAAWC,EAAUO,EAAQ,GAAKA,EAAQ,EAChD,MAAO,CAAE,UAAS,SAAS,CAC5B,CACF,EAjFA,AA8BE,UAAA,CAAA,UAAU,OAAO,AAAA,EAAA,OAAA,UAAA,eAAA,CA9BnB,OAAA,UAAA,CAAA,OAAO,UAAU,CACjB,OAAO,GAAG,CAAC,4FAKR,EAAE,SAAS,yKAeE,EAAE,SAAS,6BACF,EAAE,SAAS,iCAMrC,CAAC,CAAC,AAAA,EAAA,OAAA,CAuDF,IAAA,SAAe"}
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import Rotate from "./component.js";
|
2
2
|
export default Rotate;
|
3
3
|
declare global {
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
interface HTMLElementTagNameMap {
|
5
|
+
"godown-rotate": Rotate;
|
6
|
+
}
|
7
7
|
}
|
8
|
-
//# sourceMappingURL=definition.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"
|
1
|
+
{"mappings":"AAAA,OAAO,YAAY,gBAAiB;AAIpC,eAAe;eAEA;WACH,sBAAsB;EAC9B,iBAAiB;CAClB;AACF","names":[],"sources":["../../../src/web-components/rotate/definition.ts"],"sourcesContent":["import Rotate from \"./component.js\";\n\nRotate.define();\n\nexport default Rotate;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-rotate\": Rotate;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import
|
1
|
+
import Rotate from"./component.js";Rotate.define();export{Rotate as default};
|
2
2
|
//# sourceMappingURL=definition.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"definition.js","sources":["../../src/web-components/rotate/definition.ts"],"sourcesContent":
|
1
|
+
{"version":3,"file":"definition.js","sources":["../../src/web-components/rotate/definition.ts"],"sourcesContent":["import Rotate from \"./component.js\";\n\nRotate.define();\n\nexport default Rotate;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-rotate\": Rotate;\n }\n}\n"],"names":[],"mappings":"mCAEA,OAAO,QAAQ"}
|
@@ -1,116 +1,115 @@
|
|
1
|
-
import {
|
1
|
+
import { Router as Mux } from "@godown/element";
|
2
2
|
import { type PropertyValueMap, type TemplateResult } from "lit";
|
3
3
|
import { GlobalStyle } from "../../internal/global-style.js";
|
4
4
|
interface RouteState {
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
pathname: string;
|
6
|
+
params: Record<string, string>;
|
7
|
+
path: string;
|
8
8
|
}
|
9
9
|
interface RouteResult extends RouteState {
|
10
|
-
|
10
|
+
component: unknown;
|
11
11
|
}
|
12
12
|
interface RouteItem {
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
[key: PropertyKey]: unknown;
|
14
|
+
path: string;
|
15
|
+
render?: (state?: RouteState) => unknown;
|
16
|
+
component?: unknown;
|
17
17
|
}
|
18
18
|
declare const routerTypes: {
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
readonly field: "field";
|
20
|
+
readonly slotted: "slotted";
|
21
|
+
readonly united: "united";
|
22
22
|
};
|
23
23
|
type RouterType = keyof typeof routerTypes;
|
24
24
|
/**
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
25
|
+
* {@linkcode Router} has basic routing control.
|
26
|
+
*
|
27
|
+
* To switch routes, use `router-link component`.
|
28
|
+
*
|
29
|
+
* It has two methods to collect routes.
|
30
|
+
*
|
31
|
+
* 1. From field `routes`, an array, each elements require "path".
|
32
|
+
* 2. From child elements, which have the slot attribute for matching routes.
|
33
|
+
*
|
34
|
+
* If only the method 1 is used, set `type` to `"field"`.
|
35
|
+
*
|
36
|
+
* If only the method 2 is used, set `type` to `"slotted"`.
|
37
|
+
*
|
38
|
+
* `type` defaults to `"united"`, which will try method 1, then method 2.
|
39
|
+
*
|
40
|
+
* If no routes are matched, the default value (no named slot) will be rendered.
|
41
|
+
*
|
42
|
+
* @slot - Display slot when there is no match.
|
43
|
+
* @slot * - Matching slot will be displayed.
|
44
|
+
* @category navigation
|
45
|
+
*/
|
46
46
|
declare class Router extends GlobalStyle {
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
47
|
+
static routerInstances: Set<Router>;
|
48
|
+
private __fieldRoute;
|
49
|
+
private __slottedRoute;
|
50
|
+
private __cacheRecord;
|
51
|
+
private __routes;
|
52
|
+
/**
|
53
|
+
* Render result.
|
54
|
+
*/
|
55
|
+
component: unknown | TemplateResult;
|
56
|
+
/**
|
57
|
+
* Dynamic parameters record.
|
58
|
+
*/
|
59
|
+
get params(): Record<string, string>;
|
60
|
+
/**
|
61
|
+
* Value of matched path in routes.
|
62
|
+
*/
|
63
|
+
path?: string;
|
64
|
+
/**
|
65
|
+
* Current pathname (equals to location.pathname).
|
66
|
+
*/
|
67
|
+
pathname: string;
|
68
|
+
/**
|
69
|
+
* Rendered content when there is no match.
|
70
|
+
*/
|
71
|
+
default: TemplateResult;
|
72
|
+
/**
|
73
|
+
* The type of routing sources.
|
74
|
+
*
|
75
|
+
* If field, it won't collect the slot attribute of the child elements.
|
76
|
+
*
|
77
|
+
* This property should not be changed after the rendering is complete.
|
78
|
+
*/
|
79
|
+
type: RouterType;
|
80
|
+
/**
|
81
|
+
* Cache accessed records.
|
82
|
+
*
|
83
|
+
* Emptied at each re-collection.
|
84
|
+
*/
|
85
|
+
cache: boolean;
|
86
|
+
set routes(value: RouteItem[]);
|
87
|
+
get routes(): RouteItem[];
|
88
|
+
clear(): void;
|
89
|
+
protected render(): unknown;
|
90
|
+
connectedCallback(): void;
|
91
|
+
disconnectedCallback(): void;
|
92
|
+
useRouter(): RouteResult;
|
93
|
+
protected updated(changedProperties: PropertyValueMap<this>): void;
|
94
|
+
/**
|
95
|
+
* Get component from {@linkcode routes} by query.
|
96
|
+
*/
|
97
|
+
fieldComponent(query?: string): unknown;
|
98
|
+
/**
|
99
|
+
* Get component from slotted elements by query.
|
100
|
+
*/
|
101
|
+
slottedComponent(query?: string): TemplateResult<1>;
|
102
|
+
/**
|
103
|
+
* Reset the route tree, clear cache, collect routes from child elements.
|
104
|
+
*/
|
105
|
+
collectSlottedRoutes(): void;
|
106
|
+
/**
|
107
|
+
* Reset the route tree, clear cache, collect routes from value.
|
108
|
+
*/
|
109
|
+
collectFieldRoutes(value: typeof this.routes): void;
|
110
|
+
static updateAll(): void;
|
111
|
+
search(pathname: string): Mux;
|
112
|
+
handlePopstate: () => void;
|
113
113
|
}
|
114
114
|
export default Router;
|
115
115
|
export { Router };
|
116
|
-
//# sourceMappingURL=component.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"
|
1
|
+
{"mappings":"AAAA,SAAS,UAAU,WAAwD,iBAAkB;AAC7F,cAAc,uBAAuB,sBAA2B,KAAM;AAGtE,SAAS,mBAAmB,gCAAiC;UAEnD,WAAW;CACnB;CACA,QAAQ;CACR;AACD;UAES,oBAAoB,WAAW;CACvC;AACD;UAES,UAAU;OACZ;CACN;CACA,UAAUA,QAAQ;CAClB;AACD;AAED,cAAM;UACJ,OAAO;UACP,SAAS;UACT,QAAQ;;KAGL,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;AA0B/B,cAMM,eAAe,YAAY;CAC/B,OAAO,iBAAiB,IAAI;CAE5B,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;;;;CAKR,AACA,qBAAqB;;;;CAKrB,IAAI,UAAU;;;;CAUd,AACA;;;;CAKA,AACA;;;;CAKA,AACA,SAAS;;;;;;;;CAST,AACA,MAAM;;;;;;CAON,AACA;CAEA,IACI,OAAO,OAKG;CAAd,IAAI,UAAU;CAId;CAIA,UAAU;CAsBV;CAcA;CAKA,aAAa;CASb,UAAU,QAAQC,mBAAmB;;;;CAcrC,eAAeC;;;;CAuBf,iBAAiBA,iBAAiB,eAAe;;;;CAoBjD;;;;CAWA,mBAAmBC,cAAc,KAAK;CAQtC,OAAO;CAMP,OAAOC,mBAAmB;CAI1B;AAGD;AAED,eAAe;AACf,SAAS","names":["state?: RouteState","changedProperties: PropertyValueMap<this>","query?: string","value: typeof this.routes","pathname: string"],"sources":["../../../src/web-components/router/component.ts"],"sourcesContent":["import { Router as Mux, godown, htmlSlot, omit, parseParams, styles } from \"@godown/element\";\nimport { type PropertyValueMap, type TemplateResult, css } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n\nimport { GlobalStyle } from \"../../internal/global-style.js\";\n\ninterface RouteState {\n pathname: string;\n params: Record<string, string>;\n path: string;\n}\n\ninterface RouteResult extends RouteState {\n component: unknown;\n}\n\ninterface RouteItem {\n [key: PropertyKey]: unknown;\n path: string;\n render?: (state?: RouteState) => unknown;\n component?: unknown;\n}\n\nconst routerTypes = {\n field: \"field\",\n slotted: \"slotted\",\n united: \"united\",\n} as const;\n\ntype RouterType = keyof typeof routerTypes;\n\nconst protoName = \"router\";\n\n/**\n * {@linkcode Router} has basic routing control.\n *\n * To switch routes, use `router-link component`.\n *\n * It has two methods to collect routes.\n *\n * 1. From field `routes`, an array, each elements require \"path\".\n * 2. From child elements, which have the slot attribute for matching routes.\n *\n * If only the method 1 is used, set `type` to `\"field\"`.\n *\n * If only the method 2 is used, set `type` to `\"slotted\"`.\n *\n * `type` defaults to `\"united\"`, which will try method 1, then method 2.\n *\n * If no routes are matched, the default value (no named slot) will be rendered.\n *\n * @slot - Display slot when there is no match.\n * @slot * - Matching slot will be displayed.\n * @category navigation\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: contents;\n }\n`)\nclass Router extends GlobalStyle {\n static routerInstances: Set<Router> = new Set<Router>();\n\n private __fieldRoute: Mux = new Mux();\n private __slottedRoute: Mux = new Mux();\n private __cacheRecord = new Map<string, RouteResult>();\n private __routes: RouteItem[];\n\n /**\n * Render result.\n */\n @state()\n component: unknown | TemplateResult = null;\n\n /**\n * Dynamic parameters record.\n */\n get params(): Record<string, string> {\n if (!this.path) {\n return {};\n }\n return parseParams(this.pathname, this.path);\n }\n\n /**\n * Value of matched path in routes.\n */\n @state()\n path?: string;\n\n /**\n * Current pathname (equals to location.pathname).\n */\n @property()\n pathname: string = location.pathname;\n\n /**\n * Rendered content when there is no match.\n */\n @state()\n default: TemplateResult = htmlSlot();\n\n /**\n * The type of routing sources.\n *\n * If field, it won't collect the slot attribute of the child elements.\n *\n * This property should not be changed after the rendering is complete.\n */\n @property()\n type: RouterType = routerTypes.united;\n\n /**\n * Cache accessed records.\n *\n * Emptied at each re-collection.\n */\n @property({ type: Boolean })\n cache = false;\n\n @state()\n set routes(value) {\n this.__routes = value;\n this.collectFieldRoutes(value);\n }\n\n get routes(): RouteItem[] {\n return this.__routes;\n }\n\n clear(): void {\n this.__cacheRecord.clear();\n }\n\n protected render(): unknown {\n let cached: RouteResult | undefined;\n if (this.cache && (cached = this.__cacheRecord.get(this.pathname))) {\n this.component = cached.component;\n this.path = cached.path;\n this.pathname = cached.pathname;\n }\n if (!cached) {\n switch (this.type) {\n case routerTypes.field:\n this.component = this.fieldComponent();\n break;\n case routerTypes.slotted:\n this.component = this.slottedComponent();\n break;\n default:\n this.component = this.fieldComponent() ?? this.slottedComponent();\n }\n }\n return this.component ?? this.default;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n Router.routerInstances.add(this);\n\n if (this.type !== \"field\") {\n this.observers.add(this, MutationObserver, this.collectSlottedRoutes, {\n attributes: true,\n attributeFilter: [\"slot\"],\n subtree: true,\n });\n this.collectSlottedRoutes();\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n Router.routerInstances.delete(this);\n }\n\n useRouter(): RouteResult {\n return {\n pathname: this.pathname,\n params: this.params,\n path: this.path,\n component: this.component,\n };\n }\n\n protected updated(changedProperties: PropertyValueMap<this>): void {\n const shouldDispatch = changedProperties.has(\"pathname\") || changedProperties.has(\"path\");\n if (shouldDispatch) {\n const ur = this.useRouter();\n if (!this.__cacheRecord.has(this.pathname) && this.path) {\n this.__cacheRecord.set(this.pathname, ur);\n }\n this.dispatchCustomEvent(\"change\", ur);\n }\n }\n\n /**\n * Get component from {@linkcode routes} by query.\n */\n fieldComponent(query?: string): unknown {\n query ||= this.__fieldRoute.search(this.pathname)?.pattern;\n this.path = query;\n\n if (!query) {\n return null;\n }\n\n const route = this.routes.find((r) => r.path === query);\n if (!route) {\n return null;\n }\n\n if (\"render\" in route) {\n return route.render?.(omit(this.useRouter(), \"component\")) || null;\n }\n\n return route.component;\n }\n\n /**\n * Get component from slotted elements by query.\n */\n slottedComponent(query?: string): TemplateResult<1> {\n const slottedPaths = this._slottedNames;\n query ||= this.__slottedRoute.search(this.pathname)?.pattern;\n this.path = query;\n\n if (!query) {\n return null;\n }\n\n this.path = slottedPaths.find((s) => s === query);\n if (!this.path) {\n return null;\n }\n\n return htmlSlot(this.path);\n }\n\n /**\n * Reset the route tree, clear cache, collect routes from child elements.\n */\n collectSlottedRoutes(): void {\n this.__slottedRoute = new Mux();\n this.clear();\n this._slottedNames.forEach((slotName) => {\n this.__slottedRoute.insert(slotName);\n });\n }\n\n /**\n * Reset the route tree, clear cache, collect routes from value.\n */\n collectFieldRoutes(value: typeof this.routes): void {\n this.__fieldRoute = new Mux();\n this.clear();\n value.forEach(({ path }) => {\n this.__fieldRoute.insert(path);\n });\n }\n\n static updateAll(): void {\n this.routerInstances.forEach((i) => {\n i.handlePopstate();\n });\n }\n\n search(pathname: string): Mux {\n return this.__fieldRoute.search(pathname) || this.__slottedRoute.search(pathname);\n }\n\n handlePopstate: () => void = this.events.add(window, \"popstate\", () => {\n this.pathname = location.pathname;\n });\n}\n\nexport default Router;\nexport { Router };\n"],"version":3,"file":"component.d.ts"}
|
@@ -1,2 +1,3 @@
|
|
1
|
-
import{
|
1
|
+
import{godown,styles,Router as Router$2,htmlSlot,parseParams,omit}from"@godown/element";import{css}from"lit";import{state,property}from"lit/decorators.js";import{GlobalStyle}from"../../internal/global-style.js";import _decorate from"@oxc-project/runtime/helpers/decorate";var _Router;const routerTypes={field:`field`,slotted:`slotted`,united:`united`},protoName=`router`;let Router=_Router=class e extends GlobalStyle{constructor(...e){super(...e),this.__fieldRoute=new Router$2,this.__slottedRoute=new Router$2,this.__cacheRecord=new Map,this.component=null,this.pathname=location.pathname,this.default=htmlSlot(),this.type=routerTypes.united,this.cache=!1,this.handlePopstate=this.events.add(window,`popstate`,()=>{this.pathname=location.pathname})}get params(){return this.path?parseParams(this.pathname,this.path):{}}set routes(e){this.__routes=e,this.collectFieldRoutes(e)}get routes(){return this.__routes}clear(){this.__cacheRecord.clear()}render(){let e;if(this.cache&&(e=this.__cacheRecord.get(this.pathname))&&(this.component=e.component,this.path=e.path,this.pathname=e.pathname),!e)switch(this.type){case routerTypes.field:this.component=this.fieldComponent();break;case routerTypes.slotted:this.component=this.slottedComponent();break;default:this.component=this.fieldComponent()??this.slottedComponent()}return this.component??this.default}connectedCallback(){super.connectedCallback(),_Router.routerInstances.add(this),this.type!==`field`&&(this.observers.add(this,MutationObserver,this.collectSlottedRoutes,{attributes:!0,attributeFilter:[`slot`],subtree:!0}),this.collectSlottedRoutes())}disconnectedCallback(){super.disconnectedCallback(),_Router.routerInstances.delete(this)}useRouter(){return{pathname:this.pathname,params:this.params,path:this.path,component:this.component}}updated(e){let h=e.has(`pathname`)||e.has(`path`);if(h){let e=this.useRouter();!this.__cacheRecord.has(this.pathname)&&this.path&&this.__cacheRecord.set(this.pathname,e),this.dispatchCustomEvent(`change`,e)}}fieldComponent(e){if(e||=this.__fieldRoute.search(this.pathname)?.pattern,this.path=e,!e)return null;let h=this.routes.find(h=>h.path===e);return h?`render`in h?h.render?.(omit(this.useRouter(),`component`))||null:h.component:null}slottedComponent(e){let h=this._slottedNames;return e||=this.__slottedRoute.search(this.pathname)?.pattern,this.path=e,!e||(this.path=h.find(h=>h===e),!this.path)?null:htmlSlot(this.path)}collectSlottedRoutes(){this.__slottedRoute=new Router$2,this.clear(),this._slottedNames.forEach(e=>{this.__slottedRoute.insert(e)})}collectFieldRoutes(e){this.__fieldRoute=new Router$2,this.clear(),e.forEach(({path:e})=>{this.__fieldRoute.insert(e)})}static updateAll(){this.routerInstances.forEach(e=>{e.handlePopstate()})}search(e){return this.__fieldRoute.search(e)||this.__slottedRoute.search(e)}};_decorate([state()],Router.prototype,`component`,void 0),_decorate([state()],Router.prototype,`path`,void 0),_decorate([property()],Router.prototype,`pathname`,void 0),_decorate([state()],Router.prototype,`default`,void 0),_decorate([property()],Router.prototype,`type`,void 0),_decorate([property({type:Boolean})],Router.prototype,`cache`,void 0),_decorate([state()],Router.prototype,`routes`,null),Router=_Router=_decorate([godown(protoName),styles(css`:host{display:contents}
|
2
|
+
`)],Router),Router.routerInstances=new Set;var Router$1=Router;export{Router,Router$1 as default};
|
2
3
|
//# sourceMappingURL=component.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../src/web-components/router/component.ts"],"sourcesContent":null,"names":["routerTypes","Router","Router_1","GlobalStyle","constructor","this","__fieldRouteTree","RouteTree","__slottedRouteTree","__cacheRecord","Map","component","pathname","location","default","htmlSlot","type","cache","handlePopstate","events","add","window","params","path","parseParams","routes","value","__routes","collectFieldRoutes","clear","render","cached","get","fieldComponent","slottedComponent","connectedCallback","super","routerInstances","observers","MutationObserver","collectSlottedRoutes","attributes","attributeFilter","subtree","disconnectedCallback","delete","useRouter","updated","changedProperties","has","ur","set","dispatchCustomEvent","query","search","pattern","route","find","r","omit","slottedPaths","_slottedNames","s","forEach","slotName","insert","updateAll","i","Set","__decorate","state","prototype","property","Boolean","godown","styles","css"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"component.js","sources":["../../src/web-components/router/component.ts"],"sourcesContent":["import { Router as Mux, godown, htmlSlot, omit, parseParams, styles } from \"@godown/element\";\nimport { type PropertyValueMap, type TemplateResult, css } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n\nimport { GlobalStyle } from \"../../internal/global-style.js\";\n\ninterface RouteState {\n pathname: string;\n params: Record<string, string>;\n path: string;\n}\n\ninterface RouteResult extends RouteState {\n component: unknown;\n}\n\ninterface RouteItem {\n [key: PropertyKey]: unknown;\n path: string;\n render?: (state?: RouteState) => unknown;\n component?: unknown;\n}\n\nconst routerTypes = {\n field: \"field\",\n slotted: \"slotted\",\n united: \"united\",\n} as const;\n\ntype RouterType = keyof typeof routerTypes;\n\nconst protoName = \"router\";\n\n/**\n * {@linkcode Router} has basic routing control.\n *\n * To switch routes, use `router-link component`.\n *\n * It has two methods to collect routes.\n *\n * 1. From field `routes`, an array, each elements require \"path\".\n * 2. From child elements, which have the slot attribute for matching routes.\n *\n * If only the method 1 is used, set `type` to `\"field\"`.\n *\n * If only the method 2 is used, set `type` to `\"slotted\"`.\n *\n * `type` defaults to `\"united\"`, which will try method 1, then method 2.\n *\n * If no routes are matched, the default value (no named slot) will be rendered.\n *\n * @slot - Display slot when there is no match.\n * @slot * - Matching slot will be displayed.\n * @category navigation\n */\n@godown(protoName)\n@styles(css`\n :host {\n display: contents;\n }\n`)\nclass Router extends GlobalStyle {\n static routerInstances: Set<Router> = new Set<Router>();\n\n private __fieldRoute: Mux = new Mux();\n private __slottedRoute: Mux = new Mux();\n private __cacheRecord = new Map<string, RouteResult>();\n private __routes: RouteItem[];\n\n /**\n * Render result.\n */\n @state()\n component: unknown | TemplateResult = null;\n\n /**\n * Dynamic parameters record.\n */\n get params(): Record<string, string> {\n if (!this.path) {\n return {};\n }\n return parseParams(this.pathname, this.path);\n }\n\n /**\n * Value of matched path in routes.\n */\n @state()\n path?: string;\n\n /**\n * Current pathname (equals to location.pathname).\n */\n @property()\n pathname: string = location.pathname;\n\n /**\n * Rendered content when there is no match.\n */\n @state()\n default: TemplateResult = htmlSlot();\n\n /**\n * The type of routing sources.\n *\n * If field, it won't collect the slot attribute of the child elements.\n *\n * This property should not be changed after the rendering is complete.\n */\n @property()\n type: RouterType = routerTypes.united;\n\n /**\n * Cache accessed records.\n *\n * Emptied at each re-collection.\n */\n @property({ type: Boolean })\n cache = false;\n\n @state()\n set routes(value) {\n this.__routes = value;\n this.collectFieldRoutes(value);\n }\n\n get routes(): RouteItem[] {\n return this.__routes;\n }\n\n clear(): void {\n this.__cacheRecord.clear();\n }\n\n protected render(): unknown {\n let cached: RouteResult | undefined;\n if (this.cache && (cached = this.__cacheRecord.get(this.pathname))) {\n this.component = cached.component;\n this.path = cached.path;\n this.pathname = cached.pathname;\n }\n if (!cached) {\n switch (this.type) {\n case routerTypes.field:\n this.component = this.fieldComponent();\n break;\n case routerTypes.slotted:\n this.component = this.slottedComponent();\n break;\n default:\n this.component = this.fieldComponent() ?? this.slottedComponent();\n }\n }\n return this.component ?? this.default;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n Router.routerInstances.add(this);\n\n if (this.type !== \"field\") {\n this.observers.add(this, MutationObserver, this.collectSlottedRoutes, {\n attributes: true,\n attributeFilter: [\"slot\"],\n subtree: true,\n });\n this.collectSlottedRoutes();\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n Router.routerInstances.delete(this);\n }\n\n useRouter(): RouteResult {\n return {\n pathname: this.pathname,\n params: this.params,\n path: this.path,\n component: this.component,\n };\n }\n\n protected updated(changedProperties: PropertyValueMap<this>): void {\n const shouldDispatch = changedProperties.has(\"pathname\") || changedProperties.has(\"path\");\n if (shouldDispatch) {\n const ur = this.useRouter();\n if (!this.__cacheRecord.has(this.pathname) && this.path) {\n this.__cacheRecord.set(this.pathname, ur);\n }\n this.dispatchCustomEvent(\"change\", ur);\n }\n }\n\n /**\n * Get component from {@linkcode routes} by query.\n */\n fieldComponent(query?: string): unknown {\n query ||= this.__fieldRoute.search(this.pathname)?.pattern;\n this.path = query;\n\n if (!query) {\n return null;\n }\n\n const route = this.routes.find((r) => r.path === query);\n if (!route) {\n return null;\n }\n\n if (\"render\" in route) {\n return route.render?.(omit(this.useRouter(), \"component\")) || null;\n }\n\n return route.component;\n }\n\n /**\n * Get component from slotted elements by query.\n */\n slottedComponent(query?: string): TemplateResult<1> {\n const slottedPaths = this._slottedNames;\n query ||= this.__slottedRoute.search(this.pathname)?.pattern;\n this.path = query;\n\n if (!query) {\n return null;\n }\n\n this.path = slottedPaths.find((s) => s === query);\n if (!this.path) {\n return null;\n }\n\n return htmlSlot(this.path);\n }\n\n /**\n * Reset the route tree, clear cache, collect routes from child elements.\n */\n collectSlottedRoutes(): void {\n this.__slottedRoute = new Mux();\n this.clear();\n this._slottedNames.forEach((slotName) => {\n this.__slottedRoute.insert(slotName);\n });\n }\n\n /**\n * Reset the route tree, clear cache, collect routes from value.\n */\n collectFieldRoutes(value: typeof this.routes): void {\n this.__fieldRoute = new Mux();\n this.clear();\n value.forEach(({ path }) => {\n this.__fieldRoute.insert(path);\n });\n }\n\n static updateAll(): void {\n this.routerInstances.forEach((i) => {\n i.handlePopstate();\n });\n }\n\n search(pathname: string): Mux {\n return this.__fieldRoute.search(pathname) || this.__slottedRoute.search(pathname);\n }\n\n handlePopstate: () => void = this.events.add(window, \"popstate\", () => {\n this.pathname = location.pathname;\n });\n}\n\nexport default Router;\nexport { Router };\n"],"names":["Router","Mux","value","cached: RouteResult | undefined","cached","changedProperties: PropertyValueMap<this>","shouldDispatch","ur","query?: string","query","route","r","slottedPaths","s","slotName","value: typeof this.routes","path","i","pathname: string","pathname"],"mappings":"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"}
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import Router from "./component.js";
|
2
2
|
export default Router;
|
3
3
|
declare global {
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
interface HTMLElementTagNameMap {
|
5
|
+
"godown-router": Router;
|
6
|
+
}
|
7
7
|
}
|
8
|
-
//# sourceMappingURL=definition.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"
|
1
|
+
{"mappings":"AAAA,OAAO,YAAY,gBAAiB;AAIpC,eAAe;eAEA;WACH,sBAAsB;EAC9B,iBAAiB;CAClB;AACF","names":[],"sources":["../../../src/web-components/router/definition.ts"],"sourcesContent":["import Router from \"./component.js\";\n\nRouter.define();\n\nexport default Router;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-router\": Router;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import
|
1
|
+
import Router from"./component.js";Router.define();export{Router as default};
|
2
2
|
//# sourceMappingURL=definition.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"definition.js","sources":["../../src/web-components/router/definition.ts"],"sourcesContent":
|
1
|
+
{"version":3,"file":"definition.js","sources":["../../src/web-components/router/definition.ts"],"sourcesContent":["import Router from \"./component.js\";\n\nRouter.define();\n\nexport default Router;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-router\": Router;\n }\n}\n"],"names":[],"mappings":"mCAEA,OAAO,QAAQ"}
|
@@ -1,38 +1,37 @@
|
|
1
1
|
import { type TemplateResult } from "lit";
|
2
2
|
import Input from "../input/component.js";
|
3
3
|
/**
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
4
|
+
* {@linkcode Select} is similar to `<select>`.
|
5
|
+
*
|
6
|
+
* @fires input - Fires when the input value changes.
|
7
|
+
* @fires change - Fires when the input value changes.
|
8
|
+
* @fires select - Fires when select an option.
|
9
|
+
* @slot - Options.
|
10
|
+
* @category input
|
11
|
+
*/
|
12
12
|
declare class Select extends Input {
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
13
|
+
text: string;
|
14
|
+
multiple: boolean;
|
15
|
+
noEdit: boolean;
|
16
|
+
values: {
|
17
|
+
value: string;
|
18
|
+
label?: string;
|
19
|
+
}[];
|
20
|
+
_popover: HTMLElement;
|
21
|
+
protected lastChecked: HTMLElement;
|
22
|
+
protected defaultText: string;
|
23
|
+
protected optionsVisible: boolean;
|
24
|
+
protected render(): TemplateResult<1>;
|
25
|
+
protected _renderSuffix(): TemplateResult<1>;
|
26
|
+
protected firstUpdated(): void;
|
27
|
+
protected _connectedInit(): void;
|
28
|
+
reset(): void;
|
29
|
+
select(value: string, label: string): 0 | 1;
|
30
|
+
checkValues(): void;
|
31
|
+
showOptions(): void;
|
32
|
+
hideOptions(): void;
|
33
|
+
focus(options?: FocusOptions): void;
|
34
|
+
blur(): void;
|
35
35
|
}
|
36
36
|
export default Select;
|
37
37
|
export { Select };
|
38
|
-
//# sourceMappingURL=component.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"
|
1
|
+
{"mappings":"AAEA,cAAc,sBAA0C,KAAM;AAG9D,OAAO,WAAW,uBAAwB;;;;;;;;;;AA4B1C,cAiCM,eAAe,MAAM;CACzB,AACA;CAEA,AACA;CAEA,AACA;CAEA,AACA,QAAQ;EACN;EACA;CACD;CAED,AACA,UAAU;CAEV,UAAU,aAAa;CACvB,UAAU;CACV,UAAU;CAEV,UAAU,UAAU,eAAe;CAuCnC,UAAU,iBAAiB,eAAe;CAM1C,UAAU;CAkBV,UAAU;CAMV;CAKA,OAAOA,eAAeC,gBAAgB,IAAI;CAiB1C;CAOA;CAeA;CAQA,MAAMC,UAAU;CAMhB;AAKD;AAED,eAAe;AACf,SAAS","names":["value: string","label: string","options?: FocusOptions"],"sources":["../../../src/web-components/select/component.ts"],"sourcesContent":["import { type HandlerEvent, attr, godown, htmlSlot, queryPart, styles } from \"@godown/element\";\nimport svgCaretDown from \"../../internal/icons/caret-down.js\";\nimport { type TemplateResult, css, html, nothing } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nimport Input from \"../input/component.js\";\nimport { hidePopover, showPopover } from \"../../internal/popover.js\";\nimport { memoize } from \"../../internal/utils.js\";\n\nconst supportsPositionArea = memoize(() => CSS.supports(\"position-area:top\"));\n\nfunction updateSelected(element: HTMLElement | null, operation: 0 | 1) {\n if (element) {\n const name = \"selected\";\n if (operation) {\n element.setAttribute(name, \"\");\n } else {\n element.removeAttribute(name);\n }\n }\n}\n\nconst protoName = \"select\";\n\n/**\n * {@linkcode Select} is similar to `<select>`.\n *\n * @fires input - Fires when the input value changes.\n * @fires change - Fires when the input value changes.\n * @fires select - Fires when select an option.\n * @slot - Options.\n * @category input\n */\n@godown(protoName)\n@styles(css`\n [part=\"root\"] {\n position: relative;\n anchor-name: --select;\n }\n\n label {\n display: contents;\n }\n\n [part=\"popover\"] {\n border: 0;\n width: 100%;\n background: none;\n position-anchor: --select;\n position-area: bottom center;\n position-try-fallbacks: flip-block;\n }\n\n [part=\"input\"] {\n text-overflow: ellipsis;\n }\n\n @supports not (position-area: top) {\n [part=\"popover\"] {\n left: 0;\n top: 100%;\n display: none;\n position: absolute;\n }\n }\n`)\nclass Select extends Input {\n @property()\n text: string;\n\n @property({ type: Boolean })\n multiple = false;\n\n @property({ type: Boolean })\n noEdit = false;\n\n @property({ type: Array })\n values: {\n value: string;\n label?: string;\n }[] = [];\n\n @queryPart(\"popover\")\n _popover: HTMLElement;\n\n protected lastChecked: HTMLElement;\n protected defaultText: string;\n protected optionsVisible = false;\n\n protected render(): TemplateResult<1> {\n const inputNoEdit = this.noEdit || this.disabled;\n return html`\n <label\n part=\"root\"\n ${attr(this.observedRecord)}\n >\n ${[\n this._renderPrefix(),\n this.noEdit\n ? html`\n <input style=\"position: absolute;inset: 0;opacity: 0;\" />\n `\n : \"\",\n html`\n <input\n part=\"input\"\n .value=\"${this.text}\"\n ?autofocus=\"${this.autofocus}\"\n ?disabled=\"${inputNoEdit}\"\n autocapitalize=\"${this.autocapitalize || nothing}\"\n autocomplete=\"${this.autocomplete || nothing}\"\n placeholder=\"${this.placeholder || nothing}\"\n @input=\"${inputNoEdit ? null : this._handleInput}\"\n @change=\"${inputNoEdit ? null : this._handleChange}\"\n />\n `,\n this._renderSuffix(),\n ]}\n <div\n part=\"popover\"\n popover=\"${supportsPositionArea() ? \"manual\" : nothing}\"\n >\n ${htmlSlot()}\n </div>\n </label>\n `;\n }\n\n protected _renderSuffix(): TemplateResult<1> {\n return html`\n <i part=\"suffix\">${htmlSlot(\"suffix\", svgCaretDown())}</i>\n `;\n }\n\n protected firstUpdated(): void {\n this.events.add(this._slot, \"click\", (e: HandlerEvent<HTMLOptionElement>) => {\n const { target } = e;\n if (target.tagName !== \"OPTION\") {\n return;\n }\n e.preventDefault();\n const { label, value } = target;\n const operation = this.select(value, label);\n if (!this.multiple) {\n updateSelected(this.lastChecked, 0);\n this.hideOptions();\n }\n updateSelected(target, operation);\n this.lastChecked = target;\n });\n }\n\n protected _connectedInit(): void {\n this.default = this.value ??= \"\";\n this.defaultText = this.text ??= \"\";\n this.events.add(this, \"focus\", this.showOptions);\n }\n\n reset(): void {\n this.value = this.default;\n this.text = this.defaultText;\n }\n\n select(value: string, label: string): 0 | 1 {\n label ||= value;\n let operation: 0 | 1 = 0;\n const i = this.values.findIndex((s) => s.value === value);\n if (i > -1) {\n this.values.splice(i, 1);\n } else {\n this.values.push({ value, label });\n operation = 1;\n }\n this.checkValues();\n this.value = this.values.map((s) => s.value).join(\",\");\n this.text = this.values.map((s) => s.label).join(\", \");\n this.dispatchCustomEvent(\"select\", this.value);\n return operation;\n }\n\n checkValues(): void {\n if (!this.multiple && this.values.length > 1) {\n this.values.splice(0, this.values.length - 1);\n this.requestUpdate();\n }\n }\n\n showOptions(): void {\n if (this.optionsVisible) {\n return;\n }\n showPopover(this._popover);\n const listener = (e) => {\n if (!this.contains(e.target)) {\n this.hideOptions();\n this.events.remove(document, \"click\", listener);\n }\n };\n this.events.add(document, \"click\", listener);\n this.optionsVisible = true;\n }\n\n hideOptions(): void {\n if (!this.optionsVisible) {\n return;\n }\n hidePopover(this._popover);\n this.optionsVisible = false;\n }\n\n focus(options?: FocusOptions): void {\n super.focus();\n this._input.focus(options);\n this.showOptions();\n }\n\n blur(): void {\n super.blur();\n this._input.blur();\n hidePopover(this._popover);\n }\n}\n\nexport default Select;\nexport { Select };\n"],"version":3,"file":"component.d.ts"}
|
@@ -1,2 +1,3 @@
|
|
1
|
-
import{
|
1
|
+
import{queryPart,godown,styles,attr,htmlSlot}from"@godown/element";import _default from"../../internal/icons/caret-down.js";import{css,nothing,html}from"lit";import{property}from"lit/decorators.js";import Input from"../input/component.js";import{showPopover,hidePopover}from"../../internal/popover.js";import{memoize}from"../../internal/utils.js";import _decorate from"@oxc-project/runtime/helpers/decorate";const supportsPositionArea=memoize(()=>CSS.supports(`position-area:top`));function updateSelected(e,g){if(e){let _=`selected`;g?e.setAttribute(_,``):e.removeAttribute(_)}}const protoName=`select`;let Select=class e extends Input{constructor(...e){super(...e),this.multiple=!1,this.noEdit=!1,this.values=[],this.optionsVisible=!1}render(){let e=this.noEdit||this.disabled;return html`<label part="root" ${attr(this.observedRecord)}> ${[this._renderPrefix(),this.noEdit?html`<input style="position: absolute;inset: 0;opacity: 0;"/> `:``,html`<input part="input" .value="${this.text}" ?autofocus="${this.autofocus}" ?disabled="${e}" autocapitalize="${this.autocapitalize||nothing}" autocomplete="${this.autocomplete||nothing}" placeholder="${this.placeholder||nothing}" @input="${e?null:this._handleInput}" @change="${e?null:this._handleChange}"/>`,this._renderSuffix()]} <div part="popover" popover="${supportsPositionArea()?`manual`:nothing}"> ${htmlSlot()} </div> </label>`}_renderSuffix(){return html`<i part="suffix">${htmlSlot(`suffix`,_default())}</i>`}firstUpdated(){this.events.add(this._slot,`click`,e=>{let{target:g}=e;if(g.tagName!==`OPTION`)return;e.preventDefault();let{label:_,value:v}=g,y=this.select(v,_);this.multiple||(updateSelected(this.lastChecked,0),this.hideOptions()),updateSelected(g,y),this.lastChecked=g})}_connectedInit(){this.default=this.value??=``,this.defaultText=this.text??=``,this.events.add(this,`focus`,this.showOptions)}reset(){this.value=this.default,this.text=this.defaultText}select(e,g){g||=e;let _=0,v=this.values.findIndex(g=>g.value===e);return v>-1?this.values.splice(v,1):(this.values.push({value:e,label:g}),_=1),this.checkValues(),this.value=this.values.map(e=>e.value).join(`,`),this.text=this.values.map(e=>e.label).join(`, `),this.dispatchCustomEvent(`select`,this.value),_}checkValues(){!this.multiple&&this.values.length>1&&(this.values.splice(0,this.values.length-1),this.requestUpdate())}showOptions(){if(this.optionsVisible)return;showPopover(this._popover);let e=g=>{this.contains(g.target)||(this.hideOptions(),this.events.remove(document,`click`,e))};this.events.add(document,`click`,e),this.optionsVisible=!0}hideOptions(){this.optionsVisible&&(hidePopover(this._popover),this.optionsVisible=!1)}focus(e){super.focus(),this._input.focus(e),this.showOptions()}blur(){super.blur(),this._input.blur(),hidePopover(this._popover)}};_decorate([property()],Select.prototype,`text`,void 0),_decorate([property({type:Boolean})],Select.prototype,`multiple`,void 0),_decorate([property({type:Boolean})],Select.prototype,`noEdit`,void 0),_decorate([property({type:Array})],Select.prototype,`values`,void 0),_decorate([queryPart(`popover`)],Select.prototype,`_popover`,void 0),Select=_decorate([godown(protoName),styles(css`[part=root]{position:relative;anchor-name:--select}label{display:contents}[part=popover]{border:0;width:100%;background:0 0;position-anchor:--select;position-area:bottom center;position-try-fallbacks:flip-block}[part=input]{text-overflow:ellipsis}@supports not (position-area:top){[part=popover]{left:0;top:100%;display:none;position:absolute}}
|
2
|
+
`)],Select);var Select$1=Select;export{Select,Select$1 as default};
|
2
3
|
//# sourceMappingURL=component.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../src/web-components/select/component.ts"],"sourcesContent":
|
1
|
+
{"version":3,"file":"component.js","sources":["../../src/web-components/select/component.ts"],"sourcesContent":["import { type HandlerEvent, attr, godown, htmlSlot, queryPart, styles } from \"@godown/element\";\nimport svgCaretDown from \"../../internal/icons/caret-down.js\";\nimport { type TemplateResult, css, html, nothing } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nimport Input from \"../input/component.js\";\nimport { hidePopover, showPopover } from \"../../internal/popover.js\";\nimport { memoize } from \"../../internal/utils.js\";\n\nconst supportsPositionArea = memoize(() => CSS.supports(\"position-area:top\"));\n\nfunction updateSelected(element: HTMLElement | null, operation: 0 | 1) {\n if (element) {\n const name = \"selected\";\n if (operation) {\n element.setAttribute(name, \"\");\n } else {\n element.removeAttribute(name);\n }\n }\n}\n\nconst protoName = \"select\";\n\n/**\n * {@linkcode Select} is similar to `<select>`.\n *\n * @fires input - Fires when the input value changes.\n * @fires change - Fires when the input value changes.\n * @fires select - Fires when select an option.\n * @slot - Options.\n * @category input\n */\n@godown(protoName)\n@styles(css`\n [part=\"root\"] {\n position: relative;\n anchor-name: --select;\n }\n\n label {\n display: contents;\n }\n\n [part=\"popover\"] {\n border: 0;\n width: 100%;\n background: none;\n position-anchor: --select;\n position-area: bottom center;\n position-try-fallbacks: flip-block;\n }\n\n [part=\"input\"] {\n text-overflow: ellipsis;\n }\n\n @supports not (position-area: top) {\n [part=\"popover\"] {\n left: 0;\n top: 100%;\n display: none;\n position: absolute;\n }\n }\n`)\nclass Select extends Input {\n @property()\n text: string;\n\n @property({ type: Boolean })\n multiple = false;\n\n @property({ type: Boolean })\n noEdit = false;\n\n @property({ type: Array })\n values: {\n value: string;\n label?: string;\n }[] = [];\n\n @queryPart(\"popover\")\n _popover: HTMLElement;\n\n protected lastChecked: HTMLElement;\n protected defaultText: string;\n protected optionsVisible = false;\n\n protected render(): TemplateResult<1> {\n const inputNoEdit = this.noEdit || this.disabled;\n return html`\n <label\n part=\"root\"\n ${attr(this.observedRecord)}\n >\n ${[\n this._renderPrefix(),\n this.noEdit\n ? html`\n <input style=\"position: absolute;inset: 0;opacity: 0;\" />\n `\n : \"\",\n html`\n <input\n part=\"input\"\n .value=\"${this.text}\"\n ?autofocus=\"${this.autofocus}\"\n ?disabled=\"${inputNoEdit}\"\n autocapitalize=\"${this.autocapitalize || nothing}\"\n autocomplete=\"${this.autocomplete || nothing}\"\n placeholder=\"${this.placeholder || nothing}\"\n @input=\"${inputNoEdit ? null : this._handleInput}\"\n @change=\"${inputNoEdit ? null : this._handleChange}\"\n />\n `,\n this._renderSuffix(),\n ]}\n <div\n part=\"popover\"\n popover=\"${supportsPositionArea() ? \"manual\" : nothing}\"\n >\n ${htmlSlot()}\n </div>\n </label>\n `;\n }\n\n protected _renderSuffix(): TemplateResult<1> {\n return html`\n <i part=\"suffix\">${htmlSlot(\"suffix\", svgCaretDown())}</i>\n `;\n }\n\n protected firstUpdated(): void {\n this.events.add(this._slot, \"click\", (e: HandlerEvent<HTMLOptionElement>) => {\n const { target } = e;\n if (target.tagName !== \"OPTION\") {\n return;\n }\n e.preventDefault();\n const { label, value } = target;\n const operation = this.select(value, label);\n if (!this.multiple) {\n updateSelected(this.lastChecked, 0);\n this.hideOptions();\n }\n updateSelected(target, operation);\n this.lastChecked = target;\n });\n }\n\n protected _connectedInit(): void {\n this.default = this.value ??= \"\";\n this.defaultText = this.text ??= \"\";\n this.events.add(this, \"focus\", this.showOptions);\n }\n\n reset(): void {\n this.value = this.default;\n this.text = this.defaultText;\n }\n\n select(value: string, label: string): 0 | 1 {\n label ||= value;\n let operation: 0 | 1 = 0;\n const i = this.values.findIndex((s) => s.value === value);\n if (i > -1) {\n this.values.splice(i, 1);\n } else {\n this.values.push({ value, label });\n operation = 1;\n }\n this.checkValues();\n this.value = this.values.map((s) => s.value).join(\",\");\n this.text = this.values.map((s) => s.label).join(\", \");\n this.dispatchCustomEvent(\"select\", this.value);\n return operation;\n }\n\n checkValues(): void {\n if (!this.multiple && this.values.length > 1) {\n this.values.splice(0, this.values.length - 1);\n this.requestUpdate();\n }\n }\n\n showOptions(): void {\n if (this.optionsVisible) {\n return;\n }\n showPopover(this._popover);\n const listener = (e) => {\n if (!this.contains(e.target)) {\n this.hideOptions();\n this.events.remove(document, \"click\", listener);\n }\n };\n this.events.add(document, \"click\", listener);\n this.optionsVisible = true;\n }\n\n hideOptions(): void {\n if (!this.optionsVisible) {\n return;\n }\n hidePopover(this._popover);\n this.optionsVisible = false;\n }\n\n focus(options?: FocusOptions): void {\n super.focus();\n this._input.focus(options);\n this.showOptions();\n }\n\n blur(): void {\n super.blur();\n this._input.blur();\n hidePopover(this._popover);\n }\n}\n\nexport default Select;\nexport { Select };\n"],"names":["element: HTMLElement | null","operation: 0 | 1","element","name","operation","Select","inputNoEdit","svgCaretDown","e: HandlerEvent<HTMLOptionElement>","target","value","label","value: string","label: string","i","s","listener","e","options?: FocusOptions","options"],"mappings":"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"}
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import Select from "./component.js";
|
2
2
|
export default Select;
|
3
3
|
declare global {
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
interface HTMLElementTagNameMap {
|
5
|
+
"godown-select": Select;
|
6
|
+
}
|
7
7
|
}
|
8
|
-
//# sourceMappingURL=definition.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"
|
1
|
+
{"mappings":"AAAA,OAAO,YAAY,gBAAiB;AAIpC,eAAe;eAEA;WACH,sBAAsB;EAC9B,iBAAiB;CAClB;AACF","names":[],"sources":["../../../src/web-components/select/definition.ts"],"sourcesContent":["import Select from \"./component.js\";\n\nSelect.define();\n\nexport default Select;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-select\": Select;\n }\n}\n"],"version":3,"file":"definition.d.ts"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import
|
1
|
+
import Select from"./component.js";Select.define();export{Select as default};
|
2
2
|
//# sourceMappingURL=definition.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"definition.js","sources":["../../src/web-components/select/definition.ts"],"sourcesContent":
|
1
|
+
{"version":3,"file":"definition.js","sources":["../../src/web-components/select/definition.ts"],"sourcesContent":["import Select from \"./component.js\";\n\nSelect.define();\n\nexport default Select;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"godown-select\": Select;\n }\n}\n"],"names":[],"mappings":"mCAEA,OAAO,QAAQ"}
|