@explorer-1/vue 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +9 -0
- package/components.d.ts +215 -0
- package/index.html +18 -0
- package/lib/main.ts +78 -0
- package/package.json +54 -0
- package/postcss.config.js +7 -0
- package/public/edu/.gitkeep +0 -0
- package/public/edu/explorer-1/bg-stars-edu.png +0 -0
- package/public/edu/explorer-1/bg-stars.jpg +0 -0
- package/public/explorer-1/bg-stars-edu.png +0 -0
- package/public/explorer-1/bg-stars.jpg +0 -0
- package/src/App.vue +30 -0
- package/src/assets/fonts/README.md +12 -0
- package/src/assets/fonts/archivo-narrow/ArchivoNarrow-Bold.woff2 +0 -0
- package/src/assets/fonts/archivo-narrow/ArchivoNarrow-BoldItalic.woff2 +0 -0
- package/src/assets/fonts/archivo-narrow/ArchivoNarrow-SemiBold.woff2 +0 -0
- package/src/assets/fonts/archivo-narrow/ArchivoNarrow-SemiBoldItalic.woff2 +0 -0
- package/src/assets/fonts/metropolis/Metropolis-Bold.woff2 +0 -0
- package/src/assets/fonts/metropolis/Metropolis-BoldItalic.woff2 +0 -0
- package/src/assets/fonts/metropolis/Metropolis-ExtraBold.woff2 +0 -0
- package/src/assets/fonts/metropolis/Metropolis-Medium.woff2 +0 -0
- package/src/assets/fonts/metropolis/Metropolis-MediumItalic.woff2 +0 -0
- package/src/assets/fonts/metropolis/Metropolis-Regular.woff2 +0 -0
- package/src/assets/fonts/metropolis/Metropolis-RegularItalic.woff2 +0 -0
- package/src/assets/fonts/metropolis/Metropolis-SemiBold.woff2 +0 -0
- package/src/assets/fonts/metropolis/Metropolis-SemiBoldItalic.woff2 +0 -0
- package/src/assets/scss/styles.scss +1 -0
- package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.stories.js +156 -0
- package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.vue +156 -0
- package/src/components/BackToTop/BackToTop.stories.js +24 -0
- package/src/components/BackToTop/BackToTop.vue +76 -0
- package/src/components/BaseAudio/BaseAudio.stories.js +29 -0
- package/src/components/BaseAudio/BaseAudio.vue +359 -0
- package/src/components/BaseButton/BaseButton.stories.ts +65 -0
- package/src/components/BaseButton/BaseButton.vue +114 -0
- package/src/components/BaseCheckboxGroup/BaseCheckboxGroup.stories.mdx +68 -0
- package/src/components/BaseCheckboxGroup/BaseCheckboxGroup.vue +101 -0
- package/src/components/BaseHeading/BaseHeading.stories.js +75 -0
- package/src/components/BaseHeading/BaseHeading.vue +58 -0
- package/src/components/BaseImage/BaseImage.stories.ts +52 -0
- package/src/components/BaseImage/BaseImage.vue +120 -0
- package/src/components/BaseImageCaption/BaseImageCaption.stories.js +27 -0
- package/src/components/BaseImageCaption/BaseImageCaption.vue +51 -0
- package/src/components/BaseImagePlaceholder/BaseImagePlaceholder.stories.js +73 -0
- package/src/components/BaseImagePlaceholder/BaseImagePlaceholder.vue +90 -0
- package/src/components/BaseLightboxCloseButton/BaseLightboxCloseButton.vue +45 -0
- package/src/components/BaseLightboxOpenButton/BaseLightboxOpenButton.vue +46 -0
- package/src/components/BaseLink/BaseLink.stories.js +47 -0
- package/src/components/BaseLink/BaseLink.vue +227 -0
- package/src/components/BaseModal/BaseModal.stories.js +90 -0
- package/src/components/BaseModal/BaseModal.vue +54 -0
- package/src/components/BaseModal/BaseModalDialog.vue +59 -0
- package/src/components/BasePlaceholder/BasePlaceholder.stories.js +29 -0
- package/src/components/BasePlaceholder/BasePlaceholder.vue +30 -0
- package/src/components/BaseRadioGroup/BaseRadioGroup.stories.mdx +68 -0
- package/src/components/BaseRadioGroup/BaseRadioGroup.vue +102 -0
- package/src/components/BaseSwimlane/BaseSwimlane.stories.mdx +64 -0
- package/src/components/BaseSwimlane/BaseSwimlane.vue +204 -0
- package/src/components/BaseTag/BaseTag.stories.js +34 -0
- package/src/components/BaseTag/BaseTag.vue +36 -0
- package/src/components/BaseTimer/BaseTimer.stories.js +78 -0
- package/src/components/BaseTimer/BaseTimer.test.js +15 -0
- package/src/components/BaseTimer/BaseTimer.vue +270 -0
- package/src/components/BaseUnitToggle/BaseUnitToggle.stories.js +86 -0
- package/src/components/BaseUnitToggle/BaseUnitToggle.test.js +26 -0
- package/src/components/BaseUnitToggle/BaseUnitToggle.vue +255 -0
- package/src/components/BaseVideo/BaseVideo.stories.js +31 -0
- package/src/components/BaseVideo/BaseVideo.vue +73 -0
- package/src/components/BlockAnchor/BlockAnchor.vue +38 -0
- package/src/components/BlockAudio/BlockAudio.stories.js +29 -0
- package/src/components/BlockAudio/BlockAudio.vue +78 -0
- package/src/components/BlockCard/BlockCard.stories.js +24 -0
- package/src/components/BlockCard/BlockCard.vue +88 -0
- package/src/components/BlockCardGroup/BlockCardGroup.stories.js +71 -0
- package/src/components/BlockCardGroup/BlockCardGroup.vue +61 -0
- package/src/components/BlockCircleImageCard/BlockCircleImageCard.stories.js +55 -0
- package/src/components/BlockCircleImageCard/BlockCircleImageCard.vue +120 -0
- package/src/components/BlockCta/BlockCta.stories.js +35 -0
- package/src/components/BlockCta/BlockCta.vue +55 -0
- package/src/components/BlockHeading/BlockHeading.stories.js +22 -0
- package/src/components/BlockHeading/BlockHeading.vue +27 -0
- package/src/components/BlockIframeEmbed/BlockIframeEmbed.stories.js +40 -0
- package/src/components/BlockIframeEmbed/BlockIframeEmbed.vue +84 -0
- package/src/components/BlockImage/BlockImage.stories.js +137 -0
- package/src/components/BlockImage/BlockImage.vue +48 -0
- package/src/components/BlockImage/BlockImageFullBleed.vue +119 -0
- package/src/components/BlockImage/BlockImageStandard.vue +106 -0
- package/src/components/BlockImageCarousel/BlockImageCarousel.stories.js +108 -0
- package/src/components/BlockImageCarousel/BlockImageCarousel.vue +201 -0
- package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.stories.js +63 -0
- package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue +120 -0
- package/src/components/BlockImageComparison/BlockImageComparison.stories.js +46 -0
- package/src/components/BlockImageComparison/BlockImageComparison.vue +59 -0
- package/src/components/BlockImageGallery/BlockImageGallery.stories.js +55 -0
- package/src/components/BlockImageGallery/BlockImageGallery.vue +128 -0
- package/src/components/BlockInlineImage/BlockInlineImage.stories.js +68 -0
- package/src/components/BlockInlineImage/BlockInlineImage.vue +124 -0
- package/src/components/BlockKeyPoints/BlockKeyPoints.stories.js +28 -0
- package/src/components/BlockKeyPoints/BlockKeyPoints.vue +48 -0
- package/src/components/BlockLinkCard/BlockLinkCard.stories.js +102 -0
- package/src/components/BlockLinkCard/BlockLinkCard.vue +197 -0
- package/src/components/BlockLinkCarousel/BlockLinkCarousel.stories.js +217 -0
- package/src/components/BlockLinkCarousel/BlockLinkCarousel.vue +68 -0
- package/src/components/BlockLinkTile/BlockLinkTile.stories.js +72 -0
- package/src/components/BlockLinkTile/BlockLinkTile.vue +193 -0
- package/src/components/BlockListCards/BlockListCards.stories.js +69 -0
- package/src/components/BlockListCards/BlockListCards.vue +129 -0
- package/src/components/BlockQuote/BlockQuote.stories.js +84 -0
- package/src/components/BlockQuote/BlockQuote.vue +87 -0
- package/src/components/BlockRelatedLinks/BlockRelatedLinks.stories.js +60 -0
- package/src/components/BlockRelatedLinks/BlockRelatedLinks.vue +77 -0
- package/src/components/BlockRelatedLinks/RelatedLink.vue +85 -0
- package/src/components/BlockStreamfield/BlockStreamfield.stories.js +88 -0
- package/src/components/BlockStreamfield/BlockStreamfield.vue +333 -0
- package/src/components/BlockTable/BlockTable.stories.js +20 -0
- package/src/components/BlockTable/BlockTable.vue +73 -0
- package/src/components/BlockTeaser/BlockTeaser.stories.js +74 -0
- package/src/components/BlockTeaser/BlockTeaser.test.js +12 -0
- package/src/components/BlockTeaser/BlockTeaser.vue +174 -0
- package/src/components/BlockText/BlockText.stories.js +21 -0
- package/src/components/BlockText/BlockText.vue +44 -0
- package/src/components/BlockTwitterEmbed/BlockTwitterEmbed.stories.js +19 -0
- package/src/components/BlockTwitterEmbed/BlockTwitterEmbed.vue +61 -0
- package/src/components/BlockVideo/BlockVideo.stories.js +23 -0
- package/src/components/BlockVideo/BlockVideo.vue +41 -0
- package/src/components/BlockVideoEmbed/BlockVideoEmbed.stories.js +20 -0
- package/src/components/BlockVideoEmbed/BlockVideoEmbed.vue +71 -0
- package/src/components/CalendarButton/CalendarButton.stories.js +36 -0
- package/src/components/CalendarButton/CalendarButton.vue +86 -0
- package/src/components/DetailHeadline/DetailHeadline.stories.js +48 -0
- package/src/components/DetailHeadline/DetailHeadline.vue +143 -0
- package/src/components/DsnWidget/DsnWidget.stories.js +29 -0
- package/src/components/DsnWidget/DsnWidget.vue +96 -0
- package/src/components/EventCard/EventCard.vue +188 -0
- package/src/components/EventDetailHero/EventDetailHero.stories.js +53 -0
- package/src/components/EventDetailHero/EventDetailHero.vue +64 -0
- package/src/components/FormContact/FormContact.stories.js +16 -0
- package/src/components/FormContact/FormContact.vue +202 -0
- package/src/components/FormNewsletterSignup/FormNewsletterSignup.stories.js +16 -0
- package/src/components/FormNewsletterSignup/FormNewsletterSignup.vue +355 -0
- package/src/components/HeroLarge/HeroLarge.stories.js +46 -0
- package/src/components/HeroLarge/HeroLarge.vue +93 -0
- package/src/components/HeroListingIndex/HeroListingIndex.stories.js +156 -0
- package/src/components/HeroListingIndex/HeroListingIndex.vue +80 -0
- package/src/components/HeroMedia/HeroMedia.stories.js +135 -0
- package/src/components/HeroMedia/HeroMedia.vue +174 -0
- package/src/components/HeroMedium/HeroMedium.stories.js +73 -0
- package/src/components/HeroMedium/HeroMedium.vue +166 -0
- package/src/components/HomepageCarousel/HomepageCarousel.stories.js +112 -0
- package/src/components/HomepageCarousel/HomepageCarousel.vue +382 -0
- package/src/components/HomepageCarouselItem/HomepageCarouselItem.stories.js +60 -0
- package/src/components/HomepageCarouselItem/HomepageCarouselItem.vue +168 -0
- package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.stories.js +35 -0
- package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.vue +39 -0
- package/src/components/HomepageFeaturedRobot/HomepageFeaturedRobot.stories.js +93 -0
- package/src/components/HomepageFeaturedRobot/HomepageFeaturedRobot.vue +129 -0
- package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.js +153 -0
- package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue +282 -0
- package/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue +143 -0
- package/src/components/HomepageStats/HomepageStats.stories.js +155 -0
- package/src/components/HomepageStats/HomepageStats.vue +362 -0
- package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.stories.js +90 -0
- package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue +156 -0
- package/src/components/HomepageTeaserBlock/HomepageTeaserBlockCardImage.vue +58 -0
- package/src/components/Icons/Icon360.vue +29 -0
- package/src/components/Icons/IconArrow.vue +26 -0
- package/src/components/Icons/IconArrows.vue +43 -0
- package/src/components/Icons/IconAudio.vue +27 -0
- package/src/components/Icons/IconBook.vue +21 -0
- package/src/components/Icons/IconBookUser.vue +21 -0
- package/src/components/Icons/IconBriefcase.vue +21 -0
- package/src/components/Icons/IconCalendar.vue +25 -0
- package/src/components/Icons/IconCaret.vue +26 -0
- package/src/components/Icons/IconCheckbox.vue +26 -0
- package/src/components/Icons/IconCheckboxSelected.vue +35 -0
- package/src/components/Icons/IconClose.vue +27 -0
- package/src/components/Icons/IconCloseLightbox.vue +25 -0
- package/src/components/Icons/IconDownload.vue +31 -0
- package/src/components/Icons/IconDropdown.vue +25 -0
- package/src/components/Icons/IconEnvelope.vue +21 -0
- package/src/components/Icons/IconExpand.vue +28 -0
- package/src/components/Icons/IconExternal.vue +25 -0
- package/src/components/Icons/IconFilter.vue +25 -0
- package/src/components/Icons/IconForwardTen.vue +38 -0
- package/src/components/Icons/IconGrid.vue +25 -0
- package/src/components/Icons/IconHand.vue +21 -0
- package/src/components/Icons/IconInfo.vue +26 -0
- package/src/components/Icons/IconLink.vue +27 -0
- package/src/components/Icons/IconList.vue +25 -0
- package/src/components/Icons/IconLocation.vue +37 -0
- package/src/components/Icons/IconMagnifyingGlass.vue +21 -0
- package/src/components/Icons/IconMedal.vue +21 -0
- package/src/components/Icons/IconMenu.vue +27 -0
- package/src/components/Icons/IconMinus.vue +26 -0
- package/src/components/Icons/IconMute.vue +27 -0
- package/src/components/Icons/IconNext.vue +25 -0
- package/src/components/Icons/IconPause.vue +28 -0
- package/src/components/Icons/IconPlay.vue +28 -0
- package/src/components/Icons/IconPlus.vue +25 -0
- package/src/components/Icons/IconPrev.vue +25 -0
- package/src/components/Icons/IconRewindTen.vue +42 -0
- package/src/components/Icons/IconSearch.vue +25 -0
- package/src/components/Icons/IconShare.vue +30 -0
- package/src/components/Icons/IconSlideshow.vue +30 -0
- package/src/components/Icons/IconSocialEmail.vue +26 -0
- package/src/components/Icons/IconSocialFacebook.vue +26 -0
- package/src/components/Icons/IconSocialGoogleClassroom.vue +26 -0
- package/src/components/Icons/IconSocialInstagram.vue +35 -0
- package/src/components/Icons/IconSocialPinterest.vue +26 -0
- package/src/components/Icons/IconSocialReddit.vue +25 -0
- package/src/components/Icons/IconSocialTwitter.vue +25 -0
- package/src/components/Icons/IconSocialYoutube.vue +35 -0
- package/src/components/Icons/IconStop.vue +27 -0
- package/src/components/Icons/IconTime.vue +25 -0
- package/src/components/Icons/IconUniversity.vue +21 -0
- package/src/components/Icons/IconUser.vue +26 -0
- package/src/components/Icons/IconVolume.vue +27 -0
- package/src/components/Icons/Icons.stories.ts +440 -0
- package/src/components/ImageDetailContextImage/ImageDetailContextImage.vue +125 -0
- package/src/components/LayoutHelper/LayoutHelper.vue +38 -0
- package/src/components/LoadingTransition/LoadingTransition.vue +48 -0
- package/src/components/LogoCaltech/LogoCaltech.stories.js +39 -0
- package/src/components/LogoCaltech/LogoCaltech.vue +29 -0
- package/src/components/LogoTribrand/LogoTribrand.stories.js +76 -0
- package/src/components/LogoTribrand/LogoTribrand.vue +93 -0
- package/src/components/MissionDetailAbout/MissionDetailAbout.stories.js +70 -0
- package/src/components/MissionDetailAbout/MissionDetailAbout.vue +204 -0
- package/src/components/MissionDetailHero/MissionDetailHero.stories.js +303 -0
- package/src/components/MissionDetailHero/MissionDetailHero.vue +292 -0
- package/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.js +278 -0
- package/src/components/MissionDetailHighlights/MissionDetailHighlights.vue +332 -0
- package/src/components/MissionDetailHighlights/MissionDetailHighlightsCarousel.vue +160 -0
- package/src/components/MissionDetailHighlights/MissionDetailHighlightsCarouselItem.vue +123 -0
- package/src/components/MissionDetailInlineImage/MissionDetailInlineImage.stories.js +43 -0
- package/src/components/MissionDetailInlineImage/MissionDetailInlineImage.vue +97 -0
- package/src/components/MissionDetailStats/DistanceStats.test.js +133 -0
- package/src/components/MissionDetailStats/DistanceStats.vue +250 -0
- package/src/components/MissionDetailStats/MissionDetailStats.stories.js +95 -0
- package/src/components/MissionDetailStats/MissionDetailStats.test.js +23 -0
- package/src/components/MissionDetailStats/MissionDetailStats.vue +187 -0
- package/src/components/MissionDetailStats/MissionDetailStatsMicro.vue +52 -0
- package/src/components/MissionDetailStats/MissionDetailStatsMini.vue +109 -0
- package/src/components/MissionDetailStreamfield/MissionDetailStreamfield.stories.js +55 -0
- package/src/components/MissionDetailStreamfield/MissionDetailStreamfield.vue +95 -0
- package/src/components/MixinAnimationCaret/MixinAnimationCaret.stories.ts +24 -0
- package/src/components/MixinAnimationCaret/MixinAnimationCaret.vue +81 -0
- package/src/components/MixinCarousel/MixinCarousel.docs.mdx +33 -0
- package/src/components/MixinCarousel/MixinCarousel.stories.js +53 -0
- package/src/components/MixinCarousel/MixinCarousel.vue +236 -0
- package/src/components/MixinDropdownToggle/MixinDropdownToggle.vue +53 -0
- package/src/components/MixinFancybox/MixinFancybox.vue +405 -0
- package/src/components/MixinFancybox/MixinFancyboxOpenButton.vue +35 -0
- package/src/components/MixinVideoBg/MixinVideoBg.stories.js +23 -0
- package/src/components/MixinVideoBg/MixinVideoBg.vue +39 -0
- package/src/components/NavDesktop/NavDesktop.stories.js +254 -0
- package/src/components/NavDesktop/NavDesktop.vue +355 -0
- package/src/components/NavDesktop/NavDesktopDropdown.vue +201 -0
- package/src/components/NavDesktop/NavDesktopDropdownContent.vue +87 -0
- package/src/components/NavDesktop/NavDesktopDropdownMore.vue +112 -0
- package/src/components/NavDesktop/NavDesktopTopHat.vue +56 -0
- package/src/components/NavHeading/NavHeading.stories.js +23 -0
- package/src/components/NavHeading/NavHeading.vue +40 -0
- package/src/components/NavHighlight/NavHighlight.stories.js +42 -0
- package/src/components/NavHighlight/NavHighlight.vue +67 -0
- package/src/components/NavLinkList/NavLinkList.stories.js +46 -0
- package/src/components/NavLinkList/NavLinkList.vue +66 -0
- package/src/components/NavLogoLinks/NavLogoLinks.stories.js +22 -0
- package/src/components/NavLogoLinks/NavLogoLinks.vue +57 -0
- package/src/components/NavMobile/NavMobile.stories.js +231 -0
- package/src/components/NavMobile/NavMobile.vue +280 -0
- package/src/components/NavMobile/NavMobileDropdown.vue +175 -0
- package/src/components/NavMobile/NavMobileLink.vue +69 -0
- package/src/components/NavMobile/NavMobileSecondaryDropdown.vue +124 -0
- package/src/components/NavSearchForm/NavSearchForm.stories.js +13 -0
- package/src/components/NavSearchForm/NavSearchForm.vue +102 -0
- package/src/components/NavSecondary/NavSecondary.stories.js +24 -0
- package/src/components/NavSecondary/NavSecondary.vue +191 -0
- package/src/components/NavSecondary/NavSecondaryDropdown.vue +181 -0
- package/src/components/NavSecondary/NavSecondaryDropdownContent.vue +140 -0
- package/src/components/NavSecondary/NavSecondaryLink.vue +62 -0
- package/src/components/NavSocial/NavSocial.stories.js +20 -0
- package/src/components/NavSocial/NavSocial.vue +97 -0
- package/src/components/NewsDetailMediaContact/NewsDetailMediaContact.stories.js +60 -0
- package/src/components/NewsDetailMediaContact/NewsDetailMediaContact.test.js +30 -0
- package/src/components/NewsDetailMediaContact/NewsDetailMediaContact.vue +73 -0
- package/src/components/ParallaxContainer/ParallaxContainer.stories.js +47 -0
- package/src/components/ParallaxContainer/ParallaxContainer.vue +76 -0
- package/src/components/ParallaxElement/ParallaxElement.vue +25 -0
- package/src/components/PastEventsCarousel/PastEventsCarousel.vue +86 -0
- package/src/components/PodcastEpisodeCard/PodcastEpisodeCard.vue +251 -0
- package/src/components/PodcastSeriesCarousel/PodcastSeriesCarousel.stories.js +235 -0
- package/src/components/PodcastSeriesCarousel/PodcastSeriesCarousel.vue +171 -0
- package/src/components/ProfileDetailSectionGroup/ProfileDetailSectionGroup.vue +84 -0
- package/src/components/RoboticsDetailStats/RoboticsDetailStats.stories.js +97 -0
- package/src/components/RoboticsDetailStats/RoboticsDetailStats.test.js +21 -0
- package/src/components/RoboticsDetailStats/RoboticsDetailStats.vue +217 -0
- package/src/components/RoboticsDetailStats/RoboticsDetailStatsMini.vue +182 -0
- package/src/components/SearchFilterGroup/SearchFilterGroup.stories.js +59 -0
- package/src/components/SearchFilterGroup/SearchFilterGroup.vue +221 -0
- package/src/components/SearchInput/SearchInput.stories.js +35 -0
- package/src/components/SearchInput/SearchInput.vue +93 -0
- package/src/components/SearchPagination/SearchPagination.stories.js +55 -0
- package/src/components/SearchPagination/SearchPagination.vue +173 -0
- package/src/components/SearchResultCard/SearchResultCard.stories.js +57 -0
- package/src/components/SearchResultCard/SearchResultCard.vue +282 -0
- package/src/components/SearchResultGridItem/SearchResultGridItem.stories.js +70 -0
- package/src/components/SearchResultGridItem/SearchResultGridItem.vue +140 -0
- package/src/components/SearchResultsList/SearchResultsList.vue +183 -0
- package/src/components/SearchSelectMenu/SearchSelectMenu.stories.js +25 -0
- package/src/components/SearchSelectMenu/SearchSelectMenu.vue +86 -0
- package/src/components/ShareButtons/ShareButtons.stories.js +16 -0
- package/src/components/ShareButtons/ShareButtons.vue +132 -0
- package/src/components/ShareButtonsEdu/ShareButtonsEdu.stories.js +14 -0
- package/src/components/ShareButtonsEdu/ShareButtonsEdu.vue +215 -0
- package/src/components/SkipLink/SkipLink.stories.js +9 -0
- package/src/components/SkipLink/SkipLink.vue +53 -0
- package/src/components/SwimlaneCTA/SwimlaneCTA.stories.mdx +77 -0
- package/src/components/SwimlaneCTA/SwimlaneCTA.vue +281 -0
- package/src/components/TheFooter/TheFooter.stories.js +602 -0
- package/src/components/TheFooter/TheFooter.vue +228 -0
- package/src/components/TheFooter/TheFooterSignUp.vue +61 -0
- package/src/components/ThumbnailCarousel/ThumbnailCarousel.stories.js +106 -0
- package/src/components/ThumbnailCarousel/ThumbnailCarousel.vue +76 -0
- package/src/components/TopicDetailMissionCarousel/TopicDetailMissionCarousel.stories.js +93 -0
- package/src/components/TopicDetailMissionCarousel/TopicDetailMissionCarousel.vue +68 -0
- package/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.stories.js +38 -0
- package/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.vue +104 -0
- package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.stories.js +84 -0
- package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.vue +112 -0
- package/src/components/TopicDetailMore/TopicDetailMore.stories.js +221 -0
- package/src/components/TopicDetailMore/TopicDetailMore.vue +124 -0
- package/src/components/TopicDetailMore/TopicDetailMoreVisibility.vue +51 -0
- package/src/components/TopicDetailMoreItem/TopicDetailMoreItem.stories.js +116 -0
- package/src/components/TopicDetailMoreItem/TopicDetailMoreItem.vue +130 -0
- package/src/components/TopicDetailStreamfield/TopicDetailStreamfield.stories.js +34 -0
- package/src/components/TopicDetailStreamfield/TopicDetailStreamfield.vue +98 -0
- package/src/components/YearTicker/YearTicker.stories.js +37 -0
- package/src/components/YearTicker/YearTicker.vue +132 -0
- package/src/docs/foundation/DynamicTokens.vue +106 -0
- package/src/docs/foundation/FontVariants.vue +80 -0
- package/src/docs/foundation/color.docs.mdx +112 -0
- package/src/docs/foundation/grid.docs.mdx +189 -0
- package/src/docs/foundation/grid.stories.js +263 -0
- package/src/docs/foundation/grid_layouthelpers.docs.mdx +78 -0
- package/src/docs/foundation/grid_layouthelpers.stories.js +53 -0
- package/src/docs/foundation/themes.docs.mdx +71 -0
- package/src/docs/foundation/themes.stories.js +63 -0
- package/src/docs/foundation/typography.docs.mdx +50 -0
- package/src/docs/foundation/typography.stories.js +119 -0
- package/src/interfaces.ts +129 -0
- package/src/main.ts +34 -0
- package/src/store/header.ts +40 -0
- package/src/store/theme.ts +27 -0
- package/src/templates/PageContent/PageContent.stories.js +92 -0
- package/src/templates/PageContent/PageContent.vue +140 -0
- package/src/templates/PageEventDetail/PageEventDetail.stories.js +104 -0
- package/src/templates/PageEventDetail/PageEventDetail.vue +358 -0
- package/src/templates/PageNewsDetail/PageNewsDetail.stories.js +158 -0
- package/src/templates/PageNewsDetail/PageNewsDetail.vue +242 -0
- package/src/templates/edu/PageEduNewsDetail.stories.js +64 -0
- package/src/templates/edu/PageEduNewsDetail.vue +155 -0
- package/src/templates/www/HomePage/HomePage.vue +30 -0
- package/src/utils/dayjs.js +32 -0
- package/src/utils/filters.js +33 -0
- package/src/utils/mixins.ts +353 -0
- package/src/vite-env.d.ts +1 -0
- package/tailwind.config.js +24 -0
- package/tsconfig.json +29 -0
- package/tsconfig.node.json +11 -0
- package/vite.config.ts +55 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import dayjs from './dayjs'
|
|
2
|
+
|
|
3
|
+
const filters = {
|
|
4
|
+
// To support more locales update add imports to dayjs.js'
|
|
5
|
+
displayDate(value, format, locale = 'en') {
|
|
6
|
+
if (value) {
|
|
7
|
+
const dateDayjs = dayjs(value).locale(locale)
|
|
8
|
+
let date
|
|
9
|
+
switch (format) {
|
|
10
|
+
case 'DateTime':
|
|
11
|
+
date = dateDayjs.format('MMM D YYYY, HH:mm') // Feb 18 2021, 20:55
|
|
12
|
+
break
|
|
13
|
+
case 'Date':
|
|
14
|
+
date = dateDayjs.format('MMM D YYYY') // Feb 18 2021
|
|
15
|
+
break
|
|
16
|
+
case 'Time':
|
|
17
|
+
date = dateDayjs.format('HH:mm') // 20:55
|
|
18
|
+
break
|
|
19
|
+
case 'MonthAndYear':
|
|
20
|
+
date = dateDayjs.format('MMM YYYY') // Feb. 2021
|
|
21
|
+
break
|
|
22
|
+
case 'Day':
|
|
23
|
+
date = dateDayjs.format('D') // 1-31
|
|
24
|
+
break
|
|
25
|
+
default:
|
|
26
|
+
date = dateDayjs.format('ll') // Feb. 18, 2021 (en)
|
|
27
|
+
}
|
|
28
|
+
return date
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default filters
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
// import Vue from 'vue'
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
import dayjs from './dayjs'
|
|
4
|
+
import { useHeaderStore } from './../store/header'
|
|
5
|
+
import { useRoute } from 'vue-router'
|
|
6
|
+
import type {
|
|
7
|
+
BreadcrumbPathObject,
|
|
8
|
+
ImageObject,
|
|
9
|
+
ImageSrcObject,
|
|
10
|
+
RelatedLinkObject
|
|
11
|
+
} from '../interfaces'
|
|
12
|
+
// srcSet data structure
|
|
13
|
+
export interface SrcSetDataValue {
|
|
14
|
+
url: string
|
|
15
|
+
width: number
|
|
16
|
+
}
|
|
17
|
+
// nav link object
|
|
18
|
+
export type LinkObject = {
|
|
19
|
+
linkPage: {
|
|
20
|
+
title: string
|
|
21
|
+
url: string
|
|
22
|
+
} | null
|
|
23
|
+
title: string | null
|
|
24
|
+
path: string | null
|
|
25
|
+
}
|
|
26
|
+
// breadcrumbs used for nav and secondary nav
|
|
27
|
+
export type BreadcrumbObject = {
|
|
28
|
+
menu_links: {
|
|
29
|
+
[key: string]: [BreadcrumbPathObject]
|
|
30
|
+
} | null
|
|
31
|
+
more: [BreadcrumbPathObject] | null
|
|
32
|
+
}
|
|
33
|
+
// general related link object used in various places
|
|
34
|
+
|
|
35
|
+
// image object used to construct lightbox items
|
|
36
|
+
export type BaseImageObject = {
|
|
37
|
+
title: string | null
|
|
38
|
+
original: string | null
|
|
39
|
+
credit: string | null
|
|
40
|
+
detailUrl: string | null
|
|
41
|
+
}
|
|
42
|
+
// lightbox item used to construct lightbox items array
|
|
43
|
+
export type lightboxObject = {
|
|
44
|
+
title: string | null
|
|
45
|
+
url: string | null
|
|
46
|
+
detailUrl: string | null
|
|
47
|
+
credit: string | null
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// lightbox item used to construct lightbox items array
|
|
51
|
+
export type lightboxGalleryObject = {
|
|
52
|
+
title: string | null
|
|
53
|
+
original: string | null
|
|
54
|
+
detailUrl: string | null
|
|
55
|
+
credit: string | null
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export interface EventDateObject {
|
|
59
|
+
day: string
|
|
60
|
+
monthAndYear: string
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* -- mixinTransparentHeader --
|
|
64
|
+
This mixin is used on the component level to make the header transparent.
|
|
65
|
+
Mostly used by hero image components.
|
|
66
|
+
*/
|
|
67
|
+
export const mixinTransparentHeader = () => {
|
|
68
|
+
const headerStore = useHeaderStore()
|
|
69
|
+
if (headerStore) {
|
|
70
|
+
headerStore.makeTransparent(true)
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* -- mixinGetLinkText --
|
|
75
|
+
This is used frequently in the navigation components
|
|
76
|
+
and provides a graceful fallback to use the page title
|
|
77
|
+
if one exists.
|
|
78
|
+
*/
|
|
79
|
+
export const mixinGetLinkText = (item: LinkObject): string => {
|
|
80
|
+
if (item.title) {
|
|
81
|
+
return item.title
|
|
82
|
+
} else if (item.linkPage) {
|
|
83
|
+
return item.linkPage.title
|
|
84
|
+
}
|
|
85
|
+
return ''
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* -- mixinGetRouterLink --
|
|
89
|
+
Checks if nav links are a router link
|
|
90
|
+
- Necessary for url query links as those are passed as external links but should be treated as router links
|
|
91
|
+
- Only checks for /missions? and /news? to keep it safe
|
|
92
|
+
- If a router link, returns a router-compatible string, otherwise null
|
|
93
|
+
TODO: unit test would be good for this
|
|
94
|
+
TODO: need to modify this to work with breadcrumb-passed objects too
|
|
95
|
+
strategy: check if path starts with a slash.
|
|
96
|
+
*/
|
|
97
|
+
export const mixinGetRouterLink = (link: LinkObject): string | undefined => {
|
|
98
|
+
if (link.linkPage && link.linkPage.url) {
|
|
99
|
+
return link.linkPage.url
|
|
100
|
+
} else if (link.path) {
|
|
101
|
+
// TODO: VUE3 get env vars properly
|
|
102
|
+
// const domain = process?.env?.SITE_HOSTNAME || 'http://localhost:3000'
|
|
103
|
+
const domain = 'http://localhost:3000'
|
|
104
|
+
// keeping it specific and only checking for mission slug with url query
|
|
105
|
+
if (link.path.startsWith(domain + '/missions?') || link.path.startsWith(domain + '/news?')) {
|
|
106
|
+
return link.path.replace(domain, '')
|
|
107
|
+
} else if (link.path.startsWith('/')) {
|
|
108
|
+
// if it's actually a relative link, make it so
|
|
109
|
+
// (applies when breadcrumbs are passed to mobile secondary nav)
|
|
110
|
+
return link.path
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return undefined
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* -- mixinUpdateGlobalChildren --
|
|
117
|
+
This mixin is used by the navigation to share secondary nav items between the global nav and components
|
|
118
|
+
*/
|
|
119
|
+
export const mixinUpdateGlobalChildren = (value: [BreadcrumbPathObject] | null) => {
|
|
120
|
+
const headerStore = useHeaderStore()
|
|
121
|
+
headerStore.updateGlobalChildren(value)
|
|
122
|
+
}
|
|
123
|
+
/* -- mixinUpdateSecondary --
|
|
124
|
+
This mixin is used by the navigation to share secondary nav override items between components
|
|
125
|
+
*/
|
|
126
|
+
export const mixinUpdateSecondary = (value: [BreadcrumbPathObject] | null) => {
|
|
127
|
+
const headerStore = useHeaderStore()
|
|
128
|
+
headerStore.updateSecondary(value)
|
|
129
|
+
}
|
|
130
|
+
/* -- mixinHighlightPrimary --
|
|
131
|
+
This mixin is used to specify if active primary navigation items should be highlighted/underlined
|
|
132
|
+
Use case: If a page displays a secondary nav, the active primary navigation item should have a different style treatment
|
|
133
|
+
*/
|
|
134
|
+
export const mixinHighlightPrimary = (value: boolean) => {
|
|
135
|
+
const headerStore = useHeaderStore()
|
|
136
|
+
headerStore.updateHighlightPrimary(value)
|
|
137
|
+
}
|
|
138
|
+
/* -- mixinIsActivePath --
|
|
139
|
+
Used in various navigation components to determine if a navigation
|
|
140
|
+
item matches the active path, or is an ancestor of the active path.
|
|
141
|
+
Both cases will return true.
|
|
142
|
+
Useful for dropdown toggles.
|
|
143
|
+
*/
|
|
144
|
+
export const mixinIsActivePath = (itemPath: string): Boolean => {
|
|
145
|
+
const route = useRoute()
|
|
146
|
+
const currentPath = route ? route.path : null
|
|
147
|
+
const path = itemPath
|
|
148
|
+
const ancestorPath = path ? (path.endsWith('/') ? path : path + '/') : null
|
|
149
|
+
if (currentPath && path && ancestorPath) {
|
|
150
|
+
if (currentPath === path) {
|
|
151
|
+
return true
|
|
152
|
+
} else {
|
|
153
|
+
return currentPath.startsWith(ancestorPath)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return false
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* -- mixinGetSrcSet --
|
|
160
|
+
Use this when you are querying custom cropped renditions
|
|
161
|
+
from Wagtail and want to use the image's srcset attribute.
|
|
162
|
+
|
|
163
|
+
The only requirement is that the image query must include
|
|
164
|
+
custom rendition queries that start with the string `screen`
|
|
165
|
+
and query for both the `url` and `width`
|
|
166
|
+
|
|
167
|
+
Example Query:
|
|
168
|
+
image {
|
|
169
|
+
screenXs: rendition(fill: "320x180-c10") {
|
|
170
|
+
url
|
|
171
|
+
width
|
|
172
|
+
}
|
|
173
|
+
screenMd: rendition(fill: "768x432-c10") {
|
|
174
|
+
url
|
|
175
|
+
width
|
|
176
|
+
}
|
|
177
|
+
screenXl: rendition(fill: "1280x640-c10") {
|
|
178
|
+
url
|
|
179
|
+
width
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
*/
|
|
183
|
+
export const mixinGetSrcSet = (srcSetObject: Partial<ImageObject>): string => {
|
|
184
|
+
let srcSet = ''
|
|
185
|
+
const valid = Object.keys(srcSetObject).some(function (key) {
|
|
186
|
+
if (key.startsWith('screen')) {
|
|
187
|
+
return true
|
|
188
|
+
}
|
|
189
|
+
return false
|
|
190
|
+
})
|
|
191
|
+
if (valid) {
|
|
192
|
+
const srcSetArray: string[] = []
|
|
193
|
+
for (const [key, value] of Object.entries(srcSetObject)) {
|
|
194
|
+
if (key.startsWith('screen') && typeof value === 'object') {
|
|
195
|
+
if ((value as ImageSrcObject).url && (value as ImageSrcObject).width) {
|
|
196
|
+
srcSetArray.push(`${(value as ImageSrcObject).url} ${(value as ImageSrcObject).width}w`)
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
srcSet = srcSetArray.join(', ')
|
|
201
|
+
}
|
|
202
|
+
return srcSet
|
|
203
|
+
}
|
|
204
|
+
// Use with RelatedLinkBlock to retrieve the external link to use with an href prop
|
|
205
|
+
export const mixinGetExternalLink = (link: RelatedLinkObject): string | undefined => {
|
|
206
|
+
if (link.externalLink) {
|
|
207
|
+
return link.externalLink
|
|
208
|
+
} else if (link.document) {
|
|
209
|
+
return link.document.url
|
|
210
|
+
}
|
|
211
|
+
return undefined
|
|
212
|
+
}
|
|
213
|
+
// Gets the fully qualified canonical URL of the current page if passed $route.path string
|
|
214
|
+
export const mixinCanonicalUrl = (path: string): string => {
|
|
215
|
+
const domain = 'https://www.jpl.nasa.gov'
|
|
216
|
+
return domain + path
|
|
217
|
+
}
|
|
218
|
+
// Used to construct an array of image objects to use with BaseLightbox
|
|
219
|
+
// TODO: currently only assembles an array of 1 item (single image lightbox).
|
|
220
|
+
// This will need to be modified to work for image gallery lightbox (multiple items)
|
|
221
|
+
export const mixinLightboxItems = (
|
|
222
|
+
image: BaseImageObject,
|
|
223
|
+
title: string
|
|
224
|
+
): lightboxObject[] | false => {
|
|
225
|
+
// check for image original src url at minimum
|
|
226
|
+
if (image && image.original) {
|
|
227
|
+
let theTitle = image.title
|
|
228
|
+
if (title) {
|
|
229
|
+
theTitle = title
|
|
230
|
+
}
|
|
231
|
+
// kind of a hacky way to ensure the credit only shows up if there isn't a detailUrl link
|
|
232
|
+
let theCredit = image.credit
|
|
233
|
+
if (image.detailUrl) {
|
|
234
|
+
theCredit = ''
|
|
235
|
+
}
|
|
236
|
+
return [
|
|
237
|
+
{
|
|
238
|
+
title: theTitle,
|
|
239
|
+
url: image.original,
|
|
240
|
+
detailUrl: image.detailUrl,
|
|
241
|
+
credit: theCredit
|
|
242
|
+
}
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
return false
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
export const mixinLightboxGalleryItems = (items: object | any): object | false => {
|
|
249
|
+
const res = []
|
|
250
|
+
const itemsArr: Array<object> = Object.keys(items).map(
|
|
251
|
+
(key: string): lightboxGalleryObject => items[key]
|
|
252
|
+
)
|
|
253
|
+
if (items) {
|
|
254
|
+
for (const images of itemsArr) {
|
|
255
|
+
for (const image of Object.values(images)) {
|
|
256
|
+
if (image && image.original !== undefined) {
|
|
257
|
+
res.push({
|
|
258
|
+
title: image.title,
|
|
259
|
+
url: image.original,
|
|
260
|
+
detailUrl: image.detailUrl,
|
|
261
|
+
credit: image.credit
|
|
262
|
+
})
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return res
|
|
267
|
+
} else {
|
|
268
|
+
return false
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// return event dates for the red box that appears in the corner of the hero and thumbnail images
|
|
273
|
+
export const mixinFormatSplitEventDates = (
|
|
274
|
+
startDatetime: string,
|
|
275
|
+
endDatetime?: string
|
|
276
|
+
): EventDateObject => {
|
|
277
|
+
const startDateDayjs = dayjs(startDatetime)
|
|
278
|
+
|
|
279
|
+
let day = startDateDayjs.format('D')
|
|
280
|
+
const monthAndYear = startDateDayjs.format('MMM YYYY')
|
|
281
|
+
|
|
282
|
+
if (endDatetime) {
|
|
283
|
+
const endDateDayjs = dayjs(endDatetime)
|
|
284
|
+
|
|
285
|
+
if (
|
|
286
|
+
startDateDayjs.format('MM') === endDateDayjs.format('MM') &&
|
|
287
|
+
startDateDayjs.format('ll') !== endDateDayjs.format('ll')
|
|
288
|
+
) {
|
|
289
|
+
// If event spans multiple days within the same month, show both days
|
|
290
|
+
day = `${day}-${endDateDayjs.format('D')}`
|
|
291
|
+
}
|
|
292
|
+
// Otherwise, we only show the start date
|
|
293
|
+
}
|
|
294
|
+
return { day, monthAndYear }
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// return event dates formatted for listing cards
|
|
298
|
+
export const mixinFormatEventDates = (startDatetime: string, endDatetime?: string): string => {
|
|
299
|
+
const startDateDayjs = dayjs(startDatetime)
|
|
300
|
+
|
|
301
|
+
let eventDate = startDateDayjs.format('ll')
|
|
302
|
+
|
|
303
|
+
if (endDatetime) {
|
|
304
|
+
const endDateDayjs = dayjs(endDatetime)
|
|
305
|
+
|
|
306
|
+
if (startDateDayjs.format('YYYY') !== endDateDayjs.format('YYYY')) {
|
|
307
|
+
// Event spans into another year
|
|
308
|
+
eventDate = `${startDateDayjs.format('ll')} - ${endDateDayjs.format('ll')}`
|
|
309
|
+
} else if (startDateDayjs.format('MM') !== endDateDayjs.format('MM')) {
|
|
310
|
+
// Event spans multiple months
|
|
311
|
+
eventDate = `${startDateDayjs.format('MMM D')} - ${endDateDayjs.format('ll')}`
|
|
312
|
+
} else if (
|
|
313
|
+
endDateDayjs.diff(startDateDayjs, 'hour') >= 24 &&
|
|
314
|
+
startDateDayjs.format('ll') !== endDateDayjs.format('ll')
|
|
315
|
+
) {
|
|
316
|
+
// Event spans multiple days within a calendar month and is greater than 24 hours
|
|
317
|
+
eventDate = `${startDateDayjs.format('MMM D')}-${endDateDayjs.format(
|
|
318
|
+
'D'
|
|
319
|
+
)}, ${startDateDayjs.format('YYYY')}`
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
return eventDate
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
export const mixinFormatEventTimeInHoursAndMinutes = (
|
|
326
|
+
startDatetime: string,
|
|
327
|
+
endDatetime?: string,
|
|
328
|
+
endTime?: string
|
|
329
|
+
): string => {
|
|
330
|
+
// Only display time if event spans less than one day
|
|
331
|
+
const startDateDayjs = dayjs(startDatetime)
|
|
332
|
+
let time = ''
|
|
333
|
+
|
|
334
|
+
if (endDatetime) {
|
|
335
|
+
const endDateDayjs = dayjs(endDatetime)
|
|
336
|
+
if (
|
|
337
|
+
endDateDayjs.diff(startDateDayjs, 'hour') <= 24 &&
|
|
338
|
+
endDateDayjs.diff(startDateDayjs, 'day') === 0
|
|
339
|
+
) {
|
|
340
|
+
// Event is less than 24 hours and spans 1 day
|
|
341
|
+
if (endTime) {
|
|
342
|
+
if (startDateDayjs.format('a') === endDateDayjs.format('a')) {
|
|
343
|
+
time = `${startDateDayjs.format('h:mm')}-${endDateDayjs.format('h:mm a z')}`
|
|
344
|
+
} else {
|
|
345
|
+
time = `${startDateDayjs.format('h:mm a')} - ${endDateDayjs.format('h:mm a z')}`
|
|
346
|
+
}
|
|
347
|
+
} else {
|
|
348
|
+
time = `${startDateDayjs.format('h:mm a z')}`
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return time
|
|
353
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** TailwindCSS Configuration File
|
|
3
|
+
**
|
|
4
|
+
** Docs: https://tailwindcss.com/docs/configuration
|
|
5
|
+
** Default: https://github.com/tailwindcss/tailwindcss/blob/master/stubs/defaultConfig.stub.js
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// import explorer 1's tailwind config
|
|
9
|
+
import explorer1Config from '@explorer-1/common/tailwind.config';
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
...explorer1Config,
|
|
13
|
+
content: [
|
|
14
|
+
'./index.html',
|
|
15
|
+
'./src/App.vue',
|
|
16
|
+
'./src/components/**/*.vue',
|
|
17
|
+
'./.www-frontend_temp/components/!(_docs)/**/*.vue',
|
|
18
|
+
'./.www-frontend_temp/layouts/**/*.vue',
|
|
19
|
+
'./.www-frontend_temp/pages/**/*.vue',
|
|
20
|
+
'./.www-frontend_temp/mixins/**/*.vue',
|
|
21
|
+
'./.www-frontend_temp/plugins/**/*.js',
|
|
22
|
+
'./.www-frontend_temp/nuxt.config.js',
|
|
23
|
+
],
|
|
24
|
+
};
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"useDefineForClassFields": true,
|
|
5
|
+
"module": "ESNext",
|
|
6
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
7
|
+
"skipLibCheck": true,
|
|
8
|
+
|
|
9
|
+
/* Bundler mode */
|
|
10
|
+
"moduleResolution": "bundler",
|
|
11
|
+
"allowImportingTsExtensions": true,
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"isolatedModules": true,
|
|
14
|
+
"noEmit": true,
|
|
15
|
+
"jsx": "preserve",
|
|
16
|
+
|
|
17
|
+
/* Linting */
|
|
18
|
+
"strict": true,
|
|
19
|
+
"noUnusedLocals": true,
|
|
20
|
+
"noUnusedParameters": true,
|
|
21
|
+
"noFallthroughCasesInSwitch": true,
|
|
22
|
+
|
|
23
|
+
/* Custom */
|
|
24
|
+
"allowJs": true
|
|
25
|
+
},
|
|
26
|
+
"exclude": ["node_modules"],
|
|
27
|
+
"include": ["src/**/*"],
|
|
28
|
+
"references": [{ "path": "./tsconfig.node.json" }]
|
|
29
|
+
}
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { defineConfig } from 'vite'
|
|
2
|
+
import { resolve } from 'node:path'
|
|
3
|
+
import vue from '@vitejs/plugin-vue'
|
|
4
|
+
import dts from 'vite-plugin-dts'
|
|
5
|
+
import Components from 'unplugin-vue-components/vite'
|
|
6
|
+
|
|
7
|
+
// https://vitejs.dev/config/
|
|
8
|
+
export default defineConfig({
|
|
9
|
+
plugins: [
|
|
10
|
+
vue(),
|
|
11
|
+
dts({
|
|
12
|
+
insertTypesEntry: true
|
|
13
|
+
}),
|
|
14
|
+
Components({
|
|
15
|
+
dirs: ['./src/components', './src/templates']
|
|
16
|
+
})
|
|
17
|
+
],
|
|
18
|
+
css: {
|
|
19
|
+
preprocessorOptions: {
|
|
20
|
+
scss: {
|
|
21
|
+
additionalData: `@import "@explorer-1/common/src/scss/_hover.scss";`
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
// build: {
|
|
26
|
+
// rollupOptions: {
|
|
27
|
+
// output: {
|
|
28
|
+
// assetFileNames: 'assets/[name].[ext]',
|
|
29
|
+
// entryFileNames: 'assets/[name].js',
|
|
30
|
+
// chunkFileNames: 'assets/[name].js'
|
|
31
|
+
// }
|
|
32
|
+
// }
|
|
33
|
+
// }
|
|
34
|
+
build: {
|
|
35
|
+
lib: {
|
|
36
|
+
// Could also be a dictionary or array of multiple entry points
|
|
37
|
+
entry: resolve(__dirname, 'lib/main.ts'),
|
|
38
|
+
name: 'Explorer1Vue',
|
|
39
|
+
// the proper extensions will be added
|
|
40
|
+
fileName: 'explorer-1-vue'
|
|
41
|
+
},
|
|
42
|
+
rollupOptions: {
|
|
43
|
+
// make sure to externalize deps that shouldn't be bundled
|
|
44
|
+
// into your library
|
|
45
|
+
external: ['vue', 'swiper', '@fancyapps/ui', 'dayjs', 'click-outside-vue3'],
|
|
46
|
+
output: {
|
|
47
|
+
// Provide global variables to use in the UMD build
|
|
48
|
+
// for externalized deps
|
|
49
|
+
globals: {
|
|
50
|
+
vue: 'Vue'
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
})
|