@rei/cedar 11.0.1 → 13.0.0-alpha.kurt-test
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 +28 -35
- package/dist/cedar-compiled.css +944 -1104
- package/dist/cedar.js +8727 -9237
- package/dist/cedar.mjs +8519 -7534
- package/dist/lib/_virtual/plugin-vue_export-helper.js +9 -0
- package/dist/lib/assets/{cedar-compiled-010f67b6.css → cedar-compiled-f3a569d4.css} +2475 -2635
- package/dist/lib/node_modules/@rei/cdr-tokens/dist/js/{cdr-tokens.esm.mjs → cdr-tokens.esm.js} +0 -0
- package/dist/lib/src/components/accordion/CdrAccordion.js +211 -0
- package/dist/lib/src/components/accordion/CdrAccordionGroup.js +112 -0
- package/dist/lib/src/components/banner/CdrBanner.js +91 -0
- package/dist/lib/src/components/breadcrumb/CdrBreadcrumb.js +140 -0
- package/dist/lib/src/components/button/CdrButton.js +124 -0
- package/dist/lib/src/components/caption/CdrCaption.js +40 -0
- package/dist/lib/src/components/card/CdrCard.js +32 -0
- package/dist/lib/src/components/checkbox/CdrCheckbox.js +118 -0
- package/dist/lib/src/components/chip/CdrChip.js +59 -0
- package/dist/lib/src/components/chip/CdrChipGroup.js +109 -0
- package/dist/lib/src/components/container/CdrContainer.js +49 -0
- package/dist/lib/src/components/formError/CdrFormError.js +40 -0
- package/dist/lib/src/components/formGroup/CdrFormGroup.js +99 -0
- package/dist/lib/src/components/grid/CdrGrid.js +54 -0
- package/dist/lib/src/components/icon/CdrIcon.js +67 -0
- package/dist/lib/src/components/icon/comps/account-profile-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/account-profile.js +35 -0
- package/dist/lib/src/components/icon/comps/arrow-down.js +35 -0
- package/dist/lib/src/components/icon/comps/arrow-left.js +35 -0
- package/dist/lib/src/components/icon/comps/arrow-right.js +35 -0
- package/dist/lib/src/components/icon/comps/arrow-up.js +35 -0
- package/dist/lib/src/components/icon/comps/atv.js +35 -0
- package/dist/lib/src/components/icon/comps/bed-outline.js +35 -0
- package/dist/lib/src/components/icon/comps/bike-shop.js +35 -0
- package/dist/lib/src/components/icon/comps/binoculars.js +35 -0
- package/dist/lib/src/components/icon/comps/birding.js +35 -0
- package/dist/lib/src/components/icon/comps/boat.js +35 -0
- package/dist/lib/src/components/icon/comps/boating.js +35 -0
- package/dist/lib/src/components/icon/comps/bookmark-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/bookmark-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/brand-abstract.js +35 -0
- package/dist/lib/src/components/icon/comps/brand-code-sandbox.js +35 -0
- package/dist/lib/src/components/icon/comps/brand-github.js +35 -0
- package/dist/lib/src/components/icon/comps/brand-linkedin.js +35 -0
- package/dist/lib/src/components/icon/comps/brand-rei-ice-axes.js +35 -0
- package/dist/lib/src/components/icon/comps/brand-sketch.js +35 -0
- package/dist/lib/src/components/icon/comps/buddies.js +35 -0
- package/dist/lib/src/components/icon/comps/bus.js +35 -0
- package/dist/lib/src/components/icon/comps/calendar.js +35 -0
- package/dist/lib/src/components/icon/comps/camera.js +35 -0
- package/dist/lib/src/components/icon/comps/canoe.js +35 -0
- package/dist/lib/src/components/icon/comps/car.js +35 -0
- package/dist/lib/src/components/icon/comps/caret-down.js +35 -0
- package/dist/lib/src/components/icon/comps/caret-left.js +35 -0
- package/dist/lib/src/components/icon/comps/caret-right.js +35 -0
- package/dist/lib/src/components/icon/comps/caret-up.js +35 -0
- package/dist/lib/src/components/icon/comps/cart-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/cart.js +35 -0
- package/dist/lib/src/components/icon/comps/chain-link.js +35 -0
- package/dist/lib/src/components/icon/comps/chat.js +35 -0
- package/dist/lib/src/components/icon/comps/check-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/check-lg.js +35 -0
- package/dist/lib/src/components/icon/comps/check-sm.js +35 -0
- package/dist/lib/src/components/icon/comps/check-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/climb.js +35 -0
- package/dist/lib/src/components/icon/comps/clipboard.js +35 -0
- package/dist/lib/src/components/icon/comps/clock.js +35 -0
- package/dist/lib/src/components/icon/comps/code-html.js +35 -0
- package/dist/lib/src/components/icon/comps/code-js.js +35 -0
- package/dist/lib/src/components/icon/comps/compass.js +35 -0
- package/dist/lib/src/components/icon/comps/copy.js +35 -0
- package/dist/lib/src/components/icon/comps/coupon-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/coupon-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/credit-card.js +35 -0
- package/dist/lib/src/components/icon/comps/curbside-pickup.js +35 -0
- package/dist/lib/src/components/icon/comps/day.js +35 -0
- package/dist/lib/src/components/icon/comps/diving.js +35 -0
- package/dist/lib/src/components/icon/comps/dog.js +35 -0
- package/dist/lib/src/components/icon/comps/download.js +35 -0
- package/dist/lib/src/components/icon/comps/edit.js +35 -0
- package/dist/lib/src/components/icon/comps/elevation.js +35 -0
- package/dist/lib/src/components/icon/comps/error-fill.js +37 -0
- package/dist/lib/src/components/icon/comps/error-stroke.js +42 -0
- package/dist/lib/src/components/icon/comps/expand.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-backpacking.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-camping.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-climbing.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-clothing.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-cycling.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-family.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-fitness.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-hiking.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-outdoor-basics.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-paddling.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-rentals.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-snowsports.js +35 -0
- package/dist/lib/src/components/icon/comps/experiences-travel.js +35 -0
- package/dist/lib/src/components/icon/comps/external-link.js +35 -0
- package/dist/lib/src/components/icon/comps/eye-hide.js +35 -0
- package/dist/lib/src/components/icon/comps/eye-show.js +35 -0
- package/dist/lib/src/components/icon/comps/facebook.js +35 -0
- package/dist/lib/src/components/icon/comps/filter-alt.js +35 -0
- package/dist/lib/src/components/icon/comps/filter.js +35 -0
- package/dist/lib/src/components/icon/comps/find-location.js +35 -0
- package/dist/lib/src/components/icon/comps/fire.js +35 -0
- package/dist/lib/src/components/icon/comps/fishing.js +35 -0
- package/dist/lib/src/components/icon/comps/free-product.js +35 -0
- package/dist/lib/src/components/icon/comps/grid-view.js +35 -0
- package/dist/lib/src/components/icon/comps/heart-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/heart-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/hike.js +35 -0
- package/dist/lib/src/components/icon/comps/history.js +35 -0
- package/dist/lib/src/components/icon/comps/home.js +35 -0
- package/dist/lib/src/components/icon/comps/horse.js +35 -0
- package/dist/lib/src/components/icon/comps/horseshoe.js +35 -0
- package/dist/lib/src/components/icon/comps/image.js +35 -0
- package/dist/lib/src/components/icon/comps/information-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/information-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/instagram.js +35 -0
- package/dist/lib/src/components/icon/comps/kayak.js +35 -0
- package/dist/lib/src/components/icon/comps/list-ragged.js +35 -0
- package/dist/lib/src/components/icon/comps/list-view.js +35 -0
- package/dist/lib/src/components/icon/comps/location-pin-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/location-pin-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/lock-locked-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/lock-locked-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/lock-unlocked-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/mail.js +35 -0
- package/dist/lib/src/components/icon/comps/map.js +35 -0
- package/dist/lib/src/components/icon/comps/member-card.js +35 -0
- package/dist/lib/src/components/icon/comps/microphone.js +35 -0
- package/dist/lib/src/components/icon/comps/minus-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/minus-lg.js +35 -0
- package/dist/lib/src/components/icon/comps/minus-sm.js +35 -0
- package/dist/lib/src/components/icon/comps/minus-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/more-functions.js +35 -0
- package/dist/lib/src/components/icon/comps/my-location.js +35 -0
- package/dist/lib/src/components/icon/comps/navigation-menu.js +35 -0
- package/dist/lib/src/components/icon/comps/night.js +35 -0
- package/dist/lib/src/components/icon/comps/paddle.js +35 -0
- package/dist/lib/src/components/icon/comps/pause-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/pause-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/pause.js +35 -0
- package/dist/lib/src/components/icon/comps/photography.js +35 -0
- package/dist/lib/src/components/icon/comps/picnic.js +35 -0
- package/dist/lib/src/components/icon/comps/pinterest.js +35 -0
- package/dist/lib/src/components/icon/comps/plane.js +35 -0
- package/dist/lib/src/components/icon/comps/play-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/play-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/play.js +35 -0
- package/dist/lib/src/components/icon/comps/playground.js +35 -0
- package/dist/lib/src/components/icon/comps/plugin.js +35 -0
- package/dist/lib/src/components/icon/comps/plus-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/plus-lg.js +35 -0
- package/dist/lib/src/components/icon/comps/plus-sm.js +35 -0
- package/dist/lib/src/components/icon/comps/plus-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/print.js +35 -0
- package/dist/lib/src/components/icon/comps/protection-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/protection-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/question-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/question-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/refresh.js +35 -0
- package/dist/lib/src/components/icon/comps/reload.js +35 -0
- package/dist/lib/src/components/icon/comps/returns.js +35 -0
- package/dist/lib/src/components/icon/comps/run.js +35 -0
- package/dist/lib/src/components/icon/comps/scan-barcode.js +35 -0
- package/dist/lib/src/components/icon/comps/search.js +35 -0
- package/dist/lib/src/components/icon/comps/service-shop.js +35 -0
- package/dist/lib/src/components/icon/comps/shipping.js +35 -0
- package/dist/lib/src/components/icon/comps/shopping-bag-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/shopping-bag.js +35 -0
- package/dist/lib/src/components/icon/comps/shrink.js +35 -0
- package/dist/lib/src/components/icon/comps/size-chart.js +35 -0
- package/dist/lib/src/components/icon/comps/ski-boot.js +35 -0
- package/dist/lib/src/components/icon/comps/ski.js +35 -0
- package/dist/lib/src/components/icon/comps/snow-shop.js +35 -0
- package/dist/lib/src/components/icon/comps/snow.js +35 -0
- package/dist/lib/src/components/icon/comps/sort.js +35 -0
- package/dist/lib/src/components/icon/comps/star-100.js +35 -0
- package/dist/lib/src/components/icon/comps/star-25.js +35 -0
- package/dist/lib/src/components/icon/comps/star-50.js +35 -0
- package/dist/lib/src/components/icon/comps/star-75.js +35 -0
- package/dist/lib/src/components/icon/comps/star-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/storefront.js +35 -0
- package/dist/lib/src/components/icon/comps/swim.js +35 -0
- package/dist/lib/src/components/icon/comps/telephone.js +35 -0
- package/dist/lib/src/components/icon/comps/tent.js +35 -0
- package/dist/lib/src/components/icon/comps/trash.js +35 -0
- package/dist/lib/src/components/icon/comps/twitter.js +35 -0
- package/dist/lib/src/components/icon/comps/upload.js +35 -0
- package/dist/lib/src/components/icon/comps/verified-purchaser.js +35 -0
- package/dist/lib/src/components/icon/comps/virtual-outfitting.js +35 -0
- package/dist/lib/src/components/icon/comps/warning-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/warning-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/water.js +35 -0
- package/dist/lib/src/components/icon/comps/wilderness.js +35 -0
- package/dist/lib/src/components/icon/comps/x-fill.js +35 -0
- package/dist/lib/src/components/icon/comps/x-lg.js +35 -0
- package/dist/lib/src/components/icon/comps/x-sm.js +35 -0
- package/dist/lib/src/components/icon/comps/x-stroke.js +35 -0
- package/dist/lib/src/components/icon/comps/youtube.js +35 -0
- package/dist/lib/src/components/icon/comps/zoom-in.js +35 -0
- package/dist/lib/src/components/icon/comps/zoom-out.js +35 -0
- package/dist/lib/src/components/image/CdrImg.js +148 -0
- package/dist/lib/src/components/input/CdrInput.js +305 -0
- package/dist/lib/src/components/labelStandalone/CdrLabelStandalone.js +116 -0
- package/dist/lib/src/components/labelWrapper/CdrLabelWrapper.js +60 -0
- package/dist/lib/src/components/link/CdrLink.js +71 -0
- package/dist/lib/src/components/list/CdrList.js +46 -0
- package/dist/lib/src/components/modal/CdrModal.js +383 -0
- package/dist/lib/src/components/modal/{onTransitionEnd.mjs → onTransitionEnd.js} +15 -13
- package/dist/lib/src/components/pagination/CdrPagination.js +315 -0
- package/dist/lib/src/components/popover/CdrPopover.js +183 -0
- package/dist/lib/src/components/popup/CdrPopup.js +188 -0
- package/dist/lib/src/components/popup/calculatePlacement.js +88 -0
- package/dist/lib/src/components/quote/CdrQuote.js +64 -0
- package/dist/lib/src/components/radio/CdrRadio.js +110 -0
- package/dist/lib/src/components/rating/CdrRating.js +184 -0
- package/dist/lib/src/components/select/CdrSelect.js +277 -0
- package/dist/lib/src/components/table/CdrTable.js +84 -0
- package/dist/lib/src/components/tabs/CdrTabPanel.js +117 -0
- package/dist/lib/src/components/tabs/CdrTabs.js +361 -0
- package/dist/lib/src/components/text/CdrText.js +31 -0
- package/dist/lib/src/components/toast/CdrToast.js +160 -0
- package/dist/lib/src/components/tooltip/CdrTooltip.js +129 -0
- package/dist/lib/src/{index.mjs → index.js} +209 -209
- package/dist/lib/src/mixins/breakpoints.js +21 -0
- package/dist/lib/src/props/background.js +11 -0
- package/dist/lib/src/props/size.js +11 -0
- package/dist/lib/src/utils/buildClass.js +90 -0
- package/dist/lib/src/utils/mapClasses.js +22 -0
- package/dist/lib/src/utils/{propValidator.mjs → propValidator.js} +6 -5
- package/dist/style/cedar-full.css +0 -1
- package/package.json +53 -38
- package/dist/lib/src/components/accordion/CdrAccordion.mjs +0 -198
- package/dist/lib/src/components/accordion/CdrAccordionGroup.mjs +0 -119
- package/dist/lib/src/components/accordion/styles/CdrAccordion.mjs +0 -3
- package/dist/lib/src/components/accordion/styles/CdrAccordionGroup.mjs +0 -3
- package/dist/lib/src/components/banner/CdrBanner.mjs +0 -61
- package/dist/lib/src/components/banner/styles/CdrBanner.mjs +0 -3
- package/dist/lib/src/components/breadcrumb/CdrBreadcrumb.mjs +0 -158
- package/dist/lib/src/components/breadcrumb/styles/CdrBreadcrumb.mjs +0 -3
- package/dist/lib/src/components/button/CdrButton.mjs +0 -118
- package/dist/lib/src/components/button/styles/CdrButton.mjs +0 -3
- package/dist/lib/src/components/caption/CdrCaption.mjs +0 -38
- package/dist/lib/src/components/caption/styles/CdrCaption.mjs +0 -3
- package/dist/lib/src/components/card/CdrCard.mjs +0 -35
- package/dist/lib/src/components/card/styles/CdrCard.mjs +0 -3
- package/dist/lib/src/components/checkbox/CdrCheckbox.mjs +0 -165
- package/dist/lib/src/components/checkbox/styles/CdrCheckbox.mjs +0 -3
- package/dist/lib/src/components/chip/CdrChip.mjs +0 -30
- package/dist/lib/src/components/chip/CdrChipGroup.mjs +0 -105
- package/dist/lib/src/components/chip/styles/CdrChip.mjs +0 -3
- package/dist/lib/src/components/chip/styles/CdrChipGroup.mjs +0 -3
- package/dist/lib/src/components/container/CdrContainer.mjs +0 -49
- package/dist/lib/src/components/container/styles/CdrContainer.mjs +0 -3
- package/dist/lib/src/components/formError/CdrFormError.mjs +0 -39
- package/dist/lib/src/components/formError/styles/CdrFormError.mjs +0 -3
- package/dist/lib/src/components/formGroup/CdrFormGroup.mjs +0 -95
- package/dist/lib/src/components/formGroup/styles/CdrFormGroup.mjs +0 -3
- package/dist/lib/src/components/grid/CdrGrid.mjs +0 -55
- package/dist/lib/src/components/grid/styles/CdrGrid.mjs +0 -3
- package/dist/lib/src/components/icon/CdrIcon.mjs +0 -76
- package/dist/lib/src/components/icon/comps/account-profile-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/account-profile.mjs +0 -27
- package/dist/lib/src/components/icon/comps/arrow-down.mjs +0 -27
- package/dist/lib/src/components/icon/comps/arrow-left.mjs +0 -27
- package/dist/lib/src/components/icon/comps/arrow-right.mjs +0 -27
- package/dist/lib/src/components/icon/comps/arrow-up.mjs +0 -27
- package/dist/lib/src/components/icon/comps/atv.mjs +0 -27
- package/dist/lib/src/components/icon/comps/bed-outline.mjs +0 -27
- package/dist/lib/src/components/icon/comps/bike-shop.mjs +0 -27
- package/dist/lib/src/components/icon/comps/binoculars.mjs +0 -27
- package/dist/lib/src/components/icon/comps/birding.mjs +0 -27
- package/dist/lib/src/components/icon/comps/boat.mjs +0 -27
- package/dist/lib/src/components/icon/comps/boating.mjs +0 -27
- package/dist/lib/src/components/icon/comps/bookmark-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/bookmark-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/brand-abstract.mjs +0 -27
- package/dist/lib/src/components/icon/comps/brand-code-sandbox.mjs +0 -27
- package/dist/lib/src/components/icon/comps/brand-github.mjs +0 -27
- package/dist/lib/src/components/icon/comps/brand-linkedin.mjs +0 -27
- package/dist/lib/src/components/icon/comps/brand-rei-ice-axes.mjs +0 -27
- package/dist/lib/src/components/icon/comps/brand-sketch.mjs +0 -27
- package/dist/lib/src/components/icon/comps/buddies.mjs +0 -27
- package/dist/lib/src/components/icon/comps/bus.mjs +0 -27
- package/dist/lib/src/components/icon/comps/calendar.mjs +0 -27
- package/dist/lib/src/components/icon/comps/camera.mjs +0 -27
- package/dist/lib/src/components/icon/comps/canoe.mjs +0 -27
- package/dist/lib/src/components/icon/comps/car.mjs +0 -27
- package/dist/lib/src/components/icon/comps/caret-down.mjs +0 -27
- package/dist/lib/src/components/icon/comps/caret-left.mjs +0 -27
- package/dist/lib/src/components/icon/comps/caret-right.mjs +0 -27
- package/dist/lib/src/components/icon/comps/caret-up.mjs +0 -27
- package/dist/lib/src/components/icon/comps/cart-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/cart.mjs +0 -27
- package/dist/lib/src/components/icon/comps/chain-link.mjs +0 -27
- package/dist/lib/src/components/icon/comps/chat.mjs +0 -27
- package/dist/lib/src/components/icon/comps/check-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/check-lg.mjs +0 -27
- package/dist/lib/src/components/icon/comps/check-sm.mjs +0 -27
- package/dist/lib/src/components/icon/comps/check-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/climb.mjs +0 -27
- package/dist/lib/src/components/icon/comps/clipboard.mjs +0 -27
- package/dist/lib/src/components/icon/comps/clock.mjs +0 -27
- package/dist/lib/src/components/icon/comps/code-html.mjs +0 -27
- package/dist/lib/src/components/icon/comps/code-js.mjs +0 -27
- package/dist/lib/src/components/icon/comps/compass.mjs +0 -27
- package/dist/lib/src/components/icon/comps/copy.mjs +0 -27
- package/dist/lib/src/components/icon/comps/coupon-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/coupon-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/credit-card.mjs +0 -27
- package/dist/lib/src/components/icon/comps/curbside-pickup.mjs +0 -27
- package/dist/lib/src/components/icon/comps/day.mjs +0 -27
- package/dist/lib/src/components/icon/comps/diving.mjs +0 -27
- package/dist/lib/src/components/icon/comps/dog.mjs +0 -27
- package/dist/lib/src/components/icon/comps/download.mjs +0 -27
- package/dist/lib/src/components/icon/comps/edit.mjs +0 -27
- package/dist/lib/src/components/icon/comps/elevation.mjs +0 -27
- package/dist/lib/src/components/icon/comps/error-fill.mjs +0 -29
- package/dist/lib/src/components/icon/comps/error-stroke.mjs +0 -33
- package/dist/lib/src/components/icon/comps/expand.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-backpacking.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-camping.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-climbing.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-clothing.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-cycling.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-family.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-fitness.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-hiking.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-outdoor-basics.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-paddling.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-rentals.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-snowsports.mjs +0 -27
- package/dist/lib/src/components/icon/comps/experiences-travel.mjs +0 -27
- package/dist/lib/src/components/icon/comps/external-link.mjs +0 -27
- package/dist/lib/src/components/icon/comps/eye-hide.mjs +0 -27
- package/dist/lib/src/components/icon/comps/eye-show.mjs +0 -27
- package/dist/lib/src/components/icon/comps/facebook.mjs +0 -27
- package/dist/lib/src/components/icon/comps/filter-alt.mjs +0 -27
- package/dist/lib/src/components/icon/comps/filter.mjs +0 -27
- package/dist/lib/src/components/icon/comps/find-location.mjs +0 -27
- package/dist/lib/src/components/icon/comps/fire.mjs +0 -27
- package/dist/lib/src/components/icon/comps/fishing.mjs +0 -27
- package/dist/lib/src/components/icon/comps/free-product.mjs +0 -27
- package/dist/lib/src/components/icon/comps/grid-view.mjs +0 -27
- package/dist/lib/src/components/icon/comps/heart-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/heart-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/hike.mjs +0 -27
- package/dist/lib/src/components/icon/comps/history.mjs +0 -27
- package/dist/lib/src/components/icon/comps/home.mjs +0 -27
- package/dist/lib/src/components/icon/comps/horse.mjs +0 -27
- package/dist/lib/src/components/icon/comps/horseshoe.mjs +0 -27
- package/dist/lib/src/components/icon/comps/image.mjs +0 -27
- package/dist/lib/src/components/icon/comps/information-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/information-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/instagram.mjs +0 -27
- package/dist/lib/src/components/icon/comps/kayak.mjs +0 -27
- package/dist/lib/src/components/icon/comps/list-ragged.mjs +0 -27
- package/dist/lib/src/components/icon/comps/list-view.mjs +0 -27
- package/dist/lib/src/components/icon/comps/location-pin-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/location-pin-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/lock-locked-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/lock-locked-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/lock-unlocked-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/mail.mjs +0 -27
- package/dist/lib/src/components/icon/comps/map.mjs +0 -27
- package/dist/lib/src/components/icon/comps/member-card.mjs +0 -27
- package/dist/lib/src/components/icon/comps/microphone.mjs +0 -27
- package/dist/lib/src/components/icon/comps/minus-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/minus-lg.mjs +0 -27
- package/dist/lib/src/components/icon/comps/minus-sm.mjs +0 -27
- package/dist/lib/src/components/icon/comps/minus-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/more-functions.mjs +0 -27
- package/dist/lib/src/components/icon/comps/my-location.mjs +0 -27
- package/dist/lib/src/components/icon/comps/navigation-menu.mjs +0 -27
- package/dist/lib/src/components/icon/comps/night.mjs +0 -27
- package/dist/lib/src/components/icon/comps/paddle.mjs +0 -27
- package/dist/lib/src/components/icon/comps/pause-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/pause-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/pause.mjs +0 -27
- package/dist/lib/src/components/icon/comps/photography.mjs +0 -27
- package/dist/lib/src/components/icon/comps/picnic.mjs +0 -27
- package/dist/lib/src/components/icon/comps/pinterest.mjs +0 -27
- package/dist/lib/src/components/icon/comps/plane.mjs +0 -27
- package/dist/lib/src/components/icon/comps/play-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/play-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/play.mjs +0 -27
- package/dist/lib/src/components/icon/comps/playground.mjs +0 -27
- package/dist/lib/src/components/icon/comps/plugin.mjs +0 -27
- package/dist/lib/src/components/icon/comps/plus-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/plus-lg.mjs +0 -27
- package/dist/lib/src/components/icon/comps/plus-sm.mjs +0 -27
- package/dist/lib/src/components/icon/comps/plus-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/print.mjs +0 -27
- package/dist/lib/src/components/icon/comps/protection-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/protection-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/question-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/question-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/refresh.mjs +0 -27
- package/dist/lib/src/components/icon/comps/reload.mjs +0 -27
- package/dist/lib/src/components/icon/comps/returns.mjs +0 -27
- package/dist/lib/src/components/icon/comps/run.mjs +0 -27
- package/dist/lib/src/components/icon/comps/scan-barcode.mjs +0 -27
- package/dist/lib/src/components/icon/comps/search.mjs +0 -27
- package/dist/lib/src/components/icon/comps/service-shop.mjs +0 -27
- package/dist/lib/src/components/icon/comps/shipping.mjs +0 -27
- package/dist/lib/src/components/icon/comps/shopping-bag-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/shopping-bag.mjs +0 -27
- package/dist/lib/src/components/icon/comps/shrink.mjs +0 -27
- package/dist/lib/src/components/icon/comps/size-chart.mjs +0 -27
- package/dist/lib/src/components/icon/comps/ski-boot.mjs +0 -27
- package/dist/lib/src/components/icon/comps/ski.mjs +0 -27
- package/dist/lib/src/components/icon/comps/snow-shop.mjs +0 -27
- package/dist/lib/src/components/icon/comps/snow.mjs +0 -27
- package/dist/lib/src/components/icon/comps/sort.mjs +0 -27
- package/dist/lib/src/components/icon/comps/star-100.mjs +0 -27
- package/dist/lib/src/components/icon/comps/star-25.mjs +0 -27
- package/dist/lib/src/components/icon/comps/star-50.mjs +0 -27
- package/dist/lib/src/components/icon/comps/star-75.mjs +0 -27
- package/dist/lib/src/components/icon/comps/star-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/storefront.mjs +0 -27
- package/dist/lib/src/components/icon/comps/swim.mjs +0 -27
- package/dist/lib/src/components/icon/comps/telephone.mjs +0 -27
- package/dist/lib/src/components/icon/comps/tent.mjs +0 -27
- package/dist/lib/src/components/icon/comps/trash.mjs +0 -27
- package/dist/lib/src/components/icon/comps/twitter.mjs +0 -27
- package/dist/lib/src/components/icon/comps/upload.mjs +0 -27
- package/dist/lib/src/components/icon/comps/verified-purchaser.mjs +0 -27
- package/dist/lib/src/components/icon/comps/virtual-outfitting.mjs +0 -27
- package/dist/lib/src/components/icon/comps/warning-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/warning-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/water.mjs +0 -27
- package/dist/lib/src/components/icon/comps/wilderness.mjs +0 -27
- package/dist/lib/src/components/icon/comps/x-fill.mjs +0 -27
- package/dist/lib/src/components/icon/comps/x-lg.mjs +0 -27
- package/dist/lib/src/components/icon/comps/x-sm.mjs +0 -27
- package/dist/lib/src/components/icon/comps/x-stroke.mjs +0 -27
- package/dist/lib/src/components/icon/comps/youtube.mjs +0 -27
- package/dist/lib/src/components/icon/comps/zoom-in.mjs +0 -27
- package/dist/lib/src/components/icon/comps/zoom-out.mjs +0 -27
- package/dist/lib/src/components/icon/styles/CdrIcon.mjs +0 -3
- package/dist/lib/src/components/image/CdrImg.mjs +0 -140
- package/dist/lib/src/components/image/styles/CdrImg.mjs +0 -3
- package/dist/lib/src/components/input/CdrInput.mjs +0 -283
- package/dist/lib/src/components/input/styles/CdrInput.mjs +0 -3
- package/dist/lib/src/components/labelStandalone/CdrLabelStandalone.mjs +0 -85
- package/dist/lib/src/components/labelStandalone/styles/CdrLabelStandalone.mjs +0 -3
- package/dist/lib/src/components/labelWrapper/CdrLabelWrapper.mjs +0 -54
- package/dist/lib/src/components/labelWrapper/styles/CdrLabelWrapper.mjs +0 -3
- package/dist/lib/src/components/link/CdrLink.mjs +0 -71
- package/dist/lib/src/components/link/styles/CdrLink.mjs +0 -3
- package/dist/lib/src/components/list/CdrList.mjs +0 -42
- package/dist/lib/src/components/list/styles/CdrList.mjs +0 -3
- package/dist/lib/src/components/modal/CdrModal.mjs +0 -365
- package/dist/lib/src/components/modal/styles/CdrModal.mjs +0 -3
- package/dist/lib/src/components/pagination/CdrPagination.mjs +0 -425
- package/dist/lib/src/components/pagination/styles/CdrPagination.mjs +0 -3
- package/dist/lib/src/components/popover/CdrPopover.mjs +0 -155
- package/dist/lib/src/components/popover/styles/CdrPopover.mjs +0 -3
- package/dist/lib/src/components/popup/CdrPopup.mjs +0 -256
- package/dist/lib/src/components/popup/styles/CdrPopup.mjs +0 -3
- package/dist/lib/src/components/quote/CdrQuote.mjs +0 -66
- package/dist/lib/src/components/quote/styles/CdrQuote.mjs +0 -3
- package/dist/lib/src/components/radio/CdrRadio.mjs +0 -141
- package/dist/lib/src/components/radio/styles/CdrRadio.mjs +0 -3
- package/dist/lib/src/components/rating/CdrRating.mjs +0 -179
- package/dist/lib/src/components/rating/styles/CdrRating.mjs +0 -3
- package/dist/lib/src/components/select/CdrSelect.mjs +0 -255
- package/dist/lib/src/components/select/styles/CdrSelect.mjs +0 -3
- package/dist/lib/src/components/table/CdrTable.mjs +0 -73
- package/dist/lib/src/components/table/styles/CdrTable.mjs +0 -3
- package/dist/lib/src/components/tabs/CdrTabPanel.mjs +0 -105
- package/dist/lib/src/components/tabs/CdrTabs.mjs +0 -353
- package/dist/lib/src/components/tabs/styles/CdrTabPanel.mjs +0 -3
- package/dist/lib/src/components/tabs/styles/CdrTabs.mjs +0 -3
- package/dist/lib/src/components/text/CdrText.mjs +0 -44
- package/dist/lib/src/components/text/styles/CdrText.mjs +0 -3
- package/dist/lib/src/components/toast/CdrToast.mjs +0 -159
- package/dist/lib/src/components/toast/styles/CdrToast.mjs +0 -3
- package/dist/lib/src/components/tooltip/CdrTooltip.mjs +0 -121
- package/dist/lib/src/components/tooltip/styles/CdrTooltip.mjs +0 -3
- package/dist/lib/src/mixins/breakpoints.mjs +0 -26
- package/dist/lib/src/mixins/buildClass.mjs +0 -71
- package/dist/lib/src/mixins/fullWidth.mjs +0 -47
- package/dist/lib/src/mixins/modifier.mjs +0 -22
- package/dist/lib/src/mixins/size.mjs +0 -37
- package/dist/style/cdr-accordion-group.css +0 -1
- package/dist/style/cdr-accordion.css +0 -1
- package/dist/style/cdr-banner-vars.css +0 -0
- package/dist/style/cdr-banner.css +0 -1
- package/dist/style/cdr-breadcrumb.css +0 -1
- package/dist/style/cdr-button.css +0 -1
- package/dist/style/cdr-caption.css +0 -1
- package/dist/style/cdr-card.css +0 -1
- package/dist/style/cdr-checkbox.css +0 -1
- package/dist/style/cdr-chip-group.css +0 -1
- package/dist/style/cdr-chip.css +0 -1
- package/dist/style/cdr-container.css +0 -1
- package/dist/style/cdr-form-error.css +0 -1
- package/dist/style/cdr-form-group.css +0 -1
- package/dist/style/cdr-grid.css +0 -1
- package/dist/style/cdr-icon.css +0 -1
- package/dist/style/cdr-img.css +0 -1
- package/dist/style/cdr-input.css +0 -1
- package/dist/style/cdr-label-standalone.css +0 -1
- package/dist/style/cdr-label-wrapper.css +0 -1
- package/dist/style/cdr-link.css +0 -1
- package/dist/style/cdr-list.css +0 -1
- package/dist/style/cdr-modal.css +0 -1
- package/dist/style/cdr-pagination.css +0 -1
- package/dist/style/cdr-popover.css +0 -1
- package/dist/style/cdr-popup.css +0 -1
- package/dist/style/cdr-quote.css +0 -1
- package/dist/style/cdr-radio.css +0 -1
- package/dist/style/cdr-rating.css +0 -1
- package/dist/style/cdr-select.css +0 -1
- package/dist/style/cdr-tab-panel.css +0 -1
- package/dist/style/cdr-table.css +0 -1
- package/dist/style/cdr-tabs.css +0 -1
- package/dist/style/cdr-text.css +0 -1
- package/dist/style/cdr-toast.css +0 -1
- package/dist/style/cdr-tooltip.css +0 -1
- package/dist/style/reset.css +0 -1
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, onMounted, watch, useCssModule, resolveComponent, openBlock, createElementBlock, createElementVNode, normalizeClass, createBlock, resolveDynamicComponent, withCtx, createVNode, Fragment, renderList, createTextVNode, toDisplayString, nextTick } from 'vue';
|
|
2
|
+
import mapClasses from '../../utils/mapClasses.js';
|
|
3
|
+
import validateProp from '../../utils/propValidator.js';
|
|
4
|
+
import IconCaretLeft from '../icon/comps/caret-left.js';
|
|
5
|
+
import IconCaretRight from '../icon/comps/caret-right.js';
|
|
6
|
+
import CdrSelect from '../select/CdrSelect.js';
|
|
7
|
+
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
|
|
8
|
+
|
|
9
|
+
const _sfc_main = defineComponent({
|
|
10
|
+
name: 'CdrPagination',
|
|
11
|
+
components: {
|
|
12
|
+
IconCaretLeft,
|
|
13
|
+
IconCaretRight,
|
|
14
|
+
CdrSelect,
|
|
15
|
+
},
|
|
16
|
+
props: {
|
|
17
|
+
// NOTE pagination now requires an ID
|
|
18
|
+
id: {
|
|
19
|
+
type: String,
|
|
20
|
+
required: true,
|
|
21
|
+
},
|
|
22
|
+
/**
|
|
23
|
+
* Total number of pages. Sometimes the total number of pages is different than total page data
|
|
24
|
+
* and this prop allows for that.
|
|
25
|
+
*/
|
|
26
|
+
totalPages: {
|
|
27
|
+
type: Number,
|
|
28
|
+
default: null,
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* Array of objects. Objects have structure of { page: Number, url: String }
|
|
32
|
+
*/
|
|
33
|
+
pages: {
|
|
34
|
+
type: Array,
|
|
35
|
+
required: true,
|
|
36
|
+
validator: (value) => {
|
|
37
|
+
const result = value.every((obj) => {
|
|
38
|
+
if (!Object.prototype.hasOwnProperty.call(obj, 'page')
|
|
39
|
+
|| typeof obj.page !== 'number') {
|
|
40
|
+
console.error('Property "page" is missing or is not a number', obj); // eslint-disable-line
|
|
41
|
+
return false;
|
|
42
|
+
} if (!Object.prototype.hasOwnProperty.call(obj, 'url')
|
|
43
|
+
|| typeof obj.url !== 'string') {
|
|
44
|
+
console.error('Property "url" is missing or is not a string', obj); // eslint-disable-line
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
});
|
|
49
|
+
return result;
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
linkTag: {
|
|
53
|
+
type: String,
|
|
54
|
+
default: 'a',
|
|
55
|
+
validator: (value) => validateProp(
|
|
56
|
+
value,
|
|
57
|
+
['a', 'button'],
|
|
58
|
+
),
|
|
59
|
+
},
|
|
60
|
+
forLabel: {
|
|
61
|
+
type: String,
|
|
62
|
+
default: '',
|
|
63
|
+
},
|
|
64
|
+
/** @ignore used for binding v-model, represents the current page */
|
|
65
|
+
modelValue: {
|
|
66
|
+
type: Number,
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
setup(props, ctx) {
|
|
70
|
+
const currentIdx = ref(0);
|
|
71
|
+
|
|
72
|
+
const innerValue = computed({
|
|
73
|
+
get: () => props.modelValue,
|
|
74
|
+
set: val => {
|
|
75
|
+
setCurrentIdx(val);
|
|
76
|
+
ctx.emit('update:modelValue', val);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
const setCurrentIdx = (page) => {
|
|
81
|
+
currentIdx.value = props.pages.map((x) => x.page).indexOf(page);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const navigate = (pageNum, e) => {
|
|
85
|
+
// TODO: provide option to just emit without navigating to support vue-router?
|
|
86
|
+
// Dont do anything if clicking the current active page
|
|
87
|
+
if (pageNum === innerValue.value) {
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
innerValue.value = pageNum;
|
|
92
|
+
ctx.emit('navigate', pageNum, currentUrl.value, e);
|
|
93
|
+
|
|
94
|
+
// TODO: is this still necessary?
|
|
95
|
+
nextTick(() => {
|
|
96
|
+
// Done in a nextTick() to ensure rendering complete
|
|
97
|
+
try {
|
|
98
|
+
// Emulate native link click page reloading behaviour by blurring the
|
|
99
|
+
// paginator and returning focus to the document
|
|
100
|
+
const target = e.currentTarget || e.target;
|
|
101
|
+
target.blur();
|
|
102
|
+
} catch (err) {
|
|
103
|
+
// eslint-disable-next-line no-console
|
|
104
|
+
console.error(err);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
const select = (page, e) => {
|
|
109
|
+
e.preventDefault();
|
|
110
|
+
console.log('IMPLEMENT ME!', page);
|
|
111
|
+
// TODO: add page links to refs array? better way to do this???
|
|
112
|
+
// $refs[`page-link-${page}-${componentID}`].click();
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const currentUrl = computed(() => props.pages[currentIdx.value].url);
|
|
116
|
+
const ariaLabel = computed(() => props.forLabel || 'Pagination');
|
|
117
|
+
|
|
118
|
+
const prevPageData = computed(() => props.pages[currentIdx.value - 1]);
|
|
119
|
+
const nextPageData = computed(() => props.pages[currentIdx.value + 1]);
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
const paginationData = computed(() => {
|
|
123
|
+
const total = props.pages.length;
|
|
124
|
+
const current = innerValue.value;
|
|
125
|
+
const delta = 1;
|
|
126
|
+
let range = [];
|
|
127
|
+
let over5 = true;
|
|
128
|
+
let over5remain = true;
|
|
129
|
+
|
|
130
|
+
if (total <= 7) {
|
|
131
|
+
// all pages
|
|
132
|
+
return props.pages;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (current < 5) {
|
|
136
|
+
// if first 5 pages
|
|
137
|
+
over5 = false;
|
|
138
|
+
// [2-5]
|
|
139
|
+
range = props.pages.slice(1, 5);
|
|
140
|
+
} else if (total - current < 4) {
|
|
141
|
+
// if last 5 pages
|
|
142
|
+
over5remain = false;
|
|
143
|
+
range = props.pages.slice(-5, -1);
|
|
144
|
+
} else {
|
|
145
|
+
// else in between
|
|
146
|
+
for (
|
|
147
|
+
let i = Math.max(2, current - delta);
|
|
148
|
+
i <= Math.min(total - 1, current + delta);
|
|
149
|
+
i += 1
|
|
150
|
+
) {
|
|
151
|
+
range.push(props.pages[i - 1]);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if ((current - delta > 2) && over5) {
|
|
156
|
+
range.unshift('…');
|
|
157
|
+
}
|
|
158
|
+
if ((current + delta < total - 1) && over5remain) {
|
|
159
|
+
range.push('…');
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
range.unshift(props.pages[0]);
|
|
163
|
+
range.push(props.pages[total - 1]);
|
|
164
|
+
|
|
165
|
+
return range;
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
onMounted(() => setCurrentIdx(innerValue.value));
|
|
169
|
+
|
|
170
|
+
watch(() => props.pages, () => setCurrentIdx(innerValue.value));
|
|
171
|
+
|
|
172
|
+
return {
|
|
173
|
+
style: useCssModule(),
|
|
174
|
+
innerValue,
|
|
175
|
+
currentIdx,
|
|
176
|
+
ariaLabel,
|
|
177
|
+
prevPageData,
|
|
178
|
+
nextPageData,
|
|
179
|
+
paginationData,
|
|
180
|
+
select,
|
|
181
|
+
navigate,
|
|
182
|
+
mapClasses,
|
|
183
|
+
};
|
|
184
|
+
},
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
const _hoisted_1 = ["aria-label"];
|
|
188
|
+
const _hoisted_2 = { key: 0 };
|
|
189
|
+
const _hoisted_3 = {
|
|
190
|
+
key: 1,
|
|
191
|
+
"aria-hidden": "true"
|
|
192
|
+
};
|
|
193
|
+
const _hoisted_4 = ["value"];
|
|
194
|
+
const _hoisted_5 = { key: 2 };
|
|
195
|
+
const _hoisted_6 = {
|
|
196
|
+
key: 3,
|
|
197
|
+
"aria-hidden": "true"
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
201
|
+
const _component_icon_caret_left = resolveComponent("icon-caret-left");
|
|
202
|
+
const _component_cdr_select = resolveComponent("cdr-select");
|
|
203
|
+
const _component_icon_caret_right = resolveComponent("icon-caret-right");
|
|
204
|
+
|
|
205
|
+
return (openBlock(), createElementBlock("nav", { "aria-label": _ctx.ariaLabel }, [
|
|
206
|
+
createElementVNode("ol", {
|
|
207
|
+
class: normalizeClass(_ctx.style['cdr-pagination'])
|
|
208
|
+
}, [
|
|
209
|
+
(_ctx.innerValue > _ctx.pages[0].page)
|
|
210
|
+
? (openBlock(), createElementBlock("li", _hoisted_2, [
|
|
211
|
+
(openBlock(), createBlock(resolveDynamicComponent(_ctx.linkTag), {
|
|
212
|
+
"aria-label": "Go to previous page",
|
|
213
|
+
href: (_ctx.linkTag === 'a' && _ctx.prevPageData && _ctx.prevPageData.url) || undefined,
|
|
214
|
+
class: normalizeClass(_ctx.mapClasses(_ctx.style, 'cdr-pagination__link', 'cdr-pagination__prev')),
|
|
215
|
+
onClick: _cache[0] || (_cache[0] = (e) => _ctx.navigate(_ctx.prevPageData.page, e))
|
|
216
|
+
}, {
|
|
217
|
+
default: withCtx(() => [
|
|
218
|
+
createVNode(_component_icon_caret_left, {
|
|
219
|
+
class: normalizeClass(_ctx.style['cdr-pagination_caret--prev'])
|
|
220
|
+
}, null, 8 /* PROPS */, ["class"])
|
|
221
|
+
]),
|
|
222
|
+
_: 1 /* STABLE */
|
|
223
|
+
}, 8 /* PROPS */, ["href", "class"]))
|
|
224
|
+
]))
|
|
225
|
+
: (openBlock(), createElementBlock("li", _hoisted_3, [
|
|
226
|
+
createElementVNode("span", {
|
|
227
|
+
"aria-disabled": "true",
|
|
228
|
+
class: normalizeClass(_ctx.mapClasses(_ctx.style, 'cdr-pagination__link', 'cdr-pagination__prev', 'cdr-pagination__link--disabled'))
|
|
229
|
+
}, [
|
|
230
|
+
createVNode(_component_icon_caret_left, {
|
|
231
|
+
class: normalizeClass(_ctx.style['cdr-pagination_caret--prev']),
|
|
232
|
+
"inherit-color": ""
|
|
233
|
+
}, null, 8 /* PROPS */, ["class"])
|
|
234
|
+
], 2 /* CLASS */)
|
|
235
|
+
])),
|
|
236
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.paginationData, (n) => {
|
|
237
|
+
return (openBlock(), createElementBlock("li", {
|
|
238
|
+
key: `pagination-${_ctx.id}-li-${n.page}`,
|
|
239
|
+
class: normalizeClass(_ctx.style['cdr-pagination__li--links'])
|
|
240
|
+
}, [
|
|
241
|
+
(n.page)
|
|
242
|
+
? (openBlock(), createBlock(resolveDynamicComponent(_ctx.linkTag), {
|
|
243
|
+
key: 0,
|
|
244
|
+
class: normalizeClass(_ctx.mapClasses(_ctx.style, 'cdr-pagination__link', n.page === _ctx.innerValue && 'cdr-pagination__link--current')),
|
|
245
|
+
"aria-label": n.page === _ctx.innerValue ? `Current page, page ${n.page}` : `Go to page ${n.page}`,
|
|
246
|
+
"aria-current": n.page === _ctx.innerValue ? 'page' : null,
|
|
247
|
+
href: (_ctx.linkTag === 'a' && n.url) || undefined,
|
|
248
|
+
onClick: (e) => _ctx.navigate(n.page, e)
|
|
249
|
+
}, {
|
|
250
|
+
default: withCtx(() => [
|
|
251
|
+
createTextVNode(toDisplayString(n.page), 1 /* TEXT */)
|
|
252
|
+
]),
|
|
253
|
+
_: 2 /* DYNAMIC */
|
|
254
|
+
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["class", "aria-label", "aria-current", "href", "onClick"]))
|
|
255
|
+
: (openBlock(), createElementBlock("span", {
|
|
256
|
+
key: 1,
|
|
257
|
+
class: normalizeClass(_ctx.style['cdr-pagination__ellipse'])
|
|
258
|
+
}, " … ", 2 /* CLASS */))
|
|
259
|
+
], 2 /* CLASS */))
|
|
260
|
+
}), 128 /* KEYED_FRAGMENT */)),
|
|
261
|
+
createElementVNode("li", {
|
|
262
|
+
class: normalizeClass(_ctx.style['cdr-pagination__li--select'])
|
|
263
|
+
}, [
|
|
264
|
+
createVNode(_component_cdr_select, {
|
|
265
|
+
id: `pagination-select-${_ctx.id}`,
|
|
266
|
+
modelValue: _ctx.innerValue,
|
|
267
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = $event => ((_ctx.innerValue) = $event)),
|
|
268
|
+
label: "Navigate to page",
|
|
269
|
+
"hide-label": "",
|
|
270
|
+
onChange: _ctx.select
|
|
271
|
+
}, {
|
|
272
|
+
default: withCtx(() => [
|
|
273
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.paginationData.filter(n => n.page), (page) => {
|
|
274
|
+
return (openBlock(), createElementBlock("option", {
|
|
275
|
+
key: `pagination-${_ctx.id}-select-${page.page}`,
|
|
276
|
+
value: page.page
|
|
277
|
+
}, " Page " + toDisplayString(page.page) + toDisplayString(_ctx.totalPages === null ? '' : ` of ${_ctx.totalPages}`), 9 /* TEXT, PROPS */, _hoisted_4))
|
|
278
|
+
}), 128 /* KEYED_FRAGMENT */))
|
|
279
|
+
]),
|
|
280
|
+
_: 1 /* STABLE */
|
|
281
|
+
}, 8 /* PROPS */, ["id", "modelValue", "onChange"])
|
|
282
|
+
], 2 /* CLASS */),
|
|
283
|
+
(_ctx.innerValue < _ctx.pages[_ctx.pages.length - 1].page)
|
|
284
|
+
? (openBlock(), createElementBlock("li", _hoisted_5, [
|
|
285
|
+
(openBlock(), createBlock(resolveDynamicComponent(_ctx.linkTag), {
|
|
286
|
+
"aria-label": "Go to next page",
|
|
287
|
+
href: (_ctx.linkTag === 'a' && _ctx.nextPageData && _ctx.nextPageData.url) || undefined,
|
|
288
|
+
class: normalizeClass(_ctx.mapClasses(_ctx.style, 'cdr-pagination__link', 'cdr-pagination__next')),
|
|
289
|
+
onClick: _cache[2] || (_cache[2] = (e) => _ctx.navigate(_ctx.nextPageData.page, e))
|
|
290
|
+
}, {
|
|
291
|
+
default: withCtx(() => [
|
|
292
|
+
createVNode(_component_icon_caret_right, {
|
|
293
|
+
class: normalizeClass(_ctx.style['cdr-pagination_caret--next'])
|
|
294
|
+
}, null, 8 /* PROPS */, ["class"])
|
|
295
|
+
]),
|
|
296
|
+
_: 1 /* STABLE */
|
|
297
|
+
}, 8 /* PROPS */, ["href", "class"]))
|
|
298
|
+
]))
|
|
299
|
+
: (openBlock(), createElementBlock("li", _hoisted_6, [
|
|
300
|
+
createElementVNode("span", {
|
|
301
|
+
"aria-disabled": "true",
|
|
302
|
+
class: normalizeClass(_ctx.mapClasses(_ctx.style, 'cdr-pagination__link', 'cdr-pagination__next', 'cdr-pagination__link--disabled'))
|
|
303
|
+
}, [
|
|
304
|
+
createVNode(_component_icon_caret_right, {
|
|
305
|
+
class: normalizeClass(_ctx.style['cdr-pagination_caret--next']),
|
|
306
|
+
"inherit-color": ""
|
|
307
|
+
}, null, 8 /* PROPS */, ["class"])
|
|
308
|
+
], 2 /* CLASS */)
|
|
309
|
+
]))
|
|
310
|
+
], 2 /* CLASS */)
|
|
311
|
+
], 8 /* PROPS */, _hoisted_1))
|
|
312
|
+
}
|
|
313
|
+
var CdrPagination = /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render]]);
|
|
314
|
+
|
|
315
|
+
export { CdrPagination as default };
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { defineComponent, ref, watch, onMounted, useCssModule, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, createVNode, withCtx, createTextVNode, toDisplayString, createCommentVNode, nextTick } from 'vue';
|
|
2
|
+
import tabbable from 'tabbable';
|
|
3
|
+
import IconXSm from '../icon/comps/x-sm.js';
|
|
4
|
+
import CdrButton from '../button/CdrButton.js';
|
|
5
|
+
import CdrPopup from '../popup/CdrPopup.js';
|
|
6
|
+
import validateProp from '../../utils/propValidator.js';
|
|
7
|
+
import mapClasses from '../../utils/mapClasses.js';
|
|
8
|
+
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
|
|
9
|
+
|
|
10
|
+
const _sfc_main = defineComponent({
|
|
11
|
+
name: 'CdrPopover',
|
|
12
|
+
components: {
|
|
13
|
+
CdrPopup,
|
|
14
|
+
CdrButton,
|
|
15
|
+
IconXSm,
|
|
16
|
+
},
|
|
17
|
+
props: {
|
|
18
|
+
position: {
|
|
19
|
+
type: String,
|
|
20
|
+
required: false,
|
|
21
|
+
default: 'top',
|
|
22
|
+
validator: (value) => validateProp(
|
|
23
|
+
value,
|
|
24
|
+
['top', 'bottom', 'left', 'right'],
|
|
25
|
+
),
|
|
26
|
+
},
|
|
27
|
+
autoPosition: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
required: false,
|
|
30
|
+
default: true,
|
|
31
|
+
},
|
|
32
|
+
label: {
|
|
33
|
+
type: String,
|
|
34
|
+
required: false,
|
|
35
|
+
},
|
|
36
|
+
id: {
|
|
37
|
+
type: String,
|
|
38
|
+
required: true,
|
|
39
|
+
},
|
|
40
|
+
contentClass: {
|
|
41
|
+
type: String,
|
|
42
|
+
required: false,
|
|
43
|
+
},
|
|
44
|
+
open: {
|
|
45
|
+
type: Boolean,
|
|
46
|
+
default: false,
|
|
47
|
+
required: false,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
setup(props, ctx) {
|
|
51
|
+
const isOpen = ref(false);
|
|
52
|
+
let lastActive;
|
|
53
|
+
|
|
54
|
+
const triggerEl = ref(null);
|
|
55
|
+
const popupEl = ref(null);
|
|
56
|
+
|
|
57
|
+
const hasTrigger = ctx.slots.trigger;
|
|
58
|
+
const hasTitle = ctx.slots.title || props.label;
|
|
59
|
+
|
|
60
|
+
const openPopover = (e) => {
|
|
61
|
+
const { activeElement } = document;
|
|
62
|
+
|
|
63
|
+
lastActive = activeElement;
|
|
64
|
+
isOpen.value = true;
|
|
65
|
+
ctx.emit('opened', e);
|
|
66
|
+
nextTick(() => {
|
|
67
|
+
const tabbables = tabbable(popupEl.value);
|
|
68
|
+
if (tabbables[0]) tabbables[0].focus();
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const closePopover = (e) => {
|
|
73
|
+
isOpen.value = false;
|
|
74
|
+
ctx.emit('closed', e);
|
|
75
|
+
if (lastActive) lastActive.focus();
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const addHandlers = () =>{
|
|
79
|
+
const triggerElement = triggerEl.value.children[0];
|
|
80
|
+
if (triggerElement) {
|
|
81
|
+
triggerElement.addEventListener('click', openPopover);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
watch(() => props.open, () => {
|
|
86
|
+
// TODO: if eslint yells about this then eslint must go :)
|
|
87
|
+
props.open ? openPopover() : closePopover();
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
onMounted(() => {
|
|
91
|
+
addHandlers();
|
|
92
|
+
|
|
93
|
+
const trigger = triggerEl.value.children[0];
|
|
94
|
+
if (trigger) {
|
|
95
|
+
trigger.setAttribute('aria-controls', props.id);
|
|
96
|
+
trigger.setAttribute('aria-haspopup', 'dialog');
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
return {
|
|
101
|
+
style: useCssModule(),
|
|
102
|
+
mapClasses,
|
|
103
|
+
hasTrigger,
|
|
104
|
+
triggerEl,
|
|
105
|
+
hasTitle,
|
|
106
|
+
closePopover,
|
|
107
|
+
openPopover,
|
|
108
|
+
isOpen,
|
|
109
|
+
};
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
const _hoisted_1 = { ref: "triggerEl" };
|
|
114
|
+
|
|
115
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
116
|
+
const _component_icon_x_sm = resolveComponent("icon-x-sm");
|
|
117
|
+
const _component_cdr_button = resolveComponent("cdr-button");
|
|
118
|
+
const _component_cdr_popup = resolveComponent("cdr-popup");
|
|
119
|
+
|
|
120
|
+
return (openBlock(), createElementBlock("div", {
|
|
121
|
+
class: normalizeClass(_ctx.mapClasses(
|
|
122
|
+
_ctx.style,
|
|
123
|
+
'cdr-popover--wrapper',
|
|
124
|
+
_ctx.hasTrigger && 'cdr-popover--position',
|
|
125
|
+
))
|
|
126
|
+
}, [
|
|
127
|
+
createElementVNode("div", _hoisted_1, [
|
|
128
|
+
renderSlot(_ctx.$slots, "trigger")
|
|
129
|
+
], 512 /* NEED_PATCH */),
|
|
130
|
+
createVNode(_component_cdr_popup, {
|
|
131
|
+
role: "dialog",
|
|
132
|
+
ref: "popupEl",
|
|
133
|
+
onClosed: _ctx.closePopover,
|
|
134
|
+
position: _ctx.position,
|
|
135
|
+
"auto-position": _ctx.autoPosition,
|
|
136
|
+
opened: _ctx.isOpen,
|
|
137
|
+
"aria-expanded": `${_ctx.isOpen}`,
|
|
138
|
+
id: _ctx.id,
|
|
139
|
+
"content-class": _ctx.contentClass
|
|
140
|
+
}, {
|
|
141
|
+
default: withCtx(() => [
|
|
142
|
+
createElementVNode("div", {
|
|
143
|
+
class: normalizeClass(_ctx.style['cdr-popover__container'])
|
|
144
|
+
}, [
|
|
145
|
+
createElementVNode("div", {
|
|
146
|
+
class: normalizeClass(_ctx.style['cdr-popover__content'])
|
|
147
|
+
}, [
|
|
148
|
+
(_ctx.hasTitle)
|
|
149
|
+
? (openBlock(), createElementBlock("div", {
|
|
150
|
+
key: 0,
|
|
151
|
+
class: normalizeClass(_ctx.style['cdr-popover__title'])
|
|
152
|
+
}, [
|
|
153
|
+
renderSlot(_ctx.$slots, "title", {}, () => [
|
|
154
|
+
createTextVNode(toDisplayString(_ctx.label), 1 /* TEXT */)
|
|
155
|
+
])
|
|
156
|
+
], 2 /* CLASS */))
|
|
157
|
+
: createCommentVNode("v-if", true),
|
|
158
|
+
renderSlot(_ctx.$slots, "default")
|
|
159
|
+
], 2 /* CLASS */),
|
|
160
|
+
createVNode(_component_cdr_button, {
|
|
161
|
+
class: normalizeClass(_ctx.style['cdr-popover__close-button']),
|
|
162
|
+
"icon-only": "",
|
|
163
|
+
onClick: _ctx.closePopover,
|
|
164
|
+
"aria-label": "Close",
|
|
165
|
+
size: "small"
|
|
166
|
+
}, {
|
|
167
|
+
default: withCtx(() => [
|
|
168
|
+
createVNode(_component_icon_x_sm, {
|
|
169
|
+
slot: "icon",
|
|
170
|
+
"inherit-color": ""
|
|
171
|
+
})
|
|
172
|
+
]),
|
|
173
|
+
_: 1 /* STABLE */
|
|
174
|
+
}, 8 /* PROPS */, ["class", "onClick"])
|
|
175
|
+
], 2 /* CLASS */)
|
|
176
|
+
]),
|
|
177
|
+
_: 3 /* FORWARDED */
|
|
178
|
+
}, 8 /* PROPS */, ["onClosed", "position", "auto-position", "opened", "aria-expanded", "id", "content-class"])
|
|
179
|
+
], 2 /* CLASS */))
|
|
180
|
+
}
|
|
181
|
+
var CdrPopover = /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render]]);
|
|
182
|
+
|
|
183
|
+
export { CdrPopover as default };
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, watch, onMounted, onUnmounted, useCssModule, openBlock, createElementBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, nextTick } from 'vue';
|
|
2
|
+
import debounce from 'lodash/debounce';
|
|
3
|
+
import validateProp from '../../utils/propValidator.js';
|
|
4
|
+
import calculatePlacement from './calculatePlacement.js';
|
|
5
|
+
import mapClasses from '../../utils/mapClasses.js';
|
|
6
|
+
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
|
|
7
|
+
|
|
8
|
+
const _sfc_main = defineComponent({
|
|
9
|
+
name: 'CdrPopup',
|
|
10
|
+
inheritAttrs: false,
|
|
11
|
+
props: {
|
|
12
|
+
opened: {
|
|
13
|
+
type: Boolean,
|
|
14
|
+
default: false,
|
|
15
|
+
},
|
|
16
|
+
position: {
|
|
17
|
+
type: String,
|
|
18
|
+
required: false,
|
|
19
|
+
default: 'top',
|
|
20
|
+
validator: (value) => validateProp(
|
|
21
|
+
value,
|
|
22
|
+
['top', 'bottom', 'left', 'right'],
|
|
23
|
+
),
|
|
24
|
+
},
|
|
25
|
+
autoPosition: {
|
|
26
|
+
type: Boolean,
|
|
27
|
+
default: true,
|
|
28
|
+
},
|
|
29
|
+
contentClass: {
|
|
30
|
+
type: String,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
setup(props, ctx) {
|
|
34
|
+
const baseClass = 'cdr-popup';
|
|
35
|
+
|
|
36
|
+
// const keyHandler = ref(undefined);
|
|
37
|
+
// const clickHandler = ref(undefined);
|
|
38
|
+
// const resizeHandler = ref(undefined); // NOT NEEDED?
|
|
39
|
+
const pos = ref(props.position);
|
|
40
|
+
const corner = ref(undefined);
|
|
41
|
+
const exiting = ref(false);
|
|
42
|
+
const popupRect = ref(undefined); // DOES this have to be a ref?
|
|
43
|
+
const closed = ref(!props.opened);
|
|
44
|
+
|
|
45
|
+
const popupEl = ref(null);
|
|
46
|
+
const rootEl = ref(null);
|
|
47
|
+
|
|
48
|
+
const positionClass = computed(() => (props.opened || exiting.value ? `cdr-popup--${pos.value}` : undefined));
|
|
49
|
+
const cornerClass = computed(() => (corner.value ? `cdr-popup--corner-${corner.value}` : undefined));
|
|
50
|
+
const openClass = computed(() => (props.opened ? 'cdr-popup--open' : undefined));
|
|
51
|
+
const closedClass = computed(() => (closed.value && !exiting.value ? 'cdr-popup--closed' : undefined));
|
|
52
|
+
const exitingClass = computed(() => (exiting.value ? 'cdr-popup--exit' : undefined));
|
|
53
|
+
|
|
54
|
+
const closePopup = (e) => {
|
|
55
|
+
ctx.emit('closed', e);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const handleKeydown = (e) => {
|
|
59
|
+
switch (e.key) {
|
|
60
|
+
case 'Escape':
|
|
61
|
+
case 'Esc':
|
|
62
|
+
closePopup(e);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const handleClick = (e) => {
|
|
68
|
+
nextTick(() => {
|
|
69
|
+
if (e.target !== popupEl.value && !popupEl.value.contains(e.target)) {
|
|
70
|
+
closePopup(e);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const handleResize = () => {
|
|
76
|
+
debounce(() => {
|
|
77
|
+
measurePopup();
|
|
78
|
+
}, 300);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const addHandlers = () => {
|
|
82
|
+
document.addEventListener('keydown', handleKeydown);
|
|
83
|
+
document.addEventListener('click', handleClick);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const measurePopup = () => {
|
|
87
|
+
closed.value = false;
|
|
88
|
+
nextTick(() => {
|
|
89
|
+
popupRect.value = popupEl.value.getBoundingClientRect();
|
|
90
|
+
closed.value = true;
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const handleOpened = () => {
|
|
95
|
+
closed.value = false;
|
|
96
|
+
pos.value = props.position;
|
|
97
|
+
corner.value = undefined;
|
|
98
|
+
|
|
99
|
+
if (props.autoPosition) {
|
|
100
|
+
nextTick(() => {
|
|
101
|
+
// TODO: how to get $el?????
|
|
102
|
+
const triggerRect = rootEl.value.parentElement.getBoundingClientRect();
|
|
103
|
+
const { innerHeight, innerWidth } = window;
|
|
104
|
+
calculatePlacement(triggerRect, popupRect.value, innerWidth, innerHeight, props.position);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
setTimeout(() => {
|
|
109
|
+
addHandlers();
|
|
110
|
+
}, 1);
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
const handleClosed = () => {
|
|
114
|
+
closed.value = true;
|
|
115
|
+
document.removeEventListener('keydown', handleKeydown);
|
|
116
|
+
document.removeEventListener('click', handleClick);
|
|
117
|
+
exiting.value = true;
|
|
118
|
+
setTimeout(() => {
|
|
119
|
+
exiting.value = false;
|
|
120
|
+
}, 200); // $cdr-duration-2;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
watch(() => props.position, () => pos.value = props.position);
|
|
124
|
+
watch(() => props.opened, () => {
|
|
125
|
+
// if (!!newValue === !!oldValue) return;
|
|
126
|
+
// TODO: watch doesnt run unless it changes???? might need to use `watch`
|
|
127
|
+
if (props.opened) {
|
|
128
|
+
handleOpened();
|
|
129
|
+
} else {
|
|
130
|
+
handleClosed();
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
onMounted(() => {
|
|
135
|
+
measurePopup();
|
|
136
|
+
// resizeHandler = handleResize.bind(this); TODO: bind this?
|
|
137
|
+
window.addEventListener('resize', handleResize);
|
|
138
|
+
});
|
|
139
|
+
onUnmounted(() => {
|
|
140
|
+
document.removeEventListener('keydown', handleKeydown);
|
|
141
|
+
document.removeEventListener('click', handleClick);
|
|
142
|
+
window.removeEventListener('resize', handleResize);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
return {
|
|
146
|
+
style: useCssModule(),
|
|
147
|
+
mapClasses,
|
|
148
|
+
rootEl,
|
|
149
|
+
popupEl,
|
|
150
|
+
baseClass,
|
|
151
|
+
openClass,
|
|
152
|
+
exitingClass,
|
|
153
|
+
positionClass,
|
|
154
|
+
cornerClass,
|
|
155
|
+
closedClass,
|
|
156
|
+
handleClick,
|
|
157
|
+
handleKeydown,
|
|
158
|
+
};
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
163
|
+
return (openBlock(), createElementBlock("div", {
|
|
164
|
+
ref: "rootEl",
|
|
165
|
+
class: normalizeClass(_ctx.mapClasses(
|
|
166
|
+
_ctx.style,
|
|
167
|
+
_ctx.baseClass,
|
|
168
|
+
_ctx.openClass,
|
|
169
|
+
_ctx.exitingClass,
|
|
170
|
+
_ctx.positionClass,
|
|
171
|
+
_ctx.cornerClass,
|
|
172
|
+
_ctx.closedClass,
|
|
173
|
+
))
|
|
174
|
+
}, [
|
|
175
|
+
createElementVNode("div", mergeProps(_ctx.$attrs, {
|
|
176
|
+
class: _ctx.mapClasses(_ctx.style, 'cdr-popup__content', _ctx.contentClass),
|
|
177
|
+
ref: "popupEl"
|
|
178
|
+
}), [
|
|
179
|
+
renderSlot(_ctx.$slots, "default")
|
|
180
|
+
], 16 /* FULL_PROPS */),
|
|
181
|
+
createElementVNode("div", {
|
|
182
|
+
class: normalizeClass(_ctx.style['cdr-popup__arrow'])
|
|
183
|
+
}, null, 2 /* CLASS */)
|
|
184
|
+
], 2 /* CLASS */))
|
|
185
|
+
}
|
|
186
|
+
var CdrPopup = /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render]]);
|
|
187
|
+
|
|
188
|
+
export { CdrPopup as default };
|