From aebce6e50ece296b5dc63681f7ae0b6ed20b4bcc Mon Sep 17 00:00:00 2001 From: David Sheldrick Date: Mon, 24 Feb 2020 14:58:56 +0000 Subject: [PATCH] move js stuff to repo root --- .circleci/config.yml | 12 +- .gitattributes | 2 + .gitignore | 36 +- emission/.gqlconfig => .gqlconfig | 0 emission/.npmrc => .npmrc | 0 emission/.nvmrc => .nvmrc | 0 emission/.prettierignore => .prettierignore | 0 emission/.stylelintrc => .stylelintrc | 0 .travis.yml | 7 +- .vscode/extensions.json | 6 +- {emission/.vscode => .vscode}/launch.json | 0 {emission/.vscode => .vscode}/settings.json | 4 - {emission/.vscode => .vscode}/tasks.json | 0 emission/.yarnrc => .yarnrc | 0 Artsy.xcodeproj/project.pbxproj | 4 +- Artsy/App/ARAppDelegate+Emission.m | 2 +- Podfile | 13 +- Podfile.lock | 148 +- README.md | 1 - .../__mocks__ => __mocks__}/react-relay.js | 0 emission/apollo.config.js => apollo.config.js | 0 emission/babel.config.js => babel.config.js | 0 emission/dangerfile.ts => dangerfile.ts | 21 +- .../cityDataSortedByDisplayPreference.json | 0 {emission/data => data}/colors.json | 0 .../data => data}/complete.queryMap.json | 0 {emission/data => data}/schema.graphql | 0 docs/updating_emission.md | 28 - docs/using_dev_emission.md | 28 - emission/.autorc | 3 - emission/.gitignore | 68 - emission/.storybook/webpack.config.js | 30 - emission/.vscode/extensions.json | 4 - emission/Emission.podspec | 24 +- emission/Example/.ruby-version | 1 - .../Emission.xcodeproj/project.pbxproj | 1219 - .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcschemes/Emission Example.xcscheme | 124 - .../xcshareddata/xcschemes/Emission.xcscheme | 123 - .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../Emission/ARAdminPreloadTableViewCell.h | 6 - .../Emission/ARAdminPreloadTableViewCell.m | 22 - .../ARAdminSentryBreadcrumbViewController.h | 5 - .../ARAdminSentryBreadcrumbViewController.m | 80 - .../Example/Emission/ARAdminTableViewCell.h | 10 - .../Example/Emission/ARAdminTableViewCell.m | 63 - .../Example/Emission/ARAnimatedTickView.h | 9 - .../Example/Emission/ARAnimatedTickView.m | 176 - emission/Example/Emission/ARDefaults.h | 19 - emission/Example/Emission/ARDefaults.m | 50 - emission/Example/Emission/ARLabOptions.h | 20 - emission/Example/Emission/ARLabOptions.m | 71 - emission/Example/Emission/ARMacros.h | 6 - .../Example/Emission/ARRootViewController.h | 9 - .../Example/Emission/ARRootViewController.m | 564 - .../ARStorybookComponentViewController.h | 11 - .../ARStorybookComponentViewController.m | 10 - .../Example/Emission/ARTickedTableViewCell.h | 8 - .../Example/Emission/ARTickedTableViewCell.m | 36 - .../Emission/ARTopMenuViewController.h | 7 - .../Emission/ARTopMenuViewController.m | 37 - emission/Example/Emission/AppDelegate.h | 13 - emission/Example/Emission/AppDelegate.m | 437 - emission/Example/Emission/AppSetup.h | 28 - emission/Example/Emission/AppSetup.m | 92 - .../AppIcon.appiconset/Contents.json | 110 - .../AppIcon.appiconset/Emission-itunes.png | Bin 257105 -> 0 bytes .../AppIcon.appiconset/Icon-60@2x.png | Bin 8078 -> 0 bytes .../AppIcon.appiconset/Icon-Small-40@2x-1.png | Bin 4130 -> 0 bytes .../AppIcon.appiconset/Icon-Small-40@2x.png | Bin 4130 -> 0 bytes .../AppIcon.appiconset/Icon-Small@2x-1.png | Bin 2623 -> 0 bytes .../AppIcon.appiconset/Icon-Small@2x.png | Bin 2623 -> 0 bytes .../AppIcon.appiconset/ipad_app_76@1x.png | Bin 3936 -> 0 bytes .../AppIcon.appiconset/ipad_app_76@2x.png | Bin 13097 -> 0 bytes .../AppIcon.appiconset/ipad_pro_app_83@2x.png | Bin 17577 -> 0 bytes .../AppIcon.appiconset/iphone_app_60@3x.png | Bin 18998 -> 0 bytes .../iphone_settings_29@3x.png | Bin 4911 -> 0 bytes .../iphone_spotlight_40@3x.png | Bin 8078 -> 0 bytes .../Emission/Assets.xcassets/Contents.json | 6 - .../gradient.imageset/Contents.json | 21 - .../gradient.imageset/gradient.png | Bin 6542 -> 0 bytes .../Example/Emission/AuthenticationManager.h | 25 - .../Example/Emission/AuthenticationManager.m | 136 - emission/Example/Emission/Back.png | Bin 624 -> 0 bytes emission/Example/Emission/Back@2x.png | Bin 847 -> 0 bytes emission/Example/Emission/Back@3x.png | Bin 1105 -> 0 bytes emission/Example/Emission/BackArrow@2x.png | Bin 15172 -> 0 bytes .../Example/Emission/BackArrowBlack@2x.png | Bin 2920 -> 0 bytes .../Emission/BackArrow_Highlighted@2x.png | Bin 14766 -> 0 bytes .../Emission/Base.lproj/LaunchScreen.xib | 68 - .../Emission/EigenLikeAdminViewController.h | 44 - .../Emission/EigenLikeAdminViewController.m | 155 - .../Emission/EigenLikeNavigationController.h | 10 - .../Emission/EigenLikeNavigationController.m | 83 - .../Emission/Emission-Bridging-Header.h | 4 - .../Example/Emission/Emission.entitlements | 17 - emission/Example/Emission/Info.plist | 65 - .../Emission/InternalWebViewController.h | 5 - .../Emission/InternalWebViewController.m | 42 - emission/Example/Emission/LoadingSpinner.h | 8 - emission/Example/Emission/LoadingSpinner.m | 52 - .../Emission/NSDateFormatter+TimeAgo.h | 10 - .../Emission/NSDateFormatter+TimeAgo.m | 45 - emission/Example/Emission/Placeholder.swift | 4 - .../Example/Emission/UnroutedViewController.h | 7 - .../Example/Emission/UnroutedViewController.m | 110 - emission/Example/Emission/index.ios.js | 4 - emission/Example/Emission/index.storybooks.js | 14 - emission/Example/Emission/index.tests.ios.js | 1 - emission/Example/Emission/logo@2x.png | Bin 46105 -> 0 bytes emission/Example/Emission/main.m | 18 - ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 29819 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 24154 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 29569 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 18876 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 16251 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 20939 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 27544 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 27441 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 27806 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 19159 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 18610 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 30965 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 18793 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 26254 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 20996 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 37921 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 19878 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 30899 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 27197 -> 0 bytes ...1f82558d8134f6cbebceb9e67d04980&quality=95 | Bin 22871 -> 0 bytes .../rembrandt-harmensz-van-rijn-1_page-1.json | 168 - .../rembrandt-harmensz-van-rijn-1_page-2.json | 328 - emission/Example/EmissionTests/Info.plist | 24 - .../OpaqueImageViewComponentTests.m | 87 - .../Example/EmissionTests/RCTTest/LICENSE | 21 - .../RCTTest/RCTSnapshotManager.h | 14 - .../RCTTest/RCTSnapshotManager.m | 48 - .../EmissionTests/RCTTest/RCTTestModule.h | 47 - .../EmissionTests/RCTTest/RCTTestModule.m | 91 - .../EmissionTests/RCTTest/RCTTestRunner.h | 138 - .../EmissionTests/RCTTest/RCTTestRunner.m | 197 - .../Example/EmissionTests/RCTTest/README.md | 16 - ...tion_when_given_an_explicit_width_1@2x.png | Bin 25508 -> 0 bytes ...tion_when_given_an_explicit_width_1@3x.png | Bin 62888 -> 0 bytes ...sizing_to_fill_the_available_size_1@2x.png | Bin 22958 -> 0 bytes ...sizing_to_fill_the_available_size_1@3x.png | Bin 57955 -> 0 bytes ...ion_when_given_an_explicit_height_1@2x.png | Bin 21930 -> 0 bytes ...ion_when_given_an_explicit_height_1@3x.png | Bin 55923 -> 0 bytes ...tion_when_given_an_explicit_width_1@2x.png | Bin 22575 -> 0 bytes ...tion_when_given_an_explicit_width_1@3x.png | Bin 56784 -> 0 bytes emission/Example/EmissionTests/TestApps.js | 21 - emission/Example/EmissionTests/TestHelper.h | 24 - emission/Example/EmissionTests/TestHelper.m | 154 - .../Example/EmissionUITests/EmissionUITests.m | 40 - emission/Example/EmissionUITests/Info.plist | 24 - emission/Example/Gemfile | 13 - emission/Example/Gemfile.lock | 91 - emission/Example/Podfile | 130 - emission/Example/Podfile.lock | 576 - .../UITabBarDownloadsTemplate@2x.png | Bin 607 -> 0 bytes emission/Example/Resources/style.json | 1295 - .../Example/compile_commands_emitting_clang | 9 - emission/LICENSE | 21 - emission/Makefile | 101 - emission/Pod/Assets/Emission.js | 1908 -- emission/Pod/Assets/Emission.js.map | 1 - emission/Pod/Assets/Emission.js.meta | 1 - emission/cleanup.diff | 24746 ---------------- emission/docs/running-emission-in-eigen.md | 3 - emission/docs/running_on_device.md | 45 - emission/docs/using_the_beta.md | 26 - emission/docs/welcome-to-beta.md | 41 - emission/index.tests.ios.js | 3 - emission/metro.config.js | 5 - emission/relay-todos.txt | 1 - .../scripts/ci-skip-native-if-possible.js | 35 - .../scripts/deploy-react-native-podspecs.js | 70 - emission/scripts/post_installs.sh | 4 - emission/scripts/update-graphql-fragments.js | 73 - emission/scripts/update-tests-with-theme.js | 62 - emission/unused-fields.txt | 108 - {emission/images => images}/BMW-logo.jpg | Bin {emission/images => images}/SearchButton.png | Bin .../images => images}/SearchButton@2x.png | Bin .../images => images}/SearchButton@3x.png | Bin .../SearchButtonWhite@2x.png | Bin {emission/images => images}/angle-left.png | Bin {emission/images => images}/angle-left@2x.png | Bin {emission/images => images}/angle-left@3x.png | Bin {emission/images => images}/cam.png | Bin {emission/images => images}/cam@2x.png | Bin {emission/images => images}/cam@3x.png | Bin {emission/images => images}/chevron.png | Bin {emission/images => images}/chevron@2x.png | Bin {emission/images => images}/chevron@3x.png | Bin .../images => images}/circle-check-green.png | Bin .../circle-check-green@2x.png | Bin .../circle-check-green@3x.png | Bin .../images => images}/circle-exclamation.png | Bin .../circle-exclamation@2x.png | Bin .../circle-exclamation@3x.png | Bin {emission/images => images}/circle-x-red.png | Bin .../images => images}/circle-x-red@2x.png | Bin .../images => images}/circle-x-red@3x.png | Bin .../consignments/black-tick.png | Bin .../consignments/black-tick@2x.png | Bin .../consignments/camera-black.png | Bin .../consignments/camera-black@2x.png | Bin .../consignments/close-x.png | Bin .../consignments/close-x@2x.png | Bin .../images => images}/consignments/email.png | Bin .../consignments/email@2x.png | Bin .../consignments/failure.png | Bin .../consignments/failure@2x.png | Bin .../consignments/failure@3x.png | Bin .../images => images}/consignments/hammer.png | Bin .../consignments/hammer@2x.png | Bin .../consignments/map-pin.png | Bin .../consignments/map-pin@2x.png | Bin .../images => images}/consignments/plus.png | Bin .../consignments/plus@2x.png | Bin .../consignments/success.png | Bin .../consignments/success@2x.png | Bin .../consignments/success@3x.png | Bin {emission/images => images}/contact.png | Bin {emission/images => images}/contact@2x.png | Bin {emission/images => images}/contact@3x.png | Bin {emission/images => images}/find.png | Bin {emission/images => images}/find@2x.png | Bin {emission/images => images}/find@3x.png | Bin .../images => images}/horizontal_chevron.png | Bin .../horizontal_chevron@2x.png | Bin .../horizontal_chevron@3x.png | Bin .../horizontal_chevron_white.png | Bin .../horizontal_chevron_white@2x.png | Bin .../horizontal_chevron_white@3x.png | Bin {emission/images => images}/map-bg.png | Bin {emission/images => images}/map.png | Bin {emission/images => images}/message.png | Bin {emission/images => images}/message@2x.png | Bin {emission/images => images}/message@3x.png | Bin {emission/images => images}/money.png | Bin {emission/images => images}/money@2x.png | Bin {emission/images => images}/money@3x.png | Bin {emission/images => images}/offer.png | Bin {emission/images => images}/offer@2x.png | Bin {emission/images => images}/offer@3x.png | Bin {emission/images => images}/paddle.png | Bin {emission/images => images}/paddle@2x.png | Bin {emission/images => images}/paddle@3x.png | Bin {emission/images => images}/pay.png | Bin {emission/images => images}/pay@2x.png | Bin {emission/images => images}/pay@3x.png | Bin .../images => images}/payment_request.png | Bin .../images => images}/payment_request@2x.png | Bin .../images => images}/payment_request@3x.png | Bin {emission/images => images}/pdf.png | Bin {emission/images => images}/pdf@2x.png | Bin {emission/images => images}/pdf@3x.png | Bin {emission/images => images}/sell.png | Bin {emission/images => images}/sell@2x.png | Bin {emission/images => images}/sell@3x.png | Bin {emission/images => images}/whitespinner.png | Bin .../images => images}/whitespinner@2x.png | Bin emission/index.ios.js => index.ios.js | 0 index.tests.ios.js | 2 + .../npm-podspecs.json => npm-podspecs.json | 0 emission/package.json => package.json | 21 +- .../react-native-sentry+0.30.3.patch | 0 .../relay-compiler+6.0.0.patch | 0 .../relay-mock-network-layer+2.0.0.patch | 0 emission/relay.config.js => relay.config.js | 0 emission/renovate.json => renovate.json | 0 .../await-previous-builds.js | 0 .../scripts => scripts}/find-unused-fields.ts | 0 .../generate-cities-cache.js | 0 .../generate-cities-objc.js | 0 .../generate-graphql-query-map.js | 0 .../preheatGraphQLCache.js | 0 {emission/scripts => scripts}/queryMap.js | 0 .../scripts => scripts}/update-metaphysics.js | 0 .../AboutArtist_artwork.graphql.ts | 0 .../AboutWork_artwork.graphql.ts | 0 .../__generated__/About_gene.graphql.ts | 0 .../__generated__/ActiveBid_bid.graphql.ts | 0 .../__generated__/ActiveBidsQuery.graphql.ts | 0 .../ActiveBidsRefetchQuery.graphql.ts | 0 .../__generated__/ActiveBids_me.graphql.ts | 0 .../__generated__/Article_article.graphql.ts | 0 .../Articles_articles.graphql.ts | 0 .../ArtistAbout_artist.graphql.ts | 0 .../ArtistArtworksQuery.graphql.ts | 0 .../ArtistArtworks_artist.graphql.ts | 0 .../ArtistCard_artist.graphql.ts | 0 ...rtistHeaderFollowArtistMutation.graphql.ts | 0 .../ArtistHeaderQuery.graphql.ts | 0 .../ArtistHeader_artist.graphql.ts | 0 ...istListItemFollowArtistMutation.graphql.ts | 0 .../ArtistListItemTestsQuery.graphql.ts | 0 .../ArtistListItem_artist.graphql.ts | 0 .../__generated__/ArtistQuery.graphql.ts | 0 .../ArtistRailFollowMutation.graphql.ts | 0 .../__generated__/ArtistRail_rail.graphql.ts | 0 .../__generated__/ArtistShow_show.graphql.ts | 0 .../ArtistShows_artist.graphql.ts | 0 .../__generated__/ArtistTestsQuery.graphql.ts | 0 .../__generated__/Artist_artist.graphql.ts | 0 .../ArtistsGroupedByNameTestsQuery.graphql.ts | 0 .../__generated__/ArtistsMeQuery.graphql.ts | 0 .../__generated__/Artists_me.graphql.ts | 0 .../ArtworkAboveTheFoldQuery.graphql.ts | 0 .../ArtworkActionsSaveMutation.graphql.ts | 0 .../ArtworkActionsTestsErrorQuery.graphql.ts | 0 .../ArtworkActionsTestsQuery.graphql.ts | 0 .../ArtworkActions_artwork.graphql.ts | 0 ...ttributionClassFAQRendererQuery.graphql.ts | 0 ...ssFAQ_artworkAttributionClasses.graphql.ts | 0 .../ArtworkCarouselHeader_rail.graphql.ts | 0 .../ArtworkCarousel_rail.graphql.ts | 0 .../ArtworkDetails_artwork.graphql.ts | 0 .../ArtworkExtraLinks_artwork.graphql.ts | 0 .../__generated__/ArtworkFullQuery.graphql.ts | 0 .../ArtworkGridItem_artwork.graphql.ts | 0 .../ArtworkHeader_artwork.graphql.ts | 0 .../ArtworkHistory_artwork.graphql.ts | 0 ...rtworkMarkAsRecentlyViewedQuery.graphql.ts | 0 .../ArtworkPreview_artwork.graphql.ts | 0 .../ArtworkRailHeader_rail.graphql.ts | 0 .../ArtworkRailRefetchQuery.graphql.ts | 0 .../__generated__/ArtworkRail_rail.graphql.ts | 0 .../ArtworkTestsQuery.graphql.ts | 0 .../ArtworkTombstoneStoryQuery.graphql.ts | 0 .../ArtworkTombstone_artwork.graphql.ts | 0 .../Artwork_artworkAboveTheFold.graphql.ts | 0 .../ArtworksPreviewTestsQuery.graphql.ts | 0 .../ArtworksPreview_fair.graphql.ts | 0 .../__generated__/ArtworksQuery.graphql.ts | 0 .../__generated__/Artworks_me.graphql.ts | 0 .../AttachmentPreview_attachment.graphql.ts | 0 .../AuctionPriceTestsQuery.graphql.ts | 0 .../AuctionPrice_artwork.graphql.ts | 0 ...tosuggestResultsPaginationQuery.graphql.ts | 0 .../AutosuggestResultsQuery.graphql.ts | 0 .../AutosuggestResults_results.graphql.ts | 0 .../BidButtonTestsQuery.graphql.ts | 0 .../BidButton_artwork.graphql.ts | 0 ...idFlowSelectMaxBidRendererQuery.graphql.ts | 0 .../__generated__/BidFlow_me.graphql.ts | 0 .../BidFlow_sale_artwork.graphql.ts | 0 .../BidResult_sale_artwork.graphql.ts | 0 .../BidderPositionQuery.graphql.ts | 0 .../__generated__/Biography_artist.graphql.ts | 0 .../__generated__/Biography_gene.graphql.ts | 0 .../BuyNowButtonOrderMutation.graphql.ts | 0 .../BuyNowButton_artwork.graphql.ts | 0 .../CategoriesMeQuery.graphql.ts | 0 .../__generated__/Categories_me.graphql.ts | 0 .../__generated__/CityBMWListQuery.graphql.ts | 0 .../__generated__/CityBMWList_city.graphql.ts | 0 .../CityFairListQuery.graphql.ts | 0 .../CityFairList_city.graphql.ts | 0 .../CitySavedListQuery.graphql.ts | 0 .../CitySavedList_viewer.graphql.ts | 0 .../CitySectionListQuery.graphql.ts | 0 .../CitySectionList_city.graphql.ts | 0 ...ArtworksInfiniteScrollGridQuery.graphql.ts | 0 .../CollectionArtworksTestsQuery.graphql.ts | 0 .../CollectionArtworks_collection.graphql.ts | 0 .../CollectionHeaderTestsQuery.graphql.ts | 0 .../CollectionHeader_collection.graphql.ts | 0 .../CollectionTestsQuery.graphql.ts | 0 .../Collection_collection.graphql.ts | 0 ...ercialButtonsTestsMutationQuery.graphql.ts | 0 ...mmercialButtonsTestsRenderQuery.graphql.ts | 0 .../CommercialButtons_artwork.graphql.ts | 0 ...alEditionSetInformation_artwork.graphql.ts | 0 ...ercialInformationSizeInfo_piece.graphql.ts | 0 .../CommercialInformation_artwork.graphql.ts | 0 ...rcialPartnerInformation_artwork.graphql.ts | 0 ...BidCreateBidderPositionMutation.graphql.ts | 0 ...firmBidCreateCreditCardMutation.graphql.ts | 0 .../ConfirmBidRefetchQuery.graphql.ts | 0 .../ConfirmBidUpdateUserMutation.graphql.ts | 0 .../__generated__/ConfirmBid_me.graphql.ts | 0 .../ConfirmBid_sale_artwork.graphql.ts | 0 .../ConsignmentsArtistQuery.graphql.ts | 0 .../ContextCardFollowMutation.graphql.ts | 0 .../ContextCard_artwork.graphql.ts | 0 ...onversationSnippet_conversation.graphql.ts | 0 .../__generated__/Conversation_me.graphql.ts | 0 .../ConversationsQuery.graphql.ts | 0 .../__generated__/Conversations_me.graphql.ts | 0 .../__generated__/DetailTestsQuery.graphql.ts | 0 .../__generated__/Detail_show.graphql.ts | 0 .../__generated__/EventMutation.graphql.ts | 0 .../__generated__/FairArtistsQuery.graphql.ts | 0 .../FairArtistsRendererQuery.graphql.ts | 0 .../FairArtistsTestsQuery.graphql.ts | 0 .../__generated__/FairArtists_fair.graphql.ts | 0 .../FairArtworksQuery.graphql.ts | 0 .../FairArtworksTestsQuery.graphql.ts | 0 .../FairArtworks_fair.graphql.ts | 0 .../FairBMWArtActivationQuery.graphql.ts | 0 .../FairBMWArtActivationTestsQuery.graphql.ts | 0 .../FairBMWArtActivation_fair.graphql.ts | 0 .../FairBoothHeaderMutation.graphql.ts | 0 .../FairBoothHeaderTestsQuery.graphql.ts | 0 .../FairBoothHeader_show.graphql.ts | 0 .../FairBoothPreviewMutation.graphql.ts | 0 .../FairBoothPreview_show.graphql.ts | 0 .../__generated__/FairBoothQuery.graphql.ts | 0 .../FairBoothTestsQuery.graphql.ts | 0 .../__generated__/FairBooth_show.graphql.ts | 0 .../FairDetailShowsQuery.graphql.ts | 0 .../FairDetailTestsQuery.graphql.ts | 0 .../__generated__/FairDetail_fair.graphql.ts | 0 .../FairExhibitorsQuery.graphql.ts | 0 .../FairExhibitorsTestsQuery.graphql.ts | 0 .../FairExhibitors_fair.graphql.ts | 0 .../__generated__/FairHeader_fair.graphql.ts | 0 .../FairMoreInfoQuery.graphql.ts | 0 .../FairMoreInfoTestsQuery.graphql.ts | 0 .../FairMoreInfo_fair.graphql.ts | 0 .../__generated__/FairQuery.graphql.ts | 0 .../__generated__/FairTestsQuery.graphql.ts | 0 .../__generated__/Fair_fair.graphql.ts | 0 .../__generated__/FairsQuery.graphql.ts | 0 .../FairsRail_fairs_module.graphql.ts | 0 .../__generated__/Fairs_me.graphql.ts | 0 .../FavoriteArtistsQuery.graphql.ts | 0 .../FavoriteArtworksQuery.graphql.ts | 0 .../FavoriteCategoriesQuery.graphql.ts | 0 .../FavoriteFairsQuery.graphql.ts | 0 .../FavoriteShowsQuery.graphql.ts | 0 .../FeaturedArtistsTestsQuery.graphql.ts | 0 .../FeaturedArtists_collection.graphql.ts | 0 ...FilteredInfiniteScrollGridQuery.graphql.ts | 0 ...redInfiniteScrollGridTestsQuery.graphql.ts | 0 ...lteredInfiniteScrollGrid_entity.graphql.ts | 0 .../FiltersTestsQuery.graphql.ts | 0 .../Filters_filteredArtworks.graphql.ts | 0 .../FollowArtistButtonMutation.graphql.ts | 0 ...llowArtistButtonTestsErrorQuery.graphql.ts | 0 .../FollowArtistButtonTestsQuery.graphql.ts | 0 .../FollowArtistButton_artist.graphql.ts | 0 .../ForYouRefetchQuery.graphql.ts | 0 .../__generated__/ForYou_forYou.graphql.ts | 0 .../__generated__/GeneQuery.graphql.ts | 0 .../__generated__/Gene_gene.graphql.ts | 0 .../GenericGrid_artworks.graphql.ts | 0 .../GlobalMapTestsQuery.graphql.ts | 0 .../__generated__/GlobalMap_viewer.graphql.ts | 0 .../HeaderFollowGeneMutation.graphql.ts | 0 .../__generated__/Header_gene.graphql.ts | 0 .../__generated__/Header_sale.graphql.ts | 0 .../HeroUnits_hero_units.graphql.ts | 0 .../ImageCarouselTestsQuery.graphql.ts | 0 .../ImageCarousel_images.graphql.ts | 0 .../ImagePreview_attachment.graphql.ts | 0 .../__generated__/InboxQuery.graphql.ts | 0 .../InboxRefetchQuery.graphql.ts | 0 .../__generated__/Inbox_me.graphql.ts | 0 ...teScrollArtworksGrid_connection.graphql.ts | 0 .../__generated__/Inquiry_artwork.graphql.ts | 0 .../LocationMap_location.graphql.ts | 0 .../LoggedInUserInfoQuery.graphql.ts | 0 .../LoggedInUserInfo_me.graphql.ts | 0 .../LotsByFollowedArtistsQuery.graphql.ts | 0 .../LotsByFollowedArtists_query.graphql.ts | 0 .../MakeOfferButtonOrderMutation.graphql.ts | 0 .../MakeOfferButton_artwork.graphql.ts | 0 .../__generated__/MapRendererQuery.graphql.ts | 0 .../__generated__/Message_message.graphql.ts | 0 .../__generated__/MessagesQuery.graphql.ts | 0 .../Messages_conversation.graphql.ts | 0 .../__generated__/Metadata_show.graphql.ts | 0 ...elayRendererFixturesArtistQuery.graphql.ts | 0 ...ckRelayRendererFixturesBadQuery.graphql.ts | 0 .../MockRelayRendererFixturesQuery.graphql.ts | 0 ...ockRelayRendererFixtures_artist.graphql.ts | 0 ...ckRelayRendererFixtures_artwork.graphql.ts | 0 ...endererFixtures_artworkMetadata.graphql.ts | 0 .../__generated__/MoreInfoQuery.graphql.ts | 0 .../MoreInfoTestsQuery.graphql.ts | 0 .../__generated__/MoreInfo_show.graphql.ts | 0 .../Notification_notification.graphql.ts | 0 .../OtherWorks_artwork.graphql.ts | 0 .../PDFPreview_attachment.graphql.ts | 0 ...rArtworkInfiniteScrollGridQuery.graphql.ts | 0 .../PartnerArtworkTestsQuery.graphql.ts | 0 .../PartnerArtwork_partner.graphql.ts | 0 .../PartnerCardFollowMutation.graphql.ts | 0 .../PartnerCardTestsErrorQuery.graphql.ts | 0 .../PartnerCardTestsQuery.graphql.ts | 0 .../PartnerCard_artwork.graphql.ts | 0 ...rtnerFollowButtonFollowMutation.graphql.ts | 0 .../PartnerFollowButton_partner.graphql.ts | 0 .../PartnerHeaderTestsQuery.graphql.ts | 0 .../PartnerHeader_partner.graphql.ts | 0 ...artnerLocationSectionTestsQuery.graphql.ts | 0 .../PartnerLocationSection_partner.graphql.ts | 0 .../PartnerLocationsContainerQuery.graphql.ts | 0 .../PartnerLocationsQuery.graphql.ts | 0 .../PartnerLocationsTestsQuery.graphql.ts | 0 .../PartnerLocations_partner.graphql.ts | 0 .../PartnerMap_location.graphql.ts | 0 ...tnerOverviewInfiniteScrollQuery.graphql.ts | 0 .../PartnerOverviewTestsQuery.graphql.ts | 0 .../PartnerOverview_partner.graphql.ts | 0 .../__generated__/PartnerQuery.graphql.ts | 0 .../PartnerRefetchQuery.graphql.ts | 0 .../PartnerShowRailItem_show.graphql.ts | 0 ...nerShowsInfiniteScrollGridQuery.graphql.ts | 0 .../PartnerShowsRailQuery.graphql.ts | 0 .../PartnerShowsRail_partner.graphql.ts | 0 .../PartnerShowsTestsQuery.graphql.ts | 0 .../PartnerShows_partner.graphql.ts | 0 .../__generated__/Partner_partner.graphql.ts | 0 .../PriceSummaryQuery.graphql.ts | 0 .../PriceSummary_calculatedCost.graphql.ts | 0 .../QueryRenderersArtistQuery.graphql.ts | 0 .../QueryRenderersBidFlowQuery.graphql.ts | 0 .../QueryRenderersCityBMWListQuery.graphql.ts | 0 ...QueryRenderersCityFairListQuery.graphql.ts | 0 ...ueryRenderersCitySavedListQuery.graphql.ts | 0 ...ryRenderersCitySectionListQuery.graphql.ts | 0 .../QueryRenderersCollectionQuery.graphql.ts | 0 ...QueryRenderersConversationQuery.graphql.ts | 0 .../QueryRenderersFairQuery.graphql.ts | 0 .../QueryRenderersForYouQuery.graphql.ts | 0 .../QueryRenderersGeneQuery.graphql.ts | 0 .../QueryRenderersInboxQuery.graphql.ts | 0 .../QueryRenderersInquiryQuery.graphql.ts | 0 ...yRenderersRegistrationFlowQuery.graphql.ts | 0 .../QueryRenderersShowQuery.graphql.ts | 0 .../QueryRenderersWorksForYouQuery.graphql.ts | 0 ...egistrationCreateBidderMutation.graphql.ts | 0 ...trationCreateCreditCardMutation.graphql.ts | 0 .../RegistrationFlow_me.graphql.ts | 0 .../RegistrationFlow_sale.graphql.ts | 0 .../RegistrationUpdateUserMutation.graphql.ts | 0 .../__generated__/Registration_me.graphql.ts | 0 .../Registration_sale.graphql.ts | 0 .../RelatedArtist_artist.graphql.ts | 0 .../RelatedArtists_artists.graphql.ts | 0 .../RequestConditionReportMutation.graphql.ts | 0 .../RequestConditionReportQuery.graphql.ts | 0 .../RequestConditionReport_artwork.graphql.ts | 0 .../RequestConditionReport_me.graphql.ts | 0 .../SaleListItem_sale.graphql.ts | 0 .../__generated__/SalesQuery.graphql.ts | 0 .../SalesRendererQuery.graphql.ts | 0 .../__generated__/Sales_query.graphql.ts | 0 .../SavedFairItemRowMutation.graphql.ts | 0 .../SelectMaxBidRefetchQuery.graphql.ts | 0 .../__generated__/SelectMaxBid_me.graphql.ts | 0 .../SelectMaxBid_sale_artwork.graphql.ts | 0 ...SendConversationMessageMutation.graphql.ts | 0 .../ShowArtistsPreviewTestsQuery.graphql.ts | 0 .../ShowArtistsPreview_show.graphql.ts | 0 .../__generated__/ShowArtistsQuery.graphql.ts | 0 .../ShowArtistsTestsQuery.graphql.ts | 0 .../__generated__/ShowArtists_show.graphql.ts | 0 .../ShowArtworksPreviewTestsQuery.graphql.ts | 0 .../ShowArtworksPreview_show.graphql.ts | 0 .../ShowArtworksQuery.graphql.ts | 0 .../ShowArtworksTestsQuery.graphql.ts | 0 .../ShowArtworks_show.graphql.ts | 0 .../ShowEventSectionTestsQuery.graphql.ts | 0 .../ShowEventSection_event.graphql.ts | 0 .../ShowHeaderFollowShowMutation.graphql.ts | 0 .../__generated__/ShowHeader_show.graphql.ts | 0 .../ShowItemRowMutation.graphql.ts | 0 .../__generated__/ShowItemRow_show.graphql.ts | 0 .../__generated__/ShowItem_show.graphql.ts | 0 .../__generated__/ShowPreview_show.graphql.ts | 0 .../__generated__/ShowQuery.graphql.ts | 0 .../__generated__/ShowTestsQuery.graphql.ts | 0 .../__generated__/Show_show.graphql.ts | 0 .../__generated__/ShowsQuery.graphql.ts | 0 .../__generated__/Shows_me.graphql.ts | 0 .../__generated__/Shows_show.graphql.ts | 0 .../__generated__/SmallList_shows.graphql.ts | 0 .../TimeOffsetProviderQuery.graphql.ts | 0 .../UpdateConversationMutation.graphql.ts | 0 .../VariableSizeShowsList_shows.graphql.ts | 0 .../__generated__/WorksForYouQuery.graphql.ts | 0 .../WorksForYou_query.graphql.ts | 0 .../addAssetToConsignmentMutation.graphql.ts | 0 ...teConsignmentSubmissionMutation.graphql.ts | 0 ...iAssetWithS3CredentialsMutation.graphql.ts | 0 ...MockNetworkLayerTestsAliasQuery.graphql.ts | 0 ...reateMockNetworkLayerTestsQuery.graphql.ts | 0 .../getConvectionGeminiKeyQuery.graphql.ts | 0 ...edentialsForEnvironmentMutation.graphql.ts | 0 .../indexTestsFairBothPreviewQuery.graphql.ts | 0 .../indexTestsFairHeaderQuery.graphql.ts | 0 .../__generated__/indexTestsQuery.graphql.ts | 0 ...teConsignmentSubmissionMutation.graphql.ts | 0 {emission/src => src}/ambient.d.ts | 0 {emission/src => src}/lib/AppRegistry.tsx | 0 .../Components/Artist/Articles/Article.tsx | 0 .../Articles/__tests__/Article-tests.tsx | 0 .../__snapshots__/Article-tests.tsx.snap | 0 .../lib/Components/Artist/Articles/index.tsx | 0 .../lib/Components/Artist/ArtistAbout.tsx | 0 .../Artist/ArtistArtworks/index.tsx | 0 .../lib/Components/Artist/ArtistHeader.tsx | 0 .../Artist/ArtistShows/ArtistShow.tsx | 0 .../Artist/ArtistShows/Metadata.tsx | 0 .../Artist/ArtistShows/SmallList.tsx | 0 .../ArtistShows/VariableSizeShowsList.tsx | 0 .../__tests__/ArtistShow-tests.tsx | 0 .../ArtistShows/__tests__/Metadata-tests.tsx | 0 .../ArtistShows/__tests__/SmallList-tests.tsx | 0 .../__tests__/VariableSizeShowsList-tests.tsx | 0 .../__snapshots__/ArtistShow-tests.tsx.snap | 0 .../__snapshots__/Metadata-tests.tsx.snap | 0 .../__snapshots__/SmallList-tests.tsx.snap | 0 .../VariableSizeShowsList-tests.tsx.snap | 0 .../Components/Artist/ArtistShows/index.tsx | 0 .../lib/Components/Artist/Biography.tsx | 0 .../__stories__/ArtistArticles.story.tsx | 0 .../Artist/__stories__/ArtistHeader.story.tsx | 0 .../Components/Artist/__stories__/index.tsx | 0 .../Artist/__tests__/About-tests.tsx | 0 .../Artist/__tests__/Articles-tests.tsx | 0 .../Artist/__tests__/Artworks-tests.tsx | 0 .../Artist/__tests__/Biography-tests.tsx | 0 .../Artist/__tests__/Header-tests.tsx | 0 .../__snapshots__/About-tests.tsx.snap | 0 .../__snapshots__/Articles-tests.tsx.snap | 0 .../__snapshots__/Artworks-tests.tsx.snap | 0 .../__snapshots__/Biography-tests.tsx.snap | 0 .../__snapshots__/Header-tests.tsx.snap | 0 .../lib/Components/ArtistListItem.tsx | 0 .../lib/Components/ArtistsGroupedByName.tsx | 0 .../ArtworkFilterOptions/SortOptions.tsx | 0 .../__tests__/SortOptions-tests.tsx | 0 .../ArtworkGrids/ArtworkGridItem.tsx | 0 .../Components/ArtworkGrids/GenericGrid.tsx | 0 .../InfiniteScrollArtworksGrid.tsx | 0 .../__tests__/ArtistArtworksGrid-tests.tsx | 0 .../ArtistArtworksGrid-tests.tsx.snap | 0 .../__tests__/ArtworkGridItem-tests.tsx | 0 .../__tests__/GenericGrid-tests.tsx | 0 .../__tests__/InfiniteScrollGrid-tests.tsx | 0 .../__tests__/__fixtures__/artwork.ts | 0 .../ArtworkGridItem-tests.tsx.snap | 0 .../__snapshots__/GenericGrid-tests.tsx.snap | 0 .../InfiniteScrollGrid-tests.tsx.snap | 0 .../Components/Animation/CssTransition.tsx | 0 .../Bidding/Components/Animation/Fade.tsx | 0 .../Bidding/Components/BackButton.tsx | 0 .../Bidding/Components/BidInfoRow.tsx | 0 .../Components/BiddingThemeProvider.tsx | 0 .../Bidding/Components/Checkbox.tsx | 0 .../Bidding/Components/Containers.tsx | 0 .../Components/Bidding/Components/Divider.tsx | 0 .../Components/Bidding/Components/Icon.tsx | 0 .../Components/Bidding/Components/Input.tsx | 0 .../Bidding/Components/MaxBidPicker.tsx | 0 .../Bidding/Components/PaymentInfo.tsx | 0 .../Components/Bidding/Components/Timer.tsx | 0 .../Components/Bidding/Components/Title.tsx | 0 .../Components/__stories__/Checkbox.story.tsx | 0 .../Components/__stories__/Input.story.tsx | 0 .../Components/__stories__/Timer.story.tsx | 0 .../Bidding/Components/__tests__/.gitkeep | 0 .../Components/__tests__/Checkbox-tests.tsx | 0 .../Components/__tests__/Input-tests.tsx | 0 .../__tests__/MaxBidPicker-tests.tsx | 0 .../__tests__/PaymentInfo-tests.tsx | 0 .../Components/__tests__/Timer-tests.tsx | 0 .../Components/__tests__/Title-tests.tsx | 0 .../__snapshots__/MaxBidPicker-tests.tsx.snap | 0 .../__snapshots__/PaymentInfo-tests.tsx.snap | 0 .../__snapshots__/Title-tests.tsx.snap | 0 .../Bidding/Context/TimeOffsetProvider.tsx | 0 .../__tests__/TimeOffsetProvider-tests.tsx | 0 .../lib/Components/Bidding/Elements/Flex.tsx | 0 .../lib/Components/Bidding/Elements/Grid.tsx | 0 .../lib/Components/Bidding/Elements/Image.tsx | 0 .../Components/Bidding/Elements/TextInput.tsx | 0 .../lib/Components/Bidding/Elements/Theme.tsx | 0 .../Components/Bidding/Elements/types.d.ts | 0 .../Components/Bidding/Screens/BidResult.tsx | 0 .../Bidding/Screens/BillingAddress.tsx | 0 .../Screens/ConfirmBid/BidderPositionQuery.ts | 0 .../Screens/ConfirmBid/PriceSummary.tsx | 0 .../Bidding/Screens/ConfirmBid/index.tsx | 0 .../Bidding/Screens/CreditCardForm.tsx | 0 .../Bidding/Screens/Registration.tsx | 0 .../Bidding/Screens/RegistrationResult.tsx | 0 .../Bidding/Screens/SelectCountry.tsx | 0 .../Bidding/Screens/SelectMaxBid.tsx | 0 .../Bidding/Screens/SelectMaxBidEdit.tsx | 0 .../Screens/__stories__/BidResult.story.tsx | 0 .../__stories__/RegistrationResult.story.tsx | 0 .../Bidding/Screens/__tests__/.gitkeep | 0 .../Screens/__tests__/BidResult-tests.tsx | 0 .../__tests__/BillingAddress-tests.tsx | 0 .../Screens/__tests__/ConfirmBid-tests.tsx | 0 .../__tests__/CreditCardForm-tests.tsx | 0 .../Screens/__tests__/Registration-tests.tsx | 0 .../__tests__/RegistrationResult-tests.tsx | 0 .../Screens/__tests__/SelectCountry-tests.tsx | 0 .../Screens/__tests__/SelectMaxBid-tests.tsx | 0 .../__tests__/SelectMaxBidEdit-tests.tsx | 0 .../__snapshots__/BidResult-tests.tsx.snap | 0 .../BillingAddress-tests.tsx.snap | 0 .../__snapshots__/ConfirmBid-tests.tsx.snap | 0 .../CreditCardForm-tests.tsx.snap | 0 .../__snapshots__/Registration-tests.tsx.snap | 0 .../RegistrationResult-tests.tsx.snap | 0 .../SelectCountry-tests.tsx.snap | 0 .../__snapshots__/SelectMaxBid-tests.tsx.snap | 0 .../SelectMaxBidEdit-tests.tsx.snap | 0 .../Validators/__tests__/index-tests.ts | 0 .../Components/Bidding/Validators/index.ts | 0 .../Bidding/__stories__/BidFlow.story.tsx | 0 .../Bidding/__tests__/BidFlow-tests.tsx | 0 .../__tests__/Helpers/FakeNavigator.tsx | 0 .../lib/Components/Bidding/types.ts | 0 .../Buttons/BottomAlignedButtonWrapper.tsx | 0 .../lib/Components/Buttons/CaretButton.tsx | 0 .../Buttons/DarkNavigationButton.tsx | 0 .../Buttons/__stories__/Buttons.story.tsx | 0 .../Buttons/__tests__/CaretButton-tests.tsx | 0 .../__tests__/DarkNavigationButton-tests.tsx | 0 .../__snapshots__/CaretButton-tests.tsx.snap | 0 .../DarkNavigationButton-tests.tsx.snap | 0 .../src => src}/lib/Components/Carousel.tsx | 0 .../lib/Components/ConnectivityBanner.tsx | 0 .../Components/ArtworkConsignmentTodo.tsx | 0 .../Components/BottomAlignedButton.tsx | 0 .../Consignments/Components/CircleImage.tsx | 0 .../Consignments/Components/CloseButton.tsx | 0 .../Consignments/Components/FormElements.tsx | 0 .../Components/ImageSelection.tsx | 0 .../Consignments/Components/NavButton.tsx | 0 .../Consignments/Components/SearchResults.tsx | 0 .../Consignments/Components/TextArea.tsx | 0 .../Consignments/Components/TextInput.tsx | 0 .../Consignments/Components/Toggle.tsx | 0 .../ArtworkConsignmentTodo-tests.tsx | 0 .../__tests__/BottomAlignedButton-tests.tsx | 0 .../__tests__/CircleImage-tests.tsx | 0 .../__tests__/FormElements-tests.tsx | 0 .../__tests__/ImageSelection-tests.tsx | 0 .../Components/__tests__/Runner.tsx | 0 .../__tests__/SearchResults-tests.tsx | 0 .../Components/__tests__/TextArea-tests.tsx | 0 .../Components/__tests__/TextInput-tests.tsx | 0 .../Components/__tests__/Toggle-tests.tsx | 0 .../ArtworkConsignmentTodo-tests.tsx.snap | 0 .../BottomAlignedButton-tests.tsx.snap | 0 .../__snapshots__/CircleImage-tests.tsx.snap | 0 .../ImageSelection-tests.tsx.snap | 0 .../SearchResults-tests.tsx.snap | 0 .../__snapshots__/TextArea-tests.tsx.snap | 0 .../__snapshots__/TextInput-tests.tsx.snap | 0 .../__snapshots__/Toggle-tests.tsx.snap | 0 .../Consignments/Screens/Confirmation.tsx | 0 .../Screens/ConsignmentsArtist.tsx | 0 .../Consignments/Screens/Edition.tsx | 0 .../Consignments/Screens/Location.tsx | 0 .../Consignments/Screens/Metadata.tsx | 0 .../Consignments/Screens/Overview.tsx | 0 .../Consignments/Screens/Provenance.tsx | 0 .../Screens/SelectFromPhotoLibrary.tsx | 0 .../Consignments/Screens/Welcome.tsx | 0 .../Screens/__tests__/Confirmation-tests.tsx | 0 .../__tests__/ConsignmentsArtist-tests.tsx | 0 .../Screens/__tests__/Edition-tests.tsx | 0 .../Screens/__tests__/Location-tests.tsx | 0 .../Screens/__tests__/Metadata-tests.tsx | 0 .../__tests__/Overview-analytics-tests.tsx | 0 .../Overview-local-storage-tests.tsx | 0 .../Screens/__tests__/Overview-tests.tsx | 0 .../__tests__/Overview-uploading-tests.tsx | 0 .../Screens/__tests__/Provenance-tests.tsx | 0 .../SelectFromPhotoLibrary-tests.tsx | 0 .../Screens/__tests__/Welcome-tests.tsx | 0 .../__snapshots__/Edition-tests.tsx.snap | 0 .../__snapshots__/Location-tests.tsx.snap | 0 .../__snapshots__/Metadata-tests.tsx.snap | 0 .../__snapshots__/Overview-tests.tsx.snap | 0 .../__snapshots__/Provenance-tests.tsx.snap | 0 .../SelectFromPhotoLibrary-tests.tsx.snap | 0 .../__snapshots__/Welcome-tests.tsx.snap | 0 .../createGeminiAssetWithS3Credentials.ts | 0 .../Gemini/getConvectionGeminiKey.ts | 0 .../getGeminiCredentialsForEnvironment.ts | 0 .../consignmentSetupToSubmission-tests.ts | 0 .../Submission/addAssetToConsignment.ts | 0 .../consignmentSetupToSubmission.ts | 0 .../Submission/createConsignmentSubmission.ts | 0 .../Submission/geminiUploadToS3.ts | 0 .../Submission/updateConsignmentSubmission.ts | 0 .../Submission/uploadPhotoToGemini.ts | 0 .../Consignments/Typography/index.tsx | 0 .../__stories__/BottomAligned.story.tsx | 0 .../__stories__/Consignments.story.tsx | 0 .../__stories__/ImageSelection.story.tsx | 0 .../Consignments/__stories__/Search.story.tsx | 0 .../Consignments/__stories__/Style.story.tsx | 0 .../Consignments/__stories__/Todo.story.tsx | 0 .../__stories__/consignmentSetups.ts | 0 .../Consignments/__stories__/index.tsx | 0 .../__snapshots__/index-tests.tsx.snap | 0 .../__tests__/fixtures/places.json | 0 .../Consignments/__tests__/index-tests.tsx | 0 .../lib/Components/Consignments/index.tsx | 0 .../Components/Countdown/DurationProvider.tsx | 0 .../lib/Components/Countdown/StateManager.tsx | 0 .../lib/Components/Countdown/Ticker.tsx | 0 .../__tests__/DurationProvider-tests.tsx | 0 .../__tests__/StateManager-tests.tsx | 0 .../Countdown/__tests__/Ticker-tests.tsx | 0 .../lib/Components/Countdown/index.ts | 0 .../src => src}/lib/Components/DottedLine.tsx | 0 .../EntityList/Components/EntityItem.tsx | 0 .../EntityList/__tests__/index-tests.tsx | 0 .../lib/Components/EntityList/index.tsx | 0 .../src => src}/lib/Components/Events.tsx | 0 .../lib/Components/FilterModal.tsx | 0 .../FilteredInfiniteScrollGrid.tsx | 0 .../FilteredInfiniteScrollGrid/Filters.tsx | 0 .../FilteredInfiniteScrollGrid-tests.tsx | 0 .../__tests__/Filters-tests.tsx | 0 .../FilteredInfiniteScrollGrid/index.ts | 0 .../src => src}/lib/Components/Gene/About.tsx | 0 .../lib/Components/Gene/Biography.tsx | 0 .../lib/Components/Gene/Header.tsx | 0 .../Components/Gene/__tests__/About-tests.tsx | 0 .../Gene/__tests__/Biography-tests.tsx | 0 .../Gene/__tests__/Header-tests.tsx | 0 .../__snapshots__/About-tests.tsx.snap | 0 .../__snapshots__/Biography-tests.tsx.snap | 0 .../__snapshots__/Header-tests.tsx.snap | 0 .../Home/ArtistRails/ArtistCard.tsx | 0 .../Home/ArtistRails/ArtistRail.tsx | 0 .../__tests__/ArtistCard-tests.tsx | 0 .../__snapshots__/ArtistCard-tests.tsx.snap | 0 .../Home/ArtworkRails/ArtworkRail.tsx | 0 .../Home/ArtworkRails/ArtworkRailHeader.tsx | 0 .../__tests__/ArtworkRail-tests.tsx | 0 .../__snapshots__/ArtworkRail-tests.tsx.snap | 0 .../lib/Components/Home/HeroUnits.tsx | 0 .../lib/Components/Home/SearchBar.tsx | 0 .../lib/Components/Home/SectionTitle.tsx | 0 .../lib/Components/HoursCollapsible.tsx | 0 .../Components/Inbox/ActiveBids/ActiveBid.tsx | 0 .../__stories__/ActiveBids.story.tsx | 0 .../ActiveBids/__tests__/ActiveBid-tests.tsx | 0 .../__snapshots__/ActiveBid-tests.tsx.snap | 0 .../lib/Components/Inbox/ActiveBids/index.tsx | 0 .../Components/Inbox/Conversations/Avatar.tsx | 0 .../Inbox/Conversations/Composer.tsx | 0 .../Conversations/ConversationSnippet.tsx | 0 .../Inbox/Conversations/Message.tsx | 0 .../Inbox/Conversations/Messages.tsx | 0 .../Conversations/Preview/ArtworkPreview.tsx | 0 .../Preview/Attachment/AttachmentPreview.tsx | 0 .../Preview/Attachment/ImagePreview.tsx | 0 .../Preview/Attachment/PDFPreview.tsx | 0 .../__tests__/ImagePreview-tests.tsx | 0 .../Attachment/__tests__/PDFPreview-tests.tsx | 0 .../__snapshots__/ImagePreview-tests.tsx.snap | 0 .../__snapshots__/PDFPreview-tests.tsx.snap | 0 .../Conversations/Preview/ShowPreview.tsx | 0 .../__tests__/ArtworkPreview-tests.tsx | 0 .../Preview/__tests__/ShowPreview-tests.tsx | 0 .../ArtworkPreview-tests.tsx.snap | 0 .../__snapshots__/ShowPreview-tests.tsx.snap | 0 .../Conversations/SendConversationMessage.ts | 0 .../Inbox/Conversations/UpdateConversation.ts | 0 .../Inbox/Conversations/ZeroStateInbox.tsx | 0 .../__stories__/ArtworkPreview.story.tsx | 0 .../__stories__/Avatar.story.tsx | 0 .../__stories__/Composer.story.tsx | 0 .../__stories__/ConversationSnippet.story.tsx | 0 .../Conversations/__stories__/Inbox.story.tsx | 0 .../__stories__/Message.story.tsx | 0 .../__stories__/ZeroStateInbox.story.tsx | 0 .../Inbox/Conversations/__stories__/index.ts | 0 .../Conversations/__tests__/Avatar-tests.tsx | 0 .../__tests__/Composer-tests.tsx | 0 .../__tests__/ConversationSnippet-tests.tsx | 0 .../__tests__/Conversations-tests.tsx | 0 .../Conversations/__tests__/Message-tests.tsx | 0 .../__tests__/Messages-tests.tsx | 0 .../__tests__/ZeroStateInbox-tests.tsx | 0 .../__snapshots__/Avatar-tests.tsx.snap | 0 .../__snapshots__/Composer-tests.tsx.snap | 0 .../ConversationSnippet-tests.tsx.snap | 0 .../Conversations-tests.tsx.snap | 0 .../__snapshots__/Message-tests.tsx.snap | 0 .../__snapshots__/Messages-tests.tsx.snap | 0 .../ZeroStateInbox-tests.tsx.snap | 0 .../Components/Inbox/Conversations/index.tsx | 0 .../Typography/__tests__/index-tests.tsx | 0 .../lib/Components/Inbox/Typography/index.tsx | 0 .../lib/Components/Lists/SavedFairItemRow.tsx | 0 .../lib/Components/Lists/SavedItemRow.tsx | 0 .../lib/Components/Lists/ShowItemRow.tsx | 0 .../Lists/__tests__/SavedItemRow-tests.tsx | 0 .../__snapshots__/SavedItemRow-tests.tsx.snap | 0 .../lib/Components/LoadFailureView.tsx | 0 .../__snapshots__/index-tests.tsx.snap | 0 .../LocationMap/__tests__/index-tests.tsx | 0 .../lib/Components/LocationMap/index.tsx | 0 .../src => src}/lib/Components/Markdown.tsx | 0 .../src => src}/lib/Components/Modal.tsx | 0 .../OpaqueImageView/OpaqueImageView.tsx | 0 .../OpaqueImageView/createGeminiUrl.tsx | 0 .../src => src}/lib/Components/Picker.tsx | 0 .../src => src}/lib/Components/Portal.tsx | 0 .../src => src}/lib/Components/ReadMore.tsx | 0 .../RelatedArtists/RelatedArtist.tsx | 0 .../RelatedArtists/__tests__/Layout-tests.tsx | 0 .../__snapshots__/Layout-tests.tsx.snap | 0 .../lib/Components/RelatedArtists/index.tsx | 0 .../lib/Components/RetryErrorBoundary.tsx | 0 .../lib/Components/Sale/Header.tsx | 0 .../Sale/__tests__/Header-tests.tsx | 0 .../__snapshots__/Header-tests.tsx.snap | 0 .../src => src}/lib/Components/ScrollView.tsx | 0 .../lib/Components/ScrollableTabBar.tsx | 0 .../src => src}/lib/Components/Separator.tsx | 0 .../Components/Show/ShowArtistsPreview.tsx | 0 .../Components/Show/ShowArtworksPreview.tsx | 0 .../__tests__/ShowArtistsPreview-tests.tsx | 0 .../__tests__/ShowArtworksPreview-tests.tsx | 0 .../ShowArtworksPreview-tests.tsx.snap | 0 .../src => src}/lib/Components/Spinner.tsx | 0 .../lib/Components/States/ZeroState.tsx | 0 .../States/__stories__/ZeroState.story.tsx | 0 .../States/__tests__/ZeroState-tests.tsx | 0 .../StickyTabPage/SnappyHorizontalRail.tsx | 0 .../StickyTabPage/StickyTabPage.tsx | 0 .../StickyTabPage/StickyTabPageFlatList.tsx | 0 .../StickyTabPage/StickyTabPageScrollView.tsx | 0 .../StickyTabPage/StickyTabPageTabBar.tsx | 0 .../StickyTabPage/reanimatedHelpers.ts | 0 .../Components/Storybooks/SectionBrowser.tsx | 0 .../Components/Storybooks/StoryBrowser.tsx | 0 .../lib/Components/Storybooks/Styles.tsx | 0 .../__tests__/SectionBrowser-tests.tsx | 0 .../__tests__/StoryBrowser-tests.tsx | 0 .../Storybooks/__tests__/utils-tests.tsx | 0 .../lib/Components/Storybooks/index.tsx | 0 .../lib/Components/Storybooks/utils.ts | 0 .../src => src}/lib/Components/SwitchView.tsx | 0 .../src => src}/lib/Components/TabBar.tsx | 0 .../lib/Components/TabEmptyState.tsx | 0 .../src => src}/lib/Components/TabView.tsx | 0 .../lib/Components/Text/Headline.tsx | 0 .../lib/Components/Text/LinkText.tsx | 0 .../src => src}/lib/Components/Text/Serif.tsx | 0 .../Text/__stories__/Typography.story.tsx | 0 .../src => src}/lib/Components/Video.tsx | 0 .../Components/WorksForYou/Notification.tsx | 0 .../__tests__/Notification-tests.tsx | 0 .../__snapshots__/Notification-tests.tsx.snap | 0 .../__stories__/DottedLine.story.tsx | 0 .../Components/__stories__/Markdown.story.tsx | 0 .../Components/__stories__/Modal.story.tsx | 0 .../Components/__stories__/TabBar.story.tsx | 0 .../Components/__stories__/Video.story.tsx | 0 .../__tests__/ArtistListItem-tests.tsx | 0 .../__tests__/ArtistsGroupedByName-tests.tsx | 0 .../Components/__tests__/Carousel-tests.tsx | 0 .../__tests__/ConnectivityBanner-tests.tsx | 0 .../__tests__/FilterModal-tests.tsx | 0 .../__tests__/HoursCollapsible-tests.tsx | 0 .../Components/__tests__/Markdown-tests.tsx | 0 .../lib/Components/__tests__/Modal-tests.tsx | 0 .../lib/Components/__tests__/Picker-tests.tsx | 0 .../lib/Components/__tests__/Portal-tests.tsx | 0 .../Components/__tests__/ReadMore-tests.tsx | 0 .../__tests__/RetryErrorBoundary-tests.tsx | 0 .../Components/__tests__/ScrollView-tests.tsx | 0 .../Components/__tests__/Separator-tests.tsx | 0 .../Components/__tests__/TabView-tests.tsx | 0 .../ArtistListItem-tests.tsx.snap | 0 .../ArtistsGroupedByName-tests.tsx.snap | 0 .../__snapshots__/Carousel-tests.tsx.snap | 0 .../ConnectivityBanner-tests.tsx.snap | 0 .../__snapshots__/Modal-tests.tsx.snap | 0 .../RetryErrorBoundary-tests.tsx.snap | 0 .../__snapshots__/Separator-tests.tsx.snap | 0 .../__snapshots__/TabView-tests.tsx.snap | 0 .../src => src}/lib/Components/index.tsx | 0 .../src => src}/lib/Containers/Artist.tsx | 0 .../src => src}/lib/Containers/BidFlow.tsx | 0 .../lib/Containers/Conversation.tsx | 0 {emission/src => src}/lib/Containers/Gene.tsx | 0 .../src => src}/lib/Containers/Inbox.tsx | 0 .../src => src}/lib/Containers/Inquiry.tsx | 0 .../lib/Containers/RegistrationFlow.tsx | 0 .../lib/Containers/WorksForYou.tsx | 0 .../Containers/__stories__/Artist.story.tsx | 0 .../lib/Containers/__stories__/Gene.story.tsx | 0 .../Containers/__stories__/Inquiry.story.tsx | 0 .../lib/Containers/__stories__/index.ts | 0 .../lib/Containers/__tests__/Artist-tests.tsx | 0 .../Containers/__tests__/BidFlow-tests.tsx | 0 .../__tests__/Conversation-tests.tsx | 0 .../lib/Containers/__tests__/Gene-tests.tsx | 0 .../lib/Containers/__tests__/Inbox-tests.tsx | 0 .../Containers/__tests__/Inquiry-tests.tsx | 0 .../__tests__/RegistrationFlow-tests.tsx | 0 .../__tests__/WorksForYou-tests.tsx | 0 .../__snapshots__/BidFlow-tests.tsx.snap | 0 .../__snapshots__/Conversation-tests.tsx.snap | 0 .../__snapshots__/Gene-tests.tsx.snap | 0 .../__snapshots__/Inbox-tests.tsx.snap | 0 .../__snapshots__/Inquiry-tests.tsx.snap | 0 .../RegistrationFlow-tests.tsx.snap | 0 .../__snapshots__/WorksForYou-tests.tsx.snap | 0 .../lib/Containers/__tests__/index-tests.tsx | 0 .../src => src}/lib/Containers/index.tsx | 0 {emission/src => src}/lib/ErrorReporting.ts | 0 .../src => src}/lib/Icons/ChevronIcon.tsx | 0 .../lib/Icons/CircleWhiteCheckIcon.tsx | 0 .../lib/Icons/Consignments/CamIcon.tsx | 0 .../lib/Icons/Consignments/MoneyIcon.tsx | 0 .../lib/Icons/Consignments/OfferIcon.tsx | 0 .../lib/Icons/Consignments/SellIcon.tsx | 0 .../lib/Icons/Consignments/index.tsx | 0 {emission/src => src}/lib/Icons/Crosshair.tsx | 0 {emission/src => src}/lib/Icons/Pin.tsx | 0 .../src => src}/lib/Icons/PinFairSelected.tsx | 0 .../src => src}/lib/Icons/PinGalleryOn.tsx | 0 .../src => src}/lib/Icons/PinSavedOff.tsx | 0 .../src => src}/lib/Icons/PinSavedOn.tsx | 0 .../lib/Icons/PinSavedSelected.tsx | 0 .../src => src}/lib/Icons/SearchIcon.tsx | 0 .../src => src}/lib/NativeModules/Events.tsx | 0 .../lib/NativeModules/GraphQLQueryCache.ts | 0 .../NativeModules/NotificationsManager.tsx | 0 .../lib/NativeModules/SwitchBoard.tsx | 0 .../lib/NativeModules/triggerCamera.tsx | 0 .../lib/NativeModules/triggerRefine.tsx | 0 .../lib/Scenes/Artwork/Artwork.tsx | 0 .../Scenes/Artwork/Components/AboutArtist.tsx | 0 .../Scenes/Artwork/Components/AboutWork.tsx | 0 .../Artwork/Components/ArtworkActions.tsx | 0 .../Artwork/Components/ArtworkDetails.tsx | 0 .../__tests__/index-tests.tsx | 0 .../__tests__/partnerName-tests.tsx | 0 .../Components/ArtworkExtraLinks/index.tsx | 0 .../ArtworkExtraLinks/partnerName.tsx | 0 .../Artwork/Components/ArtworkHeader.tsx | 0 .../Artwork/Components/ArtworkHistory.tsx | 0 .../Artwork/Components/ArtworkTombstone.tsx | 0 .../Artwork/Components/AuctionPrice.tsx | 0 .../CommercialButtons/BidButton.tsx | 0 .../CommercialButtons/BuyNowButton.tsx | 0 .../CommercialButtons/CommercialButtons.tsx | 0 .../CommercialButtons/MakeOfferButton.tsx | 0 .../__tests__/BidButton-tests.tsx | 0 .../__tests__/CommercialButtons-tests.tsx | 0 .../CommercialEditionSetInformation.tsx | 0 .../Components/CommercialInformation.tsx | 0 .../CommercialInformationSizeInfo.tsx | 0 .../CommercialPartnerInformation.tsx | 0 .../Scenes/Artwork/Components/ContextCard.tsx | 0 .../Artwork/Components/FollowArtistButton.tsx | 0 .../FullScreen/DeepZoom/DeepZoomLevel.tsx | 0 .../FullScreen/DeepZoom/DeepZoomOverlay.tsx | 0 .../FullScreen/DeepZoom/DeepZoomPyramid.ts | 0 .../FullScreen/DeepZoom/DeepZoomTile.tsx | 0 .../FullScreen/DeepZoom/__deepZoomDebug.ts | 0 .../__tests__/DeepZoomPyramid-tests.ts | 0 .../__tests__/deepZoomGeometry-tests.ts | 0 .../FullScreen/DeepZoom/deepZoomGeometry.ts | 0 .../FullScreen/DeepZoom/useIsMounted.ts | 0 .../FullScreen/ImageCarouselCloseButton.tsx | 0 .../FullScreen/ImageCarouselFullScreen.tsx | 0 .../FullScreen/ImageZoomView.tsx | 0 .../FullScreen/IndexIndicator.tsx | 0 .../FullScreen/StatusBarOverlay.tsx | 0 .../FullScreen/VerticalSwipeToDismiss.tsx | 0 .../ImageCarouselFullScreen-tests.tsx | 0 .../ImageCarousel/FullScreen/boxShadow.ts | 0 .../FullScreen/useDoublePressCallback.ts | 0 .../FullScreen/useEventStream.ts | 0 .../ImageCarousel/FullScreen/useSpringFade.ts | 0 .../ImageCarousel/ImageCarousel.tsx | 0 .../ImageCarousel/ImageCarousel.tsx.rej | 0 .../ImageCarousel/ImageCarouselContext.tsx | 0 .../ImageCarousel/ImageCarouselEmbedded.tsx | 0 .../ImageCarousel/ImageWithLoadingState.tsx | 0 .../Components/ImageCarousel/README.md | 0 .../__tests__/ImageCarousel-tests.tsx | 0 .../__tests__/ImageCarouselContext-tests.tsx | 0 .../__tests__/ImageCarouselEmbedded-tests.tsx | 0 .../__tests__/ImageWithLoadingState-tests.tsx | 0 .../ImageCarousel/__tests__/geometry-tests.ts | 0 .../__tests__/useAnimatedValue-tests.tsx | 0 .../__tests__/useGlobalState-tests.tsx | 0 .../__tests__/useSpringValue-tests.tsx | 0 .../Components/ImageCarousel/geometry.ts | 0 .../Components/ImageCarousel/qa-script.md | 0 .../ImageCarousel/useAnimatedValue.ts | 0 .../ImageCarousel/useGlobalState.ts | 0 .../ImageCarousel/useSpringValue.ts | 0 .../Components/OtherWorks/ContextGridCTA.tsx | 0 .../Artwork/Components/OtherWorks/Header.tsx | 0 .../Components/OtherWorks/OtherWorks.tsx | 0 .../OtherWorks/__tests__/Header-tests.tsx | 0 .../Scenes/Artwork/Components/PartnerCard.tsx | 0 .../Components/RequestConditionReport.tsx | 0 .../__stories__/AboutWork.story.tsx | 0 .../__stories__/ArtworkActions.story.tsx | 0 .../__stories__/ArtworkDetails.story.tsx | 0 .../__stories__/ArtworkHistory.story.tsx | 0 .../__stories__/ArtworkTombstone.story.tsx | 0 .../__tests__/AboutArtist-tests.tsx | 0 .../Components/__tests__/AboutWork-tests.tsx | 0 .../__tests__/ArtworkActions-tests.tsx | 0 .../__tests__/ArtworkDetails-tests.tsx | 0 .../__tests__/ArtworkHeader-tests.tsx | 0 .../__tests__/ArtworkHistory-tests.tsx | 0 .../__tests__/ArtworkTombstone-tests.tsx | 0 .../__tests__/AuctionPrice-tests.tsx | 0 .../CommercialEditionSetInformation-tests.tsx | 0 .../__tests__/CommercialInformation-tests.tsx | 0 .../CommercialPartnerInformation-tests.tsx | 0 .../__tests__/ContextCard-tests.tsx | 0 .../__tests__/FollowArtistButton-tests.tsx | 0 .../Components/__tests__/OtherWorks-tests.tsx | 0 .../__tests__/PartnerCard-tests.tsx | 0 ...RequestConditionReport-analytics-tests.tsx | 0 .../RequestConditionReport-tests.tsx | 0 .../Artwork/__stories__/Artwork.story.tsx | 0 .../Artwork/__tests__/Artwork-tests.tsx | 0 .../Artwork/__tests__/hardware-tests.ts | 0 .../lib/Scenes/Artwork/hardware.ts | 0 .../src => src}/lib/Scenes/Artwork/index.ts | 0 .../ArtworkAttributionClassFAQ.tsx | 0 .../ArtworkAttributionClassFAQ-tests.tsx | 0 .../ArtworkAttributionClassFAQ/index.ts | 0 .../src => src}/lib/Scenes/City/City.tsx | 0 .../lib/Scenes/City/CityBMWList.tsx | 0 .../lib/Scenes/City/CityFairList.tsx | 0 .../lib/Scenes/City/CityPicker.tsx | 2 +- .../lib/Scenes/City/CitySavedList.tsx | 0 .../lib/Scenes/City/CitySectionList.tsx | 0 .../lib/Scenes/City/Components/AllEvents.tsx | 0 .../BMWEventSection/__tests__/index-tests.tsx | 0 .../City/Components/BMWEventSection/index.tsx | 0 .../Event/__tests__/index-tests.tsx | 0 .../Scenes/City/Components/Event/index.tsx | 0 .../lib/Scenes/City/Components/EventList.tsx | 0 .../EventSection/__tests__/index-tests.tsx | 0 .../City/Components/EventSection/index.tsx | 0 .../Components/FairEventSectionCard.tsx | 0 .../__tests__/FairEventSectionCard-tests.tsx | 0 .../__tests__/index-tests.tsx | 0 .../Components/FairEventSection/index.tsx | 0 .../__tests__/index-tests.tsx | 0 .../Components/SavedEventSection/index.tsx | 0 .../TabFairItemRow/__tests__/index-tests.tsx | 0 .../City/Components/TabFairItemRow/index.tsx | 0 .../Components/__tests__/AllEvents-tests.tsx | 0 .../Components/__tests__/EventList-tests.tsx | 0 .../lib/Scenes/City/__tests__/City-tests.tsx | 0 .../City/__tests__/CityBMWList-tests.tsx | 0 .../City/__tests__/CityFairList-tests.tsx | 0 .../City/__tests__/CityPicker-tests.tsx | 0 .../City/__tests__/CitySavedList-tests.tsx | 0 .../City/__tests__/CitySectionList-tests.tsx | 0 .../src => src}/lib/Scenes/City/cityTabs.ts | 0 .../src => src}/lib/Scenes/City/index.tsx | 0 .../lib/Scenes/Collection/Collection.tsx | 0 .../Collection/Components/FeaturedArtists.tsx | 0 .../__fixtures__/CollectionFixture.ts | 0 .../Components/__fixtures__/index.ts | 0 .../__tests__/FeaturedArtists-tests.tsx | 0 .../FeaturedArtists-tests.tsx.snap | 0 .../Collection/Screens/CollectionArtworks.tsx | 0 .../Collection/Screens/CollectionHeader.tsx | 0 .../__tests__/CollectionArtworks-tests.tsx | 0 .../__tests__/CollectionHeader-tests.tsx | 0 .../CollectionHeader-tests.tsx.snap | 0 .../__stories__/Collection.story.tsx | 0 .../Collection/__tests__/Collection-tests.tsx | 0 .../__snapshots__/Collection-tests.tsx.snap | 0 .../lib/Scenes/Collection/index.tsx | 0 .../Components/ArtistsExhibitorsWorksLink.tsx | 0 .../Fair/Components/ArtworksPreview.tsx | 0 .../Fair/Components/FairBoothHeader.tsx | 0 .../Components/FairBoothPreviewHeader.tsx | 0 .../FairBoothPreviewHeader-tests.tsx | 0 .../FairBoothPreviewHeader-tests.tsx.snap | 0 .../__snapshots__/index-tests.tsx.snap | 0 .../__tests__/index-tests.tsx | 0 .../Components/FairBoothPreview/index.tsx | 0 .../Components/FairHeader/CountdownTimer.tsx | 0 .../__tests__/CountdownTimer-tests.tsx | 0 .../__snapshots__/index-tests.tsx.snap | 0 .../FairHeader/__tests__/index-tests.tsx | 0 .../Fair/Components/FairHeader/index.tsx | 0 .../ArtistsExhibitorsWorksLink-tests.tsx | 0 .../__tests__/ArtworksPreview-tests.tsx | 0 .../__tests__/FairBoothHeader-tests.tsx | 0 .../ArtistsExhibitorsWorksLink-tests.tsx.snap | 0 .../ArtworksPreview-tests.tsx.snap | 0 .../FairBoothHeader-tests.tsx.snap | 0 .../src => src}/lib/Scenes/Fair/Fair.tsx | 0 .../lib/Scenes/Fair/Screens/FairArtists.tsx | 0 .../lib/Scenes/Fair/Screens/FairArtworks.tsx | 0 .../Fair/Screens/FairBMWArtActivation.tsx | 2 +- .../lib/Scenes/Fair/Screens/FairBooth.tsx | 0 .../lib/Scenes/Fair/Screens/FairDetail.tsx | 0 .../Scenes/Fair/Screens/FairExhibitors.tsx | 0 .../lib/Scenes/Fair/Screens/FairMoreInfo.tsx | 0 .../Screens/__tests__/FairArtists-tests.tsx | 0 .../Screens/__tests__/FairArtworks-tests.tsx | 0 .../__tests__/FairBMWArtActivation-tests.tsx | 0 .../Screens/__tests__/FairBooth-tests.tsx | 0 .../Screens/__tests__/FairDetail-tests.tsx | 0 .../__tests__/FairExhibitors-tests.tsx | 0 .../Screens/__tests__/FairMoreInfo-tests.tsx | 0 .../__snapshots__/FairArtists-tests.tsx.snap | 0 .../__snapshots__/FairArtworks-tests.tsx.snap | 0 .../__snapshots__/FairBooth-tests.tsx.snap | 0 .../__snapshots__/FairDetail-tests.tsx.snap | 0 .../__snapshots__/FairMoreInfo-tests.tsx.snap | 0 .../lib/Scenes/Fair/__fixtures__/index.ts | 0 .../Scenes/Fair/__stories__/Fair.story.tsx | 0 .../lib/Scenes/Fair/__tests__/Fair-tests.tsx | 0 .../__snapshots__/Fair-tests.tsx.snap | 0 .../src => src}/lib/Scenes/Fair/index.ts | 0 .../Artists/Relay/FavoriteArtists.tsx | 0 .../Artists/__tests__/index-tests.tsx | 0 .../Favorites/Components/Artists/index.tsx | 0 .../Artworks/Relay/FavoriteArtworks.tsx | 0 .../Artworks/__tests__/index-tests.tsx | 0 .../Favorites/Components/Artworks/index.tsx | 0 .../Categories/Relay/FavoriteCategories.tsx | 0 .../Categories/__tests__/index-tests.tsx | 0 .../Favorites/Components/Categories/index.tsx | 0 .../Components/Fairs/Relay/FavoriteFairs.tsx | 0 .../Fairs/__tests__/index-tests.tsx | 0 .../Favorites/Components/Fairs/index.tsx | 0 .../Components/Shows/Relay/FavoriteShows.tsx | 0 .../Shows/__tests__/index-tests.tsx | 0 .../Favorites/Components/Shows/index.tsx | 0 .../Favorites/__stories__/Favorites.story.tsx | 0 .../Favorites/__tests__/index-tests.tsx | 0 .../lib/Scenes/Favorites/index.tsx | 0 .../ForYou/Components/ArtworkCarousel.tsx | 0 .../Components/ArtworkCarouselHeader.tsx | 0 .../ForYou/Components/FairsRail.tsx | 0 .../__tests__/ArtworkCarouselHeader-tests.tsx | 0 .../Components/__tests__/FairsRail-tests.tsx | 0 .../__snapshots__/FairsRail-tests.tsx.snap | 0 .../Scenes/Home/Components/ForYou/index.tsx | 0 .../ForYou/videos/9172018-bn-banner-xs.mp4 | Bin .../ForYou/videos/chris-test-image.png | Bin .../Components/LotsByFollowedArtists.tsx | 0 .../Components/Sales/Components/SaleList.tsx | 0 .../Sales/Components/SaleListItem.tsx | 0 .../Sales/Components/SectionHeader.tsx | 0 .../__snapshots__/index-tests.tsx.snap | 0 .../ZeroState/__tests__/index-tests.tsx | 0 .../Sales/Components/ZeroState/index.html | 0 .../Sales/Components/ZeroState/index.tsx | 0 .../LotsByFollowedArtists.story.tsx | 0 .../__tests__/LotsByFollowedArtists-tests.tsx | 0 .../Components/__tests__/SaleList-tests.tsx | 0 .../__tests__/SaleListItem-tests.tsx | 0 .../__tests__/SectionHeader-tests.tsx | 0 .../__snapshots__/SaleListItem-tests.tsx.snap | 0 .../Components/Sales/Relay/SalesRenderer.tsx | 0 .../__snapshots__/index-tests.tsx.snap | 0 .../Sales/__tests__/index-tests.tsx | 0 .../Scenes/Home/Components/Sales/index.tsx | 0 .../Scenes/Home/Components/SectionTitle.tsx | 0 .../__tests__/SectionTitle-tests.tsx | 0 .../Components/__tests__/TabBar-tests.tsx | 0 .../__snapshots__/TabBar-tests.tsx.snap | 0 .../Scenes/Home/__stories__/Home.story.tsx | 0 .../lib/Scenes/Home/__tests__/index-tests.tsx | 0 .../src => src}/lib/Scenes/Home/index.tsx | 0 .../Map/Components/CitySwitcherButton.tsx | 0 .../Scenes/Map/Components/PinsShapeLayer.tsx | 0 .../lib/Scenes/Map/Components/ShowCard.tsx | 0 .../Map/Components/UserPositionButton.tsx | 0 .../lib/Scenes/Map/EventEmitter.ts | 0 .../src => src}/lib/Scenes/Map/GlobalMap.tsx | 0 .../lib/Scenes/Map/MapContainer.tsx | 0 .../lib/Scenes/Map/MapDataSource.tsx | 0 .../lib/Scenes/Map/MapRenderer.tsx | 0 .../lib/Scenes/Map/__stories__/Map.story.tsx | 0 .../lib/Scenes/Map/__tests__/Bucket-tests.ts | 0 .../Scenes/Map/__tests__/GlobalMap-tests.tsx | 0 .../lib/Scenes/Map/bucketCityResults.ts | 0 .../lib/Scenes/Map/exhibitionPeriodParser.ts | 0 {emission/src => src}/lib/Scenes/Map/index.ts | 0 {emission/src => src}/lib/Scenes/Map/types.ts | 0 .../Partner/Components/PartnerArtwork.tsx | 0 .../Components/PartnerFollowButton.tsx | 0 .../Partner/Components/PartnerHeader.tsx | 0 .../Components/PartnerLocationSection.tsx | 0 .../Scenes/Partner/Components/PartnerMap.tsx | 0 .../Partner/Components/PartnerOverview.tsx | 0 .../Components/PartnerShowRailItem.tsx | 0 .../Partner/Components/PartnerShows.tsx | 0 .../Partner/Components/PartnerShowsRail.tsx | 0 .../__fixtures__/PartnerArtwork-fixture.ts | 0 .../__tests__/PartnerArtwork-tests.tsx | 0 .../__tests__/PartnerHeader-tests.tsx | 0 .../PartnerLocationSection-tests.tsx | 0 .../__tests__/PartnerOverview-tests.tsx | 0 .../__tests__/PartnerShows-tests.tsx | 0 .../PartnerArtwork-tests.tsx.snap | 0 .../lib/Scenes/Partner/Partner.tsx | 0 .../Partner/Screens/PartnerLocations.tsx | 0 .../__fixtures__/PartnerLocations-fixture.ts | 0 .../__tests__/PartnerLocations-tests.tsx | 0 .../PartnerLocations-tests.tsx.snap | 0 .../src => src}/lib/Scenes/Partner/index.ts | 0 .../Scenes/PrivacyRequest/PrivacyRequest.tsx | 0 .../__tests__/PrivacyRequest-tests.tsx | 0 .../lib/Scenes/PrivacyRequest/index.tsx | 0 .../lib/Scenes/Search/AutosuggestResults.tsx | 0 .../src => src}/lib/Scenes/Search/FadeIn.tsx | 0 .../src => src}/lib/Scenes/Search/Input.tsx | 0 .../lib/Scenes/Search/RecentSearches.tsx | 0 .../src => src}/lib/Scenes/Search/Search.tsx | 0 .../lib/Scenes/Search/SearchContext.tsx | 0 .../lib/Scenes/Search/SearchResult.tsx | 0 .../lib/Scenes/Search/SearchResultList.tsx | 0 .../Search/__stories__/Search.story.tsx | 0 .../__tests__/AutosuggestResults-tests.tsx | 0 .../Search/__tests__/RecentSearches-tests.tsx | 0 .../Scenes/Search/__tests__/Search-tests.tsx | 0 .../Search/__tests__/SearchResult-tests.tsx | 0 .../src => src}/lib/Scenes/Search/index.tsx | 0 .../lib/Scenes/Settings/LoggedInUserInfo.tsx | 0 .../lib/Scenes/Settings/MyProfile.tsx | 0 .../Settings/__mocks__/LoggedInUserInfo.tsx | 0 .../Settings/__stories__/Settings.story.tsx | 0 .../__tests__/LoggedInUserInfo-tests.tsx | 0 .../Settings/__tests__/MyProfile-tests.tsx | 0 .../__snapshots__/MyProfile-tests.tsx.snap | 0 .../Show/Components/ShowEventSection.tsx | 0 .../ShowHeader/Components/Carousel.tsx | 0 .../Components/__tests__/Carousel-tests.tsx | 0 .../__snapshots__/Carousel-tests.tsx.snap | 0 .../Show/Components/ShowHeader/ShowHeader.tsx | 0 .../ShowHeader/__tests__/ShowHeader-tests.tsx | 0 .../__snapshots__/ShowHeader-tests.tsx.snap | 0 .../Show/Components/ShowHeader/index.ts | 0 .../Components/Shows/Components/ShowItem.tsx | 0 .../Components/__tests__/ShowItem-tests.tsx | 0 .../__snapshots__/ShowItem-tests.tsx.snap | 0 .../__snapshots__/index-tests.tsx.snap | 0 .../Shows/__tests__/index-tests.tsx | 0 .../Shows/__tests__/nearbyShows-tests.tsx | 0 .../Scenes/Show/Components/Shows/index.tsx | 0 .../Scenes/Show/Components/TextSection.tsx | 0 .../__tests__/ShowEventSection-tests.tsx | 0 .../__tests__/TextSection-tests.tsx | 0 .../ShowEventSection-tests.tsx.snap | 0 .../lib/Scenes/Show/Screens/Detail.tsx | 0 .../lib/Scenes/Show/Screens/MoreInfo.tsx | 0 .../lib/Scenes/Show/Screens/ShowArtists.tsx | 0 .../lib/Scenes/Show/Screens/ShowArtworks.tsx | 0 .../Show/Screens/__tests__/Detail-tests.tsx | 0 .../Show/Screens/__tests__/MoreInfo-tests.tsx | 0 .../Screens/__tests__/ShowArtists-tests.tsx | 0 .../Screens/__tests__/ShowArtworks-tests.tsx | 0 .../__snapshots__/ShowArtists-tests.tsx.snap | 0 .../__snapshots__/ShowArtworks-tests.tsx.snap | 0 .../src => src}/lib/Scenes/Show/Show.tsx | 0 .../Show/__fixtures__/NearbyShowsFixture.ts | 0 .../Scenes/Show/__stories__/Show.story.tsx | 0 .../lib/Scenes/Show/__tests__/Show-tests.tsx | 0 .../Show/__tests__/fixtures/ShowFixture.ts | 0 .../Scenes/Show/__tests__/fixtures/index.ts | 0 .../lib/Scenes/Show/__tests__/index-tests.ts | 0 .../lib/Scenes/Show/__tests__/index-tests.tsx | 0 .../src => src}/lib/Scenes/Show/index.ts | 0 .../lib/__fixtures__/ArtistFixture.js | 0 .../lib/__fixtures__/ArtistFixture.ts | 0 .../lib/__fixtures__/ArtworkBidAction.ts | 0 .../lib/__fixtures__/ArtworkBidInfo.ts | 0 .../lib/__fixtures__/ArtworkFixture.ts | 0 .../lib/__fixtures__/CityFixture.ts | 0 .../lib/__fixtures__/FairBoothShowFixture.ts | 0 .../lib/__fixtures__/ShowFixture.ts | 0 .../src => src}/lib/__mocks__/metaphysics.ts | 0 .../lib/data/ScreenSizes/screenSizes.tsx | 0 {emission/src => src}/lib/data/colors.ts | 0 {emission/src => src}/lib/data/constants.ts | 0 {emission/src => src}/lib/data/fonts.ts | 0 {emission/src => src}/lib/options.ts | 0 {emission/src => src}/lib/package.json | 0 .../src => src}/lib/relay/QueryRenderers.tsx | 0 {emission/src => src}/lib/relay/config.tsx | 0 .../lib/relay/createEnvironment.ts | 0 .../__tests__/cacheMiddleware-tests.ts | 0 .../lib/relay/middlewares/cacheMiddleware.ts | 0 .../middlewares/metaphysicsMiddleware.ts | 0 .../lib/relay/middlewares/timingMiddleware.ts | 0 .../lib/tests/MockRelayRenderer.tsx | 0 .../__tests__/MockRelayRenderer-tests.tsx | 0 .../__tests__/MockRelayRendererFixtures.tsx | 0 .../tests/__tests__/renderRelayTree-tests.tsx | 0 .../lib/tests/__tests__/renderUntil-tests.tsx | 0 .../CustomScalars/formatted_number.ts | 0 .../createMockNetworkLayer-tests.tsx | 0 .../lib/tests/createMockNetworkLayer/index.ts | 0 .../src => src}/lib/tests/extractText.ts | 0 .../lib/tests/flushPromiseQueue.ts | 0 .../src => src}/lib/tests/mockTimezone.tsx | 0 .../src => src}/lib/tests/mockTracking.ts | 0 .../src => src}/lib/tests/renderRelayTree.tsx | 0 .../src => src}/lib/tests/renderUntil.tsx | 0 .../lib/tests/renderWithLayout.tsx | 0 {emission/src => src}/lib/tests/waitUntil.ts | 0 .../src => src}/lib/types/SafeAreaInsets.ts | 0 .../src => src}/lib/utils/CatchErrors.tsx | 0 {emission/src => src}/lib/utils/Context.tsx | 0 .../lib/utils/__tests__/formatDates-tests.tsx | 0 .../utils/__tests__/getTestWrapper-tests.tsx | 0 .../utils/__tests__/isCloseToBottom-tests.ts | 0 .../utils/__tests__/limitWithCount-tests.tsx | 0 .../utils/__tests__/placeholders-tests.tsx | 0 .../__tests__/plainTextFromTree-tests.tsx | 0 .../utils/__tests__/renderMarkdown-tests.tsx | 0 .../renderWithLoadProgress-tests.tsx | 0 .../__tests__/renderWithPlaceholder-tests.tsx | 0 .../lib/utils/__tests__/router-tests.ts | 0 .../lib/utils/__tests__/volleyClient-tests.ts | 0 .../lib/utils/convertCityToGeoJSON.ts | 0 .../src => src}/lib/utils/devCacheBust.ts | 0 {emission/src => src}/lib/utils/errors.tsx | 0 .../src => src}/lib/utils/formatDates.tsx | 0 {emission/src => src}/lib/utils/get.ts | 0 .../src => src}/lib/utils/getTestWrapper.tsx | 0 .../src => src}/lib/utils/isCloseToBottom.ts | 0 .../src => src}/lib/utils/isCloseToEdge.ts | 0 .../src => src}/lib/utils/limitWithCount.tsx | 0 .../src => src}/lib/utils/placeholders.tsx | 0 .../lib/utils/plainTextFromTree.ts | 0 .../src => src}/lib/utils/renderMarkdown.tsx | 0 .../lib/utils/renderWithLoadProgress.tsx | 0 .../lib/utils/renderWithPlaceholder.tsx | 0 {emission/src => src}/lib/utils/router.ts | 0 .../src => src}/lib/utils/track/index.ts | 0 .../src => src}/lib/utils/track/schema.ts | 0 .../lib/utils/useScreenDimensions.tsx | 0 .../src => src}/lib/utils/volleyClient.ts | 0 {emission/src => src}/setupJest.ts | 0 .../storybook => storybook}/storyLoader.js | 0 emission/tsconfig.json => tsconfig.json | 3 +- emission/tslint.json => tslint.json | 0 {emission/typings => typings}/graphql.d.ts | 0 {emission/typings => typings}/node.d.ts | 0 ...-npm-podspecs.js => verify-npm-podspecs.js | 0 emission/yarn.lock => yarn.lock | 0 1472 files changed, 151 insertions(+), 35483 deletions(-) rename emission/.gqlconfig => .gqlconfig (100%) rename emission/.npmrc => .npmrc (100%) rename emission/.nvmrc => .nvmrc (100%) rename emission/.prettierignore => .prettierignore (100%) rename emission/.stylelintrc => .stylelintrc (100%) rename {emission/.vscode => .vscode}/launch.json (100%) rename {emission/.vscode => .vscode}/settings.json (90%) rename {emission/.vscode => .vscode}/tasks.json (100%) rename emission/.yarnrc => .yarnrc (100%) rename {emission/__mocks__ => __mocks__}/react-relay.js (100%) rename emission/apollo.config.js => apollo.config.js (100%) rename emission/babel.config.js => babel.config.js (100%) rename emission/dangerfile.ts => dangerfile.ts (81%) rename {emission/data => data}/cityDataSortedByDisplayPreference.json (100%) rename {emission/data => data}/colors.json (100%) rename {emission/data => data}/complete.queryMap.json (100%) rename {emission/data => data}/schema.graphql (100%) delete mode 100644 docs/updating_emission.md delete mode 100644 docs/using_dev_emission.md delete mode 100644 emission/.autorc delete mode 100644 emission/.gitignore delete mode 100644 emission/.storybook/webpack.config.js delete mode 100644 emission/.vscode/extensions.json delete mode 100644 emission/Example/.ruby-version delete mode 100644 emission/Example/Emission.xcodeproj/project.pbxproj delete mode 100644 emission/Example/Emission.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 emission/Example/Emission.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 emission/Example/Emission.xcodeproj/xcshareddata/xcschemes/Emission Example.xcscheme delete mode 100644 emission/Example/Emission.xcodeproj/xcshareddata/xcschemes/Emission.xcscheme delete mode 100644 emission/Example/Emission.xcworkspace/contents.xcworkspacedata delete mode 100644 emission/Example/Emission.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 emission/Example/Emission/ARAdminPreloadTableViewCell.h delete mode 100644 emission/Example/Emission/ARAdminPreloadTableViewCell.m delete mode 100644 emission/Example/Emission/ARAdminSentryBreadcrumbViewController.h delete mode 100644 emission/Example/Emission/ARAdminSentryBreadcrumbViewController.m delete mode 100644 emission/Example/Emission/ARAdminTableViewCell.h delete mode 100644 emission/Example/Emission/ARAdminTableViewCell.m delete mode 100644 emission/Example/Emission/ARAnimatedTickView.h delete mode 100644 emission/Example/Emission/ARAnimatedTickView.m delete mode 100644 emission/Example/Emission/ARDefaults.h delete mode 100644 emission/Example/Emission/ARDefaults.m delete mode 100644 emission/Example/Emission/ARLabOptions.h delete mode 100644 emission/Example/Emission/ARLabOptions.m delete mode 100644 emission/Example/Emission/ARMacros.h delete mode 100644 emission/Example/Emission/ARRootViewController.h delete mode 100644 emission/Example/Emission/ARRootViewController.m delete mode 100644 emission/Example/Emission/ARStorybookComponentViewController.h delete mode 100644 emission/Example/Emission/ARStorybookComponentViewController.m delete mode 100644 emission/Example/Emission/ARTickedTableViewCell.h delete mode 100644 emission/Example/Emission/ARTickedTableViewCell.m delete mode 100644 emission/Example/Emission/ARTopMenuViewController.h delete mode 100644 emission/Example/Emission/ARTopMenuViewController.m delete mode 100644 emission/Example/Emission/AppDelegate.h delete mode 100644 emission/Example/Emission/AppDelegate.m delete mode 100644 emission/Example/Emission/AppSetup.h delete mode 100644 emission/Example/Emission/AppSetup.m delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Emission-itunes.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x-1.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/ipad_app_76@1x.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/ipad_app_76@2x.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/ipad_pro_app_83@2x.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/iphone_app_60@3x.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/iphone_settings_29@3x.png delete mode 100644 emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/iphone_spotlight_40@3x.png delete mode 100644 emission/Example/Emission/Assets.xcassets/Contents.json delete mode 100644 emission/Example/Emission/Assets.xcassets/gradient.imageset/Contents.json delete mode 100644 emission/Example/Emission/Assets.xcassets/gradient.imageset/gradient.png delete mode 100644 emission/Example/Emission/AuthenticationManager.h delete mode 100644 emission/Example/Emission/AuthenticationManager.m delete mode 100644 emission/Example/Emission/Back.png delete mode 100644 emission/Example/Emission/Back@2x.png delete mode 100644 emission/Example/Emission/Back@3x.png delete mode 100644 emission/Example/Emission/BackArrow@2x.png delete mode 100644 emission/Example/Emission/BackArrowBlack@2x.png delete mode 100644 emission/Example/Emission/BackArrow_Highlighted@2x.png delete mode 100644 emission/Example/Emission/Base.lproj/LaunchScreen.xib delete mode 100644 emission/Example/Emission/EigenLikeAdminViewController.h delete mode 100644 emission/Example/Emission/EigenLikeAdminViewController.m delete mode 100644 emission/Example/Emission/EigenLikeNavigationController.h delete mode 100644 emission/Example/Emission/EigenLikeNavigationController.m delete mode 100644 emission/Example/Emission/Emission-Bridging-Header.h delete mode 100644 emission/Example/Emission/Emission.entitlements delete mode 100644 emission/Example/Emission/Info.plist delete mode 100644 emission/Example/Emission/InternalWebViewController.h delete mode 100644 emission/Example/Emission/InternalWebViewController.m delete mode 100644 emission/Example/Emission/LoadingSpinner.h delete mode 100644 emission/Example/Emission/LoadingSpinner.m delete mode 100644 emission/Example/Emission/NSDateFormatter+TimeAgo.h delete mode 100644 emission/Example/Emission/NSDateFormatter+TimeAgo.m delete mode 100644 emission/Example/Emission/Placeholder.swift delete mode 100644 emission/Example/Emission/UnroutedViewController.h delete mode 100644 emission/Example/Emission/UnroutedViewController.m delete mode 100644 emission/Example/Emission/index.ios.js delete mode 100644 emission/Example/Emission/index.storybooks.js delete mode 100644 emission/Example/Emission/index.tests.ios.js delete mode 100644 emission/Example/Emission/logo@2x.png delete mode 100644 emission/Example/Emission/main.m delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/01a367ce1ba17e6231654c254d3877f2.jpg&width=240&height=240&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/19e6af653c1bd8d817d6039941edbd64.jpg&width=240&height=318&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/27ea9d092b82ecd20edc96598653902a.jpg&width=240&height=288&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/2965e15f16bf3b910644df310c638617.jpg&width=240&height=158&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/2cd5f0adfd98ac6f2fd3e2f8e63df1ba.jpg&width=239&height=199&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/3c831b9f93087295a3e4b6269e5ce668.jpg&width=240&height=180&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/3eafcf9a115e8563b48ee73abc29ec32.jpg&width=239&height=195&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/4247f0bc475967b3f5b0ad087469a446.jpg&width=240&height=286&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/53119f484ce7584122070cc667454567.jpg&width=240&height=316&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/6704bdfa661b25482b8a0b0af4477b67.jpg&width=240&height=285&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/7cb9d36428889d59118016d52e70dad3.jpg&width=239&height=180&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/903b4eafaaf05976c5015aef40b316ea.jpg&width=240&height=318&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/93feeadf4429ce1f3731d43b83c6848f.jpg&width=240&height=295&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/a3700a7727563905267e527708eb11b3.jpg&width=240&height=306&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/a93cb0f97d5783297fca0404c04f4f7b.jpg&width=240&height=267&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/b70be29b9e546c2dcc0e2e93da34d310.jpg&width=240&height=242&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/dcef487c075507708c5e85554d1e4653.jpg&width=240&height=175&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/e2aca009d3d8268edf6ccd63d15fdbd7.jpg&width=240&height=206&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/e758d85563cbdf9071a2998d8e5276e6.jpg&width=240&height=294&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/f7d62b3844dc44baa6afb3c255a021a2.jpg&width=240&height=306&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 delete mode 100644 emission/Example/EmissionTests/Fixtures/rembrandt-harmensz-van-rijn-1_page-1.json delete mode 100644 emission/Example/EmissionTests/Fixtures/rembrandt-harmensz-van-rijn-1_page-2.json delete mode 100644 emission/Example/EmissionTests/Info.plist delete mode 100644 emission/Example/EmissionTests/OpaqueImageViewComponentTests.m delete mode 100644 emission/Example/EmissionTests/RCTTest/LICENSE delete mode 100644 emission/Example/EmissionTests/RCTTest/RCTSnapshotManager.h delete mode 100644 emission/Example/EmissionTests/RCTTest/RCTSnapshotManager.m delete mode 100644 emission/Example/EmissionTests/RCTTest/RCTTestModule.h delete mode 100644 emission/Example/EmissionTests/RCTTest/RCTTestModule.m delete mode 100644 emission/Example/EmissionTests/RCTTest/RCTTestRunner.h delete mode 100644 emission/Example/EmissionTests/RCTTest/RCTTestRunner.m delete mode 100644 emission/Example/EmissionTests/RCTTest/README.md delete mode 100644 emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_column_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@2x.png delete mode 100644 emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_column_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@3x.png delete mode 100644 emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ratio_when_automatically_sizing_to_fill_the_available_size_1@2x.png delete mode 100644 emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ratio_when_automatically_sizing_to_fill_the_available_size_1@3x.png delete mode 100644 emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_height_1@2x.png delete mode 100644 emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_height_1@3x.png delete mode 100644 emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@2x.png delete mode 100644 emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@3x.png delete mode 100644 emission/Example/EmissionTests/TestApps.js delete mode 100644 emission/Example/EmissionTests/TestHelper.h delete mode 100644 emission/Example/EmissionTests/TestHelper.m delete mode 100644 emission/Example/EmissionUITests/EmissionUITests.m delete mode 100644 emission/Example/EmissionUITests/Info.plist delete mode 100644 emission/Example/Gemfile delete mode 100644 emission/Example/Gemfile.lock delete mode 100644 emission/Example/Podfile delete mode 100644 emission/Example/Podfile.lock delete mode 100644 emission/Example/Resources/UITabBarDownloadsTemplate@2x.png delete mode 100755 emission/Example/Resources/style.json delete mode 100755 emission/Example/compile_commands_emitting_clang delete mode 100644 emission/LICENSE delete mode 100644 emission/Makefile delete mode 100644 emission/Pod/Assets/Emission.js delete mode 100644 emission/Pod/Assets/Emission.js.map delete mode 100644 emission/Pod/Assets/Emission.js.meta delete mode 100644 emission/cleanup.diff delete mode 100644 emission/docs/running-emission-in-eigen.md delete mode 100644 emission/docs/running_on_device.md delete mode 100644 emission/docs/using_the_beta.md delete mode 100644 emission/docs/welcome-to-beta.md delete mode 100644 emission/index.tests.ios.js delete mode 100644 emission/metro.config.js delete mode 100644 emission/relay-todos.txt delete mode 100644 emission/scripts/ci-skip-native-if-possible.js delete mode 100644 emission/scripts/deploy-react-native-podspecs.js delete mode 100755 emission/scripts/post_installs.sh delete mode 100644 emission/scripts/update-graphql-fragments.js delete mode 100644 emission/scripts/update-tests-with-theme.js delete mode 100644 emission/unused-fields.txt rename {emission/images => images}/BMW-logo.jpg (100%) rename {emission/images => images}/SearchButton.png (100%) rename {emission/images => images}/SearchButton@2x.png (100%) rename {emission/images => images}/SearchButton@3x.png (100%) rename {emission/images => images}/SearchButtonWhite@2x.png (100%) rename {emission/images => images}/angle-left.png (100%) rename {emission/images => images}/angle-left@2x.png (100%) rename {emission/images => images}/angle-left@3x.png (100%) rename {emission/images => images}/cam.png (100%) rename {emission/images => images}/cam@2x.png (100%) rename {emission/images => images}/cam@3x.png (100%) rename {emission/images => images}/chevron.png (100%) rename {emission/images => images}/chevron@2x.png (100%) rename {emission/images => images}/chevron@3x.png (100%) rename {emission/images => images}/circle-check-green.png (100%) rename {emission/images => images}/circle-check-green@2x.png (100%) rename {emission/images => images}/circle-check-green@3x.png (100%) rename {emission/images => images}/circle-exclamation.png (100%) rename {emission/images => images}/circle-exclamation@2x.png (100%) rename {emission/images => images}/circle-exclamation@3x.png (100%) rename {emission/images => images}/circle-x-red.png (100%) rename {emission/images => images}/circle-x-red@2x.png (100%) rename {emission/images => images}/circle-x-red@3x.png (100%) rename {emission/images => images}/consignments/black-tick.png (100%) rename {emission/images => images}/consignments/black-tick@2x.png (100%) rename {emission/images => images}/consignments/camera-black.png (100%) rename {emission/images => images}/consignments/camera-black@2x.png (100%) rename {emission/images => images}/consignments/close-x.png (100%) rename {emission/images => images}/consignments/close-x@2x.png (100%) rename {emission/images => images}/consignments/email.png (100%) rename {emission/images => images}/consignments/email@2x.png (100%) rename {emission/images => images}/consignments/failure.png (100%) rename {emission/images => images}/consignments/failure@2x.png (100%) rename {emission/images => images}/consignments/failure@3x.png (100%) rename {emission/images => images}/consignments/hammer.png (100%) rename {emission/images => images}/consignments/hammer@2x.png (100%) rename {emission/images => images}/consignments/map-pin.png (100%) rename {emission/images => images}/consignments/map-pin@2x.png (100%) rename {emission/images => images}/consignments/plus.png (100%) rename {emission/images => images}/consignments/plus@2x.png (100%) rename {emission/images => images}/consignments/success.png (100%) rename {emission/images => images}/consignments/success@2x.png (100%) rename {emission/images => images}/consignments/success@3x.png (100%) rename {emission/images => images}/contact.png (100%) rename {emission/images => images}/contact@2x.png (100%) rename {emission/images => images}/contact@3x.png (100%) rename {emission/images => images}/find.png (100%) rename {emission/images => images}/find@2x.png (100%) rename {emission/images => images}/find@3x.png (100%) rename {emission/images => images}/horizontal_chevron.png (100%) rename {emission/images => images}/horizontal_chevron@2x.png (100%) rename {emission/images => images}/horizontal_chevron@3x.png (100%) rename {emission/images => images}/horizontal_chevron_white.png (100%) rename {emission/images => images}/horizontal_chevron_white@2x.png (100%) rename {emission/images => images}/horizontal_chevron_white@3x.png (100%) rename {emission/images => images}/map-bg.png (100%) rename {emission/images => images}/map.png (100%) rename {emission/images => images}/message.png (100%) rename {emission/images => images}/message@2x.png (100%) rename {emission/images => images}/message@3x.png (100%) rename {emission/images => images}/money.png (100%) rename {emission/images => images}/money@2x.png (100%) rename {emission/images => images}/money@3x.png (100%) rename {emission/images => images}/offer.png (100%) rename {emission/images => images}/offer@2x.png (100%) rename {emission/images => images}/offer@3x.png (100%) rename {emission/images => images}/paddle.png (100%) rename {emission/images => images}/paddle@2x.png (100%) rename {emission/images => images}/paddle@3x.png (100%) rename {emission/images => images}/pay.png (100%) rename {emission/images => images}/pay@2x.png (100%) rename {emission/images => images}/pay@3x.png (100%) rename {emission/images => images}/payment_request.png (100%) rename {emission/images => images}/payment_request@2x.png (100%) rename {emission/images => images}/payment_request@3x.png (100%) rename {emission/images => images}/pdf.png (100%) rename {emission/images => images}/pdf@2x.png (100%) rename {emission/images => images}/pdf@3x.png (100%) rename {emission/images => images}/sell.png (100%) rename {emission/images => images}/sell@2x.png (100%) rename {emission/images => images}/sell@3x.png (100%) rename {emission/images => images}/whitespinner.png (100%) rename {emission/images => images}/whitespinner@2x.png (100%) rename emission/index.ios.js => index.ios.js (100%) create mode 100644 index.tests.ios.js rename emission/npm-podspecs.json => npm-podspecs.json (100%) rename emission/package.json => package.json (87%) rename {emission/patches => patches}/react-native-sentry+0.30.3.patch (100%) rename {emission/patches => patches}/relay-compiler+6.0.0.patch (100%) rename {emission/patches => patches}/relay-mock-network-layer+2.0.0.patch (100%) rename emission/relay.config.js => relay.config.js (100%) rename emission/renovate.json => renovate.json (100%) rename {emission/scripts => scripts}/await-previous-builds.js (100%) rename {emission/scripts => scripts}/find-unused-fields.ts (100%) rename {emission/scripts => scripts}/generate-cities-cache.js (100%) rename {emission/scripts => scripts}/generate-cities-objc.js (100%) rename {emission/scripts => scripts}/generate-graphql-query-map.js (100%) rename {emission/scripts => scripts}/preheatGraphQLCache.js (100%) rename {emission/scripts => scripts}/queryMap.js (100%) rename {emission/scripts => scripts}/update-metaphysics.js (100%) rename {emission/src => src}/__generated__/AboutArtist_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/AboutWork_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/About_gene.graphql.ts (100%) rename {emission/src => src}/__generated__/ActiveBid_bid.graphql.ts (100%) rename {emission/src => src}/__generated__/ActiveBidsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ActiveBidsRefetchQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ActiveBids_me.graphql.ts (100%) rename {emission/src => src}/__generated__/Article_article.graphql.ts (100%) rename {emission/src => src}/__generated__/Articles_articles.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistAbout_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistArtworksQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistArtworks_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistCard_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistHeaderFollowArtistMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistHeaderQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistHeader_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistListItemFollowArtistMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistListItemTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistListItem_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistRailFollowMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistRail_rail.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistShow_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistShows_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Artist_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistsGroupedByNameTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtistsMeQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Artists_me.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkAboveTheFoldQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkActionsSaveMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkActionsTestsErrorQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkActionsTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkActions_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkAttributionClassFAQRendererQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkAttributionClassFAQ_artworkAttributionClasses.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkCarouselHeader_rail.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkCarousel_rail.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkDetails_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkExtraLinks_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkFullQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkGridItem_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkHeader_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkHistory_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkMarkAsRecentlyViewedQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkPreview_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkRailHeader_rail.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkRailRefetchQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkRail_rail.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkTombstoneStoryQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworkTombstone_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/Artwork_artworkAboveTheFold.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworksPreviewTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworksPreview_fair.graphql.ts (100%) rename {emission/src => src}/__generated__/ArtworksQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Artworks_me.graphql.ts (100%) rename {emission/src => src}/__generated__/AttachmentPreview_attachment.graphql.ts (100%) rename {emission/src => src}/__generated__/AuctionPriceTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/AuctionPrice_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/AutosuggestResultsPaginationQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/AutosuggestResultsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/AutosuggestResults_results.graphql.ts (100%) rename {emission/src => src}/__generated__/BidButtonTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/BidButton_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/BidFlowSelectMaxBidRendererQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/BidFlow_me.graphql.ts (100%) rename {emission/src => src}/__generated__/BidFlow_sale_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/BidResult_sale_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/BidderPositionQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Biography_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/Biography_gene.graphql.ts (100%) rename {emission/src => src}/__generated__/BuyNowButtonOrderMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/BuyNowButton_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/CategoriesMeQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Categories_me.graphql.ts (100%) rename {emission/src => src}/__generated__/CityBMWListQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/CityBMWList_city.graphql.ts (100%) rename {emission/src => src}/__generated__/CityFairListQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/CityFairList_city.graphql.ts (100%) rename {emission/src => src}/__generated__/CitySavedListQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/CitySavedList_viewer.graphql.ts (100%) rename {emission/src => src}/__generated__/CitySectionListQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/CitySectionList_city.graphql.ts (100%) rename {emission/src => src}/__generated__/CollectionArtworksInfiniteScrollGridQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/CollectionArtworksTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/CollectionArtworks_collection.graphql.ts (100%) rename {emission/src => src}/__generated__/CollectionHeaderTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/CollectionHeader_collection.graphql.ts (100%) rename {emission/src => src}/__generated__/CollectionTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Collection_collection.graphql.ts (100%) rename {emission/src => src}/__generated__/CommercialButtonsTestsMutationQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/CommercialButtonsTestsRenderQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/CommercialButtons_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/CommercialEditionSetInformation_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/CommercialInformationSizeInfo_piece.graphql.ts (100%) rename {emission/src => src}/__generated__/CommercialInformation_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/CommercialPartnerInformation_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ConfirmBidCreateBidderPositionMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ConfirmBidCreateCreditCardMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ConfirmBidRefetchQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ConfirmBidUpdateUserMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ConfirmBid_me.graphql.ts (100%) rename {emission/src => src}/__generated__/ConfirmBid_sale_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ConsignmentsArtistQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ContextCardFollowMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ContextCard_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/ConversationSnippet_conversation.graphql.ts (100%) rename {emission/src => src}/__generated__/Conversation_me.graphql.ts (100%) rename {emission/src => src}/__generated__/ConversationsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Conversations_me.graphql.ts (100%) rename {emission/src => src}/__generated__/DetailTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Detail_show.graphql.ts (100%) rename {emission/src => src}/__generated__/EventMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/FairArtistsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairArtistsRendererQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairArtistsTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairArtists_fair.graphql.ts (100%) rename {emission/src => src}/__generated__/FairArtworksQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairArtworksTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairArtworks_fair.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBMWArtActivationQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBMWArtActivationTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBMWArtActivation_fair.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBoothHeaderMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBoothHeaderTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBoothHeader_show.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBoothPreviewMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBoothPreview_show.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBoothQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBoothTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairBooth_show.graphql.ts (100%) rename {emission/src => src}/__generated__/FairDetailShowsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairDetailTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairDetail_fair.graphql.ts (100%) rename {emission/src => src}/__generated__/FairExhibitorsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairExhibitorsTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairExhibitors_fair.graphql.ts (100%) rename {emission/src => src}/__generated__/FairHeader_fair.graphql.ts (100%) rename {emission/src => src}/__generated__/FairMoreInfoQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairMoreInfoTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairMoreInfo_fair.graphql.ts (100%) rename {emission/src => src}/__generated__/FairQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Fair_fair.graphql.ts (100%) rename {emission/src => src}/__generated__/FairsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FairsRail_fairs_module.graphql.ts (100%) rename {emission/src => src}/__generated__/Fairs_me.graphql.ts (100%) rename {emission/src => src}/__generated__/FavoriteArtistsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FavoriteArtworksQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FavoriteCategoriesQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FavoriteFairsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FavoriteShowsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FeaturedArtistsTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FeaturedArtists_collection.graphql.ts (100%) rename {emission/src => src}/__generated__/FilteredInfiniteScrollGridQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FilteredInfiniteScrollGridTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FilteredInfiniteScrollGrid_entity.graphql.ts (100%) rename {emission/src => src}/__generated__/FiltersTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Filters_filteredArtworks.graphql.ts (100%) rename {emission/src => src}/__generated__/FollowArtistButtonMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/FollowArtistButtonTestsErrorQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FollowArtistButtonTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/FollowArtistButton_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/ForYouRefetchQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ForYou_forYou.graphql.ts (100%) rename {emission/src => src}/__generated__/GeneQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Gene_gene.graphql.ts (100%) rename {emission/src => src}/__generated__/GenericGrid_artworks.graphql.ts (100%) rename {emission/src => src}/__generated__/GlobalMapTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/GlobalMap_viewer.graphql.ts (100%) rename {emission/src => src}/__generated__/HeaderFollowGeneMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/Header_gene.graphql.ts (100%) rename {emission/src => src}/__generated__/Header_sale.graphql.ts (100%) rename {emission/src => src}/__generated__/HeroUnits_hero_units.graphql.ts (100%) rename {emission/src => src}/__generated__/ImageCarouselTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ImageCarousel_images.graphql.ts (100%) rename {emission/src => src}/__generated__/ImagePreview_attachment.graphql.ts (100%) rename {emission/src => src}/__generated__/InboxQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/InboxRefetchQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Inbox_me.graphql.ts (100%) rename {emission/src => src}/__generated__/InfiniteScrollArtworksGrid_connection.graphql.ts (100%) rename {emission/src => src}/__generated__/Inquiry_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/LocationMap_location.graphql.ts (100%) rename {emission/src => src}/__generated__/LoggedInUserInfoQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/LoggedInUserInfo_me.graphql.ts (100%) rename {emission/src => src}/__generated__/LotsByFollowedArtistsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/LotsByFollowedArtists_query.graphql.ts (100%) rename {emission/src => src}/__generated__/MakeOfferButtonOrderMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/MakeOfferButton_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/MapRendererQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Message_message.graphql.ts (100%) rename {emission/src => src}/__generated__/MessagesQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Messages_conversation.graphql.ts (100%) rename {emission/src => src}/__generated__/Metadata_show.graphql.ts (100%) rename {emission/src => src}/__generated__/MockRelayRendererFixturesArtistQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/MockRelayRendererFixturesBadQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/MockRelayRendererFixturesQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/MockRelayRendererFixtures_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/MockRelayRendererFixtures_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/MockRelayRendererFixtures_artworkMetadata.graphql.ts (100%) rename {emission/src => src}/__generated__/MoreInfoQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/MoreInfoTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/MoreInfo_show.graphql.ts (100%) rename {emission/src => src}/__generated__/Notification_notification.graphql.ts (100%) rename {emission/src => src}/__generated__/OtherWorks_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/PDFPreview_attachment.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerArtworkInfiniteScrollGridQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerArtworkTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerArtwork_partner.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerCardFollowMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerCardTestsErrorQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerCardTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerCard_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerFollowButtonFollowMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerFollowButton_partner.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerHeaderTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerHeader_partner.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerLocationSectionTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerLocationSection_partner.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerLocationsContainerQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerLocationsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerLocationsTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerLocations_partner.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerMap_location.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerOverviewInfiniteScrollQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerOverviewTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerOverview_partner.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerRefetchQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerShowRailItem_show.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerShowsInfiniteScrollGridQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerShowsRailQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerShowsRail_partner.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerShowsTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PartnerShows_partner.graphql.ts (100%) rename {emission/src => src}/__generated__/Partner_partner.graphql.ts (100%) rename {emission/src => src}/__generated__/PriceSummaryQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/PriceSummary_calculatedCost.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersArtistQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersBidFlowQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersCityBMWListQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersCityFairListQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersCitySavedListQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersCitySectionListQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersCollectionQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersConversationQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersFairQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersForYouQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersGeneQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersInboxQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersInquiryQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersRegistrationFlowQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersShowQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/QueryRenderersWorksForYouQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/RegistrationCreateBidderMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/RegistrationCreateCreditCardMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/RegistrationFlow_me.graphql.ts (100%) rename {emission/src => src}/__generated__/RegistrationFlow_sale.graphql.ts (100%) rename {emission/src => src}/__generated__/RegistrationUpdateUserMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/Registration_me.graphql.ts (100%) rename {emission/src => src}/__generated__/Registration_sale.graphql.ts (100%) rename {emission/src => src}/__generated__/RelatedArtist_artist.graphql.ts (100%) rename {emission/src => src}/__generated__/RelatedArtists_artists.graphql.ts (100%) rename {emission/src => src}/__generated__/RequestConditionReportMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/RequestConditionReportQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/RequestConditionReport_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/RequestConditionReport_me.graphql.ts (100%) rename {emission/src => src}/__generated__/SaleListItem_sale.graphql.ts (100%) rename {emission/src => src}/__generated__/SalesQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/SalesRendererQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Sales_query.graphql.ts (100%) rename {emission/src => src}/__generated__/SavedFairItemRowMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/SelectMaxBidRefetchQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/SelectMaxBid_me.graphql.ts (100%) rename {emission/src => src}/__generated__/SelectMaxBid_sale_artwork.graphql.ts (100%) rename {emission/src => src}/__generated__/SendConversationMessageMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtistsPreviewTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtistsPreview_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtistsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtistsTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtists_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtworksPreviewTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtworksPreview_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtworksQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtworksTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowArtworks_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowEventSectionTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowEventSection_event.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowHeaderFollowShowMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowHeader_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowItemRowMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowItemRow_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowItem_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowPreview_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Show_show.graphql.ts (100%) rename {emission/src => src}/__generated__/ShowsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/Shows_me.graphql.ts (100%) rename {emission/src => src}/__generated__/Shows_show.graphql.ts (100%) rename {emission/src => src}/__generated__/SmallList_shows.graphql.ts (100%) rename {emission/src => src}/__generated__/TimeOffsetProviderQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/UpdateConversationMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/VariableSizeShowsList_shows.graphql.ts (100%) rename {emission/src => src}/__generated__/WorksForYouQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/WorksForYou_query.graphql.ts (100%) rename {emission/src => src}/__generated__/addAssetToConsignmentMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/createConsignmentSubmissionMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/createGeminiAssetWithS3CredentialsMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/createMockNetworkLayerTestsAliasQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/createMockNetworkLayerTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/getConvectionGeminiKeyQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/getGeminiCredentialsForEnvironmentMutation.graphql.ts (100%) rename {emission/src => src}/__generated__/indexTestsFairBothPreviewQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/indexTestsFairHeaderQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/indexTestsQuery.graphql.ts (100%) rename {emission/src => src}/__generated__/updateConsignmentSubmissionMutation.graphql.ts (100%) rename {emission/src => src}/ambient.d.ts (100%) rename {emission/src => src}/lib/AppRegistry.tsx (100%) rename {emission/src => src}/lib/Components/Artist/Articles/Article.tsx (100%) rename {emission/src => src}/lib/Components/Artist/Articles/__tests__/Article-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/Articles/__tests__/__snapshots__/Article-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Artist/Articles/index.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistAbout.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistArtworks/index.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistHeader.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/ArtistShow.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/Metadata.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/SmallList.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/VariableSizeShowsList.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/__tests__/ArtistShow-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/__tests__/Metadata-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/__tests__/SmallList-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/__tests__/VariableSizeShowsList-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/__tests__/__snapshots__/ArtistShow-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/__tests__/__snapshots__/Metadata-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/__tests__/__snapshots__/SmallList-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/__tests__/__snapshots__/VariableSizeShowsList-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Artist/ArtistShows/index.tsx (100%) rename {emission/src => src}/lib/Components/Artist/Biography.tsx (100%) rename {emission/src => src}/lib/Components/Artist/__stories__/ArtistArticles.story.tsx (100%) rename {emission/src => src}/lib/Components/Artist/__stories__/ArtistHeader.story.tsx (100%) rename {emission/src => src}/lib/Components/Artist/__stories__/index.tsx (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/About-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/Articles-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/Artworks-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/Biography-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/Header-tests.tsx (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/__snapshots__/About-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/__snapshots__/Articles-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/__snapshots__/Artworks-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/__snapshots__/Biography-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Artist/__tests__/__snapshots__/Header-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/ArtistListItem.tsx (100%) rename {emission/src => src}/lib/Components/ArtistsGroupedByName.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkFilterOptions/SortOptions.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkFilterOptions/__tests__/SortOptions-tests.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/ArtworkGridItem.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/GenericGrid.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/InfiniteScrollArtworksGrid.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/RelayConnections/__tests__/ArtistArtworksGrid-tests.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/RelayConnections/__tests__/__snapshots__/ArtistArtworksGrid-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/__tests__/ArtworkGridItem-tests.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/__tests__/GenericGrid-tests.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/__tests__/InfiniteScrollGrid-tests.tsx (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/__tests__/__fixtures__/artwork.ts (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/__tests__/__snapshots__/ArtworkGridItem-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/__tests__/__snapshots__/GenericGrid-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/ArtworkGrids/__tests__/__snapshots__/InfiniteScrollGrid-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Components/Animation/CssTransition.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/Animation/Fade.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/BackButton.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/BidInfoRow.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/BiddingThemeProvider.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/Checkbox.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/Containers.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/Divider.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/Icon.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/Input.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/MaxBidPicker.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/PaymentInfo.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/Timer.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/Title.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__stories__/Checkbox.story.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__stories__/Input.story.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__stories__/Timer.story.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/.gitkeep (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/Checkbox-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/Input-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/MaxBidPicker-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/PaymentInfo-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/Timer-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/Title-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/__snapshots__/MaxBidPicker-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/__snapshots__/PaymentInfo-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Components/__tests__/__snapshots__/Title-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Context/TimeOffsetProvider.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Context/__tests__/TimeOffsetProvider-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Elements/Flex.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Elements/Grid.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Elements/Image.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Elements/TextInput.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Elements/Theme.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Elements/types.d.ts (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/BidResult.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/BillingAddress.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/ConfirmBid/BidderPositionQuery.ts (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/ConfirmBid/PriceSummary.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/ConfirmBid/index.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/CreditCardForm.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/Registration.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/RegistrationResult.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/SelectCountry.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/SelectMaxBid.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/SelectMaxBidEdit.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__stories__/BidResult.story.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__stories__/RegistrationResult.story.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/.gitkeep (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/BidResult-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/BillingAddress-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/ConfirmBid-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/CreditCardForm-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/Registration-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/RegistrationResult-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/SelectCountry-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/SelectMaxBid-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/SelectMaxBidEdit-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/__snapshots__/BidResult-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/__snapshots__/BillingAddress-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/__snapshots__/ConfirmBid-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/__snapshots__/CreditCardForm-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/__snapshots__/Registration-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/__snapshots__/RegistrationResult-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/__snapshots__/SelectCountry-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/__snapshots__/SelectMaxBid-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Screens/__tests__/__snapshots__/SelectMaxBidEdit-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Bidding/Validators/__tests__/index-tests.ts (100%) rename {emission/src => src}/lib/Components/Bidding/Validators/index.ts (100%) rename {emission/src => src}/lib/Components/Bidding/__stories__/BidFlow.story.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/__tests__/BidFlow-tests.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/__tests__/Helpers/FakeNavigator.tsx (100%) rename {emission/src => src}/lib/Components/Bidding/types.ts (100%) rename {emission/src => src}/lib/Components/Buttons/BottomAlignedButtonWrapper.tsx (100%) rename {emission/src => src}/lib/Components/Buttons/CaretButton.tsx (100%) rename {emission/src => src}/lib/Components/Buttons/DarkNavigationButton.tsx (100%) rename {emission/src => src}/lib/Components/Buttons/__stories__/Buttons.story.tsx (100%) rename {emission/src => src}/lib/Components/Buttons/__tests__/CaretButton-tests.tsx (100%) rename {emission/src => src}/lib/Components/Buttons/__tests__/DarkNavigationButton-tests.tsx (100%) rename {emission/src => src}/lib/Components/Buttons/__tests__/__snapshots__/CaretButton-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Buttons/__tests__/__snapshots__/DarkNavigationButton-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Carousel.tsx (100%) rename {emission/src => src}/lib/Components/ConnectivityBanner.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/ArtworkConsignmentTodo.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/BottomAlignedButton.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/CircleImage.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/CloseButton.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/FormElements.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/ImageSelection.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/NavButton.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/SearchResults.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/TextArea.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/TextInput.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/Toggle.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/ArtworkConsignmentTodo-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/BottomAlignedButton-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/CircleImage-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/FormElements-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/ImageSelection-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/Runner.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/SearchResults-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/TextArea-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/TextInput-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/Toggle-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/__snapshots__/ArtworkConsignmentTodo-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/__snapshots__/BottomAlignedButton-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/__snapshots__/CircleImage-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/__snapshots__/ImageSelection-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/__snapshots__/SearchResults-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/__snapshots__/TextArea-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/__snapshots__/TextInput-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Components/__tests__/__snapshots__/Toggle-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/Confirmation.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/ConsignmentsArtist.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/Edition.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/Location.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/Metadata.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/Overview.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/Provenance.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/SelectFromPhotoLibrary.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/Welcome.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Confirmation-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/ConsignmentsArtist-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Edition-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Location-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Metadata-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Overview-analytics-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Overview-local-storage-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Overview-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Overview-uploading-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Provenance-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/SelectFromPhotoLibrary-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/Welcome-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/__snapshots__/Edition-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/__snapshots__/Location-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/__snapshots__/Metadata-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/__snapshots__/Overview-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/__snapshots__/Provenance-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/__snapshots__/SelectFromPhotoLibrary-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Screens/__tests__/__snapshots__/Welcome-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/Gemini/createGeminiAssetWithS3Credentials.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/Gemini/getConvectionGeminiKey.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/Gemini/getGeminiCredentialsForEnvironment.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/__tests__/consignmentSetupToSubmission-tests.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/addAssetToConsignment.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/consignmentSetupToSubmission.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/createConsignmentSubmission.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/geminiUploadToS3.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/updateConsignmentSubmission.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Submission/uploadPhotoToGemini.ts (100%) rename {emission/src => src}/lib/Components/Consignments/Typography/index.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/__stories__/BottomAligned.story.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/__stories__/Consignments.story.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/__stories__/ImageSelection.story.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/__stories__/Search.story.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/__stories__/Style.story.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/__stories__/Todo.story.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/__stories__/consignmentSetups.ts (100%) rename {emission/src => src}/lib/Components/Consignments/__stories__/index.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/__tests__/__snapshots__/index-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Consignments/__tests__/fixtures/places.json (100%) rename {emission/src => src}/lib/Components/Consignments/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Components/Consignments/index.tsx (100%) rename {emission/src => src}/lib/Components/Countdown/DurationProvider.tsx (100%) rename {emission/src => src}/lib/Components/Countdown/StateManager.tsx (100%) rename {emission/src => src}/lib/Components/Countdown/Ticker.tsx (100%) rename {emission/src => src}/lib/Components/Countdown/__tests__/DurationProvider-tests.tsx (100%) rename {emission/src => src}/lib/Components/Countdown/__tests__/StateManager-tests.tsx (100%) rename {emission/src => src}/lib/Components/Countdown/__tests__/Ticker-tests.tsx (100%) rename {emission/src => src}/lib/Components/Countdown/index.ts (100%) rename {emission/src => src}/lib/Components/DottedLine.tsx (100%) rename {emission/src => src}/lib/Components/EntityList/Components/EntityItem.tsx (100%) rename {emission/src => src}/lib/Components/EntityList/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Components/EntityList/index.tsx (100%) rename {emission/src => src}/lib/Components/Events.tsx (100%) rename {emission/src => src}/lib/Components/FilterModal.tsx (100%) rename {emission/src => src}/lib/Components/FilteredInfiniteScrollGrid/FilteredInfiniteScrollGrid.tsx (100%) rename {emission/src => src}/lib/Components/FilteredInfiniteScrollGrid/Filters.tsx (100%) rename {emission/src => src}/lib/Components/FilteredInfiniteScrollGrid/__tests__/FilteredInfiniteScrollGrid-tests.tsx (100%) rename {emission/src => src}/lib/Components/FilteredInfiniteScrollGrid/__tests__/Filters-tests.tsx (100%) rename {emission/src => src}/lib/Components/FilteredInfiniteScrollGrid/index.ts (100%) rename {emission/src => src}/lib/Components/Gene/About.tsx (100%) rename {emission/src => src}/lib/Components/Gene/Biography.tsx (100%) rename {emission/src => src}/lib/Components/Gene/Header.tsx (100%) rename {emission/src => src}/lib/Components/Gene/__tests__/About-tests.tsx (100%) rename {emission/src => src}/lib/Components/Gene/__tests__/Biography-tests.tsx (100%) rename {emission/src => src}/lib/Components/Gene/__tests__/Header-tests.tsx (100%) rename {emission/src => src}/lib/Components/Gene/__tests__/__snapshots__/About-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Gene/__tests__/__snapshots__/Biography-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Gene/__tests__/__snapshots__/Header-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Home/ArtistRails/ArtistCard.tsx (100%) rename {emission/src => src}/lib/Components/Home/ArtistRails/ArtistRail.tsx (100%) rename {emission/src => src}/lib/Components/Home/ArtistRails/__tests__/ArtistCard-tests.tsx (100%) rename {emission/src => src}/lib/Components/Home/ArtistRails/__tests__/__snapshots__/ArtistCard-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Home/ArtworkRails/ArtworkRail.tsx (100%) rename {emission/src => src}/lib/Components/Home/ArtworkRails/ArtworkRailHeader.tsx (100%) rename {emission/src => src}/lib/Components/Home/ArtworkRails/__tests__/ArtworkRail-tests.tsx (100%) rename {emission/src => src}/lib/Components/Home/ArtworkRails/__tests__/__snapshots__/ArtworkRail-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Home/HeroUnits.tsx (100%) rename {emission/src => src}/lib/Components/Home/SearchBar.tsx (100%) rename {emission/src => src}/lib/Components/Home/SectionTitle.tsx (100%) rename {emission/src => src}/lib/Components/HoursCollapsible.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/ActiveBids/ActiveBid.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/ActiveBids/__stories__/ActiveBids.story.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/ActiveBids/__tests__/ActiveBid-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/ActiveBids/__tests__/__snapshots__/ActiveBid-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/ActiveBids/index.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Avatar.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Composer.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/ConversationSnippet.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Message.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Messages.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/ArtworkPreview.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/Attachment/AttachmentPreview.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/Attachment/ImagePreview.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/Attachment/PDFPreview.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/Attachment/__tests__/ImagePreview-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/Attachment/__tests__/PDFPreview-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/Attachment/__tests__/__snapshots__/ImagePreview-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/Attachment/__tests__/__snapshots__/PDFPreview-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/ShowPreview.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/__tests__/ArtworkPreview-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/__tests__/ShowPreview-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/__tests__/__snapshots__/ArtworkPreview-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/Preview/__tests__/__snapshots__/ShowPreview-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/SendConversationMessage.ts (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/UpdateConversation.ts (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/ZeroStateInbox.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__stories__/ArtworkPreview.story.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__stories__/Avatar.story.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__stories__/Composer.story.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__stories__/ConversationSnippet.story.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__stories__/Inbox.story.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__stories__/Message.story.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__stories__/ZeroStateInbox.story.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__stories__/index.ts (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/Avatar-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/Composer-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/ConversationSnippet-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/Conversations-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/Message-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/Messages-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/ZeroStateInbox-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/__snapshots__/Avatar-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/__snapshots__/Composer-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/__snapshots__/ConversationSnippet-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/__snapshots__/Conversations-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/__snapshots__/Message-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/__snapshots__/Messages-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/__tests__/__snapshots__/ZeroStateInbox-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Inbox/Conversations/index.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Typography/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Components/Inbox/Typography/index.tsx (100%) rename {emission/src => src}/lib/Components/Lists/SavedFairItemRow.tsx (100%) rename {emission/src => src}/lib/Components/Lists/SavedItemRow.tsx (100%) rename {emission/src => src}/lib/Components/Lists/ShowItemRow.tsx (100%) rename {emission/src => src}/lib/Components/Lists/__tests__/SavedItemRow-tests.tsx (100%) rename {emission/src => src}/lib/Components/Lists/__tests__/__snapshots__/SavedItemRow-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/LoadFailureView.tsx (100%) rename {emission/src => src}/lib/Components/LocationMap/__tests__/__snapshots__/index-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/LocationMap/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Components/LocationMap/index.tsx (100%) rename {emission/src => src}/lib/Components/Markdown.tsx (100%) rename {emission/src => src}/lib/Components/Modal.tsx (100%) rename {emission/src => src}/lib/Components/OpaqueImageView/OpaqueImageView.tsx (100%) rename {emission/src => src}/lib/Components/OpaqueImageView/createGeminiUrl.tsx (100%) rename {emission/src => src}/lib/Components/Picker.tsx (100%) rename {emission/src => src}/lib/Components/Portal.tsx (100%) rename {emission/src => src}/lib/Components/ReadMore.tsx (100%) rename {emission/src => src}/lib/Components/RelatedArtists/RelatedArtist.tsx (100%) rename {emission/src => src}/lib/Components/RelatedArtists/__tests__/Layout-tests.tsx (100%) rename {emission/src => src}/lib/Components/RelatedArtists/__tests__/__snapshots__/Layout-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/RelatedArtists/index.tsx (100%) rename {emission/src => src}/lib/Components/RetryErrorBoundary.tsx (100%) rename {emission/src => src}/lib/Components/Sale/Header.tsx (100%) rename {emission/src => src}/lib/Components/Sale/__tests__/Header-tests.tsx (100%) rename {emission/src => src}/lib/Components/Sale/__tests__/__snapshots__/Header-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/ScrollView.tsx (100%) rename {emission/src => src}/lib/Components/ScrollableTabBar.tsx (100%) rename {emission/src => src}/lib/Components/Separator.tsx (100%) rename {emission/src => src}/lib/Components/Show/ShowArtistsPreview.tsx (100%) rename {emission/src => src}/lib/Components/Show/ShowArtworksPreview.tsx (100%) rename {emission/src => src}/lib/Components/Show/__tests__/ShowArtistsPreview-tests.tsx (100%) rename {emission/src => src}/lib/Components/Show/__tests__/ShowArtworksPreview-tests.tsx (100%) rename {emission/src => src}/lib/Components/Show/__tests__/__snapshots__/ShowArtworksPreview-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/Spinner.tsx (100%) rename {emission/src => src}/lib/Components/States/ZeroState.tsx (100%) rename {emission/src => src}/lib/Components/States/__stories__/ZeroState.story.tsx (100%) rename {emission/src => src}/lib/Components/States/__tests__/ZeroState-tests.tsx (100%) rename {emission/src => src}/lib/Components/StickyTabPage/SnappyHorizontalRail.tsx (100%) rename {emission/src => src}/lib/Components/StickyTabPage/StickyTabPage.tsx (100%) rename {emission/src => src}/lib/Components/StickyTabPage/StickyTabPageFlatList.tsx (100%) rename {emission/src => src}/lib/Components/StickyTabPage/StickyTabPageScrollView.tsx (100%) rename {emission/src => src}/lib/Components/StickyTabPage/StickyTabPageTabBar.tsx (100%) rename {emission/src => src}/lib/Components/StickyTabPage/reanimatedHelpers.ts (100%) rename {emission/src => src}/lib/Components/Storybooks/SectionBrowser.tsx (100%) rename {emission/src => src}/lib/Components/Storybooks/StoryBrowser.tsx (100%) rename {emission/src => src}/lib/Components/Storybooks/Styles.tsx (100%) rename {emission/src => src}/lib/Components/Storybooks/__tests__/SectionBrowser-tests.tsx (100%) rename {emission/src => src}/lib/Components/Storybooks/__tests__/StoryBrowser-tests.tsx (100%) rename {emission/src => src}/lib/Components/Storybooks/__tests__/utils-tests.tsx (100%) rename {emission/src => src}/lib/Components/Storybooks/index.tsx (100%) rename {emission/src => src}/lib/Components/Storybooks/utils.ts (100%) rename {emission/src => src}/lib/Components/SwitchView.tsx (100%) rename {emission/src => src}/lib/Components/TabBar.tsx (100%) rename {emission/src => src}/lib/Components/TabEmptyState.tsx (100%) rename {emission/src => src}/lib/Components/TabView.tsx (100%) rename {emission/src => src}/lib/Components/Text/Headline.tsx (100%) rename {emission/src => src}/lib/Components/Text/LinkText.tsx (100%) rename {emission/src => src}/lib/Components/Text/Serif.tsx (100%) rename {emission/src => src}/lib/Components/Text/__stories__/Typography.story.tsx (100%) rename {emission/src => src}/lib/Components/Video.tsx (100%) rename {emission/src => src}/lib/Components/WorksForYou/Notification.tsx (100%) rename {emission/src => src}/lib/Components/WorksForYou/__tests__/Notification-tests.tsx (100%) rename {emission/src => src}/lib/Components/WorksForYou/__tests__/__snapshots__/Notification-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/__stories__/DottedLine.story.tsx (100%) rename {emission/src => src}/lib/Components/__stories__/Markdown.story.tsx (100%) rename {emission/src => src}/lib/Components/__stories__/Modal.story.tsx (100%) rename {emission/src => src}/lib/Components/__stories__/TabBar.story.tsx (100%) rename {emission/src => src}/lib/Components/__stories__/Video.story.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/ArtistListItem-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/ArtistsGroupedByName-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/Carousel-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/ConnectivityBanner-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/FilterModal-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/HoursCollapsible-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/Markdown-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/Modal-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/Picker-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/Portal-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/ReadMore-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/RetryErrorBoundary-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/ScrollView-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/Separator-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/TabView-tests.tsx (100%) rename {emission/src => src}/lib/Components/__tests__/__snapshots__/ArtistListItem-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/__tests__/__snapshots__/ArtistsGroupedByName-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/__tests__/__snapshots__/Carousel-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/__tests__/__snapshots__/ConnectivityBanner-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/__tests__/__snapshots__/Modal-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/__tests__/__snapshots__/RetryErrorBoundary-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/__tests__/__snapshots__/Separator-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/__tests__/__snapshots__/TabView-tests.tsx.snap (100%) rename {emission/src => src}/lib/Components/index.tsx (100%) rename {emission/src => src}/lib/Containers/Artist.tsx (100%) rename {emission/src => src}/lib/Containers/BidFlow.tsx (100%) rename {emission/src => src}/lib/Containers/Conversation.tsx (100%) rename {emission/src => src}/lib/Containers/Gene.tsx (100%) rename {emission/src => src}/lib/Containers/Inbox.tsx (100%) rename {emission/src => src}/lib/Containers/Inquiry.tsx (100%) rename {emission/src => src}/lib/Containers/RegistrationFlow.tsx (100%) rename {emission/src => src}/lib/Containers/WorksForYou.tsx (100%) rename {emission/src => src}/lib/Containers/__stories__/Artist.story.tsx (100%) rename {emission/src => src}/lib/Containers/__stories__/Gene.story.tsx (100%) rename {emission/src => src}/lib/Containers/__stories__/Inquiry.story.tsx (100%) rename {emission/src => src}/lib/Containers/__stories__/index.ts (100%) rename {emission/src => src}/lib/Containers/__tests__/Artist-tests.tsx (100%) rename {emission/src => src}/lib/Containers/__tests__/BidFlow-tests.tsx (100%) rename {emission/src => src}/lib/Containers/__tests__/Conversation-tests.tsx (100%) rename {emission/src => src}/lib/Containers/__tests__/Gene-tests.tsx (100%) rename {emission/src => src}/lib/Containers/__tests__/Inbox-tests.tsx (100%) rename {emission/src => src}/lib/Containers/__tests__/Inquiry-tests.tsx (100%) rename {emission/src => src}/lib/Containers/__tests__/RegistrationFlow-tests.tsx (100%) rename {emission/src => src}/lib/Containers/__tests__/WorksForYou-tests.tsx (100%) rename {emission/src => src}/lib/Containers/__tests__/__snapshots__/BidFlow-tests.tsx.snap (100%) rename {emission/src => src}/lib/Containers/__tests__/__snapshots__/Conversation-tests.tsx.snap (100%) rename {emission/src => src}/lib/Containers/__tests__/__snapshots__/Gene-tests.tsx.snap (100%) rename {emission/src => src}/lib/Containers/__tests__/__snapshots__/Inbox-tests.tsx.snap (100%) rename {emission/src => src}/lib/Containers/__tests__/__snapshots__/Inquiry-tests.tsx.snap (100%) rename {emission/src => src}/lib/Containers/__tests__/__snapshots__/RegistrationFlow-tests.tsx.snap (100%) rename {emission/src => src}/lib/Containers/__tests__/__snapshots__/WorksForYou-tests.tsx.snap (100%) rename {emission/src => src}/lib/Containers/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Containers/index.tsx (100%) rename {emission/src => src}/lib/ErrorReporting.ts (100%) rename {emission/src => src}/lib/Icons/ChevronIcon.tsx (100%) rename {emission/src => src}/lib/Icons/CircleWhiteCheckIcon.tsx (100%) rename {emission/src => src}/lib/Icons/Consignments/CamIcon.tsx (100%) rename {emission/src => src}/lib/Icons/Consignments/MoneyIcon.tsx (100%) rename {emission/src => src}/lib/Icons/Consignments/OfferIcon.tsx (100%) rename {emission/src => src}/lib/Icons/Consignments/SellIcon.tsx (100%) rename {emission/src => src}/lib/Icons/Consignments/index.tsx (100%) rename {emission/src => src}/lib/Icons/Crosshair.tsx (100%) rename {emission/src => src}/lib/Icons/Pin.tsx (100%) rename {emission/src => src}/lib/Icons/PinFairSelected.tsx (100%) rename {emission/src => src}/lib/Icons/PinGalleryOn.tsx (100%) rename {emission/src => src}/lib/Icons/PinSavedOff.tsx (100%) rename {emission/src => src}/lib/Icons/PinSavedOn.tsx (100%) rename {emission/src => src}/lib/Icons/PinSavedSelected.tsx (100%) rename {emission/src => src}/lib/Icons/SearchIcon.tsx (100%) rename {emission/src => src}/lib/NativeModules/Events.tsx (100%) rename {emission/src => src}/lib/NativeModules/GraphQLQueryCache.ts (100%) rename {emission/src => src}/lib/NativeModules/NotificationsManager.tsx (100%) rename {emission/src => src}/lib/NativeModules/SwitchBoard.tsx (100%) rename {emission/src => src}/lib/NativeModules/triggerCamera.tsx (100%) rename {emission/src => src}/lib/NativeModules/triggerRefine.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Artwork.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/AboutArtist.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/AboutWork.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ArtworkActions.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ArtworkDetails.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ArtworkExtraLinks/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ArtworkExtraLinks/__tests__/partnerName-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ArtworkExtraLinks/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ArtworkExtraLinks/partnerName.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ArtworkHeader.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ArtworkHistory.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ArtworkTombstone.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/AuctionPrice.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialButtons/BidButton.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialButtons/BuyNowButton.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialButtons/CommercialButtons.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialButtons/MakeOfferButton.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/BidButton-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/CommercialButtons-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialEditionSetInformation.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialInformation.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialInformationSizeInfo.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/CommercialPartnerInformation.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ContextCard.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/FollowArtistButton.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/DeepZoomLevel.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/DeepZoomOverlay.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/DeepZoomPyramid.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/DeepZoomTile.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/__deepZoomDebug.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/__tests__/DeepZoomPyramid-tests.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/__tests__/deepZoomGeometry-tests.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/deepZoomGeometry.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/useIsMounted.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselCloseButton.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselFullScreen.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageZoomView.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/IndexIndicator.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/StatusBarOverlay.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/VerticalSwipeToDismiss.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/__tests__/ImageCarouselFullScreen-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/boxShadow.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/useDoublePressCallback.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/useEventStream.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/FullScreen/useSpringFade.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/ImageCarousel.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/ImageCarousel.tsx.rej (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/ImageCarouselContext.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/ImageCarouselEmbedded.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/ImageWithLoadingState.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/README.md (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/__tests__/ImageCarousel-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/__tests__/ImageCarouselContext-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/__tests__/ImageCarouselEmbedded-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/__tests__/ImageWithLoadingState-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/__tests__/geometry-tests.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/__tests__/useAnimatedValue-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/__tests__/useGlobalState-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/__tests__/useSpringValue-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/geometry.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/qa-script.md (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/useAnimatedValue.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/useGlobalState.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/ImageCarousel/useSpringValue.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/OtherWorks/ContextGridCTA.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/OtherWorks/Header.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/OtherWorks/OtherWorks.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/OtherWorks/__tests__/Header-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/PartnerCard.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/RequestConditionReport.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__stories__/AboutWork.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__stories__/ArtworkActions.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__stories__/ArtworkDetails.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__stories__/ArtworkHistory.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__stories__/ArtworkTombstone.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/AboutArtist-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/AboutWork-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/ArtworkActions-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/ArtworkDetails-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/ArtworkHeader-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/ArtworkHistory-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/ArtworkTombstone-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/AuctionPrice-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/CommercialEditionSetInformation-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/CommercialInformation-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/CommercialPartnerInformation-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/ContextCard-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/FollowArtistButton-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/OtherWorks-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/PartnerCard-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/RequestConditionReport-analytics-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/Components/__tests__/RequestConditionReport-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/__stories__/Artwork.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/__tests__/Artwork-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Artwork/__tests__/hardware-tests.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/hardware.ts (100%) rename {emission/src => src}/lib/Scenes/Artwork/index.ts (100%) rename {emission/src => src}/lib/Scenes/ArtworkAttributionClassFAQ/ArtworkAttributionClassFAQ.tsx (100%) rename {emission/src => src}/lib/Scenes/ArtworkAttributionClassFAQ/__tests__/ArtworkAttributionClassFAQ-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/ArtworkAttributionClassFAQ/index.ts (100%) rename {emission/src => src}/lib/Scenes/City/City.tsx (100%) rename {emission/src => src}/lib/Scenes/City/CityBMWList.tsx (100%) rename {emission/src => src}/lib/Scenes/City/CityFairList.tsx (100%) rename {emission/src => src}/lib/Scenes/City/CityPicker.tsx (97%) rename {emission/src => src}/lib/Scenes/City/CitySavedList.tsx (100%) rename {emission/src => src}/lib/Scenes/City/CitySectionList.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/AllEvents.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/BMWEventSection/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/BMWEventSection/index.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/Event/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/Event/index.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/EventList.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/EventSection/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/EventSection/index.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/FairEventSection/Components/FairEventSectionCard.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/FairEventSection/Components/__tests__/FairEventSectionCard-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/FairEventSection/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/FairEventSection/index.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/SavedEventSection/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/SavedEventSection/index.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/TabFairItemRow/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/TabFairItemRow/index.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/__tests__/AllEvents-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/Components/__tests__/EventList-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/__tests__/City-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/__tests__/CityBMWList-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/__tests__/CityFairList-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/__tests__/CityPicker-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/__tests__/CitySavedList-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/__tests__/CitySectionList-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/City/cityTabs.ts (100%) rename {emission/src => src}/lib/Scenes/City/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/Collection.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/Components/FeaturedArtists.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/Components/__fixtures__/CollectionFixture.ts (100%) rename {emission/src => src}/lib/Scenes/Collection/Components/__fixtures__/index.ts (100%) rename {emission/src => src}/lib/Scenes/Collection/Components/__tests__/FeaturedArtists-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/Components/__tests__/__snapshots__/FeaturedArtists-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Collection/Screens/CollectionArtworks.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/Screens/CollectionHeader.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/Screens/__tests__/CollectionArtworks-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/Screens/__tests__/CollectionHeader-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/Screens/__tests__/__snapshots__/CollectionHeader-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Collection/__stories__/Collection.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/__tests__/Collection-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Collection/__tests__/__snapshots__/Collection-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Collection/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/ArtistsExhibitorsWorksLink.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/ArtworksPreview.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairBoothHeader.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairBoothPreview/Components/FairBoothPreviewHeader.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairBoothPreview/Components/__tests__/FairBoothPreviewHeader-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairBoothPreview/Components/__tests__/__snapshots__/FairBoothPreviewHeader-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairBoothPreview/__tests__/__snapshots__/index-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairBoothPreview/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairBoothPreview/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairHeader/CountdownTimer.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairHeader/__tests__/CountdownTimer-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairHeader/__tests__/__snapshots__/index-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairHeader/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/FairHeader/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/__tests__/ArtistsExhibitorsWorksLink-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/__tests__/ArtworksPreview-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/__tests__/FairBoothHeader-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/__tests__/__snapshots__/ArtistsExhibitorsWorksLink-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/__tests__/__snapshots__/ArtworksPreview-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Components/__tests__/__snapshots__/FairBoothHeader-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Fair.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/FairArtists.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/FairArtworks.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/FairBMWArtActivation.tsx (97%) rename {emission/src => src}/lib/Scenes/Fair/Screens/FairBooth.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/FairDetail.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/FairExhibitors.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/FairMoreInfo.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/FairArtists-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/FairArtworks-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/FairBMWArtActivation-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/FairBooth-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/FairDetail-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/FairExhibitors-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/FairMoreInfo-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/__snapshots__/FairArtists-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/__snapshots__/FairArtworks-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/__snapshots__/FairBooth-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/__snapshots__/FairDetail-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/Screens/__tests__/__snapshots__/FairMoreInfo-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/__fixtures__/index.ts (100%) rename {emission/src => src}/lib/Scenes/Fair/__stories__/Fair.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/__tests__/Fair-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Fair/__tests__/__snapshots__/Fair-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Fair/index.ts (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Artists/Relay/FavoriteArtists.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Artists/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Artists/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Artworks/Relay/FavoriteArtworks.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Artworks/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Artworks/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Categories/Relay/FavoriteCategories.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Categories/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Categories/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Fairs/Relay/FavoriteFairs.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Fairs/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Fairs/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Shows/Relay/FavoriteShows.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Shows/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/Components/Shows/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/__stories__/Favorites.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Favorites/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/ForYou/Components/ArtworkCarousel.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/ForYou/Components/ArtworkCarouselHeader.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/ForYou/Components/FairsRail.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/ForYou/Components/__tests__/ArtworkCarouselHeader-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/ForYou/Components/__tests__/FairsRail-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/ForYou/Components/__tests__/__snapshots__/FairsRail-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Home/Components/ForYou/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/ForYou/videos/9172018-bn-banner-xs.mp4 (100%) rename {emission/src => src}/lib/Scenes/Home/Components/ForYou/videos/chris-test-image.png (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/LotsByFollowedArtists.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/SaleList.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/SaleListItem.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/SectionHeader.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/ZeroState/__tests__/__snapshots__/index-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/ZeroState/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/ZeroState/index.html (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/ZeroState/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/__stories__/LotsByFollowedArtists.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/__tests__/LotsByFollowedArtists-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/__tests__/SaleList-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/__tests__/SaleListItem-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/__tests__/SectionHeader-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Components/__tests__/__snapshots__/SaleListItem-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/Relay/SalesRenderer.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/__tests__/__snapshots__/index-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/Sales/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/SectionTitle.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/__tests__/SectionTitle-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/__tests__/TabBar-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/Components/__tests__/__snapshots__/TabBar-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Home/__stories__/Home.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Home/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/Components/CitySwitcherButton.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/Components/PinsShapeLayer.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/Components/ShowCard.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/Components/UserPositionButton.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/EventEmitter.ts (100%) rename {emission/src => src}/lib/Scenes/Map/GlobalMap.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/MapContainer.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/MapDataSource.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/MapRenderer.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/__stories__/Map.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/__tests__/Bucket-tests.ts (100%) rename {emission/src => src}/lib/Scenes/Map/__tests__/GlobalMap-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Map/bucketCityResults.ts (100%) rename {emission/src => src}/lib/Scenes/Map/exhibitionPeriodParser.ts (100%) rename {emission/src => src}/lib/Scenes/Map/index.ts (100%) rename {emission/src => src}/lib/Scenes/Map/types.ts (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/PartnerArtwork.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/PartnerFollowButton.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/PartnerHeader.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/PartnerLocationSection.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/PartnerMap.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/PartnerOverview.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/PartnerShowRailItem.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/PartnerShows.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/PartnerShowsRail.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/__fixtures__/PartnerArtwork-fixture.ts (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/__tests__/PartnerArtwork-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/__tests__/PartnerHeader-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/__tests__/PartnerLocationSection-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/__tests__/PartnerOverview-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/__tests__/PartnerShows-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Components/__tests__/__snapshots__/PartnerArtwork-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Partner/Partner.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Screens/PartnerLocations.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Screens/__fixtures__/PartnerLocations-fixture.ts (100%) rename {emission/src => src}/lib/Scenes/Partner/Screens/__tests__/PartnerLocations-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Partner/Screens/__tests__/__snapshots__/PartnerLocations-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Partner/index.ts (100%) rename {emission/src => src}/lib/Scenes/PrivacyRequest/PrivacyRequest.tsx (100%) rename {emission/src => src}/lib/Scenes/PrivacyRequest/__tests__/PrivacyRequest-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/PrivacyRequest/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/AutosuggestResults.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/FadeIn.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/Input.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/RecentSearches.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/Search.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/SearchContext.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/SearchResult.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/SearchResultList.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/__stories__/Search.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/__tests__/AutosuggestResults-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/__tests__/RecentSearches-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/__tests__/Search-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/__tests__/SearchResult-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Search/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Settings/LoggedInUserInfo.tsx (100%) rename {emission/src => src}/lib/Scenes/Settings/MyProfile.tsx (100%) rename {emission/src => src}/lib/Scenes/Settings/__mocks__/LoggedInUserInfo.tsx (100%) rename {emission/src => src}/lib/Scenes/Settings/__stories__/Settings.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Settings/__tests__/LoggedInUserInfo-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Settings/__tests__/MyProfile-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Settings/__tests__/__snapshots__/MyProfile-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Show/Components/ShowEventSection.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/ShowHeader/Components/Carousel.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/ShowHeader/Components/__tests__/Carousel-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/ShowHeader/Components/__tests__/__snapshots__/Carousel-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Show/Components/ShowHeader/ShowHeader.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/ShowHeader/__tests__/ShowHeader-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/ShowHeader/__tests__/__snapshots__/ShowHeader-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Show/Components/ShowHeader/index.ts (100%) rename {emission/src => src}/lib/Scenes/Show/Components/Shows/Components/ShowItem.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/Shows/Components/__tests__/ShowItem-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/Shows/Components/__tests__/__snapshots__/ShowItem-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Show/Components/Shows/__tests__/__snapshots__/index-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Show/Components/Shows/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/Shows/__tests__/nearbyShows-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/Shows/index.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/TextSection.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/__tests__/ShowEventSection-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/__tests__/TextSection-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Components/__tests__/__snapshots__/ShowEventSection-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/Detail.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/MoreInfo.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/ShowArtists.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/ShowArtworks.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/__tests__/Detail-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/__tests__/MoreInfo-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/__tests__/ShowArtists-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/__tests__/ShowArtworks-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/__tests__/__snapshots__/ShowArtists-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Show/Screens/__tests__/__snapshots__/ShowArtworks-tests.tsx.snap (100%) rename {emission/src => src}/lib/Scenes/Show/Show.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/__fixtures__/NearbyShowsFixture.ts (100%) rename {emission/src => src}/lib/Scenes/Show/__stories__/Show.story.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/__tests__/Show-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/__tests__/fixtures/ShowFixture.ts (100%) rename {emission/src => src}/lib/Scenes/Show/__tests__/fixtures/index.ts (100%) rename {emission/src => src}/lib/Scenes/Show/__tests__/index-tests.ts (100%) rename {emission/src => src}/lib/Scenes/Show/__tests__/index-tests.tsx (100%) rename {emission/src => src}/lib/Scenes/Show/index.ts (100%) rename {emission/src => src}/lib/__fixtures__/ArtistFixture.js (100%) rename {emission/src => src}/lib/__fixtures__/ArtistFixture.ts (100%) rename {emission/src => src}/lib/__fixtures__/ArtworkBidAction.ts (100%) rename {emission/src => src}/lib/__fixtures__/ArtworkBidInfo.ts (100%) rename {emission/src => src}/lib/__fixtures__/ArtworkFixture.ts (100%) rename {emission/src => src}/lib/__fixtures__/CityFixture.ts (100%) rename {emission/src => src}/lib/__fixtures__/FairBoothShowFixture.ts (100%) rename {emission/src => src}/lib/__fixtures__/ShowFixture.ts (100%) rename {emission/src => src}/lib/__mocks__/metaphysics.ts (100%) rename {emission/src => src}/lib/data/ScreenSizes/screenSizes.tsx (100%) rename {emission/src => src}/lib/data/colors.ts (100%) rename {emission/src => src}/lib/data/constants.ts (100%) rename {emission/src => src}/lib/data/fonts.ts (100%) rename {emission/src => src}/lib/options.ts (100%) rename {emission/src => src}/lib/package.json (100%) rename {emission/src => src}/lib/relay/QueryRenderers.tsx (100%) rename {emission/src => src}/lib/relay/config.tsx (100%) rename {emission/src => src}/lib/relay/createEnvironment.ts (100%) rename {emission/src => src}/lib/relay/middlewares/__tests__/cacheMiddleware-tests.ts (100%) rename {emission/src => src}/lib/relay/middlewares/cacheMiddleware.ts (100%) rename {emission/src => src}/lib/relay/middlewares/metaphysicsMiddleware.ts (100%) rename {emission/src => src}/lib/relay/middlewares/timingMiddleware.ts (100%) rename {emission/src => src}/lib/tests/MockRelayRenderer.tsx (100%) rename {emission/src => src}/lib/tests/__tests__/MockRelayRenderer-tests.tsx (100%) rename {emission/src => src}/lib/tests/__tests__/MockRelayRendererFixtures.tsx (100%) rename {emission/src => src}/lib/tests/__tests__/renderRelayTree-tests.tsx (100%) rename {emission/src => src}/lib/tests/__tests__/renderUntil-tests.tsx (100%) rename {emission/src => src}/lib/tests/createMockNetworkLayer/CustomScalars/formatted_number.ts (100%) rename {emission/src => src}/lib/tests/createMockNetworkLayer/__tests__/createMockNetworkLayer-tests.tsx (100%) rename {emission/src => src}/lib/tests/createMockNetworkLayer/index.ts (100%) rename {emission/src => src}/lib/tests/extractText.ts (100%) rename {emission/src => src}/lib/tests/flushPromiseQueue.ts (100%) rename {emission/src => src}/lib/tests/mockTimezone.tsx (100%) rename {emission/src => src}/lib/tests/mockTracking.ts (100%) rename {emission/src => src}/lib/tests/renderRelayTree.tsx (100%) rename {emission/src => src}/lib/tests/renderUntil.tsx (100%) rename {emission/src => src}/lib/tests/renderWithLayout.tsx (100%) rename {emission/src => src}/lib/tests/waitUntil.ts (100%) rename {emission/src => src}/lib/types/SafeAreaInsets.ts (100%) rename {emission/src => src}/lib/utils/CatchErrors.tsx (100%) rename {emission/src => src}/lib/utils/Context.tsx (100%) rename {emission/src => src}/lib/utils/__tests__/formatDates-tests.tsx (100%) rename {emission/src => src}/lib/utils/__tests__/getTestWrapper-tests.tsx (100%) rename {emission/src => src}/lib/utils/__tests__/isCloseToBottom-tests.ts (100%) rename {emission/src => src}/lib/utils/__tests__/limitWithCount-tests.tsx (100%) rename {emission/src => src}/lib/utils/__tests__/placeholders-tests.tsx (100%) rename {emission/src => src}/lib/utils/__tests__/plainTextFromTree-tests.tsx (100%) rename {emission/src => src}/lib/utils/__tests__/renderMarkdown-tests.tsx (100%) rename {emission/src => src}/lib/utils/__tests__/renderWithLoadProgress-tests.tsx (100%) rename {emission/src => src}/lib/utils/__tests__/renderWithPlaceholder-tests.tsx (100%) rename {emission/src => src}/lib/utils/__tests__/router-tests.ts (100%) rename {emission/src => src}/lib/utils/__tests__/volleyClient-tests.ts (100%) rename {emission/src => src}/lib/utils/convertCityToGeoJSON.ts (100%) rename {emission/src => src}/lib/utils/devCacheBust.ts (100%) rename {emission/src => src}/lib/utils/errors.tsx (100%) rename {emission/src => src}/lib/utils/formatDates.tsx (100%) rename {emission/src => src}/lib/utils/get.ts (100%) rename {emission/src => src}/lib/utils/getTestWrapper.tsx (100%) rename {emission/src => src}/lib/utils/isCloseToBottom.ts (100%) rename {emission/src => src}/lib/utils/isCloseToEdge.ts (100%) rename {emission/src => src}/lib/utils/limitWithCount.tsx (100%) rename {emission/src => src}/lib/utils/placeholders.tsx (100%) rename {emission/src => src}/lib/utils/plainTextFromTree.ts (100%) rename {emission/src => src}/lib/utils/renderMarkdown.tsx (100%) rename {emission/src => src}/lib/utils/renderWithLoadProgress.tsx (100%) rename {emission/src => src}/lib/utils/renderWithPlaceholder.tsx (100%) rename {emission/src => src}/lib/utils/router.ts (100%) rename {emission/src => src}/lib/utils/track/index.ts (100%) rename {emission/src => src}/lib/utils/track/schema.ts (100%) rename {emission/src => src}/lib/utils/useScreenDimensions.tsx (100%) rename {emission/src => src}/lib/utils/volleyClient.ts (100%) rename {emission/src => src}/setupJest.ts (100%) rename {emission/storybook => storybook}/storyLoader.js (100%) rename emission/tsconfig.json => tsconfig.json (95%) rename emission/tslint.json => tslint.json (100%) rename {emission/typings => typings}/graphql.d.ts (100%) rename {emission/typings => typings}/node.d.ts (100%) rename emission/verify-npm-podspecs.js => verify-npm-podspecs.js (100%) rename emission/yarn.lock => yarn.lock (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml index f886dc0ecc4..0d2053a1996 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -91,7 +91,7 @@ jobs: - run: name: Bundle emission - command: cd emission && yarn bundle-for-native-ci + command: yarn bundle-for-native-ci - save_cache: key: v4-pods-{{ checksum "Podfile.lock" }} @@ -147,22 +147,22 @@ jobs: - restore_cache: keys: - - v3-yarn-{{ checksum "emission/yarn.lock" }} + - v3-yarn-{{ checksum "yarn.lock" }} # Fall back to using the latest cache if no exact match is found. - v3-yarn- - run: name: Install Yarn Dependencies - command: cd emission && yarn install --ignore-engines + command: yarn install --ignore-engines - save_cache: - key: v3-yarn-{{ checksum "emission/yarn.lock" }} + key: v3-yarn-{{ checksum "yarn.lock" }} paths: - - emission/node_modules + - node_modules - run: name: Deploy via auto-release - command: cd emission && yarn update-metaphysics + command: yarn update-metaphysics workflows: version: 2 diff --git a/.gitattributes b/.gitattributes index 386b45fd09d..859b2d65baa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,3 @@ CHANGELOG.yml merge=union +src/__generated__/*.graphql.ts linguist-generated +src/__generated__/*.queryMap.json linguist-generated diff --git a/.gitignore b/.gitignore index fb1ca1fcc59..1d995691aaa 100644 --- a/.gitignore +++ b/.gitignore @@ -52,12 +52,42 @@ iOSInjectionProject/ fastlane/Gemfile.lock Artsy.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -# React Native pods. See: Podfile -rn_pods - # regular Pods. No longer a submodule Pods # build artefacts derived_data Artsy/Networking/ARReactPackagerHost.m + +# COPIED FROM EMISSION + +# Xcode + +## Build generated +dist + +# Custom + +node_modules +npm-debug.log +.vscode/launchReactNative.js +.vscode/.react/ +.vscode/typings +.apphub +coverage +package-lock.json +yarn-error.log +.awcache + +# Use a custom, cached location for Jest to save transpiling +# on every PR +.jest/cache + +# Danger artifacts +tslint-errors.json + +# TypeScript Logs +tsc_raw.log + +# Emission bundle +emission/Pod/Assets/Emission.js* diff --git a/emission/.gqlconfig b/.gqlconfig similarity index 100% rename from emission/.gqlconfig rename to .gqlconfig diff --git a/emission/.npmrc b/.npmrc similarity index 100% rename from emission/.npmrc rename to .npmrc diff --git a/emission/.nvmrc b/.nvmrc similarity index 100% rename from emission/.nvmrc rename to .nvmrc diff --git a/emission/.prettierignore b/.prettierignore similarity index 100% rename from emission/.prettierignore rename to .prettierignore diff --git a/emission/.stylelintrc b/.stylelintrc similarity index 100% rename from emission/.stylelintrc rename to .stylelintrc diff --git a/.travis.yml b/.travis.yml index 45bbf77647f..17945fcbe64 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,19 +11,18 @@ cache: # General SwiftPM # Danger Swift plugins, like Yams - .build - - emission/node_modules - - emission/.jest/cache + - node_modules + - .jest/cache install: # Grab the latest Danger JS from npm - nvm use 12 - npm install -g danger - npm install -g yarn - - pushd emission && yarn install && popd + - yarn install script: # Run the Dangerfile.swift - swift run danger-swift ci - - cd emission - yarn ci - yarn danger ci --verbose diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 093d1dd6133..fb782c57155 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,8 +1,6 @@ { // See http://go.microsoft.com/fwlink/?LinkId=827846 // for the documentation about the extensions.json format - "recommendations": [ - "Orta.vscode-ios-common-files", - "Orta.vscode-danger", - ] + "recommendations": ["Orta.vscode-ios-common-files", "Orta.vscode-danger", "artsy.artsy-studio-extension-pack"], + "unwantedRecommendations": ["prisma.vscode-graphql"] } diff --git a/emission/.vscode/launch.json b/.vscode/launch.json similarity index 100% rename from emission/.vscode/launch.json rename to .vscode/launch.json diff --git a/emission/.vscode/settings.json b/.vscode/settings.json similarity index 90% rename from emission/.vscode/settings.json rename to .vscode/settings.json index 0193468004c..3c589f6f5d4 100644 --- a/emission/.vscode/settings.json +++ b/.vscode/settings.json @@ -28,9 +28,6 @@ "build": true, ".awcache": true, ".happypack": true, - "Example/build": true, - "Example/DerivedData": true, - "Example/Pods/Headers/**": true }, "search.exclude": { "**/node_modules": true, @@ -61,7 +58,6 @@ "matt" ], "cSpell.diagnosticLevel": "Hint", - "clang.compilationDatabase": "${workspaceRoot}/Example/compile_commands.json", "typescript.tsdk": "./node_modules/typescript/lib", "todohighlight.exclude": ["node_modules/**", ".vscode/**", "externals/**"], "tslint.autoFixOnSave": true, diff --git a/emission/.vscode/tasks.json b/.vscode/tasks.json similarity index 100% rename from emission/.vscode/tasks.json rename to .vscode/tasks.json diff --git a/emission/.yarnrc b/.yarnrc similarity index 100% rename from emission/.yarnrc rename to .yarnrc diff --git a/Artsy.xcodeproj/project.pbxproj b/Artsy.xcodeproj/project.pbxproj index 45ef15a6670..b037d28e551 100644 --- a/Artsy.xcodeproj/project.pbxproj +++ b/Artsy.xcodeproj/project.pbxproj @@ -4616,7 +4616,7 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Artsy/Pods-Artsy-frameworks.sh", - "${PODS_ROOT}/../emission/node_modules/@mapbox/react-native-mapbox-gl/ios/Mapbox.framework", + "${PODS_ROOT}/../node_modules/@mapbox/react-native-mapbox-gl/ios/Mapbox.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( @@ -4649,7 +4649,6 @@ "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/Unica77LL-Regular.otf", "${PODS_ROOT}/Artsy+UILabels/Pod/Assets/Chevron_Black.png", "${PODS_ROOT}/Artsy+UILabels/Pod/Assets/Chevron_Black@2x.png", - "${PODS_ROOT}/../emission/Pod/Assets/Emission.js", "${PODS_ROOT}/../emission/Pod/Assets/assets", "${PODS_ROOT}/Extraction/Extraction/Assets/ARLoadFailureRetryIcon@2x.png", "${PODS_ROOT}/FBSDKCoreKit/FacebookSDKStrings.bundle", @@ -4674,7 +4673,6 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Unica77LL-Regular.otf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Chevron_Black.png", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Chevron_Black@2x.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Emission.js", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/assets", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARLoadFailureRetryIcon@2x.png", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FacebookSDKStrings.bundle", diff --git a/Artsy/App/ARAppDelegate+Emission.m b/Artsy/App/ARAppDelegate+Emission.m index 908fc33ede5..62c6f710333 100644 --- a/Artsy/App/ARAppDelegate+Emission.m +++ b/Artsy/App/ARAppDelegate+Emission.m @@ -86,7 +86,7 @@ - (void)setupEmission; [self setupSharedEmissionWithPackagerURL:packagerURL]; } else if ([AROptions boolForOption:AROptionsDevReactEnv]) { - NSString *bundleUrlString = [NSString stringWithFormat:@"http://%@:8081/Example/Emission/index.ios.bundle?platform=ios&dev=true", [ARReactPackagerHost hostname]]; + NSString *bundleUrlString = [NSString stringWithFormat:@"http://%@:8081/index.ios.bundle?platform=ios&dev=true", [ARReactPackagerHost hostname]]; NSURL *packagerURL = [NSURL URLWithString:bundleUrlString]; [self setupSharedEmissionWithPackagerURL:packagerURL]; diff --git a/Podfile b/Podfile index 987a9cf8467..ee432de3bc8 100644 --- a/Podfile +++ b/Podfile @@ -22,16 +22,9 @@ installing_pods = ARGV.include?('install') || ARGV.include?('update') npm_vendored_podspecs = {} if installing_pods - system 'pushd emission; yarn install --ignore-engines; popd' - - npm_vendored_podspecs = JSON.parse(File.read('./emission/npm-podspecs.json'), symbolize_names: true) - npm_vendored_podspecs.update(npm_vendored_podspecs) do |_pod_name, props| - if props[:path] - props.merge path: File.join('./emission/', props[:path]) - else - props.merge podspec: File.join('./emission/', props[:podspec]) - end - end + system 'yarn install --ignore-engines' + + npm_vendored_podspecs = JSON.parse(File.read('./npm-podspecs.json'), symbolize_names: true) # Remove DevSupport pod on CI builds, which are used to deploy prod builds. if ENV['CIRCLE_BUILD_NUM'] diff --git a/Podfile.lock b/Podfile.lock index 681e740a55f..256fe5a41e9 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -70,7 +70,7 @@ PODS: - DHCShakeNotifier (0.2.0) - DoubleConversion (1.1.6) - EDColor (1.0.0) - - Emission (1.21.51): + - Emission (1.21.52): - "Artsy+UIColors" - "Artsy+UIFonts (>= 3.0.0)" - DoubleConversion (= 1.1.6) @@ -461,22 +461,22 @@ DEPENDENCIES: - Artsy-UIButtons - CocoaLumberjack (from `https://github.com/CocoaLumberjack/CocoaLumberjack.git`) - DHCShakeNotifier - - DoubleConversion (from `./emission/node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - DoubleConversion (from `node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - EDColor - Emission (from `./emission`) - Expecta - "Expecta+Snapshots" - Extraction - - FBLazyVector (from `./emission/node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `./emission/node_modules/react-native/Libraries/FBReactNativeSpec`) + - FBLazyVector (from `node_modules/react-native/Libraries/FBLazyVector`) + - FBReactNativeSpec (from `node_modules/react-native/Libraries/FBReactNativeSpec`) - FBSDKCoreKit (~> 4.33) - FBSDKLoginKit (~> 4.33) - FBSnapshotTestCase - FLKAutoLayout (from `https://github.com/orta/FLKAutoLayout.git`, branch `v1`) - - Folly (from `./emission/node_modules/react-native/third-party-podspecs/Folly.podspec`) + - Folly (from `node_modules/react-native/third-party-podspecs/Folly.podspec`) - Forgeries/Mocks - FXBlurView - - glog (from `./emission/node_modules/react-native/third-party-podspecs/glog.podspec`) + - glog (from `node_modules/react-native/third-party-podspecs/glog.podspec`) - Interstellar/Core (from `https://github.com/ashfurrow/Interstellar.git`, branch `observable-unsubscribe`) - ISO8601DateFormatter (from `https://github.com/orta/iso-8601-date-formatter`) - JLRoutes (from `https://github.com/orta/JLRoutes.git`) @@ -498,48 +498,48 @@ DEPENDENCIES: - ORStackView (= 2.0.3) - Pulley (from `https://github.com/l2succes/Pulley.git`, branch `master`) - Quick - - RCTRequired (from `./emission/node_modules/react-native/Libraries/RCTRequired`) - - RCTTypeSafety (from `./emission/node_modules/react-native/Libraries/TypeSafety`) - - React (from `./emission/node_modules/react-native`) - - React-Core/DevSupport (from `./emission/node_modules/react-native`) - - React-CoreModules (from `./emission/node_modules/react-native/React/CoreModules`) - - React-cxxreact (from `./emission/node_modules/react-native/ReactCommon/cxxreact`) - - React-jsi (from `./emission/node_modules/react-native/ReactCommon/jsi`) - - React-jsiexecutor (from `./emission/node_modules/react-native/ReactCommon/jsiexecutor`) - - React-jsinspector (from `./emission/node_modules/react-native/ReactCommon/jsinspector`) - - "react-native-cameraroll (from `./emission/node_modules/@react-native-community/cameraroll`)" - - "react-native-geolocation (from `./emission/node_modules/@react-native-community/geolocation`)" - - "react-native-mapbox-gl (from `./emission/node_modules/@mapbox/react-native-mapbox-gl`)" - - react-native-navigator-ios (from `./emission/node_modules/react-native-navigator-ios`) - - "react-native-netinfo (from `./emission/node_modules/@react-native-community/netinfo`)" - - React-RCTActionSheet (from `./emission/node_modules/react-native/Libraries/ActionSheetIOS`) - - React-RCTAnimation (from `./emission/node_modules/react-native/Libraries/NativeAnimation`) - - React-RCTBlob (from `./emission/node_modules/react-native/Libraries/Blob`) - - React-RCTImage (from `./emission/node_modules/react-native/Libraries/Image`) - - React-RCTLinking (from `./emission/node_modules/react-native/Libraries/LinkingIOS`) - - React-RCTNetwork (from `./emission/node_modules/react-native/Libraries/Network`) - - React-RCTSettings (from `./emission/node_modules/react-native/Libraries/Settings`) - - React-RCTText (from `./emission/node_modules/react-native/Libraries/Text`) - - React-RCTVibration (from `./emission/node_modules/react-native/Libraries/Vibration`) - - ReactCommon/jscallinvoker (from `./emission/node_modules/react-native/ReactCommon`) - - ReactCommon/turbomodule/core (from `./emission/node_modules/react-native/ReactCommon`) + - RCTRequired (from `node_modules/react-native/Libraries/RCTRequired`) + - RCTTypeSafety (from `node_modules/react-native/Libraries/TypeSafety`) + - React (from `node_modules/react-native`) + - React-Core/DevSupport (from `node_modules/react-native`) + - React-CoreModules (from `node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `node_modules/react-native/ReactCommon/cxxreact`) + - React-jsi (from `node_modules/react-native/ReactCommon/jsi`) + - React-jsiexecutor (from `node_modules/react-native/ReactCommon/jsiexecutor`) + - React-jsinspector (from `node_modules/react-native/ReactCommon/jsinspector`) + - "react-native-cameraroll (from `node_modules/@react-native-community/cameraroll`)" + - "react-native-geolocation (from `node_modules/@react-native-community/geolocation`)" + - "react-native-mapbox-gl (from `node_modules/@mapbox/react-native-mapbox-gl`)" + - react-native-navigator-ios (from `node_modules/react-native-navigator-ios`) + - "react-native-netinfo (from `node_modules/@react-native-community/netinfo`)" + - React-RCTActionSheet (from `node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTBlob (from `node_modules/react-native/Libraries/Blob`) + - React-RCTImage (from `node_modules/react-native/Libraries/Image`) + - React-RCTLinking (from `node_modules/react-native/Libraries/LinkingIOS`) + - React-RCTNetwork (from `node_modules/react-native/Libraries/Network`) + - React-RCTSettings (from `node_modules/react-native/Libraries/Settings`) + - React-RCTText (from `node_modules/react-native/Libraries/Text`) + - React-RCTVibration (from `node_modules/react-native/Libraries/Vibration`) + - ReactCommon/jscallinvoker (from `node_modules/react-native/ReactCommon`) + - ReactCommon/turbomodule/core (from `node_modules/react-native/ReactCommon`) - ReactiveObjC - - "RNCAsyncStorage (from `./emission/node_modules/@react-native-community/async-storage`)" - - RNReanimated (from `./emission/node_modules/react-native-reanimated`) - - RNSVG (from `./emission/node_modules/react-native-svg`) + - "RNCAsyncStorage (from `node_modules/@react-native-community/async-storage`)" + - RNReanimated (from `node_modules/react-native-reanimated`) + - RNSVG (from `node_modules/react-native-svg`) - SDWebImage (>= 3.7.2) - - SentryReactNative (from `./emission/node_modules/react-native-sentry`) + - SentryReactNative (from `node_modules/react-native-sentry`) - Specta - SSFadingScrollView (from `https://github.com/alloy/SSFadingScrollView.git`, branch `add-axial-support`) - Starscream - SwiftyJSON - Then - - tipsi-stripe (from `./emission/node_modules/tipsi-stripe/tipsi-stripe.podspec`) + - tipsi-stripe (from `node_modules/tipsi-stripe/tipsi-stripe.podspec`) - UICKeyChainStore - "UIView+BooleanAnimations" - VCRURLConnection - "XCTest+OHHTTPStubSuiteCleanUp" - - Yoga (from `./emission/node_modules/react-native/ReactCommon/yoga`) + - Yoga (from `node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: https://cdn.cocoapods.org/: @@ -609,20 +609,20 @@ EXTERNAL SOURCES: CocoaLumberjack: :git: https://github.com/CocoaLumberjack/CocoaLumberjack.git DoubleConversion: - :podspec: "./emission/node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + :podspec: node_modules/react-native/third-party-podspecs/DoubleConversion.podspec Emission: :path: "./emission" FBLazyVector: - :path: "./emission/node_modules/react-native/Libraries/FBLazyVector" + :path: node_modules/react-native/Libraries/FBLazyVector FBReactNativeSpec: - :path: "./emission/node_modules/react-native/Libraries/FBReactNativeSpec" + :path: node_modules/react-native/Libraries/FBReactNativeSpec FLKAutoLayout: :branch: v1 :git: https://github.com/orta/FLKAutoLayout.git Folly: - :podspec: "./emission/node_modules/react-native/third-party-podspecs/Folly.podspec" + :podspec: node_modules/react-native/third-party-podspecs/Folly.podspec glog: - :podspec: "./emission/node_modules/react-native/third-party-podspecs/glog.podspec" + :podspec: node_modules/react-native/third-party-podspecs/glog.podspec Interstellar: :branch: observable-unsubscribe :git: https://github.com/ashfurrow/Interstellar.git @@ -636,68 +636,68 @@ EXTERNAL SOURCES: :branch: master :git: https://github.com/l2succes/Pulley.git RCTRequired: - :path: "./emission/node_modules/react-native/Libraries/RCTRequired" + :path: node_modules/react-native/Libraries/RCTRequired RCTTypeSafety: - :path: "./emission/node_modules/react-native/Libraries/TypeSafety" + :path: node_modules/react-native/Libraries/TypeSafety React: - :path: "./emission/node_modules/react-native" + :path: node_modules/react-native React-Core: - :path: "./emission/node_modules/react-native" + :path: node_modules/react-native React-CoreModules: - :path: "./emission/node_modules/react-native/React/CoreModules" + :path: node_modules/react-native/React/CoreModules React-cxxreact: - :path: "./emission/node_modules/react-native/ReactCommon/cxxreact" + :path: node_modules/react-native/ReactCommon/cxxreact React-jsi: - :path: "./emission/node_modules/react-native/ReactCommon/jsi" + :path: node_modules/react-native/ReactCommon/jsi React-jsiexecutor: - :path: "./emission/node_modules/react-native/ReactCommon/jsiexecutor" + :path: node_modules/react-native/ReactCommon/jsiexecutor React-jsinspector: - :path: "./emission/node_modules/react-native/ReactCommon/jsinspector" + :path: node_modules/react-native/ReactCommon/jsinspector react-native-cameraroll: - :path: "./emission/node_modules/@react-native-community/cameraroll" + :path: "node_modules/@react-native-community/cameraroll" react-native-geolocation: - :path: "./emission/node_modules/@react-native-community/geolocation" + :path: "node_modules/@react-native-community/geolocation" react-native-mapbox-gl: - :path: "./emission/node_modules/@mapbox/react-native-mapbox-gl" + :path: "node_modules/@mapbox/react-native-mapbox-gl" react-native-navigator-ios: - :path: "./emission/node_modules/react-native-navigator-ios" + :path: node_modules/react-native-navigator-ios react-native-netinfo: - :path: "./emission/node_modules/@react-native-community/netinfo" + :path: "node_modules/@react-native-community/netinfo" React-RCTActionSheet: - :path: "./emission/node_modules/react-native/Libraries/ActionSheetIOS" + :path: node_modules/react-native/Libraries/ActionSheetIOS React-RCTAnimation: - :path: "./emission/node_modules/react-native/Libraries/NativeAnimation" + :path: node_modules/react-native/Libraries/NativeAnimation React-RCTBlob: - :path: "./emission/node_modules/react-native/Libraries/Blob" + :path: node_modules/react-native/Libraries/Blob React-RCTImage: - :path: "./emission/node_modules/react-native/Libraries/Image" + :path: node_modules/react-native/Libraries/Image React-RCTLinking: - :path: "./emission/node_modules/react-native/Libraries/LinkingIOS" + :path: node_modules/react-native/Libraries/LinkingIOS React-RCTNetwork: - :path: "./emission/node_modules/react-native/Libraries/Network" + :path: node_modules/react-native/Libraries/Network React-RCTSettings: - :path: "./emission/node_modules/react-native/Libraries/Settings" + :path: node_modules/react-native/Libraries/Settings React-RCTText: - :path: "./emission/node_modules/react-native/Libraries/Text" + :path: node_modules/react-native/Libraries/Text React-RCTVibration: - :path: "./emission/node_modules/react-native/Libraries/Vibration" + :path: node_modules/react-native/Libraries/Vibration ReactCommon: - :path: "./emission/node_modules/react-native/ReactCommon" + :path: node_modules/react-native/ReactCommon RNCAsyncStorage: - :path: "./emission/node_modules/@react-native-community/async-storage" + :path: "node_modules/@react-native-community/async-storage" RNReanimated: - :path: "./emission/node_modules/react-native-reanimated" + :path: node_modules/react-native-reanimated RNSVG: - :path: "./emission/node_modules/react-native-svg" + :path: node_modules/react-native-svg SentryReactNative: - :path: "./emission/node_modules/react-native-sentry" + :path: node_modules/react-native-sentry SSFadingScrollView: :branch: add-axial-support :git: https://github.com/alloy/SSFadingScrollView.git tipsi-stripe: - :podspec: "./emission/node_modules/tipsi-stripe/tipsi-stripe.podspec" + :podspec: node_modules/tipsi-stripe/tipsi-stripe.podspec Yoga: - :path: "./emission/node_modules/react-native/ReactCommon/yoga" + :path: node_modules/react-native/ReactCommon/yoga CHECKOUT OPTIONS: AFOAuth1Client: @@ -754,7 +754,7 @@ SPEC CHECKSUMS: DHCShakeNotifier: 64048427ecaa763f2472d0032f58bf7a10074eee DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2 EDColor: c83f9a61f9f9b3c23d541f1feb561558e29cb088 - Emission: 7657821cbcfd431abaf30c1fa8e1ffec28a7866e + Emission: c0d44f4745243b1cfc750f84f30a68714283a5a7 Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe "Expecta+Snapshots": c343f410c7a6392f3e22e78f94c44b6c0749a516 Extraction: 2be993a17f8f8c4fac988ebecaed93a409181faf @@ -836,6 +836,6 @@ SPEC CHECKSUMS: "XCTest+OHHTTPStubSuiteCleanUp": 4469ec8863c6bc022c5089a9b94233eb3416c5ee Yoga: ba3d99dbee6c15ea6bbe3783d1f0cb1ffb79af0f -PODFILE CHECKSUM: 2057bdb5dc57363490ad61e40d14bbc9d90c41a0 +PODFILE CHECKSUM: bde362cc9b474c64f2d920484e2086f123a9793a COCOAPODS: 1.7.5 diff --git a/README.md b/README.md index 97dffd3ce13..1b774b6e9a1 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,6 @@ bundle exec pod install --repo-update open Artsy.xcworkspace # finally start the react-native bundler -cd emission yarn start ``` diff --git a/emission/__mocks__/react-relay.js b/__mocks__/react-relay.js similarity index 100% rename from emission/__mocks__/react-relay.js rename to __mocks__/react-relay.js diff --git a/emission/apollo.config.js b/apollo.config.js similarity index 100% rename from emission/apollo.config.js rename to apollo.config.js diff --git a/emission/babel.config.js b/babel.config.js similarity index 100% rename from emission/babel.config.js rename to babel.config.js diff --git a/emission/dangerfile.ts b/dangerfile.ts similarity index 81% rename from emission/dangerfile.ts rename to dangerfile.ts index 5fe0dc22aff..c4cc77dd92e 100644 --- a/emission/dangerfile.ts +++ b/dangerfile.ts @@ -5,9 +5,6 @@ import { danger, fail, markdown, warn } from "danger" import * as fs from "fs" import * as path from "path" -// TODO: after moving emission package.json into eigen repo root, we can remove this -const qualify = (file: string) => path.join("../", file) - // Setup const pr = danger.github.pr const bodyAndTitle = (pr.body + pr.title).toLowerCase() @@ -19,7 +16,7 @@ const typescriptOnly = (file: string) => file.includes(".ts") const filesOnly = (file: string) => fs.existsSync(file) && fs.lstatSync(file).isFile() // Modified or Created can be treated the same a lot of the time -const createdFiles = danger.git.created_files.map(qualify).filter(filesOnly) +const createdFiles = danger.git.created_files.filter(filesOnly) const appOnlyFilter = (filename: string) => filename.includes("src/lib/") && @@ -29,11 +26,6 @@ const appOnlyFilter = (filename: string) => const createdAppOnlyFiles = createdFiles.filter(appOnlyFilter) -// If it's not a branch PR -if (pr.base.repo.full_name !== pr.head.repo.full_name) { - warn("This PR comes from a fork, and won't get JS generated for QA testing this PR inside the Emission Example app.") -} - // Check that every file created has a corresponding test file const correspondingTestsForAppFiles = createdAppOnlyFiles.map(f => { const newPath = path.dirname(f) @@ -98,14 +90,3 @@ import jest from "danger-plugin-jest" if (fs.existsSync("test-results.json")) { jest({ testResultsJsonPath: "test-results.json" }) } - -const AppDelegate = fs.readFileSync("Example/Emission/AppDelegate.m", "utf8") -if ( - !AppDelegate.includes("static NSString *UserID = nil;") || - !AppDelegate.includes("static NSString *UserAccessToken = nil;") -) { - fail( - "Sensitive user credentials have been left in this PR, please remove those and sqaush the commits so no trace " + - "of them is left behind." - ) -} diff --git a/emission/data/cityDataSortedByDisplayPreference.json b/data/cityDataSortedByDisplayPreference.json similarity index 100% rename from emission/data/cityDataSortedByDisplayPreference.json rename to data/cityDataSortedByDisplayPreference.json diff --git a/emission/data/colors.json b/data/colors.json similarity index 100% rename from emission/data/colors.json rename to data/colors.json diff --git a/emission/data/complete.queryMap.json b/data/complete.queryMap.json similarity index 100% rename from emission/data/complete.queryMap.json rename to data/complete.queryMap.json diff --git a/emission/data/schema.graphql b/data/schema.graphql similarity index 100% rename from emission/data/schema.graphql rename to data/schema.graphql diff --git a/docs/updating_emission.md b/docs/updating_emission.md deleted file mode 100644 index ca0f4f6104f..00000000000 --- a/docs/updating_emission.md +++ /dev/null @@ -1,28 +0,0 @@ -### Updating Emission steps - -## Update Eigen with the most recent version of Emission - -- [New Emission releases](https://github.com/artsy/emission#deploying-emission) are made after any merged PR. -- Update Eigen's `Podfile`, specifically the `EMISSION_VERSION` constant near the top. It needs to point to the same version number you want to deploy. -- Apply the update: `bundle exec pod repo update artsy && bundle exec pod install`. You will see a diff with the new version in `Podfile.lock`. -- Commit your changes and merge a self assigned PR in Eigen with the updated Emission changes. -- Once that PR has merged, switch to your master branch, pull the latest changes, and run `make deploy`. This will create a new version of Eigen with the updated Emission package. - -## Get Emission's to compile - -If it doesn't compile out-right: - -- If the error exists inside React: look into what post-install hooks run inside the Emission repo. - - E.g. inside [package.json](https://github.com/artsy/emission/blob/master/package.json), [scripts/post\_\*.sh](https://github.com/artsy/emission/tree/master/scripts) and the example [app's Podfile](https://github.com/artsy/emission/blob/master/Example/Podfile). They may need to be applied here. - -- If the error exists inside Emission: Look at the Emission test app [AppDelegate](https://github.com/artsy/emission/blob/master/Example/Emission/AppDelegate.m) to see how all of the - available functions are wired up. - -## Get Emission runtime - -Does it crash on launch? - -- Sometimes the simulator will crash after you've run unit tests in it. Uninstall the app from the simulator to fix the crash. -- Might need to add new settings to [the `AREmissionConfiguration` object](https://github.com/artsy/emission/blob/master/Pod/Classes/Core/AREmission.h) in Eigen's side. Ideally these should get raised by compiler warnings, but you never know. -- A native module may have new exposed callbacks which are required to be set up on launch. diff --git a/docs/using_dev_emission.md b/docs/using_dev_emission.md deleted file mode 100644 index aae79cd4ea8..00000000000 --- a/docs/using_dev_emission.md +++ /dev/null @@ -1,28 +0,0 @@ -## Using Emission via `yarn start` in Emission - -When trying to work on some more complex interactions between Emission and Eigen, it can help -to skip the Emission release setup in favour of having Eigen talk to the React Native server. - -You enable this by hitting cmd + alt + z to bring up the Eigen -admin panel. In here is an option "Use local Emission packager" - select this. What this option -does is change the path for Emissions' JS from a statically compiled file (which gets shipped with -the app) to `http://localhost:8081/Example/Emission/index.ios.bundle?platform=ios&dev=true` - -This kills the app, open Eigen back up and you should see the green status bar indicating it's compiling -some Emission dynamically. - -Because both Eigen and React Native use the shake gesture, the React Native shake gesture is disabled -but you can trigger it via the Eigen admin menu. - -## Running Objective-C Changes from Emission in Eigen - -The above steps only link Eigen to Emission's _JavaScript_. But what if you want to link to Emission's _Objective-C_? Well lucky you, it's very straightforward. - -First, follow the steps above so you're running against Emission's RNP. You'll now need to edit Eigen's `Podfile`. Don't commit these changes, they're just for developing. The change will look something like: - -```diff -- pod 'Emission', '~> 1.12' -+ pod 'Emission', path: '../emission' # Point to the directory where you have Emission cloned. -``` - -Now run `bundle exec pod update Emission` from Eigen's directory. This points Eigen to your local Emission. You can open Eigen in Xcode and edit Emission's Objective-C files there – you'll be editing the files in your local Emission clone. diff --git a/emission/.autorc b/emission/.autorc deleted file mode 100644 index 5f191f7b186..00000000000 --- a/emission/.autorc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "@artsy", -} diff --git a/emission/.gitignore b/emission/.gitignore deleted file mode 100644 index c27f981596e..00000000000 --- a/emission/.gitignore +++ /dev/null @@ -1,68 +0,0 @@ -# Xcode - -## Build generated -build/ -DerivedData -dist - -## Various settings -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata - -## Other -*.xccheckout -*.moved-aside -*.xcuserstate -*.xcscmblueprint - -## Obj-C/Swift specific -*.hmap -*.ipa - -## Playgrounds -timeline.xctimeline -playground.xcworkspace - -# Custom - -.DS_Store -node_modules -npm-debug.log -Artsy-UIFonts/* -Example/Pods/* -Example/vendor/* -Example/compile_commands.json -Example/Emission/Configuration.h -.vscode/launchReactNative.js -.vscode/.react/ -.vscode/typings -.apphub -coverage -package-lock.json -yarn-error.log -.awcache - -# Use a custom, cached location for Jest to save transpiling -# on every PR -.jest/cache - -# Danger artifacts -tslint-errors.json - -# Haul -# -haul-debug.log -.happypack -test-results.json -head_metadata.json -.vscode/*.sql - -# TypeScript Logs -tsc_raw.log diff --git a/emission/.storybook/webpack.config.js b/emission/.storybook/webpack.config.js deleted file mode 100644 index 8d3eb506af8..00000000000 --- a/emission/.storybook/webpack.config.js +++ /dev/null @@ -1,30 +0,0 @@ -const path = require("path"); -const webpack = require("webpack"); - -const { - OccurenceOrderPlugin, - includePaths, - excludePaths -} = require("@storybook/react-native/dist/server/config/utils"); - -module.exports = { - devtool: "#inline-source-map", // Otherwise getting errors about e.g. `Relay` not being defined. - resolve: { - extensions: [".js", ".jsx", ".ts", ".tsx"] - }, - module: { - loaders: [ - { - test: /\.tsx?$/, - exclude: /node_modules/, - loaders: [ - "awesome-typescript-loader?configFileName=./tsconfig.json&silent=true&transpileOnly=true&target=es6&useBabel=true&useCache=true" - ] - } - ] - }, - plugins: [ - new OccurenceOrderPlugin(), - new webpack.HotModuleReplacementPlugin() - ] -}; diff --git a/emission/.vscode/extensions.json b/emission/.vscode/extensions.json deleted file mode 100644 index 481087fedef..00000000000 --- a/emission/.vscode/extensions.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "recommendations": ["artsy.artsy-studio-extension-pack"], - "unwantedRecommendations": ["prisma.vscode-graphql"] -} diff --git a/emission/Emission.podspec b/emission/Emission.podspec index 1af9c78a8d3..afe6cadb2d5 100644 --- a/emission/Emission.podspec +++ b/emission/Emission.podspec @@ -1,7 +1,7 @@ require 'json' require 'date' -root = ENV['EMISSION_ROOT'] || __dir__ +root = ENV['EMISSION_ROOT'] || File.join(__dir__, '../') pkg_version = lambda do |dir_from_root = '', version = 'version'| path = File.join(root, dir_from_root, 'package.json') JSON.load(File.read(path))[version] @@ -58,21 +58,21 @@ podspec = Pod::Spec.new do |s| # React's Dependencies # s.dependency 'Yoga', "#{react_native_version}.React" react_podspecs = [ - 'node_modules/react-native/third-party-podspecs/DoubleConversion.podspec', - 'node_modules/react-native/third-party-podspecs/Folly.podspec', - 'node_modules/react-native/third-party-podspecs/glog.podspec' + '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec', + '../node_modules/react-native/third-party-podspecs/Folly.podspec', + '../node_modules/react-native/third-party-podspecs/glog.podspec' ] # Native dependencies of Emission, which come from node_modules dep_podspecs = [ - 'node_modules/tipsi-stripe/tipsi-stripe.podspec', - 'node_modules/@mapbox/react-native-mapbox-gl/react-native-mapbox-gl.podspec', - 'node_modules/react-native-sentry/SentryReactNative.podspec', - 'node_modules/react-native-svg/RNSVG.podspec', - 'node_modules/react-native-navigator-ios/react-native-navigator-ios.podspec', - 'node_modules/@react-native-community/cameraroll/react-native-cameraroll.podspec', - 'node_modules/@react-native-community/netinfo/react-native-netinfo.podspec', - 'node_modules/@react-native-community/geolocation/react-native-geolocation.podspec' + '../node_modules/tipsi-stripe/tipsi-stripe.podspec', + '../node_modules/@mapbox/react-native-mapbox-gl/react-native-mapbox-gl.podspec', + '../node_modules/react-native-sentry/SentryReactNative.podspec', + '../node_modules/react-native-svg/RNSVG.podspec', + '../node_modules/react-native-navigator-ios/react-native-navigator-ios.podspec', + '../node_modules/@react-native-community/cameraroll/react-native-cameraroll.podspec', + '../node_modules/@react-native-community/netinfo/react-native-netinfo.podspec', + '../node_modules/@react-native-community/geolocation/react-native-geolocation.podspec' ] # Ties the exact versions so host apps don't need to guess the version diff --git a/emission/Example/.ruby-version b/emission/Example/.ruby-version deleted file mode 100644 index ec1cf33c3f6..00000000000 --- a/emission/Example/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.6.3 diff --git a/emission/Example/Emission.xcodeproj/project.pbxproj b/emission/Example/Emission.xcodeproj/project.pbxproj deleted file mode 100644 index f3c50611f26..00000000000 --- a/emission/Example/Emission.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1219 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 34C566E6214C4AAA00479C22 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34C566E5214C4AAA00479C22 /* AVFoundation.framework */; }; - 3A484741223AC736002E657B /* docs in Resources */ = {isa = PBXBuildFile; fileRef = 3A484740223AC736002E657B /* docs */; }; - 3A7D41FE213F3CAD009618F5 /* ARLabOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A7D41FC213F3CAC009618F5 /* ARLabOptions.m */; }; - 3ACAE7B922258EAD009C2236 /* ARAdminSentryBreadcrumbViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ACAE7B722258EAD009C2236 /* ARAdminSentryBreadcrumbViewController.m */; }; - 402D55D24FAA1BC36FB4ED85 /* libPods-Emission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B53B6F10A80F64A976B9F221 /* libPods-Emission.a */; }; - 510DCB121CCA69EC0075E8CB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 510DCB111CCA69EC0075E8CB /* main.m */; }; - 510DCB151CCA69EC0075E8CB /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 510DCB141CCA69EC0075E8CB /* AppDelegate.m */; }; - 510DCB1D1CCA69EC0075E8CB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 510DCB1C1CCA69EC0075E8CB /* Assets.xcassets */; }; - 510DCB2B1CCA69EC0075E8CB /* OpaqueImageViewComponentTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 510DCB2A1CCA69EC0075E8CB /* OpaqueImageViewComponentTests.m */; }; - 510DCB361CCA69EC0075E8CB /* EmissionUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 510DCB351CCA69EC0075E8CB /* EmissionUITests.m */; }; - 510E94FD1CCA828900BDF098 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 510E94FB1CCA828900BDF098 /* LaunchScreen.xib */; }; - 510E95141CCEB84F00BDF098 /* TestHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 510E95131CCEB84F00BDF098 /* TestHelper.m */; }; - 515687BE2079A300002F365C /* ARAdminPreloadTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 515687BD2079A300002F365C /* ARAdminPreloadTableViewCell.m */; }; - 515926A8206BA0C000048C74 /* complete.queryMap.json in Resources */ = {isa = PBXBuildFile; fileRef = 515926A7206BA0C000048C74 /* complete.queryMap.json */; }; - 515926AE206CF8BA00048C74 /* UITabBarDownloadsTemplate@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 515926AD206CF8B900048C74 /* UITabBarDownloadsTemplate@2x.png */; }; - 51F3E9A41CF3B8A4004A2013 /* EigenLikeNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 51F3E9A31CF3B8A4004A2013 /* EigenLikeNavigationController.m */; }; - 5E09C96B21E7B46B00207812 /* RCTTestModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E09C96621E7B46B00207812 /* RCTTestModule.m */; }; - 5E09C96C21E7B46B00207812 /* RCTSnapshotManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E09C96921E7B46B00207812 /* RCTSnapshotManager.m */; }; - 5E09C96D21E7B46B00207812 /* RCTTestRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E09C96A21E7B46B00207812 /* RCTTestRunner.m */; }; - 6011C23B1DAF5DD900CE54E5 /* ARRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6011C23A1DAF5DD900CE54E5 /* ARRootViewController.m */; }; - 6011C2451DAF61AF00CE54E5 /* ARAdminTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6011C23E1DAF61AF00CE54E5 /* ARAdminTableViewCell.m */; }; - 6011C2461DAF61AF00CE54E5 /* ARTickedTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6011C2401DAF61AF00CE54E5 /* ARTickedTableViewCell.m */; }; - 6011C2471DAF61AF00CE54E5 /* ARAnimatedTickView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6011C2421DAF61AF00CE54E5 /* ARAnimatedTickView.m */; }; - 6011C24B1DAF63C000CE54E5 /* ARDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 6011C24A1DAF63C000CE54E5 /* ARDefaults.m */; }; - 6011C24E1DAF697B00CE54E5 /* EigenLikeAdminViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6011C24D1DAF697B00CE54E5 /* EigenLikeAdminViewController.m */; }; - 6011C2511DAF7B6D00CE54E5 /* UnroutedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6011C2501DAF7B6D00CE54E5 /* UnroutedViewController.m */; }; - 6011C2561DAF835900CE54E5 /* logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6011C2551DAF835900CE54E5 /* logo@2x.png */; }; - 60218E2920168D4E00A6C66B /* ARTopMenuViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 60218E2820168D4E00A6C66B /* ARTopMenuViewController.m */; }; - 608A60D61F75614700B6EF83 /* AppSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = 608A60D51F75614700B6EF83 /* AppSetup.m */; }; - 60A1A77E1DA3A23C005E3357 /* BackArrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 60A1A77B1DA3A23C005E3357 /* BackArrow@2x.png */; }; - 60A1A77F1DA3A23C005E3357 /* BackArrow_Highlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 60A1A77C1DA3A23C005E3357 /* BackArrow_Highlighted@2x.png */; }; - 60A1A7801DA3A23C005E3357 /* BackArrowBlack@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 60A1A77D1DA3A23C005E3357 /* BackArrowBlack@2x.png */; }; - 60AEE7A01ECC6237008058E3 /* NSDateFormatter+TimeAgo.m in Sources */ = {isa = PBXBuildFile; fileRef = 60AEE79F1ECC6237008058E3 /* NSDateFormatter+TimeAgo.m */; }; - 60B743B71D3EB12600E6B2A3 /* ARStorybookComponentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 60B743B61D3EB12600E6B2A3 /* ARStorybookComponentViewController.m */; }; - 60E4ABF71EE7D85000E8C3B1 /* LoadingSpinner.m in Sources */ = {isa = PBXBuildFile; fileRef = 60E4ABF61EE7D85000E8C3B1 /* LoadingSpinner.m */; }; - 60EDA5731F4B2944007A6100 /* InternalWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 60EDA5721F4B2944007A6100 /* InternalWebViewController.m */; }; - 60F61A8B1DAF982B00A72101 /* AuthenticationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 60F61A8A1DAF982B00A72101 /* AuthenticationManager.m */; }; - 7F4FEE4321A36F7F00B8766A /* Back@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7F4FEE4021A36F7E00B8766A /* Back@2x.png */; }; - 7F4FEE4421A36F7F00B8766A /* Back.png in Resources */ = {isa = PBXBuildFile; fileRef = 7F4FEE4121A36F7E00B8766A /* Back.png */; }; - 7F4FEE4521A36F7F00B8766A /* Back@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7F4FEE4221A36F7F00B8766A /* Back@3x.png */; }; - 7F6D717721CAA82D001BC122 /* Placeholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F6D717621CAA82D001BC122 /* Placeholder.swift */; }; - DC0E8A345456472B4B0828A5 /* libPods-EmissionTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C4F07E47A447A6BE9EE66978 /* libPods-EmissionTests.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 510DCB271CCA69EC0075E8CB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 607FACC81AFB9204008FA782 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 510DCB0D1CCA69EC0075E8CB; - remoteInfo = Emission; - }; - 510DCB321CCA69EC0075E8CB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 607FACC81AFB9204008FA782 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 510DCB0D1CCA69EC0075E8CB; - remoteInfo = Emission; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 02E9860078C8122DA3D55F0F /* Pods-Emission.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Emission.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Emission/Pods-Emission.debug.xcconfig"; sourceTree = ""; }; - 163341760E6AD3C2BD2501B6 /* Pods-Emission.deploy.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Emission.deploy.xcconfig"; path = "Pods/Target Support Files/Pods-Emission/Pods-Emission.deploy.xcconfig"; sourceTree = ""; }; - 17DDC2B5E27740D462B9B1E4 /* Pods-EmissionTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-EmissionTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-EmissionTests/Pods-EmissionTests.debug.xcconfig"; sourceTree = ""; }; - 34C566E5214C4AAA00479C22 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; - 3A484740223AC736002E657B /* docs */ = {isa = PBXFileReference; lastKnownFileType = folder; name = docs; path = ../docs; sourceTree = ""; }; - 3A7D41FC213F3CAC009618F5 /* ARLabOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARLabOptions.m; sourceTree = ""; }; - 3A7D41FD213F3CAD009618F5 /* ARLabOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARLabOptions.h; sourceTree = ""; }; - 3ACAE7B722258EAD009C2236 /* ARAdminSentryBreadcrumbViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ARAdminSentryBreadcrumbViewController.m; sourceTree = ""; }; - 3ACAE7B822258EAD009C2236 /* ARAdminSentryBreadcrumbViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ARAdminSentryBreadcrumbViewController.h; sourceTree = ""; }; - 3CA8129D4B3357E4EDA54CF0 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; - 510DCB0E1CCA69EC0075E8CB /* Emission.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Emission.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 510DCB111CCA69EC0075E8CB /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 510DCB131CCA69EC0075E8CB /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 510DCB141CCA69EC0075E8CB /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 510DCB1C1CCA69EC0075E8CB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 510DCB211CCA69EC0075E8CB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 510DCB261CCA69EC0075E8CB /* EmissionTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = EmissionTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 510DCB2A1CCA69EC0075E8CB /* OpaqueImageViewComponentTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OpaqueImageViewComponentTests.m; sourceTree = ""; }; - 510DCB2C1CCA69EC0075E8CB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 510DCB311CCA69EC0075E8CB /* EmissionUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = EmissionUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 510DCB351CCA69EC0075E8CB /* EmissionUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EmissionUITests.m; sourceTree = ""; }; - 510DCB371CCA69ED0075E8CB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 510E94FC1CCA828900BDF098 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 510E95131CCEB84F00BDF098 /* TestHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestHelper.m; sourceTree = ""; }; - 510E95151CCEC22C00BDF098 /* TestHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TestHelper.h; sourceTree = ""; }; - 515687BC2079A300002F365C /* ARAdminPreloadTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ARAdminPreloadTableViewCell.h; sourceTree = ""; }; - 515687BD2079A300002F365C /* ARAdminPreloadTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ARAdminPreloadTableViewCell.m; sourceTree = ""; }; - 515926A7206BA0C000048C74 /* complete.queryMap.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = complete.queryMap.json; path = ../../data/complete.queryMap.json; sourceTree = ""; }; - 515926AD206CF8B900048C74 /* UITabBarDownloadsTemplate@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "UITabBarDownloadsTemplate@2x.png"; sourceTree = ""; }; - 51F3E9A21CF3B8A4004A2013 /* EigenLikeNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EigenLikeNavigationController.h; sourceTree = ""; }; - 51F3E9A31CF3B8A4004A2013 /* EigenLikeNavigationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EigenLikeNavigationController.m; sourceTree = ""; }; - 5D75FFB0E282ED7DB0B9141E /* Pods-EmissionTests.deploy.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-EmissionTests.deploy.xcconfig"; path = "Pods/Target Support Files/Pods-EmissionTests/Pods-EmissionTests.deploy.xcconfig"; sourceTree = ""; }; - 5E09C96521E7B46B00207812 /* RCTSnapshotManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSnapshotManager.h; sourceTree = ""; }; - 5E09C96621E7B46B00207812 /* RCTTestModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTestModule.m; sourceTree = ""; }; - 5E09C96721E7B46B00207812 /* RCTTestModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTTestModule.h; sourceTree = ""; }; - 5E09C96821E7B46B00207812 /* RCTTestRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTTestRunner.h; sourceTree = ""; }; - 5E09C96921E7B46B00207812 /* RCTSnapshotManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTSnapshotManager.m; sourceTree = ""; }; - 5E09C96A21E7B46B00207812 /* RCTTestRunner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTestRunner.m; sourceTree = ""; }; - 6011C2391DAF5DD900CE54E5 /* ARRootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARRootViewController.h; sourceTree = ""; }; - 6011C23A1DAF5DD900CE54E5 /* ARRootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARRootViewController.m; sourceTree = ""; }; - 6011C23D1DAF61AF00CE54E5 /* ARAdminTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARAdminTableViewCell.h; sourceTree = ""; }; - 6011C23E1DAF61AF00CE54E5 /* ARAdminTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARAdminTableViewCell.m; sourceTree = ""; }; - 6011C23F1DAF61AF00CE54E5 /* ARTickedTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARTickedTableViewCell.h; sourceTree = ""; }; - 6011C2401DAF61AF00CE54E5 /* ARTickedTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARTickedTableViewCell.m; sourceTree = ""; }; - 6011C2411DAF61AF00CE54E5 /* ARAnimatedTickView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARAnimatedTickView.h; sourceTree = ""; }; - 6011C2421DAF61AF00CE54E5 /* ARAnimatedTickView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARAnimatedTickView.m; sourceTree = ""; }; - 6011C2491DAF63C000CE54E5 /* ARDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARDefaults.h; sourceTree = ""; }; - 6011C24A1DAF63C000CE54E5 /* ARDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARDefaults.m; sourceTree = ""; }; - 6011C24C1DAF697B00CE54E5 /* EigenLikeAdminViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EigenLikeAdminViewController.h; sourceTree = ""; }; - 6011C24D1DAF697B00CE54E5 /* EigenLikeAdminViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EigenLikeAdminViewController.m; sourceTree = ""; }; - 6011C24F1DAF7B6D00CE54E5 /* UnroutedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnroutedViewController.h; sourceTree = ""; }; - 6011C2501DAF7B6D00CE54E5 /* UnroutedViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnroutedViewController.m; sourceTree = ""; }; - 6011C2551DAF835900CE54E5 /* logo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "logo@2x.png"; sourceTree = ""; }; - 60204ADD1D9D590900204628 /* Emission.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Emission.entitlements; sourceTree = ""; }; - 60218E2720168D4E00A6C66B /* ARTopMenuViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ARTopMenuViewController.h; sourceTree = ""; }; - 60218E2820168D4E00A6C66B /* ARTopMenuViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ARTopMenuViewController.m; sourceTree = ""; }; - 607673A21ECC4C9F005848B5 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - 6077F28F1EE56723004F054D /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = CHANGELOG.md; path = ../CHANGELOG.md; sourceTree = ""; }; - 608A60D41F75614700B6EF83 /* AppSetup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppSetup.h; sourceTree = ""; }; - 608A60D51F75614700B6EF83 /* AppSetup.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppSetup.m; sourceTree = ""; }; - 608C6DB91FA263290044E235 /* CommitNetworkModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommitNetworkModel.h; sourceTree = ""; }; - 608C6DBA1FA263290044E235 /* CommitNetworkModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommitNetworkModel.m; sourceTree = ""; }; - 60A1A77B1DA3A23C005E3357 /* BackArrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BackArrow@2x.png"; sourceTree = ""; }; - 60A1A77C1DA3A23C005E3357 /* BackArrow_Highlighted@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BackArrow_Highlighted@2x.png"; sourceTree = ""; }; - 60A1A77D1DA3A23C005E3357 /* BackArrowBlack@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BackArrowBlack@2x.png"; sourceTree = ""; }; - 60A1A7841DA3A879005E3357 /* ARMacros.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ARMacros.h; sourceTree = ""; }; - 60AE1D7E1EE7DF9C00FC800A /* PRNetworkModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PRNetworkModel.h; sourceTree = ""; }; - 60AE1D7F1EE7DF9C00FC800A /* PRNetworkModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PRNetworkModel.m; sourceTree = ""; }; - 60AEE79E1ECC6237008058E3 /* NSDateFormatter+TimeAgo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDateFormatter+TimeAgo.h"; sourceTree = ""; }; - 60AEE79F1ECC6237008058E3 /* NSDateFormatter+TimeAgo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDateFormatter+TimeAgo.m"; sourceTree = ""; }; - 60B743B51D3EB12600E6B2A3 /* ARStorybookComponentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARStorybookComponentViewController.h; sourceTree = ""; }; - 60B743B61D3EB12600E6B2A3 /* ARStorybookComponentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARStorybookComponentViewController.m; sourceTree = ""; }; - 60E4ABF51EE7D85000E8C3B1 /* LoadingSpinner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoadingSpinner.h; sourceTree = ""; }; - 60E4ABF61EE7D85000E8C3B1 /* LoadingSpinner.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoadingSpinner.m; sourceTree = ""; }; - 60EDA5711F4B2944007A6100 /* InternalWebViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalWebViewController.h; sourceTree = ""; }; - 60EDA5721F4B2944007A6100 /* InternalWebViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InternalWebViewController.m; sourceTree = ""; }; - 60F61A891DAF982A00A72101 /* AuthenticationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AuthenticationManager.h; sourceTree = ""; }; - 60F61A8A1DAF982B00A72101 /* AuthenticationManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AuthenticationManager.m; sourceTree = ""; }; - 7F4FEE4021A36F7E00B8766A /* Back@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Back@2x.png"; sourceTree = ""; }; - 7F4FEE4121A36F7E00B8766A /* Back.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Back.png; sourceTree = ""; }; - 7F4FEE4221A36F7F00B8766A /* Back@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Back@3x.png"; sourceTree = ""; }; - 7F6D717621CAA82D001BC122 /* Placeholder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Placeholder.swift; sourceTree = ""; }; - 9AB72C7CDF8351EF0ADB2E4D /* Pods-Emission.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Emission.release.xcconfig"; path = "Pods/Target Support Files/Pods-Emission/Pods-Emission.release.xcconfig"; sourceTree = ""; }; - B53B6F10A80F64A976B9F221 /* libPods-Emission.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Emission.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - BD6A42932C7B5D57AE022D1A /* Emission.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Emission.podspec; path = ../Emission.podspec; sourceTree = ""; }; - C4F07E47A447A6BE9EE66978 /* libPods-EmissionTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-EmissionTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - DB1BB078CB1708CE8106DA15 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; - E347387A62A41620FEED9427 /* Pods-EmissionTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-EmissionTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-EmissionTests/Pods-EmissionTests.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 510DCB0B1CCA69EC0075E8CB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 34C566E6214C4AAA00479C22 /* AVFoundation.framework in Frameworks */, - 402D55D24FAA1BC36FB4ED85 /* libPods-Emission.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 510DCB231CCA69EC0075E8CB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DC0E8A345456472B4B0828A5 /* libPods-EmissionTests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 510DCB2E1CCA69EC0075E8CB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 510DCB0F1CCA69EC0075E8CB /* Emission */ = { - isa = PBXGroup; - children = ( - 515926AC206CF8B900048C74 /* Resources */, - 60F61A881DAF849700A72101 /* App */, - 60AEE79D1ECC620F008058E3 /* Categories */, - 60F61A871DAF848E00A72101 /* View Controllers */, - 6011C2521DAF7EF600CE54E5 /* Launch */, - 6011C23C1DAF619700CE54E5 /* Admin Tableview Cells */, - 60D3D56D1D42532600A15671 /* Navigation */, - 60D3D56C1D42531200A15671 /* Storybooks */, - 510DCB101CCA69EC0075E8CB /* Supporting Files */, - ); - path = Emission; - sourceTree = ""; - }; - 510DCB101CCA69EC0075E8CB /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 60204ADD1D9D590900204628 /* Emission.entitlements */, - 510DCB1C1CCA69EC0075E8CB /* Assets.xcassets */, - 510DCB211CCA69EC0075E8CB /* Info.plist */, - 510DCB111CCA69EC0075E8CB /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 510DCB291CCA69EC0075E8CB /* EmissionTests */ = { - isa = PBXGroup; - children = ( - 5E09C95221E7A0D500207812 /* RCTTest */, - 510DCB2A1CCA69EC0075E8CB /* OpaqueImageViewComponentTests.m */, - 510DCB2C1CCA69EC0075E8CB /* Info.plist */, - 510E95151CCEC22C00BDF098 /* TestHelper.h */, - 510E95131CCEB84F00BDF098 /* TestHelper.m */, - ); - path = EmissionTests; - sourceTree = ""; - }; - 510DCB341CCA69EC0075E8CB /* EmissionUITests */ = { - isa = PBXGroup; - children = ( - 510DCB351CCA69EC0075E8CB /* EmissionUITests.m */, - 510DCB371CCA69ED0075E8CB /* Info.plist */, - ); - path = EmissionUITests; - sourceTree = ""; - }; - 515926AC206CF8B900048C74 /* Resources */ = { - isa = PBXGroup; - children = ( - 515926A7206BA0C000048C74 /* complete.queryMap.json */, - 515926AD206CF8B900048C74 /* UITabBarDownloadsTemplate@2x.png */, - ); - path = Resources; - sourceTree = SOURCE_ROOT; - }; - 5E09C95221E7A0D500207812 /* RCTTest */ = { - isa = PBXGroup; - children = ( - 5E09C96521E7B46B00207812 /* RCTSnapshotManager.h */, - 5E09C96921E7B46B00207812 /* RCTSnapshotManager.m */, - 5E09C96721E7B46B00207812 /* RCTTestModule.h */, - 5E09C96621E7B46B00207812 /* RCTTestModule.m */, - 5E09C96821E7B46B00207812 /* RCTTestRunner.h */, - 5E09C96A21E7B46B00207812 /* RCTTestRunner.m */, - ); - path = RCTTest; - sourceTree = ""; - }; - 6011C23C1DAF619700CE54E5 /* Admin Tableview Cells */ = { - isa = PBXGroup; - children = ( - 6011C23D1DAF61AF00CE54E5 /* ARAdminTableViewCell.h */, - 6011C23E1DAF61AF00CE54E5 /* ARAdminTableViewCell.m */, - 6011C23F1DAF61AF00CE54E5 /* ARTickedTableViewCell.h */, - 6011C2401DAF61AF00CE54E5 /* ARTickedTableViewCell.m */, - 6011C2411DAF61AF00CE54E5 /* ARAnimatedTickView.h */, - 6011C2421DAF61AF00CE54E5 /* ARAnimatedTickView.m */, - 6011C24C1DAF697B00CE54E5 /* EigenLikeAdminViewController.h */, - 6011C24D1DAF697B00CE54E5 /* EigenLikeAdminViewController.m */, - 515687BC2079A300002F365C /* ARAdminPreloadTableViewCell.h */, - 515687BD2079A300002F365C /* ARAdminPreloadTableViewCell.m */, - ); - name = "Admin Tableview Cells"; - sourceTree = ""; - }; - 6011C2521DAF7EF600CE54E5 /* Launch */ = { - isa = PBXGroup; - children = ( - 6011C2551DAF835900CE54E5 /* logo@2x.png */, - 510E94FB1CCA828900BDF098 /* LaunchScreen.xib */, - ); - name = Launch; - sourceTree = ""; - }; - 607FACC71AFB9204008FA782 = { - isa = PBXGroup; - children = ( - 3A484740223AC736002E657B /* docs */, - 607FACF51AFB993E008FA782 /* Podspec Metadata */, - 510DCB0F1CCA69EC0075E8CB /* Emission */, - 510DCB291CCA69EC0075E8CB /* EmissionTests */, - 510DCB341CCA69EC0075E8CB /* EmissionUITests */, - 607FACD11AFB9204008FA782 /* Products */, - A8456AA0E39F581C091B5C1D /* Frameworks */, - BA58B07A6BE3C2C396F4F73F /* Pods */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - }; - 607FACD11AFB9204008FA782 /* Products */ = { - isa = PBXGroup; - children = ( - 510DCB0E1CCA69EC0075E8CB /* Emission.app */, - 510DCB261CCA69EC0075E8CB /* EmissionTests.xctest */, - 510DCB311CCA69EC0075E8CB /* EmissionUITests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { - isa = PBXGroup; - children = ( - 6077F28F1EE56723004F054D /* CHANGELOG.md */, - BD6A42932C7B5D57AE022D1A /* Emission.podspec */, - 3CA8129D4B3357E4EDA54CF0 /* README.md */, - DB1BB078CB1708CE8106DA15 /* LICENSE */, - ); - name = "Podspec Metadata"; - sourceTree = ""; - }; - 60A1A77A1DA3A230005E3357 /* Resources */ = { - isa = PBXGroup; - children = ( - 60A1A77B1DA3A23C005E3357 /* BackArrow@2x.png */, - 60A1A77C1DA3A23C005E3357 /* BackArrow_Highlighted@2x.png */, - 60A1A77D1DA3A23C005E3357 /* BackArrowBlack@2x.png */, - 7F4FEE4121A36F7E00B8766A /* Back.png */, - 7F4FEE4021A36F7E00B8766A /* Back@2x.png */, - 7F4FEE4221A36F7F00B8766A /* Back@3x.png */, - ); - name = Resources; - sourceTree = ""; - }; - 60AEE79D1ECC620F008058E3 /* Categories */ = { - isa = PBXGroup; - children = ( - 60AEE79E1ECC6237008058E3 /* NSDateFormatter+TimeAgo.h */, - 60AEE79F1ECC6237008058E3 /* NSDateFormatter+TimeAgo.m */, - ); - name = Categories; - sourceTree = ""; - }; - 60D3D56C1D42531200A15671 /* Storybooks */ = { - isa = PBXGroup; - children = ( - 60B743B51D3EB12600E6B2A3 /* ARStorybookComponentViewController.h */, - 60B743B61D3EB12600E6B2A3 /* ARStorybookComponentViewController.m */, - ); - name = Storybooks; - sourceTree = ""; - }; - 60D3D56D1D42532600A15671 /* Navigation */ = { - isa = PBXGroup; - children = ( - 60A1A77A1DA3A230005E3357 /* Resources */, - 51F3E9A21CF3B8A4004A2013 /* EigenLikeNavigationController.h */, - 51F3E9A31CF3B8A4004A2013 /* EigenLikeNavigationController.m */, - 60218E2720168D4E00A6C66B /* ARTopMenuViewController.h */, - 60218E2820168D4E00A6C66B /* ARTopMenuViewController.m */, - ); - name = Navigation; - sourceTree = ""; - }; - 60F61A871DAF848E00A72101 /* View Controllers */ = { - isa = PBXGroup; - children = ( - 3ACAE7B822258EAD009C2236 /* ARAdminSentryBreadcrumbViewController.h */, - 3ACAE7B722258EAD009C2236 /* ARAdminSentryBreadcrumbViewController.m */, - 6011C2391DAF5DD900CE54E5 /* ARRootViewController.h */, - 6011C23A1DAF5DD900CE54E5 /* ARRootViewController.m */, - 6011C24F1DAF7B6D00CE54E5 /* UnroutedViewController.h */, - 6011C2501DAF7B6D00CE54E5 /* UnroutedViewController.m */, - 60EDA5711F4B2944007A6100 /* InternalWebViewController.h */, - 60EDA5721F4B2944007A6100 /* InternalWebViewController.m */, - 7F6D717621CAA82D001BC122 /* Placeholder.swift */, - ); - name = "View Controllers"; - sourceTree = ""; - }; - 60F61A881DAF849700A72101 /* App */ = { - isa = PBXGroup; - children = ( - 510DCB131CCA69EC0075E8CB /* AppDelegate.h */, - 510DCB141CCA69EC0075E8CB /* AppDelegate.m */, - 608A60D41F75614700B6EF83 /* AppSetup.h */, - 608A60D51F75614700B6EF83 /* AppSetup.m */, - 6011C2491DAF63C000CE54E5 /* ARDefaults.h */, - 6011C24A1DAF63C000CE54E5 /* ARDefaults.m */, - 3A7D41FD213F3CAD009618F5 /* ARLabOptions.h */, - 3A7D41FC213F3CAC009618F5 /* ARLabOptions.m */, - 60A1A7841DA3A879005E3357 /* ARMacros.h */, - 60F61A891DAF982A00A72101 /* AuthenticationManager.h */, - 60F61A8A1DAF982B00A72101 /* AuthenticationManager.m */, - 608C6DB91FA263290044E235 /* CommitNetworkModel.h */, - 608C6DBA1FA263290044E235 /* CommitNetworkModel.m */, - 60E4ABF51EE7D85000E8C3B1 /* LoadingSpinner.h */, - 60E4ABF61EE7D85000E8C3B1 /* LoadingSpinner.m */, - 60AE1D7E1EE7DF9C00FC800A /* PRNetworkModel.h */, - 60AE1D7F1EE7DF9C00FC800A /* PRNetworkModel.m */, - ); - name = App; - sourceTree = ""; - }; - A8456AA0E39F581C091B5C1D /* Frameworks */ = { - isa = PBXGroup; - children = ( - 34C566E5214C4AAA00479C22 /* AVFoundation.framework */, - 607673A21ECC4C9F005848B5 /* XCTest.framework */, - B53B6F10A80F64A976B9F221 /* libPods-Emission.a */, - C4F07E47A447A6BE9EE66978 /* libPods-EmissionTests.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - BA58B07A6BE3C2C396F4F73F /* Pods */ = { - isa = PBXGroup; - children = ( - 02E9860078C8122DA3D55F0F /* Pods-Emission.debug.xcconfig */, - 9AB72C7CDF8351EF0ADB2E4D /* Pods-Emission.release.xcconfig */, - 163341760E6AD3C2BD2501B6 /* Pods-Emission.deploy.xcconfig */, - 17DDC2B5E27740D462B9B1E4 /* Pods-EmissionTests.debug.xcconfig */, - 5D75FFB0E282ED7DB0B9141E /* Pods-EmissionTests.deploy.xcconfig */, - E347387A62A41620FEED9427 /* Pods-EmissionTests.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 510DCB0D1CCA69EC0075E8CB /* Emission */ = { - isa = PBXNativeTarget; - buildConfigurationList = 510DCB3E1CCA69ED0075E8CB /* Build configuration list for PBXNativeTarget "Emission" */; - buildPhases = ( - 6E41E6A6664172F7C45F3D36 /* [CP] Check Pods Manifest.lock */, - 510DCB0A1CCA69EC0075E8CB /* Sources */, - 510DCB0B1CCA69EC0075E8CB /* Frameworks */, - 513510561DAFBBB9007223BF /* Compile JS Bundle for Release */, - 5157C2E92018C82400DE6B07 /* Record Packager Host IP for Debug */, - 510DCB0C1CCA69EC0075E8CB /* Resources */, - 510E94FE1CCB87F100BDF098 /* Create Clang compilation DB */, - 3531E0CB4D0C66204FFF9D4A /* [CP] Copy Pods Resources */, - 3CB362FC55CDD77CDAA5F2C2 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Emission; - productName = Emission; - productReference = 510DCB0E1CCA69EC0075E8CB /* Emission.app */; - productType = "com.apple.product-type.application"; - }; - 510DCB251CCA69EC0075E8CB /* EmissionTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 510DCB3F1CCA69ED0075E8CB /* Build configuration list for PBXNativeTarget "EmissionTests" */; - buildPhases = ( - 26CA73EDB939BB2466B1F25A /* [CP] Check Pods Manifest.lock */, - 510DCB221CCA69EC0075E8CB /* Sources */, - 510DCB231CCA69EC0075E8CB /* Frameworks */, - 510DCB241CCA69EC0075E8CB /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 510DCB281CCA69EC0075E8CB /* PBXTargetDependency */, - ); - name = EmissionTests; - productName = EmissionTests; - productReference = 510DCB261CCA69EC0075E8CB /* EmissionTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 510DCB301CCA69EC0075E8CB /* EmissionUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 510DCB401CCA69ED0075E8CB /* Build configuration list for PBXNativeTarget "EmissionUITests" */; - buildPhases = ( - 510DCB2D1CCA69EC0075E8CB /* Sources */, - 510DCB2E1CCA69EC0075E8CB /* Frameworks */, - 510DCB2F1CCA69EC0075E8CB /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 510DCB331CCA69EC0075E8CB /* PBXTargetDependency */, - ); - name = EmissionUITests; - productName = EmissionUITests; - productReference = 510DCB311CCA69EC0075E8CB /* EmissionUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 607FACC81AFB9204008FA782 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = CocoaPods; - TargetAttributes = { - 510DCB0D1CCA69EC0075E8CB = { - CreatedOnToolsVersion = 7.2.1; - DevelopmentTeam = 23KMWZ572J; - LastSwiftMigration = 1020; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.BackgroundModes = { - enabled = 1; - }; - com.apple.Keychain = { - enabled = 1; - }; - com.apple.SafariKeychain = { - enabled = 1; - }; - }; - }; - 510DCB251CCA69EC0075E8CB = { - CreatedOnToolsVersion = 7.2.1; - LastSwiftMigration = 1010; - TestTargetID = 510DCB0D1CCA69EC0075E8CB; - }; - 510DCB301CCA69EC0075E8CB = { - CreatedOnToolsVersion = 7.2.1; - TestTargetID = 510DCB0D1CCA69EC0075E8CB; - }; - }; - }; - buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "Emission" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 607FACC71AFB9204008FA782; - productRefGroup = 607FACD11AFB9204008FA782 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 510DCB0D1CCA69EC0075E8CB /* Emission */, - 510DCB251CCA69EC0075E8CB /* EmissionTests */, - 510DCB301CCA69EC0075E8CB /* EmissionUITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 510DCB0C1CCA69EC0075E8CB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 510E94FD1CCA828900BDF098 /* LaunchScreen.xib in Resources */, - 6011C2561DAF835900CE54E5 /* logo@2x.png in Resources */, - 7F4FEE4421A36F7F00B8766A /* Back.png in Resources */, - 515926A8206BA0C000048C74 /* complete.queryMap.json in Resources */, - 60A1A77F1DA3A23C005E3357 /* BackArrow_Highlighted@2x.png in Resources */, - 515926AE206CF8BA00048C74 /* UITabBarDownloadsTemplate@2x.png in Resources */, - 60A1A7801DA3A23C005E3357 /* BackArrowBlack@2x.png in Resources */, - 510DCB1D1CCA69EC0075E8CB /* Assets.xcassets in Resources */, - 7F4FEE4321A36F7F00B8766A /* Back@2x.png in Resources */, - 3A484741223AC736002E657B /* docs in Resources */, - 7F4FEE4521A36F7F00B8766A /* Back@3x.png in Resources */, - 60A1A77E1DA3A23C005E3357 /* BackArrow@2x.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 510DCB241CCA69EC0075E8CB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 510DCB2F1CCA69EC0075E8CB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 26CA73EDB939BB2466B1F25A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-EmissionTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 3531E0CB4D0C66204FFF9D4A /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Emission/Pods-Emission-resources.sh", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/AGaramondPro-Bold.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/AGaramondPro-BoldItalic.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/AGaramondPro-Italic.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/AGaramondPro-Regular.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/AGaramondPro-Semibold.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/AVG65lig.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/ReactNativeAGaramondPro-Italic.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/ReactNativeAGaramondPro-Regular.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/ReactNativeAGaramondPro-Semibold.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/Unica77LL-Italic.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/Unica77LL-Medium.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/Unica77LL-MediumItalic.otf", - "${PODS_ROOT}/Artsy+UIFonts/Pod/Assets/Unica77LL-Regular.otf", - "${PODS_ROOT}/../../Pod/Assets/Emission.js", - "${PODS_ROOT}/../../Pod/Assets/assets", - "${PODS_ROOT}/Extraction/Extraction/Assets/ARLoadFailureRetryIcon@2x.png", - "${PODS_ROOT}/SAMKeychain/Support/SAMKeychain.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/Stripe/Stripe.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AGaramondPro-Bold.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AGaramondPro-BoldItalic.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AGaramondPro-Italic.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AGaramondPro-Regular.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AGaramondPro-Semibold.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AVG65lig.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ReactNativeAGaramondPro-Italic.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ReactNativeAGaramondPro-Regular.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ReactNativeAGaramondPro-Semibold.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Unica77LL-Italic.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Unica77LL-Medium.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Unica77LL-MediumItalic.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Unica77LL-Regular.otf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Emission.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/assets", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARLoadFailureRetryIcon@2x.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SAMKeychain.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Stripe.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Emission/Pods-Emission-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 3CB362FC55CDD77CDAA5F2C2 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Emission/Pods-Emission-frameworks.sh", - "${PODS_ROOT}/../../node_modules/@mapbox/react-native-mapbox-gl/ios/Mapbox.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Mapbox.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Emission/Pods-Emission-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 510E94FE1CCB87F100BDF098 /* Create Clang compilation DB */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Create Clang compilation DB"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if type -p clang-compilation-database-tool > /dev/null 2>&1; then\nclang-compilation-database-tool collect \"${OBJECT_FILE_DIR_normal}\" > \"${SRCROOT}/compile_commands.json\"\nfi"; - showEnvVarsInLog = 0; - }; - 513510561DAFBBB9007223BF /* Compile JS Bundle for Release */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 12; - files = ( - ); - inputPaths = ( - ); - name = "Compile JS Bundle for Release"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [ \"$CONFIGURATION\" = \"Release\" ]\nthen\nexport NVM_DIR=\"$HOME/.nvm\"\n[ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\"\ncd .. && nvm use && npm run bundle\nfi"; - showEnvVarsInLog = 0; - }; - 5157C2E92018C82400DE6B07 /* Record Packager Host IP for Debug */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Record Packager Host IP for Debug"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Taken from https://github.com/facebook/react-native/blob/2716f53220f947c690d5f627286aad51313256a0/scripts/react-native-xcode.sh\n\n# Print commands before executing them (useful for troubleshooting)\nset -x\nDEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH\n\nif [[ \"$CONFIGURATION\" = \"Debug\" && ! \"$PLATFORM_NAME\" == *simulator ]]; then\nPLISTBUDDY='/usr/libexec/PlistBuddy'\nPLIST=$TARGET_BUILD_DIR/$INFOPLIST_PATH\nIP=$(ipconfig getifaddr en0)\nif [ -z \"$IP\" ]; then\nIP=$(ifconfig | grep 'inet ' | grep -v ' 127.' | cut -d\\ -f2 | awk 'NR==1{print $1}')\nfi\n\nif [ -z ${DISABLE_XIP+x} ]; then\nIP=\"$IP.xip.io\"\nfi\n\n$PLISTBUDDY -c \"Add NSAppTransportSecurity:NSExceptionDomains:localhost:NSTemporaryExceptionAllowsInsecureHTTPLoads bool true\" \"$PLIST\"\n$PLISTBUDDY -c \"Add NSAppTransportSecurity:NSExceptionDomains:$IP:NSTemporaryExceptionAllowsInsecureHTTPLoads bool true\" \"$PLIST\"\necho \"$IP\" > \"$DEST/ip.txt\"\nfi"; - showEnvVarsInLog = 0; - }; - 6E41E6A6664172F7C45F3D36 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Emission-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 510DCB0A1CCA69EC0075E8CB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 6011C2511DAF7B6D00CE54E5 /* UnroutedViewController.m in Sources */, - 6011C2451DAF61AF00CE54E5 /* ARAdminTableViewCell.m in Sources */, - 3ACAE7B922258EAD009C2236 /* ARAdminSentryBreadcrumbViewController.m in Sources */, - 3A7D41FE213F3CAD009618F5 /* ARLabOptions.m in Sources */, - 60B743B71D3EB12600E6B2A3 /* ARStorybookComponentViewController.m in Sources */, - 51F3E9A41CF3B8A4004A2013 /* EigenLikeNavigationController.m in Sources */, - 515687BE2079A300002F365C /* ARAdminPreloadTableViewCell.m in Sources */, - 6011C2461DAF61AF00CE54E5 /* ARTickedTableViewCell.m in Sources */, - 60E4ABF71EE7D85000E8C3B1 /* LoadingSpinner.m in Sources */, - 60218E2920168D4E00A6C66B /* ARTopMenuViewController.m in Sources */, - 60F61A8B1DAF982B00A72101 /* AuthenticationManager.m in Sources */, - 608A60D61F75614700B6EF83 /* AppSetup.m in Sources */, - 6011C2471DAF61AF00CE54E5 /* ARAnimatedTickView.m in Sources */, - 60AEE7A01ECC6237008058E3 /* NSDateFormatter+TimeAgo.m in Sources */, - 510DCB151CCA69EC0075E8CB /* AppDelegate.m in Sources */, - 6011C24B1DAF63C000CE54E5 /* ARDefaults.m in Sources */, - 60EDA5731F4B2944007A6100 /* InternalWebViewController.m in Sources */, - 510DCB121CCA69EC0075E8CB /* main.m in Sources */, - 6011C24E1DAF697B00CE54E5 /* EigenLikeAdminViewController.m in Sources */, - 6011C23B1DAF5DD900CE54E5 /* ARRootViewController.m in Sources */, - 7F6D717721CAA82D001BC122 /* Placeholder.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 510DCB221CCA69EC0075E8CB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 510DCB2B1CCA69EC0075E8CB /* OpaqueImageViewComponentTests.m in Sources */, - 510E95141CCEB84F00BDF098 /* TestHelper.m in Sources */, - 5E09C96B21E7B46B00207812 /* RCTTestModule.m in Sources */, - 5E09C96D21E7B46B00207812 /* RCTTestRunner.m in Sources */, - 5E09C96C21E7B46B00207812 /* RCTSnapshotManager.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 510DCB2D1CCA69EC0075E8CB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 510DCB361CCA69EC0075E8CB /* EmissionUITests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 510DCB281CCA69EC0075E8CB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 510DCB0D1CCA69EC0075E8CB /* Emission */; - targetProxy = 510DCB271CCA69EC0075E8CB /* PBXContainerItemProxy */; - }; - 510DCB331CCA69EC0075E8CB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 510DCB0D1CCA69EC0075E8CB /* Emission */; - targetProxy = 510DCB321CCA69EC0075E8CB /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 510E94FB1CCA828900BDF098 /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 510E94FC1CCA828900BDF098 /* Base */, - ); - name = LaunchScreen.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 510DCB381CCA69ED0075E8CB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 02E9860078C8122DA3D55F0F /* Pods-Emission.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CC = "${SRCROOT}/compile_commands_emitting_clang"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_CXX0X_EXTENSIONS = YES; - CODE_SIGN_ENTITLEMENTS = Emission/Emission.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = ""; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; - GCC_WARN_PEDANTIC = YES; - INFOPLIST_FILE = Emission/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-lstdc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = net.artsy.Emission; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Emission/Emission-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - WARNING_CFLAGS = "-Wno-variadic-macros"; - }; - name = Debug; - }; - 510DCB391CCA69ED0075E8CB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9AB72C7CDF8351EF0ADB2E4D /* Pods-Emission.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CC = "${SRCROOT}/compile_commands_emitting_clang"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_CXX0X_EXTENSIONS = YES; - CODE_SIGN_ENTITLEMENTS = Emission/Emission.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; - GCC_WARN_PEDANTIC = YES; - INFOPLIST_FILE = Emission/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-lstdc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = net.artsy.Emission; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - WARNING_CFLAGS = "-Wno-variadic-macros"; - }; - name = Release; - }; - 510DCB3A1CCA69ED0075E8CB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 17DDC2B5E27740D462B9B1E4 /* Pods-EmissionTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ENABLE_MODULES = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "FB_REFERENCE_IMAGE_DIR=\"\\\"$(SOURCE_ROOT)/$(TARGET_NAME)/ReferenceImages\\\"\"", - ); - INFOPLIST_FILE = EmissionTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.artsy.EmissionTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Emission.app/Emission"; - }; - name = Debug; - }; - 510DCB3B1CCA69ED0075E8CB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E347387A62A41620FEED9427 /* Pods-EmissionTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ENABLE_MODULES = YES; - INFOPLIST_FILE = EmissionTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.artsy.EmissionTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Emission.app/Emission"; - }; - name = Release; - }; - 510DCB3C1CCA69ED0075E8CB /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - INFOPLIST_FILE = EmissionUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.artsy.EmissionUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_TARGET_NAME = Emission; - USES_XCTRUNNER = YES; - }; - name = Debug; - }; - 510DCB3D1CCA69ED0075E8CB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - INFOPLIST_FILE = EmissionUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.artsy.EmissionUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_TARGET_NAME = Emission; - USES_XCTRUNNER = YES; - }; - name = Release; - }; - 607FACED1AFB9204008FA782 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 607FACEE1AFB9204008FA782 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 608A60D01F755E2F00B6EF83 /* Deploy */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "DEPLOY=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Deploy; - }; - 608A60D11F755E2F00B6EF83 /* Deploy */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 163341760E6AD3C2BD2501B6 /* Pods-Emission.deploy.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CC = "${SRCROOT}/compile_commands_emitting_clang"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_CXX0X_EXTENSIONS = YES; - CODE_SIGN_ENTITLEMENTS = Emission/Emission.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = ""; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; - GCC_WARN_PEDANTIC = YES; - INFOPLIST_FILE = Emission/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-lstdc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = net.artsy.Emission; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Emission/Emission-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - WARNING_CFLAGS = "-Wno-variadic-macros"; - }; - name = Deploy; - }; - 608A60D21F755E2F00B6EF83 /* Deploy */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5D75FFB0E282ED7DB0B9141E /* Pods-EmissionTests.deploy.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ENABLE_MODULES = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - INFOPLIST_FILE = EmissionTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.artsy.EmissionTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Emission.app/Emission"; - }; - name = Deploy; - }; - 608A60D31F755E2F00B6EF83 /* Deploy */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - INFOPLIST_FILE = EmissionUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.artsy.EmissionUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_TARGET_NAME = Emission; - USES_XCTRUNNER = YES; - }; - name = Deploy; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 510DCB3E1CCA69ED0075E8CB /* Build configuration list for PBXNativeTarget "Emission" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 510DCB381CCA69ED0075E8CB /* Debug */, - 608A60D11F755E2F00B6EF83 /* Deploy */, - 510DCB391CCA69ED0075E8CB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 510DCB3F1CCA69ED0075E8CB /* Build configuration list for PBXNativeTarget "EmissionTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 510DCB3A1CCA69ED0075E8CB /* Debug */, - 608A60D21F755E2F00B6EF83 /* Deploy */, - 510DCB3B1CCA69ED0075E8CB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 510DCB401CCA69ED0075E8CB /* Build configuration list for PBXNativeTarget "EmissionUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 510DCB3C1CCA69ED0075E8CB /* Debug */, - 608A60D31F755E2F00B6EF83 /* Deploy */, - 510DCB3D1CCA69ED0075E8CB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "Emission" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 607FACED1AFB9204008FA782 /* Debug */, - 608A60D01F755E2F00B6EF83 /* Deploy */, - 607FACEE1AFB9204008FA782 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 607FACC81AFB9204008FA782 /* Project object */; -} diff --git a/emission/Example/Emission.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/emission/Example/Emission.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index f6ade13ad0f..00000000000 --- a/emission/Example/Emission.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/emission/Example/Emission.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/emission/Example/Emission.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d6..00000000000 --- a/emission/Example/Emission.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/emission/Example/Emission.xcodeproj/xcshareddata/xcschemes/Emission Example.xcscheme b/emission/Example/Emission.xcodeproj/xcshareddata/xcschemes/Emission Example.xcscheme deleted file mode 100644 index 722358d98ba..00000000000 --- a/emission/Example/Emission.xcodeproj/xcshareddata/xcschemes/Emission Example.xcscheme +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/emission/Example/Emission.xcodeproj/xcshareddata/xcschemes/Emission.xcscheme b/emission/Example/Emission.xcodeproj/xcshareddata/xcschemes/Emission.xcscheme deleted file mode 100644 index de938e78de4..00000000000 --- a/emission/Example/Emission.xcodeproj/xcshareddata/xcschemes/Emission.xcscheme +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/emission/Example/Emission.xcworkspace/contents.xcworkspacedata b/emission/Example/Emission.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 327e05a2367..00000000000 --- a/emission/Example/Emission.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/emission/Example/Emission.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/emission/Example/Emission.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d6..00000000000 --- a/emission/Example/Emission.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/emission/Example/Emission/ARAdminPreloadTableViewCell.h b/emission/Example/Emission/ARAdminPreloadTableViewCell.h deleted file mode 100644 index 0f8014cdb98..00000000000 --- a/emission/Example/Emission/ARAdminPreloadTableViewCell.h +++ /dev/null @@ -1,6 +0,0 @@ -#import -#import "ARAdminTableViewCell.h" - -@interface ARAdminPreloadTableViewCell : ARAdminTableViewCell -@property (nonatomic, copy) dispatch_block_t preloadBlock; -@end diff --git a/emission/Example/Emission/ARAdminPreloadTableViewCell.m b/emission/Example/Emission/ARAdminPreloadTableViewCell.m deleted file mode 100644 index 404de8a438f..00000000000 --- a/emission/Example/Emission/ARAdminPreloadTableViewCell.m +++ /dev/null @@ -1,22 +0,0 @@ -#import "ARAdminPreloadTableViewCell.h" - -@implementation ARAdminPreloadTableViewCell - -- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier; -{ - if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { - UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; - [button setImage:[UIImage imageNamed:@"UITabBarDownloadsTemplate"] forState:UIControlStateNormal]; - [button sizeToFit]; - [button addTarget:self action:@selector(invokePreloadBlock) forControlEvents:UIControlEventTouchUpInside]; - self.accessoryView = button; - } - return self; -} - -- (void)invokePreloadBlock; -{ - self.preloadBlock(); -} - -@end diff --git a/emission/Example/Emission/ARAdminSentryBreadcrumbViewController.h b/emission/Example/Emission/ARAdminSentryBreadcrumbViewController.h deleted file mode 100644 index 920da720100..00000000000 --- a/emission/Example/Emission/ARAdminSentryBreadcrumbViewController.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface ARAdminSentryBreadcrumbViewController : UIViewController - -@end diff --git a/emission/Example/Emission/ARAdminSentryBreadcrumbViewController.m b/emission/Example/Emission/ARAdminSentryBreadcrumbViewController.m deleted file mode 100644 index e7462233112..00000000000 --- a/emission/Example/Emission/ARAdminSentryBreadcrumbViewController.m +++ /dev/null @@ -1,80 +0,0 @@ -#import "ARAdminSentryBreadcrumbViewController.h" - -#import -#import - -#import - -// Pull out the private fileManager -@interface SentryBreadcrumbStore (Private) -@property(nonatomic, strong) SentryFileManager *fileManager; -@end - - -@implementation ARAdminSentryBreadcrumbViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - // Grab the breadcrumbs from analytics calls and API wins/losses - // Convert those into string messages - // Throw them into a UITextView - // :shippit: - // - SentryBreadcrumbStore *store = [SentryClient sharedClient].breadcrumbs; - NSArray *> *breadCrumbs = [[[store.fileManager getAllStoredBreadcrumbs] reverseObjectEnumerator] allObjects]; - - NSMutableArray *messages = [NSMutableArray array]; - for (NSDictionary *data in breadCrumbs) { - NSDictionary *breadcrumb = [NSJSONSerialization JSONObjectWithData: data[@"data"] options:NSJSONReadingAllowFragments error:NULL]; - - NSString *timestamp = breadcrumb[@"timestamp"]; - NSString *category = breadcrumb[@"category"]; - NSString *message; - - // Is a console log message - if ([category isEqualToString:@"console"]){ - message = [NSString stringWithFormat:@"🕰 %@ \n%@ - %@", timestamp, breadcrumb[@"level"], breadcrumb[@"message"]]; - } - - // Is the start of an API call - if (!message && [category isEqualToString:@"fetch"]){ - NSString *url = breadcrumb[@"data"][@"url"]; - NSString *method = breadcrumb[@"data"][@"method"]; - NSString *status = @"START"; - - message = [NSString stringWithFormat:@"🕰 %@ \n%@ - %@ %@",timestamp, status, method, url]; - } - - // Is the end of an API call - if (!message && [category isEqualToString:@"xhr"]){ - NSString *url = breadcrumb[@"data"][@"url"]; - NSString *method = breadcrumb[@"data"][@"method"]; - NSString *status = breadcrumb[@"data"][@"status_code"]; - - message = [NSString stringWithFormat:@"🕰 %@ \n%@ - %@ %@", timestamp, status, method, url]; - } - - // Is a generic API call - if (!message && category) { - message = [NSString stringWithFormat:@"🕰 %@ \n🔎 %@ \n%@", timestamp, category, breadcrumb[@"data"]]; - } - - if (message){ - [messages addObject:message]; - } - } - - UITextView *tv = [[UITextView alloc] initWithFrame:self.view.bounds]; - tv.font = [UIFont fontWithName:@"Menlo-Regular" size:13]; - tv.textContainerInset = UIEdgeInsetsMake(60, 20, 60, 20); - tv.contentOffset = CGPointMake(0, 60); - tv.editable = NO; - [self.view addSubview:tv]; - [tv alignToView:self.view]; - - tv.text = [messages componentsJoinedByString:@"\n\n"]; -} - -@end diff --git a/emission/Example/Emission/ARAdminTableViewCell.h b/emission/Example/Emission/ARAdminTableViewCell.h deleted file mode 100644 index a941e4bc16a..00000000000 --- a/emission/Example/Emission/ARAdminTableViewCell.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -extern CGFloat ARTableViewCellSettingsHeight; - - -@interface ARAdminTableViewCell : UITableViewCell - -@property (nonatomic, assign) BOOL useSerifFont; - -@end diff --git a/emission/Example/Emission/ARAdminTableViewCell.m b/emission/Example/Emission/ARAdminTableViewCell.m deleted file mode 100644 index 7bf7210b634..00000000000 --- a/emission/Example/Emission/ARAdminTableViewCell.m +++ /dev/null @@ -1,63 +0,0 @@ -#import "ARAdminTableViewCell.h" -#import "EigenLikeAdminViewController.h" - -#import -#import - -CGFloat ARTableViewCellSettingsHeight = 60; - -@implementation ARAdminTableViewCell - -CGFloat MainTextVerticalOffset = 4; -CGFloat DetailTextVerticalOffset = 6; - -- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier -{ - BOOL overwriteStyle = [reuseIdentifier isEqualToString:ARLabOptionCell]; - UITableViewCellStyle usedStyle = overwriteStyle ? UITableViewCellStyleSubtitle : style; - - self = [super initWithStyle:usedStyle reuseIdentifier:reuseIdentifier]; - if (!self) { - return nil; - } - - self.useSerifFont = YES; - UIView *backgroundView = [[UIView alloc] init]; - backgroundView.backgroundColor = [UIColor artsyGrayLight]; - self.selectedBackgroundView = backgroundView; - self.textLabel.backgroundColor = [UIColor clearColor]; - - return self; -} - - -- (void)setUseSerifFont:(BOOL)newUseSerifFont -{ - _useSerifFont = newUseSerifFont; - - if (_useSerifFont) { - self.textLabel.font = [UIFont serifFontWithSize:18]; - self.detailTextLabel.font = [UIFont serifItalicFontWithSize:16]; - } else { - self.textLabel.font = [UIFont sansSerifFontWithSize:15]; - self.detailTextLabel.font = [UIFont sansSerifFontWithSize:15]; - } -} - -- (void)layoutSubviews -{ - [super layoutSubviews]; - - if (!self.detailTextLabel) { - if (_useSerifFont) { - CGRect frame = self.textLabel.frame; - frame.size.height -= MainTextVerticalOffset; - self.textLabel.frame = frame; - self.textLabel.center = CGPointMake(self.textLabel.center.x, self.textLabel.center.y + MainTextVerticalOffset); - } - } else { - self.detailTextLabel.center = CGPointMake(self.detailTextLabel.center.x, self.detailTextLabel.center.y + DetailTextVerticalOffset); - } -} - -@end diff --git a/emission/Example/Emission/ARAnimatedTickView.h b/emission/Example/Emission/ARAnimatedTickView.h deleted file mode 100644 index 0a221ddcd31..00000000000 --- a/emission/Example/Emission/ARAnimatedTickView.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - - -@interface ARAnimatedTickView : UIView -- (id)initWithSelection:(BOOL)selected; - -- (BOOL)selected; -- (void)setSelected:(BOOL)selected animated:(BOOL)animated; -@end diff --git a/emission/Example/Emission/ARAnimatedTickView.m b/emission/Example/Emission/ARAnimatedTickView.m deleted file mode 100644 index bc879a6ea51..00000000000 --- a/emission/Example/Emission/ARAnimatedTickView.m +++ /dev/null @@ -1,176 +0,0 @@ -#import "ARAnimatedTickView.h" -#import - -#define TICK_DIMENSION 32 - -@interface ARTickViewFrontLayer : CAShapeLayer -@end - - -@interface ARTickViewBackLayer : CALayer -@property (nonatomic, assign) CGFloat completion; -@end - - -@interface ARAnimatedTickView () { - ARTickViewBackLayer *_backLayer; -} -@end - - -@implementation ARAnimatedTickView - -- (id)initWithFrame:(CGRect)frame -{ - [NSException raise:NSInvalidArgumentException format:@"NSObject %@[%@]: selector not recognized - use initWithSelection: ", NSStringFromClass([self class]), NSStringFromSelector(_cmd)]; - return nil; -} - -- (id)initWithSelection:(BOOL)selected -{ - self = [super initWithFrame:CGRectMake(0, 0, TICK_DIMENSION, TICK_DIMENSION)]; - if (self) { - self.backgroundColor = [[UIColor artsyGrayRegular] colorWithAlphaComponent:0.2]; - - _backLayer = [ARTickViewBackLayer layer]; - _backLayer.completion = 1; - _backLayer.bounds = self.bounds; - _backLayer.position = CGPointMake(TICK_DIMENSION / 2, TICK_DIMENSION / 2); - - [self.layer addSublayer:_backLayer]; - [self.layer addSublayer:[ARTickViewFrontLayer layer]]; - - [self setSelected:selected animated:NO]; - } - return self; -} - -- (BOOL)selected -{ - return (_backLayer.completion) ? YES : NO; -} - -- (void)setSelected:(BOOL)selected animated:(BOOL)animated -{ - if (!animated) { - _backLayer.completion = selected ? 1 : 0; - [_backLayer setNeedsDisplay]; - - } else { - CABasicAnimation *positionAnimation = [CABasicAnimation animationWithKeyPath:@"completion"]; - positionAnimation.duration = 0.15; - positionAnimation.fromValue = @(!selected); - positionAnimation.toValue = @(selected); - positionAnimation.fillMode = kCAFillModeForwards; - positionAnimation.removedOnCompletion = YES; - [_backLayer addAnimation:positionAnimation forKey:@"TickAnimation"]; - - _backLayer.completion = selected ? 1 : 0; - } -} - -@end - - -@implementation ARTickViewFrontLayer - -// This is essentially the facia behind which the tick selection is drawn - -+ (instancetype)layer -{ - ARTickViewFrontLayer *layer = [[ARTickViewFrontLayer alloc] init]; - CGMutablePathRef tickPath = CGPathCreateMutable(); - - // Tick with gets diffed on outline // x y - CGPathMoveToPoint(tickPath, NULL, 24.28, 6.62); - CGPathAddLineToPoint(tickPath, NULL, 12.14, 22.07); - CGPathAddLineToPoint(tickPath, NULL, 6.62, 16.55); - CGPathAddLineToPoint(tickPath, NULL, 4.41, 18.76); - CGPathAddLineToPoint(tickPath, NULL, 12.14, 26.48); - CGPathAddLineToPoint(tickPath, NULL, 26.48, 8.83); - CGPathAddLineToPoint(tickPath, NULL, 24.28, 6.62); - CGPathCloseSubpath(tickPath); - - // Outline - CGPathMoveToPoint(tickPath, NULL, 32, 32); - CGPathAddLineToPoint(tickPath, NULL, 0, 32); - CGPathAddLineToPoint(tickPath, NULL, 0, 0); - CGPathAddLineToPoint(tickPath, NULL, 32, 0); - CGPathAddLineToPoint(tickPath, NULL, 32, 32); - CGPathCloseSubpath(tickPath); - - layer.path = tickPath; - CGPathRelease(tickPath); - - layer.fillColor = [UIColor whiteColor].CGColor; - return layer; -} - -@end - - -@implementation ARTickViewBackLayer - -// Tell the class if completion changes that needs a redraw -// meaning you can animate the key completion using a CABasicAnimation - -+ (BOOL)needsDisplayForKey:(NSString *)key -{ - if ([key isEqualToString:@"completion"]) { - return YES; - } - - return [super needsDisplayForKey:key]; -} - -- (void)drawInContext:(CGContextRef)context -{ - [self drawLowerHalfInContext:context]; - [self drawUpperHalfInContext:context]; -} - -// Top left is 0,0 - -- (void)drawLowerHalfInContext:(CGContextRef)ctx -{ - CGPoint TL = CGPointMake(6.0, 15.2); - CGPoint BL = CGPointMake(4.1, 19.4); - - // this is double the distance it needs, so that it finished in half-time - - CGPoint TR = CGPointMake(21, 32); - CGPoint BR = CGPointMake(21.1, 34.6); - [self drawStretchyRectWithPointsTL:TL TR:TR BL:BL BR:BR inContext:ctx]; -} - -- (void)drawUpperHalfInContext:(CGContextRef)ctx -{ - CGPoint TL = CGPointMake(9.4, 24.5); - CGPoint BL = CGPointMake(12.1, 27.1); - - CGPoint TR = CGPointMake(24, 6.8); - CGPoint BR = CGPointMake(27.1, 8.9); - [self drawStretchyRectWithPointsTL:TL TR:TR BL:BL BR:BR inContext:ctx]; -} - -- (void)drawStretchyRectWithPointsTL:(CGPoint)TL TR:(CGPoint)TR BL:(CGPoint)BL BR:(CGPoint)BR inContext:(CGContextRef)ctx -{ - CGContextMoveToPoint(ctx, TL.x, TL.y); - - // the top right - CGContextAddLineToPoint(ctx, ((TR.x - TL.x) * self.completion) + TL.x, ((TR.y - TL.y) * self.completion) + TL.y); - // bottom right - CGContextAddLineToPoint(ctx, ((BR.x - BL.x) * self.completion) + BL.x, ((BR.y - BL.y) * self.completion) + BL.y); - - // bottom left - CGContextAddLineToPoint(ctx, BL.x, BL.y); - CGContextClosePath(ctx); - - // Color it - CGContextSetFillColorWithColor(ctx, [UIColor artsyPurpleRegular].CGColor); - CGContextSetLineWidth(ctx, 0); - - CGContextDrawPath(ctx, kCGPathFill); -} - -@end diff --git a/emission/Example/Emission/ARDefaults.h b/emission/Example/Emission/ARDefaults.h deleted file mode 100644 index b7317d644b5..00000000000 --- a/emission/Example/Emission/ARDefaults.h +++ /dev/null @@ -1,19 +0,0 @@ -#import - -extern NSString *const ARForceUseRNPDefault; -extern NSString *const ARJumpStraightIntoStorybooks; - -extern NSString *const ARUseStagingDefault; -extern NSString *const ARUsePREmissionDefault; -extern NSString *const ARPREmissionIDDefault; - -extern NSString *const ARStagingAPIURLDefault; -extern NSString *const ARStagingWebURLDefault; -extern NSString *const ARStagingMetaphysicsURLDefault; -extern NSString *const ARStagingPredictionURLDefault; -extern NSString *const ARRNPackagerHostDefault; - -@interface ARDefaults : NSObject -+ (void)setup; -+ (void)resetDefaults; -@end diff --git a/emission/Example/Emission/ARDefaults.m b/emission/Example/Emission/ARDefaults.m deleted file mode 100644 index 7ed5c273e46..00000000000 --- a/emission/Example/Emission/ARDefaults.m +++ /dev/null @@ -1,50 +0,0 @@ -#import "ARDefaults.h" -#import - -NSString *const ARForceUseRNPDefault = @"ARForceUseRNPDefault"; -NSString *const ARJumpStraightIntoStorybooks = @"ARJumpStraightIntoStorybooks"; - -NSString *const ARUseStagingDefault = @"ARUseStagingDefault"; -NSString *const ARUsePREmissionDefault = @"ARUsePREmissionDefault"; -NSString *const ARPREmissionIDDefault = @"ARPREmissionIDDefault"; - -NSString *const ARStagingAPIURLDefault = @"ARStagingAPIURLDefault"; -NSString *const ARStagingWebURLDefault = @"ARStagingWebURLDefault"; -NSString *const ARStagingMetaphysicsURLDefault = @"ARStagingMetaphysicsURLDefault"; -NSString *const ARStagingPredictionURLDefault = @"ARStagingPredictionURLDefault"; -NSString *const ARRNPackagerHostDefault = @"ARStagingRNPackagerHostDefault"; - - -@implementation ARDefaults - -+ (void)setup -{ - BOOL useStagingDefault; -#if DEBUG - useStagingDefault = YES; -#else - useStagingDefault = NO; -#endif - - NSString *ipPath = [[NSBundle mainBundle] pathForResource:@"ip" ofType:@"txt"]; - NSString *ipGuess = [[NSString stringWithContentsOfFile:ipPath encoding:NSUTF8StringEncoding error:nil] - stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]]; - NSString *host = ipGuess ? ipGuess : @"localhost"; - - [[NSUserDefaults standardUserDefaults] registerDefaults:@{ - ARUseStagingDefault : @(useStagingDefault), - ARStagingAPIURLDefault : @"https://stagingapi.artsy.net", - ARStagingWebURLDefault : @"https://staging.artsy.net", - ARStagingMetaphysicsURLDefault : @"https://metaphysics-staging.artsy.net/v2", - ARStagingPredictionURLDefault : @"https://live-staging.artsy.net", - ARRNPackagerHostDefault : host, - }]; -} - -+ (void)resetDefaults -{ - [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:[[NSBundle mainBundle] bundleIdentifier]]; - [[NSUserDefaults standardUserDefaults] synchronize]; -} - -@end diff --git a/emission/Example/Emission/ARLabOptions.h b/emission/Example/Emission/ARLabOptions.h deleted file mode 100644 index 7d3aad4b8a0..00000000000 --- a/emission/Example/Emission/ARLabOptions.h +++ /dev/null @@ -1,20 +0,0 @@ -#import - -extern NSDictionary *AROptionsAnExampleLabOption; - -@interface ARLabOptions : NSObject - -/// Returns all the current options -+ (NSArray *)labsOptions; -/// A subset of the above that the app should restart upon changing -+ (NSArray *)labsOptionsThatRequireRestart; -/// A dictionary of lab options to true/false as NSNumbers -+ (NSDictionary *)labOptionsMap; -/// So we can provide a UI -+ (NSString *)descriptionForOption:(NSString *)option; - -/// Get and set individual options -+ (BOOL)boolForOption:(NSString *)option; -+ (void)setBool:(BOOL)value forOption:(NSString *)option; - -@end diff --git a/emission/Example/Emission/ARLabOptions.m b/emission/Example/Emission/ARLabOptions.m deleted file mode 100644 index 38007030110..00000000000 --- a/emission/Example/Emission/ARLabOptions.m +++ /dev/null @@ -1,71 +0,0 @@ - -#import "ARLabOptions.h" - -static NSDictionary *options = nil; - -@implementation ARLabOptions - -+ (void)initialize -{ - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - // - // The keys in this hash are how you can access the value in Emission code: - // - // import { options } from "lib/options" - // - // if (options.example) { - // [something] - // - // - // Then in your test files, you can use jest to mock "lib/options" with your own - // object. - // - options = @{ - @"AROptionsPriceTransparency": @"Price transparency", - @"AROptionsLotConditionReport": @"Lot Condition Report", - @"AROptionsFilterCollectionsArtworks": @"Filter Collections Artworks" - }; - }); - -} - -+ (NSArray *)labsOptions -{ - return options.allKeys; -} - -+ (NSString *)descriptionForOption:(NSString *)option -{ - return options[option]; -} - -+ (NSDictionary *)labOptionsMap -{ - NSArray *options = [self labsOptions]; - NSMutableDictionary *mutableOptions = [NSMutableDictionary dictionary]; - - for (NSString *option in options) { - [mutableOptions setObject:@([self boolForOption:option]) forKey:option]; - } - return [mutableOptions copy]; -} - - -+ (NSArray *)labsOptionsThatRequireRestart -{ - return @[]; -} - -+ (BOOL)boolForOption:(NSString *)option -{ - return [[NSUserDefaults standardUserDefaults] boolForKey:option]; -} - -+ (void)setBool:(BOOL)value forOption:(NSString *)option -{ - [[NSUserDefaults standardUserDefaults] setBool:value forKey:option]; - [[NSUserDefaults standardUserDefaults] synchronize]; -} - -@end diff --git a/emission/Example/Emission/ARMacros.h b/emission/Example/Emission/ARMacros.h deleted file mode 100644 index 2da794aa87b..00000000000 --- a/emission/Example/Emission/ARMacros.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef ARMacros_h -#define ARMacros_h - -#define ar_keypath(anObject, aKeyPath) ((void)(NO && ((void)anObject.aKeyPath, NO)), @ #aKeyPath) - -#endif /* ARMacros_h */ diff --git a/emission/Example/Emission/ARRootViewController.h b/emission/Example/Emission/ARRootViewController.h deleted file mode 100644 index f2d6ec29b2b..00000000000 --- a/emission/Example/Emission/ARRootViewController.h +++ /dev/null @@ -1,9 +0,0 @@ -#import -#import "EigenLikeAdminViewController.h" -#import "AuthenticationManager.h" - -@interface ARRootViewController : EigenLikeAdminViewController - -@property (nonatomic) AuthenticationManager *authenticationManager; - -@end diff --git a/emission/Example/Emission/ARRootViewController.m b/emission/Example/Emission/ARRootViewController.m deleted file mode 100644 index 195fbc035b3..00000000000 --- a/emission/Example/Emission/ARRootViewController.m +++ /dev/null @@ -1,564 +0,0 @@ -#import "ARRootViewController.h" -#import "ARAnimatedTickView.h" -#import "ARTickedTableViewCell.h" -#import "ARAdminTableViewCell.h" -#import "ARAdminPreloadTableViewCell.h" -#import "EigenLikeNavigationController.h" -#import - -#import "AppDelegate.h" -#import "ARDefaults.h" -#import "AppSetup.h" -#import "ARLabOptions.h" - -#import -#import - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import "ARStorybookComponentViewController.h" - -#import "InternalWebViewController.h" -#import "EigenLikeNavigationController.h" -#import -#import "ARAdminSentryBreadcrumbViewController.h" - -#import -#import - -@implementation ARRootViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - AppSetup *setup = [AppSetup ambientSetup]; - - ARTableViewData *tableViewData = [[ARTableViewData alloc] init]; - [self registerClass:ARTickedTableViewCell.class forCellReuseIdentifier:ARLabOptionCell]; - [self registerClass:ARAdminTableViewCell.class forCellReuseIdentifier:ARSubtitledLabOptionCell]; - [self registerClass:ARAdminTableViewCell.class forCellReuseIdentifier:AROptionCell]; - [self registerClass:ARAdminPreloadTableViewCell.class forCellReuseIdentifier:ARPreloadOptionCell]; - - ARSectionData *appData = [[ARSectionData alloc] init]; - [self setupSection:appData withTitle:[self titleForApp]]; - [appData addCellData:[self emissionJSLocationDescription:setup.emissionLoadedFromString]]; - [tableViewData addSectionData:appData]; - - // This isn't of any use unless you're developing - if(!setup.usingPRBuild) { - ARSectionData *developerSection = [self developersSection]; - [tableViewData addSectionData:developerSection]; - } - - ARSectionData *userSection = [self userSection]; - [tableViewData addSectionData:userSection]; - - ARSectionData *labsSection = [self labsSection]; - [tableViewData addSectionData:labsSection]; - - // TODO: Deprecate - // These were nice quick for getting bootstrapped, but they should be storybooks - // so that they can be controlled in JS and deployed with PRs. - ARSectionData *viewControllerSection = [self jumpToViewControllersSection]; - [tableViewData addSectionData:viewControllerSection]; - - ARSectionData *adminSection = [self adminSection]; - [tableViewData addSectionData:adminSection]; - - self.tableViewData = tableViewData; -} - -- (void)viewDidAppear:(BOOL)animated -{ - [super viewDidAppear:animated]; - - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - BOOL autoJump = [[NSUserDefaults standardUserDefaults] boolForKey:ARJumpStraightIntoStorybooks]; - if (autoJump) { - id viewController = [ARStorybookComponentViewController new]; - [self.navigationController pushViewController:viewController animated:YES]; - } - }); -} - -/// Sections - -- (ARSectionData *)jumpToViewControllersSection -{ - ARSectionData *sectionData = [[ARSectionData alloc] init]; - [self setupSection:sectionData withTitle:@"View Controllers"]; - - [sectionData addCellData:self.jumpToSearch]; - [sectionData addCellData:self.jumpToShow]; - [sectionData addCellData:self.jumpToFair]; - [sectionData addCellData:self.jumpToMap]; - [sectionData addCellData:self.jumpToCollection]; - [sectionData addCellData:self.jumpToArtwork]; - [sectionData addCellData:self.jumpToPartner]; - [sectionData addCellData:self.jumpToArtist]; - [sectionData addCellData:self.jumpToRandomArtist]; - [sectionData addCellData:self.jumpToHomepage]; - [sectionData addCellData:self.jumpToGene]; - [sectionData addCellData:self.jumpToRefinedGene]; - [sectionData addCellData:self.jumpToMyProfile]; - [sectionData addCellData:self.jumpToConsignments]; - [sectionData addCellData:self.jumpToInbox]; - [sectionData addCellData:self.jumpToInquiry]; - [sectionData addCellData:self.jumpToFavorites]; - [sectionData addCellData:self.jumpToBidFlow]; - - return sectionData; -} - -- (ARSectionData *)developersSection -{ - ARSectionData *sectionData = [[ARSectionData alloc] init]; - [self setupSection:sectionData withTitle:@"Developer"]; - - [sectionData addCellData:self.jumpToStorybooks]; - [sectionData addCellData:self.autoOpenStorybooksOnLaunch]; - - return sectionData; -} - -- (ARSectionData *)labsSection -{ - ARSectionData *labsSectionData = [[ARSectionData alloc] init]; - labsSectionData.headerTitle = @"Labs"; - - NSArray *options = [ARLabOptions labsOptions]; - for (NSInteger index = 0; index < options.count; index++) { - NSString *key = options[index]; - NSString *title = [ARLabOptions descriptionForOption:key]; - BOOL requiresRestart = [[ARLabOptions labsOptionsThatRequireRestart] indexOfObject:title] != NSNotFound; - - ARCellData *cellData = [[ARCellData alloc] initWithIdentifier:ARLabOptionCell]; - [cellData setCellConfigurationBlock:^(UITableViewCell *cell) { - cell.textLabel.text = requiresRestart ? [title stringByAppendingString:@" (restarts)"] : title; - cell.accessoryView = [[ARAnimatedTickView alloc] initWithSelection:[ARLabOptions boolForOption:key]]; - }]; - - [cellData setCellSelectionBlock:^(UITableView *tableView, NSIndexPath *indexPath) { - BOOL currentSelection = [ARLabOptions boolForOption:key]; - [ARLabOptions setBool:!currentSelection forOption:key]; - - if (requiresRestart) { - // Show checkmark. - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - exit(0); - }); - } else { - AppDelegate *appDelegate = (id)[UIApplication sharedApplication].delegate; - [appDelegate reloadEmission]; - } - - UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; - [(ARAnimatedTickView *)cell.accessoryView setSelected:!currentSelection animated:YES]; - }]; - - [labsSectionData addCellData:cellData]; - } - return labsSectionData; -} - -- (ARCellData *)jumpToStorybooks -{ - return [self tappableCellDataWithTitle:@"Open Storybook" selection: ^{ - id viewController = [ARStorybookComponentViewController new]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - -- (ARCellData *)autoOpenStorybooksOnLaunch -{ - BOOL autoJump = [[NSUserDefaults standardUserDefaults] boolForKey:ARJumpStraightIntoStorybooks]; - NSString *title = autoJump ? @"Stop auto-jumping into Storybooks" : @"Jump into Storybooks on launch"; - - ARCellData *autoSwitchCellData = [[ARCellData alloc] initWithIdentifier:AROptionCell]; - [autoSwitchCellData setCellConfigurationBlock:^(UITableViewCell *cell) { - cell.textLabel.text = title; - cell.accessoryView = [[ARAnimatedTickView alloc] initWithSelection:autoJump]; - }]; - - [autoSwitchCellData setCellSelectionBlock:^(UITableView *tableView, NSIndexPath *indexPath) { - UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; - cell.accessoryView = [[ARAnimatedTickView alloc] initWithSelection:!autoJump]; - - [self showAlertViewWithTitle:@"Confirm Switch" message:@"Switching auto-storybooks." actionTitle:@"Do it" actionHandler:^{ - [[NSUserDefaults standardUserDefaults] setBool:!autoJump forKey:ARJumpStraightIntoStorybooks]; - [[NSUserDefaults standardUserDefaults] synchronize]; - exit(0); - }]; - }]; - - return autoSwitchCellData; -} - - -- (ARCellData *)jumpToEndUserStorybooks -{ - return [self tappableCellDataWithTitle:@"Open Storybook Browser" selection: ^{ - id viewController = [[ARComponentViewController alloc] initWithEmission:nil moduleName:@"StorybookBrowser" initialProperties: @{}]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - - -- (ARCellData *)jumpToUserDocs -{ - return [self tappableCellDataWithTitle:@"Open Emission beta Docs" selection: ^{ - NSURL *url = [NSURL URLWithString:@"https://github.com/artsy/emission/blob/master/docs/using_the_beta.md"]; - id viewController = [[InternalWebViewController alloc] initWithURL:url]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - -- (ARCellData *)jumpToSearch -{ - return [self tappableCellDataWithTitle:@"Search" selection:^{ - id viewController = [[ARSearchComponentViewController alloc] init]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - -- (ARCellData *)jumpToArtwork -{ - return [self tappableCellDataWithTitle:@"Artwork" selection:^{ - id viewController = [[ARArtworkComponentViewController alloc] initWithArtworkID:@"be-at-rbrick-mastermind-japan-1000-percent"]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - -- (ARCellData *)jumpToPartner -{ - return [self tappableCellDataWithTitle:@"Partner" selection:^{ - id viewController = [[ARPartnerComponentViewController alloc] initWithPartnerID:@"gagosian-gallery"]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - -- (ARCellData *)jumpToArtist -{ - NSString *artistID = @"andy-warhol"; - return [self viewControllerCellDataWithTitle:@"Artist" - selection:^{ - id viewController = [[ARArtistComponentViewController alloc] initWithArtistID:artistID]; - [self.navigationController pushViewController:viewController animated:YES]; - } - preload:^NSArray *{ - return [ARArtistComponentViewController preloadQueriesWithArtistID:artistID]; - }]; -} - -- (ARCellData *)jumpToCollection -{ - return [self viewControllerCellDataWithTitle:@"Collection" - selection:^{ - id viewController = [[ARCollectionComponentViewController alloc] initWithCollectionID:@"street-art-now"]; - [self.navigationController pushViewController:viewController animated:YES]; - } - preload:nil]; -} - -- (ARCellData *)jumpToRandomArtist -{ - NSString *sourceRoot = [NSProcessInfo processInfo].environment[@"SRCROOT"]; - NSString *artistListFromExample = @"../externals/metaphysics/schema/artist/maps/artist_title_slugs.js"; - NSString *slugsPath = [sourceRoot stringByAppendingPathComponent:artistListFromExample]; - - NSFileManager *manager = [NSFileManager defaultManager]; - - // Don't have the submodule? bail, it's no biggie - if (![manager fileExistsAtPath:slugsPath]) { return nil; } - - // Otherwise lets support jumping to a random Artist - return [self tappableCellDataWithTitle:@"Artist (random from metaphysics)" selection: ^{ - NSString *data = [NSString stringWithContentsOfFile:slugsPath encoding:NSUTF8StringEncoding error:nil]; - NSString *jsonString = [[[data - stringByReplacingOccurrencesOfString:@"export default" withString:@""] - stringByReplacingOccurrencesOfString:@"'" withString:@"\""] - stringByReplacingOccurrencesOfString:@",\n];" withString:@"]"]; - NSArray *artists = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]; - u_int32_t rnd = arc4random_uniform((uint32_t)artists.count); - id viewController = [[ARArtistComponentViewController alloc] initWithArtistID:[artists objectAtIndex:rnd]]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - -- (ARCellData *)jumpToHomepage -{ - return [self viewControllerCellDataWithTitle:@"Homepage" - selection:^{ - id viewController = [[ARHomeComponentViewController alloc] initWithSelectedArtist:nil tab:ARHomeTabArtists emission:nil]; - [self.navigationController pushViewController:viewController animated:YES]; - } - preload:^NSArray *{ - return [ARHomeComponentViewController preloadQueriesWithSelectedArtist:nil tab:ARHomeTabArtists]; - }]; -} - -- (ARCellData *)jumpToGene -{ - NSString *geneID = @"minimalism"; - return [self viewControllerCellDataWithTitle:@"Gene" - selection:^{ - id viewController = [[ARGeneComponentViewController alloc] initWithGeneID:geneID]; - [self.navigationController pushViewController:viewController animated:YES]; - } - preload:^NSArray *{ - return [ARGeneComponentViewController preloadQueriesWithGeneID:geneID refineSettings:@{}]; - }]; -} - -- (ARCellData *)jumpToRefinedGene -{ - // From: https://github.com/artsy/metaphysics/blob/master/schema/home/add_generic_genes.js - NSString *geneID = @"emerging-art"; - NSDictionary *refineSettings = @{ @"medium": @"painting", @"price_range": @"50.00-10000.00" }; - return [self viewControllerCellDataWithTitle:@"Gene Refined" - selection:^{ - id viewController = [[ARGeneComponentViewController alloc] initWithGeneID:geneID refineSettings:refineSettings]; - [self.navigationController pushViewController:viewController animated:YES]; - } - preload:^NSArray *{ - return [ARGeneComponentViewController preloadQueriesWithGeneID:geneID refineSettings:refineSettings]; - }]; -} - -- (ARCellData *)jumpToMyProfile -{ - return [self tappableCellDataWithTitle:@"My Profile" - selection:^{ - id viewController = [[ARMyProfileComponentViewController alloc] init]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - - -- (ARCellData *)jumpToConsignments -{ - return [self tappableCellDataWithTitle:@"Start Consignment Flow" selection:^{ - [[(EigenLikeNavigationController *)self.navigationController backButton] setHidden:YES]; - id viewController = [[ARShowConsignmentsFlowViewController alloc] init]; - - UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController]; - nav.navigationBarHidden = YES; - [self.navigationController presentViewController:nav animated:YES completion:NULL]; - }]; -} - -- (ARCellData *)jumpToInbox -{ - return [self viewControllerCellDataWithTitle:@"Inbox" - selection:^{ - id viewController = [[ARInboxComponentViewController alloc] initWithInbox]; - [self.navigationController pushViewController:viewController animated:YES]; - } - preload:^NSArray *{ - return [ARInboxComponentViewController preloadQueries]; - }]; -} - -- (ARCellData *)jumpToInquiry -{ - return [self tappableCellDataWithTitle:@"Inquiry" selection: ^{ - id viewController = [[ARInquiryComponentViewController alloc] initWithArtworkID:@"damien-hirst-analgesics"]; - [self.navigationController presentViewController:viewController animated:YES completion:nil]; - }]; -} - -- (ARCellData *)jumpToFavorites -{ - return [self viewControllerCellDataWithTitle:@"Favorites" - selection:^{ - id viewController = [[ARFavoritesComponentViewController alloc] init]; - [self.navigationController pushViewController:viewController animated:YES]; - } - preload:^NSArray *{ - return [ARFavoritesComponentViewController preloadQueries]; - }]; -} - -- (ARCellData *)jumpToShow -{ - return [self tappableCellDataWithTitle:@"Show" selection:^{ - id viewController = [[ARShowComponentViewController alloc] initWithShowID:@"harlan-levey-projects-recreational-painting"]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - -- (ARCellData *)jumpToFair -{ - return [self tappableCellDataWithTitle:@"Fair" selection:^{ - id viewController = [[ARFairComponentViewController alloc] initWithFairID:@"the-art-show-2019"]; - [self.navigationController pushViewController:viewController animated:YES]; - }]; -} - -- (ARCellData *)jumpToMap -{ - return [self tappableCellDataWithTitle:@"Map" selection:^{ - id viewController = [[ARMapContainerViewController alloc] init]; - [self.navigationController pushViewController:viewController animated:YES]; - - }]; -} - -- (ARCellData *)jumpToBidFlow -{ - NSString *artworkID = @"david-hockney-pool-made-with-paper-and-blue-ink-for-book-from-paper-pools-2"; - NSString *saleID = @"phillips-summer-school-1"; - return [self viewControllerCellDataWithTitle:@"Bid Flow" selection: ^{ - ARBidFlowViewController *bidFlowController = [[ARBidFlowViewController alloc] initWithArtworkID:artworkID saleID:saleID]; - EigenLikeNavigationController *navigationController = [[EigenLikeNavigationController alloc] initWithRootViewController:bidFlowController]; - navigationController.showBackButtonOnRoot = YES; - [self presentViewController:navigationController animated:YES completion:nil]; - } preload:^NSArray *{ - return [ARBidFlowViewController preloadQueriesWithArtworkID:artworkID saleID:saleID intent:ARBidFlowViewControllerIntentBid]; - }]; -} - -- (ARCellData *)generateStagingSwitch -{ - BOOL useStaging = [[NSUserDefaults standardUserDefaults] boolForKey:ARUseStagingDefault]; - NSString *title = [NSString stringWithFormat:@"Switch to %@ (Resets)", useStaging ? @"Production" : @"Staging"]; - - ARCellData *crashCellData = [[ARCellData alloc] initWithIdentifier:AROptionCell]; - [crashCellData setCellConfigurationBlock:^(UITableViewCell *cell) { - cell.textLabel.text = title; - }]; - - [crashCellData setCellSelectionBlock:^(UITableView *tableView, NSIndexPath *indexPath) { - [self showAlertViewWithTitle:@"Confirm Switch" message:@"Switching servers may log you out. App will exit. Please re-open to log back in." actionTitle:@"Continue" actionHandler:^{ - - [[NSUserDefaults standardUserDefaults] setBool:!useStaging forKey:ARUseStagingDefault]; - [[NSUserDefaults standardUserDefaults] synchronize]; - [[[AREmission sharedInstance] graphQLQueryCacheModule] clearAll]; - - exit(0); - }]; - }]; - return crashCellData; -} - -- (ARCellData *)toggleRNPSwitch -{ - BOOL forceRNP = [[NSUserDefaults standardUserDefaults] boolForKey:ARForceUseRNPDefault]; - NSString *rnpLocation = [[NSUserDefaults standardUserDefaults] stringForKey:ARRNPackagerHostDefault]; - NSString *title = !forceRNP ? [NSString stringWithFormat:@"Use RNP with %@", rnpLocation] : @"Revert forced RNP"; - - ARCellData *crashCellData = [[ARCellData alloc] initWithIdentifier:AROptionCell]; - [crashCellData setCellConfigurationBlock:^(UITableViewCell *cell) { - cell.textLabel.text = title; - }]; - - [crashCellData setCellSelectionBlock:^(UITableView *tableView, NSIndexPath *indexPath) { - [self showAlertViewWithTitle:@"Confirm Switch" message:@"Switching forced RNP settings." actionTitle:@"Continue" actionHandler:^{ - - [[NSUserDefaults standardUserDefaults] setBool:!forceRNP forKey:ARForceUseRNPDefault]; - [[NSUserDefaults standardUserDefaults] synchronize]; - exit(0); - }]; - }]; - return crashCellData; -} - -- (ARCellData *)emissionJSLocationDescription:(NSString *)loadedFromString -{ - return [self informationCellDataWithTitle:loadedFromString]; -} - -- (ARSectionData *)userSection -{ - ARSectionData *sectionData = [[ARSectionData alloc] init]; - [self setupSection:sectionData withTitle:@"User"]; - - [sectionData addCellData:self.jumpToEndUserStorybooks]; -#if defined(DEPLOY) - [sectionData addCellData:self.jumpToUserDocs]; -#endif - - return sectionData; -} - -- (ARSectionData *)adminSection -{ - ARSectionData *sectionData = [[ARSectionData alloc] init]; - [self setupSection:sectionData withTitle:@"Admin"]; - [sectionData addCellData:self.showSentryLogs]; - - AppSetup *setup = [AppSetup ambientSetup]; - if (setup.inStaging) { - [sectionData addCellDataFromArray:@[ - [self editableTextCellDataWithName:@"Gravity API" defaultKey:ARStagingAPIURLDefault], - [self editableTextCellDataWithName:@"Metaphysics API" defaultKey:ARStagingMetaphysicsURLDefault], - [self editableTextCellDataWithName:@"Prediction URL" defaultKey:ARStagingPredictionURLDefault], - [self editableTextCellDataWithName:@"RN Packager" defaultKey:ARRNPackagerHostDefault], - ]]; - - } - - [sectionData addCellData:self.toggleRNPSwitch]; - [sectionData addCellData:self.generateStagingSwitch]; - [sectionData addCellData:self.clearGraphQLQueryCache]; - [sectionData addCellData:self.clearImageCache]; - [sectionData addCellData:self.logOutButton]; - return sectionData; -} - -- (ARCellData *)clearGraphQLQueryCache; -{ - return [self tappableCellDataWithTitle:@"Clear GraphQL Query Cache" selection:^{ - [[[AREmission sharedInstance] graphQLQueryCacheModule] clearAll]; - }]; -} - -- (ARCellData *)clearImageCache; -{ - return [self tappableCellDataWithTitle:@"Clear image cache" selection:^{ - SDWebImageManager *manager = [SDWebImageManager sharedManager]; - [[manager imageCache] clearDiskOnCompletion:^{ - [[manager imageCache] clearMemory]; - }]; - }]; -} - -- (ARCellData *)logOutButton -{ - return [self tappableCellDataWithTitle:@"Log Out" selection:^{ - [self showAlertViewWithTitle:@"Confirm Log Out" message:@"" actionTitle:@"Continue" actionHandler:^{ - - [self.authenticationManager logOut]; - exit(0); - }]; - }]; -} - -- (ARCellData *)showSentryLogs -{ - return [self tappableCellDataWithTitle:@"Show Sentry Breadcrumbs" selection:^{ - [self.navigationController pushViewController:[[ARAdminSentryBreadcrumbViewController alloc] init] animated:YES]; - }]; -} - -@end diff --git a/emission/Example/Emission/ARStorybookComponentViewController.h b/emission/Example/Emission/ARStorybookComponentViewController.h deleted file mode 100644 index 1cca8fd5e5f..00000000000 --- a/emission/Example/Emission/ARStorybookComponentViewController.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface ARStorybookComponentViewController : ARComponentViewController - -- (instancetype)init; - -@end - -NS_ASSUME_NONNULL_END diff --git a/emission/Example/Emission/ARStorybookComponentViewController.m b/emission/Example/Emission/ARStorybookComponentViewController.m deleted file mode 100644 index a8eaee1de1d..00000000000 --- a/emission/Example/Emission/ARStorybookComponentViewController.m +++ /dev/null @@ -1,10 +0,0 @@ -#import "ARStorybookComponentViewController.h" - -@implementation ARStorybookComponentViewController - -- (instancetype)init; -{ - return [self initWithEmission:nil moduleName:@"Storybook" initialProperties:nil]; -} - -@end diff --git a/emission/Example/Emission/ARTickedTableViewCell.h b/emission/Example/Emission/ARTickedTableViewCell.h deleted file mode 100644 index 69583f0d985..00000000000 --- a/emission/Example/Emission/ARTickedTableViewCell.h +++ /dev/null @@ -1,8 +0,0 @@ -#import "ARAdminTableViewCell.h" - - -@interface ARTickedTableViewCell : ARAdminTableViewCell - -- (void)setTickSelected:(BOOL)selected animated:(BOOL)animated; -- (BOOL)isSelected; -@end diff --git a/emission/Example/Emission/ARTickedTableViewCell.m b/emission/Example/Emission/ARTickedTableViewCell.m deleted file mode 100644 index 51ce2e648ce..00000000000 --- a/emission/Example/Emission/ARTickedTableViewCell.m +++ /dev/null @@ -1,36 +0,0 @@ -#import "ARTickedTableViewCell.h" -#import "ARAnimatedTickView.h" - - -@implementation ARTickedTableViewCell - -- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier -{ - self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; - if (self) { - self.useSerifFont = YES; - self.selectionStyle = UITableViewCellSelectionStyleNone; - self.accessoryView = [[ARAnimatedTickView alloc] initWithSelection:NO]; - self.textLabel.textColor = [UIColor blackColor]; - } - return self; -} - -// Using setSelected comes with too much baggage. Lets simplify. - -- (void)setTickSelected:(BOOL)selected animated:(BOOL)animated -{ - if ([self.accessoryView isKindOfClass:[ARAnimatedTickView class]]) { - [(ARAnimatedTickView *)self.accessoryView setSelected:selected animated:animated]; - } -} - -- (BOOL)isSelected -{ - if ([self.accessoryView isKindOfClass:[ARAnimatedTickView class]]) { - return [(ARAnimatedTickView *)self.accessoryView selected]; - } - return NO; -} - -@end diff --git a/emission/Example/Emission/ARTopMenuViewController.h b/emission/Example/Emission/ARTopMenuViewController.h deleted file mode 100644 index cbae1055bfc..00000000000 --- a/emission/Example/Emission/ARTopMenuViewController.h +++ /dev/null @@ -1,7 +0,0 @@ -#import - -@interface ARTopMenuViewController : UIViewController - -- (instancetype) initWithNavigationController:(UINavigationController *)controller; - -@end diff --git a/emission/Example/Emission/ARTopMenuViewController.m b/emission/Example/Emission/ARTopMenuViewController.m deleted file mode 100644 index 51bcc2ad405..00000000000 --- a/emission/Example/Emission/ARTopMenuViewController.m +++ /dev/null @@ -1,37 +0,0 @@ -#import "ARTopMenuViewController.h" -#import - -@interface ARTopMenuViewController () -@property (nonatomic, strong) UINavigationController *nav; -@property (nonatomic, strong) NSLayoutConstraint *statusBarVerticalConstraint; - -@end - -@implementation ARTopMenuViewController - -- (instancetype) initWithNavigationController:(UINavigationController *)controller -{ - self = [super init]; - if (!self) { return nil; } - - _nav = controller; - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - // Add the nav to our VC - [self.nav willMoveToParentViewController:self]; - [self addChildViewController:self.nav]; - [self.view addSubview:self.nav.view]; - [self.nav didMoveToParentViewController:self]; - [self addChildViewController:self.nav]; - - [self.nav.view alignTopEdgeWithView:self.view predicate:@"0"]; - [self.nav.view alignBottom:@"0" trailing:@"0" toView:self.view]; - [self.nav.view constrainWidthToView:self.view predicate:@"0"]; -} - -@end diff --git a/emission/Example/Emission/AppDelegate.h b/emission/Example/Emission/AppDelegate.h deleted file mode 100644 index 98a59aca993..00000000000 --- a/emission/Example/Emission/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - -@interface AppDelegate : UIResponder -@property (strong, nonatomic) UIWindow *window; -@property (nonatomic, strong) NSString *emissionLoadedFromString; - -// TODO: abstract into a switchboard? -- (UIViewController *)viewControllerForRoute:(NSString *)route; - -// Reloads Emission, and re-creates native modules etc -- (void)reloadEmission; -@end - diff --git a/emission/Example/Emission/AppDelegate.m b/emission/Example/Emission/AppDelegate.m deleted file mode 100644 index fc5c8fbd6b3..00000000000 --- a/emission/Example/Emission/AppDelegate.m +++ /dev/null @@ -1,437 +0,0 @@ -#import -#import - -#import "AppDelegate.h" -#import "ARDefaults.h" -#import "AppSetup.h" - -#import "ARTopMenuViewController.h" -#import "EigenLikeNavigationController.h" -#import "ARRootViewController.h" -#import "UnroutedViewController.h" - -#import -#import -#import -#import -#import -#import -#import - -#import "ARStorybookComponentViewController.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import "InternalWebViewController.h" -#import -#import -#import "AuthenticationManager.h" -#import "LoadingSpinner.h" - -#import - -// If you have the ID of a user and an access token for them, you can impersonate them by hardcoding those here. -// Obviously you should *never* check these in! - -static NSString *UserID = nil; -static NSString *UserAccessToken = nil; - -static BOOL -randomBOOL(void) -{ - return rand() % 2 == 1; -} - -@interface AppDelegate () -@property (nonatomic, strong) EigenLikeNavigationController *navigationController; -@property (nonatomic, strong) LoadingSpinner *spinner; -@end - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; -{ - // Sets all our default defaults - [ARDefaults setup]; - - AppSetup *setup = [AppSetup ambientSetup]; - NSString *service = setup.inStaging ? @"Emission-Staging" : @"Emission-Production"; - - BOOL isImpersonating = UserID && UserAccessToken; - AuthenticationManager *auth = isImpersonating ? nil : [[AuthenticationManager alloc] initWithService:service]; - self.spinner = [LoadingSpinner new]; - - ARRootViewController *rootVC = [ARRootViewController new]; - rootVC.authenticationManager = auth; - - self.navigationController = [[EigenLikeNavigationController alloc] initWithRootViewController:rootVC]; - - self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - self.window.backgroundColor = [UIColor whiteColor]; - self.window.rootViewController = [[ARTopMenuViewController alloc] initWithNavigationController:self.navigationController];; - [self.window makeKeyAndVisible]; - - BOOL isAuthenticated = isImpersonating || auth.isAuthenticated; - NSString *userID = isImpersonating ? UserID : auth.userID; - NSString *accessToken = isImpersonating ? UserAccessToken : auth.token; - - if (isAuthenticated) { - [self setupEmissionWithUserID:userID accessToken:accessToken keychainService:service]; - } else { - [self.spinner presentSpinnerOnViewController:rootVC title:@"Logging in" subtitle:nil completion:^{ - [auth presentAuthenticationPromptOnViewController:rootVC.presentedViewController completion:^{ - NSLog(@"Logged in successfully :)"); - [self setupEmissionWithUserID:[auth userID] accessToken:[auth token] keychainService:service]; - }]; - }]; - } - - return YES; -} - - -#pragma mark - Emission - -- (void)reloadEmission -{ - AppSetup *setup = [AppSetup ambientSetup]; - NSString *service = setup.inStaging ? @"Emission-Staging" : @"Emission-Production"; - - BOOL isImpersonating = UserID && UserAccessToken; - AuthenticationManager *auth = isImpersonating ? nil : [[AuthenticationManager alloc] initWithService:service]; - - NSString *userID = isImpersonating ? UserID : auth.userID; - NSString *accessToken = isImpersonating ? UserAccessToken : auth.token; - [self setupEmissionWithUserID:userID accessToken:accessToken keychainService:service]; -} - -- (void)setupEmissionWithUserID:(NSString *)userID accessToken:(NSString *)accessToken keychainService:(NSString *)service; -{ - AREmission *emission = nil; - - AppSetup *setup = [AppSetup ambientSetup]; - - EmissionKeys *keys = [[EmissionKeys alloc] init]; - -#if TARGET_IPHONE_SIMULATOR - NSString *sentryDSN = nil; -#else - // Only use sentry when on a phone - NSString *sentryDSN = [keys sentryProductionDSN]; - [self setupSentry:sentryDSN userID:userID]; -#endif - - AREmissionConfiguration *config = [[AREmissionConfiguration alloc] initWithUserID:userID - authenticationToken:accessToken - launchCount:2 // launches mod20 == 2 is the trigger for showing ratings prompt (eg, launch on 2, 22, 42, etc). - sentryDSN:sentryDSN - stripePublishableKey:[keys stripePublishableKey] - googleMapsAPIKey:[keys googleMapsAPIKey] - mapBoxAPIClientKey:[keys mapBoxAPIClientKey] - gravityURL:setup.gravityURL - metaphysicsURL:setup.metaphysicsURL - predictionURL:setup.predictionURL - userAgent:@"Emission Example" - env:setup.inStaging ? AREnvStaging : AREnvProduction - options:setup.options]; - - emission = [[AREmission alloc] initWithConfiguration:config packagerURL:setup.jsCodeLocation]; - [AREmission setSharedInstance:emission]; - [emission.bridge reload]; - - ARRootViewController *controller = (id)self.navigationController.topViewController; - [controller.tableView reloadData]; - - emission.APIModule.artistFollowStatusProvider = ^(NSString *artistID, RCTResponseSenderBlock block) { - NSNumber *following = @(randomBOOL()); - NSLog(@"Artist(%@).follow => %@", artistID, following); - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - block(@[[NSNull null], following]); - }); - }; - emission.APIModule.artistFollowStatusAssigner = ^(NSString *artistID, BOOL following, RCTResponseSenderBlock block) { - NSLog(@"Artist(%@).follow = %@", artistID, @(following)); - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ -// if (randomBOOL()) { - block(@[[NSNull null], @(following)]); -// } else { -// NSLog(@"Simulated follow request ‘failed’."); -// block(@[RCTJSErrorFromNSError([NSError errorWithDomain:@"Artsy" code:42 userInfo:nil]), @(!following)]); -// } - }); - }; - - emission.APIModule.geneFollowStatusProvider = ^(NSString *geneID, RCTResponseSenderBlock block) { - NSNumber *following = @(randomBOOL()); - NSLog(@"Gene(%@).follow => %@", geneID, following); - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - block(@[[NSNull null], following]); - }); - }; - - emission.APIModule.geneFollowStatusAssigner = ^(NSString *geneID, BOOL following, RCTResponseSenderBlock block) { - NSLog(@"Gene(%@).follow = %@", geneID, @(following)); - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - // if (randomBOOL()) { - block(@[[NSNull null], @(following)]); - // } else { - // NSLog(@"Simulated follow request ‘failed’."); - // block(@[RCTJSErrorFromNSError([NSError errorWithDomain:@"Artsy" code:42 userInfo:nil]), @(!following)]); - // } - }); - }; - - emission.APIModule.notificationReadStatusAssigner = ^(RCTResponseSenderBlock block) { - NSLog(@"notificationReadStatusAssigner from APIModule called"); - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - block(@[[NSNull null]]); - }); - }; - - emission.APIModule.augmentedRealityVIRPresenter = ^(NSString *imgUrl, CGFloat widthIn, CGFloat heightIn, NSString *artworkSlug, NSString *artworkId) { - UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"VR!" message:[NSString stringWithFormat:@"slug: %@, width: %f, height: %f", artworkSlug, widthIn, heightIn] preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"ok" style:UIAlertActionStyleDefault handler:nil]; - [alert addAction:defaultAction]; - id controller = self.navigationController; - [controller presentViewController:alert animated:YES completion:nil]; - }; - - emission.switchBoardModule.updateShouldHideBackButton = ^(BOOL shouldHide) { - dispatch_async(dispatch_get_main_queue(), ^{ - [[self.navigationController backButton] setHidden:shouldHide]; - }); - }; - - emission.switchBoardModule.presentNavigationViewController = ^(UIViewController * _Nonnull fromViewController, - NSString * _Nonnull route) { - if ([fromViewController isKindOfClass:ARStorybookComponentViewController.class]) { - NSLog(@"Route push - %@", route); - return; - } - [fromViewController.navigationController pushViewController:[self viewControllerForRoute:route] animated:YES]; - }; - - emission.switchBoardModule.presentModalViewController = ^(UIViewController * _Nonnull fromViewController, - NSString * _Nonnull route) { - if ([fromViewController isKindOfClass:ARStorybookComponentViewController.class]) { - NSLog(@"Route modal - %@", route); - return; - } - UIViewController *viewController = [self viewControllerForRoute:route]; - UINavigationController *navigationController = [[EigenLikeNavigationController alloc] initWithRootViewController:viewController]; - navigationController.navigationBarHidden = NO; - viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone - target:self - action:@selector(dismissModalViewController)]; - // If the source of this dismiss call is itself being dismissed, then present form our own navigation controller. - // Otherwise, present from _its_ navigation controller. - if (fromViewController.isBeingDismissed || fromViewController.navigationController.isBeingDismissed) { - [self.navigationController presentViewController:navigationController animated:YES completion:nil]; - } else { - [fromViewController.navigationController presentViewController:navigationController animated:YES completion:nil]; - } - }; - - emission.eventsModule.eventOccurred = ^(NSDictionary * _Nonnull info) { - NSLog(@"[Event] - %@", info); - }; - - emission.refineModule.triggerRefine = ^(NSDictionary *_Nonnull initial, NSDictionary *_Nonnull current, UIViewController *_Nonnull controller, RCTPromiseResolveBlock resolve, RCTPromiseRejectBlock reject) { - sleep(1); - resolve(@{ @"sort": @"-year", @"medium": @"design", @"selectedPrice": @"0-50000" }); - }; - - emission.worksForYouModule.setNotificationsCount = ^(NSInteger count) { - sleep(1); - NSLog(@"Set notifications count: %@", @(count)); - }; -} - -- (NSString *)valueForKey:(NSString *)key - fromQueryItems:(NSArray *)queryItems -{ - NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name=%@", key]; - NSURLQueryItem *queryItem = [[queryItems - filteredArrayUsingPredicate:predicate] - firstObject]; - return queryItem.value; -} - -- (UIViewController *)viewControllerForRoute:(NSString *)route; -{ - UIViewController *viewController = nil; - - - BOOL isShow = [route hasPrefix:@"/show/"] || [route hasPrefix:@"show/"]; - BOOL isCityBMWList = [route hasPrefix:@"/city-bmw-list"]; - BOOL isCityFairList = [route hasPrefix:@"/city-fair/"]; - BOOL isCitySavedList = [route hasPrefix:@"/city-save/"]; - BOOL isCityList = [route hasPrefix:@"/city/"]; - - if ([route hasPrefix:@"ios-settings"]) { - viewController = [[ARMyProfileComponentViewController alloc] init]; - - } else if ([route hasPrefix:@"privacy-request"]) { - viewController = [[ARPrivacyRequestComponentViewController alloc] init]; - - } else if ([route hasPrefix:@"/artist/"] && [route componentsSeparatedByString:@"/"].count == 3) { - NSString *artistID = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARArtistComponentViewController alloc] initWithArtistID:artistID]; - - } else if ([route hasPrefix:@"/artwork/"]) { - NSString *artworkID = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARArtworkComponentViewController alloc] initWithArtworkID:artworkID]; - - } else if ([route hasPrefix:@"/partner-locations"]) { - NSString *partnerID = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARPartnerLocationsComponentViewController alloc] initWithPartnerID:partnerID]; - - } else if ([route hasPrefix:@"/partner"]) { - NSString *partnerID = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARPartnerComponentViewController alloc] initWithPartnerID:partnerID]; - - } else if ([route hasPrefix:@"/gene/"] || [route hasPrefix:@"gene/"]) { - NSString *geneID = [[[[route componentsSeparatedByString:@"/"] lastObject] componentsSeparatedByString:@"?"] firstObject]; - NSURLComponents *components = [NSURLComponents componentsWithString:route]; - NSMutableDictionary *params = [NSMutableDictionary dictionary]; - for ( NSURLQueryItem *item in components.queryItems) { - params[item.name] = item.value; - } - viewController = [[ARGeneComponentViewController alloc] initWithGeneID:geneID refineSettings:params]; - - } else if ([route hasPrefix:@"/conversation/"] || [route hasPrefix:@"conversation/"]) { - NSString *conversationID = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARConversationComponentViewController alloc] initWithConversationID:conversationID]; - - } else if ([route isEqualToString:@"/"]) { - viewController = [[ARHomeComponentViewController alloc] initWithSelectedArtist:nil tab:ARHomeTabArtists emission:nil]; - - } else if ([route hasPrefix:@"/works-for-you/"] || [route hasPrefix:@"works-for-you"]) { - NSURLComponents *components = [[NSURLComponents alloc] initWithString:route]; - NSString *artistID = [self valueForKey:@"artist_id" fromQueryItems:components.queryItems]; - viewController = [[ARHomeComponentViewController alloc] initWithSelectedArtist:artistID tab:ARHomeTabArtists emission:nil]; - - } else if ([route hasSuffix:@"entity=gallery"]){ - return [[UnroutedViewController alloc] initWithRoute:route]; - - } else if ([route hasSuffix:@"entity=fair"]) { - NSString *fairID = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARFairComponentViewController alloc] initWithFairID:fairID]; - - } else if ([route hasSuffix:@"entity=fair-booth"]) { - NSString *fairBoothID = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARFairBoothComponentViewController alloc] initWithFairBoothID:fairBoothID]; - - } else if ([route hasPrefix:@"/fair"] && [route hasSuffix:@"/artworks"]) { - NSString *fairID = [[route componentsSeparatedByString:@"/"] objectAtIndex:2]; - viewController = [[ARFairArtworksComponentViewController alloc] initWithFairID:fairID]; - - } else if ([route hasPrefix:@"/fair"] && [route hasSuffix:@"/artists"]) { - NSString *fairID = [[route componentsSeparatedByString:@"/"] objectAtIndex:2]; - viewController = [[ARFairArtistsComponentViewController alloc] initWithFairID:fairID]; - - } else if ([route hasPrefix:@"/fair"] && [route hasSuffix:@"/exhibitors"]) { - NSString *fairID = [[route componentsSeparatedByString:@"/"] objectAtIndex:2]; - viewController = [[ARFairExhibitorsComponentViewController alloc] initWithFairID:fairID]; - - } else if ([route hasPrefix:@"/fair"] && [route hasSuffix:@"/info"]) { - NSString *fairID = [[route componentsSeparatedByString:@"/"] objectAtIndex:2]; - viewController = [[ARFairMoreInfoComponentViewController alloc] initWithFairID:fairID]; - - } else if ([route hasPrefix:@"/fair"] && [route hasSuffix:@"/bmw-sponsored-content"]) { - NSString *fairID = [[route componentsSeparatedByString:@"/"] objectAtIndex:2]; - viewController = [[ARFairBMWArtActivationComponentViewController alloc] initWithFairID:fairID]; - - } else if ([route hasSuffix:@"entity=fair-booth"]) { - NSString *fairBoothID = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARFairBoothComponentViewController alloc] initWithFairBoothID:fairBoothID]; - - } else if (isShow && [route hasSuffix:@"/artworks"]) { - NSString *showID = [[route componentsSeparatedByString:@"/"] objectAtIndex:2]; - viewController = [[ARShowArtworksComponentViewController alloc] initWithShowID:showID]; - - } else if (isShow && [route hasSuffix:@"/artists"]) { - NSString *showID = [[route componentsSeparatedByString:@"/"] objectAtIndex:2]; - viewController = [[ARShowArtistsComponentViewController alloc] initWithShowID:showID]; - - } else if (isShow && [route hasSuffix:@"/info"]) { - NSString *showID = [[route componentsSeparatedByString:@"/"] objectAtIndex:2]; - viewController = [[ARShowMoreInfoComponentViewController alloc] initWithShowID:showID]; - - } else if (isCityFairList) { - NSString *citySlug = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARCityFairListComponentViewController alloc] initWithCitySlug:citySlug]; - - } else if (isCitySavedList) { - NSString *citySlug = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARCitySavedListComponentViewController alloc] initWithCitySlug:citySlug]; - - } else if (isCityList) { - NSString *citySlug = [[route componentsSeparatedByString:@"/"] objectAtIndex:2]; - NSString *section = [[route componentsSeparatedByString:@"/"] objectAtIndex:3]; - viewController = [[ARCitySectionListComponentViewController alloc] initWithCitySlug:citySlug section:section]; - - } else if (isShow) { - NSString *showID = [route componentsSeparatedByString:@"/"].lastObject; - viewController = [[ARShowComponentViewController alloc] initWithShowID:showID]; - - } else if (isCityBMWList) { - NSString *citySlug = [[route componentsSeparatedByString:@"/"] lastObject]; - viewController = [[ARCityBMWListComponentViewController alloc] initWithCitySlug:citySlug]; - - } else if ([route isEqualToString:@"/artwork-classifications"]) { - viewController = [[ARArtworkAttributionClassFAQViewController alloc] init]; - } else { - viewController = [[UnroutedViewController alloc] initWithRoute:route]; - } - - return viewController; -} - -- (void)dismissModalViewController; -{ - UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; - [navigationController dismissViewControllerAnimated:YES completion:nil]; -} - -- (void)setupSentry:(NSString *)sentryDSN userID:(NSString *)userID -{ - NSError *error = nil; - SentryClient *client = [[SentryClient alloc] initWithDsn:sentryDSN didFailWithError:&error]; - NSAssert(error == nil, @"Unable to initialize a SentryClient SDK: %@", error); - error = nil; - [client startCrashHandlerWithError:&error]; - NSAssert(error == nil, @"Unable to start the Sentry crash handler: %@", error); - [SentryClient setSharedClient:client]; - - // Log you in - SentryUser *user = [[SentryUser alloc] initWithUserId:userID]; - SentryClient.sharedClient.user = user; - -} - -@end diff --git a/emission/Example/Emission/AppSetup.h b/emission/Example/Emission/AppSetup.h deleted file mode 100644 index 1adca9d89c7..00000000000 --- a/emission/Example/Emission/AppSetup.h +++ /dev/null @@ -1,28 +0,0 @@ -#import - -@interface AppSetup: NSObject - -+ (instancetype)ambientSetup; - -- (instancetype)init NS_UNAVAILABLE; -+ (instancetype)new NS_UNAVAILABLE; - -@property (nonatomic, readonly) BOOL inStaging; - -@property (nonatomic, readonly) BOOL usingRNP; -@property (nonatomic, readonly) BOOL usingMaster; -@property (nonatomic, readonly) BOOL usingPRBuild; - -@property (nonatomic, readonly) BOOL inSimulator; - -@property (copy, nonatomic, readonly) NSString *gravityURL; -@property (copy, nonatomic, readonly) NSString *metaphysicsURL; -@property (copy, nonatomic, readonly) NSString *predictionURL; -@property (copy, nonatomic, readonly) NSString *packagerURL; - -@property (nonatomic, strong, readonly) NSString *emissionLoadedFromString; -@property (nonatomic, strong, readonly) NSURL *jsCodeLocation; - -@property (nonatomic, strong, readonly) NSDictionary *options; - -@end diff --git a/emission/Example/Emission/AppSetup.m b/emission/Example/Emission/AppSetup.m deleted file mode 100644 index 381d9d718f1..00000000000 --- a/emission/Example/Emission/AppSetup.m +++ /dev/null @@ -1,92 +0,0 @@ -#import - -#import "ARDefaults.h" -#import "AppSetup.h" -#import -#import "ARLabOptions.h" - -@implementation AppSetup - -+ (instancetype)ambientSetup -{ - return [[self.class alloc] initWithAmbientContext]; -} - -- (instancetype)initWithAmbientContext -{ - self = [super init]; - if (self) { - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - NSString *packagerURL = [defaults stringForKey:ARRNPackagerHostDefault];; - _gravityURL = @"https://api.artsy.net"; - _metaphysicsURL = @"https://metaphysics-production.artsy.net/v2"; - _predictionURL = @"https://live.artsy.net"; - - BOOL useStaging = [defaults boolForKey:ARUseStagingDefault]; - if (useStaging) { - _gravityURL = [defaults stringForKey:ARStagingAPIURLDefault]; - _metaphysicsURL = [defaults stringForKey:ARStagingMetaphysicsURLDefault]; - _predictionURL = [defaults stringForKey:ARStagingPredictionURLDefault]; - } - - BOOL runningUnitTests = NSClassFromString(@"XCTest") != Nil; - BOOL runningCITests = NO; - BOOL useMaster = ![[KSCrash sharedInstance] crashedLastLaunch]; - BOOL usePRBuild = NO; - BOOL useRNP = NO; - BOOL isSimulator = NO; - -#ifdef RUNNING_ON_CI - runningCITests = YES; -#endif - -#if TARGET_IPHONE_SIMULATOR - isSimulator = !runningCITests; // Don't use RNP with unit tests -#endif - - // Comment these out to set yourself up as though you were running the beta - usePRBuild = [defaults boolForKey:ARUsePREmissionDefault]; - useMaster = useMaster || isSimulator; - useRNP = isSimulator || [defaults boolForKey:ARForceUseRNPDefault]; - - if (runningUnitTests) { - if (runningCITests) { - // nop on CI, we'll fall back to the bundled Emission JS which we've just built with `yarn bundle:native-tests` - NSLog(@"ASH I AM HERE"); - } else { - NSString *rnpString = [NSString stringWithFormat:@"http://%@:8081/Example/Emission/index.tests.ios.bundle?platform=ios&dev=true", packagerURL]; - - _jsCodeLocation = [NSURL URLWithString:rnpString]; - _emissionLoadedFromString = [NSString stringWithFormat:@"Using Unit Test RNP from %@", _jsCodeLocation.host]; - } - } else if (useRNP) { - NSString *rnpString = [NSString stringWithFormat:@"http://%@:8081/Example/Emission/index.ios.bundle?platform=ios&dev=true", packagerURL]; - - _jsCodeLocation = [NSURL URLWithString:rnpString]; - _emissionLoadedFromString = [NSString stringWithFormat:@"Using RNP from %@", _jsCodeLocation.host]; - } - - // Fall back to the bundled Emission JS for release - if (!_jsCodeLocation) { - NSBundle *emissionBundle = [NSBundle bundleForClass:AREmission.class]; - - _jsCodeLocation = [emissionBundle URLForResource:@"Emission" withExtension:@"js"]; - _emissionLoadedFromString = @"Using bundled JS"; - NSLog(@"%@", _emissionLoadedFromString); - } - - _inSimulator = isSimulator; - _inStaging = useStaging; - - _usingMaster = useMaster; - _usingRNP = useRNP; - _usingPRBuild = usePRBuild; - - _options = [ARLabOptions labOptionsMap]; - } - - return self; -} - -@end diff --git a/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Contents.json b/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 307e83865c1..00000000000 --- a/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-Small@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "iphone_settings_29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-Small-40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "iphone_spotlight_40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "iphone_app_60@3x.png", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-Small@2x-1.png", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-Small-40@2x-1.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "ipad_app_76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "ipad_app_76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "ipad_pro_app_83@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Emission-itunes.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Emission-itunes.png b/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Emission-itunes.png deleted file mode 100644 index 97400acf013d3cb4ab7f7b041ce45fdf226c7168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257105 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�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
-YqJ;()vN&%!a2U&iowf9r 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 diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/e2aca009d3d8268edf6ccd63d15fdbd7.jpg&width=240&height=206&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/e2aca009d3d8268edf6ccd63d15fdbd7.jpg&width=240&height=206&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index c53c6504f4f6e04989bf0487d6d97f4df3381778..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30899 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 E*&CmnIsgCw diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/f7d62b3844dc44baa6afb3c255a021a2.jpg&width=240&height=306&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/f7d62b3844dc44baa6afb3c255a021a2.jpg&width=240&height=306&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index da82a72dc32833c92cb6ccff70ed3b5e4d186e5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22871 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 - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/emission/Example/EmissionTests/OpaqueImageViewComponentTests.m b/emission/Example/EmissionTests/OpaqueImageViewComponentTests.m deleted file mode 100644 index a1c62b70f6e..00000000000 --- a/emission/Example/EmissionTests/OpaqueImageViewComponentTests.m +++ /dev/null @@ -1,87 +0,0 @@ -#import "TestHelper.h" - -#import - - -SpecBegin(OpaqueImageViewComponent) - -describe(@"OpaqueImageViewComponent", ^{ - __block TestHelper *helper = nil; - __block NSDictionary *props = nil; - - beforeEach(^{ - helper = TestHelper.sharedHelper; - - NSDictionary *artwork = helper.artworks[0]; - props = @{ - @"containerStyle": [@{ - @"backgroundColor": @"red", - @"alignSelf": @"stretch", - } mutableCopy], - @"imageView": [@{ - @"imageURL": [artwork valueForKeyPath:@"image.resized.url"], - @"aspectRatio": [artwork valueForKeyPath:@"image.aspect_ratio"], - } mutableCopy], - }; - }); - - describe(@"with row layout", ^{ - beforeEach(^{ - props[@"containerStyle"][@"flexDirection"] = @"row"; - }); - - // Should not show any of the red of the container. - it(@"maintains the aspect ratio when automatically sizing to fill the available size", ^{ - props[@"imageView"][@"style"] = @{ @"flex": @1 }; - [helper runReactTestInRecordMode:NO module:@"OpaqueImageView" props:props]; - }); - - // Should show red of the container next to it. - it(@"maintains the aspect ration when given an explicit width", ^{ - props[@"imageView"][@"style"] = @{ @"width": @100 }; - [helper runReactTestInRecordMode:NO module:@"OpaqueImageView" props:props]; - }); - - // Should show red of the container next to it. - it(@"maintains the aspect ration when given an explicit height", ^{ - props[@"imageView"][@"style"] = @{ @"height": @100 }; - [helper runReactTestInRecordMode:NO module:@"OpaqueImageView" props:props]; - }); - }); - - describe(@"with column layout", ^{ - beforeEach(^{ - props[@"containerStyle"][@"flexDirection"] = @"column"; - }); - - // FIXME: This test is hanging, not sure why. -// // Should not show any of the red of the container. -// it(@"maintains the aspect ratio when automatically sizing to fill the available size", ^{ -// props[@"imageView"][@"style"] = @{ @"flex": @1 }; -// [helper runReactTestInRecordMode:YES module:@"OpaqueImageView" props:props]; -// }); - - // Should show red of the container below it. - it(@"maintains the aspect ration when given an explicit width", ^{ - // FIXME This shows as if it’s still a row, might be solved with RN 0.25-rc - props[@"containerStyle"][@"flex"] = @1; - props[@"containerStyle"][@"width"] = @100; - - props[@"imageView"][@"style"] = @{ @"width": @100 }; - [helper runReactTestInRecordMode:NO module:@"OpaqueImageView" props:props]; - }); - - // FIXME: I’m not even sure right now what this one should look like. -// // -// // Should show red of the container below it. -// xit(@"maintains the aspect ratio when given an explicit height", ^{ -// // props[@"containerStyle"][@"flex"] = @1; -// // props[@"containerStyle"][@"width"] = @200x; -// props[@"imageView"][@"style"] = @{ @"height": @100 }; -// [helper runReactTestInRecordMode:YES module:@"OpaqueImageView" props:props]; -// }); - }); -}); - -SpecEnd - diff --git a/emission/Example/EmissionTests/RCTTest/LICENSE b/emission/Example/EmissionTests/RCTTest/LICENSE deleted file mode 100644 index b96dcb0480a..00000000000 --- a/emission/Example/EmissionTests/RCTTest/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Facebook, Inc. and its affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/emission/Example/EmissionTests/RCTTest/RCTSnapshotManager.h b/emission/Example/EmissionTests/RCTTest/RCTSnapshotManager.h deleted file mode 100644 index 24486906b63..00000000000 --- a/emission/Example/EmissionTests/RCTTest/RCTSnapshotManager.h +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -@interface RCTSnapshotManager : RCTViewManager - -@end diff --git a/emission/Example/EmissionTests/RCTTest/RCTSnapshotManager.m b/emission/Example/EmissionTests/RCTTest/RCTSnapshotManager.m deleted file mode 100644 index e74cf9c3005..00000000000 --- a/emission/Example/EmissionTests/RCTTest/RCTSnapshotManager.m +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "RCTSnapshotManager.h" - -@interface RCTSnapshotView : UIView - -@property (nonatomic, copy) RCTDirectEventBlock onSnapshotReady; -@property (nonatomic, copy) NSString *testIdentifier; - -@end - -@implementation RCTSnapshotView - -- (void)setTestIdentifier:(NSString *)testIdentifier -{ - if (![_testIdentifier isEqualToString:testIdentifier]) { - _testIdentifier = [testIdentifier copy]; - dispatch_async(dispatch_get_main_queue(), ^{ - if (self.onSnapshotReady) { - self.onSnapshotReady(@{@"testIdentifier" : self.testIdentifier}); - } - }); - } -} - -@end - - -@implementation RCTSnapshotManager - -RCT_EXPORT_MODULE() - -- (UIView *)view -{ - return [RCTSnapshotView new]; -} - -RCT_EXPORT_VIEW_PROPERTY(testIdentifier, NSString) -RCT_EXPORT_VIEW_PROPERTY(onSnapshotReady, RCTDirectEventBlock) - -@end diff --git a/emission/Example/EmissionTests/RCTTest/RCTTestModule.h b/emission/Example/EmissionTests/RCTTest/RCTTestModule.h deleted file mode 100644 index 7bf93034e24..00000000000 --- a/emission/Example/EmissionTests/RCTTest/RCTTestModule.h +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -#import -#import - -typedef NS_ENUM(NSInteger, RCTTestStatus) { - RCTTestStatusPending = 0, - RCTTestStatusPassed, - RCTTestStatusFailed -}; - -@class FBSnapshotTestController; - -@interface RCTTestModule : NSObject - -/** - * The snapshot test controller for this module. - */ -@property (nonatomic, strong) FBSnapshotTestController *controller; - -/** - * This is the view to be snapshotted. - */ -@property (nonatomic, strong) UIView *view; - -/** - * This is used to give meaningful names to snapshot image files. - */ -@property (nonatomic, assign) SEL testSelector; - -/** - * This is polled while running the runloop until true. - */ -@property (nonatomic, readonly) RCTTestStatus status; - -@property (nonatomic, copy) NSString *testSuffix; - -@end diff --git a/emission/Example/EmissionTests/RCTTest/RCTTestModule.m b/emission/Example/EmissionTests/RCTTest/RCTTestModule.m deleted file mode 100644 index dd2424d31dd..00000000000 --- a/emission/Example/EmissionTests/RCTTest/RCTTestModule.m +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "RCTTestModule.h" - -#import -#import -#import -#import - -#import "FBSnapshotTestController.h" - -@implementation RCTTestModule { - NSMutableDictionary *_snapshotCounter; -} - -@synthesize bridge = _bridge; - -RCT_EXPORT_MODULE() - -- (dispatch_queue_t)methodQueue -{ - return _bridge.uiManager.methodQueue; -} - -RCT_EXPORT_METHOD(verifySnapshot:(RCTResponseSenderBlock)callback) -{ - RCTAssert(_controller != nil, @"No snapshot controller configured."); - - [_bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) { - NSString *testName = NSStringFromSelector(self->_testSelector); - if (!self->_snapshotCounter) { - self->_snapshotCounter = [NSMutableDictionary new]; - } - - NSNumber *counter = @([self->_snapshotCounter[testName] integerValue] + 1); - self->_snapshotCounter[testName] = counter; - - NSError *error = nil; - NSString *identifier = [counter stringValue]; - if (self->_testSuffix) { - identifier = [identifier stringByAppendingString:self->_testSuffix]; - } - BOOL success = [self->_controller compareSnapshotOfView:self->_view - selector:self->_testSelector - identifier:identifier - error:&error]; - if (!success) { - RCTLogInfo(@"Failed to verify snapshot %@ (error: %@)", identifier, error); - } - callback(@[@(success)]); - }]; -} - -RCT_EXPORT_METHOD(sendAppEvent:(NSString *)name body:(nullable id)body) -{ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [_bridge.eventDispatcher sendAppEventWithName:name body:body]; -#pragma clang diagnostic pop -} - -RCT_REMAP_METHOD(shouldResolve, shouldResolve_resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) -{ - resolve(@1); -} - -RCT_REMAP_METHOD(shouldReject, shouldReject_resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) -{ - reject(nil, nil, nil); -} - -RCT_EXPORT_METHOD(markTestCompleted) -{ - [self markTestPassed:YES]; -} - -RCT_EXPORT_METHOD(markTestPassed:(BOOL)success) -{ - [_bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, __unused NSDictionary *viewRegistry) { - self->_status = success ? RCTTestStatusPassed : RCTTestStatusFailed; - }]; -} - -@end diff --git a/emission/Example/EmissionTests/RCTTest/RCTTestRunner.h b/emission/Example/EmissionTests/RCTTest/RCTTestRunner.h deleted file mode 100644 index 9a50e94b2c9..00000000000 --- a/emission/Example/EmissionTests/RCTTest/RCTTestRunner.h +++ /dev/null @@ -1,138 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -#import - -#ifndef FB_REFERENCE_IMAGE_DIR -#define FB_REFERENCE_IMAGE_DIR "" -#endif - -#define RCT_RUN_RUNLOOP_WHILE(CONDITION) \ -{ \ - NSDate *timeout = [NSDate dateWithTimeIntervalSinceNow:30]; \ - NSRunLoop *runloop = [NSRunLoop mainRunLoop]; \ - while ((CONDITION)) { \ - [runloop runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.01]]; \ - if ([timeout timeIntervalSinceNow] <= 0) { \ - XCTFail(@"Runloop timed out before condition was met"); \ - break; \ - } \ - } \ -} - -/** - * Use the RCTInitRunnerForApp macro for typical usage. See FBSnapshotTestCase.h for more information - * on how to configure the snapshotting system. - */ -#define RCTInitRunnerForApp(app__, moduleProvider__, scriptURL__) \ -[[RCTTestRunner alloc] initWithApp:(app__) \ - referenceDirectory:@FB_REFERENCE_IMAGE_DIR \ - moduleProvider:(moduleProvider__) \ - scriptURL: scriptURL__] - -@protocol RCTBridgeModule; -@class RCTBridge; - -@class RCTRootView; - -@interface RCTTestRunner : NSObject - -/** - * Controls the mode snapshots are run in. If set to true, new snapshots are written to disk, - * otherwise, the UI will be compared to the existing snapshot. - */ -@property (nonatomic, assign) BOOL recordMode; - -@property (nonatomic, assign, readwrite) BOOL useBundler; - -@property (nonatomic, assign, readwrite) BOOL useJSDebugger; - -@property (nonatomic, copy) NSString *testSuffix; - -@property (nonatomic, readonly) NSURL *scriptURL; - -/** - * Initialize a runner. It's recommended that you use the RCTInitRunnerForApp - * macro instead of calling this directly. - * - * @param app The path to the app bundle without suffixes, e.g. IntegrationTests/IntegrationTestsApp - * @param referenceDirectory The path for snapshot references images. - * @param block A block that returns an array of extra modules to be used by the test runner. - */ -- (instancetype)initWithApp:(NSString *)app - referenceDirectory:(NSString *)referenceDirectory - moduleProvider:(RCTBridgeModuleListProvider)block - scriptURL:(NSURL *)scriptURL NS_DESIGNATED_INITIALIZER; - -/** - * Simplest runTest function simply mounts the specified JS module with no - * initialProps and waits for it to call - * - * RCTTestModule.markTestCompleted() - * - * JS errors/exceptions and timeouts will fail the test. Snapshot tests call - * RCTTestModule.verifySnapshot whenever they want to verify what has been - * rendered (typically via requestAnimationFrame to make sure the latest state - * has been rendered in native. - * - * @param test Selector of the test, usually just `_cmd`. - * @param moduleName Name of the JS component as registered by `AppRegistry.registerComponent` in JS. - */ -- (void)runTest:(SEL)test module:(NSString *)moduleName; - -/** - * Same as runTest:, but allows for passing initialProps for providing mock data - * or requesting different behaviors, configurationBlock provides arbitrary logic for the hosting - * root view manipulation. - * - * @param test Selector of the test, usually just `_cmd`. - * @param moduleName Name of the JS component as registered by `AppRegistry.registerComponent` in JS. - * @param initialProps props that are passed into the component when rendered. - * @param configurationBlock A block that takes the hosting root view and performs arbitrary manipulation after its creation. - */ -- (void)runTest:(SEL)test module:(NSString *)moduleName - initialProps:(NSDictionary *)initialProps -configurationBlock:(void(^)(RCTRootView *rootView))configurationBlock; - -/** - * Same as runTest:, but allows for passing initialProps for providing mock data - * or requesting different behaviors, configurationBlock provides arbitrary logic for the hosting - * root view manipulation, and expectErrorRegex verifies that the error you expected was thrown. - * - * @param test Selector of the test, usually just `_cmd`. - * @param moduleName Name of the JS component as registered by `AppRegistry.registerComponent` in JS. - * @param initialProps props that are passed into the component when rendered. - * @param configurationBlock A block that takes the hosting root view and performs arbitrary manipulation after its creation. - * @param expectErrorRegex A regex that must match the error thrown. If no error is thrown, the test fails. - */ -- (void)runTest:(SEL)test module:(NSString *)moduleName - initialProps:(NSDictionary *)initialProps -configurationBlock:(void(^)(RCTRootView *rootView))configurationBlock -expectErrorRegex:(NSString *)expectErrorRegex; - -/** - * Same as runTest:, but allows for passing initialProps for providing mock data - * or requesting different behaviors, configurationBlock provides arbitrary logic for the hosting - * root view manipulation, and expectErrorBlock provides arbitrary - * logic for processing errors (nil will cause any error to fail the test). - * - * @param test Selector of the test, usually just `_cmd`. - * @param moduleName Name of the JS component as registered by `AppRegistry.registerComponent` in JS. - * @param initialProps props that are passed into the component when rendered. - * @param configurationBlock A block that takes the hosting root view and performs arbitrary manipulation after its creation. - * @param expectErrorBlock A block that takes the error message and returns NO to fail the test. - */ -- (void)runTest:(SEL)test module:(NSString *)moduleName - initialProps:(NSDictionary *)initialProps -configurationBlock:(void(^)(RCTRootView *rootView))configurationBlock -expectErrorBlock:(BOOL(^)(NSString *error))expectErrorBlock; - -@end diff --git a/emission/Example/EmissionTests/RCTTest/RCTTestRunner.m b/emission/Example/EmissionTests/RCTTest/RCTTestRunner.m deleted file mode 100644 index 91adbfca81b..00000000000 --- a/emission/Example/EmissionTests/RCTTest/RCTTestRunner.m +++ /dev/null @@ -1,197 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "RCTTestRunner.h" - -#import -#import -#import -#import -#import -#import - -#import -#import "RCTTestModule.h" - -static const NSTimeInterval kTestTimeoutSeconds = 120; - -@implementation RCTTestRunner -{ - FBSnapshotTestController *_testController; - RCTBridgeModuleListProvider _moduleProvider; - NSString *_appPath; -} - -- (instancetype)initWithApp:(NSString *)app - referenceDirectory:(NSString *)referenceDirectory - moduleProvider:(RCTBridgeModuleListProvider)block - scriptURL:(NSURL *)scriptURL -{ - RCTAssertParam(app); - RCTAssertParam(referenceDirectory); - - if ((self = [super init])) { - if (!referenceDirectory.length) { - referenceDirectory = [[NSBundle bundleForClass:self.class].resourcePath stringByAppendingPathComponent:@"ReferenceImages"]; - } - - NSString *sanitizedAppName = [app stringByReplacingOccurrencesOfString:@"/" withString:@"-"]; - sanitizedAppName = [sanitizedAppName stringByReplacingOccurrencesOfString:@"\\" withString:@"-"]; - _testController = [[FBSnapshotTestController alloc] initWithTestName:sanitizedAppName]; - _testController.referenceImagesDirectory = referenceDirectory; - _moduleProvider = [block copy]; - _appPath = app; - - if (scriptURL != nil) { - _scriptURL = scriptURL; - } else { - [self updateScript]; - } - } - return self; -} - -RCT_NOT_IMPLEMENTED(- (instancetype)init) - -- (void)updateScript -{ - if (getenv("CI_USE_PACKAGER") || _useBundler) { - _scriptURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://localhost:8081/%@.bundle?platform=ios&dev=true", _appPath]]; - } else { - _scriptURL = [[NSBundle bundleForClass:[RCTBridge class]] URLForResource:@"main" withExtension:@"jsbundle"]; - } - RCTAssert(_scriptURL != nil, @"No scriptURL set"); -} - -- (void)setRecordMode:(BOOL)recordMode -{ - _testController.recordMode = recordMode; -} - -- (BOOL)recordMode -{ - return _testController.recordMode; -} - -- (void)setUseBundler:(BOOL)useBundler -{ - _useBundler = useBundler; - [self updateScript]; -} - -- (void)runTest:(SEL)test module:(NSString *)moduleName -{ - [self runTest:test module:moduleName initialProps:nil configurationBlock:nil expectErrorBlock:nil]; -} - -- (void)runTest:(SEL)test module:(NSString *)moduleName - initialProps:(NSDictionary *)initialProps -configurationBlock:(void(^)(RCTRootView *rootView))configurationBlock -{ - [self runTest:test module:moduleName initialProps:initialProps configurationBlock:configurationBlock expectErrorBlock:nil]; -} - -- (void)runTest:(SEL)test module:(NSString *)moduleName - initialProps:(NSDictionary *)initialProps -configurationBlock:(void(^)(RCTRootView *rootView))configurationBlock -expectErrorRegex:(NSString *)errorRegex -{ - BOOL(^expectErrorBlock)(NSString *error) = ^BOOL(NSString *error){ - return [error rangeOfString:errorRegex options:NSRegularExpressionSearch].location != NSNotFound; - }; - - [self runTest:test module:moduleName initialProps:initialProps configurationBlock:configurationBlock expectErrorBlock:expectErrorBlock]; -} - -- (void)runTest:(SEL)test module:(NSString *)moduleName - initialProps:(NSDictionary *)initialProps -configurationBlock:(void(^)(RCTRootView *rootView))configurationBlock -expectErrorBlock:(BOOL(^)(NSString *error))expectErrorBlock -{ - __weak RCTBridge *batchedBridge; - - @autoreleasepool { - __block NSMutableArray *errors = nil; - RCTLogFunction defaultLogFunction = RCTGetLogFunction(); - RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - defaultLogFunction(level, source, fileName, lineNumber, message); - if (level >= RCTLogLevelError) { - if (errors == nil) { - errors = [NSMutableArray new]; - } - [errors addObject:message]; - } - }); - - RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:_scriptURL - moduleProvider:_moduleProvider - launchOptions:nil]; - [bridge.devSettings setIsDebuggingRemotely:_useJSDebugger]; - batchedBridge = [bridge batchedBridge]; - - RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:moduleName initialProperties:initialProps]; -#if TARGET_OS_TV - rootView.frame = CGRectMake(0, 0, 1920, 1080); // Standard screen size for tvOS -#else - rootView.frame = CGRectMake(0, 0, 320, 2000); // Constant size for testing on multiple devices -#endif - - RCTTestModule *testModule = [rootView.bridge moduleForClass:[RCTTestModule class]]; - RCTAssert(_testController != nil, @"_testController should not be nil"); - testModule.controller = _testController; - testModule.testSelector = test; - testModule.testSuffix = _testSuffix; - testModule.view = rootView; - - UIViewController *vc = RCTSharedApplication().delegate.window.rootViewController; - vc.view = [UIView new]; - [vc.view addSubview:rootView]; // Add as subview so it doesn't get resized - - if (configurationBlock) { - configurationBlock(rootView); - } - - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:kTestTimeoutSeconds]; - while (date.timeIntervalSinceNow > 0 && testModule.status == RCTTestStatusPending && errors == nil) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - } - - [rootView removeFromSuperview]; - - RCTSetLogFunction(defaultLogFunction); - -#if RCT_DEV - NSArray *nonLayoutSubviews = [vc.view.subviews filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id subview, NSDictionary *bindings) { - return ![NSStringFromClass([subview class]) isEqualToString:@"_UILayoutGuide"]; - }]]; - - RCTAssert(nonLayoutSubviews.count == 0, @"There shouldn't be any other views: %@", nonLayoutSubviews); -#endif - - if (expectErrorBlock) { - RCTAssert(expectErrorBlock(errors[0]), @"Expected an error but the first one was missing or did not match."); - } else { - RCTAssert(errors == nil, @"RedBox errors: %@", errors); - RCTAssert(testModule.status != RCTTestStatusPending, @"Test didn't finish within %0.f seconds", kTestTimeoutSeconds); - RCTAssert(testModule.status == RCTTestStatusPassed, @"Test failed"); - } - - [bridge invalidate]; - } - - // Give the bridge a chance to disappear before continuing to the next test. - NSDate *invalidateTimeout = [NSDate dateWithTimeIntervalSinceNow:30]; - while (invalidateTimeout.timeIntervalSinceNow > 0 && batchedBridge != nil) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - } -} - -@end diff --git a/emission/Example/EmissionTests/RCTTest/README.md b/emission/Example/EmissionTests/RCTTest/README.md deleted file mode 100644 index c4793b1c3d2..00000000000 --- a/emission/Example/EmissionTests/RCTTest/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# RCTTest - -This directory contains the Objective-C files from [React Native's RCTTest library](https://github.com/facebook/react-native/tree/master/Libraries/RCTTest). Facebook's [original React Native license](https://github.com/facebook/react-native/blob/35a136801cbd9dd92604ca33bf364cf63d97a59a/LICENSE) is included in the LICENSE file. - -## Why - -This was added in [this PR](https://github.com/artsy/emission/pull/1255) to get around [this bug in CocoaPods](https://github.com/CocoaPods/CocoaPods/issues/7195). The bug limits how child targets can override a dependency's subspecs from its parent target, which means that in order for the child target (our test) to access the `RCTTest` subspec, it would need to be included in the parent target (the Emission iOS app). However, this won't work because `RCTTest` links against `XCTest`, which isn't available on devices. - -The choices we considered were: - -- Move our unit tests into their own Xcode project. -- Vendor the RCTTest library, modifying its `#import` declarations where necessary. - -The biggest difference between the two options is what they make difficult and what they make complex. The first option makes upgrading React Native versions easier, but makes it more complex to write and run unit tests. The second option makes upgrading React Native more difficult, but makes tests easy to write and run. - -Since we write and run unit tests more often than upgrading React Native versions, we chose that option. diff --git a/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_column_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@2x.png b/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_column_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@2x.png deleted file mode 100644 index 3a36911228639e5ba48367807354897b1fdc09c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25508 zcmeI5ZA@EL7{^abfxE$28!{_zp?12Nk<>A=!kmM$+{#GYpxA^g!Lft{aSkXDfeB>5 zFyY0DejriXxuqXWHGJ^29UjCCM##`geLV@ijirNRLwbVh0O-dsaBIzta-@pO_Vd>~rVx*~WUw zZx2#W$+G3LuQ&Wz%SjD4vU<+ne(K$;PWd0vm+pI48c%!`eQS6*u6{$V(lrx_RHl}8 zpIl2iUF2AwXik>OICfsA*E!a@&-op1$JvXF?%*dm&Zj89=DFtih z4aSaX(gVyt_lBd^dq>i$QkX=xMaG}gW7G>kO% z{NVA#oQ6c8b0B*ndooG_a)8q)9szE#BET{V%P6cp1vtcl9V!RIqyMrrR6pZBv$1b) zn4hXcAB*ac=>%2Kz8Oufcs;_Ir67W`#MGwZJ3m?My{?d`=8WR%sx;2YXzN)u2?|N{ zZij3W>4xHgOQLjTRmwf{Mb_T93_nkT8W)wDn)H@R+fen(qNR25=D#~iJUs83NJnys}#wT&*!F zEM=-O_EC>TRQ!g|P~pxwy7FO*H%~?cMUH_?Vc*KGrId70S8MUodEMIO-5=(@z!4$K zF`==y%zN~1VMR#tbBDJLW+>h0ICNZKEMdgqQN&u(6UhO|0m%W$ zA)p;2IUqS8IRq39s3VY-AS*$SW6~>xOenyR&fz%(Y#4YBFl*p)!5$14n($TsUxxIs zk`TZD=HmS^LiTD{$;-pZ&$h@?<+AL>3w`fI=}P(y+beG#@9g>cpwIg2cf&C+)XuId zf{uB-H0RSptrL;v?O&XYTo+7viBv)D>)YY0Q!O|2`y)cd9ld2WyOyqp3PsulEBvAE zM_c@62}@z$f!Iegp>h~r=U{Sdt*Y8!-mE!EnX-1gSt-`9sHii}Ec%1;0sEL(t-?|3 z-N|217Yk10)MaOOe^Psqu_U-FAYkLaYMV(AuiQ?{YSo-Z2}m<6o5d^h zv<`;3>5*#Xy(dFk%jouk5A41d#Ve}?XZ~u~dtIlZLnSqIWW02@VW)Uy)=kvqM>nCH zFq-htVQ#_{j!f4GAOH{m2mk~C0ssMk06+jBfI{E}5C8}O1ONg60e}EN03ZMmz<`2J z2Rjq4FU;|I00DpiKmZ^B5C8}O1ONg60X7wO0SEvD00IC3fZ$&Pg3R?=jo#atlE;2V NBUgWnzjF9w>tE&bL_Poj diff --git a/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_column_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@3x.png b/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_column_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@3x.png deleted file mode 100644 index dc3969a9152f34de0b61af8e463a4f2b8140a7ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62888 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 Y!M)eR@t+#`_lU8sl|9MH6`5Us0rQ6By#N3J diff --git a/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_height_1@2x.png b/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_height_1@2x.png deleted file mode 100644 index 8a84132858ab5838ccdf9fff70e0cbc320adba13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21930 zcmeHPZ){Ul6o2ovYdh#;rC_ske=MVbQAXzgr;}leC0nz}uvub|Q5sE?!N{mCbIrCu zA2F3>5yK2NWXYH&6E&ej6QN11?NXHpY9``Jv})^&1dv*yqeJHEz3=wD*-4uC!T9BT z=w5r@dH39N?|Ju~-|w8a{_Wf9*+tq#6h*O?2D6o-m?T9NJfx7Jmh;i|_&|4B>$gz8 zFG{bXABE0_9i0@VS%p8e#i~!C#?n3J<`#5h&<7ue(4YIr5r40IGB~9*qGOrGY-(}Q zzkFjlvbTP@*>o$^JZXxkYvqSK?|E(03ro9(kNJK*_uK8h+e71LwXV8y!@>0vZrO$r znr$;mGW+8p2|T6Y8<1{>Elzp@iSn84 zhM;Dq(iY10yiiX z>-aJ|nYsyLDOdFMg^zAkkH0*`t83kxPrui;cvdsETg$HqcZy6Q+da0Hw9u@SSX!5Q zz32F4+iL%FUtx7zV?O=U7u&fXew=QU@SU9A$WLJ)kvz7Qw2W{@VyS#{i(%Qf7o;^E zyrlE(eEMxYm8qQ{9N2>v6^-@`nZlY_@IAcDc>Jn1-qLjVrE897dXL9Hd4g|Wmrwtt z#<79}15pEU4Z*SQ?kvHkeTHQ*KRWtSKklszxl@~am~y5oCTZ}oE4lEc2?L~ zVP}Of0Kx!>SrIURm=$7H09Y8K-W}ip!1})cR%-apT!qn1(Tr4~(i!8?0%dx4XvLM4 zVp~d66?2Hcj5?j&FJJfR(n2InE-OxIg|8}|N>vq;cz-&~_r{-BcC(_WN}(uDa*fZM zi8g%R6OduWq${aZnGUadq#`>S)EL<%neU2W5OFbBdQ=##+nw;ui!wAFsdHM6G?2bf zr(tJQ6s0&MUGCS{>qT4a{&rE+ZA8*Vt%EDo!dQ?Y8%0qtTbLGDZE$k&hJ|}u0b82j z4X~3-74QJddILPS87YJ-By@u)4Mm|4oRXLyVsbY?5dn4q0y6^e6hJoMZ5_}IKr;w4 z05pRDETup*0L>t>z(6wq%^;=^fMx)iLC63B&G4Vo3@JH9Wio9muAoBcHFLO7`o^S* zr6`5u!Py~MNvn1FTE{D&*NV3%BmI8yXLnv?=96l=)1H7@%=Z!Ud`*8&%1&6%tTicp zPOh<5fD74Rd03y5EtHEv1L0y{HUB-|cYQ%R&^4Hos4QC$do`iyQ*Sc z0;tVGx=ogxEawt1I?2IGJEP#5JK#o@B!dJ^`3yT09xYOT)@+w0FVf%d>lvwAQ5mi6_5x(BJgjc0Eqx30$+Fy zBm$5K_$@CW5r9PCUql2F0Z0V?Ees$LfJ6Wi0aqvhiNL>u4kQAQ2tXp>S`;7=fJETy g-u@Md5T@H6?P~h4`u>yX->6cSt=r7LE%rly0lrIX;Q#;t diff --git a/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_height_1@3x.png b/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_height_1@3x.png deleted file mode 100644 index 75bf4da9d319d0bf6b002d78d9879d20035675d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55923 zcmeI5T}&KR6vyuj<93&TZnQ}Y*098WY+_=UwWdwfc4(H;O)Cf?F~kJnVU?z)8fhp| z8V50c#C=gwY5IbYKDCmjPt=&WHYpEVg4B=Dh-689um&D9hLl7F@668L-OkVlA2dAt zNR}NgJG0B5|M{PD?zv~~d(SjAR+d+n3n40#hZC(r7%3q_Zv_K#?|jY#+bcH(Nb@UItek+wqmxKO1kKx%kcE@@s#-I5LnsvGDhkFRxYX z8PO`c&9dqlD_|eK^!RTpb*pm+CQsMoewnl0Kec#s`Ki;*r7!7Tn6p|YkJRoyckiBs zE4^LEi)Y&xx^X-c?OE7#c{bj0ZKD77qtEBQ-}^)U;_myTPzXQ<1qI3g86bl~05T{jPzJ~V859DLK|z5sKnBR55P%E{3X}mdKn8^X zWKd9`3>$(B=RSYusu1yg_PqdP&4?PCQx2tqX%~7S17uLE10VxrfD8%&$e^G=86X2> zPzXQ<1qI3g86bl~05T{jPzJ~V859DLK|z5sKnBR55cr?Skg0j1_o%#Ka3(hO)nfM6 z1NRJGJYU-D6HfK}`f*~xcjIMWBujdVoTd{i`g2+7sdjJ9K)pFsHS@Hubth3(<7?fi z&_}1N6CbKVk$Vuyu6T#c&Tu#tIQfzH-L#g;P0mLtJz>y_J~nc8`<=iV@=w_B9SUzX z5@)n|U;mOh^t-QrDHDlgD{k!!dE2W-)AxCYjDXhig1Oh%>IAeA6KJJ%!CKuw5Q0+E z&{_lmL2v>N1OY*?V>tu?K|l~31P}xS!A);T8AuuI`4>_KA_Qk54M9K<5QO}cG${iq z11ZCQn=;6f(b`(u=A2g8Pjcx-U8N8~qwcS>fh|9^R`h=xo4??@$6UB?%kb@nL0{oU ze!<-BSRlOx_6k35(F6JUbtf)Pes zWIjfN2`~XBsP$x+1LlA^U=Gp>009s@^H_KXyaV0=VMG`a#ue%gvU3Lz06{KU0|Y?G zO94!P2{1v;9$*fb1LlA^NGkvYK=7nXcn7=#-T`4m7!k&GZ;a!C#op_eb&P<(I!4wp zvOb|Cr9v2;5CZSO`UKV|us)$U*Mu-4jD;iu?|^r}JK!Dg4y<1L_Y1e0F71d3v1`cQ zPqMU;pT>NN1|R@JenJK&zyz3}rsgmQ%mH)29HbQh0w5HNR!$m@cetx}nCM*^HiWRc zhToX|`1-E$K-aS&wzP3NP1Fod;eg$O*oetd7B*rEvd5K-GY|v>0YPwsEjGPF5bTl< zTQ$l;I1vI7f;|&Kgn%FrArK+B2p|YV2=1~NA_O7?B7}UkhLnMn!C5`b9KuG95VWb( V*zAMWmmNZWB^#O&;|Dw6{09)nkzoJ; diff --git a/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@2x.png b/emission/Example/EmissionTests/ReferenceImages/EmissionTests-TestApps/OpaqueImageViewComponent_with_row_layout_maintains_the_aspect_ration_when_given_an_explicit_width_1@2x.png deleted file mode 100644 index 3d5b584ae6e7c09de689834026783d1d0b85a1ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22575 zcmeHPZD>asKlZU)*295+*nBslIphh zc9T>=2}X)PieGJoDN>90BN{(40u^M6l}(u>C82EM*EQ6S&ZV_G=iYoUf9=m;Kb{{q zC-m2^BZ)-4uq%lazXJ}p+pW&%IVcGQTeffob6Xti$FDK0u={<=LLzjSVT z!_lZ?H5H?_MdKddL|0X!>|xpItoXHpKfUsPEEMk8`ub#TZ@{mLrjPcAlgj9fJJNio z*_jd0)2BC1ZM$%>!#8nta`mqH7LztcS#R`3;|J4Y@{yq!h@nF1%gjNDrIxmkGGP8Co_7IlkHSR^qOJN|yN>7m-z46zS(fh;Z57ZAwPe=- zmIE~nEC(zHctw~&E{wt}!YcwZQ78$o2(JjQ2r~diMh1;&08j)_1W-hIM}Q)LB7h>8 z!G8pbEcD?1?Cj*Vz9~YMzhS5KpWbaS5n>QlPWS7JKX)$rV0++ZZO#UH-S|5{r}y$j z+O7yAGe`X4qRb`ECZr8*;?d-<{R92fm0WnEa1>tI%D)%_Lqv!$i3 z(A;Cze}uld*&P_2L8miLMGo7oxel(-TUwT%S7mHhZVs}|7V#|jShDB!;1AEw%>k3fH?1u+EN^D(uxU6l)gGd) z@ZJbng*2)oP6M3K&;UdR7|LKXu(!tRAmKokh18Pe*~q8CoG_*bbP+f*m7)WQ01^Qt zf@%ujy&1m@5&=6L*w#^ZpgzK1?w_-&Z*P3=K+v-{-I#EeqL^}i#_Qwi! zOE*V5?3>Qawd{qpq3nfa1yR^Klp;8!6UiL1;aXZ&sTHekI&tdeeC|(j*Guf3w1jy&G^s1TZH zh}LXxQ|7+89K5WB)S8)hPh3f_2vqIe=DWG|{qdcNh6!Rk}R z&&_|f*;`*&{_RUIeE!DT>6iNkj}K2?X{ntzM`WxZ-d$N#eIfD0x%URmd971;s4AAc zR=aQJ(D<>+Pm()E{`hn4^3u$?nfs)=o6eS{^r=5Ae)djNub$q_)Y%Uez*%O}zA-K+ z#UOcz6!&5I`}C;ouW_1AIf2u}Y2q}|;Y1((GTtNRvLaMHNXBU*6_5%DBm@!y34w$_ zLLiZfM;6M853&$hh%7`FA`6j)$UhZ0&imJFny zKaxS*cwchzSn|AkNCRHu69itSbqaX*!0dmM_>x^BX z98eB+kVRNQSmB8J7Zo{l^(_5Jh^nLdwE!IFD3c%LAIuC8=^cZ~$etN8hwPcb5|9Jr z;7CqG4v>Q#13?au1LR=Ge`aY8<$!W<6ln=72rEoCp;IN~069Pone=(aE(j|KD+nvx z&1EPDltYFgQ4Ut|nVbVTheeum81208u~J2dSi#KXp7`~{2Wl=oWvyDB$b3rEi`pYO zoz0FiyGfOj5nFj2Oy|9DOtc30&F`}M51SfEDxl!=_SW-WQm zA&SjON5kQ<{Mpi+F6@EsC2mIvv=TC)4Qs60gy?_};9A}7KnM_mE&(6}#FwG2AOr{j zLa?GDqA?VL9?23ipb(7Y1cU$~KnP}XkC1_ofsnyK0EIxv@E?Z^VR_%y+qY*2eksY^ ztaa{EMNkO8T5qM4G*aa(IRxS=e00h$tSqZEJRzkKp0CT_`FbB**S^*#cf-6$NJK!Dg z4iF>62r=Fuvn1QF0Ra$XwiXZo!K4CK0xN-)kj)-o4wwVxfH_Dj00cmAg-dt`yaV0= zVuTnW#s#l(;DUw5EyGeM!%>E#3`ZHx4yhnUh%w_U@eX(gyaV0=??96V{Rx!jbt@pz z3J4@xNwgYKk|mAc1ULasfD_<^Oy=ZY5M$#9B@rQ3CH0%NI={%z7xN_=fB*>Q*9ln( ztOQmKnQxL6c - - - ) - } -} - -ReactNative.AppRegistry.registerComponent('OpaqueImageView', () => OpaqueImageViewTest) diff --git a/emission/Example/EmissionTests/TestHelper.h b/emission/Example/EmissionTests/TestHelper.h deleted file mode 100644 index 1aef7ed7a1c..00000000000 --- a/emission/Example/EmissionTests/TestHelper.h +++ /dev/null @@ -1,24 +0,0 @@ -#import -#import - -#import "RCTTestRunner.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface TestHelper : NSObject - -@property (nonatomic, strong, readwrite) UIWindow *window; -@property (nonatomic, strong, readonly) NSURL *fixturesURL; -@property (nonatomic, strong, readonly) NSArray *artworksPages; -@property (nonatomic, strong, readonly) NSArray *artworks; -@property (nonatomic, strong, readonly) RCTTestRunner *reactTestRunner; - -+ (instancetype)sharedHelper; - -- (void)runReactTestInRecordMode:(BOOL)recordMode - module:(NSString *)moduleName - props:(NSDictionary * _Nullable)props; - -@end - -NS_ASSUME_NONNULL_END diff --git a/emission/Example/EmissionTests/TestHelper.m b/emission/Example/EmissionTests/TestHelper.m deleted file mode 100644 index 8e48aecef90..00000000000 --- a/emission/Example/EmissionTests/TestHelper.m +++ /dev/null @@ -1,154 +0,0 @@ -#import "TestHelper.h" -#import "AppSetup.h" -#import "AREmission.h" -#import "ARDefaults.h" - -#import -#import - -#import - - -@interface TestHelper () -@property (nonatomic, strong, readwrite) NSArray *artworksPages; -@property (nonatomic, strong, readwrite) NSArray *artworks; -@end - -@implementation TestHelper - -@synthesize reactTestRunner = _reactTestRunner; - -+ (instancetype)sharedHelper; -{ - return (TestHelper *)UIApplication.sharedApplication.delegate; -} - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; -{ - [self assertCorrectEnvironment]; - [self loadArtworksFixtures]; - - self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - self.window.rootViewController = [UIViewController new]; - self.window.rootViewController.view.backgroundColor = [UIColor redColor]; - [self.window makeKeyAndVisible]; - - return YES; -} - -- (void)assertCorrectEnvironment; -{ - NSOperatingSystemVersion version = [NSProcessInfo processInfo].operatingSystemVersion; - - NSAssert(version.majorVersion == 12, - @"The tests should be run on iOS 12.x, not %ld.%ld", version.majorVersion, version.minorVersion); - - CGSize nativeResolution = [UIScreen mainScreen].nativeBounds.size; - NSAssert([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone && CGSizeEqualToSize(nativeResolution, CGSizeMake(1125, 2436)), - @"The tests should be run on an iPhone 6, not a device with native resolution %@", - NSStringFromCGSize(nativeResolution)); -} - -- (void)loadArtworksFixtures; -{ - self.artworksPages = @[ - [self loadJSONFixture:@"rembrandt-harmensz-van-rijn-1_page-1"], - [self loadJSONFixture:@"rembrandt-harmensz-van-rijn-1_page-2"], - ]; - - NSMutableArray *artworks = [NSMutableArray new]; - for (NSDictionary *artworksPage in self.artworksPages) { - [artworks addObjectsFromArray:[artworksPage valueForKeyPath:@"data.artist.artworks"]]; - } - self.artworks = [artworks copy]; - - // Ensure the tests do not hit the network for images. - SDImageCache *cache = [[SDImageCache alloc] initWithNamespace:@"test-fixtures" diskCacheDirectory:self.fixturesURL.path]; - [SDWebImageManager.sharedManager setValue:cache forKey:@"_imageCache"]; - - for (NSDictionary *artwork in self.artworks) { - NSURL *URL = [NSURL URLWithString:[artwork valueForKeyPath:@"image.resized.url"]]; - NSAssert([SDWebImageManager.sharedManager cachedImageExistsForURL:URL], @"Expected image to be available in cache: `%@'", URL); - } -} - -- (NSDictionary *)loadJSONFixture:(NSString *)filename; -{ - NSURL *URL = [[self.fixturesURL URLByAppendingPathComponent:filename] URLByAppendingPathExtension:@"json"]; - return [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:URL] - options:0 - error:nil]; -} - -- (NSURL *)fixturesURL; -{ - NSURL *testsDir = [[NSURL fileURLWithPath:@(__FILE__)] URLByDeletingLastPathComponent]; - return [testsDir URLByAppendingPathComponent:@"Fixtures"]; -} - -- (RCTTestRunner *)reactTestRunner; -{ - if (_reactTestRunner == nil) { - [ARDefaults setup]; - AppSetup *setup = [AppSetup ambientSetup]; - - NSURL *URL = TestHelper.sharedHelper.fixturesURL; - URL = [URL URLByAppendingPathComponent:@"ReferenceImages"]; - _reactTestRunner = RCTInitRunnerForApp(@"EmissionTests/TestApps", ^NSArray> *{ - // RCTTestRunner expects a new config for each run instead of storing one between runs. - AREmissionConfiguration *config = [[AREmissionConfiguration alloc] initWithUserID:@"userID" - authenticationToken:@"some.access.token" - launchCount:0 - sentryDSN:nil - stripePublishableKey:@"strip-test-key" - googleMapsAPIKey:nil - mapBoxAPIClientKey:@"mapbox-test-key" - gravityURL:setup.gravityURL - metaphysicsURL:setup.metaphysicsURL - predictionURL:setup.predictionURL - userAgent:@"Emission Example" - env:AREnvTest - options:setup.options]; - return @[config]; - }, setup.jsCodeLocation); - } - return _reactTestRunner; -} - -// Taken from Expecta+FBSnapshotTestCase -static SEL -currentTestName(void) -{ - id compiledExample = [[NSThread currentThread] threadDictionary][@"SPTCurrentSpec"]; - NSString *name; - if ([compiledExample respondsToSelector:@selector(name)]) { - // Specta 0.3 syntax - name = [compiledExample performSelector:@selector(name)]; -// } else if ([compiledExample respondsToSelector:@selector(fileName)]) { -// // Specta 0.2 syntax -// name = [compiledExample performSelector:@selector(fileName)]; - } - name = [[[[name componentsSeparatedByString:@" test_"] lastObject] stringByReplacingOccurrencesOfString:@"__" withString:@"_"] stringByReplacingOccurrencesOfString:@"]" withString:@""]; - return NSSelectorFromString(name); -} - -- (void)runReactTestInRecordMode:(BOOL)recordMode - module:(NSString *)moduleName - props:(NSDictionary * _Nullable)props; -{ - BOOL before = self.reactTestRunner.recordMode; - @try { - self.reactTestRunner.recordMode = recordMode; - [self.reactTestRunner runTest:currentTestName() - module:moduleName - initialProps:props - configurationBlock:^(RCTRootView *rootView) { - rootView.frame = [[UIScreen mainScreen] bounds]; - }]; - } - @finally { - self.reactTestRunner.recordMode = before; - } -} - -@end diff --git a/emission/Example/EmissionUITests/EmissionUITests.m b/emission/Example/EmissionUITests/EmissionUITests.m deleted file mode 100644 index 6e2a86faefe..00000000000 --- a/emission/Example/EmissionUITests/EmissionUITests.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// EmissionUITests.m -// EmissionUITests -// -// Created by Eloy Durán on 22/04/16. -// Copyright © 2016 CocoaPods. All rights reserved. -// - -#import - -@interface EmissionUITests : XCTestCase - -@end - -@implementation EmissionUITests - -- (void)setUp { - [super setUp]; - - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - self.continueAfterFailure = NO; - // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. - [[[XCUIApplication alloc] init] launch]; - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample { - // Use recording to get started writing UI tests. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -@end diff --git a/emission/Example/EmissionUITests/Info.plist b/emission/Example/EmissionUITests/Info.plist deleted file mode 100644 index ba72822e872..00000000000 --- a/emission/Example/EmissionUITests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/emission/Example/Gemfile b/emission/Example/Gemfile deleted file mode 100644 index 56dde1af1b8..00000000000 --- a/emission/Example/Gemfile +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "cocoapods", "~> 1.7.2" - -# So we know if we need to run `pod install` -gem 'cocoapods-check' - -# To manage our secret keys -gem "cocoapods-keys" - -# To avoid ambiguous Podfile.lock contents -gem "psych" diff --git a/emission/Example/Gemfile.lock b/emission/Example/Gemfile.lock deleted file mode 100644 index 8b7e774074d..00000000000 --- a/emission/Example/Gemfile.lock +++ /dev/null @@ -1,91 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (3.0.0) - RubyInline (3.12.4) - ZenTest (~> 4.3) - ZenTest (4.11.2) - activesupport (4.2.11.1) - i18n (~> 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - atomos (0.1.3) - claide (1.0.3) - cocoapods (1.7.5) - activesupport (>= 4.0.2, < 5) - claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.7.5) - cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.2.2, < 2.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.3.1, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored2 (~> 3.1) - escape (~> 0.0.4) - fourflusher (>= 2.3.0, < 3.0) - gh_inspector (~> 1.0) - molinillo (~> 0.6.6) - nap (~> 1.0) - ruby-macho (~> 1.4) - xcodeproj (>= 1.10.0, < 2.0) - cocoapods-check (1.1.0) - cocoapods (~> 1.0) - cocoapods-core (1.7.5) - activesupport (>= 4.0.2, < 6) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - cocoapods-deintegrate (1.0.4) - cocoapods-downloader (1.2.2) - cocoapods-keys (2.1.0) - dotenv - osx_keychain - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.0) - cocoapods-stats (1.1.0) - cocoapods-trunk (1.3.1) - nap (>= 0.8, < 2.0) - netrc (~> 0.11) - cocoapods-try (1.1.0) - colored2 (3.1.2) - concurrent-ruby (1.1.5) - dotenv (2.7.2) - escape (0.0.4) - fourflusher (2.3.1) - fuzzy_match (2.0.4) - gh_inspector (1.1.3) - i18n (0.9.5) - concurrent-ruby (~> 1.0) - minitest (5.11.3) - molinillo (0.6.6) - nanaimo (0.2.6) - nap (1.1.0) - netrc (0.11.0) - osx_keychain (1.0.2) - RubyInline (~> 3) - psych (3.1.0) - ruby-macho (1.4.0) - thread_safe (0.3.6) - tzinfo (1.2.5) - thread_safe (~> 0.1) - xcodeproj (1.12.0) - CFPropertyList (>= 2.3.3, < 4.0) - atomos (~> 0.1.3) - claide (>= 1.0.2, < 2.0) - colored2 (~> 3.1) - nanaimo (~> 0.2.6) - -PLATFORMS - ruby - -DEPENDENCIES - cocoapods (~> 1.7.2) - cocoapods-check - cocoapods-keys - psych - -BUNDLED WITH - 1.17.3 diff --git a/emission/Example/Podfile b/emission/Example/Podfile deleted file mode 100644 index 7078a06b31f..00000000000 --- a/emission/Example/Podfile +++ /dev/null @@ -1,130 +0,0 @@ -using_bundler = defined? Bundler -unless using_bundler - puts "\nPlease re-run using:".red - puts " bundle exec pod install\n\n" - exit(1) -end - -unless Dir.exist? '../node_modules' - puts "\nYou will need to run:".red - puts " yarn install\n\n" - exit(1) -end - -# TODO: Get autolinking working after RN upgrade -# require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' - -require "rbconfig" -expected_ruby_version = File.read(File.expand_path("../../.ruby-version", __FILE__)).strip -actual_ruby_version = RbConfig::CONFIG["RUBY_PROGRAM_VERSION"] -unless actual_ruby_version == expected_ruby_version - puts "\nYou are running #{actual_ruby_version}. Please re-run using Ruby version:".red - puts " #{expected_ruby_version}\n\n" - exit(1) -end - -source 'https://github.com/artsy/Specs.git' -source 'https://cdn.cocoapods.org/' - -inhibit_all_warnings! -platform :ios, '12.0' - -require 'json' -npm_vendored_podspecs = JSON.parse(File.read('../npm-podspecs.json'), symbolize_names: true) -npm_vendored_podspecs.update(npm_vendored_podspecs) do |_pod_name, props| - if props[:path] - props.merge path: File.join('../', props[:path]) - else - props.merge podspec: File.join('../', props[:podspec]) - end -end - -target 'Emission' do - pod 'Emission', path: '../', inhibit_warnings: false - - npm_vendored_podspecs.each do |pod_name, props| - pod pod_name.to_s, props - end - - pod 'Sentry', subspecs: %w[Core KSCrash] - # Got to make it look right - pod 'Artsy+UIFonts' - - # Native UI tweaks - pod 'FLKAutoLayout' - - # This is mostly tableviews, handle them easier, we use this in Eigen/Energy too - pod 'ARGenericTableViewController' - - # Storing Credentials - pod 'SAMKeychain' - - # custom zoom animation for image carousel - pod 'INTUAnimationEngine' - - # Authiung with Artsy - pod 'Artsy+Authentication', subspecs: %w[email], - git: 'https://github.com/artsy/Artsy-Authentication.git', - branch: 'fetch-user-details' - - # Bottom Sheet view controller for Map view - pod 'Pulley', git: 'https://github.com/l2succes/Pulley.git', branch: 'master' - - target 'EmissionTests' do - inherit! :search_paths - - # Used for standard Objective-C unit tests, analagous to Jest. - pod 'Specta' - pod 'Expecta' - - # Necessary because we're bypassing the RCTTestCase subspec. - pod 'FBSnapshotTestCase' - end -end - -plugin 'cocoapods-keys', - target: 'Emission', - keys: [ - 'ArtsyAPIClientSecret', # Authing to the Artsy API - 'ArtsyAPIClientKey', # - 'StripePublishableKey', # Used in Auctions registration flow - 'MapBoxAPIClientKey', # Used in City Maps - 'SentryProductionDSN', # Used in the Emission betas - 'GoogleMapsAPIKey' # - ] - -post_install do |installer| - # Mark the project as having been checked for Swift 5. - SWIFT_MAGIC_STRING = "1020" - installer.pods_project.root_object.attributes['LastSwiftUpdateCheck'] = SWIFT_MAGIC_STRING - installer.pods_project.root_object.attributes['LastUpgradeCheck'] = SWIFT_MAGIC_STRING - - installer.pods_project.targets.each do |target| - # Pulley and FBSnapshotTestCase contain pre-5.0 Swift code. Let's mark them as having been migrated. - # Note: This is the equivalent of opening Xcode's conversion warning, un-checking 'remind me', and clicking "convert later". - # It does not change the contents of the Pods. - if %w(Pulley FBSnapshotTestCase).include? target.name - target.project.root_object.attributes['TargetAttributes'] ||= {} - target.project.root_object.attributes['TargetAttributes'][target.uuid] = { 'LastSwiftMigration' => SWIFT_MAGIC_STRING } - end - - target.build_configurations.each do |config| - # CocoaPods setting the deployment target to be less than the actual deployable target is causing many Xcode warnings. This silences them. See: https://github.com/CocoaPods/CocoaPods/issues/7314 - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' - end - end - emission = installer.pods_project.targets.find { |target| target.name == 'Emission' } - emission.build_configurations.each do |config| - config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'YES' - # We treat warnings as errors, but currently have outstanding deprecation warnings to deal with, so we ignore deprecation warnings. - # See: https://artsyproduct.atlassian.net/browse/MX-119 - config.build_settings['GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS'] = 'NO' - # Work around https://github.com/rs/SDWebImage/issues/2022, because we don't want to upgrade to SDWebImage 4 atm. - config.build_settings['CLANG_WARN_STRICT_PROTOTYPES'] = 'NO' - # Use dynamic queries by default in development mode. - if config.name == 'Debug' - query_map = '../data/complete.queryMap.json' - config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = "$(inherited) USE_DYNAMIC_GRAPHQL_MAP='#{query_map}'" - end - end -end diff --git a/emission/Example/Podfile.lock b/emission/Example/Podfile.lock deleted file mode 100644 index 71c8b1cd483..00000000000 --- a/emission/Example/Podfile.lock +++ /dev/null @@ -1,576 +0,0 @@ -PODS: - - ARGenericTableViewController (1.0.2) - - "Artsy+Authentication/email (1.5.0)": - - ISO8601DateFormatter - - "NSURL+QueryDictionary" - - "Artsy+UIColors (3.1.0)" - - "Artsy+UIFonts (3.3.3)" - - Artsy-UIButtons (2.3.3): - - "Artsy+UIColors (~> 3.0)" - - "Artsy+UIFonts" - - "UIView+BooleanAnimations" - - boost-for-react-native (1.63.0) - - DoubleConversion (1.1.6) - - Emission (1.21.52): - - "Artsy+UIColors" - - "Artsy+UIFonts (>= 3.0.0)" - - DoubleConversion (= 1.1.6) - - Extraction (>= 1.2.1) - - Folly (= 2018.10.22.00) - - glog (= 0.3.5) - - INTUAnimationEngine - - ISO8601DateFormatter - - Pulley - - React-Core (= 0.61.4) - - React-cxxreact (= 0.61.4) - - react-native-cameraroll (= 1.3.0) - - react-native-geolocation (= 2.0.2) - - react-native-mapbox-gl (= 6.1.3) - - react-native-navigator-ios (= 1.0.0) - - react-native-netinfo (= 4.6.1) - - React-RCTActionSheet (= 0.61.4) - - React-RCTAnimation (= 0.61.4) - - React-RCTImage (= 0.61.4) - - React-RCTLinking (= 0.61.4) - - React-RCTNetwork (= 0.61.4) - - React-RCTText (= 0.61.4) - - RNSVG (= 9.13.3) - - SDWebImage (< 4, >= 3.7.2) - - SentryReactNative (= 0.30.3) - - tipsi-stripe (= 7.5.0) - - Expecta (1.0.6) - - Extraction (1.2.6): - - Extraction/ARAnimationContinuation (= 1.2.6) - - Extraction/ARLoadFailureView (= 1.2.6) - - Extraction/ARSpinner (= 1.2.6) - - Extraction/ARSwitchView (= 1.2.6) - - "Extraction/UILabel+Typography (= 1.2.6)" - - "Extraction/UIView+ARSpinner (= 1.2.6)" - - Extraction/ARAnimationContinuation (1.2.6) - - Extraction/ARLoadFailureView (1.2.6): - - Artsy-UIButtons - - "Extraction/UILabel+Typography" - - ORStackView (< 3) - - Extraction/ARSpinner (1.2.6): - - "Extraction/UIView+ARSpinner" - - "UIView+BooleanAnimations" - - Extraction/ARSwitchView (1.2.6): - - "Artsy+UIColors" - - "Artsy+UIFonts (>= 1.1.0)" - - FLKAutoLayout - - "UIView+BooleanAnimations" - - "Extraction/UILabel+Typography (1.2.6)" - - "Extraction/UIView+ARSpinner (1.2.6)": - - Extraction/ARAnimationContinuation - - FBLazyVector (0.61.4) - - FBReactNativeSpec (0.61.4): - - Folly (= 2018.10.22.00) - - RCTRequired (= 0.61.4) - - RCTTypeSafety (= 0.61.4) - - React-Core (= 0.61.4) - - React-jsi (= 0.61.4) - - ReactCommon/turbomodule/core (= 0.61.4) - - FBSnapshotTestCase (2.1.4): - - FBSnapshotTestCase/SwiftSupport (= 2.1.4) - - FBSnapshotTestCase/Core (2.1.4) - - FBSnapshotTestCase/SwiftSupport (2.1.4): - - FBSnapshotTestCase/Core - - FLKAutoLayout (1.0.1) - - Folly (2018.10.22.00): - - boost-for-react-native - - DoubleConversion - - Folly/Default (= 2018.10.22.00) - - glog - - Folly/Default (2018.10.22.00): - - boost-for-react-native - - DoubleConversion - - glog - - glog (0.3.5) - - INTUAnimationEngine (1.4.2): - - INTUAnimationEngine/SpringSolver (= 1.4.2) - - INTUAnimationEngine/SpringSolver (1.4.2) - - ISO8601DateFormatter (0.8) - - Keys (1.0.1) - - KSCrash/Core (1.15.20): - - KSCrash/Reporting/Filters/Basic - - KSCrash/Recording (1.15.20): - - KSCrash/Recording/Tools (= 1.15.20) - - KSCrash/Recording/Tools (1.15.20) - - KSCrash/Reporting/Filters/Base (1.15.20): - - KSCrash/Recording - - KSCrash/Reporting/Filters/Basic (1.15.20): - - KSCrash/Recording - - KSCrash/Reporting/Filters/Base - - "NSURL+QueryDictionary (1.2.0)" - - ORStackView (2.0.3): - - FLKAutoLayout - - Pulley (2.6.2) - - RCTRequired (0.61.4) - - RCTTypeSafety (0.61.4): - - FBLazyVector (= 0.61.4) - - Folly (= 2018.10.22.00) - - RCTRequired (= 0.61.4) - - React-Core (= 0.61.4) - - React (0.61.4): - - React-Core (= 0.61.4) - - React-Core/DevSupport (= 0.61.4) - - React-Core/RCTWebSocket (= 0.61.4) - - React-RCTActionSheet (= 0.61.4) - - React-RCTAnimation (= 0.61.4) - - React-RCTBlob (= 0.61.4) - - React-RCTImage (= 0.61.4) - - React-RCTLinking (= 0.61.4) - - React-RCTNetwork (= 0.61.4) - - React-RCTSettings (= 0.61.4) - - React-RCTText (= 0.61.4) - - React-RCTVibration (= 0.61.4) - - React-Core (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default (= 0.61.4) - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/CoreModulesHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/Default (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/DevSupport (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default (= 0.61.4) - - React-Core/RCTWebSocket (= 0.61.4) - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - React-jsinspector (= 0.61.4) - - Yoga - - React-Core/RCTActionSheetHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/RCTAnimationHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/RCTBlobHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/RCTImageHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/RCTLinkingHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/RCTNetworkHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/RCTSettingsHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/RCTTextHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/RCTVibrationHeaders (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-Core/RCTWebSocket (0.61.4): - - Folly (= 2018.10.22.00) - - glog - - React-Core/Default (= 0.61.4) - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsiexecutor (= 0.61.4) - - Yoga - - React-CoreModules (0.61.4): - - FBReactNativeSpec (= 0.61.4) - - Folly (= 2018.10.22.00) - - RCTTypeSafety (= 0.61.4) - - React-Core/CoreModulesHeaders (= 0.61.4) - - React-RCTImage (= 0.61.4) - - ReactCommon/turbomodule/core (= 0.61.4) - - React-cxxreact (0.61.4): - - boost-for-react-native (= 1.63.0) - - DoubleConversion - - Folly (= 2018.10.22.00) - - glog - - React-jsinspector (= 0.61.4) - - React-jsi (0.61.4): - - boost-for-react-native (= 1.63.0) - - DoubleConversion - - Folly (= 2018.10.22.00) - - glog - - React-jsi/Default (= 0.61.4) - - React-jsi/Default (0.61.4): - - boost-for-react-native (= 1.63.0) - - DoubleConversion - - Folly (= 2018.10.22.00) - - glog - - React-jsiexecutor (0.61.4): - - DoubleConversion - - Folly (= 2018.10.22.00) - - glog - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - React-jsinspector (0.61.4) - - react-native-cameraroll (1.3.0): - - React - - react-native-geolocation (2.0.2): - - React - - react-native-mapbox-gl (6.1.3): - - React - - react-native-navigator-ios (1.0.0): - - React - - react-native-netinfo (4.6.1): - - React - - React-RCTActionSheet (0.61.4): - - React-Core/RCTActionSheetHeaders (= 0.61.4) - - React-RCTAnimation (0.61.4): - - React-Core/RCTAnimationHeaders (= 0.61.4) - - React-RCTBlob (0.61.4): - - React-Core/RCTBlobHeaders (= 0.61.4) - - React-Core/RCTWebSocket (= 0.61.4) - - React-jsi (= 0.61.4) - - React-RCTNetwork (= 0.61.4) - - React-RCTImage (0.61.4): - - React-Core/RCTImageHeaders (= 0.61.4) - - React-RCTNetwork (= 0.61.4) - - React-RCTLinking (0.61.4): - - React-Core/RCTLinkingHeaders (= 0.61.4) - - React-RCTNetwork (0.61.4): - - React-Core/RCTNetworkHeaders (= 0.61.4) - - React-RCTSettings (0.61.4): - - React-Core/RCTSettingsHeaders (= 0.61.4) - - React-RCTText (0.61.4): - - React-Core/RCTTextHeaders (= 0.61.4) - - React-RCTVibration (0.61.4): - - React-Core/RCTVibrationHeaders (= 0.61.4) - - ReactCommon/jscallinvoker (0.61.4): - - DoubleConversion - - Folly (= 2018.10.22.00) - - glog - - React-cxxreact (= 0.61.4) - - ReactCommon/turbomodule/core (0.61.4): - - DoubleConversion - - Folly (= 2018.10.22.00) - - glog - - React-Core (= 0.61.4) - - React-cxxreact (= 0.61.4) - - React-jsi (= 0.61.4) - - ReactCommon/jscallinvoker (= 0.61.4) - - RNCAsyncStorage (1.6.3): - - React - - RNReanimated (1.4.0): - - React - - RNSVG (9.13.3): - - React - - SAMKeychain (1.5.3) - - SDWebImage (3.8.3): - - SDWebImage/Core (= 3.8.3) - - SDWebImage/Core (3.8.3) - - Sentry (3.9.1): - - Sentry/Core (= 3.9.1) - - Sentry/KSCrash (= 3.9.1) - - Sentry/Core (3.9.1) - - Sentry/KSCrash (3.9.1): - - KSCrash/Core (~> 1.15.12) - - SentryReactNative (0.30.3): - - React - - Sentry (~> 3.9.0) - - Sentry/KSCrash (~> 3.9.0) - - Specta (1.0.7) - - Stripe (14.0.0) - - tipsi-stripe (7.5.0): - - React - - Stripe (~> 14.0.0) - - "UIView+BooleanAnimations (1.0.2)" - - Yoga (1.14.0) - -DEPENDENCIES: - - ARGenericTableViewController - - "Artsy+Authentication/email (from `https://github.com/artsy/Artsy-Authentication.git`, branch `fetch-user-details`)" - - "Artsy+UIFonts" - - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - - Emission (from `../`) - - Expecta - - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`) - - FBSnapshotTestCase - - FLKAutoLayout - - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) - - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - - INTUAnimationEngine - - Keys (from `Pods/CocoaPodsKeys`) - - Pulley (from `https://github.com/l2succes/Pulley.git`, branch `master`) - - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) - - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - - React (from `../node_modules/react-native`) - - React-Core/DevSupport (from `../node_modules/react-native`) - - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) - - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) - - "react-native-cameraroll (from `../node_modules/@react-native-community/cameraroll`)" - - "react-native-geolocation (from `../node_modules/@react-native-community/geolocation`)" - - "react-native-mapbox-gl (from `../node_modules/@mapbox/react-native-mapbox-gl`)" - - react-native-navigator-ios (from `../node_modules/react-native-navigator-ios`) - - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" - - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) - - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) - - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) - - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) - - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - - React-RCTText (from `../node_modules/react-native/Libraries/Text`) - - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - - ReactCommon/jscallinvoker (from `../node_modules/react-native/ReactCommon`) - - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)" - - RNReanimated (from `../node_modules/react-native-reanimated`) - - RNSVG (from `../node_modules/react-native-svg`) - - SAMKeychain - - Sentry/Core - - Sentry/KSCrash - - SentryReactNative (from `../node_modules/react-native-sentry`) - - Specta - - tipsi-stripe (from `../node_modules/tipsi-stripe/tipsi-stripe.podspec`) - - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) - -SPEC REPOS: - https://cdn.cocoapods.org/: - - ARGenericTableViewController - - boost-for-react-native - - Expecta - - FBSnapshotTestCase - - FLKAutoLayout - - INTUAnimationEngine - - ISO8601DateFormatter - - KSCrash - - "NSURL+QueryDictionary" - - ORStackView - - SAMKeychain - - SDWebImage - - Sentry - - Specta - - Stripe - - "UIView+BooleanAnimations" - https://github.com/artsy/Specs.git: - - "Artsy+UIColors" - - "Artsy+UIFonts" - - Artsy-UIButtons - - Extraction - -EXTERNAL SOURCES: - "Artsy+Authentication": - :branch: fetch-user-details - :git: https://github.com/artsy/Artsy-Authentication.git - DoubleConversion: - :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" - Emission: - :path: "../" - FBLazyVector: - :path: "../node_modules/react-native/Libraries/FBLazyVector" - FBReactNativeSpec: - :path: "../node_modules/react-native/Libraries/FBReactNativeSpec" - Folly: - :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec" - glog: - :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" - Keys: - :path: Pods/CocoaPodsKeys - Pulley: - :branch: master - :git: https://github.com/l2succes/Pulley.git - RCTRequired: - :path: "../node_modules/react-native/Libraries/RCTRequired" - RCTTypeSafety: - :path: "../node_modules/react-native/Libraries/TypeSafety" - React: - :path: "../node_modules/react-native" - React-Core: - :path: "../node_modules/react-native" - React-CoreModules: - :path: "../node_modules/react-native/React/CoreModules" - React-cxxreact: - :path: "../node_modules/react-native/ReactCommon/cxxreact" - React-jsi: - :path: "../node_modules/react-native/ReactCommon/jsi" - React-jsiexecutor: - :path: "../node_modules/react-native/ReactCommon/jsiexecutor" - React-jsinspector: - :path: "../node_modules/react-native/ReactCommon/jsinspector" - react-native-cameraroll: - :path: "../node_modules/@react-native-community/cameraroll" - react-native-geolocation: - :path: "../node_modules/@react-native-community/geolocation" - react-native-mapbox-gl: - :path: "../node_modules/@mapbox/react-native-mapbox-gl" - react-native-navigator-ios: - :path: "../node_modules/react-native-navigator-ios" - react-native-netinfo: - :path: "../node_modules/@react-native-community/netinfo" - React-RCTActionSheet: - :path: "../node_modules/react-native/Libraries/ActionSheetIOS" - React-RCTAnimation: - :path: "../node_modules/react-native/Libraries/NativeAnimation" - React-RCTBlob: - :path: "../node_modules/react-native/Libraries/Blob" - React-RCTImage: - :path: "../node_modules/react-native/Libraries/Image" - React-RCTLinking: - :path: "../node_modules/react-native/Libraries/LinkingIOS" - React-RCTNetwork: - :path: "../node_modules/react-native/Libraries/Network" - React-RCTSettings: - :path: "../node_modules/react-native/Libraries/Settings" - React-RCTText: - :path: "../node_modules/react-native/Libraries/Text" - React-RCTVibration: - :path: "../node_modules/react-native/Libraries/Vibration" - ReactCommon: - :path: "../node_modules/react-native/ReactCommon" - RNCAsyncStorage: - :path: "../node_modules/@react-native-community/async-storage" - RNReanimated: - :path: "../node_modules/react-native-reanimated" - RNSVG: - :path: "../node_modules/react-native-svg" - SentryReactNative: - :path: "../node_modules/react-native-sentry" - tipsi-stripe: - :podspec: "../node_modules/tipsi-stripe/tipsi-stripe.podspec" - Yoga: - :path: "../node_modules/react-native/ReactCommon/yoga" - -CHECKOUT OPTIONS: - "Artsy+Authentication": - :commit: 1b582675598c999726d9edacd3b8559e01cf7c48 - :git: https://github.com/artsy/Artsy-Authentication.git - Pulley: - :commit: 23f1c0e8cad5a72d03176fe33535c14726e7a160 - :git: https://github.com/l2succes/Pulley.git - tipsi-stripe: - :commit: aeb742baf1a8329ba371d9c94c7650104a112807 - :git: https://github.com/ashfurrow/tipsi-stripe - -SPEC CHECKSUMS: - ARGenericTableViewController: 61a0897ba66c35111b5d1cc3b44884282bd3c1a5 - "Artsy+Authentication": 3bf11ceca61c52e9e31490535bf5798f625406fa - "Artsy+UIColors": 31c03c4146f5e6618a9b950f37dfe02dd9ac09a6 - "Artsy+UIFonts": 597c44f264aead6bdc21898b690addd90e14edbd - Artsy-UIButtons: 3c396f0fad352a7b0332100e0ffcb0ca577e0082 - boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c - DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2 - Emission: c0d44f4745243b1cfc750f84f30a68714283a5a7 - Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5 - Extraction: 2be993a17f8f8c4fac988ebecaed93a409181faf - FBLazyVector: feb35a6b7f7b50f367be07f34012f34a79282fa3 - FBReactNativeSpec: 51477b84b1bf7ab6f9ef307c24e3dd675391be44 - FBSnapshotTestCase: 094f9f314decbabe373b87cc339bea235a63e07a - FLKAutoLayout: 37e1e09de6411dbee5526860d9f55d9063323ea8 - Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51 - glog: 1f3da668190260b06b429bb211bfbee5cd790c28 - INTUAnimationEngine: 3a7d63738cd51af573d16848a771feedea7cc9f2 - ISO8601DateFormatter: 4551b6ce4f83185425f583b0b3feb3c7b59b942c - Keys: a576f4c9c1c641ca913a959a9c62ed3f215a8de9 - KSCrash: 4dc18329a90b516342809b9ca92fc4d199d712ea - "NSURL+QueryDictionary": bae616404e2adf6409d3d5c02a093cbf44c8a236 - ORStackView: b9507271cb41fb9e0b3eecc6414d831201e7cf7c - Pulley: edc993fb57f7eb20541c8453d0fce10559f21dac - RCTRequired: f3b3fb6f4723e8e52facb229d0c75fdc76773849 - RCTTypeSafety: 2ec60de6abb1db050b56ecc4b60188026078fd10 - React: 10e0130b57e55a7cd8c3dee37c1261102ce295f4 - React-Core: 636212410772d05f3a1eb79d965df2962ca1c70b - React-CoreModules: 6f70d5e41919289c582f88c9ad9923fe5c87400a - React-cxxreact: ddecbe9157ec1743f52ea17bf8d95debc0d6e846 - React-jsi: ca921f4041505f9d5197139b2d09eeb020bb12e8 - React-jsiexecutor: 8dfb73b987afa9324e4009bdce62a18ce23d983c - React-jsinspector: d15478d0a8ada19864aa4d1cc1c697b41b3fa92f - react-native-cameraroll: 463aff54e37cff27ea76eb792e6f1fa43b876320 - react-native-geolocation: c956aeb136625c23e0dce0467664af2c437888c9 - react-native-mapbox-gl: d0ac3b81a6cadbd7cadc80891da72e3e85379350 - react-native-navigator-ios: 93db84cc26b6f8d776e1f504c56082f593efcd09 - react-native-netinfo: a59d8426a8484f739fe3a95dd6ad5af1435db05f - React-RCTActionSheet: 7369b7c85f99b6299491333affd9f01f5a130c22 - React-RCTAnimation: d07be15b2bd1d06d89417eb0343f98ffd2b099a7 - React-RCTBlob: 8e0b23d95c9baa98f6b0e127e07666aaafd96c34 - React-RCTImage: 443050d14a66e8c2332e9c055f45689d23e15cc7 - React-RCTLinking: ce9a90ba155aec41be49e75ec721bbae2d48a47e - React-RCTNetwork: 41fe54bacc67dd00e6e4c4d30dd98a13e4beabc8 - React-RCTSettings: 45e3e0a6470310b2dab2ccc6d1d73121ba3ea936 - React-RCTText: 21934e0a51d522abcd0a275407e80af45d6fd9ec - React-RCTVibration: 0f76400ee3cec6edb9c125da49fed279340d145a - ReactCommon: a6a294e7028ed67b926d29551aa9394fd989c24c - RNCAsyncStorage: 3c304d1adfaea02ec732ac218801cb13897aa8c0 - RNReanimated: b2ab0b693dddd2339bd2f300e770f6302d2e960c - RNSVG: f6177f8d7c095fada7cfee2e4bb7388ba426064c - SAMKeychain: 483e1c9f32984d50ca961e26818a534283b4cd5c - SDWebImage: a72e880a8fe0f7fc31efe15aaed443c074d2a80c - Sentry: e2707f9a6b498277d9620a48fcb1bd3b655c8473 - SentryReactNative: 3dff4e9bd82aa581dc64ff8d2524d7007cea076b - Specta: 3e1bd89c3517421982dc4d1c992503e48bd5fe66 - Stripe: db29ad197c74aca6fb981e4e8355cf7ebd0fca5a - tipsi-stripe: 8aaaa6f5e4cfea5c35be3affbb616c4e6cfafa5f - "UIView+BooleanAnimations": a760be9a066036e55f298b7b7350a6cb14cfcd97 - Yoga: ba3d99dbee6c15ea6bbe3783d1f0cb1ffb79af0f - -PODFILE CHECKSUM: b9064f04abd7946ac749571c08020f82271ac2d4 - -COCOAPODS: 1.7.5 diff --git a/emission/Example/Resources/UITabBarDownloadsTemplate@2x.png b/emission/Example/Resources/UITabBarDownloadsTemplate@2x.png deleted file mode 100644 index cb5dad8ef9f4fff396d3acb574cb39f996facae6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmeAS@N?(olHy`uVBq!ia0vp^YCvqj!3HF2H*shHDaPU;cPEB*=VV?2Ih+L^k;M!Q zVyYm_=ozH)0VpVw>Ea&(q?v#i1SEhMq!UDg@ZHj7pSJ?(m7Xq+ArYK!rUY^|81Oi= ze*9-1X1>so>5$x$(vpI^Tw zFQ@94%YHStolooYUN=oDHjzl&x0kDIi+S(6yTPWh0re)Qbmm)V&EY7WBg}rN?an$I ztvie)v!@g@Gcf%BAE06#0Q9{&$kA^@PIDb{;92v-v#UeN_2YxPi~s*;?Rvyq%4Vgw zrA#`PU(U=x<*rX!`<5*lU5`Q;H6^P{`VZ`BoqFlv8BU8WXMQDL-gu}y`zy!!^oBdq z8yH?)T(+5IqVb#f2Ez$lmp3XMb<5|rVfgg^0N00)p37MpW4>8<_pURL)!wCc;XcEz zj>@-budLow>ZL0uT7|hRJD|xJ`(pcp(pR^i`k43}?|Pw9QPX?x4&V7piF2!-W~e(` zsm(~K&(JGe)*t1jv1*oW(Z1e$$0`)-nT^yP)8=jc8+O5~t)%YWj4SCHdn~Wn{5EAX zc4H2H5Y<>ZU*d{HuaDLj!=pD3_I@>8@-xS0cE__l8(%Cta$5Sb+9Jz*on4wAKONiB pnUR=", "admin_level", 3]], - "layout": {"line-join": "round", "line-cap": "round"}, - "paint": { - "line-dasharray": [ - "step", - ["zoom"], - ["literal", [2, 0]], - 7, - ["literal", [2, 2, 6, 2]] - ], - "line-width": [ - "interpolate", - ["linear"], - ["zoom"], - 7, - 0.75, - 12, - 1.5 - ], - "line-opacity": [ - "interpolate", - ["linear"], - ["zoom"], - 2, - 0, - 3, - 1 - ], - "line-color": [ - "step", - ["zoom"], - "hsl(0, 0%, 80%)", - 4, - "hsl(0, 0%, 65%)" - ] - } - }, - { - "id": "admin-country", - "type": "line", - "source": "composite", - "source-layer": "admin", - "minzoom": 1, - "filter": [ - "all", - ["<=", "admin_level", 2], - ["==", "disputed", 0], - ["==", "maritime", 0] - ], - "layout": {"line-join": "round", "line-cap": "round"}, - "paint": { - "line-color": "hsl(0, 0%, 50%)", - "line-width": [ - "interpolate", - ["linear"], - ["zoom"], - 3, - 0.5, - 10, - 2 - ] - } - }, - { - "id": "admin-country-disputed", - "type": "line", - "source": "composite", - "source-layer": "admin", - "minzoom": 1, - "filter": [ - "all", - ["<=", "admin_level", 2], - ["==", "disputed", 1], - ["==", "maritime", 0] - ], - "layout": {"line-join": "round"}, - "paint": { - "line-color": "hsl(0, 0%, 50%)", - "line-width": [ - "interpolate", - ["linear"], - ["zoom"], - 3, - 0.5, - 10, - 2 - ], - "line-dasharray": [1.5, 1.5] - } - }, - { - "id": "road-label", - "type": "symbol", - "source": "composite", - "source-layer": "road_label", - "minzoom": 12, - "filter": [ - "in", - "class", - "link", - "motorway", - "pedestrian", - "primary", - "secondary", - "street", - "street_limited", - "tertiary", - "trunk" - ], - "layout": { - "text-size": ["match", ["get", "class"], "motorway", 8, 8], - "text-max-angle": 30, - "text-transform": "uppercase", - "text-font": ["Unica77 LL Regular", "Arial Unicode MS Regular"], - "symbol-placement": "line", - "text-padding": 1, - "text-rotation-alignment": "map", - "text-pitch-alignment": "viewport", - "text-field": ["get", "name_en"], - "text-letter-spacing": 0.15, - "text-max-width": 11.5 - }, - "paint": { - "text-color": "hsla(0, 72%, 0%, 0.73)", - "text-halo-color": "hsl(0, 0%, 100%)", - "text-halo-width": 1, - "text-opacity": 1 - } - }, - { - "id": "poi-label", - "type": "symbol", - "source": "composite", - "source-layer": "poi_label", - "filter": ["<=", "scalerank", 3], - "layout": { - "text-line-height": 1.1, - "text-size": [ - "interpolate", - ["linear"], - ["zoom"], - 10, - 11, - 18, - 12 - ], - "text-max-angle": 38, - "text-font": [ - "EB Garamond Regular", - "Arial Unicode MS Regular" - ], - "text-padding": 2, - "text-offset": [0, 0.75], - "text-anchor": "top", - "text-field": ["get", "name_en"], - "text-letter-spacing": 0, - "text-max-width": 8 - }, - "paint": { - "text-color": "hsla(208, 14%, 11%, 0.55)", - "text-halo-color": "hsla(0, 0%, 100%, 0.32)", - "text-halo-width": 1, - "text-halo-blur": 0.5 - } - }, - { - "id": "airport-label", - "type": "symbol", - "source": "composite", - "source-layer": "airport_label", - "filter": ["<=", "scalerank", 2], - "layout": { - "text-line-height": 1.1, - "text-size": [ - "interpolate", - ["linear"], - ["zoom"], - 10, - 12, - 18, - 18 - ], - "icon-image": [ - "step", - ["zoom"], - ["concat", ["get", "maki"], "-11"], - 13, - ["concat", ["get", "maki"], "-15"] - ], - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], - "text-padding": 2, - "text-offset": [0, 0.75], - "text-anchor": "top", - "text-field": [ - "step", - ["zoom"], - ["get", "ref"], - 14, - ["get", "name_en"] - ], - "text-max-width": 9 - }, - "paint": { - "text-color": "hsl(38, 19%, 29%)", - "text-halo-color": "hsl(0, 0%, 100%)", - "text-halo-width": 1 - } - }, - { - "id": "place-neighborhood-suburb-label", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 12, - "maxzoom": 15, - "filter": ["in", "type", "neighbourhood", "suburb"], - "layout": { - "text-field": ["get", "name_en"], - "text-transform": "uppercase", - "text-letter-spacing": 0.15, - "text-max-width": 8, - "text-font": ["Unica77 LL Regular", "Arial Unicode MS Regular"], - "text-padding": 3, - "text-size": [ - "interpolate", - ["linear"], - ["zoom"], - 12, - 9, - 16, - 12 - ] - }, - "paint": { - "text-halo-color": "hsl(0, 0%, 100%)", - "text-halo-width": 1, - "text-color": "hsl(279, 0%, 17%)" - } - }, - { - "id": "place-town-village-hamlet-label", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 6, - "maxzoom": 14, - "filter": ["in", "type", "hamlet", "town", "village"], - "layout": { - "text-size": [ - "interpolate", - ["linear"], - ["zoom"], - 5, - ["match", ["get", "type"], "town", 9.5, 8], - 16, - ["match", ["get", "type"], "town", 20, 16] - ], - "text-font": [ - "step", - ["zoom"], - [ - "literal", - ["EB Garamond Regular", "Arial Unicode MS Regular"] - ], - 12, - [ - "match", - ["get", "type"], - "town", - [ - "literal", - ["EB Garamond Regular", "Arial Unicode MS Regular"] - ], - [ - "literal", - ["EB Garamond Regular", "Arial Unicode MS Regular"] - ] - ] - ], - "text-max-width": 7, - "text-field": ["get", "name_en"] - }, - "paint": { - "text-color": "hsl(0, 0%, 0%)", - "text-halo-blur": 0.5, - "text-halo-color": "hsl(0, 0%, 100%)", - "text-halo-width": 1 - } - }, - { - "id": "place-city-label-minor", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 1, - "maxzoom": 14, - "filter": ["all", ["!has", "scalerank"], ["==", "type", "city"]], - "layout": { - "text-size": [ - "interpolate", - ["linear"], - ["zoom"], - 5, - 12, - 16, - 27 - ], - "text-font": [ - "EB Garamond Regular", - "Arial Unicode MS Regular" - ], - "text-max-width": 10, - "text-field": ["get", "name_en"] - }, - "paint": { - "text-color": [ - "interpolate", - ["linear"], - ["zoom"], - 5, - "hsl(0, 0%, 33%)", - 6, - "hsl(0, 0%, 36%)" - ], - "text-halo-blur": 0.5, - "text-halo-color": "hsl(0, 0%, 100%)", - "text-halo-width": 1.25 - } - }, - { - "id": "place-city-label-major", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 1, - "maxzoom": 14, - "filter": ["all", ["==", "type", "city"], ["has", "scalerank"]], - "layout": { - "text-size": [ - "interpolate", - ["linear"], - ["zoom"], - 5, - ["step", ["get", "scalerank"], 14, 4, 12], - 16, - ["step", ["get", "scalerank"], 30, 4, 22] - ], - "text-font": [ - "step", - ["zoom"], - [ - "literal", - ["Unica77 LL Medium", "Arial Unicode MS Regular"] - ], - 11, - [ - "step", - ["get", "scalerank"], - [ - "literal", - ["EB Garamond Regular", "Arial Unicode MS Bold"] - ], - 5, - [ - "literal", - ["EB Garamond Regular", "Arial Unicode MS Regular"] - ] - ] - ], - "text-max-width": 10, - "text-field": ["get", "name_en"], - "text-letter-spacing": 0 - }, - "paint": { - "text-color": [ - "interpolate", - ["linear"], - ["zoom"], - 5, - "hsl(0, 0%, 33%)", - 6, - "hsl(0, 0%, 0%)" - ], - "text-halo-blur": 0.5, - "text-halo-color": "hsl(0, 0%, 100%)", - "text-halo-width": 1.25, - "text-opacity": 1 - } - }, - { - "id": "state-label", - "type": "symbol", - "source": "composite", - "source-layer": "state_label", - "minzoom": 4, - "maxzoom": 8, - "layout": { - "text-line-height": 1.2, - "text-size": [ - "interpolate", - ["linear"], - ["zoom"], - 4, - ["step", ["get", "area"], 8, 20000, 9, 80000, 10], - 9, - ["step", ["get", "area"], 14, 20000, 18, 80000, 23] - ], - "text-transform": "uppercase", - "text-font": ["Roboto Black", "Arial Unicode MS Bold"], - "text-padding": 1, - "text-field": [ - "step", - ["zoom"], - [ - "step", - ["get", "area"], - ["get", "abbr"], - 80000, - ["get", "name_en"] - ], - 5, - ["get", "name_en"] - ], - "text-letter-spacing": 0.2, - "text-max-width": 6 - }, - "paint": { - "text-color": "hsl(38, 7%, 64%)", - "text-halo-width": 1, - "text-halo-color": "hsl(0, 0%, 100%)" - } - }, - { - "id": "country-label", - "type": "symbol", - "source": "composite", - "source-layer": "country_label", - "minzoom": 1, - "maxzoom": 8, - "layout": { - "text-field": ["get", "name_en"], - "text-max-width": [ - "interpolate", - ["linear"], - ["zoom"], - 0, - 5, - 3, - 6 - ], - "text-font": [ - "step", - ["zoom"], - ["literal", ["Roboto Medium", "Arial Unicode MS Regular"]], - 4, - ["literal", ["Roboto Bold", "Arial Unicode MS Bold"]] - ], - "text-size": [ - "interpolate", - ["linear"], - ["zoom"], - 2, - ["step", ["get", "scalerank"], 13, 3, 11, 5, 9], - 9, - ["step", ["get", "scalerank"], 35, 3, 27, 5, 22] - ] - }, - "paint": { - "text-halo-width": 1.5, - "text-halo-color": "hsl(0, 0%, 100%)", - "text-color": "hsl(0, 0%, 0%)" - } - } - ], - "created": "2018-12-12T14:00:00.406Z", - "id": "cjpl8rt6t0gv12sp9bfpygswz", - "modified": "2018-12-13T18:28:47.364Z", - "owner": "biron-io", - "visibility": "private", - "draft": false -} \ No newline at end of file diff --git a/emission/Example/compile_commands_emitting_clang b/emission/Example/compile_commands_emitting_clang deleted file mode 100755 index b8978cf06bb..00000000000 --- a/emission/Example/compile_commands_emitting_clang +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -CLANG="${DT_TOOLCHAIN_DIR}/usr/bin/clang" - -if type -p clang-compilation-database-tool > /dev/null 2>&1; then - clang-compilation-database-tool dump ${CLANG} $@ -fi - -exec ${CLANG} $@ \ No newline at end of file diff --git a/emission/LICENSE b/emission/LICENSE deleted file mode 100644 index 01c6419254b..00000000000 --- a/emission/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2018 Artsy Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/emission/Makefile b/emission/Makefile deleted file mode 100644 index 018c3f990cf..00000000000 --- a/emission/Makefile +++ /dev/null @@ -1,101 +0,0 @@ -BREW := $(shell command -v brew 2> /dev/null) -NVM := $(shell command -v nvm 2> /dev/null) -YARN := $(shell command -v yarn 2> /dev/null) -WATCHMAN := $(shell command -v watchman 2> /dev/null) -CODE := $(shell command -v code 2> /dev/null) - -setup: -ifndef BREW - $(error "Please install homebrew before running `make oss`: https://brew.sh") -endif - -ifndef NVM - @echo "Installing NVM" - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash - nvm install 12 -endif - -ifndef YARN - @echo "Installing Yarn" - npm install -g yarn -endif - -ifndef WATCHMAN - @echo "Installing Watchman" - brew install pcre - brew link pcre - brew install watchman --HEAD -endif - -ifndef CODE - @echo "Installing Visual Studio Code" - brew cask install visual-studio-code -endif - - @echo "Installing Node Dependencies" - yarn install - - @echo ""; - @echo ""; - @echo "That is all of the dependencies for Emission set up, to run the app:"; - @echo ""; - @echo " - Ensure you have an Artsy account: $$(tput setaf 3)https://www.artsy.net/sign_up$$(tput sgr0)" - @echo " - Open the folder in VS Code: '$$(tput setaf 3)code .$$(tput sgr0)'" - @echo " - Start the dev server: '$$(tput setaf 3)yarn start$$(tput sgr0)'" - @echo " - Open Xcode, and run Emission: '$$(tput setaf 3)open Example/Emission.xcworkspace$$(tput sgr0)'" - @echo "" - @echo "Any other details can be found in the README." - @echo "Enjoy!" - @echo "" - -artsy: - cd Example && bundle && bundle exec pod install - -oss: - @echo "Installing Cocoa Dependencies" - cd Example && bundle && bundle exec pod keys set ArtsyAPIClientSecret "3a33d2085cbd1176153f99781bbce7c6" Emission - cd Example && bundle exec pod keys set ArtsyAPIClientKey "e750db60ac506978fc70" - cd Example && bundle exec pod keys set StripePublishableKey "-" - cd Example && bundle exec pod keys set MapBoxAPIClientKey "-" - - -JQ := $(shell command -v jq 2> /dev/null) -RNVERSION=$(shell cd node_modules/react-native && pod ipc spec React.podspec | jq '.version' -r) -YOGAVERSION=$(shell cd node_modules/react-native/ReactCommon/yoga && pod ipc spec yoga.podspec | jq '.version' -r) -YOGA_SRC_BEFORE=yoga\/\*\*\/\*.{c,h} -YOGA_SRC_AFTER=ReactCommon\/yoga\/yoga\/\*\*\/\*.\{c,h\} -YOGA_MASTER_PODSPEC_URL = "https://raw.githubusercontent.com/facebook/react-native/master/ReactCommon/yoga/yoga.podspec" - -# This is only needed if you're updating React Native -update_specs_repos: -ifndef JQ - $(error "Please install jq before running `brew install jq`") -endif - - # Comment out Yoga, as it's dealt with below in ship_yoga - - @echo "Updating Artsy specs repo"; - pod repo update artsy - - @echo "Creating folder in artsy specs repo"; - mkdir ~/.cocoapods/repos/artsy/React/$(RNVERSION) - # mkdir ~/.cocoapods/repos/artsy/yoga/$(YOGAVERSION) - - @echo "Putting JSON specs in the folders"; - cd node_modules/react-native && pod ipc spec React.podspec > ~/.cocoapods/repos/artsy/React/$(RNVERSION)/React.podspec.json - # cd node_modules/react-native/ReactCommon/yoga && pod ipc spec yoga.podspec > ~/.cocoapods/repos/artsy/yoga/$(YOGAVERSION)/yoga.podspec.json - - # @echo "Modifying Yoga to reflect the React Native repo paths" - # sed -i -e 's/$(YOGA_SRC_BEFORE)/$(YOGA_SRC_AFTER)/g' ~/.cocoapods/repos/artsy/Yoga/$(YOGAVERSION)/Yoga.podspec.json - - @echo "Commiting the changes to our shared repo" - cd ~/.cocoapods/repos/artsy && git add . - cd ~/.cocoapods/repos/artsy && git commit -m "Shipping a new version of the React deps: v$(RNVERSION) for Emission deploys" - cd ~/.cocoapods/repos/artsy && git push - -# Use this PR for yoga podspec -# https://github.com/facebook/react-native/pull/18492 -ship_yoga: - # curl $(YOGA_MASTER_PODSPEC_URL) > ./externals/yoga/yoga.podspec - INSTALL_YOGA_WITHOUT_PATH_OPTION="true" pod ipc spec ./externals/yoga/yoga.podspec > ./externals/yoga/yoga.podspec.json - # rm -f ./externals/yoga/yoga.podspec diff --git a/emission/Pod/Assets/Emission.js b/emission/Pod/Assets/Emission.js deleted file mode 100644 index bb50fb29728..00000000000 --- a/emission/Pod/Assets/Emission.js +++ /dev/null @@ -1,1908 +0,0 @@ -var __BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now(),__DEV__=false,process=this.process||{};process.env=process.env||{};process.env.NODE_ENV=process.env.NODE_ENV||"production"; -!(function(r){"use strict";r.__r=o,r.__d=function(r,i,n){if(null!=e[i])return;var o={dependencyMap:n,factory:r,hasError:!1,importedAll:t,importedDefault:t,isInitialized:!1,publicModule:{exports:{}}};e[i]=o},r.__c=n,r.__registerSegment=function(r,e){s[r]=e};var e=n(),t={},i={}.hasOwnProperty;function n(){return e=Object.create(null)}function o(r){var t=r,i=e[t];return i&&i.isInitialized?i.publicModule.exports:d(t,i)}function l(r){var i=r;if(e[i]&&e[i].importedDefault!==t)return e[i].importedDefault;var n=o(i),l=n&&n.__esModule?n.default:n;return e[i].importedDefault=l}function u(r){var n=r;if(e[n]&&e[n].importedAll!==t)return e[n].importedAll;var l,u=o(n);if(u&&u.__esModule)l=u;else{if(l={},u)for(var a in u)i.call(u,a)&&(l[a]=u[a]);l.default=u}return e[n].importedAll=l}o.importDefault=l,o.importAll=u;var a=!1;function d(e,t){if(!a&&r.ErrorUtils){var i;a=!0;try{i=v(e,t)}catch(e){r.ErrorUtils.reportFatalError(e)}return a=!1,i}return v(e,t)}var c=16,f=65535;function p(r){return{segmentId:r>>>c,localId:r&f}}o.unpackModuleId=p,o.packModuleId=function(r){return(r.segmentId<0){var n=p(t),a=n.segmentId,d=n.localId,c=s[a];null!=c&&(c(d),i=e[t])}var f=r.nativeRequire;if(!i&&f){var v=p(t),h=v.segmentId;f(v.localId,h),i=e[t]}if(!i)throw Error('Requiring unknown module "'+t+'".');if(i.hasError)throw m(t,i.error);i.isInitialized=!0;var I=i,g=I.factory,y=I.dependencyMap;try{var _=i.publicModule;return _.id=t,g(r,o,l,u,_,_.exports,y),i.factory=void 0,i.dependencyMap=void 0,_.exports}catch(r){throw i.hasError=!0,i.error=r,i.isInitialized=!1,i.publicModule.exports=void 0,r}}function m(r,e){return Error('Requiring module "'+r+'", which threw an exception: '+e)}})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this); -!(function(n){var e=(function(){function n(n,e){return n}function e(n){var e={};return n.forEach(function(n,r){e[n]=!0}),e}function r(n,r,u){if(n.formatValueCalls++,n.formatValueCalls>200)return"[TOO BIG formatValueCalls "+n.formatValueCalls+" exceeded limit of 200]";var f=t(n,r);if(f)return f;var c=Object.keys(r),s=e(c);if(d(r)&&(c.indexOf('message')>=0||c.indexOf('description')>=0))return o(r);if(0===c.length){if(v(r)){var p=r.name?': '+r.name:'';return n.stylize('[Function'+p+']','special')}if(g(r))return n.stylize(RegExp.prototype.toString.call(r),'regexp');if(y(r))return n.stylize(Date.prototype.toString.call(r),'date');if(d(r))return o(r)}var h,b,m='',j=!1,O=['{','}'];(h=r,Array.isArray(h)&&(j=!0,O=['[',']']),v(r))&&(m=' [Function'+(r.name?': '+r.name:'')+']');return g(r)&&(m=' '+RegExp.prototype.toString.call(r)),y(r)&&(m=' '+Date.prototype.toUTCString.call(r)),d(r)&&(m=' '+o(r)),0!==c.length||j&&0!=r.length?u<0?g(r)?n.stylize(RegExp.prototype.toString.call(r),'regexp'):n.stylize('[Object]','special'):(n.seen.push(r),b=j?i(n,r,u,s,c):c.map(function(e){return a(n,r,u,s,e,j)}),n.seen.pop(),l(b,m,O)):O[0]+m+O[1]}function t(n,e){if(s(e))return n.stylize('undefined','undefined');if('string'==typeof e){var r="'"+JSON.stringify(e).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(r,'string')}return c(e)?n.stylize(''+e,'number'):u(e)?n.stylize(''+e,'boolean'):f(e)?n.stylize('null','null'):void 0}function o(n){return'['+Error.prototype.toString.call(n)+']'}function i(n,e,r,t,o){for(var i=[],l=0,u=e.length;l-1&&(u=a?u.split('\n').map(function(n){return' '+n}).join('\n').substr(2):'\n'+u.split('\n').map(function(n){return' '+n}).join('\n')):u=n.stylize('[Circular]','special')),s(l)){if(a&&i.match(/^\d+$/))return u;(l=JSON.stringify(''+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(l=l.substr(1,l.length-2),l=n.stylize(l,'name')):(l=l.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),l=n.stylize(l,'string'))}return l+': '+u}function l(n,e,r){return n.reduce(function(n,e){return 0,e.indexOf('\n')>=0&&0,n+e.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?r[0]+(''===e?'':e+'\n ')+' '+n.join(',\n ')+' '+r[1]:r[0]+e+' '+n.join(', ')+' '+r[1]}function u(n){return'boolean'==typeof n}function f(n){return null===n}function c(n){return'number'==typeof n}function s(n){return void 0===n}function g(n){return p(n)&&'[object RegExp]'===h(n)}function p(n){return'object'==typeof n&&null!==n}function y(n){return p(n)&&'[object Date]'===h(n)}function d(n){return p(n)&&('[object Error]'===h(n)||n instanceof Error)}function v(n){return'function'==typeof n}function h(n){return Object.prototype.toString.call(n)}function b(n,e){return Object.prototype.hasOwnProperty.call(n,e)}return function(e,t){return r({seen:[],formatValueCalls:0,stylize:n},e,t.depth)}})(),r='(index)',t={trace:0,info:1,warn:2,error:3},o=[];o[t.trace]='debug',o[t.info]='log',o[t.warn]='warning',o[t.error]='error';var i=1;function a(r){return function(){var a;a=1===arguments.length&&'string'==typeof arguments[0]?arguments[0]:Array.prototype.map.call(arguments,function(n){return e(n,{depth:10})}).join(', ');var l=r;'Warning: '===a.slice(0,9)&&l>=t.error&&(l=t.warn),n.__inspectorLog&&n.__inspectorLog(o[l],a,[].slice.call(arguments),i),s.length&&(a=g('',a)),n.nativeLoggingHook(a,l)}}function l(n,e){return Array.apply(null,Array(e)).map(function(){return n})}var u="\u2502",f="\u2510",c="\u2518",s=[];function g(n,e){return s.join('')+n+' '+(e||'')}if(n.nativeLoggingHook){n.console;n.console={error:a(t.error),info:a(t.info),log:a(t.info),warn:a(t.warn),trace:a(t.trace),debug:a(t.trace),table:function(e){if(!Array.isArray(e)){var o=e;for(var i in e=[],o)if(o.hasOwnProperty(i)){var a=o[i];a[r]=i,e.push(a)}}if(0!==e.length){var u=Object.keys(e[0]).sort(),f=[],c=[];u.forEach(function(n,r){c[r]=n.length;for(var t=0;t';return function(){for(var r,u=arguments.length,o=new Array(u),a=0;a0?s[s.length-1]:null,h=s.length>1?s[s.length-2]:null,y='function'==typeof v,C='function'==typeof h;C&&u(y,'Cannot have a non-function arg after a function arg.');var p=y?v:null,M=C?h:null,b=y+C;if(s=s.slice(0,s.length-b),'sync'===l)return o.callNativeSyncHook(n,t,s,M,p);o.enqueueNativeCall(n,t,s,M,p)}).type=l,f}function c(n,t){return-1!==n.indexOf(t)}function v(t,o){return n(o,t||{})}g.__fbGenNativeModule=l;var h={};if(g.nativeModuleProxy)h=g.nativeModuleProxy;else if(!g.nativeExtensions){var y=g.__fbBatchedBridgeConfig;u(y,'__fbBatchedBridgeConfig is not set, cannot invoke native modules');var C=r(d[4]);(y.remoteModuleConfig||[]).forEach(function(n,t){var o=l(n,t);o&&(o.module?h[o.name]=o.module:C(h,o.name,{get:function(){return f(o.name,t)}}))})}m.exports=h},13,[14,15,19,4,31]); -__d(function(g,r,i,a,m,e,d){function t(){return m.exports=t=Object.assign||function(t){for(var n=1;n=5){var c=this._queue;this._queue=[[],[],[],this._callID],this._lastFlush=o,g.nativeFlushQueueImmediate(c)}n.counterEvent('pending_js_to_native_queue',this._queue[0].length),this.__spy&&this.__spy({type:1,module:t+'',method:l,args:u})}},{key:"createDebugLookup",value:function(t,l,u){}},{key:"setImmediatesCallback",value:function(t){this._immediatesCallback=t}},{key:"__guard",value:function(t){if(this.__shouldPauseOnThrow())t();else try{t()}catch(t){s.reportFatalError(t)}}},{key:"__shouldPauseOnThrow",value:function(){return'undefined'!=typeof DebuggerInternal&&!0===DebuggerInternal.shouldPauseOnThrow}},{key:"__callImmediates",value:function(){n.beginEvent('JSTimers.callImmediates()'),null!=this._immediatesCallback&&this._immediatesCallback(),n.endEvent()}},{key:"__callFunction",value:function(t,l,u){this._lastFlush=Date.now(),this._eventLoopStartTime=this._lastFlush,this.__spy?n.beginEvent(t+"."+l+"("+o(u)+")"):n.beginEvent(t+"."+l+"(...)"),this.__spy&&this.__spy({type:0,module:t,method:l,args:u});var s=this.getCallableModule(t);h(!!s,'Module %s is not a registered callable module (calling %s)',t,l),h(!!s[l],'Method %s does not exist on module %s',l,t);var c=s[l].apply(s,u);return n.endEvent(),c}},{key:"__invokeCallback",value:function(l,u){this._lastFlush=Date.now(),this._eventLoopStartTime=this._lastFlush;var s=l>>>1,n=1&l?this._successCallbacks.get(s):this._failureCallbacks.get(s);n&&(this._successCallbacks.delete(s),this._failureCallbacks.delete(s),n.apply(void 0,t(u)))}}],[{key:"spy",value:function(t){c.prototype.__spy=!0===t?function(t){console.log((0===t.type?'N->JS':'JS->N')+" : "+(t.module?t.module+'.':'')+t.method+"("+JSON.stringify(t.args)+")")}:!1===t?null:t}}]),c})());m.exports=c},20,[21,25,26,27,28,29,4,30,5]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]);m.exports=function(u){return n(u)||t(u)||o()}},21,[22,23,24]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(Array.isArray(n)){for(var t=0,f=new Array(n.length);t=0||Object.prototype.propertyIsEnumerable.call(n,l)&&(b[l]=n[l])}return b}},53,[54]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n,t){if(null==n)return{};var f,u,o={},c=Object.keys(n);for(u=0;u=0||(o[f]=n[f]);return o}},54,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),s={__constants:null,OS:'ios',get Version(){return this.constants.osVersion},get constants(){return null==this.__constants&&(this.__constants=t.default.getConstants()),this.__constants},get isPad(){return'pad'===this.constants.interfaceIdiom},get isTVOS(){return s.isTV},get isTV(){return'tv'===this.constants.interfaceIdiom},get isTesting(){return!1},select:function(t){return'ios'in t?t.ios:t.default}};m.exports=s},55,[9,56]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])).getEnforcing('PlatformConstants');e.default=n},56,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},57,[58]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.for:"@@for"),o=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.element"):60103,u=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.portal"):60106,f=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.fragment"):60107,l=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.strict_mode"):60108,c=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.profiler"):60114,s=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.provider"):60109,y=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.context"):60110,p=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.forward_ref"):60112,b=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense"):60113,v=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense_list"):60120,S=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.memo"):60115,h=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.lazy"):60116;n&&("function"==typeof Symbol?Symbol.for:"@@for")("react.fundamental"),n&&("function"==typeof Symbol?Symbol.for:"@@for")("react.responder");var _="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.iterator:"@@iterator");function k(t){for(var n=t.message,o="https://reactjs.org/docs/error-decoder.html?invariant="+n,u=1;uD.length&&D.push(t)}function N(t,n,f,l){var c=typeof t;"undefined"!==c&&"boolean"!==c||(t=null);var s=!1;if(null===t)s=!0;else switch(c){case"string":case"number":s=!0;break;case"object":switch(t.$$typeof){case o:case u:s=!0}}if(s)return f(l,t,""===n?"."+z(t,0):n),1;if(s=0,n=""===n?".":n+":",Array.isArray(t))for(var y=0;y1&&(t-=1),t<.16666666666666666?l+6*(n-l)*t:t<.5?n:t<.6666666666666666?l+(n-l)*(.6666666666666666-t)*6:l}function n(n,t,o){var u=o<.5?o*(1+t):o+t-o*t,s=2*o-u,h=l(s,u,n+.3333333333333333),c=l(s,u,n),b=l(s,u,n-.3333333333333333);return Math.round(255*h)<<24|Math.round(255*c)<<16|Math.round(255*b)<<8}var t,o='[-+]?\\d*\\.?\\d+',u="[-+]?\\d*\\.?\\d+%";function s(){for(var l=arguments.length,n=new Array(l),t=0;t255?255:n}function c(l){return(parseFloat(l)%360+360)%360/360}function b(l){var n=parseFloat(l);return n<0?0:n>1?255:Math.round(255*n)}function p(l){var n=parseFloat(l);return n<0?0:n>100?1:n/100}var y={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199};m.exports=function(l){var k,f=(void 0===t&&(t={rgb:new RegExp('rgb'+s(o,o,o)),rgba:new RegExp('rgba'+s(o,o,o,o)),hsl:new RegExp('hsl'+s(o,u,u)),hsla:new RegExp('hsla'+s(o,u,u,o)),hex3:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex4:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#([0-9a-fA-F]{6})$/,hex8:/^#([0-9a-fA-F]{8})$/}),t);return'number'==typeof l?l>>>0===l&&l>=0&&l<=4294967295?l:null:(k=f.hex6.exec(l))?parseInt(k[1]+'ff',16)>>>0:y.hasOwnProperty(l)?y[l]:(k=f.rgb.exec(l))?(h(k[1])<<24|h(k[2])<<16|h(k[3])<<8|255)>>>0:(k=f.rgba.exec(l))?(h(k[1])<<24|h(k[2])<<16|h(k[3])<<8|b(k[4]))>>>0:(k=f.hex3.exec(l))?parseInt(k[1]+k[1]+k[2]+k[2]+k[3]+k[3]+'ff',16)>>>0:(k=f.hex8.exec(l))?parseInt(k[1],16)>>>0:(k=f.hex4.exec(l))?parseInt(k[1]+k[1]+k[2]+k[2]+k[3]+k[3]+k[4]+k[4],16)>>>0:(k=f.hsl.exec(l))?(255|n(c(k[1]),p(k[2]),p(k[3])))>>>0:(k=f.hsla.exec(l))?(n(c(k[1]),p(k[2]),p(k[3]))|b(k[4]))>>>0:null}},68,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t={display:n.oneOf(['none','flex']),width:n.oneOfType([n.number,n.string]),height:n.oneOfType([n.number,n.string]),start:n.oneOfType([n.number,n.string]),end:n.oneOfType([n.number,n.string]),top:n.oneOfType([n.number,n.string]),left:n.oneOfType([n.number,n.string]),right:n.oneOfType([n.number,n.string]),bottom:n.oneOfType([n.number,n.string]),minWidth:n.oneOfType([n.number,n.string]),maxWidth:n.oneOfType([n.number,n.string]),minHeight:n.oneOfType([n.number,n.string]),maxHeight:n.oneOfType([n.number,n.string]),margin:n.oneOfType([n.number,n.string]),marginVertical:n.oneOfType([n.number,n.string]),marginHorizontal:n.oneOfType([n.number,n.string]),marginTop:n.oneOfType([n.number,n.string]),marginBottom:n.oneOfType([n.number,n.string]),marginLeft:n.oneOfType([n.number,n.string]),marginRight:n.oneOfType([n.number,n.string]),marginStart:n.oneOfType([n.number,n.string]),marginEnd:n.oneOfType([n.number,n.string]),padding:n.oneOfType([n.number,n.string]),paddingVertical:n.oneOfType([n.number,n.string]),paddingHorizontal:n.oneOfType([n.number,n.string]),paddingTop:n.oneOfType([n.number,n.string]),paddingBottom:n.oneOfType([n.number,n.string]),paddingLeft:n.oneOfType([n.number,n.string]),paddingRight:n.oneOfType([n.number,n.string]),paddingStart:n.oneOfType([n.number,n.string]),paddingEnd:n.oneOfType([n.number,n.string]),borderWidth:n.number,borderTopWidth:n.number,borderStartWidth:n.number,borderEndWidth:n.number,borderRightWidth:n.number,borderBottomWidth:n.number,borderLeftWidth:n.number,position:n.oneOf(['absolute','relative']),flexDirection:n.oneOf(['row','row-reverse','column','column-reverse']),flexWrap:n.oneOf(['wrap','nowrap','wrap-reverse']),justifyContent:n.oneOf(['flex-start','flex-end','center','space-between','space-around','space-evenly']),alignItems:n.oneOf(['flex-start','flex-end','center','stretch','baseline']),alignSelf:n.oneOf(['auto','flex-start','flex-end','center','stretch','baseline']),alignContent:n.oneOf(['flex-start','flex-end','center','stretch','space-between','space-around']),overflow:n.oneOf(['visible','hidden','scroll']),flex:n.number,flexGrow:n.number,flexShrink:n.number,flexBasis:n.oneOfType([n.number,n.string]),aspectRatio:n.number,zIndex:n.number,direction:n.oneOf(['inherit','ltr','rtl'])};m.exports=t},69,[70]); -__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])()},70,[71]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);function t(){}function o(){}o.resetWarningCache=t,m.exports=function(){function p(t,o,p,c,s,y){if(y!==n){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name='Invariant Violation',f}}function c(){return p}p.isRequired=p;var s={array:p,bool:p,func:p,number:p,object:p,string:p,symbol:p,any:p,arrayOf:c,element:p,elementType:p,instanceOf:c,node:p,objectOf:c,oneOf:c,oneOfType:c,shape:c,exact:c,checkPropTypes:o,resetWarningCache:t};return s.PropTypes=s,s}},71,[72]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},72,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var s=r(d[0]),h=r(d[1]),o={shadowColor:s,shadowOffset:h.shape({width:h.number,height:h.number}),shadowOpacity:h.number,shadowRadius:h.number};m.exports=o},73,[67,70]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n={transform:t.arrayOf(t.oneOfType([t.shape({perspective:t.number}),t.shape({rotate:t.string}),t.shape({rotateX:t.string}),t.shape({rotateY:t.string}),t.shape({rotateZ:t.string}),t.shape({scale:t.number}),t.shape({scaleX:t.number}),t.shape({scaleY:t.number}),t.shape({translateX:t.number}),t.shape({translateY:t.number}),t.shape({skewX:t.string}),t.shape({skewY:t.string})])),transformMatrix:function(t,s,n){if(t[s])return new Error("The transformMatrix style property is deprecated. Use `transform: [{ matrix: ... }]` instead.")},decomposedMatrix:function(t,s,n){if(t[s])return new Error("The decomposedMatrix style property is deprecated. Use `transform: [...]` instead.")},scaleX:s(t.number,'Use the transform prop instead.'),scaleY:s(t.number,'Use the transform prop instead.'),rotation:s(t.number,'Use the transform prop instead.'),translateX:s(t.number,'Use the transform prop instead.'),translateY:s(t.number,'Use the transform prop instead.')};m.exports=n},74,[70,75]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=function(t,o){return function(c,u,p){n.getViewManagerConfig(p)||void 0===c[u]||console.warn("`"+u+"` supplied to `"+p+"` has been deprecated. "+o);for(var s=arguments.length,f=new Array(s>3?s-3:0),l=3;l>>8)>>>0:void 0}},83,[55,68]); -__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]),r(d[1]),r(d[2]),r(d[3]);m.exports=function(t){return t}},84,[85,55,4,30]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o={createIdentityMatrix:function(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},createCopy:function(t){return[t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]]},createOrthographic:function(t,n,o,u,s,c){return[2/(n-t),0,0,0,0,2/(u-o),0,0,0,0,-2/(c-s),0,-(n+t)/(n-t),-(u+o)/(u-o),-(c+s)/(c-s),1]},createFrustum:function(t,n,o,u,s,c){var v=1/(n-t),f=1/(u-o),h=1/(s-c);return[s*v*2,0,0,0,0,s*f*2,0,0,(n+t)*v,(u+o)*f,(c+s)*h,-1,0,0,c*s*h*2,0]},createPerspective:function(t,n,o,u){var s=1/Math.tan(t/2),c=1/(o-u);return[s/n,0,0,0,0,s,0,0,0,0,(u+o)*c,-1,0,0,u*o*c*2,0]},createTranslate2d:function(t,n){var u=o.createIdentityMatrix();return o.reuseTranslate2dCommand(u,t,n),u},reuseTranslate2dCommand:function(t,n,o){t[12]=n,t[13]=o},reuseTranslate3dCommand:function(t,n,o,u){t[12]=n,t[13]=o,t[14]=u},createScale:function(t){var n=o.createIdentityMatrix();return o.reuseScaleCommand(n,t),n},reuseScaleCommand:function(t,n){t[0]=n,t[5]=n},reuseScale3dCommand:function(t,n,o,u){t[0]=n,t[5]=o,t[10]=u},reusePerspectiveCommand:function(t,n){t[11]=-1/n},reuseScaleXCommand:function(t,n){t[0]=n},reuseScaleYCommand:function(t,n){t[5]=n},reuseScaleZCommand:function(t,n){t[10]=n},reuseRotateXCommand:function(t,n){t[5]=Math.cos(n),t[6]=Math.sin(n),t[9]=-Math.sin(n),t[10]=Math.cos(n)},reuseRotateYCommand:function(t,n){t[0]=Math.cos(n),t[2]=-Math.sin(n),t[8]=Math.sin(n),t[10]=Math.cos(n)},reuseRotateZCommand:function(t,n){t[0]=Math.cos(n),t[1]=Math.sin(n),t[4]=-Math.sin(n),t[5]=Math.cos(n)},createRotateZ:function(t){var n=o.createIdentityMatrix();return o.reuseRotateZCommand(n,t),n},reuseSkewXCommand:function(t,n){t[4]=Math.tan(n)},reuseSkewYCommand:function(t,n){t[1]=Math.tan(n)},multiplyInto:function(t,n,o){var u=n[0],s=n[1],c=n[2],v=n[3],f=n[4],h=n[5],M=n[6],l=n[7],C=n[8],p=n[9],x=n[10],T=n[11],y=n[12],S=n[13],D=n[14],P=n[15],q=o[0],X=o[1],Y=o[2],I=o[3];t[0]=q*u+X*f+Y*C+I*y,t[1]=q*s+X*h+Y*p+I*S,t[2]=q*c+X*M+Y*x+I*D,t[3]=q*v+X*l+Y*T+I*P,q=o[4],X=o[5],Y=o[6],I=o[7],t[4]=q*u+X*f+Y*C+I*y,t[5]=q*s+X*h+Y*p+I*S,t[6]=q*c+X*M+Y*x+I*D,t[7]=q*v+X*l+Y*T+I*P,q=o[8],X=o[9],Y=o[10],I=o[11],t[8]=q*u+X*f+Y*C+I*y,t[9]=q*s+X*h+Y*p+I*S,t[10]=q*c+X*M+Y*x+I*D,t[11]=q*v+X*l+Y*T+I*P,q=o[12],X=o[13],Y=o[14],I=o[15],t[12]=q*u+X*f+Y*C+I*y,t[13]=q*s+X*h+Y*p+I*S,t[14]=q*c+X*M+Y*x+I*D,t[15]=q*v+X*l+Y*T+I*P},determinant:function(n){var o=t(n,16),u=o[0],s=o[1],c=o[2],v=o[3],f=o[4],h=o[5],M=o[6],l=o[7],C=o[8],p=o[9],x=o[10],T=o[11],y=o[12],S=o[13],D=o[14],P=o[15];return v*M*p*y-c*l*p*y-v*h*x*y+s*l*x*y+c*h*T*y-s*M*T*y-v*M*C*S+c*l*C*S+v*f*x*S-u*l*x*S-c*f*T*S+u*M*T*S+v*h*C*D-s*l*C*D-v*f*p*D+u*l*p*D+s*f*T*D-u*h*T*D-c*h*C*P+s*M*C*P+c*f*p*P-u*M*p*P-s*f*x*P+u*h*x*P},inverse:function(n){var u=o.determinant(n);if(!u)return n;var s=t(n,16),c=s[0],v=s[1],f=s[2],h=s[3],M=s[4],l=s[5],C=s[6],p=s[7],x=s[8],T=s[9],y=s[10],S=s[11],D=s[12],P=s[13],q=s[14],X=s[15];return[(C*S*P-p*y*P+p*T*q-l*S*q-C*T*X+l*y*X)/u,(h*y*P-f*S*P-h*T*q+v*S*q+f*T*X-v*y*X)/u,(f*p*P-h*C*P+h*l*q-v*p*q-f*l*X+v*C*X)/u,(h*C*T-f*p*T-h*l*y+v*p*y+f*l*S-v*C*S)/u,(p*y*D-C*S*D-p*x*q+M*S*q+C*x*X-M*y*X)/u,(f*S*D-h*y*D+h*x*q-c*S*q-f*x*X+c*y*X)/u,(h*C*D-f*p*D-h*M*q+c*p*q+f*M*X-c*C*X)/u,(f*p*x-h*C*x+h*M*y-c*p*y-f*M*S+c*C*S)/u,(l*S*D-p*T*D+p*x*P-M*S*P-l*x*X+M*T*X)/u,(h*T*D-v*S*D-h*x*P+c*S*P+v*x*X-c*T*X)/u,(v*p*D-h*l*D+h*M*P-c*p*P-v*M*X+c*l*X)/u,(h*l*x-v*p*x-h*M*T+c*p*T+v*M*S-c*l*S)/u,(C*T*D-l*y*D-C*x*P+M*y*P+l*x*q-M*T*q)/u,(v*y*D-f*T*D+f*x*P-c*y*P-v*x*q+c*T*q)/u,(f*l*D-v*C*D-f*M*P+c*C*P+v*M*q-c*l*q)/u,(v*C*x-f*l*x+f*M*T-c*C*T-v*M*y+c*l*y)/u]},transpose:function(t){return[t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15]]},multiplyVectorByMatrix:function(n,o){var u=t(n,4),s=u[0],c=u[1],v=u[2],f=u[3];return[s*o[0]+c*o[4]+v*o[8]+f*o[12],s*o[1]+c*o[5]+v*o[9]+f*o[13],s*o[2]+c*o[6]+v*o[10]+f*o[14],s*o[3]+c*o[7]+v*o[11]+f*o[15]]},v3Length:function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])},v3Normalize:function(t,n){var u=1/(n||o.v3Length(t));return[t[0]*u,t[1]*u,t[2]*u]},v3Dot:function(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]},v3Combine:function(t,n,o,u){return[o*t[0]+u*n[0],o*t[1]+u*n[1],o*t[2]+u*n[2]]},v3Cross:function(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]},quaternionToDegreesXYZ:function(n,u,s){var c=t(n,4),v=c[0],f=c[1],h=c[2],M=c[3],l=v*v,C=f*f,p=h*h,x=v*f+h*M,T=M*M+l+C+p,y=180/Math.PI;return x>.49999*T?[0,2*Math.atan2(v,M)*y,90]:x<-.49999*T?[0,-2*Math.atan2(v,M)*y,-90]:[o.roundTo3Places(Math.atan2(2*v*M-2*f*h,1-2*l-2*p)*y),o.roundTo3Places(Math.atan2(2*f*M-2*v*h,1-2*C-2*p)*y),o.roundTo3Places(Math.asin(2*v*f+2*h*M)*y)]},roundTo3Places:function(t){var n=t.toString().split('e');return.001*Math.round(n[0]+'e'+(n[1]?+n[1]-3:3))},decomposeMatrix:function(t){n(16===t.length,'Matrix decomposition needs a list of 3d matrix values, received %s',t);var u=[],s=[],c=[],v=[],f=[];if(t[15]){for(var h=[],M=[],l=0;l<4;l++){h.push([]);for(var C=0;C<4;C++){var p=t[4*l+C]/t[15];h[l].push(p),M.push(3===C?0:p)}}if(M[15]=1,o.determinant(M)){if(0!==h[0][3]||0!==h[1][3]||0!==h[2][3]){var x=[h[0][3],h[1][3],h[2][3],h[3][3]],T=o.inverse(M),y=o.transpose(T);u=o.multiplyVectorByMatrix(x,y)}else u[0]=u[1]=u[2]=0,u[3]=1;for(var S=0;S<3;S++)f[S]=h[3][S];for(var D=[],P=0;P<3;P++)D[P]=[h[P][0],h[P][1],h[P][2]];c[0]=o.v3Length(D[0]),D[0]=o.v3Normalize(D[0],c[0]),v[0]=o.v3Dot(D[0],D[1]),D[1]=o.v3Combine(D[1],D[0],1,-v[0]),v[0]=o.v3Dot(D[0],D[1]),D[1]=o.v3Combine(D[1],D[0],1,-v[0]),c[1]=o.v3Length(D[1]),D[1]=o.v3Normalize(D[1],c[1]),v[0]/=c[1],v[1]=o.v3Dot(D[0],D[2]),D[2]=o.v3Combine(D[2],D[0],1,-v[1]),v[2]=o.v3Dot(D[1],D[2]),D[2]=o.v3Combine(D[2],D[1],1,-v[2]),c[2]=o.v3Length(D[2]),D[2]=o.v3Normalize(D[2],c[2]),v[1]/=c[2],v[2]/=c[2];var q,X=o.v3Cross(D[1],D[2]);if(o.v3Dot(D[0],X)<0)for(var Y=0;Y<3;Y++)c[Y]*=-1,D[Y][0]*=-1,D[Y][1]*=-1,D[Y][2]*=-1;return s[0]=.5*Math.sqrt(Math.max(1+D[0][0]-D[1][1]-D[2][2],0)),s[1]=.5*Math.sqrt(Math.max(1-D[0][0]+D[1][1]-D[2][2],0)),s[2]=.5*Math.sqrt(Math.max(1-D[0][0]-D[1][1]+D[2][2],0)),s[3]=.5*Math.sqrt(Math.max(1+D[0][0]+D[1][1]+D[2][2],0)),D[2][1]>D[1][2]&&(s[0]=-s[0]),D[0][2]>D[2][0]&&(s[1]=-s[1]),D[1][0]>D[0][1]&&(s[2]=-s[2]),{rotationDegrees:q=s[0]<.001&&s[0]>=0&&s[1]<.001&&s[1]>=0?[0,0,o.roundTo3Places(180*Math.atan2(D[0][1],D[0][0])/Math.PI)]:o.quaternionToDegreesXYZ(s,h,D),perspective:u,quaternion:s,scale:c,skew:v,translation:f,rotate:q[2],rotateX:q[0],rotateY:q[1],scaleX:c[0],scaleY:c[1],translateX:f[0],translateY:f[1]}}}}};m.exports=o},85,[15,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t={width:void 0,height:void 0};m.exports=function(h,n){return(h=h||t)!==(n=n||t)&&(h.width!==n.width||h.height!==n.height)}},86,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=(r(d[2]),r(d[3]),r(d[4]),r(d[5]),(function(){function u(){t(this,u)}return n(u,null,[{key:"validateStyleProp",value:function(t,n,u){}},{key:"validateStyle",value:function(t,n){}},{key:"addValidStylePropTypes",value:function(t){}}]),u})());m.exports=u},87,[25,26,66,81,82,4]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function t(n){if(null!==n&&'object'==typeof n){if(!Array.isArray(n))return n;for(var f={},o=0,u=n.length;othis.eventPool.length&&this.eventPool.push(e)}function G(e){e.eventPool=[],e.getPooled=q,e.release=$}o(X.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=L)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=L)},persist:function(){this.isPersistent=L},isPersistent:Y,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=Y,this._dispatchInstances=this._dispatchListeners=null}}),X.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},X.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,G(n),n},G(X);var J=X.extend({touchHistory:function(){return null}});function K(e){return"topTouchStart"===e}function Z(e){return"topTouchMove"===e}var ee=["topTouchStart"],te=["topTouchMove"],ne=["topTouchCancel","topTouchEnd"],re=[],ie={touchBank:re,numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0};function le(e){return e.timeStamp||e.timestamp}function ae(e){if(null==(e=e.identifier))throw f(Error("Touch object is missing identifier."));return e}function oe(e){var t=ae(e),n=re[t];n?(n.touchActive=!0,n.startPageX=e.pageX,n.startPageY=e.pageY,n.startTimeStamp=le(e),n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=le(e),n.previousPageX=e.pageX,n.previousPageY=e.pageY,n.previousTimeStamp=le(e)):(n={touchActive:!0,startPageX:e.pageX,startPageY:e.pageY,startTimeStamp:le(e),currentPageX:e.pageX,currentPageY:e.pageY,currentTimeStamp:le(e),previousPageX:e.pageX,previousPageY:e.pageY,previousTimeStamp:le(e)},re[t]=n),ie.mostRecentTimeStamp=le(e)}function ue(e){var t=re[ae(e)];t?(t.touchActive=!0,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=le(e),ie.mostRecentTimeStamp=le(e)):console.warn("Cannot record touch move without a touch start.\nTouch Move: %s\n","Touch Bank: %s",se(e),fe())}function ce(e){var t=re[ae(e)];t?(t.touchActive=!1,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=le(e),ie.mostRecentTimeStamp=le(e)):console.warn("Cannot record touch end without a touch start.\nTouch End: %s\n","Touch Bank: %s",se(e),fe())}function se(e){return JSON.stringify({identifier:e.identifier,pageX:e.pageX,pageY:e.pageY,timestamp:le(e)})}function fe(){var e=JSON.stringify(re.slice(0,20));return 20a||(l=a),Ue(l,e,i)}}}),_=function(e){return xe.get(e._nativeTag)||null},P=we,R=function(e){var t=e.stateNode._nativeTag;if(void 0===t&&(t=e.stateNode.canonical._nativeTag),!t)throw f(Error("All native instances should have a tag."));return t},ye.injection.injectGlobalResponderHandler({onChange:function(e,t,n){null!==t?u.UIManager.setJSResponder(t.stateNode._nativeTag,n):u.UIManager.clearJSResponder()}});var ze=c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;ze.hasOwnProperty("ReactCurrentDispatcher")||(ze.ReactCurrentDispatcher={current:null}),ze.hasOwnProperty("ReactCurrentBatchConfig")||(ze.ReactCurrentBatchConfig={suspense:null});var Me="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.for:"@@for"),Ae=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.element"):60103,De=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.portal"):60106,Fe=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.fragment"):60107,Oe=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.strict_mode"):60108,je=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.profiler"):60114,We=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.provider"):60109,He=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.context"):60110,Qe=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.concurrent_mode"):60111,Be=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.forward_ref"):60112,Ve=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense"):60113,Le=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense_list"):60120,Ye=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.memo"):60115,Xe=Me?("function"==typeof Symbol?Symbol.for:"@@for")("react.lazy"):60116;Me&&("function"==typeof Symbol?Symbol.for:"@@for")("react.fundamental"),Me&&("function"==typeof Symbol?Symbol.for:"@@for")("react.responder");var qe="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.iterator:"@@iterator");function $e(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=qe&&e[qe]||e["@@iterator"])?e:null}function Ge(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case Fe:return"Fragment";case De:return"Portal";case je:return"Profiler";case Oe:return"StrictMode";case Ve:return"Suspense";case Le:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case He:return"Context.Consumer";case We:return"Context.Provider";case Be:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case Ye:return Ge(e.type);case Xe:if(e=1===e._status?e._result:null)return Ge(e)}return null}function Je(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(0!=(2&(t=t.return).effectTag))return 1}return 3===t.tag?2:3}function Ke(e){if(2!==Je(e))throw f(Error("Unable to find node on an unmounted component."))}function Ze(e){var t=e.alternate;if(!t){if(3===(t=Je(e)))throw f(Error("Unable to find node on an unmounted component."));return 1===t?null:e}for(var n=e,r=t;;){var i=n.return;if(null===i)break;var l=i.alternate;if(null===l){if(null!==(r=i.return)){n=r;continue}break}if(i.child===l.child){for(l=i.child;l;){if(l===n)return Ke(i),e;if(l===r)return Ke(i),t;l=l.sibling}throw f(Error("Unable to find node on an unmounted component."))}if(n.return!==r.return)n=i,r=l;else{for(var a=!1,o=i.child;o;){if(o===n){a=!0,n=i,r=l;break}if(o===r){a=!0,r=i,n=l;break}o=o.sibling}if(!a){for(o=l.child;o;){if(o===n){a=!0,n=l,r=i;break}if(o===r){a=!0,r=l,n=i;break}o=o.sibling}if(!a)throw f(Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue."))}}if(n.alternate!==r)throw f(Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue."))}if(3!==n.tag)throw f(Error("Unable to find node on an unmounted component."));return n.stateNode.current===n?e:t}function et(e){if(!(e=Ze(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}var tt={},nt=null,rt=0;function it(e,t,n){if(Array.isArray(t))for(var r=t.length;r--&&0wt||(e.current=xt[wt],xt[wt]=null,wt--)}function kt(e,t){xt[++wt]=e.current,e.current=t}var Ct={},_t={current:Ct},Pt={current:!1},Rt=Ct;function Nt(e,t){var n=e.type.contextTypes;if(!n)return Ct;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,l={};for(i in n)l[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function It(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Ut(e){St(Pt),St(_t)}function zt(e){St(Pt),St(_t)}function Mt(e,t,n){if(_t.current!==Ct)throw f(Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue."));kt(_t,t),kt(Pt,n)}function At(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw f(Error((Ge(t)||"Unknown")+'.getChildContext(): key "'+i+'" is not defined in childContextTypes.'));return o({},n,r)}function Dt(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Ct,Rt=_t.current,kt(_t,t),kt(Pt,Pt.current),!0}function Ft(e,t,n){var r=e.stateNode;if(!r)throw f(Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue."));n?(t=At(e,t,Rt),r.__reactInternalMemoizedMergedChildContext=t,St(Pt),St(_t),kt(_t,t)):St(Pt),kt(Pt,n)}var Ot=s.unstable_runWithPriority,jt=s.unstable_scheduleCallback,Wt=s.unstable_cancelCallback,Ht=s.unstable_shouldYield,Qt=s.unstable_requestPaint,Bt=s.unstable_now,Vt=s.unstable_getCurrentPriorityLevel,Lt=s.unstable_ImmediatePriority,Yt=s.unstable_UserBlockingPriority,Xt=s.unstable_NormalPriority,qt=s.unstable_LowPriority,$t=s.unstable_IdlePriority,Gt={},Jt=void 0!==Qt?Qt:function(){},Kt=null,Zt=null,en=!1,tn=Bt(),nn=1e4>tn?Bt:function(){return Bt()-tn};function rn(){switch(Vt()){case Lt:return 99;case Yt:return 98;case Xt:return 97;case qt:return 96;case $t:return 95;default:throw f(Error("Unknown priority level."))}}function ln(e){switch(e){case 99:return Lt;case 98:return Yt;case 97:return Xt;case 96:return qt;case 95:return $t;default:throw f(Error("Unknown priority level."))}}function an(e,t){return e=ln(e),Ot(e,t)}function on(e,t,n){return e=ln(e),jt(e,t,n)}function un(e){return null===Kt?(Kt=[e],Zt=jt(Lt,sn)):Kt.push(e),Gt}function cn(){null!==Zt&&Wt(Zt),sn()}function sn(){if(!en&&null!==Kt){en=!0;var e=0;try{var t=Kt;an(99,function(){for(;e=(e=10*(1073741821-t)-10*(1073741821-e))?99:250>=e?98:5250>=e?97:95}function dn(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var pn=Object.prototype.hasOwnProperty;function hn(e,t){if(dn(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r=t&&(li=!0),e.firstContext=null)}function Cn(e,t){if(Tn!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(Tn=e,t=1073741823),t={context:e,observedBits:t,next:null},null===bn){if(null===yn)throw f(Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."));bn=t,yn.dependencies={expirationTime:0,firstContext:t,responders:null}}else bn=bn.next=t;return e._currentValue}var _n=!1;function Pn(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Rn(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Nn(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function In(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Un(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=Pn(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=Pn(e.memoizedState),i=n.updateQueue=Pn(n.memoizedState)):r=e.updateQueue=Rn(i):null===i&&(i=n.updateQueue=Rn(r));null===i||r===i?In(r,t):null===r.lastUpdate||null===i.lastUpdate?(In(r,t),In(i,t)):(In(r,t),i.lastUpdate=t)}function zn(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=Pn(e.memoizedState):Mn(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function Mn(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=Rn(t)),t}function An(e,t,n,r,i,l){switch(n.tag){case 1:return"function"==typeof(e=n.payload)?e.call(l,r,i):e;case 3:e.effectTag=-2049&e.effectTag|64;case 0:if(null===(i="function"==typeof(e=n.payload)?e.call(l,r,i):e)||void 0===i)break;return o({},r,i);case 2:_n=!0}return r}function Dn(e,t,n,r,i){_n=!1;for(var l=(t=Mn(e,t)).baseState,a=null,o=0,u=t.firstUpdate,c=l;null!==u;){var s=u.expirationTime;sm?(g=f,f=null):g=f.sibling;var v=p(i,f,o[m],u);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&t(i,f),a=l(v,a,m),null===s?c=v:s.sibling=v,s=v,f=g}if(m===o.length)return n(i,f),c;if(null===f){for(;mg?(v=m,m=null):v=m.sibling;var b=p(i,m,y.value,u);if(null===b){null===m&&(m=v);break}e&&m&&null===b.alternate&&t(i,m),a=l(b,a,g),null===s?c=b:s.sibling=b,s=b,m=v}if(y.done)return n(i,m),c;if(null===m){for(;!y.done;g++,y=o.next())null!==(y=d(i,y.value,u))&&(a=l(y,a,g),null===s?c=y:s.sibling=y,s=y);return c}for(m=r(i,m);!y.done;g++,y=o.next())null!==(y=h(m,i,g,y.value,u))&&(e&&null!==y.alternate&&m.delete(null===y.key?g:y.key),a=l(y,a,g),null===s?c=y:s.sibling=y,s=y);return e&&m.forEach(function(e){return t(i,e)}),c}return function(e,r,l,o){var u="object"==typeof l&&null!==l&&l.type===Fe&&null===l.key;u&&(l=l.props.children);var c="object"==typeof l&&null!==l;if(c)switch(l.$$typeof){case Ae:e:{for(c=l.key,u=r;null!==u;){if(u.key===c){if(7===u.tag?l.type===Fe:u.elementType===l.type){n(e,u.sibling),(r=i(u,l.type===Fe?l.props.children:l.props)).ref=qn(e,u,l),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}l.type===Fe?((r=ea(l.props.children,e.mode,o,l.key)).return=e,e=r):((o=Zl(l.type,l.key,l.props,null,e.mode,o)).ref=qn(e,r,l),o.return=e,e=o)}return a(e);case De:e:{for(u=l.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===l.containerInfo&&r.stateNode.implementation===l.implementation){n(e,r.sibling),(r=i(r,l.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=na(l,e.mode,o)).return=e,e=r}return a(e)}if("string"==typeof l||"number"==typeof l)return l=""+l,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,l)).return=e,e=r):(n(e,r),(r=ta(l,e.mode,o)).return=e,e=r),a(e);if(Xn(l))return m(e,r,l,o);if($e(l))return g(e,r,l,o);if(c&&$n(e,l),void 0===l&&!u)switch(e.tag){case 1:case 0:throw e=e.type,f(Error((e.displayName||e.name||"Component")+"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null."))}return n(e,r)}}var Jn=Gn(!0),Kn=Gn(!1),Zn={},er={current:Zn},tr={current:Zn},nr={current:Zn};function rr(e){if(e===Zn)throw f(Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."));return e}function ir(e,t){kt(nr,t),kt(tr,e),kt(er,Zn),St(er),kt(er,{isInAParentText:!1})}function lr(e){St(er),St(tr),St(nr)}function ar(e){rr(nr.current);var t=rr(er.current),n=e.type;n="AndroidTextInput"===n||"RCTMultilineTextInputView"===n||"RCTSinglelineTextInputView"===n||"RCTText"===n||"RCTVirtualText"===n,t!==(n=t.isInAParentText!==n?{isInAParentText:n}:t)&&(kt(tr,e),kt(er,n))}function or(e){tr.current===e&&(St(er),St(tr))}var ur=1,cr=1,sr=2,fr={current:0};function dr(e){for(var t=e;null!==t;){if(13===t.tag){if(null!==t.memoizedState)return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function pr(e,t){return{responder:e,props:t}}var hr=0,mr=2,gr=4,vr=8,yr=16,br=32,Tr=64,Er=128,xr=ze.ReactCurrentDispatcher,wr=0,Sr=null,kr=null,Cr=null,_r=null,Pr=null,Rr=null,Nr=0,Ir=null,Ur=0,zr=!1,Mr=null,Ar=0;function Dr(){throw f(Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem."))}function Fr(e,t){if(null===t)return!1;for(var n=0;nNr&&(Nr=s)):(zl(s,u.suspenseConfig),l=u.eagerReducer===e?u.eagerState:e(l,u.action)),a=u,u=u.next}while(null!==u&&u!==r);c||(o=a,i=l),dn(l,t.memoizedState)||(li=!0),t.memoizedState=l,t.baseUpdate=o,t.baseState=i,n.lastRenderedState=l}return[t.memoizedState,n.dispatch]}function Vr(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Ir?(Ir={lastEffect:null}).lastEffect=e.next=e:null===(t=Ir.lastEffect)?Ir.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Ir.lastEffect=e),e}function Lr(e,t,n,r){var i=Wr();Ur|=e,i.memoizedState=Vr(t,n,void 0,void 0===r?null:r)}function Yr(e,t,n,r){var i=Hr();r=void 0===r?null:r;var l=void 0;if(null!==kr){var a=kr.memoizedState;if(l=a.destroy,null!==r&&Fr(r,a.deps))return void Vr(hr,n,l,r)}Ur|=e,i.memoizedState=Vr(t,n,l,r)}function Xr(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function qr(){}function $r(e,t,n){if(!(25>Ar))throw f(Error("Too many re-renders. React limits the number of renders to prevent an infinite loop."));var r=e.alternate;if(e===Sr||null!==r&&r===Sr)if(zr=!0,e={expirationTime:wr,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===Mr&&(Mr=new Map),void 0===(n=Mr.get(t)))Mr.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{var i=wl(),l=jn.suspense;l={expirationTime:i=Sl(i,e,l),suspenseConfig:l,action:n,eagerReducer:null,eagerState:null,next:null};var a=t.last;if(null===a)l.next=l;else{var o=a.next;null!==o&&(l.next=o),a.next=l}if(t.last=l,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var u=t.lastRenderedState,c=r(u,n);if(l.eagerReducer=r,l.eagerState=c,dn(c,u))return}catch(e){}kl(e,i)}}var Gr={readContext:Cn,useCallback:Dr,useContext:Dr,useEffect:Dr,useImperativeHandle:Dr,useLayoutEffect:Dr,useMemo:Dr,useReducer:Dr,useRef:Dr,useState:Dr,useDebugValue:Dr,useResponder:Dr},Jr={readContext:Cn,useCallback:function(e,t){return Wr().memoizedState=[e,void 0===t?null:t],e},useContext:Cn,useEffect:function(e,t){return Lr(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Lr(4,36,Xr.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lr(4,36,e,t)},useMemo:function(e,t){var n=Wr();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Wr();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=$r.bind(null,Sr,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Wr().memoizedState=e},useState:function(e){var t=Wr();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:Qr,lastRenderedState:e}).dispatch=$r.bind(null,Sr,e),[t.memoizedState,e]},useDebugValue:qr,useResponder:pr},Kr={readContext:Cn,useCallback:function(e,t){var n=Hr();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Fr(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Cn,useEffect:function(e,t){return Yr(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Yr(4,36,Xr.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Yr(4,36,e,t)},useMemo:function(e,t){var n=Hr();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Fr(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:Br,useRef:function(){return Hr().memoizedState},useState:function(e){return Br(Qr)},useDebugValue:qr,useResponder:pr},Zr=null,ei=null,ti=!1;function ni(e,t){switch(e.tag){case 5:return null!==(t=ft(e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=ft(e.pendingProps))&&(e.stateNode=t,!0);case 13:default:return!1}}function ri(e){if(ti){var t=ei;if(t){var n=t;if(!ni(e,t)){if(!(t=ft())||!ni(e,t))return e.effectTag|=2,ti=!1,void(Zr=e);var r=Zr,i=$l(5,null,null,0);i.elementType="DELETED",i.type="DELETED",i.stateNode=n,i.return=r,i.effectTag=8,null!==r.lastEffect?(r.lastEffect.nextEffect=i,r.lastEffect=i):r.firstEffect=r.lastEffect=i}Zr=e,ei=ft()}else e.effectTag|=2,ti=!1,Zr=e}}var ii=ze.ReactCurrentOwner,li=!1;function ai(e,t,n,r){t.child=null===e?Kn(t,null,n,r):Jn(t,e.child,n,r)}function oi(e,t,n,r,i){n=n.render;var l=t.ref;return kn(t,i),r=Or(e,t,n,r,l,i),null===e||li?(t.effectTag|=1,ai(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),bi(e,t,i))}function ui(e,t,n,r,i,l){if(null===e){var a=n.type;return"function"!=typeof a||Gl(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Zl(n.type,null,r,null,t.mode,l)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,ci(e,t,a,r,i,l))}return a=e.child,it)&&bl.set(e,t))}}function Cl(e,t){e.expirationTimei.firstPendingTime&&(i.firstPendingTime=t),0===(e=i.lastPendingTime)||t=t)&&(on(97,function(){return n._onComplete(),null}),!0)}function Nl(){if(null!==bl){var e=bl;bl=null,e.forEach(function(e,t){un(Ul.bind(null,t,e))}),cn()}}function Il(e,t){e.finishedWork=null,e.finishedExpirationTime=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,bt(n)),null!==nl)for(n=nl.return;null!==n;){var r=n;switch(r.tag){case 1:var i=r.type.childContextTypes;null!==i&&void 0!==i&&Ut();break;case 3:lr(),zt();break;case 5:or(r);break;case 4:lr();break;case 13:case 19:St(fr);break;case 10:wn(r)}n=n.return}tl=e,nl=Kl(e.current,null),rl=t,il=$i,al=ll=1073741823,ol=null,ul=!1}function Ul(e,t,n){if((48&el)!==Li)throw f(Error("Should not already be working."));if(e.firstPendingTime component higher in the tree to provide a loading indicator or placeholder to display."+Et(u))}il!==Zi&&(il=Gi),c=Ci(c,u),u=o;do{switch(u.tag){case 3:u.effectTag|=2048,u.expirationTime=s,zn(u,s=Wi(u,c,s));break e;case 1:if(d=c,a=u.type,o=u.stateNode,0==(64&u.effectTag)&&("function"==typeof a.getDerivedStateFromError||null!==o&&"function"==typeof o.componentDidCatch&&(null===hl||!hl.has(o)))){u.effectTag|=2048,u.expirationTime=s,zn(u,s=Hi(u,d,s));break e}}u=u.return}while(null!==u)}nl=Al(l)}if(el=r,En(),Bi.current=i,null!==nl)return Ul.bind(null,e,t)}if(e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,Rl(e,t))return null;switch(tl=null,il){case $i:throw f(Error("Should have a work-in-progress."));case Gi:return(r=e.lastPendingTime)(n=r-n)&&(n=0),t<(n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Qi(n/1960))-n)&&(n=t)),10=(t=0|(i=ol).busyMinDurationMs)?t=0:(n=0|i.busyDelayMs,t=(r=nn()-(10*(1073741821-r)-(0|i.timeoutMs||5e3)))<=n?0:n+t-r),10 component."));r=mt(),u.UIManager.createView(r,"RCTRawText",l,{text:i}),Ee.set(r,t),n.stateNode=r}break;case 11:break;case 13:if(St(fr),i=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=r;break e}i=null!==i,r=!1,null!==n&&(r=null!==(l=n.memoizedState),i||null===l||null!==(l=n.child.sibling)&&(null!==(o=t.firstEffect)?(t.firstEffect=l,l.nextEffect=o):(t.firstEffect=t.lastEffect=l,l.nextEffect=null),l.effectTag=8)),i&&!r&&0!=(2&t.mode)&&(null===n&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(fr.current&cr)?il===$i&&(il=Ji):il!==$i&&il!==Ji||(il=Ki)),(i||r)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:lr(),Ei(t);break;case 10:wn(t);break;case 9:case 14:break;case 17:It(t.type)&&Ut();break;case 18:break;case 19:if(St(fr),null===(i=t.memoizedState))break;if(l=0!=(64&t.effectTag),null===(o=i.rendering)){if(l)Si(i,!1);else if(il!==$i||null!==n&&0!=(64&n.effectTag))for(n=t.child;null!==n;){if(null!==(o=dr(n))){for(t.effectTag|=64,Si(i,!1),null!==(i=o.updateQueue)&&(t.updateQueue=i,t.effectTag|=4),t.firstEffect=t.lastEffect=null,i=r,n=t.child;null!==n;)l=i,(r=n).effectTag&=2,r.nextEffect=null,r.firstEffect=null,r.lastEffect=null,null===(o=r.alternate)?(r.childExpirationTime=0,r.expirationTime=l,r.child=null,r.memoizedProps=null,r.memoizedState=null,r.updateQueue=null,r.dependencies=null):(r.childExpirationTime=o.childExpirationTime,r.expirationTime=o.expirationTime,r.child=o.child,r.memoizedProps=o.memoizedProps,r.memoizedState=o.memoizedState,r.updateQueue=o.updateQueue,l=o.dependencies,r.dependencies=null===l?null:{expirationTime:l.expirationTime,firstContext:l.firstContext,responders:l.responders}),n=n.sibling;kt(fr,fr.current&ur|sr),t=t.child;break e}n=n.sibling}}else{if(!l)if(null!==(n=dr(o))){if(t.effectTag|=64,l=!0,Si(i,!0),null===i.tail&&"hidden"===i.tailMode){null!==(n=n.updateQueue)&&(t.updateQueue=n,t.effectTag|=4),null!==(t=t.lastEffect=i.lastEffect)&&(t.nextEffect=null);break}}else nn()>i.tailExpiration&&1n&&(n=l),o>n&&(n=o),r=r.sibling;i.childExpirationTime=n}if(null!==t)return t;null!==e&&0==(1024&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=nl.firstEffect),null!==nl.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=nl.firstEffect),e.lastEffect=nl.lastEffect),1i?l:i,e.firstPendingTime=i,i=n?gi(e,t,n):(kt(fr,fr.current&ur),null!==(t=bi(e,t,n))?t.sibling:null);kt(fr,fr.current&ur);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return yi(e,t,n);t.effectTag|=64}var i=t.memoizedState;if(null!==i&&(i.rendering=null,i.tail=null),kt(fr,fr.current),!r)return null}return bi(e,t,n)}}else li=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=Nt(t,_t.current),kn(t,n),i=Or(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,jr(),It(r)){var l=!0;Dt(t)}else l=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var a=r.getDerivedStateFromProps;"function"==typeof a&&Hn(t,r,a,e),i.updater=Qn,t.stateNode=i,i._reactInternalFiber=t,Yn(t,r,e,n),t=pi(null,t,r,!0,l,n)}else t.tag=0,ai(null,t,i,n),t=t.child;return t;case 16:switch(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=gn(i),t.type=i,l=t.tag=Jl(i),e=mn(i,e),l){case 0:t=fi(null,t,i,e,n);break;case 1:t=di(null,t,i,e,n);break;case 11:t=oi(null,t,i,e,n);break;case 14:t=ui(null,t,i,mn(i.type,e),r,n);break;default:throw f(Error("Element type is invalid. Received a promise that resolves to: "+i+". Lazy element type must resolve to a class or function."))}return t;case 0:return r=t.type,i=t.pendingProps,fi(e,t,r,i=t.elementType===r?i:mn(r,i),n);case 1:return r=t.type,i=t.pendingProps,di(e,t,r,i=t.elementType===r?i:mn(r,i),n);case 3:if(hi(t),null===(r=t.updateQueue))throw f(Error("If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue."));return i=null!==(i=t.memoizedState)?i.element:null,Dn(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i?t=bi(e,t,n):(ai(e,t,r,n),t=t.child),t;case 5:return ar(t),null===e&&ri(t),r=t.pendingProps.children,si(e,t),ai(e,t,r,n),t.child;case 6:return null===e&&ri(t),null;case 13:return gi(e,t,n);case 4:return ir(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Jn(t,null,r,n):ai(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,oi(e,t,r,i=t.elementType===r?i:mn(r,i),n);case 7:return ai(e,t,t.pendingProps,n),t.child;case 8:case 12:return ai(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,a=t.memoizedProps,xn(t,l=i.value),null!==a){var o=a.value;if(0===(l=dn(o,l)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(o,l):1073741823))){if(a.children===i.children&&!Pt.current){t=bi(e,t,n);break e}}else for(null!==(o=t.child)&&(o.return=t);null!==o;){var u=o.dependencies;if(null!==u){a=o.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&l)){1===o.tag&&((c=Nn(n,null)).tag=2,Un(o,c)),o.expirationTime",lineNumber:+o[4],column:o[5]?+o[5]:null};else if(o=l.exec(c[b]))t={file:o[2],methodName:o[1]||"",lineNumber:+o[3],column:o[4]?+o[4]:null};else{if(!(o=s.exec(c[b])))continue;t={file:o[2],methodName:o[1]||"",lineNumber:+o[3],column:o[4]?+o[4]:null}}f.push(t)}return f}};m.exports=n},105,[]); -__d(function(g,r,i,a,m,e,d){'use strict';(0,r(d[0]).polyfillGlobal)('Promise',function(){return r(d[1])})},106,[107,32]); -__d(function(g,r,i,a,m,e,d){'use strict';var l=r(d[0]);function o(o,t,n){var c=Object.getOwnPropertyDescriptor(o,t),b=c||{},f=b.enumerable,u=b.writable,p=b.configurable;!c||p?l(o,t,{get:n,enumerable:!1!==f,writable:!1!==u}):console.error('Failed to set polyfill. '+t+' is not configurable.')}m.exports={polyfillObjectProperty:o,polyfillGlobal:function(l,t){o(g,l,t)}}},107,[31]); -__d(function(g,r,i,a,m,e,d){'use strict';(0,r(d[0]).polyfillGlobal)('regeneratorRuntime',function(){return delete g.regeneratorRuntime,r(d[1])})},108,[107,109]); -__d(function(g,r,i,a,m,e,d){var t=(function(t){"use strict";var n,o=Object.prototype,c=o.hasOwnProperty,u="function"==typeof Symbol?Symbol:{},h=u.iterator||"@@iterator",f=u.asyncIterator||"@@asyncIterator",s=u.toStringTag||"@@toStringTag";function l(t,n,o,c){var u=n&&n.prototype instanceof E?n:E,h=Object.create(u.prototype),f=new A(c||[]);return h._invoke=F(t,o,f),h}function p(t,n,o){try{return{type:"normal",arg:t.call(n,o)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var y="suspendedStart",v="suspendedYield",w="executing",L="completed",x={};function E(){}function b(){}function _(){}var j={};j[h]=function(){return this};var O=Object.getPrototypeOf,k=O&&O(O(R([])));k&&k!==o&&c.call(k,h)&&(j=k);var G=_.prototype=E.prototype=Object.create(j);function N(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function P(t){function n(o,u,h,f){var s=p(t[o],t,u);if("throw"!==s.type){var l=s.arg,y=l.value;return y&&"object"==typeof y&&c.call(y,"__await")?Promise.resolve(y.__await).then(function(t){n("next",t,h,f)},function(t){n("throw",t,h,f)}):Promise.resolve(y).then(function(t){l.value=t,h(l)},function(t){return n("throw",t,h,f)})}f(s.arg)}var o;this._invoke=function(t,c){function u(){return new Promise(function(o,u){n(t,c,o,u)})}return o=o?o.then(u,u):u()}}function F(t,n,o){var c=y;return function(u,h){if(c===w)throw new Error("Generator is already running");if(c===L){if("throw"===u)throw h;return Y()}for(o.method=u,o.arg=h;;){var f=o.delegate;if(f){var s=S(f,o);if(s){if(s===x)continue;return s}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(c===y)throw c=L,o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);c=w;var l=p(t,n,o);if("normal"===l.type){if(c=o.done?L:v,l.arg===x)continue;return{value:l.arg,done:o.done}}"throw"===l.type&&(c=L,o.method="throw",o.arg=l.arg)}}}function S(t,o){var c=t.iterator[o.method];if(c===n){if(o.delegate=null,"throw"===o.method){if(t.iterator.return&&(o.method="return",o.arg=n,S(t,o),"throw"===o.method))return x;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return x}var u=p(c,t.iterator,o.arg);if("throw"===u.type)return o.method="throw",o.arg=u.arg,o.delegate=null,x;var h=u.arg;return h?h.done?(o[t.resultName]=h.value,o.next=t.nextLoc,"return"!==o.method&&(o.method="next",o.arg=n),o.delegate=null,x):h:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,x)}function T(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function I(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function A(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function R(t){if(t){var o=t[h];if(o)return o.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var u=-1,f=function o(){for(;++u=0;--h){var f=this.tryEntries[h],s=f.completion;if("root"===f.tryLoc)return u("end");if(f.tryLoc<=this.prev){var l=c.call(f,"catchLoc"),p=c.call(f,"finallyLoc");if(l&&p){if(this.prev=0;--o){var u=this.tryEntries[o];if(u.tryLoc<=this.prev&&c.call(u,"finallyLoc")&&this.prev=0;--n){var o=this.tryEntries[n];if(o.finallyLoc===t)return this.complete(o.completion,o.afterLoc),I(o),x}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc===t){var c=o.completion;if("throw"===c.type){var u=c.arg;I(o)}return u}}throw new Error("illegal catch attempt")},delegateYield:function(t,o,c){return this.delegate={iterator:R(t),resultName:o,nextLoc:c},"next"===this.method&&(this.arg=n),x}},t})("object"==typeof m?m.exports:{});try{regeneratorRuntime=t}catch(n){Function("r","regeneratorRuntime = r")(t)}},109,[]); -__d(function(g,r,i,a,m,e,d){'use strict';if(!g.RN$Bridgeless){var l=r(d[0]).polyfillGlobal,t=function(t){l(t,function(){return r(d[1])[t]})};t('setTimeout'),t('setInterval'),t('setImmediate'),t('clearTimeout'),t('clearInterval'),t('clearImmediate'),t('requestAnimationFrame'),t('cancelAnimationFrame'),t('requestIdleCallback'),t('cancelIdleCallback')}},110,[107,111]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),n=r(d[2]),l=(r(d[3]),r(d[4]),r(d[5])),u=null;function o(){return u||(u=r(d[6])),u()}var c=16.666666666666668,f=[],s=[],v=[],h=[],I=[],T={},b=[],p=1,w=null,k=!1;function q(){var t=v.indexOf(null);return-1===t&&(t=v.length),t}function x(t,n){var l=p++,u=q();return v[u]=l,f[u]=t,s[u]=n,l}function y(t,n,l){r(d[7])(t<=p,'Tried to call timer with ID %s but no such timer exists.',t);var u=v.indexOf(t);if(-1!==u){var h=s[u],I=f[u];if(I&&h){'setTimeout'!==h&&'setImmediate'!==h&&'requestAnimationFrame'!==h&&'requestIdleCallback'!==h||A(u);try{'setTimeout'===h||'setInterval'===h||'setImmediate'===h?I():'requestAnimationFrame'===h?I(o()):'requestIdleCallback'===h?I({timeRemaining:function(){return Math.max(0,c-(o()-n))},didTimeout:!!l}):console.error('Tried to call a callback with invalid type: '+h)}catch(t){w?w.push(t):w=[t]}}else console.error('No callback found for timerID '+t)}}function C(){if(h.length>0){var t=h.slice();h=[];for(var n=0;n0}function A(t){v[t]=null,f[t]=null,s[t]=null,b[t]=null}function D(t){if(null!=t){var n=v.indexOf(t);if(-1!==n){A(n);var l=s[n];'setImmediate'!==l&&'requestIdleCallback'!==l&&E(t)}}}var O,F={setTimeout:function(t,n){for(var l=arguments.length,u=new Array(l>2?l-2:0),o=2;o2?l-2:0),o=2;o1?n-1:0),u=1;u-1&&(I.splice(t,1),y(u,o(),!0)),delete T[u],0===I.length&&_(!1)},l);T[u]=c}return u},cancelIdleCallback:function(t){D(t);var n=I.indexOf(t);-1!==n&&I.splice(n,1);var l=T[t];l&&(F.clearTimeout(l),delete T[t]),0===I.length&&_(!1)},clearTimeout:function(t){D(t)},clearInterval:function(t){D(t)},clearImmediate:function(t){D(t);var n=h.indexOf(t);-1!==n&&h.splice(n,1)},cancelAnimationFrame:function(t){D(t)},callTimers:function(t){l(0!==t.length,'Cannot call `callTimers` with an empty list of IDs.'),w=null;for(var n=0;n1)for(var o=1;o0){var n=I.slice();I=[];for(var l=0;l=0,loaded:s,total:n})}},{key:"__didCompleteResponse",value:function(t,s,n){t===this._requestId&&(s&&(''!==this._responseType&&'text'!==this._responseType||(this._response=s),this._hasError=!0,n&&(this._timedOut=!0)),this._clearSubscriptions(),this._requestId=null,this.setReadyState(this.DONE),s?S._interceptor&&S._interceptor.loadingFailed(t,s):S._interceptor&&S._interceptor.loadingFinished(t,this._response.length))}},{key:"_clearSubscriptions",value:function(){(this._subscriptions||[]).forEach(function(t){t&&t.remove()}),this._subscriptions=[]}},{key:"getAllResponseHeaders",value:function(){if(!this.responseHeaders)return null;var t=this.responseHeaders||{};return Object.keys(t).map(function(s){return s+': '+t[s]}).join('\r\n')}},{key:"getResponseHeader",value:function(t){var s=this._lowerCaseResponseHeaders[t.toLowerCase()];return void 0!==s?s:null}},{key:"setRequestHeader",value:function(t,s){if(this.readyState!==this.OPENED)throw new Error('Request has not been opened');this._headers[t.toLowerCase()]=String(s)}},{key:"setTrackingName",value:function(t){return this._trackingName=t,this}},{key:"open",value:function(t,s,n){if(this.readyState!==this.UNSENT)throw new Error('Cannot open, already sending');if(void 0!==n&&!n)throw new Error('Synchronous http requests are not supported');if(!s)throw new Error('Cannot load an empty url');this._method=t.toUpperCase(),this._url=s,this._aborted=!1,this.setReadyState(this.OPENED)}},{key:"send",value:function(s){var n=this;if(this.readyState!==this.OPENED)throw new Error('Request has not been opened');if(this._sent)throw new Error('Request has already been sent');this._sent=!0;var o=this._incrementalEvents||!!this.onreadystatechange||!!this.onprogress;this._subscriptions.push(l.addListener('didSendNetworkData',function(s){return n.__didUploadProgress.apply(n,t(s))})),this._subscriptions.push(l.addListener('didReceiveNetworkResponse',function(s){return n.__didReceiveResponse.apply(n,t(s))})),this._subscriptions.push(l.addListener('didReceiveNetworkData',function(s){return n.__didReceiveData.apply(n,t(s))})),this._subscriptions.push(l.addListener('didReceiveNetworkIncrementalData',function(s){return n.__didReceiveIncrementalData.apply(n,t(s))})),this._subscriptions.push(l.addListener('didReceiveNetworkDataProgress',function(s){return n.__didReceiveDataProgress.apply(n,t(s))})),this._subscriptions.push(l.addListener('didCompleteNetworkResponse',function(s){return n.__didCompleteResponse.apply(n,t(s))}));var h='text';'arraybuffer'===this._responseType&&(h='base64'),'blob'===this._responseType&&(h='blob'),v(this._method,'Request method needs to be defined.'),v(this._url,'Request URL needs to be defined.'),l.sendRequest(this._method,this._trackingName,this._url,this._headers,s,h,o,this.timeout,this.__didCreateRequest.bind(this),this.withCredentials)}},{key:"abort",value:function(){this._aborted=!0,this._requestId&&l.abortRequest(this._requestId),this.readyState===this.UNSENT||this.readyState===this.OPENED&&!this._sent||this.readyState===this.DONE||(this._reset(),this.setReadyState(this.DONE)),this._reset()}},{key:"setResponseHeaders",value:function(t){this.responseHeaders=t||null;var s=t||{};this._lowerCaseResponseHeaders=Object.keys(s).reduce(function(t,n){return t[n.toLowerCase()]=s[n],t},{})}},{key:"setReadyState",value:function(t){this.readyState=t,this.dispatchEvent({type:'readystatechange'}),t===this.DONE&&(this._aborted?this.dispatchEvent({type:'abort'}):this._hasError?this._timedOut?this.dispatchEvent({type:'timeout'}):this.dispatchEvent({type:'error'}):this.dispatchEvent({type:'load'}),this.dispatchEvent({type:'loadend'}))}},{key:"addEventListener",value:function(t,n){'readystatechange'!==t&&'progress'!==t||(this._incrementalEvents=!0),s(p(S.prototype),"addEventListener",this).call(this,t,n)}},{key:"responseType",get:function(){return this._responseType},set:function(t){if(this._sent)throw new Error("Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be set after the request has been sent.");w.hasOwnProperty(t)?(v(w[t]||'document'===t,"The provided value '"+t+"' is unsupported in this environment."),'blob'===t&&v(_.isAvailable,'Native module BlobModule is required for blob support'),this._responseType=t):f(!1,"The provided value '"+t+"' is not a valid 'responseType'.")}},{key:"responseText",get:function(){if(''!==this._responseType&&'text'!==this._responseType)throw new Error("The 'responseText' property is only available if 'responseType' is set to '' or 'text', but it is '"+this._responseType+"'.");return this.readyState0&&void 0!==arguments[0]?arguments[0]:[],o=arguments.length>1?arguments[1]:void 0;t(this,s);var u=r(d[2]);this.data=u.createFromParts(n,o).data}return n(s,[{key:"slice",value:function(t,n){var s=r(d[2]),o=this.data,u=o.offset,l=o.size;return'number'==typeof t&&(t>l&&(t=l),u+=t,l-=t,'number'==typeof n&&(n<0&&(n=this.size+n),l=n-t)),s.createFromOptions({blobId:this.data.blobId,offset:u,size:l})}},{key:"close",value:function(){r(d[2]).release(this.data.blobId),this.data=null}},{key:"data",set:function(t){this._data=t},get:function(){if(!this._data)throw new Error('Blob has been closed and is no longer available');return this._data}},{key:"size",get:function(){return this.data.size}},{key:"type",get:function(){return this.data.type||''}}]),s})();m.exports=s},120,[25,26,118]); -__d(function(g,r,i,a,m,e,d){var n={};m.exports={register:function(t){n[t]?n[t]++:n[t]=1},unregister:function(t){n[t]&&(n[t]--,n[t]<=0&&delete n[t])},has:function(t){return n[t]&&n[t]>0}}},121,[]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var t=new WeakMap,n=new WeakMap;function o(n){var o=t.get(n);return console.assert(null!=o,"'this' is expected an Event object, but got",n),o}function l(t){null==t.passiveListener?t.event.cancelable&&(t.canceled=!0,"function"==typeof t.event.preventDefault&&t.event.preventDefault()):"undefined"!=typeof console&&"function"==typeof console.error&&console.error("Unable to preventDefault inside passive event listener invocation.",t.passiveListener)}function u(n,o){t.set(this,{eventTarget:n,event:o,eventPhase:2,currentTarget:n,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:o.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});for(var l=Object.keys(o),u=0;u0){for(var t=new Array(arguments.length),n=0;n0?y-4:y;var l=0;for(h=0;h>16&255,C[l++]=u>>8&255,C[l++]=255&u;2===f?(u=n[t.charCodeAt(h)]<<2|n[t.charCodeAt(h+1)]>>4,C[l++]=255&u):1===f&&(u=n[t.charCodeAt(h)]<<10|n[t.charCodeAt(h+1)]<<4|n[t.charCodeAt(h+2)]>>2,C[l++]=u>>8&255,C[l++]=255&u);return C},e.fromByteArray=function(n){for(var o,h=n.length,c=h%3,u='',A=[],C=0,y=h-c;Cy?y:C+16383));1===c?(o=n[h-1],u+=t[o>>2],u+=t[o<<4&63],u+='=='):2===c&&(o=(n[h-2]<<8)+n[h-1],u+=t[o>>10],u+=t[o>>4&63],u+=t[o<<2&63],u+='=');return A.push(u),A.join('')};for(var t=[],n=[],o='undefined'!=typeof Uint8Array?Uint8Array:Array,h='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',c=0,u=h.length;c0)throw new Error('Invalid string. Length must be a multiple of 4');return'='===t[n-2]?2:'='===t[n-1]?1:0}function f(n,o,h){for(var c,u,A=[],f=o;f>18&63]+t[u>>12&63]+t[u>>6&63]+t[63&u]);return A.join('')}n['-'.charCodeAt(0)]=62,n['_'.charCodeAt(0)]=63},128,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),p=(function(){function p(){s(this,p),this._parts=[]}return o(p,[{key:"append",value:function(t,n){this._parts.push([t,n])}},{key:"getParts",value:function(){return this._parts.map(function(s){var o=n(s,2),p=o[0],f=o[1],u={'content-disposition':'form-data; name="'+p+'"'};return'object'==typeof f&&f?('string'==typeof f.name&&(u['content-disposition']+='; filename="'+f.name+'"'),'string'==typeof f.type&&(u['content-type']=f.type),t({},f,{headers:u,fieldName:p})):{string:String(f),headers:u,fieldName:p}})}}]),p})();m.exports=p},129,[51,15,25,26]); -__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]),m.exports={fetch:fetch,Headers:Headers,Request:Request,Response:Response}},130,[131]); -__d(function(g,r,i,a,m,e,d){var t,o;t=this,o=function(t){'use strict';var o={searchParams:'URLSearchParams'in self,iterable:'Symbol'in self&&'iterator'in Symbol,blob:'FileReader'in self&&'Blob'in self&&(function(){try{return new Blob,!0}catch(t){return!1}})(),formData:'FormData'in self,arrayBuffer:'ArrayBuffer'in self};if(o.arrayBuffer)var n=['[object Int8Array]','[object Uint8Array]','[object Uint8ClampedArray]','[object Int16Array]','[object Uint16Array]','[object Int32Array]','[object Uint32Array]','[object Float32Array]','[object Float64Array]'],s=ArrayBuffer.isView||function(t){return t&&n.indexOf(Object.prototype.toString.call(t))>-1};function f(t){if('string'!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError('Invalid character in header field name');return t.toLowerCase()}function h(t){return'string'!=typeof t&&(t=String(t)),t}function u(t){var n={next:function(){var o=t.shift();return{done:void 0===o,value:o}}};return o.iterable&&(n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]=function(){return n}),n}function c(t){this.map={},t instanceof c?t.forEach(function(t,o){this.append(o,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(o){this.append(o,t[o])},this)}function y(t){if(t.bodyUsed)return Promise.reject(new TypeError('Already read'));t.bodyUsed=!0}function l(t){return new Promise(function(o,n){t.onload=function(){o(t.result)},t.onerror=function(){n(t.error)}})}function p(t){var o=new FileReader,n=l(o);return o.readAsArrayBuffer(t),n}function b(t){for(var o=new Uint8Array(t),n=new Array(o.length),s=0;s-1?s:n),this.mode=o.mode||this.mode||null,this.signal=o.signal||this.signal,this.referrer=null,('GET'===this.method||'HEAD'===this.method)&&f)throw new TypeError('Body not allowed for GET or HEAD requests');this._initBody(f)}function A(t){var o=new FormData;return t.trim().split('&').forEach(function(t){if(t){var n=t.split('='),s=n.shift().replace(/\+/g,' '),f=n.join('=').replace(/\+/g,' ');o.append(decodeURIComponent(s),decodeURIComponent(f))}}),o}function x(t,o){o||(o={}),this.type='default',this.status=void 0===o.status?200:o.status,this.ok=this.status>=200&&this.status<300,this.statusText='statusText'in o?o.statusText:'OK',this.headers=new c(o.headers),this.url=o.url||'',this._initBody(t)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})},v.call(_.prototype),v.call(x.prototype),x.prototype.clone=function(){return new x(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},x.error=function(){var t=new x(null,{status:0,statusText:''});return t.type='error',t};var B=[301,302,303,307,308];x.redirect=function(t,o){if(-1===B.indexOf(o))throw new RangeError('Invalid status code');return new x(null,{status:o,headers:{location:t}})},t.DOMException=self.DOMException;try{new t.DOMException}catch(o){t.DOMException=function(t,o){this.message=t,this.name=o;var n=Error(t);this.stack=n.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function T(n,s){return new Promise(function(f,h){var u=new _(n,s);if(u.signal&&u.signal.aborted)return h(new t.DOMException('Aborted','AbortError'));var y=new XMLHttpRequest;function l(){y.abort()}y.onload=function(){var t,o,n={status:y.status,statusText:y.statusText,headers:(t=y.getAllResponseHeaders()||'',o=new c,t.replace(/\r?\n[\t ]+/g,' ').split(/\r?\n/).forEach(function(t){var n=t.split(':'),s=n.shift().trim();if(s){var f=n.join(':').trim();o.append(s,f)}}),o)};n.url='responseURL'in y?y.responseURL:n.headers.get('X-Request-URL');var s='response'in y?y.response:y.responseText;f(new x(s,n))},y.onerror=function(){h(new TypeError('Network request failed'))},y.ontimeout=function(){h(new TypeError('Network request failed'))},y.onabort=function(){h(new t.DOMException('Aborted','AbortError'))},y.open(u.method,u.url,!0),'include'===u.credentials?y.withCredentials=!0:'omit'===u.credentials&&(y.withCredentials=!1),'responseType'in y&&o.blob&&(y.responseType='blob'),u.headers.forEach(function(t,o){y.setRequestHeader(o,t)}),u.signal&&(u.signal.addEventListener('abort',l),y.onreadystatechange=function(){4===y.readyState&&u.signal.removeEventListener('abort',l)}),y.send(void 0===u._bodyInit?null:u._bodyInit)})}T.polyfill=!0,self.fetch||(self.fetch=T,self.Headers=c,self.Request=_,self.Response=x),t.Headers=c,t.Request=_,t.Response=x,t.fetch=T,Object.defineProperty(t,'__esModule',{value:!0})},'object'==typeof e&&void 0!==m?o(e):'function'==typeof define&&define.amd?define(['exports'],o):o(t.WHATWGFetch={})},131,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=t(r(d[1])),o=t(r(d[2])),n=t(r(d[3])),c=t(r(d[4])),u=t(r(d[5])),l=t(r(d[6])),f=t(r(d[7])),h=r(d[8]),b=r(d[9]),y=r(d[10]),p=r(d[11]),v=(r(d[12]),r(d[13])),_=r(d[14]),E=r(d[15]),k=r(d[16]),I=0,S=1,N=2,w=3,O=0,C=(function(t){function y(t,n,l){var h;(0,o.default)(this,y),(h=(0,c.default)(this,(0,u.default)(y).call(this))).CONNECTING=I,h.OPEN=S,h.CLOSING=N,h.CLOSED=w,h.readyState=I,'string'==typeof n&&(n=[n]);var b=l||{},v=b.headers,_=void 0===v?{}:v,E=(0,s.default)(b,["headers"]);return E&&'string'==typeof E.origin&&(console.warn('Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.'),_.origin=E.origin,delete E.origin),Object.keys(E).length>0&&console.warn('Unrecognized WebSocket connection option(s) `'+Object.keys(E).join('`, `')+"`. Did you mean to put these under `headers`?"),Array.isArray(n)||(n=null),h._eventEmitter=new p(f.default),h._socketId=O++,h._registerEvents(),f.default.connect(t,n,{headers:_},h._socketId),h}return(0,l.default)(y,t),(0,n.default)(y,[{key:"close",value:function(t,s){this.readyState!==this.CLOSING&&this.readyState!==this.CLOSED&&(this.readyState=this.CLOSING,this._close(t,s))}},{key:"send",value:function(t){if(this.readyState===this.CONNECTING)throw new Error('INVALID_STATE_ERR');if(t instanceof h)return k(b.isAvailable,'Native module BlobModule is required for blob support'),void b.sendOverSocket(t,this._socketId);if('string'!=typeof t){if(!(t instanceof ArrayBuffer||ArrayBuffer.isView(t)))throw new Error('Unsupported data type');f.default.sendBinary(E(t),this._socketId)}else f.default.send(t,this._socketId)}},{key:"ping",value:function(){if(this.readyState===this.CONNECTING)throw new Error('INVALID_STATE_ERR');f.default.ping(this._socketId)}},{key:"_close",value:function(t,s){var o='number'==typeof t?t:1e3,n='string'==typeof s?s:'';f.default.close(o,n,this._socketId),b.isAvailable&&'blob'===this._binaryType&&b.removeWebSocketHandler(this._socketId)}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var t=this;this._subscriptions=[this._eventEmitter.addListener('websocketMessage',function(s){if(s.id===t._socketId){var o=s.data;switch(s.type){case'binary':o=_.toByteArray(s.data).buffer;break;case'blob':o=b.createFromOptions(s.data)}t.dispatchEvent(new v('message',{data:o}))}}),this._eventEmitter.addListener('websocketOpen',function(s){s.id===t._socketId&&(t.readyState=t.OPEN,t.protocol=s.protocol,t.dispatchEvent(new v('open')))}),this._eventEmitter.addListener('websocketClosed',function(s){s.id===t._socketId&&(t.readyState=t.CLOSED,t.dispatchEvent(new v('close',{code:s.code,reason:s.reason})),t._unregisterEvents(),t.close())}),this._eventEmitter.addListener('websocketFailed',function(s){s.id===t._socketId&&(t.readyState=t.CLOSED,t.dispatchEvent(new v('error',{message:s.message})),t.dispatchEvent(new v('close',{message:s.message})),t._unregisterEvents(),t.close())})]}},{key:"binaryType",get:function(){return this._binaryType},set:function(t){if('blob'!==t&&'arraybuffer'!==t)throw new Error("binaryType must be either 'blob' or 'arraybuffer'");'blob'!==this._binaryType&&'blob'!==t||(k(b.isAvailable,'Native module BlobModule is required for blob support'),'blob'===t?b.addWebSocketHandler(this._socketId):b.removeWebSocketHandler(this._socketId)),this._binaryType=t}}]),y})(y.apply(void 0,['close','error','message','open']));C.CONNECTING=I,C.OPEN=S,C.CLOSING=N,C.CLOSED=w,m.exports=C},132,[9,53,25,26,38,41,44,133,120,118,122,125,55,134,128,127,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).getEnforcing('WebSocketModule');e.default=o},133,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=function n(o,c){s(this,n),this.type=o.toString(),t(this,c)}},134,[14,25]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),l=r(d[4]),o=r(d[5]),c=r(d[6]),h=(function(h){function f(n,l,o){var h;return t(this,f),c(null!=n&&null!=l,'Failed to construct `File`: Must pass both `parts` and `name` arguments.'),(h=s(this,u(f).call(this,n,o))).data.name=l,h}return l(f,o),n(f,[{key:"name",get:function(){return c(null!=this.data.name,'Files must have a name set.'),this.data.name}},{key:"lastModified",get:function(){return this.data.lastModified||0}}]),f})();m.exports=h},135,[25,26,38,41,44,120,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),h=t(r(d[5])),_=t(r(d[6])),l=(r(d[7]),0),c=1,y=2,f=(function(t){function f(){var t;return(0,s.default)(this,f),(t=(0,o.default)(this,(0,u.default)(f).call(this))).EMPTY=l,t.LOADING=c,t.DONE=y,t._aborted=!1,t._subscriptions=[],t._reset(),t}return(0,h.default)(f,t),(0,n.default)(f,[{key:"_reset",value:function(){this._readyState=l,this._error=null,this._result=null}},{key:"_clearSubscriptions",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_setReadyState",value:function(t){this._readyState=t,this.dispatchEvent({type:'readystatechange'}),t===y&&(this._aborted?this.dispatchEvent({type:'abort'}):this._error?this.dispatchEvent({type:'error'}):this.dispatchEvent({type:'load'}),this.dispatchEvent({type:'loadend'}))}},{key:"readAsArrayBuffer",value:function(){throw new Error('FileReader.readAsArrayBuffer is not implemented')}},{key:"readAsDataURL",value:function(t){var s=this;this._aborted=!1,_.default.readAsDataURL(t.data).then(function(t){s._aborted||(s._result=t,s._setReadyState(y))},function(t){s._aborted||(s._error=t,s._setReadyState(y))})}},{key:"readAsText",value:function(t){var s=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'UTF-8';this._aborted=!1,_.default.readAsText(t.data,n).then(function(t){s._aborted||(s._result=t,s._setReadyState(y))},function(t){s._aborted||(s._error=t,s._setReadyState(y))})}},{key:"abort",value:function(){this._aborted=!0,this._readyState!==l&&this._readyState!==y&&(this._reset(),this._setReadyState(y)),this._reset()}},{key:"readyState",get:function(){return this._readyState}},{key:"error",get:function(){return this._error}},{key:"result",get:function(){return this._result}}]),f})(r(d[8]).apply(void 0,['abort','error','load','loadstart','loadend','progress']));f.EMPTY=l,f.LOADING=c,f.DONE=y,m.exports=f},136,[9,25,26,38,41,44,137,120,122]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).getEnforcing('FileReaderModule');e.default=u},137,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.URL=e.URLSearchParams=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=(r(d[4]),null);if(u.default&&'string'==typeof u.default.getConstants().BLOB_URI_SCHEME){var f=u.default.getConstants();s=f.BLOB_URI_SCHEME+':','string'==typeof f.BLOB_URI_HOST&&(s+="//"+f.BLOB_URI_HOST+"/")}var l="function"==typeof Symbol?Symbol.iterator:"@@iterator",h=(function(){function t(o){var u=this;(0,n.default)(this,t),this._searchParams=[],'object'==typeof o&&Object.keys(o).forEach(function(t){return u.append(t,o[t])})}return(0,o.default)(t,[{key:"append",value:function(t,n){this._searchParams.push([t,n])}},{key:"delete",value:function(t){throw new Error('not implemented')}},{key:"get",value:function(t){throw new Error('not implemented')}},{key:"getAll",value:function(t){throw new Error('not implemented')}},{key:"has",value:function(t){throw new Error('not implemented')}},{key:"set",value:function(t,n){throw new Error('not implemented')}},{key:"sort",value:function(){throw new Error('not implemented')}},{key:l,value:function(){return this._searchParams["function"==typeof Symbol?Symbol.iterator:"@@iterator"]()}},{key:"toString",value:function(){if(0===this._searchParams.length)return'';var t=this._searchParams.length-1;return this._searchParams.reduce(function(n,o,u){return n+o.join('=')+(u===t?'':'&')},'')}}]),t})();function c(t){return/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)}e.URLSearchParams=h;var y=(function(){function t(o,u){(0,n.default)(this,t),this._searchParamsInstance=null;var s=null;if(!u||c(o))this._url=o,this._url.endsWith('/')||(this._url+='/');else{if('string'==typeof u){if(!c(s=u))throw new TypeError("Invalid base URL: "+s)}else'object'==typeof u&&(s=u.toString());s.endsWith('/')&&o.startsWith('/')&&(s=s.slice(0,s.length-1)),s.endsWith(o)&&(o=''),this._url=""+s+o}}return(0,o.default)(t,null,[{key:"createObjectURL",value:function(t){if(null===s)throw new Error('Cannot create URL for blob!');return""+s+t.data.blobId+"?offset="+t.data.offset+"&size="+t.size}},{key:"revokeObjectURL",value:function(t){}}]),(0,o.default)(t,[{key:"toJSON",value:function(){return this.toString()}},{key:"toString",value:function(){if(null===this._searchParamsInstance)return this._url;var t=this._url.indexOf('?')>-1?'&':'?';return this._url+t+this._searchParamsInstance.toString()}},{key:"hash",get:function(){throw new Error('not implemented')}},{key:"host",get:function(){throw new Error('not implemented')}},{key:"hostname",get:function(){throw new Error('not implemented')}},{key:"href",get:function(){return this.toString()}},{key:"origin",get:function(){throw new Error('not implemented')}},{key:"password",get:function(){throw new Error('not implemented')}},{key:"pathname",get:function(){throw new Error('not implemented')}},{key:"port",get:function(){throw new Error('not implemented')}},{key:"protocol",get:function(){throw new Error('not implemented')}},{key:"search",get:function(){throw new Error('not implemented')}},{key:"searchParams",get:function(){return null==this._searchParamsInstance&&(this._searchParamsInstance=new h),this._searchParamsInstance}},{key:"username",get:function(){throw new Error('not implemented')}}]),t})();e.URL=y},138,[9,25,26,119,120]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]),n=r(d[2]),l=r(d[3]),b=r(d[4]);Object.defineProperty(e,'__esModule',{value:!0});var u=r(d[5]),p=(function(u){function p(){throw t(this,p),n(this,l(p).call(this)),new TypeError("AbortSignal cannot be constructed directly")}return b(p,u),o(p,[{key:"aborted",get:function(){var t=y.get(this);if("boolean"!=typeof t)throw new TypeError("Expected 'this' to be an 'AbortSignal' object, but got "+(null===this?"null":typeof this));return t}}]),p})(u.EventTarget);u.defineEventAttribute(p.prototype,"abort");var y=new WeakMap;Object.defineProperties(p.prototype,{aborted:{enumerable:!0}}),"function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag")&&Object.defineProperty(p.prototype,"function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag",{configurable:!0,value:"AbortSignal"});var f=(function(){function n(){var o;t(this,n),c.set(this,(o=Object.create(p.prototype),u.EventTarget.call(o),y.set(o,!1),o))}return o(n,[{key:"abort",value:function(){var t;t=s(this),!1===y.get(t)&&(y.set(t,!0),t.dispatchEvent({type:"abort"}))}},{key:"signal",get:function(){return s(this)}}]),n})(),c=new WeakMap;function s(t){var o=c.get(t);if(null==o)throw new TypeError("Expected 'this' to be an 'AbortController' object, but got "+(null===t?"null":typeof t));return o}Object.defineProperties(f.prototype,{signal:{enumerable:!0},abort:{enumerable:!0}}),"function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag")&&Object.defineProperty(f.prototype,"function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag",{configurable:!0,value:"AbortController"}),e.AbortController=f,e.AbortSignal=p,e.default=f,m.exports=f,m.exports.AbortController=m.exports.default=f,m.exports.AbortSignal=p},139,[140,141,142,145,146,122]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},140,[]); -__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o3&&void 0!==arguments[3]?arguments[3]:'plain-text',c=arguments.length>4?arguments[4]:void 0,f=arguments.length>5?arguments[5]:void 0;if('ios'===l.default.OS){if('function'==typeof s){console.warn("You passed a callback function as the \"type\" argument to Alert.prompt(). React Native is assuming you want to use the deprecated Alert.prompt(title, defaultValue, buttons, callback) signature. The current signature is Alert.prompt(title, message, callbackOrButtons, type, defaultValue, keyboardType) and the old syntax will be removed in a future version.");var p=s;return void u.default.alertWithArgs({title:t||'',type:'plain-text',defaultValue:n||''},function(t,n){p(n)})}var v,y,b=[],h=[];'function'==typeof o?b=[o]:Array.isArray(o)&&o.forEach(function(t,n){if(b[n]=t.onPress,'cancel'===t.style?v=String(n):'destructive'===t.style&&(y=String(n)),t.text||n<(o||[]).length-1){var l={};l[n]=t.text||'',h.push(l)}}),u.default.alertWithArgs({title:t||'',message:n||void 0,buttons:h,type:s||void 0,defaultValue:c,cancelButtonKey:v,destructiveButtonKey:y,keyboardType:f},function(t,n){var o=b[t];o&&o(n)})}}}]),t})();m.exports=c},149,[9,25,26,55,150,151]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).get('DialogManagerAndroid');e.default=o},150,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1]));m.exports={alertWithArgs:function(l,u){null!=t.default&&t.default.alertWithArgs(l,u)}}},151,[9,152]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('AlertManager');e.default=u},152,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).polyfillObjectProperty,o=g.navigator;void 0===o&&(g.navigator=o={}),t(o,'product',function(){return'ReactNative'})},153,[107]); -__d(function(g,r,i,a,m,e,d){'use strict';if(!g.RN$Bridgeless){var l=r(d[0]);l.registerLazyCallableModule('Systrace',function(){return r(d[1])}),l.registerLazyCallableModule('JSTimers',function(){return r(d[2])}),l.registerLazyCallableModule('HeapCapture',function(){return r(d[3])}),l.registerLazyCallableModule('SamplingProfiler',function(){return r(d[4])}),l.registerLazyCallableModule('RCTLog',function(){return r(d[5])}),l.registerLazyCallableModule('RCTDeviceEventEmitter',function(){return r(d[6])}),l.registerLazyCallableModule('RCTNativeAppEventEmitter',function(){return r(d[7])}),l.registerLazyCallableModule('GlobalPerformanceLogger',function(){return r(d[8])}),l.registerLazyCallableModule('JSDevSupportModule',function(){return r(d[9])}),l.registerCallableModule('HMRClient',r(d[10]))}},154,[19,28,111,155,157,159,37,160,161,164,166]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),p={captureHeap:function(p){var u=null;try{g.nativeCaptureHeap(p),console.log('HeapCapture.captureHeap succeeded: '+p)}catch(t){console.log('HeapCapture.captureHeap error: '+t.toString()),u=t.toString()}t.default&&t.default.captureComplete(p,u)}};m.exports=p},155,[9,156]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('HeapCapture');e.default=u},156,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var o={poke:function(o){var l=null,n=null;try{null===(n=g.pokeSamplingProfiler())?console.log('The JSC Sampling Profiler has started'):console.log('The JSC Sampling Profiler has stopped')}catch(o){console.log('Error occurred when restarting Sampling Profiler: '+o.toString()),l=o.toString()}var t=r(d[0]).default;t&&t.operationComplete(o,n,l)}};m.exports=o},157,[158]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])).get('JSCSamplingProfiler');e.default=l},158,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),n={log:'log',info:'info',warn:'warn',error:'error',fatal:'error'},l=null,t={logIfNoNativeHook:function(o){for(var n=arguments.length,f=new Array(n>1?n-1:0),c=1;c1?c-1:0),s=1;s2&&void 0!==arguments[2]?arguments[2]:-1;if(0===o)return!0;if(n===f)return!1;if('function'==typeof n&&'function'==typeof f)return!1;if('object'!=typeof n||null===n)return n!==f;if('object'!=typeof f||null===f)return!0;if(n.constructor!==f.constructor)return!0;if(Array.isArray(n)){var u=n.length;if(f.length!==u)return!0;for(var c=0;c=C},u=function(){},e.unstable_forceFrameRate=function(n){0>n||125(F=lc){if(s=f,null===E)E=o.next=o.previous=o;else{u=null;var p=E;do{if(s1&&(o[u]=c)}else o[u]=f}for(var l in n)f.includes(l)||(u?n.hasOwnProperty(l)&&c(n[l],u[l],l):o[l]={});return o},e.getConfigWithoutViewProps=function(t,f){if(!t[f])return{};return Object.keys(t[f]).filter(function(t){return!n.default[f][t]}).reduce(function(n,u){return n[u]=t[f][u],n},{})},e.stringifyViewConfig=function(t){return JSON.stringify(t,function(t,n){return'function'==typeof n?"\u0192 "+n.name:n},2)},e.default=void 0;var n=t(r(d[1])),f=(r(d[2]),['transform','hitSlop']);var u=function(t,n){};e.default=u},179,[9,180,183]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=t(r(d[1])),s=t(r(d[2])),n={uiViewClassName:'RCTView',baseModuleName:null,Manager:'ViewManager',Commands:{},Constants:{},bubblingEventTypes:(0,o.default)({},s.default.bubblingEventTypes,{topBlur:{phasedRegistrationNames:{bubbled:'onBlur',captured:'onBlurCapture'}},topChange:{phasedRegistrationNames:{bubbled:'onChange',captured:'onChangeCapture'}},topEndEditing:{phasedRegistrationNames:{bubbled:'onEndEditing',captured:'onEndEditingCapture'}},topFocus:{phasedRegistrationNames:{bubbled:'onFocus',captured:'onFocusCapture'}},topKeyPress:{phasedRegistrationNames:{bubbled:'onKeyPress',captured:'onKeyPressCapture'}},topPress:{phasedRegistrationNames:{bubbled:'onPress',captured:'onPressCapture'}},topSubmitEditing:{phasedRegistrationNames:{bubbled:'onSubmitEditing',captured:'onSubmitEditingCapture'}},topTouchCancel:{phasedRegistrationNames:{bubbled:'onTouchCancel',captured:'onTouchCancelCapture'}},topTouchEnd:{phasedRegistrationNames:{bubbled:'onTouchEnd',captured:'onTouchEndCapture'}},topTouchMove:{phasedRegistrationNames:{bubbled:'onTouchMove',captured:'onTouchMoveCapture'}},topTouchStart:{phasedRegistrationNames:{bubbled:'onTouchStart',captured:'onTouchStartCapture'}}}),directEventTypes:(0,o.default)({},s.default.directEventTypes,{topAccessibilityAction:{registrationName:'onAccessibilityAction'},topAccessibilityEscape:{registrationName:'onAccessibilityEscape'},topAccessibilityTap:{registrationName:'onAccessibilityTap'},topLayout:{registrationName:'onLayout'},topMagicTap:{registrationName:'onMagicTap'},onGestureHandlerEvent:{registrationName:'onGestureHandlerEvent'},onGestureHandlerStateChange:{registrationName:'onGestureHandlerStateChange'}}),validAttributes:(0,o.default)({},s.default.validAttributes,{accessibilityActions:!0,accessibilityElementsHidden:!0,accessibilityHint:!0,accessibilityIgnoresInvertColors:!0,accessibilityLabel:!0,accessibilityLiveRegion:!0,accessibilityRole:!0,accessibilityStates:!0,accessibilityState:!0,accessibilityViewIsModal:!0,accessible:!0,alignContent:!0,alignItems:!0,alignSelf:!0,aspectRatio:!0,backfaceVisibility:!0,backgroundColor:{process:r(d[3])},borderBottomColor:{process:r(d[3])},borderBottomEndRadius:!0,borderBottomLeftRadius:!0,borderBottomRightRadius:!0,borderBottomStartRadius:!0,borderBottomWidth:!0,borderColor:{process:r(d[3])},borderEndColor:{process:r(d[3])},borderEndWidth:!0,borderLeftColor:{process:r(d[3])},borderLeftWidth:!0,borderRadius:!0,borderRightColor:{process:r(d[3])},borderRightWidth:!0,borderStartColor:{process:r(d[3])},borderStartWidth:!0,borderStyle:!0,borderTopColor:{process:r(d[3])},borderTopEndRadius:!0,borderTopLeftRadius:!0,borderTopRightRadius:!0,borderTopStartRadius:!0,borderTopWidth:!0,borderWidth:!0,bottom:!0,clickable:!0,collapsable:!0,direction:!0,display:!0,elevation:!0,end:!0,flex:!0,flexBasis:!0,flexDirection:!0,flexGrow:!0,flexShrink:!0,flexWrap:!0,height:!0,hitSlop:{diff:r(d[4])},importantForAccessibility:!0,justifyContent:!0,left:!0,margin:!0,marginBottom:!0,marginEnd:!0,marginHorizontal:!0,marginLeft:!0,marginRight:!0,marginStart:!0,marginTop:!0,marginVertical:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,nativeID:!0,needsOffscreenAlphaCompositing:!0,onAccessibilityAction:!0,onAccessibilityEscape:!0,onAccessibilityTap:!0,onLayout:!0,onMagicTap:!0,opacity:!0,overflow:!0,padding:!0,paddingBottom:!0,paddingEnd:!0,paddingHorizontal:!0,paddingLeft:!0,paddingRight:!0,paddingStart:!0,paddingTop:!0,paddingVertical:!0,pointerEvents:!0,position:!0,removeClippedSubviews:!0,renderToHardwareTextureAndroid:!0,right:!0,rotation:!0,scaleX:!0,scaleY:!0,shadowColor:{process:r(d[3])},shadowOffset:{diff:r(d[5])},shadowOpacity:!0,shadowRadius:!0,shouldRasterizeIOS:!0,start:!0,style:{alignContent:!0,alignItems:!0,alignSelf:!0,aspectRatio:!0,backfaceVisibility:!0,backgroundColor:{process:r(d[3])},borderBottomColor:{process:r(d[3])},borderBottomEndRadius:!0,borderBottomLeftRadius:!0,borderBottomRightRadius:!0,borderBottomStartRadius:!0,borderBottomWidth:!0,borderColor:{process:r(d[3])},borderEndColor:{process:r(d[3])},borderEndWidth:!0,borderLeftColor:{process:r(d[3])},borderLeftWidth:!0,borderRadius:!0,borderRightColor:{process:r(d[3])},borderRightWidth:!0,borderStartColor:{process:r(d[3])},borderStartWidth:!0,borderStyle:!0,borderTopColor:{process:r(d[3])},borderTopEndRadius:!0,borderTopLeftRadius:!0,borderTopRightRadius:!0,borderTopStartRadius:!0,borderTopWidth:!0,borderWidth:!0,bottom:!0,color:{process:r(d[3])},decomposedMatrix:!0,direction:!0,display:!0,elevation:!0,end:!0,flex:!0,flexBasis:!0,flexDirection:!0,flexGrow:!0,flexShrink:!0,flexWrap:!0,fontFamily:!0,fontSize:!0,fontStyle:!0,fontVariant:!0,fontWeight:!0,height:!0,includeFontPadding:!0,justifyContent:!0,left:!0,letterSpacing:!0,lineHeight:!0,margin:!0,marginBottom:!0,marginEnd:!0,marginHorizontal:!0,marginLeft:!0,marginRight:!0,marginStart:!0,marginTop:!0,marginVertical:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,opacity:!0,overflow:!0,overlayColor:{process:r(d[3])},padding:!0,paddingBottom:!0,paddingEnd:!0,paddingHorizontal:!0,paddingLeft:!0,paddingRight:!0,paddingStart:!0,paddingTop:!0,paddingVertical:!0,position:!0,resizeMode:!0,right:!0,rotation:!0,scaleX:!0,scaleY:!0,shadowColor:{process:r(d[3])},shadowOffset:{diff:r(d[5])},shadowOpacity:!0,shadowRadius:!0,start:!0,textAlign:!0,textAlignVertical:!0,textDecorationColor:{process:r(d[3])},textDecorationLine:!0,textDecorationStyle:!0,textShadowColor:{process:r(d[3])},textShadowOffset:!0,textShadowRadius:!0,textTransform:!0,tintColor:{process:r(d[3])},top:!0,transform:{diff:r(d[6])},transformMatrix:!0,translateX:!0,translateY:!0,width:!0,writingDirection:!0,zIndex:!0},testID:!0,top:!0,transform:{diff:r(d[6])},translateX:!0,translateY:!0,width:!0,zIndex:!0})};m.exports=n},180,[9,51,177,83,181,86,182]); -__d(function(g,r,i,a,m,e,d){'use strict';var t={top:void 0,left:void 0,right:void 0,bottom:void 0};m.exports=function(o,f){return(o=o||t)!==(f=f||t)&&(o.top!==f.top||o.left!==f.left||o.right!==f.right||o.bottom!==f.bottom)}},181,[]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t,n){return!(t===n||t&&n&&t[12]===n[12]&&t[13]===n[13]&&t[14]===n[14]&&t[5]===n[5]&&t[10]===n[10]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]&&t[4]===n[4]&&t[6]===n[6]&&t[7]===n[7]&&t[8]===n[8]&&t[9]===n[9]&&t[11]===n[11]&&t[15]===n[15])}},182,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),s=r(d[2]),o=r(d[3]),u=r(d[4]),c=r(d[5]),l=r(d[6]),v=r(d[7]),b=r(d[8]),p=r(d[9]),f=r(d[10]),y=r(d[11]),C=r(d[12]);var E=!1;function T(n){var t=o.getConstants();t.ViewManagerNames||t.LazyViewManagersEnabled?n=w(n,o.getDefaultEventTypes()):(n.bubblingEventTypes=w(n.bubblingEventTypes,t.genericBubblingEventTypes),n.directEventTypes=w(n.directEventTypes,t.genericDirectEventTypes))}function w(n,t){if(!t)return n;if(!n)return t;for(var s in t)if(t.hasOwnProperty(s)){var o=t[s];if(n.hasOwnProperty(s)){var u=n[s];'object'==typeof o&&'object'==typeof u&&(o=w(u,o))}n[s]=o}return n}function I(n){switch(n){case'CATransform3D':return l;case'CGPoint':return v;case'CGSize':return y;case'UIEdgeInsets':return u}return null}function N(n){switch(n){case'CGColor':case'UIColor':return b;case'CGColorArray':case'UIColorArray':return p;case'CGImage':case'UIImage':case'RCTImageSource':return f;case'Color':return b;case'ColorArray':return p}return null}m.exports=function(u){var l=o.getViewManagerConfig(u);c(null!=l&&null!=l.NativeProps,'requireNativeComponent: "%s" was not found in the UIManager.',u);for(var v=l.baseModuleName,b=l.bubblingEventTypes,p=l.directEventTypes,f=l.NativeProps;v;){var y=o.getViewManagerConfig(v);y?(b=t({},y.bubblingEventTypes,b),p=t({},y.directEventTypes,p),f=t({},y.NativeProps,f),v=y.baseModuleName):(C(!1,'Base module "%s" does not exist',v),v=null)}var w={};for(var M in f){var P=f[M],h=I(P),A=N(P);w[M]=null==h&&null==A||{diff:h,process:A}}return w.style=s,n(l,{uiViewClassName:u,validAttributes:w,bubblingEventTypes:b,directEventTypes:p}),E||(T(l),E=!0),l}},183,[14,51,65,76,181,4,182,184,83,185,186,86,6]); -__d(function(g,r,i,a,m,e,d){'use strict';var t={x:void 0,y:void 0};m.exports=function(n,o){return(n=n||t)!==(o=o||t)&&(n.x!==o.x||n.y!==o.y)}},184,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=function(t){return null==t?null:t.map(n)}},185,[83]); -__d(function(g,r,i,a,m,e,d){'use strict';var t,n,s,u,o=r(d[0]),f=r(d[1]);function c(){if(u)return u;var t=g.nativeExtensions&&g.nativeExtensions.SourceCode;return t||(t=r(d[2]).default),u=t.getConstants().scriptURL}function l(){if(void 0===n){var t=c(),s=t&&t.match(/^https?:\/\/.*?\//);n=s?s[0]:null}return n}function v(t){if(t){if(t.startsWith('assets://'))return null;(t=t.substring(0,t.lastIndexOf('/')+1)).includes('://')||(t='file://'+t)}return t}m.exports=function(n){if('object'==typeof n)return n;var u=o.getAssetByID(n);if(!u)return null;var p=new f(l(),(void 0===s&&(s=v(c())),s),u);return t?t(p):p.defaultAsset()},m.exports.pickScale=f.pickScale,m.exports.setCustomSourceTransformer=function(n){t=n}},186,[187,188,190]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=[];m.exports={registerAsset:function(s){return t.push(s)},getAssetByID:function(s){return t[s-1]}}},187,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),u=(r(d[3]),r(d[4])),o=r(d[5]);function l(t){var s=h.pickScale(t.scales,n.get()),o=1===s?'':'@'+s+'x';return u.getBasePath(t)+'/'+t.name+o+'.'+t.type}function c(t){var s=h.pickScale(t.scales,n.get());return u.getAndroidResourceFolderName(t,s)+'/'+u.getAndroidResourceIdentifier(t)+'.'+t.type}var h=(function(){function h(s,n,u){t(this,h),this.serverUrl=s,this.jsbundleUrl=n,this.asset=u}return s(h,[{key:"isLoadedFromServer",value:function(){return!!this.serverUrl}},{key:"isLoadedFromFileSystem",value:function(){return!(!this.jsbundleUrl||!this.jsbundleUrl.startsWith('file://'))}},{key:"defaultAsset",value:function(){return this.isLoadedFromServer()?this.assetServerURL():this.scaledAssetURLNearBundle()}},{key:"assetServerURL",value:function(){return o(!!this.serverUrl,'need server to load from'),this.fromSource(this.serverUrl+l(this.asset)+"?platform=ios&hash="+this.asset.hash)}},{key:"scaledAssetPath",value:function(){return this.fromSource(l(this.asset))}},{key:"scaledAssetURLNearBundle",value:function(){var t=this.jsbundleUrl||'file://';return this.fromSource(t+l(this.asset))}},{key:"resourceIdentifierWithoutScale",value:function(){return o(!1,'resource identifiers work on Android'),this.fromSource(u.getAndroidResourceIdentifier(this.asset))}},{key:"drawableFolderInBundle",value:function(){var t=this.jsbundleUrl||'file://';return this.fromSource(t+c(this.asset))}},{key:"fromSource",value:function(t){return{__packager_asset:!0,width:this.asset.width,height:this.asset.height,uri:t,scale:h.pickScale(this.asset.scales,n.get())}}}],[{key:"pickScale",value:function(t,s){for(var n=0;n=s)return t[n];return t[t.length-1]||1}}]),h})();m.exports=h},188,[25,26,62,55,189,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t={.75:'ldpi',1:'mdpi',1.5:'hdpi',2:'xhdpi',3:'xxhdpi',4:'xxxhdpi'};function n(n){if(n.toString()in t)return t[n.toString()];throw new Error('no such scale '+n.toString())}var o=new Set(['gif','jpeg','jpg','png','svg','webp','xml']);function s(t){var n=t.httpServerLocation;return'/'===n[0]&&(n=n.substr(1)),n}m.exports={getAndroidAssetSuffix:n,getAndroidResourceFolderName:function(s,u){if(!o.has(s.type))return'raw';var c=n(u);if(!c)throw new Error("Don't know which android drawable suffix to use for scale: "+u+'\nAsset: '+JSON.stringify(s,null,'\t')+'\nPossible scales are:'+JSON.stringify(t,null,'\t'));return'drawable-'+c},getAndroidResourceIdentifier:function(t){return(s(t)+'/'+t.name).toLowerCase().replace(/\//g,'_').replace(/([^a-z0-9_])/g,'').replace(/^assets_/,'')},getBasePath:s}},189,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).getEnforcing('SourceCode');e.default=o},190,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]);m.exports=function(u){return n(u,function(){return t(u)})}},191,[192,183]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).ReactNativeViewConfigRegistry.register;m.exports=function(n,s){return t(n,s)}},192,[169]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,t(r(d[1])).default)('ActivityIndicatorView',{paperComponentName:'RCTActivityIndicatorView'});e.default=o},193,[9,194]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[1])),t=r(d[2]);var p=function(n,p){var f=p&&p.paperComponentName?p.paperComponentName:n;if(null!=p&&null!=p.paperComponentNameDeprecated)if(t.UIManager.getViewManagerConfig(n))f=n;else{if(null==p.paperComponentNameDeprecated||!t.UIManager.getViewManagerConfig(p.paperComponentNameDeprecated))throw new Error("Failed to find native component for either "+n+" or "+(p.paperComponentNameDeprecated||'(unknown)'));f=p.paperComponentNameDeprecated}return(0,o.default)(f)};e.default=p},194,[9,191,3]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),l=r(d[3]),u=r(d[4]),s=r(d[5]),f=r(d[6]),c=r(d[7]),h=r(d[8]),p=r(d[9]),v=r(d[10]),y=r(d[11]),b=r(d[12]),k=r(d[13]);function S(t,n){if(null==t||null==n)return!0;if(t.length!==n.length)return!0;for(var o=0;o must be a child of a '),h.createElement(W,{opacity:E(t),transform:D(t)},this.props.children)}}]),f})(h.Component);F.contextTypes={isInSurface:p.bool.isRequired};var M=(function(s){function f(){return t(this,f),o(this,l(f).apply(this,arguments))}return u(f,s),n(f,[{key:"render",value:function(){var t=this.props,n=[N(t.x,0),N(t.y,0),N(t.width,0),N(t.height,0)],o=b(t);return delete o.x,delete o.y,h.createElement(W,{clipping:n,opacity:E(t),transform:D(o)},this.props.children)}}]),f})(h.Component),P=0,X=1,Y=2,O=3;function q(t,n,o){var l=new s(t);n[o+0]=l.red/255,n[o+1]=l.green/255,n[o+2]=l.blue/255,n[o+3]=l.alpha}function j(t,n,o){var l=0;if('length'in t)for(;lT?(X-=M,Y-=b):f>0&&0!=T&&(X-=f/T*M,Y-=f/T*b),l=X*X+Y*Y,(f=(X=o-t)*M+(Y=u-n)*b)>T?(X-=M,Y-=b):f>0&&0!=T&&(X-=f/T*M,Y-=f/T*b),v=X*X+Y*Y,l<.01&&v<.01)this.onLine(t,n,p,c);else{if(isNaN(l)||isNaN(v))throw new Error('Bad input');var k=.5*(s+o),w=.5*(h+u),_=.5*(s+t),D=.5*(h+n),z=.5*(_+k),C=.5*(D+w),B=.5*(p+o),A=.5*(c+u),L=.5*(B+k),I=.5*(A+w),P=.5*(z+L),N=.5*(C+I);this.onBezierCurve(t,n,_,D,z,C,P,N),this.onBezierCurve(P,N,L,I,B,A,p,c)}},onArc:function(t,n,s,h,o,u,p,c,l,v,X,Y){var f=Y?Y*Math.PI/180:0,M=Math.cos(f),b=Math.sin(f),T=M*p,k=-b*c,w=b*p,_=M*c,D=v-l;D<0&&!X?D+=2*Math.PI:D>0&&X&&(D-=2*Math.PI);for(var z=Math.ceil(Math.abs(D/(Math.PI/2))),C=D/z,B=1.3333333333333333*Math.tan(C/4),A=Math.cos(l),L=Math.sin(l),I=0;Ithis.yy/this.xy?-1:1;return(this.xx<0?this.xy>=0:this.xy<0)&&(x=-x),this.rotate(t-180*Math.atan2(x*this.yx,x*this.xx)/Math.PI,s,h)},scaleTo:function(t,s){var h=Math.sqrt(this.xx*this.xx+this.yx*this.yx);return this.xx/=h,this.yx/=h,h=Math.sqrt(this.yy*this.yy+this.xy*this.xy),this.yy/=h,this.xy/=h,this.scale(t,s)},resizeTo:function(t,s){var h=this.width,x=this.height;return h&&x?this.scaleTo(t/h,s/x):this},inversePoint:function(t,s){var h=this.xx,x=this.yx,y=this.xy,n=this.yy,o=this.x,u=this.y,f=x*y-h*n;return 0==f?null:{x:(n*(o-t)+y*(s-u))/f,y:(h*(u-s)+x*(t-o))/f}},point:function(t,s){return{x:this.xx*t+this.xy*s+this.x,y:this.yx*t+this.yy*s+this.y}}})},200,[198]); -__d(function(g,r,i,a,m,e,d){'use strict';var s=r(d[0]),t={pointerEvents:!0,accessible:!0,accessibilityActions:!0,accessibilityLabel:!0,accessibilityLiveRegion:!0,accessibilityRole:!0,accessibilityStates:!0,accessibilityState:!0,accessibilityHint:!0,importantForAccessibility:!0,nativeID:!0,testID:!0,renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,onLayout:!0,onAccessibilityAction:!0,onAccessibilityTap:!0,onMagicTap:!0,onAccessibilityEscape:!0,collapsable:!0,needsOffscreenAlphaCompositing:!0,style:r(d[1])},c={UIView:t,RCTView:s({},t,{removeClippedSubviews:!0})};m.exports=c},201,[51,65]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);m.exports=function(n,u){var c={};return t(c,n),t(c,u),c}},202,[203]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),c=t.checkMergeObjectArg,n=t.checkMergeIntoObjectArg;m.exports=function(t,o){if(n(t),null!=o)for(var f in c(o),o)Object.prototype.hasOwnProperty.call(o,f)&&(t[f]=o[f])}},203,[204]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=function(t){return'object'!=typeof t||t instanceof Date||null===t},c={MAX_MERGE_DEPTH:36,isTerminal:n,normalizeMergeArg:function(t){return void 0===t||null===t?{}:t},checkMergeArrayArgs:function(n,c){t(Array.isArray(n)&&Array.isArray(c),'Tried to merge arrays, instead got %s and %s.',n,c)},checkMergeObjectArgs:function(t,n){c.checkMergeObjectArg(t),c.checkMergeObjectArg(n)},checkMergeObjectArg:function(c){t(!n(c)&&!Array.isArray(c),'Tried to merge an object, instead got %s.',c)},checkMergeIntoObjectArg:function(c){t(!(n(c)&&'function'!=typeof c||Array.isArray(c)),'Tried to merge into an object, instead got %s.',c)},checkMergeLevel:function(n){t(n<36,"Maximum deep merge depth exceeded. You may be attempting to merge circular structures in an unsupported way.")},checkArrayStrategy:function(n){t(void 0===n||n in c.ArrayStrategies,"You must provide an array strategy to deep merge functions to instruct the deep merge how to resolve merging two arrays.")},ArrayStrategies:{Clobber:'Clobber',Concat:'Concat',IndexByIndex:'IndexByIndex'}};m.exports=c},204,[4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),o=r(d[2]),n=r(d[3]),c=r(d[4]),u=r(d[5]),l=(r(d[6]),r(d[7])),b=r(d[8]),p=r(d[9]),x=(r(d[10]),r(d[11])),F=r(d[12]),h=r(d[13]),f=(function(t){function b(){return s(this,b),n(this,c(b).apply(this,arguments))}return u(b,t),o(b,[{key:"render",value:function(){var t=this.props,s=t.accessibilityLabel,o=t.color,n=t.onPress,c=t.touchSoundDisabled,u=t.title,b=t.hasTVPreferredFocus,f=t.nextFocusDown,y=t.nextFocusForward,v=t.nextFocusLeft,w=t.nextFocusRight,L=t.nextFocusUp,P=t.disabled,S=t.testID,E=[D.button],R=[D.text];o&&R.push({color:o});var T=[];P&&(E.push(D.buttonDisabled),R.push(D.textDisabled),T.push('disabled')),h('string'==typeof u,'The title prop of a Button must be a string');var A=u,I=x;return l.createElement(I,{accessibilityLabel:s,accessibilityRole:"button",accessibilityStates:T,hasTVPreferredFocus:b,nextFocusDown:f,nextFocusForward:y,nextFocusLeft:v,nextFocusRight:w,nextFocusUp:L,testID:S,disabled:P,onPress:n,touchSoundDisabled:c},l.createElement(F,{style:E},l.createElement(p,{style:R,disabled:P},A)))}}]),b})(l.Component),D=b.create({button:{},text:t({textAlign:'center',padding:8},{color:'#007AFF',fontSize:18}),buttonDisabled:{},textDisabled:{color:'#cdcdcd'}});m.exports=f},205,[51,25,26,38,41,44,55,57,61,206,221,222,89,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),u=r(d[5]),p=r(d[6]),c=r(d[7]),h=r(d[8]),f=r(d[9]),R=r(d[10]),H=r(d[11]),v=r(d[12]),T=r(d[13]),b=r(d[14]),S=r(d[15]),y=r(d[16]),w={top:20,left:20,right:20,bottom:30},x={validAttributes:c({},R.UIView,{isHighlighted:!0,numberOfLines:!0,ellipsizeMode:!0,allowFontScaling:!0,maxFontSizeMultiplier:!0,disabled:!0,selectable:!0,selectionColor:!0,adjustsFontSizeToFit:!0,minimumFontScale:!0,textBreakStrategy:!0,onTextLayout:!0,onInlineViewLayout:!0,dataDetectorType:!0}),directEventTypes:{topTextLayout:{registrationName:'onTextLayout'},topInlineViewLayout:{registrationName:'onInlineViewLayout'}},uiViewClassName:'RCTText'},C=(function(h){function R(){var n,o;t(this,R);for(var u=arguments.length,h=new Array(u),f=0;f4?p-4:0),l=4;l5?b-5:0),k=5;k4?s-4:0),p=4;p0,s=R&&R.length>0;return!_&&s?R[0]:_?t[0]:E}),T=N({NOT_RESPONDER:null,RESPONDER_INACTIVE_PRESS_IN:null,RESPONDER_INACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_PRESS_IN:null,RESPONDER_ACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_LONG_PRESS_IN:null,RESPONDER_ACTIVE_LONG_PRESS_OUT:null,ERROR:null}),u={NOT_RESPONDER:!1,RESPONDER_INACTIVE_PRESS_IN:!1,RESPONDER_INACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_PRESS_IN:!1,RESPONDER_ACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_LONG_PRESS_IN:!1,RESPONDER_ACTIVE_LONG_PRESS_OUT:!1,ERROR:!1},P=t({},u,{RESPONDER_ACTIVE_PRESS_OUT:!0,RESPONDER_ACTIVE_PRESS_IN:!0}),O=t({},u,{RESPONDER_INACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),D=t({},u,{RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),c=N({DELAY:null,RESPONDER_GRANT:null,RESPONDER_RELEASE:null,RESPONDER_TERMINATED:null,ENTER_PRESS_RECT:null,LEAVE_PRESS_RECT:null,LONG_PRESS_DETECTED:null}),A={NOT_RESPONDER:{DELAY:T.ERROR,RESPONDER_GRANT:T.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:T.ERROR,RESPONDER_TERMINATED:T.ERROR,ENTER_PRESS_RECT:T.ERROR,LEAVE_PRESS_RECT:T.ERROR,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_INACTIVE_PRESS_IN:{DELAY:T.RESPONDER_ACTIVE_PRESS_IN,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_INACTIVE_PRESS_OUT:{DELAY:T.RESPONDER_ACTIVE_PRESS_OUT,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_ACTIVE_PRESS_IN:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_PRESS_OUT:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_ACTIVE_LONG_PRESS_IN:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:T.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_LONG_PRESS_OUT:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},error:{DELAY:T.NOT_RESPONDER,RESPONDER_GRANT:T.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.NOT_RESPONDER,LEAVE_PRESS_RECT:T.NOT_RESPONDER,LONG_PRESS_DETECTED:T.NOT_RESPONDER}},I={componentDidMount:function(){_.isTV&&(this._tvEventHandler=new n,this._tvEventHandler.enable(this,function(E,t){var R=o.findNodeHandle(E);t.dispatchConfig={},R===t.tag&&('focus'===t.eventType?E.touchableHandleFocus(t):'blur'===t.eventType?E.touchableHandleBlur(t):'select'===t.eventType&&E.touchableHandlePress&&!E.props.disabled&&E.touchableHandlePress(t))}))},componentWillUnmount:function(){this._tvEventHandler&&(this._tvEventHandler.disable(),delete this._tvEventHandler),this.touchableDelayTimeout&&clearTimeout(this.touchableDelayTimeout),this.longPressDelayTimeout&&clearTimeout(this.longPressDelayTimeout),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout)},touchableGetInitialState:function(){return{touchable:{touchState:void 0,responderID:null}}},touchableHandleResponderTerminationRequest:function(){return!this.props.rejectResponderTermination},touchableHandleStartShouldSetResponder:function(){return!this.props.disabled},touchableLongPressCancelsPress:function(){return!0},touchableHandleResponderGrant:function(E){var t=E.currentTarget;E.persist(),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout),this.pressOutDelayTimeout=null,this.state.touchable.touchState=T.NOT_RESPONDER,this.state.touchable.responderID=t,this._receiveSignal(c.RESPONDER_GRANT,E);var R=void 0!==this.touchableGetHighlightDelayMS?Math.max(this.touchableGetHighlightDelayMS(),0):130;0!==(R=isNaN(R)?130:R)?this.touchableDelayTimeout=setTimeout(this._handleDelay.bind(this,E),R):this._handleDelay(E);var _=void 0!==this.touchableGetLongPressDelayMS?Math.max(this.touchableGetLongPressDelayMS(),10):370;_=isNaN(_)?370:_,this.longPressDelayTimeout=setTimeout(this._handleLongDelay.bind(this,E),_+R)},touchableHandleResponderRelease:function(E){this.pressInLocation=null,this._receiveSignal(c.RESPONDER_RELEASE,E)},touchableHandleResponderTerminate:function(E){this.pressInLocation=null,this._receiveSignal(c.RESPONDER_TERMINATED,E)},touchableHandleResponderMove:function(E){if(this.state.touchable.positionOnActivate){var t=this.state.touchable.positionOnActivate,R=this.state.touchable.dimensionsOnActivate,_=this.touchableGetPressRectOffset?this.touchableGetPressRectOffset():{left:20,right:20,top:20,bottom:20},s=_.left,o=_.top,S=_.right,n=_.bottom,l=this.touchableGetHitSlop?this.touchableGetHitSlop():null;l&&(s+=l.left||0,o+=l.top||0,S+=l.right||0,n+=l.bottom||0);var N=h(E.nativeEvent),u=N&&N.pageX,P=N&&N.pageY;if(this.pressInLocation)this._getDistanceBetweenPoints(u,P,this.pressInLocation.pageX,this.pressInLocation.pageY)>10&&this._cancelLongPressDelayTimeout();if(u>t.left-s&&P>t.top-o&&u2?f-2:0),u=2;u1&&void 0!==arguments[1]?arguments[1]:{}).iterations;return V},event:function(t,n){return null},createAnimatedComponent:E,attachNativeEvent:o,forkEvent:f.forkEvent,unforkEvent:f.unforkEvent,Event:u,__PropsOnlyForTests:s}},224,[51,225,234,227,228,240,226,245,253]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),v=r(d[3]),o=r(d[4]),c=r(d[5]),_=r(d[3]).shouldUseNativeDriver;function l(t,n,_){var l=[];c(_[0]&&_[0].nativeEvent,'Native driven events only support animated values contained inside `nativeEvent`.'),(function t(n,v){if(n instanceof s)n.__makeNative(),l.push({nativeEventPath:v,animatedValueTag:n.__getNativeTag()});else if('object'==typeof n)for(var o in n)t(n[o],v.concat(o))})(_[0].nativeEvent,[]);var h=o.findNodeHandle(t);return l.forEach(function(t){v.API.addAnimatedEventToView(h,n,t)}),{detach:function(){l.forEach(function(t){v.API.removeAnimatedEventFromView(h,n,t.animatedValueTag)})}}}var h=(function(){function v(n){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,v),this._listeners=[],this._argMapping=n,s.listener&&this.__addListener(s.listener),this._callListeners=this._callListeners.bind(this),this._attachedEvent=null,this.__isNative=_(s)}return n(v,[{key:"__addListener",value:function(t){this._listeners.push(t)}},{key:"__removeListener",value:function(t){this._listeners=this._listeners.filter(function(n){return n!==t})}},{key:"__attach",value:function(t,n){c(this.__isNative,'Only native driven events need to be attached.'),this._attachedEvent=l(t,n,this._argMapping)}},{key:"__detach",value:function(t,n){c(this.__isNative,'Only native driven events need to be detached.'),this._attachedEvent&&this._attachedEvent.detach()}},{key:"__getHandler",value:function(){var t=this;return this.__isNative?this._callListeners:function(){for(var n=arguments.length,v=new Array(n),o=0;oo){if('identity'===f)return c;'clamp'===f&&(c=o)}return u===p?u:n===o?t<=n?u:p:(n===-1/0?c=-c:o===1/0?c-=n:c=(c-n)/(o-n),c=l(c),u===-1/0?c=-c:p===1/0?c+=u:c=c*(p-u)+u,c)}function x(t){var n=_(t);return null===n?t:"rgba("+((4278190080&(n=n||0))>>>24)+", "+((16711680&n)>>>16)+", "+((65280&n)>>>8)+", "+(255&n)/255+")"}var k=/[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;function b(t){var n=t.outputRange;s(n.length>=2,'Bad output range'),C(n=n.map(x));var o=n[0].match(k).map(function(){return[]});n.forEach(function(t){t.match(k).forEach(function(t,n){o[n].push(+t)})});var u,p=n[0].match(k).map(function(n,u){return y(h({},t,{outputRange:o[u]}))}),l='string'==typeof(u=n[0])&&u.startsWith('rgb');return function(t){var o=0;return n[0].replace(k,function(){var n=+p[o++](t);return l&&(n=o<4?Math.round(n):Math.round(1e3*n)/1e3),String(n)})}}function C(t){for(var n=t[0].replace(k,''),o=1;o=t);++o);return o-1}function N(t){s(t.length>=2,'inputRange must have at least 2 elements');for(var n=1;n=t[n-1],'inputRange must be monotonically non-decreasing '+t)}function w(t,n){s(n.length>=2,t+' must have at least 2 elements'),s(2!==n.length||n[0]!==-1/0||n[1]!==1/0,t+'cannot be ]-infinity;+infinity[ '+n)}var D=(function(h){function _(n,p){var l;return t(this,_),(l=o(this,u(_).call(this)))._parent=n,l._config=p,l._interpolation=y(p),l}return l(_,f),n(_,[{key:"__makeNative",value:function(){this._parent.__makeNative(),p(u(_.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var t=this._parent.__getValue();return s('number'==typeof t,'Cannot interpolate an input which is not a number.'),this._interpolation(t)}},{key:"interpolate",value:function(t){return new _(this,t)}},{key:"__attach",value:function(){this._parent.__addChild(this)}},{key:"__detach",value:function(){this._parent.__removeChild(this),p(u(_.prototype),"__detach",this).call(this)}},{key:"__transformDataType",value:function(t){return t.map(c.transformDataType)}},{key:"__getNativeConfig",value:function(){return{inputRange:this._config.inputRange,outputRange:this.__transformDataType(this._config.outputRange),extrapolateLeft:this._config.extrapolateLeft||this._config.extrapolate||'extend',extrapolateRight:this._config.extrapolateRight||this._config.extrapolate||'extend',type:'interpolation'}}}]),_})();D.__createInterpolation=y,m.exports=D},227,[25,26,38,41,42,44,51,228,231,229,4,68]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),_=s.API,u=r(d[3]),o=1,v=(function(){function v(){t(this,v),this._listeners={}}return n(v,[{key:"__attach",value:function(){}},{key:"__detach",value:function(){this.__isNative&&null!=this.__nativeTag&&(s.API.dropAnimatedNode(this.__nativeTag),this.__nativeTag=void 0)}},{key:"__getValue",value:function(){}},{key:"__getAnimatedValue",value:function(){return this.__getValue()}},{key:"__addChild",value:function(t){}},{key:"__removeChild",value:function(t){}},{key:"__getChildren",value:function(){return[]}}]),n(v,[{key:"__makeNative",value:function(){if(!this.__isNative)throw new Error('This node cannot be made a "native" animated node');this.hasListeners()&&this._startListeningToNativeValueUpdates()}},{key:"addListener",value:function(t){var n=String(o++);return this._listeners[n]=t,this.__isNative&&this._startListeningToNativeValueUpdates(),n}},{key:"removeListener",value:function(t){delete this._listeners[t],this.__isNative&&!this.hasListeners()&&this._stopListeningForNativeValueUpdates()}},{key:"removeAllListeners",value:function(){this._listeners={},this.__isNative&&this._stopListeningForNativeValueUpdates()}},{key:"hasListeners",value:function(){return!!Object.keys(this._listeners).length}},{key:"_startListeningToNativeValueUpdates",value:function(){var t=this;this.__nativeAnimatedValueListener&&!this.__shouldUpdateListenersForNewNativeTag||(this.__shouldUpdateListenersForNewNativeTag&&(this.__shouldUpdateListenersForNewNativeTag=!1,this._stopListeningForNativeValueUpdates()),_.startListeningToAnimatedNodeValue(this.__getNativeTag()),this.__nativeAnimatedValueListener=s.nativeEventEmitter.addListener('onAnimatedValueUpdate',function(n){n.tag===t.__getNativeTag()&&t._onAnimatedValueUpdateReceived(n.value)}))}},{key:"_onAnimatedValueUpdateReceived",value:function(t){this.__callListeners(t)}},{key:"__callListeners",value:function(t){for(var n in this._listeners)this._listeners[n]({value:t})}},{key:"_stopListeningForNativeValueUpdates",value:function(){this.__nativeAnimatedValueListener&&(this.__nativeAnimatedValueListener.remove(),this.__nativeAnimatedValueListener=null,_.stopListeningToAnimatedNodeValue(this.__getNativeTag()))}},{key:"__getNativeTag",value:function(){if(s.assertNativeAnimatedModule(),u(this.__isNative,'Attempt to get native tag from node not marked as "native"'),null==this.__nativeTag){var t=s.generateNewNodeTag();this.__nativeTag=t,s.API.createAnimatedNode(t,this.__getNativeConfig()),this.__shouldUpdateListenersForNewNativeTag=!0}return this.__nativeTag}},{key:"__getNativeConfig",value:function(){throw new Error('This JS animated node type cannot be used as native animated node')}},{key:"toJSON",value:function(){return this.__getValue()}}]),v})();m.exports=v},228,[25,26,229,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]),o=n(r(d[1])),l=n(r(d[2])),u=n(r(d[3])),s=1,f=1,v=!1,c=[],N={enableQueue:function(){v=!0},disableQueue:function(){(0,u.default)(l.default,'Native animated module is not available'),v=!1;for(var t=0,n=c.length;t=t.length)break;l=t[n++]}else{if((n=t.next()).done)break;l=n.value}var o=l;o.__makeNative(),c.API.connectAnimatedNodes(this.__getNativeTag(),o.__getNativeTag())}}h(s(u.prototype),"__makeNative",this).call(this)}},{key:"__addChild",value:function(t){0===this._children.length&&this.__attach(),this._children.push(t),this.__isNative&&(t.__makeNative(),c.API.connectAnimatedNodes(this.__getNativeTag(),t.__getNativeTag()))}},{key:"__removeChild",value:function(t){var _=this._children.indexOf(t);-1!==_?(this.__isNative&&t.__isNative&&c.API.disconnectAnimatedNodes(this.__getNativeTag(),t.__getNativeTag()),this._children.splice(_,1),0===this._children.length&&this.__detach()):console.warn("Trying to remove a child that doesn't exist")}},{key:"__getChildren",value:function(){return this._children}},{key:"__callListeners",value:function(t){if(h(s(u.prototype),"__callListeners",this).call(this,t),!this.__isNative){var _=this._children,n=Array.isArray(_),l=0;for(_=n?_:_["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var o;if(n){if(l>=_.length)break;o=_[l++]}else{if((l=_.next()).done)break;o=l.value}var c=o;c.__getValue&&c.__callListeners(c.__getValue())}}}}]),u})();m.exports=v},231,[25,26,38,41,42,44,228,229]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=r(d[2]),c=(r(d[3]),r(d[4])),s=r(d[5]),u=new t,l={Events:s({interactionStart:!0,interactionComplete:!0}),runAfterInteractions:function(n){var t=[],o=new Promise(function(o){k(),n&&t.push(n),t.push({run:o,name:'resolve '+(n&&n.name||'?')}),h.enqueueTasks(t)});return{then:o.then.bind(o),done:function(){if(o.done)return o.done.apply(o,arguments);console.warn('Tried to call done when not supported by current Promise implementation.')},cancel:function(){h.cancelTasks(t)}}},createInteractionHandle:function(){k();var n=++T;return p.add(n),n},clearInteractionHandle:function(n){c(!!n,'InteractionManager: Must provide a handle to clear.'),k(),p.delete(n),v.add(n)},addListener:u.addListener.bind(u),setDeadline:function(n){E=n}},f=new Set,p=new Set,v=new Set,h=new o({onMoreTasks:k}),w=0,T=0,E=-1;function k(){w||(w=E>0?setTimeout(I,0):setImmediate(I))}function I(){w=0;var t=f.size;p.forEach(function(n){return f.add(n)}),v.forEach(function(n){return f.delete(n)});var o=f.size;if(0!==t&&0===o?u.emit(l.Events.interactionComplete):0===t&&0!==o&&u.emit(l.Events.interactionStart),0===o)for(;h.hasTasksToProcess();)if(h.processNext(),E>0&&n.getEventLoopRunningTime()>=E){k();break}p.clear(),v.clear()}m.exports=l},232,[19,46,233,163,4,218]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=r(d[1]),s=r(d[2]),n=(r(d[3]),r(d[4])),o=(function(){function o(t){var s=t.onMoreTasks;u(this,o),this._onMoreTasks=s,this._queueStack=[{tasks:[],popable:!1}]}return s(o,[{key:"enqueue",value:function(t){this._getCurrentQueue().push(t)}},{key:"enqueueTasks",value:function(t){var u=this;t.forEach(function(t){return u.enqueue(t)})}},{key:"cancelTasks",value:function(u){this._queueStack=this._queueStack.map(function(s){return t({},s,{tasks:s.tasks.filter(function(t){return-1===u.indexOf(t)})})}).filter(function(t,u){return t.tasks.length>0||0===u})}},{key:"hasTasksToProcess",value:function(){return this._getCurrentQueue().length>0}},{key:"processNext",value:function(){var t=this._getCurrentQueue();if(t.length){var u=t.shift();try{u.gen?this._genPromise(u):u.run?u.run():(n('function'==typeof u,'Expected Function, SimpleTask, or PromiseTask, but got:\n'+JSON.stringify(u,null,2)),u())}catch(t){throw t.message='TaskQueue: Error with task '+(u.name||'')+': '+t.message,t}}}},{key:"_getCurrentQueue",value:function(){var t=this._queueStack.length-1,u=this._queueStack[t];return u.popable&&0===u.tasks.length&&this._queueStack.length>1?(this._queueStack.pop(),this._getCurrentQueue()):u.tasks}},{key:"_genPromise",value:function(t){var u=this;this._queueStack.push({tasks:[],popable:!1});var s=this._queueStack.length-1;t.gen().then(function(){u._queueStack[s].popable=!0,u.hasTasksToProcess()&&u._onMoreTasks()}).catch(function(u){throw u.message="TaskQueue: Error resolving Promise in task "+t.name+": "+u.message,u}).done()}}]),o})();m.exports=o},233,[51,25,26,163,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=t.AnimatedEvent,u=t.attachNativeEvent,s=r(d[2]),c=r(d[3]),f=r(d[4]),v=r(d[5]),p=r(d[6]),l=r(d[7]),h=r(d[8]),_=r(d[9]),N=r(d[10]),w=r(d[11]),E=r(d[12]),y=r(d[13]),D=r(d[14]),L=r(d[15]),A=r(d[16]),U=r(d[17]),k=function(n,t){return n&&t.onComplete?function(){t.onComplete&&t.onComplete.apply(t,arguments),n&&n.apply(void 0,arguments)}:n||t.onComplete},V=function(t,o,u){if(t instanceof y){var s=n({},o),c=n({},o);for(var f in o){var v=o[f],p=v.x,l=v.y;void 0!==p&&void 0!==l&&(s[f]=p,c[f]=l)}var h=u(t.x,s),_=u(t.y,c);return x([h,_],{stopTogether:!1})}return null},C=function t(o,u){var s=function(n,t,o){o=k(o,t);var u=n,s=t;u.stopTracking(),t.toValue instanceof h?u.track(new w(u,t.toValue,A,s,o)):u.animate(new A(s),o)};return V(o,u,t)||{start:function(n){s(o,u,n)},stop:function(){o.stopAnimation()},reset:function(){o.resetAnimation()},_startNativeLoop:function(t){var c=n({},u,{iterations:t});s(o,c)},_isUsingNativeDriver:function(){return u.useNativeDriver||!1}}},T=function(n){var t=0;return{start:function(o){0===n.length?o&&o({finished:!0}):n[t].start(function u(s){s.finished&&++t!==n.length?n[t].start(u):o&&o(s)})},stop:function(){t1&&void 0!==arguments[1]?arguments[1]:{},o=t.iterations,u=void 0===o?-1:o,s=t.resetBeforeIteration,c=void 0===s||s,f=!1,v=0;return{start:function(t){n&&0!==u?n._isUsingNativeDriver()?n._startNativeLoop(u):(function o(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{finished:!0};f||v===u||!1===s.finished?t&&t(s):(v++,c&&n.reset(),n.start(o))})():t&&t({finished:!0})},stop:function(){f=!0,n.stop()},reset:function(){v=0,f=!1,n.reset()},_startNativeLoop:function(){throw new Error('Loops run using the native driver cannot contain Animated.loop animations')},_isUsingNativeDriver:function(){return n._isUsingNativeDriver()}}},event:function(n,t){var u=new o(n,t);return u.__isNative?u:u.__getHandler()},createAnimatedComponent:U,attachNativeEvent:u,forkEvent:function(n,t){return n?n instanceof o?(n.__addListener(t),n):function(){'function'==typeof n&&n.apply(void 0,arguments),t.apply(void 0,arguments)}:t},unforkEvent:function(n,t){n&&n instanceof o&&n.__removeListener(t)},Event:o,__PropsOnlyForTests:_}},234,[51,225,235,236,237,227,238,239,228,240,243,244,226,245,246,248,250,253]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),u=r(d[4]),s=r(d[5]),o=r(d[6]),l=(r(d[7]),r(d[8])),v=r(d[9]),c=(function(c){function f(_,u){var s;return t(this,f),(s=n(this,h(f).call(this)))._a='number'==typeof _?new l(_):_,s._b='number'==typeof u?new l(u):u,s}return s(f,v),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),u(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()+this._b.__getValue()}},{key:"interpolate",value:function(t){return new o(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),u(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'addition',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=c},235,[25,26,38,41,42,44,227,228,226,231]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),u=r(d[3]),h=r(d[4]),s=r(d[5]),l=r(d[6]),v=(r(d[7]),r(d[8])),c=(function(c){function o(_,h,s){var l;return t(this,o),(l=n(this,u(o).call(this)))._a=_,l._min=h,l._max=s,l._value=l._lastValue=l._a.__getValue(),l}return s(o,v),_(o,[{key:"__makeNative",value:function(){this._a.__makeNative(),h(u(o.prototype),"__makeNative",this).call(this)}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__getValue",value:function(){var t=this._a.__getValue(),_=t-this._lastValue;return this._lastValue=t,this._value=Math.min(Math.max(this._value+_,this._min),this._max),this._value}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),h(u(o.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'diffclamp',input:this._a.__getNativeTag(),min:this._min,max:this._max}}}]),o})();m.exports=c},236,[25,26,38,41,42,44,227,228,231]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),s=r(d[4]),o=r(d[5]),u=r(d[6]),l=(r(d[7]),r(d[8])),v=r(d[9]),c=(function(c){function f(_,s){var o;return t(this,f),(o=n(this,h(f).call(this)))._a='number'==typeof _?new l(_):_,o._b='number'==typeof s?new l(s):s,o}return o(f,v),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),s(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var t=this._a.__getValue(),_=this._b.__getValue();return 0===_&&console.error('Detected division by zero in AnimatedDivision'),t/_}},{key:"interpolate",value:function(t){return new u(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),s(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'division',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=c},237,[25,26,38,41,42,44,227,228,226,231]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=r(d[1]),_=r(d[2]),s=r(d[3]),n=r(d[4]),h=r(d[5]),l=r(d[6]),o=(r(d[7]),r(d[8])),c=(function(c){function v(u,n){var h;return t(this,v),(h=_(this,s(v).call(this)))._a=u,h._modulus=n,h}return h(v,o),u(v,[{key:"__makeNative",value:function(){this._a.__makeNative(),n(s(v.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return(this._a.__getValue()%this._modulus+this._modulus)%this._modulus}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),n(s(v.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'modulus',input:this._a.__getNativeTag(),modulus:this._modulus}}}]),v})();m.exports=c},238,[25,26,38,41,42,44,227,228,231]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),u=r(d[4]),s=r(d[5]),l=r(d[6]),o=(r(d[7]),r(d[8])),c=r(d[9]),v=(function(v){function f(_,u){var s;return t(this,f),(s=n(this,h(f).call(this)))._a='number'==typeof _?new o(_):_,s._b='number'==typeof u?new o(u):u,s}return s(f,c),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),u(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()*this._b.__getValue()}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),u(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'multiplication',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=v},239,[25,26,38,41,42,44,227,228,226,231]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),_=r(d[2]),s=r(d[3]),o=r(d[4]),c=r(d[5]),v=r(d[6]),h=r(d[7]).AnimatedEvent,l=r(d[8]),p=r(d[9]),u=r(d[10]),f=r(d[11]),N=r(d[12]),V=(function(V){function k(_,c){var v;return n(this,k),v=s(this,o(k).call(this)),_.style&&(_=t({},_,{style:new p(_.style)})),v._props=_,v._callback=c,v.__attach(),v}return v(k,l),_(k,[{key:"__getValue",value:function(){var t={};for(var n in this._props){var _=this._props[n];_ instanceof l?(!_.__isNative||_ instanceof p)&&(t[n]=_.__getValue()):t[n]=_ instanceof h?_.__getHandler():_}return t}},{key:"__getAnimatedValue",value:function(){var t={};for(var n in this._props){var _=this._props[n];_ instanceof l&&(t[n]=_.__getAnimatedValue())}return t}},{key:"__attach",value:function(){for(var t in this._props){var n=this._props[t];n instanceof l&&n.__addChild(this)}}},{key:"__detach",value:function(){for(var t in this.__isNative&&this._animatedView&&this.__disconnectAnimatedView(),this._props){var n=this._props[t];n instanceof l&&n.__removeChild(this)}c(o(k.prototype),"__detach",this).call(this)}},{key:"update",value:function(){this._callback()}},{key:"__makeNative",value:function(){if(!this.__isNative){for(var t in this.__isNative=!0,this._props){var n=this._props[t];n instanceof l&&n.__makeNative()}this._animatedView&&this.__connectAnimatedView()}}},{key:"setNativeView",value:function(t){this._animatedView!==t&&(this._animatedView=t,this.__isNative&&this.__connectAnimatedView())}},{key:"__connectAnimatedView",value:function(){N(this.__isNative,'Expected node to be marked as "native"');var t=f.findNodeHandle(this._animatedView);N(null!=t,'Unable to locate attached view in the native tree'),u.API.connectAnimatedNodeToView(this.__getNativeTag(),t)}},{key:"__disconnectAnimatedView",value:function(){N(this.__isNative,'Expected node to be marked as "native"');var t=f.findNodeHandle(this._animatedView);N(null!=t,'Unable to locate attached view in the native tree'),u.API.disconnectAnimatedNodeFromView(this.__getNativeTag(),t)}},{key:"__getNativeConfig",value:function(){var t={};for(var n in this._props){var _=this._props[n];_ instanceof l&&(_.__makeNative(),t[n]=_.__getNativeTag())}return{type:'props',props:t}}}]),k})();m.exports=V},240,[51,25,26,38,41,42,44,225,228,241,229,91,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),l=r(d[3]),_=r(d[4]),y=r(d[5]),o=r(d[6]),u=r(d[7]),v=r(d[8]),f=r(d[9]),h=r(d[10]),c=r(d[11]),k=(function(k){function A(s){var y;return n(this,A),y=l(this,_(A).call(this)),(s=c(s)||{}).transform&&(s=t({},s,{transform:new v(s.transform)})),y._style=s,y}return o(A,f),s(A,[{key:"_walkStyleAndGetValues",value:function(t){var n={};for(var s in t){var l=t[s];l instanceof u?l.__isNative||(n[s]=l.__getValue()):l&&!Array.isArray(l)&&'object'==typeof l?n[s]=this._walkStyleAndGetValues(l):n[s]=l}return n}},{key:"__getValue",value:function(){return this._walkStyleAndGetValues(this._style)}},{key:"_walkStyleAndGetAnimatedValues",value:function(t){var n={};for(var s in t){var l=t[s];l instanceof u?n[s]=l.__getAnimatedValue():l&&!Array.isArray(l)&&'object'==typeof l&&(n[s]=this._walkStyleAndGetAnimatedValues(l))}return n}},{key:"__getAnimatedValue",value:function(){return this._walkStyleAndGetAnimatedValues(this._style)}},{key:"__attach",value:function(){for(var t in this._style){var n=this._style[t];n instanceof u&&n.__addChild(this)}}},{key:"__detach",value:function(){for(var t in this._style){var n=this._style[t];n instanceof u&&n.__removeChild(this)}y(_(A.prototype),"__detach",this).call(this)}},{key:"__makeNative",value:function(){for(var t in this._style){var n=this._style[t];n instanceof u&&n.__makeNative()}y(_(A.prototype),"__makeNative",this).call(this)}},{key:"__getNativeConfig",value:function(){var t={};for(var n in this._style)if(this._style[n]instanceof u){var s=this._style[n];s.__makeNative(),t[n]=s.__getNativeTag()}return h.validateStyles(t),{type:'style',style:t}}}]),A})();m.exports=k},241,[51,25,26,38,41,42,44,228,242,231,229,88]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),f=r(d[4]),_=r(d[5]),u=r(d[6]),c=r(d[7]),v=r(d[8]),h=(function(h){function l(n){var f;return t(this,l),(f=o(this,s(l).call(this)))._transforms=n,f}return _(l,c),n(l,[{key:"__makeNative",value:function(){this._transforms.forEach(function(t){for(var n in t){var o=t[n];o instanceof u&&o.__makeNative()}}),f(s(l.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._transforms.map(function(t){var n={};for(var o in t){var s=t[o];n[o]=s instanceof u?s.__getValue():s}return n})}},{key:"__getAnimatedValue",value:function(){return this._transforms.map(function(t){var n={};for(var o in t){var s=t[o];n[o]=s instanceof u?s.__getAnimatedValue():s}return n})}},{key:"__attach",value:function(){var t=this;this._transforms.forEach(function(n){for(var o in n){var s=n[o];s instanceof u&&s.__addChild(t)}})}},{key:"__detach",value:function(){var t=this;this._transforms.forEach(function(n){for(var o in n){var s=n[o];s instanceof u&&s.__removeChild(t)}}),f(s(l.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){var t=[];return this._transforms.forEach(function(n){for(var o in n){var s=n[o];s instanceof u?t.push({type:'animated',property:o,nodeTag:s.__getNativeTag()}):t.push({type:'static',property:o,value:v.transformDataType(s)})}}),v.validateTransform(t),{type:'transform',transforms:t}}}]),l})();m.exports=h},242,[25,26,38,41,42,44,228,231,229]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),u=r(d[4]),s=r(d[5]),o=r(d[6]),l=(r(d[7]),r(d[8])),c=r(d[9]),v=(function(v){function f(_,u){var s;return t(this,f),(s=n(this,h(f).call(this)))._a='number'==typeof _?new l(_):_,s._b='number'==typeof u?new l(u):u,s}return s(f,c),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),u(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()-this._b.__getValue()}},{key:"interpolate",value:function(t){return new o(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),u(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'subtraction',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=v},243,[25,26,38,41,42,44,227,228,226,231]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),_=r(d[2]),s=r(d[3]),o=r(d[4]),u=r(d[5]),l=r(d[6]),h=(r(d[7]),r(d[8])),v=r(d[9]),c=v.generateNewAnimationId,f=v.shouldUseNativeDriver,k=(function(v){function k(t,_,u,l,h){var v;return n(this,k),(v=s(this,o(k).call(this)))._value=t,v._parent=_,v._animationClass=u,v._animationConfig=l,v._useNativeDriver=f(l),v._callback=h,v.__attach(),v}return l(k,h),_(k,[{key:"__makeNative",value:function(){this.__isNative=!0,this._parent.__makeNative(),u(o(k.prototype),"__makeNative",this).call(this),this._value.__makeNative()}},{key:"__getValue",value:function(){return this._parent.__getValue()}},{key:"__attach",value:function(){this._parent.__addChild(this),this._useNativeDriver&&this.__makeNative()}},{key:"__detach",value:function(){this._parent.__removeChild(this),u(o(k.prototype),"__detach",this).call(this)}},{key:"update",value:function(){this._value.animate(new this._animationClass(t({},this._animationConfig,{toValue:this._animationConfig.toValue.__getValue()})),this._callback)}},{key:"__getNativeConfig",value:function(){var n=new this._animationClass(t({},this._animationConfig,{toValue:void 0})).__getNativeAnimationConfig();return{type:'tracking',animationId:c(),animationConfig:n,toValue:this._parent.__getNativeTag(),value:this._value.__getNativeTag()}}}]),k})();m.exports=k},244,[51,25,26,38,41,42,44,226,228,229]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),u=r(d[3]),l=r(d[4]),f=r(d[5]),o=r(d[6]),y=r(d[7]),h=1,x=(function(x){function c(s){var l;t(this,c),l=n(this,u(c).call(this));var o=s||{x:0,y:0};return'number'==typeof o.x&&'number'==typeof o.y?(l.x=new f(o.x),l.y=new f(o.y)):(y(o.x instanceof f&&o.y instanceof f,"AnimatedValueXY must be initialized with an object of numbers or AnimatedValues."),l.x=o.x,l.y=o.y),l._listeners={},l}return l(c,o),s(c,[{key:"setValue",value:function(t){this.x.setValue(t.x),this.y.setValue(t.y)}},{key:"setOffset",value:function(t){this.x.setOffset(t.x),this.y.setOffset(t.y)}},{key:"flattenOffset",value:function(){this.x.flattenOffset(),this.y.flattenOffset()}},{key:"extractOffset",value:function(){this.x.extractOffset(),this.y.extractOffset()}},{key:"__getValue",value:function(){return{x:this.x.__getValue(),y:this.y.__getValue()}}},{key:"resetAnimation",value:function(t){this.x.resetAnimation(),this.y.resetAnimation(),t&&t(this.__getValue())}},{key:"stopAnimation",value:function(t){this.x.stopAnimation(),this.y.stopAnimation(),t&&t(this.__getValue())}},{key:"addListener",value:function(t){var s=this,n=String(h++),u=function(n){n.value;t(s.__getValue())};return this._listeners[n]={x:this.x.addListener(u),y:this.y.addListener(u)},n}},{key:"removeListener",value:function(t){this.x.removeListener(this._listeners[t].x),this.y.removeListener(this._listeners[t].y),delete this._listeners[t]}},{key:"removeAllListeners",value:function(){this.x.removeAllListeners(),this.y.removeAllListeners(),this._listeners={}}},{key:"getLayout",value:function(){return{left:this.x,top:this.y}}},{key:"getTranslateTransform",value:function(){return[{translateX:this.x},{translateY:this.y}]}}]),c})();m.exports=x},245,[25,26,38,41,44,226,231,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),_=r(d[4]),h=r(d[5]),l=r(d[6]),c=r(d[7]).shouldUseNativeDriver,u=(function(u){function v(n){var _,h,l,u;return t(this,v),(u=s(this,o(v).call(this)))._deceleration=null!=(_=n.deceleration)?_:.998,u._velocity=n.velocity,u._useNativeDriver=c(n),u.__isInteraction=null!=(h=n.isInteraction)?h:!u._useNativeDriver,u.__iterations=null!=(l=n.iterations)?l:1,u}return h(v,l),n(v,[{key:"__getNativeAnimationConfig",value:function(){return{type:'decay',deceleration:this._deceleration,velocity:this._velocity,iterations:this.__iterations}}},{key:"start",value:function(t,n,s,o,_){this.__active=!0,this._lastValue=t,this._fromValue=t,this._onUpdate=n,this.__onEnd=s,this._startTime=Date.now(),this._useNativeDriver?this.__startNativeAnimation(_):this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))}},{key:"onUpdate",value:function(){var t=Date.now(),n=this._fromValue+this._velocity/(1-this._deceleration)*(1-Math.exp(-(1-this._deceleration)*(t-this._startTime)));this._onUpdate(n),Math.abs(this._lastValue-n)<.1?this.__debouncedOnEnd({finished:!0}):(this._lastValue=n,this.__active&&(this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))))}},{key:"stop",value:function(){_(o(v.prototype),"stop",this).call(this),this.__active=!1,g.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),v})();m.exports=u},246,[25,26,38,41,42,44,247,229]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=r(d[2]),_=(function(){function _(){n(this,_)}return t(_,[{key:"start",value:function(n,t,o,_,u){}},{key:"stop",value:function(){this.__nativeId&&o.API.stopAnimation(this.__nativeId)}},{key:"__getNativeAnimationConfig",value:function(){throw new Error('This animation type cannot be offloaded to native')}},{key:"__debouncedOnEnd",value:function(n){var t=this.__onEnd;this.__onEnd=null,t&&t(n)}},{key:"__startNativeAnimation",value:function(n){o.API.enableQueue(),n.__makeNative(),o.API.disableQueue(),this.__nativeId=o.generateNewAnimationId(),o.API.startAnimatingNode(this.__nativeId,n.__getNativeTag(),this.__getNativeAnimationConfig(),this.__debouncedOnEnd.bind(this))}}]),_})();m.exports=_},247,[25,26,229]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),o=r(d[3]),l=r(d[4]),h=r(d[5]),_=(r(d[6]),r(d[7]),r(d[8])),u=r(d[9]),f=r(d[10]),c=r(d[11]).shouldUseNativeDriver,v=(function(v){function p(s){var l,h,_,v,y,V,T,b,M,D,P,S;if(t(this,p),(M=n(this,o(p).call(this)))._overshootClamping=null!=(l=s.overshootClamping)&&l,M._restDisplacementThreshold=null!=(h=s.restDisplacementThreshold)?h:.001,M._restSpeedThreshold=null!=(_=s.restSpeedThreshold)?_:.001,M._initialVelocity=null!=(v=s.velocity)?v:0,M._lastVelocity=null!=(y=s.velocity)?y:0,M._toValue=s.toValue,M._delay=null!=(V=s.delay)?V:0,M._useNativeDriver=c(s),M.__isInteraction=null!=(T=s.isInteraction)?T:!M._useNativeDriver,M.__iterations=null!=(b=s.iterations)?b:1,void 0!==s.stiffness||void 0!==s.damping||void 0!==s.mass)f(void 0===s.bounciness&&void 0===s.speed&&void 0===s.tension&&void 0===s.friction,'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one'),M._stiffness=null!=(D=s.stiffness)?D:100,M._damping=null!=(P=s.damping)?P:10,M._mass=null!=(S=s.mass)?S:1;else if(void 0!==s.bounciness||void 0!==s.speed){var U,A;f(void 0===s.tension&&void 0===s.friction&&void 0===s.stiffness&&void 0===s.damping&&void 0===s.mass,'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');var C=u.fromBouncinessAndSpeed(null!=(U=s.bounciness)?U:8,null!=(A=s.speed)?A:12);M._stiffness=C.stiffness,M._damping=C.damping,M._mass=1}else{var N,k,F=u.fromOrigamiTensionAndFriction(null!=(N=s.tension)?N:40,null!=(k=s.friction)?k:7);M._stiffness=F.stiffness,M._damping=F.damping,M._mass=1}return f(M._stiffness>0,'Stiffness value must be greater than 0'),f(M._damping>0,'Damping value must be greater than 0'),f(M._mass>0,'Mass value must be greater than 0'),M}return h(p,_),s(p,[{key:"__getNativeAnimationConfig",value:function(){var t;return{type:'spring',overshootClamping:this._overshootClamping,restDisplacementThreshold:this._restDisplacementThreshold,restSpeedThreshold:this._restSpeedThreshold,stiffness:this._stiffness,damping:this._damping,mass:this._mass,initialVelocity:null!=(t=this._initialVelocity)?t:this._lastVelocity,toValue:this._toValue,iterations:this.__iterations}}},{key:"start",value:function(t,s,n,o,l){var h=this;if(this.__active=!0,this._startPosition=t,this._lastPosition=this._startPosition,this._onUpdate=s,this.__onEnd=n,this._lastTime=Date.now(),this._frameTime=0,o instanceof p){var _=o.getInternalState();this._lastPosition=_.lastPosition,this._lastVelocity=_.lastVelocity,this._initialVelocity=this._lastVelocity,this._lastTime=_.lastTime}var u=function(){h._useNativeDriver?h.__startNativeAnimation(l):h.onUpdate()};this._delay?this._timeout=setTimeout(u,this._delay):u()}},{key:"getInternalState",value:function(){return{lastPosition:this._lastPosition,lastVelocity:this._lastVelocity,lastTime:this._lastTime}}},{key:"onUpdate",value:function(){var t=Date.now();t>this._lastTime+64&&(t=this._lastTime+64);var s=(t-this._lastTime)/1e3;this._frameTime+=s;var n=this._damping,o=this._mass,l=this._stiffness,h=-this._initialVelocity,_=n/(2*Math.sqrt(l*o)),u=Math.sqrt(l/o),f=u*Math.sqrt(1-_*_),c=this._toValue-this._startPosition,v=0,p=0,y=this._frameTime;if(_<1){var V=Math.exp(-_*u*y);v=this._toValue-V*((h+_*u*c)/f*Math.sin(f*y)+c*Math.cos(f*y)),p=_*u*V*(Math.sin(f*y)*(h+_*u*c)/f+c*Math.cos(f*y))-V*(Math.cos(f*y)*(h+_*u*c)-f*c*Math.sin(f*y))}else{var T=Math.exp(-u*y);v=this._toValue-T*(c+(h+u*c)*y),p=T*(h*(y*u-1)+y*c*(u*u))}if(this._lastTime=t,this._lastPosition=v,this._lastVelocity=p,this._onUpdate(v),this.__active){var b=!1;this._overshootClamping&&0!==this._stiffness&&(b=this._startPositionthis._toValue:v18&&A<=44?p(A):h(A),s(2*M-M*M,v,.01));return{stiffness:n(x),damping:t(B)}}}},249,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]),s=r(d[1]),o=r(d[2]),_=r(d[3]),u=r(d[4]),h=r(d[5]),l=(r(d[6]),r(d[7]),r(d[8])),v=r(d[9]).shouldUseNativeDriver;function c(){if(!t){var n=r(d[10]);t=n.inOut(n.ease)}return t}var f=(function(t){function f(t){var s,u,h,l,p,V;return n(this,f),(V=o(this,_(f).call(this)))._toValue=t.toValue,V._easing=null!=(s=t.easing)?s:c(),V._duration=null!=(u=t.duration)?u:500,V._delay=null!=(h=t.delay)?h:0,V.__iterations=null!=(l=t.iterations)?l:1,V._useNativeDriver=v(t),V.__isInteraction=null!=(p=t.isInteraction)?p:!V._useNativeDriver,V}return h(f,l),s(f,[{key:"__getNativeAnimationConfig",value:function(){for(var t=[],n=Math.round(this._duration/16.666666666666668),s=0;s=this._startTime+this._duration)return 0===this._duration?this._onUpdate(this._toValue):this._onUpdate(this._fromValue+this._easing(1)*(this._toValue-this._fromValue)),void this.__debouncedOnEnd({finished:!0});this._onUpdate(this._fromValue+this._easing((t-this._startTime)/this._duration)*(this._toValue-this._fromValue)),this.__active&&(this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this)))}},{key:"stop",value:function(){u(_(f.prototype),"stop",this).call(this),this.__active=!1,clearTimeout(this._timeout),g.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),f})();m.exports=f},250,[25,26,38,41,42,44,226,245,247,229,251]); -__d(function(g,r,i,a,m,e,d){'use strict';var n,u=r(d[0]),t=r(d[1]),o=(function(){function o(){u(this,o)}return t(o,null,[{key:"step0",value:function(n){return n>0?1:0}},{key:"step1",value:function(n){return n>=1?1:0}},{key:"linear",value:function(n){return n}},{key:"ease",value:function(u){return n||(n=o.bezier(.42,0,1,1)),n(u)}},{key:"quad",value:function(n){return n*n}},{key:"cubic",value:function(n){return n*n*n}},{key:"poly",value:function(n){return function(u){return Math.pow(u,n)}}},{key:"sin",value:function(n){return 1-Math.cos(n*Math.PI/2)}},{key:"circle",value:function(n){return 1-Math.sqrt(1-n*n)}},{key:"exp",value:function(n){return Math.pow(2,10*(n-1))}},{key:"elastic",value:function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)*Math.PI;return function(u){return 1-Math.pow(Math.cos(u*Math.PI/2),3)*Math.cos(u*n)}}},{key:"back",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1.70158;return function(u){return u*u*((n+1)*u-n)}}},{key:"bounce",value:function(n){if(n<.36363636363636365)return 7.5625*n*n;if(n<.7272727272727273){var u=n-.5454545454545454;return 7.5625*u*u+.75}if(n<.9090909090909091){var t=n-.8181818181818182;return 7.5625*t*t+.9375}var o=n-.9545454545454546;return 7.5625*o*o+.984375}},{key:"bezier",value:function(n,u,t,o){return r(d[2])(n,u,t,o)}},{key:"in",value:function(n){return n}},{key:"out",value:function(n){return function(u){return 1-n(1-u)}}},{key:"inOut",value:function(n){return function(u){return u<.5?n(2*u)/2:1-n(2*(1-u))/2}}}]),o})();m.exports=o},251,[25,26,252]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=4,t=.001,u=1e-7,o=10,f=.1,c='function'==typeof Float32Array;function v(n,t){return 1-3*t+3*n}function s(n,t){return 3*t-6*n}function w(n){return 3*n}function l(n,t,u){return((v(t,u)*n+s(t,u))*n+w(t))*n}function y(n,t,u){return 3*v(t,u)*n*n+2*s(t,u)*n+w(t)}function b(n,t,f,c,v){var s,w,y=0,b=t,h=f;do{(s=l(w=b+(h-b)/2,c,v)-n)>0?h=w:b=w}while(Math.abs(s)>u&&++y=0&&n<=1&&o>=0&&o<=1))throw new Error('bezier x values must be in [0, 1] range');var s=c?new Float32Array(11):new Array(11);if(n!==u||o!==v)for(var w=0;w<11;++w)s[w]=l(w*f,n,o);function A(u){for(var c=0,v=1;10!==v&&s[v]<=u;++v)c+=f;var w=c+(u-s[--v])/(s[v+1]-s[v])*f,l=y(w,n,o);return l>=t?h(u,w,n,o):0===l?w:b(u,c,c+f,n,o)}return function(t){return n===u&&o===v?t:0===t?0:1===t?1:l(A(t),u,v)}}},252,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),p=r(d[4]),c=r(d[5]),_=r(d[6]).AnimatedEvent,h=r(d[7]),l=r(d[8]),v=r(d[9]),u=r(d[10]);m.exports=function(f,N){u('function'!=typeof f||f.prototype&&f.prototype.isReactComponent,"`createAnimatedComponent` does not support stateless functional components; use a class component instead.");var k=(function(v){function u(t){var o;return n(this,u),(o=s(this,p(u).call(this,t)))._invokeAnimatedPropsCallbackOnMount=!1,o._eventDetachers=[],o._animatedPropsCallback=function(){if(null==o._component)o._invokeAnimatedPropsCallbackOnMount=!0;else if(u.__skipSetNativeProps_FOR_TESTS_ONLY||'function'!=typeof o._component.setNativeProps)o.forceUpdate();else{if(o._propsAnimated.__isNative)throw new Error("Attempting to run JS driven animation on animated node that has been moved to \"native\" earlier by starting an animation with `useNativeDriver: true`");o._component.setNativeProps(o._propsAnimated.__getAnimatedValue())}},o._setComponentRef=function(t){o._prevComponent=o._component,o._component=t},o}return c(u,v),o(u,[{key:"componentWillUnmount",value:function(){this._propsAnimated&&this._propsAnimated.__detach(),this._detachNativeEvents()}},{key:"setNativeProps",value:function(t){this._component.setNativeProps(t)}},{key:"UNSAFE_componentWillMount",value:function(){this._attachProps(this.props)}},{key:"componentDidMount",value:function(){this._invokeAnimatedPropsCallbackOnMount&&(this._invokeAnimatedPropsCallbackOnMount=!1,this._animatedPropsCallback()),this._propsAnimated.setNativeView(this._component),this._attachNativeEvents()}},{key:"_attachNativeEvents",value:function(){var t,n=this,o=(null==(t=this._component)?void 0:t.getScrollableNode)?this._component.getScrollableNode():this._component,s=function(t){var s=n.props[t];s instanceof _&&s.__isNative&&(s.__attach(o,t),n._eventDetachers.push(function(){return s.__detach(o,t)}))};for(var p in this.props)s(p)}},{key:"_detachNativeEvents",value:function(){this._eventDetachers.forEach(function(t){return t()}),this._eventDetachers=[]}},{key:"_attachProps",value:function(t){var n=this._propsAnimated;this._propsAnimated=new h(t,this._animatedPropsCallback),n&&n.__detach()}},{key:"UNSAFE_componentWillReceiveProps",value:function(t){this._attachProps(t)}},{key:"componentDidUpdate",value:function(t){this._component!==this._prevComponent&&this._propsAnimated.setNativeView(this._component),this._component===this._prevComponent&&t===this.props||(this._detachNativeEvents(),this._attachNativeEvents())}},{key:"render",value:function(){var n=this._propsAnimated.__getValue();return l.createElement(f,t({},N,n,{ref:this._setComponentRef,collapsable:!this._propsAnimated.__isNative&&n.collapsable}))}},{key:"getNode",value:function(){return this._component}}]),u})(l.Component);k.__skipSetNativeProps_FOR_TESTS_ONLY=!1;var y=f.propTypes;return k.propTypes={style:function(t,n,o){if(y)for(var s in v)y[s]||void 0===t[s]||console.warn('You are setting the style `{ '+s+": ... }` as a prop. You should nest it in a style object. E.g. `{ style: { "+s+': ... } }`')}},k}},253,[14,25,26,38,41,44,225,240,57,82,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]);m.exports=o(t,{scrollEventThrottle:1e-4})},254,[255,253]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),u=r(d[5]),c=r(d[6]),f=r(d[7]),p=(r(d[8]),r(d[9])),h=r(d[10]),C=r(d[11]),v=r(d[12]),y=r(d[13]),b=r(d[14]),_=f({},v.defaultProps,{numColumns:1,removeClippedSubviews:!1}),w=(function(_){function w(t){var u;return o(this,w),(u=s(this,l(w).call(this,t)))._virtualizedListPairs=[],u._captureRef=function(t){u._listRef=t},u._getItem=function(t,n){var o=u.props.numColumns;if(o>1){for(var s=[],l=0;l1?(b(Array.isArray(t),"FlatList: Encountered internal consistency error, expected each item to consist of an array with 1-%s columns; instead, received a single item.",l),t.map(function(t,o){return s(t,n*l+o)}).join(':')):s(t,n)},u._renderer=function(){var t=u.props,o=t.ListItemComponent,s=t.renderItem,l=t.numColumns,c=t.columnWrapperStyle,f=function(t){return o?h.createElement(o,t):s?s(t):null};return n({},o?'ListItemComponent':'renderItem',function(t){if(l>1){var n=t.item,o=t.index;return b(Array.isArray(n),'Expected array of items with numColumns > 1'),h.createElement(C,{style:y.compose(I.row,c)},n.map(function(n,s){var u=f({item:n,index:o*l+s,separators:t.separators});return null!=u?h.createElement(h.Fragment,{key:s},u):null}))}return f(t)})},u._checkProps(u.props),u.props.viewabilityConfigCallbackPairs?u._virtualizedListPairs=u.props.viewabilityConfigCallbackPairs.map(function(t){return{viewabilityConfig:t.viewabilityConfig,onViewableItemsChanged:u._createOnViewableItemsChanged(t.onViewableItemsChanged)}}):u.props.onViewableItemsChanged&&u._virtualizedListPairs.push({viewabilityConfig:u.props.viewabilityConfig,onViewableItemsChanged:u._createOnViewableItemsChanged(u.props.onViewableItemsChanged)}),u}return c(w,_),u(w,[{key:"scrollToEnd",value:function(t){this._listRef&&this._listRef.scrollToEnd(t)}},{key:"scrollToIndex",value:function(t){this._listRef&&this._listRef.scrollToIndex(t)}},{key:"scrollToItem",value:function(t){this._listRef&&this._listRef.scrollToItem(t)}},{key:"scrollToOffset",value:function(t){this._listRef&&this._listRef.scrollToOffset(t)}},{key:"recordInteraction",value:function(){this._listRef&&this._listRef.recordInteraction()}},{key:"flashScrollIndicators",value:function(){this._listRef&&this._listRef.flashScrollIndicators()}},{key:"getScrollResponder",value:function(){if(this._listRef)return this._listRef.getScrollResponder()}},{key:"getScrollableNode",value:function(){if(this._listRef)return this._listRef.getScrollableNode()}},{key:"setNativeProps",value:function(t){this._listRef&&this._listRef.setNativeProps(t)}}]),u(w,[{key:"componentDidUpdate",value:function(t){b(t.numColumns===this.props.numColumns,"Changing numColumns on the fly is not supported. Change the key prop on FlatList when changing the number of columns to force a fresh render of the component."),b(t.onViewableItemsChanged===this.props.onViewableItemsChanged,'Changing onViewableItemsChanged on the fly is not supported'),b(!p(t.viewabilityConfig,this.props.viewabilityConfig),'Changing viewabilityConfig on the fly is not supported'),b(t.viewabilityConfigCallbackPairs===this.props.viewabilityConfigCallbackPairs,'Changing viewabilityConfigCallbackPairs on the fly is not supported'),this._checkProps(this.props)}},{key:"_checkProps",value:function(t){var n=t.getItem,o=t.getItemCount,s=t.horizontal,l=t.numColumns,u=t.columnWrapperStyle,c=t.onViewableItemsChanged,f=t.viewabilityConfigCallbackPairs;b(!n&&!o,'FlatList does not support custom data formats.'),l>1?b(!s,'numColumns does not support horizontal.'):b(!u,'columnWrapperStyle not supported for single column lists'),b(!(c&&f),"FlatList does not support setting both onViewableItemsChanged and viewabilityConfigCallbackPairs.")}},{key:"_pushMultiColumnViewable",value:function(t,n){var o=this.props,s=o.numColumns,l=o.keyExtractor;n.item.forEach(function(o,u){b(null!=n.index,'Missing index!');var c=n.index*s+u;t.push(f({},n,{item:o,key:l(o,c),index:c}))})}},{key:"_createOnViewableItemsChanged",value:function(t){var n=this;return function(o){var s=n.props.numColumns;if(t)if(s>1){var l=[],u=[];o.viewableItems.forEach(function(t){return n._pushMultiColumnViewable(u,t)}),o.changed.forEach(function(t){return n._pushMultiColumnViewable(l,t)}),t({viewableItems:u,changed:l})}else t(o)}}},{key:"render",value:function(){return h.createElement(v,t({},this.props,{getItem:this._getItem,getItemCount:this._getItemCount,keyExtractor:this._keyExtractor,ref:this._captureRef,viewabilityConfigCallbackPairs:this._virtualizedListPairs},this._renderer()))}}]),w})(h.PureComponent);w.defaultProps=_;var I=y.create({row:{flexDirection:'row'}});m.exports=w},255,[14,52,25,38,41,26,44,51,55,173,57,89,256,61,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),o=r(d[2]),n=r(d[3]),l=r(d[4]),h=r(d[5]),c=r(d[6]),p=r(d[7]),u=r(d[8]),f=r(d[9]),_=r(d[10]),v=r(d[11]),y=r(d[12]),C=r(d[13]),L=r(d[14]),S=r(d[15]),b=r(d[16]),M=r(d[17]),I=r(d[18]),x=(r(d[19]),r(d[20])),R=r(d[21]),k=(r(d[22]),r(d[23]).computeWindowedRenderLimits),E=!1,w='',T=(function(v){function T(t,c){var p;n(this,T),(p=l(this,h(T).call(this,t,c)))._getScrollMetrics=function(){return p._scrollMetrics},p._getOutermostParentListRef=function(){return p._isNestedWithSameOrientation()?p.context.virtualizedList.getOutermostParentListRef():u(u(p))},p._getNestedChildState=function(t){var s=p._nestedChildLists.get(t);return s&&s.state},p._registerAsNestedChild=function(t){var s=p._cellKeysToChildListKeys.get(t.cellKey)||new Set;s.add(t.key),p._cellKeysToChildListKeys.set(t.cellKey,s);var o=p._nestedChildLists.get(t.key);o&&null!==o.ref&&console.error("A VirtualizedList contains a cell which itself contains more than one VirtualizedList of the same orientation as the parent list. You must pass a unique listKey prop to each sibling list."),p._nestedChildLists.set(t.key,{ref:t.ref,state:null}),p._hasInteracted&&t.ref.recordInteraction()},p._unregisterAsNestedChild=function(t){p._nestedChildLists.set(t.key,{ref:null,state:t.state})},p._onUpdateSeparators=function(t,s){t.forEach(function(t){var o=null!=t&&p._cellRefs[t];o&&o.updateSeparatorProps(s)})},p._averageCellLength=0,p._cellKeysToChildListKeys=new Map,p._cellRefs={},p._frames={},p._footerLength=0,p._hasDataChangedSinceEndReached=!0,p._hasDoneInitialScroll=!1,p._hasInteracted=!1,p._hasMore=!1,p._hasWarned={},p._headerLength=0,p._hiPriInProgress=!1,p._highestMeasuredFrameIndex=0,p._indicesToKeys=new Map,p._nestedChildLists=new Map,p._offsetFromParentVirtualizedList=0,p._prevParentOffset=0,p._scrollMetrics={contentLength:0,dOffset:0,dt:10,offset:0,timestamp:0,velocity:0,visibleLength:0},p._scrollRef=null,p._sentEndForContentLength=0,p._totalCellLength=0,p._totalCellsMeasured=0,p._viewabilityTuples=[],p._captureScrollRef=function(t){p._scrollRef=t},p._defaultRenderScrollComponent=function(t){var o=t.onRefresh;return p._isNestedWithSameOrientation()?y.createElement(M,t):o?(R('boolean'==typeof t.refreshing,'`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `'+JSON.stringify(t.refreshing)+'`'),y.createElement(S,s({},t,{refreshControl:null==t.refreshControl?y.createElement(L,{refreshing:t.refreshing,onRefresh:o,progressViewOffset:t.progressViewOffset}):t.refreshControl}))):y.createElement(S,t)},p._onCellUnmount=function(t){var s=p._frames[t];s&&(p._frames[t]=o({},s,{inLayout:!1}))},p._onLayout=function(t){p._isNestedWithSameOrientation()?p.measureLayoutRelativeToContainingList():p._scrollMetrics.visibleLength=p._selectLength(t.nativeEvent.layout),p.props.onLayout&&p.props.onLayout(t),p._scheduleCellsToRenderUpdate(),p._maybeCallOnEndReached()},p._onLayoutEmpty=function(t){p.props.onLayout&&p.props.onLayout(t)},p._onLayoutFooter=function(t){p._footerLength=p._selectLength(t.nativeEvent.layout)},p._onLayoutHeader=function(t){p._headerLength=p._selectLength(t.nativeEvent.layout)},p._onContentSizeChange=function(t,s){t>0&&s>0&&null!=p.props.initialScrollIndex&&p.props.initialScrollIndex>0&&!p._hasDoneInitialScroll&&(p.scrollToIndex({animated:!1,index:p.props.initialScrollIndex}),p._hasDoneInitialScroll=!0),p.props.onContentSizeChange&&p.props.onContentSizeChange(t,s),p._scrollMetrics.contentLength=p._selectLength({height:s,width:t}),p._scheduleCellsToRenderUpdate(),p._maybeCallOnEndReached()},p._convertParentScrollMetrics=function(t){var s=t.offset-p._offsetFromParentVirtualizedList,o=t.visibleLength,n=s-p._scrollMetrics.offset;return{visibleLength:o,contentLength:p._scrollMetrics.contentLength,offset:s,dOffset:n}},p._onScroll=function(t){p._nestedChildLists.forEach(function(s){s.ref&&s.ref._onScroll(t)}),p.props.onScroll&&p.props.onScroll(t);var s=t.timeStamp,o=p._selectLength(t.nativeEvent.layoutMeasurement),n=p._selectLength(t.nativeEvent.contentSize),l=p._selectOffset(t.nativeEvent.contentOffset),h=l-p._scrollMetrics.offset;if(p._isNestedWithSameOrientation()){if(0===p._scrollMetrics.contentLength)return;var c=p._convertParentScrollMetrics({visibleLength:o,offset:l});o=c.visibleLength,n=c.contentLength,l=c.offset,h=c.dOffset}var u=p._scrollMetrics.timestamp?Math.max(1,s-p._scrollMetrics.timestamp):1,f=h/u;u>500&&p._scrollMetrics.dt>500&&n>5*o&&!p._hasWarned.perf&&(x("VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc.",{dt:u,prevDt:p._scrollMetrics.dt,contentLength:n}),p._hasWarned.perf=!0),p._scrollMetrics={contentLength:n,dt:u,dOffset:h,offset:l,timestamp:s,velocity:f,visibleLength:o},p._updateViewableItems(p.props.data),p.props&&(p._maybeCallOnEndReached(),0!==f&&p._fillRateHelper.activate(),p._computeBlankness(),p._scheduleCellsToRenderUpdate())},p._onScrollBeginDrag=function(t){p._nestedChildLists.forEach(function(s){s.ref&&s.ref._onScrollBeginDrag(t)}),p._viewabilityTuples.forEach(function(t){t.viewabilityHelper.recordInteraction()}),p._hasInteracted=!0,p.props.onScrollBeginDrag&&p.props.onScrollBeginDrag(t)},p._onScrollEndDrag=function(t){var s=t.nativeEvent.velocity;s&&(p._scrollMetrics.velocity=p._selectOffset(s)),p._computeBlankness(),p.props.onScrollEndDrag&&p.props.onScrollEndDrag(t)},p._onMomentumScrollEnd=function(t){p._scrollMetrics.velocity=0,p._computeBlankness(),p.props.onMomentumScrollEnd&&p.props.onMomentumScrollEnd(t)},p._updateCellsToRender=function(){var t=p.props,s=t.data,o=t.getItemCount,n=t.onEndReachedThreshold,l=p._isVirtualizationDisabled();p._updateViewableItems(s),s&&p.setState(function(t){var h;if(l){var c=p._scrollMetrics,u=c.contentLength,f=c.offset,_=c.visibleLength,v=u-_-f0)for(var y=h.first,C=h.last,L=y;L<=C;L++){var S=p._indicesToKeys.get(L),b=S&&p._cellKeysToChildListKeys.get(S);if(b){var M=!1,I=b,x=Array.isArray(I),R=0;for(I=x?I:I["function"==typeof Symbol&&"function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var E;if(x){if(R>=I.length)break;E=I[R++]}else{if((R=I.next()).done)break;E=R.value}var w=E,T=p._nestedChildLists.get(w);if(T&&T.ref&&T.ref.hasMore()){M=!0;break}}if(M){h.last=L;break}}}return h})},p._createViewToken=function(t,s){var o=p.props,n=o.data,l=o.getItem,h=o.keyExtractor,c=l(n,t);return{index:t,item:c,key:h(c,t),isViewable:s}},p._getFrameMetricsApprox=function(t){var s=p._getFrameMetrics(t);if(s&&s.index===t)return s;var o=p.props.getItemLayout;return R(!o,'Should not have to estimate frames when a measurement metrics function is provided'),{length:p._averageCellLength,offset:p._averageCellLength*t}},p._getFrameMetrics=function(t){var s=p.props,o=s.data,n=s.getItem,l=s.getItemCount,h=s.getItemLayout,c=s.keyExtractor;R(l(o)>t,'Tried to get frame for out of range index '+t);var u=n(o,t),f=u&&p._frames[c(u,t)];return f&&f.index===t||h&&(f=h(o,t)),f},R(!t.onScroll||!t.onScroll.__isNative,"Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent to support native onScroll events with useNativeDriver"),R(t.windowSize>0,'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.'),p._fillRateHelper=new _(p._getFrameMetrics),p._updateCellsToRenderBatcher=new f(p._updateCellsToRender,p.props.updateCellsBatchingPeriod),p.props.viewabilityConfigCallbackPairs?p._viewabilityTuples=p.props.viewabilityConfigCallbackPairs.map(function(t){return{viewabilityHelper:new I(t.viewabilityConfig),onViewableItemsChanged:t.onViewableItemsChanged}}):p.props.onViewableItemsChanged&&p._viewabilityTuples.push({viewabilityHelper:new I(p.props.viewabilityConfig),onViewableItemsChanged:p.props.onViewableItemsChanged});var v={first:p.props.initialScrollIndex||0,last:Math.min(p.props.getItemCount(p.props.data),(p.props.initialScrollIndex||0)+p.props.initialNumToRender)-1};if(p._isNestedWithSameOrientation()){var C=p.context.virtualizedList.getNestedChildState(p.props.listKey||p._getCellKey());C&&(v=C,p.state=C,p._frames=C.frames)}return p.state=v,p}return p(T,v),c(T,[{key:"scrollToEnd",value:function(t){var s=!t||t.animated,o=this.props.getItemCount(this.props.data)-1,n=this._getFrameMetricsApprox(o),l=Math.max(0,n.offset+n.length+this._footerLength-this._scrollMetrics.visibleLength);this._scrollRef.scrollTo(this.props.horizontal?{x:l,animated:s}:{y:l,animated:s})}},{key:"scrollToIndex",value:function(t){var s=this.props,o=s.data,n=s.horizontal,l=s.getItemCount,h=s.getItemLayout,c=s.onScrollToIndexFailed,p=t.animated,u=t.index,f=t.viewOffset,_=t.viewPosition;if(R(u>=0&&uthis._highestMeasuredFrameIndex)return R(!!c,"scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, otherwise there is no way to know the location of offscreen indices or handle failures."),void c({averageItemLength:this._averageCellLength,highestMeasuredFrameIndex:this._highestMeasuredFrameIndex,index:u});var v=this._getFrameMetricsApprox(u),y=Math.max(0,v.offset-(_||0)*(this._scrollMetrics.visibleLength-v.length))-(f||0);this._scrollRef.scrollTo(n?{x:y,animated:p}:{y:y,animated:p})}},{key:"scrollToItem",value:function(t){for(var s=t.item,n=this.props,l=n.data,h=n.getItem,c=(0,n.getItemCount)(l),p=0;p0){E=!1,w='';var R=f?'width':'height',k=this.props.initialScrollIndex?-1:this.props.initialNumToRender-1,T=this.state,z=T.first,F=T.last;this._pushCells(C,S,L,0,k,v);var K=Math.max(k+1,z);if(!_&&z>k+1){var N=!1;if(L.size>0)for(var V=c?1:0,A=K-1;A>k;A--)if(L.has(A+V)){var D=this._getFrameMetricsApprox(k),B=this._getFrameMetricsApprox(A),H=B.offset-D.offset-(this.props.initialScrollIndex?0:D.length);C.push(y.createElement(M,{key:"$sticky_lead",style:t({},R,H)})),this._pushCells(C,S,L,A,A,v);var U=this._getFrameMetricsApprox(z).offset-(B.offset+B.length);C.push(y.createElement(M,{key:"$sticky_trail",style:t({},R,U)})),N=!0;break}if(!N){var W=this._getFrameMetricsApprox(k),$=this._getFrameMetricsApprox(z).offset-(W.offset+W.length);C.push(y.createElement(M,{key:"$lead_spacer",style:t({},R,$)}))}}if(this._pushCells(C,S,L,K,F,v),!this._hasWarned.keys&&E&&(console.warn("VirtualizedList: missing keys for items, make sure to specify a key or id property on each item or provide a custom keyExtractor.",w),this._hasWarned.keys=!0),!_&&F=p.length)break;_=p[f++]}else{if((f=p.next()).done)break;_=f.value}var v=_,y=this._nestedChildLists.get(v);y&&y.ref&&y.ref.measureLayoutRelativeToContainingList()}}this._computeBlankness(),this._updateViewableItems(this.props.data)}},{key:"measureLayoutRelativeToContainingList",value:function(){var t=this;try{if(!this._scrollRef)return;this._scrollRef.measureLayout(this.context.virtualizedList.getOutermostParentListRef().getScrollRef().getNativeScrollRef(),function(s,o,n,l){t._offsetFromParentVirtualizedList=t._selectOffset({x:s,y:o}),t._scrollMetrics.contentLength=t._selectLength({width:n,height:l});var h=t._convertParentScrollMetrics(t.context.virtualizedList.getScrollMetrics());t._scrollMetrics.visibleLength=h.visibleLength,t._scrollMetrics.offset=h.offset},function(t){console.warn("VirtualizedList: Encountered an error while measuring a list's offset from its containing VirtualizedList.")})}catch(t){console.warn('measureLayoutRelativeToContainingList threw an error',t.stack)}}},{key:"_renderDebugOverlay",value:function(){for(var t=this._scrollMetrics.visibleLength/(this._scrollMetrics.contentLength||1),s=[],o=this.props.getItemCount(this.props.data),n=0;n0){var _=l-this._getFrameMetricsApprox(s).offset;u=u||_<0||c<-2&&_2&&v0&&void 0!==arguments[0]?arguments[0]:{abort:!1};this._taskHandle&&(this._taskHandle.cancel(),t.abort||this._callback(),this._taskHandle=null)}},{key:"schedule",value:function(){var t=this;if(!this._taskHandle){var n=setTimeout(function(){t._taskHandle=l.runAfterInteractions(function(){t._taskHandle=null,t._callback()})},this._delay);this._taskHandle={cancel:function(){return clearTimeout(n)}}}}}]),s})();m.exports=s},257,[25,26,232]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),l=r(d[3]),_=r(d[4]),h=function t(){s(this,t),this.any_blank_count=0,this.any_blank_ms=0,this.any_blank_speed_sum=0,this.mostly_blank_count=0,this.mostly_blank_ms=0,this.pixels_blank=0,this.pixels_sampled=0,this.pixels_scrolled=0,this.total_time_spent=0,this.sample_count=0},o=[],u=10,f=null,c=(function(){function c(t){s(this,c),this._anyBlankStartTime=null,this._enabled=!1,this._info=new h,this._mostlyBlankStartTime=null,this._samplesStartTime=null,this._getFrameMetrics=t,this._enabled=(f||0)>Math.random(),this._resetData()}return n(c,null,[{key:"addListener",value:function(t){return _(null!==f,'Call `FillRateHelper.setSampleRate` before `addListener`.'),o.push(t),{remove:function(){o=o.filter(function(n){return t!==n})}}}},{key:"setSampleRate",value:function(t){f=t}},{key:"setMinSampleCount",value:function(t){u=t}}]),n(c,[{key:"activate",value:function(){this._enabled&&null==this._samplesStartTime&&(this._samplesStartTime=l())}},{key:"deactivateAndFlush",value:function(){if(this._enabled){var n=this._samplesStartTime;if(null!=n)if(this._info.sample_count0&&(k=Math.min(u,Math.max(0,p.offset-h)));for(var b=0,v=n.last,S=this._getFrameMetrics(v);v>=n.first&&(!S||!S.inLayout);)S=this._getFrameMetrics(v),v--;if(S&&v0?(this._anyBlankStartTime=c,this._info.any_blank_speed_sum+=f,this._info.any_blank_count++,this._info.pixels_blank+=T,B>.5&&(this._mostlyBlankStartTime=c,this._info.mostly_blank_count++)):(f<.01||Math.abs(_)<1)&&this.deactivateAndFlush(),B}},{key:"enabled",value:function(){return this._enabled}},{key:"_resetData",value:function(){this._anyBlankStartTime=null,this._info=new h,this._mostlyBlankStartTime=null,this._samplesStartTime=null}}]),c})();m.exports=c},258,[51,26,25,113,6]); -__d(function(g,r,i,a,m,e,d){'use strict';var s,t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),f=t(r(d[3])),h=t(r(d[4])),p=t(r(d[5])),l=t(r(d[6])),u=t(r(d[7])),c=(t(r(d[8])),t(r(d[9]))),v=(r(d[10]),r(d[11]));r(d[12]);s={SIZE:{}};var R=(function(s){function t(){var s,n;(0,f.default)(this,t);for(var o=arguments.length,h=new Array(o),u=0;u0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.warn('`scrollWithoutAnimationTo` is deprecated. Use `scrollTo` instead'),this.scrollTo({x:n,y:t,animated:!1})}},{key:"flashScrollIndicators",value:function(){this._scrollResponder.scrollResponderFlashScrollIndicators()}},{key:"_getKeyForIndex",value:function(t,n){var o=n[t];return o&&o.key}},{key:"_updateAnimatedNodeAttachment",value:function(){this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach(),this.props.stickyHeaderIndices&&this.props.stickyHeaderIndices.length>0&&(this._scrollAnimatedValueAttachment=R.attachNativeEvent(this._scrollViewRef,'onScroll',[{nativeEvent:{contentOffset:{y:this._scrollAnimatedValue}}}]))}},{key:"_setStickyHeaderRef",value:function(t,n){n?this._stickyHeaderRefs.set(t,n):this._stickyHeaderRefs.delete(t)}},{key:"_onStickyHeaderLayout",value:function(t,n,o){var l=this.props.stickyHeaderIndices;if(l){var s=_.Children.toArray(this.props.children);if(o===this._getKeyForIndex(t,s)){var c=n.nativeEvent.layout.y;this._headerLayoutYs.set(o,c);var p=l[l.indexOf(t)-1];if(null!=p){var h=this._stickyHeaderRefs.get(this._getKeyForIndex(p,s));h&&h.setNextHeaderY&&h.setNextHeaderY(c)}}}}},{key:"render",value:function(){var l,s,c=this;s=n,V(void 0!==(l=t),'ScrollViewClass must not be undefined'),V(void 0!==s,'ScrollContentContainerViewClass must not be undefined');var p=[!0===this.props.horizontal&&b.contentContainerHorizontal,this.props.contentContainerStyle],h={};this.props.onContentSizeChange&&(h={onLayout:this._handleContentOnLayout});var u=this.props.stickyHeaderIndices,R=this.props.children;if(null!=u&&u.length>0){var v=_.Children.toArray(this.props.children);R=v.map(function(t,n){var o=t?u.indexOf(n):-1;if(o>-1){var l=t.key,s=u[o+1],p=c.props.StickyHeaderComponent||H;return _.createElement(p,{key:l,ref:function(t){return c._setStickyHeaderRef(l,t)},nextHeaderLayoutY:c._headerLayoutYs.get(c._getKeyForIndex(s,v)),onLayout:function(t){return c._onStickyHeaderLayout(n,t,l)},scrollAnimatedValue:c._scrollAnimatedValue,inverted:c.props.invertStickyHeaders,scrollViewHeight:c.state.layoutHeight},t)}return t})}R=_.createElement(E.Provider,{value:!0===this.props.horizontal?x:M},R);var S=Array.isArray(u)&&u.length>0,w=_.createElement(s,o({},h,{ref:this._setInnerViewRef,style:p,removeClippedSubviews:this.props.removeClippedSubviews,collapsable:!1}),R),C=void 0!==this.props.alwaysBounceHorizontal?this.props.alwaysBounceHorizontal:this.props.horizontal,A=void 0!==this.props.alwaysBounceVertical?this.props.alwaysBounceVertical:!this.props.horizontal,I=!!this.props.DEPRECATED_sendUpdatedChildFrames,z=!0===this.props.horizontal?b.baseHorizontal:b.baseVertical,L=f({},this.props,{alwaysBounceHorizontal:C,alwaysBounceVertical:A,style:[z,this.props.style],onContentSizeChange:null,onLayout:this._handleLayout,onMomentumScrollBegin:this._scrollResponder.scrollResponderHandleMomentumScrollBegin,onMomentumScrollEnd:this._scrollResponder.scrollResponderHandleMomentumScrollEnd,onResponderGrant:this._scrollResponder.scrollResponderHandleResponderGrant,onResponderReject:this._scrollResponder.scrollResponderHandleResponderReject,onResponderRelease:this._scrollResponder.scrollResponderHandleResponderRelease,onResponderTerminate:this._scrollResponder.scrollResponderHandleTerminate,onResponderTerminationRequest:this._scrollResponder.scrollResponderHandleTerminationRequest,onScrollBeginDrag:this._scrollResponder.scrollResponderHandleScrollBeginDrag,onScrollEndDrag:this._scrollResponder.scrollResponderHandleScrollEndDrag,onScrollShouldSetResponder:this._scrollResponder.scrollResponderHandleScrollShouldSetResponder,onStartShouldSetResponder:this._scrollResponder.scrollResponderHandleStartShouldSetResponder,onStartShouldSetResponderCapture:this._scrollResponder.scrollResponderHandleStartShouldSetResponderCapture,onTouchEnd:this._scrollResponder.scrollResponderHandleTouchEnd,onTouchMove:this._scrollResponder.scrollResponderHandleTouchMove,onTouchStart:this._scrollResponder.scrollResponderHandleTouchStart,onTouchCancel:this._scrollResponder.scrollResponderHandleTouchCancel,onScroll:this._handleScroll,scrollBarThumbImage:T(this.props.scrollBarThumbImage),scrollEventThrottle:S?1:this.props.scrollEventThrottle,sendMomentumEvents:!(!this.props.onMomentumScrollBegin&&!this.props.onMomentumScrollEnd),DEPRECATED_sendUpdatedChildFrames:I,snapToStart:!1!==this.props.snapToStart,snapToEnd:!1!==this.props.snapToEnd,pagingEnabled:!0===this.props.pagingEnabled&&null==this.props.snapToInterval&&null==this.props.snapToOffsets}),N=this.props.decelerationRate;null!=N&&(L.decelerationRate=k(N));var B=this.props.refreshControl;return B?_.createElement(l,o({},L,{ref:this._setScrollViewRef}),y.isTV?null:B,w):_.createElement(l,o({},L,{ref:this._setScrollViewRef}),w)}}]),C})(_.Component);I.Context=E;var b=w.create({baseVertical:{flexGrow:1,flexShrink:1,flexDirection:'column',overflow:'scroll'},baseHorizontal:{flexGrow:1,flexShrink:1,flexDirection:'row',overflow:'scroll'},contentContainerHorizontal:{flexDirection:'row'}});m.exports=I},262,[14,25,26,38,41,44,40,51,234,55,57,91,263,270,61,89,269,88,4,271,191,186,272]); -__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),s=r(d[1]),n=r(d[2]),l=r(d[3]),t=r(d[4]),c=r(d[5]),p=r(d[6]),h=r(d[7]),u=r(d[8]),S=r(d[9]),b=r(d[10]).ScrollViewManager,R={Mixin:{_subscriptionKeyboardWillShow:null,_subscriptionKeyboardWillHide:null,_subscriptionKeyboardDidShow:null,_subscriptionKeyboardDidHide:null,scrollResponderMixinGetInitialState:function(){return{isTouching:!1,lastMomentumScrollBeginTime:0,lastMomentumScrollEndTime:0,observedScrollSinceBecomingResponder:!1,becameResponderWhileAnimating:!1}},scrollResponderHandleScrollShouldSetResponder:function(){return!0!==this.props.disableScrollViewPanResponder&&this.state.isTouching},scrollResponderHandleStartShouldSetResponder:function(o){if(!0===this.props.disableScrollViewPanResponder)return!1;var s=t.currentlyFocusedField();return'handled'===this.props.keyboardShouldPersistTaps&&null!=s&&o.target!==s},scrollResponderHandleStartShouldSetResponderCapture:function(o){if(this.scrollResponderIsAnimating())return!0;if(!0===this.props.disableScrollViewPanResponder)return!1;var s=t.currentlyFocusedField(),n=this.props.keyboardShouldPersistTaps;return!(n&&'never'!==n||null==s||!o.target||t.isTextInput(o.target))},scrollResponderHandleResponderReject:function(){},scrollResponderHandleTerminationRequest:function(){return!this.state.observedScrollSinceBecomingResponder},scrollResponderHandleTouchEnd:function(o){var s=o.nativeEvent;this.state.isTouching=0!==s.touches.length,this.props.onTouchEnd&&this.props.onTouchEnd(o)},scrollResponderHandleTouchCancel:function(o){this.state.isTouching=!1,this.props.onTouchCancel&&this.props.onTouchCancel(o)},scrollResponderHandleResponderRelease:function(o){this.props.onResponderRelease&&this.props.onResponderRelease(o);var s=t.currentlyFocusedField();!0===this.props.keyboardShouldPersistTaps||'always'===this.props.keyboardShouldPersistTaps||null==s||o.target===s||this.state.observedScrollSinceBecomingResponder||this.state.becameResponderWhileAnimating||(this.props.onScrollResponderKeyboardDismissed&&this.props.onScrollResponderKeyboardDismissed(o),t.blurTextInput(s))},scrollResponderHandleScroll:function(o){this.state.observedScrollSinceBecomingResponder=!0,this.props.onScroll&&this.props.onScroll(o)},scrollResponderHandleResponderGrant:function(o){this.state.observedScrollSinceBecomingResponder=!1,this.props.onResponderGrant&&this.props.onResponderGrant(o),this.state.becameResponderWhileAnimating=this.scrollResponderIsAnimating()},scrollResponderHandleScrollBeginDrag:function(o){s.beginScroll(),this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(o)},scrollResponderHandleScrollEndDrag:function(o){var n=o.nativeEvent.velocity;this.scrollResponderIsAnimating()||n&&(0!==n.x||0!==n.y)||s.endScroll(),this.props.onScrollEndDrag&&this.props.onScrollEndDrag(o)},scrollResponderHandleMomentumScrollBegin:function(o){this.state.lastMomentumScrollBeginTime=u(),this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(o)},scrollResponderHandleMomentumScrollEnd:function(o){s.endScroll(),this.state.lastMomentumScrollEndTime=u(),this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(o)},scrollResponderHandleTouchStart:function(o){this.state.isTouching=!0,this.props.onTouchStart&&this.props.onTouchStart(o)},scrollResponderHandleTouchMove:function(o){this.props.onTouchMove&&this.props.onTouchMove(o)},scrollResponderIsAnimating:function(){return u()-this.state.lastMomentumScrollEndTime<16||this.state.lastMomentumScrollEndTime0){v.push(H),L.push(0),v.push(H+1),L.push(1);var Y=(y||0)-l-o;Y>H&&(v.push(Y,Y+1),L.push(Y-H,Y-H))}}}else{v.push(h),L.push(0);var x=(y||0)-l;x>=h?(v.push(x,x+1),L.push(x-h,x-h)):(v.push(h+1),L.push(1))}var C=this.props.scrollAnimatedValue.interpolate({inputRange:v,outputRange:L}),E=p.Children.only(this.props.children);return p.createElement(c,{collapsable:!1,onLayout:this._onLayout,style:[E.props.style,f.header,{transform:[{translateY:C}]}]},p.cloneElement(E,{style:f.fill,onLayout:void 0}))}}]),h})(p.Component),f=h.create({header:{zIndex:10},fill:{flex:1}});m.exports=v},270,[25,26,38,41,44,234,57,61,89]); -__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]);m.exports=function(t){return'normal'===t?.998:'fast'===t?.99:t}},271,[55]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(Object.create(null),{margin:!0,marginHorizontal:!0,marginVertical:!0,marginBottom:!0,marginTop:!0,marginLeft:!0,marginRight:!0,flex:!0,flexGrow:!0,flexShrink:!0,flexBasis:!0,alignSelf:!0,height:!0,minHeight:!0,maxHeight:!0,width:!0,minWidth:!0,maxWidth:!0,position:!0,left:!0,right:!0,bottom:!0,top:!0,transform:!0});m.exports=function(n){var o={},f={};return n&&Object.keys(n).forEach(function(h){var l=n[h];t[h]?f[h]=l:o[h]=l}),{outer:f,inner:o}}},272,[14]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),l=r(d[4]),h=(function(){function h(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{viewAreaCoveragePercentThreshold:0};s(this,h),this._hasInteracted=!1,this._timers=new Set,this._viewableIndices=[],this._viewableItems=new Map,this._config=t}return o(h,[{key:"dispose",value:function(){this._timers.forEach(clearTimeout)}},{key:"computeViewableItems",value:function(t,n,s,o,h){var c=this._config,f=c.itemVisiblePercentThreshold,v=c.viewAreaCoveragePercentThreshold,b=null!=v,_=b?v:f;l(null!=_&&null!=f!=(null!=v),'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');var w=[];if(0===t)return w;var y=-1,I=h||{first:0,last:t-1},p=I.first,k=I.last;if(k>=t)return console.warn('Invalid render range computing viewability '+JSON.stringify({renderRange:h,itemCount:t})),[];for(var S=p;S<=k;S++){var T=o(S);if(T){var A=T.offset-n,V=A+T.length;if(A0)y=S,u(b,_,A,V,s,T.length)&&w.push(S);else if(y>=0)break}}return w}},{key:"onUpdate",value:function(t,n,s,o,l,h,u){var c=this;if((!this._config.waitForInteraction||this._hasInteracted)&&0!==t&&o(0)){var f=[];if(t&&(f=this.computeViewableItems(t,n,s,o,u)),this._viewableIndices.length!==f.length||!this._viewableIndices.every(function(t,n){return t===f[n]}))if(this._viewableIndices=f,this._config.minimumViewTime){var v=setTimeout(function(){c._timers.delete(v),c._onUpdateSync(f,h,l)},this._config.minimumViewTime);this._timers.add(v)}else this._onUpdateSync(f,h,l)}}},{key:"resetViewableIndices",value:function(){this._viewableIndices=[]}},{key:"recordInteraction",value:function(){this._hasInteracted=!0}},{key:"_onUpdateSync",value:function(s,o,l){var h=this;s=s.filter(function(t){return h._viewableIndices.includes(t)});var u=this._viewableItems,c=new Map(s.map(function(t){var n=l(t,!0);return[n.key,n]})),f=[],v=c,b=Array.isArray(v),_=0;for(v=b?v:v["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var w;if(b){if(_>=v.length)break;w=v[_++]}else{if((_=v.next()).done)break;w=_.value}var y=n(w,2),I=y[0],p=y[1];u.has(I)||f.push(p)}var k=u,S=Array.isArray(k),T=0;for(k=S?k:k["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var A;if(S){if(T>=k.length)break;A=k[T++]}else{if((T=k.next()).done)break;A=T.value}var V=n(A,2),x=V[0],M=V[1];c.has(x)||f.push(t({},M,{isViewable:!1}))}f.length>0&&(this._viewableItems=c,o({viewableItems:Array.from(c.values()),changed:f,viewabilityConfig:this._config}))}}]),h})();function u(t,n,s,o,l,h){if(f(s,o,l))return!0;var u=c(s,o,l);return 100*(t?u/l:u/h)>=n}function c(t,n,s){var o=Math.min(n,s)-Math.max(t,0);return Math.max(0,o)}function f(t,n,s){return t>=0&&n<=s&&n>t}m.exports=h},273,[51,15,25,26,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]);function s(t,s,f){for(var l=[],o=0,u=0;u=t[c]&&(l[c]=u,o++,c===t.length-1))return n(o===t.length,'bad offsets input, should be in increasing order: %s',JSON.stringify(t)),l;return l}function f(t,n){return n.last-n.first+1-Math.max(0,1+Math.min(n.last,t.last)-Math.max(n.first,t.first))}var l={computeWindowedRenderLimits:function(n,l,o,u){var h=n.data,v=n.getItemCount,c=n.maxToRenderPerBatch,x=n.windowSize,M=v(h);if(0===M)return l;var w=u.offset,b=u.velocity,p=u.visibleLength,C=Math.max(0,w),O=C+p,y=(x-1)*p,L=b>1?'after':b<-1?'before':'none',R=Math.max(0,C-.5*y),S=Math.max(0,O+.5*y);if(o(M-1).offset=_);){var E=z>=c,F=N<=l.first||N>l.last,P=N>J&&(!E||!F),W=T>=l.last||T=N&&N>=0&&T=J&&T<=_&&N<=k.first&&T>=k.last))throw new Error('Bad window calculation '+JSON.stringify({first:N,last:T,itemCount:M,overscanFirst:J,overscanLast:_,visible:k}));return{first:N,last:T}},elementsThatOverlapOffsets:s,newRangeCount:f};m.exports=l},274,[15,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=s(t)},275,[276,253]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),c=r(d[4]),u=(r(d[5]),r(d[6])),h=r(d[7]),l=r(d[8]),f=r(d[9]),p=s.ImageViewManager,w=l('RCTImageView');var v=function(n,o){var s,u,l=f(n.source)||{uri:void 0,width:void 0,height:void 0};if(Array.isArray(l))u=h([y.base,n.style])||{},s=l;else{var p=l.width,v=l.height,z=l.uri;u=h([{width:p,height:v},y.base,n.style])||{},s=[l],''===z&&console.warn('source.uri should not be an empty string')}var I=n.resizeMode||u.resizeMode||'cover',b=u.tintColor;if(null!=n.src&&console.warn('The component requires a `source` property rather than `src`.'),null!=n.children)throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');return c.createElement(w,t({},n,{ref:o,style:u,resizeMode:I,tintColor:b,source:s}))};(v=c.forwardRef(v)).displayName='Image',v.getSize=function(t,n,o){p.getSize(t,n,o||function(){console.warn('Failed to get size for image: '+t)})},v.getSizeWithHeaders=function(t,n,o,s){return p.getSizeWithHeaders({uri:t,headers:n}).then(function(t){o(t.width,t.height)}).catch(s||function(){console.warn('Failed to get size for image: '+t)})},v.prefetch=function(t){return p.prefetchImage(t)},v.queryCache=function(t){return n.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,n.awrap(p.queryCache(t));case 2:return o.abrupt("return",o.sent);case 3:case"end":return o.stop()}})},v.resolveAssetSource=f,v.propTypes=o;var y=u.create({base:{overflow:'hidden'}});m.exports=v},276,[14,277,280,13,57,91,61,88,191,186]); -__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])},277,[278]); -__d(function(g,r,i,a,m,e,d){var t=(function(){return this||"object"==typeof self&&self})()||Function("return this")(),n=t.regeneratorRuntime&&Object.getOwnPropertyNames(t).indexOf("regeneratorRuntime")>=0,o=n&&t.regeneratorRuntime;if(t.regeneratorRuntime=void 0,m.exports=r(d[0]),n)t.regeneratorRuntime=o;else try{delete t.regeneratorRuntime}catch(n){t.regeneratorRuntime=void 0}},278,[279]); -__d(function(g,r,i,a,m,e,d){!(function(t){"use strict";var n,o=Object.prototype,c=o.hasOwnProperty,u="function"==typeof Symbol?Symbol:{},h=u.iterator||"@@iterator",f=u.asyncIterator||"@@asyncIterator",s=u.toStringTag||"@@toStringTag",l="object"==typeof m,p=t.regeneratorRuntime;if(p)l&&(m.exports=p);else{(p=t.regeneratorRuntime=l?m.exports:{}).wrap=O;var y="suspendedStart",v="suspendedYield",w="executing",L="completed",x={},E={};E[h]=function(){return this};var b=Object.getPrototypeOf,_=b&&b(b(q([])));_&&_!==o&&c.call(_,h)&&(E=_);var j=P.prototype=G.prototype=Object.create(E);N.prototype=j.constructor=P,P.constructor=N,P[s]=N.displayName="GeneratorFunction",p.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===N||"GeneratorFunction"===(n.displayName||n.name))},p.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,P):(t.__proto__=P,s in t||(t[s]="GeneratorFunction")),t.prototype=Object.create(j),t},p.awrap=function(t){return{__await:t}},F(S.prototype),S.prototype[f]=function(){return this},p.AsyncIterator=S,p.async=function(t,n,o,c){var u=new S(O(t,n,o,c));return p.isGeneratorFunction(n)?u:u.next().then(function(t){return t.done?t.value:u.next()})},F(j),j[s]="Generator",j[h]=function(){return this},j.toString=function(){return"[object Generator]"},p.keys=function(t){var n=[];for(var o in t)n.push(o);return n.reverse(),function o(){for(;n.length;){var c=n.pop();if(c in t)return o.value=c,o.done=!1,o}return o.done=!0,o}},p.values=q,Y.prototype={constructor:Y,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(R),!t)for(var o in this)"t"===o.charAt(0)&&c.call(this,o)&&!isNaN(+o.slice(1))&&(this[o]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var o=this;function u(c,u){return s.type="throw",s.arg=t,o.next=c,u&&(o.method="next",o.arg=n),!!u}for(var h=this.tryEntries.length-1;h>=0;--h){var f=this.tryEntries[h],s=f.completion;if("root"===f.tryLoc)return u("end");if(f.tryLoc<=this.prev){var l=c.call(f,"catchLoc"),p=c.call(f,"finallyLoc");if(l&&p){if(this.prev=0;--o){var u=this.tryEntries[o];if(u.tryLoc<=this.prev&&c.call(u,"finallyLoc")&&this.prev=0;--n){var o=this.tryEntries[n];if(o.finallyLoc===t)return this.complete(o.completion,o.afterLoc),R(o),x}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc===t){var c=o.completion;if("throw"===c.type){var u=c.arg;R(o)}return u}}throw new Error("illegal catch attempt")},delegateYield:function(t,o,c){return this.delegate={iterator:q(t),resultName:o,nextLoc:c},"next"===this.method&&(this.arg=n),x}}}function O(t,n,o,c){var u=n&&n.prototype instanceof G?n:G,h=Object.create(u.prototype),f=new Y(c||[]);return h._invoke=T(t,o,f),h}function k(t,n,o){try{return{type:"normal",arg:t.call(n,o)}}catch(t){return{type:"throw",arg:t}}}function G(){}function N(){}function P(){}function F(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function S(t){function n(o,u,h,f){var s=k(t[o],t,u);if("throw"!==s.type){var l=s.arg,p=l.value;return p&&"object"==typeof p&&c.call(p,"__await")?Promise.resolve(p.__await).then(function(t){n("next",t,h,f)},function(t){n("throw",t,h,f)}):Promise.resolve(p).then(function(t){l.value=t,h(l)},function(t){return n("throw",t,h,f)})}f(s.arg)}var o;this._invoke=function(t,c){function u(){return new Promise(function(o,u){n(t,c,o,u)})}return o=o?o.then(u,u):u()}}function T(t,n,o){var c=y;return function(u,h){if(c===w)throw new Error("Generator is already running");if(c===L){if("throw"===u)throw h;return z()}for(o.method=u,o.arg=h;;){var f=o.delegate;if(f){var s=I(f,o);if(s){if(s===x)continue;return s}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(c===y)throw c=L,o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);c=w;var l=k(t,n,o);if("normal"===l.type){if(c=o.done?L:v,l.arg===x)continue;return{value:l.arg,done:o.done}}"throw"===l.type&&(c=L,o.method="throw",o.arg=l.arg)}}}function I(t,o){var c=t.iterator[o.method];if(c===n){if(o.delegate=null,"throw"===o.method){if(t.iterator.return&&(o.method="return",o.arg=n,I(t,o),"throw"===o.method))return x;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return x}var u=k(c,t.iterator,o.arg);if("throw"===u.type)return o.method="throw",o.arg=u.arg,o.delegate=null,x;var h=u.arg;return h?h.done?(o[t.resultName]=h.value,o.next=t.nextLoc,"return"!==o.method&&(o.method="next",o.arg=n),o.delegate=null,x):h:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,x)}function A(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function R(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function Y(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function q(t){if(t){var o=t[h];if(o)return o.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var u=-1,f=function o(){for(;++u0&&this.props.stickySectionHeadersEnabled&&(l+=this._listRef._getFrameMetricsApprox(o-t.itemIndex).length);var p=n({},t,{viewOffset:l,index:o});this._listRef.scrollToIndex(p)}},{key:"getListRef",value:function(){return this._listRef}}]),p(I,[{key:"UNSAFE_componentWillReceiveProps",value:function(t){this.setState(this._computeState(t))}},{key:"_computeState",value:function(t){var o=t.ListHeaderComponent?1:0,s=[],l=t.sections?t.sections.reduce(function(n,l){return s.push(n+o),n+t.getItemCount(l.data)+2},0):0;return{childProps:n({},t,{renderItem:this._renderItem,ItemSeparatorComponent:void 0,data:t.sections,getItemCount:function(){return l},getItem:function(n,o){return x(t,n,o)},keyExtractor:this._keyExtractor,onViewableItemsChanged:t.onViewableItemsChanged?this._onViewableItemsChanged:void 0,stickyHeaderIndices:t.stickySectionHeadersEnabled?s:void 0})}}},{key:"render",value:function(){return h.createElement(S,t({},this.state.childProps,{ref:this._captureRef}))}},{key:"_subExtractor",value:function(t){for(var n=t,o=this.props,s=o.getItem,l=o.getItemCount,p=o.keyExtractor,c=o.sections,u=0;u=l(f)+1)n-=l(f)+1;else return-1===n?{section:h,key:S+':header',index:null,header:!0,trailingSection:c[u+1]}:n===l(f)?{section:h,key:S+':footer',index:null,header:!1,trailingSection:c[u+1]}:{section:h,key:S+':'+(h.keyExtractor||p)(s(f,n),n),index:n,leadingItem:s(f,n-1),leadingSection:c[u-1],trailingItem:s(f,n+1),trailingSection:c[u+1]}}}},{key:"_getSeparatorComponent",value:function(t,n){if(!(n=n||this._subExtractor(t)))return null;var o=n.section.ItemSeparatorComponent||this.props.ItemSeparatorComponent,s=this.props.SectionSeparatorComponent,l=t===this.state.childProps.getItemCount()-1,p=n.index===this.props.getItemCount(n.section.data)-1;return s&&p?s:!o||p||l?null:o}}]),I})(h.PureComponent);I.defaultProps=n({},S.defaultProps,{data:[]});var _=(function(t){function u(){var t,p;o(this,u);for(var c=arguments.length,h=new Array(c),f=0;f10?o:10,update:{duration:o>10?o:10,type:f.Types[s]||'keyboard'}}),n.setState({bottom:u}))}else n.setState({bottom:0})},n._onLayout=function(t){n._frame=t.nativeEvent.layout,n._initialFrameHeight||(n._initialFrameHeight=n._frame.height)},n.state={bottom:0},n.viewRef=y.createRef(),n}return h(p,_),s(p,[{key:"_relativeKeyboardHeight",value:function(t){var n=this._frame;if(!n||!t)return 0;var o=t.screenY-this.props.keyboardVerticalOffset;return Math.max(n.y+n.height-o,0)}},{key:"componentDidMount",value:function(){this._subscriptions=[c.addListener('keyboardWillChangeFrame',this._onKeyboardChange)]}},{key:"componentWillUnmount",value:function(){this._subscriptions.forEach(function(t){t.remove()})}},{key:"render",value:function(){var o=this.props,s=o.behavior,l=o.children,u=o.contentContainerStyle,h=o.enabled,c=(o.keyboardVerticalOffset,o.style),f=n(o,["behavior","children","contentContainerStyle","enabled","keyboardVerticalOffset","style"]),_=h?this.state.bottom:0;switch(s){case'height':var p;return null!=this._frame&&this.state.bottom>0&&(p={height:this._initialFrameHeight-_,flex:0}),y.createElement(v,t({ref:this.viewRef,style:b.compose(c,p),onLayout:this._onLayout},f),l);case'position':return y.createElement(v,t({ref:this.viewRef,style:c,onLayout:this._onLayout},f),y.createElement(v,{style:b.compose(u,{bottom:_})},l));case'padding':return y.createElement(v,t({ref:this.viewRef,style:b.compose(c,{paddingBottom:_}),onLayout:this._onLayout},f),l);default:return y.createElement(v,t({ref:this.viewRef,onLayout:this._onLayout,style:c},f),l)}}}]),p})(y.Component);_.defaultProps={enabled:!0,keyboardVerticalOffset:0},m.exports=_},304,[14,53,25,26,38,41,44,266,268,55,57,61,89]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=n(r(d[1])),l=n(r(d[2])),s=n(r(d[3])),o=n(r(d[4])),u=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),h=r(d[8]),p=r(d[9]),k=r(d[10]),v=(function(n){function v(){var n,t;(0,l.default)(this,v);for(var s=arguments.length,c=new Array(s),f=0;f=1&&(l=_.createElement(y,{style:o.style,allowFontScaling:o.allowFontScaling,maxFontSizeMultiplier:o.maxFontSizeMultiplier},l)),o.inputView&&(l=[l,o.inputView]),o.style.unshift(L.multilineInput),s=_.createElement(t,u({ref:this._setNativeRef},o,{children:l,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onContentSizeChange:this.props.onContentSizeChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,onSelectionChangeShouldSetResponder:N,text:this._getText(),dataDetectorTypes:this.props.dataDetectorTypes,onScroll:this._onScroll}))}else s=_.createElement(n,u({ref:this._setNativeRef},o,{onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChange:this._onSelectionChange,onSelectionChangeShouldSetResponder:N,text:this._getText()}));return _.createElement(I,{onLayout:o.onLayout,onPress:this._onPress,rejectResponderTermination:!0,accessible:o.accessible,accessibilityLabel:o.accessibilityLabel,accessibilityRole:o.accessibilityRole,accessibilityStates:o.accessibilityStates,accessibilityState:o.accessibilityState,nativeID:this.props.nativeID,testID:o.testID},s)},_renderIOS:function(){var s=u({},this.props);s.style=[this.props.style],s.selection&&null==s.selection.end&&(s.selection={start:s.selection.start,end:s.selection.start});var o=s.multiline?t:n;s.multiline&&s.style.unshift(L.multilineInput);var l=_.createElement(o,u({ref:this._setNativeRef},s,{onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onContentSizeChange:this.props.onContentSizeChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,onSelectionChangeShouldSetResponder:N,text:this._getText(),dataDetectorTypes:this.props.dataDetectorTypes,onScroll:this._onScroll}));return _.createElement(I,{onLayout:s.onLayout,onPress:this._onPress,rejectResponderTermination:s.rejectResponderTermination,accessible:s.accessible,accessibilityLabel:s.accessibilityLabel,accessibilityRole:s.accessibilityRole,accessibilityStates:s.accessibilityStates,accessibilityState:s.accessibilityState,nativeID:this.props.nativeID,testID:s.testID},l)},_renderAndroid:function(){var t=u({},this.props);t.style=[this.props.style],t.autoCapitalize=t.autoCapitalize||'sentences';var n=this.props.children,s=0;_.Children.forEach(n,function(){return++s}),R(!(this.props.value&&s),'Cannot specify both value and children.'),s>1&&(n=_.createElement(y,null,n)),t.selection&&null==t.selection.end&&(t.selection={start:t.selection.start,end:t.selection.start});var o=_.createElement(void 0,u({ref:this._setNativeRef},t,{mostRecentEventCount:0,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,text:this._getText(),children:n,disableFullscreenUI:this.props.disableFullscreenUI,textBreakStrategy:this.props.textBreakStrategy,onScroll:this._onScroll}));return _.createElement(I,{onLayout:t.onLayout,onPress:this._onPress,accessible:this.props.accessible,accessibilityLabel:this.props.accessibilityLabel,accessibilityRole:this.props.accessibilityRole,accessibilityStates:this.props.accessibilityStates,accessibilityState:this.props.accessibilityState,nativeID:this.props.nativeID,testID:this.props.testID},o)},_onFocus:function(t){this.props.onFocus&&this.props.onFocus(t),this.props.selectionState&&this.props.selectionState.focus()},_onPress:function(t){(this.props.editable||void 0===this.props.editable)&&this.focus()},_onChange:function(t){this._inputRef&&this._inputRef.setNativeProps&&S.setNativeProps(this._inputRef,{mostRecentEventCount:t.nativeEvent.eventCount});var n=t.nativeEvent.text;this.props.onChange&&this.props.onChange(t),this.props.onChangeText&&this.props.onChangeText(n),this._inputRef&&(this._lastNativeText=n,this.forceUpdate())},_onSelectionChange:function(t){this.props.onSelectionChange&&this.props.onSelectionChange(t),this._inputRef&&(this._lastNativeSelection=t.nativeEvent.selection,(this.props.selection||this.props.selectionState)&&this.forceUpdate())},componentDidUpdate:function(){var t={};this._lastNativeText!==this.props.value&&'string'==typeof this.props.value&&(t.text=this.props.value);var n=this.props.selection;this._lastNativeSelection&&n&&(this._lastNativeSelection.start!==n.start||this._lastNativeSelection.end!==n.end)&&(t.selection=this.props.selection),Object.keys(t).length>0&&this._inputRef&&this._inputRef.setNativeProps&&S.setNativeProps(this._inputRef,t),this.props.selectionState&&n&&this.props.selectionState.update(n.start,n.end)},_onBlur:function(t){this.blur(),this.props.onBlur&&this.props.onBlur(t),this.props.selectionState&&this.props.selectionState.blur()},_onTextInput:function(t){this.props.onTextInput&&this.props.onTextInput(t)},_onScroll:function(t){this.props.onScroll&&this.props.onScroll(t)}}),E=((function(t){function n(){return s(this,n),l(this,c(n).apply(this,arguments))}p(n,t),o(n,[{key:"clear",value:function(){}},{key:"isFocused",value:function(){}}])})(S.NativeComponent),D),L=v.create({multilineInput:{paddingTop:5}});m.exports=E},332,[25,26,38,41,44,14,333,336,288,55,57,91,61,206,211,172,289,76,290,4,191,6]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),o=r(d[1]),t=r(d[2]),l=r(d[3]),s=r(d[4]),c=r(d[5]),u=['phoneNumber','link','address','calendarEvent','none','all'];m.exports=n({},l,{autoCapitalize:o.oneOf(['none','sentences','words','characters']),autoCompleteType:o.oneOf(['cc-csc','cc-exp','cc-exp-month','cc-exp-year','cc-number','email','name','password','postal-code','street-address','tel','username','off']),autoCorrect:o.bool,spellCheck:o.bool,autoFocus:o.bool,allowFontScaling:o.bool,maxFontSizeMultiplier:o.number,editable:o.bool,keyboardType:o.oneOf(['default','email-address','numeric','phone-pad','number-pad','ascii-capable','numbers-and-punctuation','url','name-phone-pad','decimal-pad','twitter','web-search','visible-password']),keyboardAppearance:o.oneOf(['default','light','dark']),returnKeyType:o.oneOf(['done','go','next','search','send','none','previous','default','emergency-call','google','join','route','yahoo']),returnKeyLabel:o.string,maxLength:o.number,numberOfLines:o.number,disableFullscreenUI:o.bool,enablesReturnKeyAutomatically:o.bool,multiline:o.bool,textBreakStrategy:o.oneOf(['simple','highQuality','balanced']),onBlur:o.func,onFocus:o.func,onChange:o.func,onChangeText:o.func,onContentSizeChange:o.func,onTextInput:o.func,onEndEditing:o.func,onSelectionChange:o.func,onSubmitEditing:o.func,onKeyPress:o.func,onLayout:o.func,onScroll:o.func,placeholder:o.string,placeholderTextColor:t,scrollEnabled:o.bool,secureTextEntry:o.bool,selectionColor:t,selectionState:o.instanceOf(s),selection:o.shape({start:o.number.isRequired,end:o.number}),value:o.string,defaultValue:o.string,clearButtonMode:o.oneOf(['never','while-editing','unless-editing','always']),clearTextOnFocus:o.bool,selectTextOnFocus:o.bool,blurOnSubmit:o.bool,style:c.propTypes.style,underlineColorAndroid:t,inlineImageLeft:o.string,inlineImagePadding:o.number,rejectResponderTermination:o.bool,dataDetectorTypes:o.oneOfType([o.oneOf(u),o.arrayOf(o.oneOf(u))]),caretHidden:o.bool,contextMenuHidden:o.bool,inputAccessoryViewID:o.string,textContentType:o.oneOf(['none','URL','addressCity','addressCityAndState','addressState','countryName','creditCardNumber','emailAddress','familyName','fullStreetAddress','givenName','jobTitle','location','middleName','name','namePrefix','nameSuffix','nickname','organizationName','postalCode','streetAddressLine1','streetAddressLine2','sublocality','telephoneNumber','username','password','newPassword','oneTimeCode']),showSoftInputOnFocus:o.bool})},333,[51,70,67,334,336,206]); -__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),n=r(d[1]),s=r(d[2]),t=r(d[3]),c=r(d[4]),l=r(d[5]),b=r(d[6]),u=b.DeprecatedAccessibilityRoles,p=b.DeprecatedAccessibilityStates,f=s(t);m.exports=o({accessible:l.bool,accessibilityLabel:l.node,accessibilityHint:l.string,accessibilityActions:l.arrayOf(l.string),accessibilityIgnoresInvertColors:l.bool,accessibilityRole:l.oneOf(u),accessibilityStates:l.arrayOf(l.oneOf(p)),accessibilityState:l.object,accessibilityLiveRegion:l.oneOf(['none','polite','assertive']),importantForAccessibility:l.oneOf(['auto','yes','no','no-hide-descendants']),accessibilityViewIsModal:l.bool,accessibilityElementsHidden:l.bool,onAccessibilityAction:l.func,onAccessibilityTap:l.func,onMagicTap:l.func,testID:l.string,nativeID:l.string,onResponderGrant:l.func,onResponderMove:l.func,onResponderReject:l.func,onResponderRelease:l.func,onResponderTerminate:l.func,onResponderTerminationRequest:l.func,onStartShouldSetResponder:l.func,onStartShouldSetResponderCapture:l.func,onMoveShouldSetResponder:l.func,onMoveShouldSetResponderCapture:l.func,hitSlop:n,onLayout:l.func,pointerEvents:l.oneOf(['box-none','none','box-only','auto']),style:f,removeClippedSubviews:l.bool,renderToHardwareTextureAndroid:l.bool,shouldRasterizeIOS:l.bool,collapsable:l.bool,needsOffscreenAlphaCompositing:l.bool},c)},334,[51,208,209,82,335,70,295]); -__d(function(g,r,i,a,m,e,d){'use strict'},335,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),f=r(d[2]),u=(function(){function f(s,u){t(this,f),this._anchorOffset=s,this._focusOffset=u,this._hasFocus=!1}return s(f,[{key:"update",value:function(t,s){this._anchorOffset===t&&this._focusOffset===s||(this._anchorOffset=t,this._focusOffset=s,this.emit('update'))}},{key:"constrainLength",value:function(t){this.update(Math.min(this._anchorOffset,t),Math.min(this._focusOffset,t))}},{key:"focus",value:function(){this._hasFocus||(this._hasFocus=!0,this.emit('focus'))}},{key:"blur",value:function(){this._hasFocus&&(this._hasFocus=!1,this.emit('blur'))}},{key:"hasFocus",value:function(){return this._hasFocus}},{key:"isCollapsed",value:function(){return this._anchorOffset===this._focusOffset}},{key:"isBackward",value:function(){return this._anchorOffset>this._focusOffset}},{key:"getAnchorOffset",value:function(){return this._hasFocus?this._anchorOffset:null}},{key:"getFocusOffset",value:function(){return this._hasFocus?this._focusOffset:null}},{key:"getStartOffset",value:function(){return this._hasFocus?Math.min(this._anchorOffset,this._focusOffset):null}},{key:"getEndOffset",value:function(){return this._hasFocus?Math.max(this._anchorOffset,this._focusOffset):null}},{key:"overlaps",value:function(t,s){return this.hasFocus()&&this.getStartOffset()<=s&&t<=this.getEndOffset()}}]),f})();f(u,{blur:!0,focus:!0,update:!0}),m.exports=u},336,[25,26,337]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),_=r(d[3]),o=r(d[4]),v=r(d[5])({__types:!0});var E={emit:function(t,n,s,_,o,v,E){return this.__getEventEmitter().emit(t,n,s,_,o,v,E)},emitAndHold:function(t,n,s,_,o,v,E){return this.__getEventEmitter().emitAndHold(t,n,s,_,o,v,E)},addListener:function(t,n,s){return this.__getEventEmitter().addListener(t,n,s)},once:function(t,n,s){return this.__getEventEmitter().once(t,n,s)},addRetroactiveListener:function(t,n,s){return this.__getEventEmitter().addRetroactiveListener(t,n,s)},addListenerMap:function(t,n){return this.__getEventEmitter().addListenerMap(t,n)},addRetroactiveListenerMap:function(t,n){return this.__getEventEmitter().addListenerMap(t,n)},removeAllListeners:function(){this.__getEventEmitter().removeAllListeners()},removeCurrentListener:function(){this.__getEventEmitter().removeCurrentListener()},releaseHeldEventType:function(t){this.__getEventEmitter().releaseHeldEventType(t)},__getEventEmitter:function(){if(!this.__eventEmitter){var t=new n,o=new _;this.__eventEmitter=new s(t,o)}return this.__eventEmitter}};m.exports=function(n,s){o(s,'Must supply set of valid event types');var _=n.prototype||n;o(!_.__eventEmitter,'An active emitter is already mixed in');var u=n.constructor;u&&o(u===Object||u===Function,'Mix EventEmitter into a class, not an instance'),_.hasOwnProperty(v)?t(_.__types,s):_.__types?_.__types=t({},_.__types,s):_.__types=s,t(_,E)}},337,[14,46,338,339,4,340]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=(function(){function s(n,l){t(this,s),this._emitter=n,this._eventHolder=l,this._currentEventToken=null,this._emittingHeldEvents=!1}return n(s,[{key:"addListener",value:function(t,n,s){return this._emitter.addListener(t,n,s)}},{key:"once",value:function(t,n,s){return this._emitter.once(t,n,s)}},{key:"addRetroactiveListener",value:function(t,n,s){var l=this._emitter.addListener(t,n,s);return this._emittingHeldEvents=!0,this._eventHolder.emitToListener(t,n,s),this._emittingHeldEvents=!1,l}},{key:"removeAllListeners",value:function(t){this._emitter.removeAllListeners(t)}},{key:"removeCurrentListener",value:function(){this._emitter.removeCurrentListener()}},{key:"listeners",value:function(t){return this._emitter.listeners(t)}},{key:"emit",value:function(t){for(var n,s=arguments.length,l=new Array(s>1?s-1:0),o=1;o1?l-1:0),u=1;u1?v-1:0),u=1;u=n.length)break;_=n[x++]}else{if((x=n.next()).done)break;_=x.value}var b=_,y=(0,u.default)(b,2),S=y[0],v=y[1];l[S]=v()}var p={},k=t._fileSources,D=Array.isArray(k),E=0;for(k=D?k:k["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var h;if(D){if(E>=k.length)break;h=k[E++]}else{if((E=k.next()).done)break;h=E.value}var B=h,A=(0,u.default)(B,2),R=A[0],w=A[1];p[R]=w()}return f('BugReporting extraData:',l),null!=o.default&&null!=o.default.setExtraData&&o.default.setExtraData(l,p),null!=c.default&&null!=c.default.setExtraData&&c.default.setExtraData(l,'From BugReporting.js'),{extras:l,files:p}}}]),t})();_._extraSources=new Map,_._fileSources=new Map,_._subscription=null,_._redboxSubscription=null,m.exports=_},347,[9,15,25,26,348,349,37,163,350]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('BugReporting');e.default=u},348,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('RedBox');e.default=u},349,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(){try{return"React tree dumps have been temporarily disabled while React is upgraded to Fiber."}catch(t){return'Failed to dump react tree: '+t}}},350,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=[],t={name:'default'},c={setActiveScene:function(c){t=c,n.forEach(function(n){return n(t)})},getActiveScene:function(){return t},addActiveSceneChangedListener:function(t){return n.push(t),{remove:function(){n=n.filter(function(n){return t!==n})}}}};m.exports=c},351,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),c=r(d[4]),p=r(d[5]),u=r(d[6]),s=r(d[7]);r(d[8]),m.exports=function(t,f,v,_,E,T,x){var A;s(v,'Expect to have a valid rootTag, instead got ',v);var R=p.createElement(o.default.Provider,{value:null!=(A=x)?A:l.default},p.createElement(c,{rootTag:v,WrapperComponent:_},p.createElement(t,(0,n.default)({},f,{rootTag:v})),!0===E&&!0===T?p.createElement(u,null):null));l.default.startTimespan('renderApplication_React_render'),E?r(d[9]).render(R,v):r(d[10]).render(R,v),l.default.stopTimespan('renderApplication_React_render')}},352,[9,14,161,353,310,57,354,4,355,356,91]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),c=r(d[1])(r(d[2])),n=t(r(d[3])),o=c.createContext(n.default);m.exports=o},353,[9,11,57,161]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]);var f=n.create({container:{alignItems:'center',justifyContent:'center',backgroundColor:'rgba(0,0,0, 0.25)',position:'absolute',top:0,right:0,padding:2},text:{fontSize:6,color:'#ffffff'}});m.exports=function(){return t.createElement(c,{style:f.container},t.createElement(o,{style:f.text},"FABRIC"))}},354,[57,61,206,89]); -__d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),o=r(d[1]);function v(){}if(t.isTV){var u=new o,f=new Set;u.enable(this,function(t,o){if(o&&'menu'===o.eventType){for(var v=!0,u=Array.from(f.values()).reverse(),s=0;sthis.eventPool.length&&this.eventPool.push(e)}function G(e){e.eventPool=[],e.getPooled=q,e.release=$}o(X.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Y)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Y)},persist:function(){this.isPersistent=Y},isPersistent:V,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=V,this._dispatchInstances=this._dispatchListeners=null}}),X.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},X.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,G(n),n},G(X);var J=X.extend({touchHistory:function(){return null}});function K(e){return"topTouchStart"===e}function Z(e){return"topTouchMove"===e}var ee=["topTouchStart"],te=["topTouchMove"],ne=["topTouchCancel","topTouchEnd"],re=[],ie={touchBank:re,numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0};function le(e){return e.timeStamp||e.timestamp}function ae(e){if(null==(e=e.identifier))throw f(Error("Touch object is missing identifier."));return e}function oe(e){var t=ae(e),n=re[t];n?(n.touchActive=!0,n.startPageX=e.pageX,n.startPageY=e.pageY,n.startTimeStamp=le(e),n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=le(e),n.previousPageX=e.pageX,n.previousPageY=e.pageY,n.previousTimeStamp=le(e)):(n={touchActive:!0,startPageX:e.pageX,startPageY:e.pageY,startTimeStamp:le(e),currentPageX:e.pageX,currentPageY:e.pageY,currentTimeStamp:le(e),previousPageX:e.pageX,previousPageY:e.pageY,previousTimeStamp:le(e)},re[t]=n),ie.mostRecentTimeStamp=le(e)}function ue(e){var t=re[ae(e)];t?(t.touchActive=!0,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=le(e),ie.mostRecentTimeStamp=le(e)):console.warn("Cannot record touch move without a touch start.\nTouch Move: %s\n","Touch Bank: %s",se(e),fe())}function ce(e){var t=re[ae(e)];t?(t.touchActive=!1,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=le(e),ie.mostRecentTimeStamp=le(e)):console.warn("Cannot record touch end without a touch start.\nTouch End: %s\n","Touch Bank: %s",se(e),fe())}function se(e){return JSON.stringify({identifier:e.identifier,pageX:e.pageX,pageY:e.pageY,timestamp:le(e)})}function fe(){var e=JSON.stringify(re.slice(0,20));return 20 component."));return n=St,St+=2,{node:ct(n,"RCTRawText",t,{text:e},r)}}var Pt=setTimeout,Ct=clearTimeout;function _t(e){var t=e.node,n=Ke(null,Ye,{style:{display:"none"}},e.canonical.viewConfig.validAttributes);return{node:pt(t,n),canonical:e.canonical}}var Rt=/^(.*)[\\\/]/;function Nt(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,i=e._debugSource,l=Oe(e.type);n=null,r&&(n=Oe(r.type)),r=l,l="",i?l=" (at "+i.fileName.replace(Rt,"")+":"+i.lineNumber+")":n&&(l=" (created by "+n+")"),n="\n in "+(r||"Unknown")+l}t+=n,e=e.return}while(e);return t}new Set;var It=[],zt=-1;function Ut(e){0>zt||(e.current=It[zt],It[zt]=null,zt--)}function Mt(e,t){It[++zt]=e.current,e.current=t}var At={},Dt={current:At},Ft={current:!1},jt=At;function Ot(e,t){var n=e.type.contextTypes;if(!n)return At;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,l={};for(i in n)l[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Wt(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Ht(e){Ut(Ft),Ut(Dt)}function Bt(e){Ut(Ft),Ut(Dt)}function Qt(e,t,n){if(Dt.current!==At)throw f(Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue."));Mt(Dt,t),Mt(Ft,n)}function Lt(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw f(Error((Oe(t)||"Unknown")+'.getChildContext(): key "'+i+'" is not defined in childContextTypes.'));return o({},n,r)}function Yt(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||At,jt=Dt.current,Mt(Dt,t),Mt(Ft,Ft.current),!0}function Vt(e,t,n){var r=e.stateNode;if(!r)throw f(Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue."));n?(t=Lt(e,t,jt),r.__reactInternalMemoizedMergedChildContext=t,Ut(Ft),Ut(Dt),Mt(Dt,t)):Ut(Ft),Mt(Ft,n)}var Xt=s.unstable_runWithPriority,qt=s.unstable_scheduleCallback,$t=s.unstable_cancelCallback,Gt=s.unstable_shouldYield,Jt=s.unstable_requestPaint,Kt=s.unstable_now,Zt=s.unstable_getCurrentPriorityLevel,en=s.unstable_ImmediatePriority,tn=s.unstable_UserBlockingPriority,nn=s.unstable_NormalPriority,rn=s.unstable_LowPriority,ln=s.unstable_IdlePriority,an={},on=void 0!==Jt?Jt:function(){},un=null,cn=null,sn=!1,fn=Kt(),dn=1e4>fn?Kt:function(){return Kt()-fn};function pn(){switch(Zt()){case en:return 99;case tn:return 98;case nn:return 97;case rn:return 96;case ln:return 95;default:throw f(Error("Unknown priority level."))}}function hn(e){switch(e){case 99:return en;case 98:return tn;case 97:return nn;case 96:return rn;case 95:return ln;default:throw f(Error("Unknown priority level."))}}function mn(e,t){return e=hn(e),Xt(e,t)}function gn(e,t,n){return e=hn(e),qt(e,t,n)}function yn(e){return null===un?(un=[e],cn=qt(en,bn)):un.push(e),an}function vn(){null!==cn&&$t(cn),bn()}function bn(){if(!sn&&null!==un){sn=!0;var e=0;try{var t=un;mn(99,function(){for(;e=(e=10*(1073741821-t)-10*(1073741821-e))?99:250>=e?98:5250>=e?97:95}function En(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var xn=Object.prototype.hasOwnProperty;function Sn(e,t){if(En(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r=t&&(hi=!0),e.firstContext=null)}function An(e,t){if(Rn!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(Rn=e,t=1073741823),t={context:e,observedBits:t,next:null},null===_n){if(null===Cn)throw f(Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."));_n=t,Cn.dependencies={expirationTime:0,firstContext:t,responders:null}}else _n=_n.next=t;return e._currentValue2}var Dn=!1;function Fn(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function jn(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function On(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Wn(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Hn(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=Fn(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=Fn(e.memoizedState),i=n.updateQueue=Fn(n.memoizedState)):r=e.updateQueue=jn(i):null===i&&(i=n.updateQueue=jn(r));null===i||r===i?Wn(r,t):null===r.lastUpdate||null===i.lastUpdate?(Wn(r,t),Wn(i,t)):(Wn(r,t),i.lastUpdate=t)}function Bn(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=Fn(e.memoizedState):Qn(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function Qn(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=jn(t)),t}function Ln(e,t,n,r,i,l){switch(n.tag){case 1:return"function"==typeof(e=n.payload)?e.call(l,r,i):e;case 3:e.effectTag=-2049&e.effectTag|64;case 0:if(null===(i="function"==typeof(e=n.payload)?e.call(l,r,i):e)||void 0===i)break;return o({},r,i);case 2:Dn=!0}return r}function Yn(e,t,n,r,i){Dn=!1;for(var l=(t=Qn(e,t)).baseState,a=null,o=0,u=t.firstUpdate,c=l;null!==u;){var s=u.expirationTime;sm?(g=f,f=null):g=f.sibling;var y=p(i,f,o[m],u);if(null===y){null===f&&(f=g);break}e&&f&&null===y.alternate&&t(i,f),a=l(y,a,m),null===s?c=y:s.sibling=y,s=y,f=g}if(m===o.length)return n(i,f),c;if(null===f){for(;mg?(y=m,m=null):y=m.sibling;var b=p(i,m,v.value,u);if(null===b){null===m&&(m=y);break}e&&m&&null===b.alternate&&t(i,m),a=l(b,a,g),null===s?c=b:s.sibling=b,s=b,m=y}if(v.done)return n(i,m),c;if(null===m){for(;!v.done;g++,v=o.next())null!==(v=d(i,v.value,u))&&(a=l(v,a,g),null===s?c=v:s.sibling=v,s=v);return c}for(m=r(i,m);!v.done;g++,v=o.next())null!==(v=h(m,i,g,v.value,u))&&(e&&null!==v.alternate&&m.delete(null===v.key?g:v.key),a=l(v,a,g),null===s?c=v:s.sibling=v,s=v);return e&&m.forEach(function(e){return t(i,e)}),c}return function(e,r,l,o){var u="object"==typeof l&&null!==l&&l.type===Pe&&null===l.key;u&&(l=l.props.children);var c="object"==typeof l&&null!==l;if(c)switch(l.$$typeof){case we:e:{for(c=l.key,u=r;null!==u;){if(u.key===c){if(7===u.tag?l.type===Pe:u.elementType===l.type){n(e,u.sibling),(r=i(u,l.type===Pe?l.props.children:l.props)).ref=rr(e,u,l),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}l.type===Pe?((r=oa(l.props.children,e.mode,o,l.key)).return=e,e=r):((o=aa(l.type,l.key,l.props,null,e.mode,o)).ref=rr(e,r,l),o.return=e,e=o)}return a(e);case ke:e:{for(u=l.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===l.containerInfo&&r.stateNode.implementation===l.implementation){n(e,r.sibling),(r=i(r,l.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=ca(l,e.mode,o)).return=e,e=r}return a(e)}if("string"==typeof l||"number"==typeof l)return l=""+l,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,l)).return=e,e=r):(n(e,r),(r=ua(l,e.mode,o)).return=e,e=r),a(e);if(nr(l))return m(e,r,l,o);if(je(l))return g(e,r,l,o);if(c&&ir(e,l),void 0===l&&!u)switch(e.tag){case 1:case 0:throw e=e.type,f(Error((e.displayName||e.name||"Component")+"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null."))}return n(e,r)}}var ar=lr(!0),or=lr(!1),ur={},cr={current:ur},sr={current:ur},fr={current:ur};function dr(e){if(e===ur)throw f(Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."));return e}function pr(e,t){Mt(fr,t),Mt(sr,e),Mt(cr,ur),Ut(cr),Mt(cr,{isInAParentText:!1})}function hr(e){Ut(cr),Ut(sr),Ut(fr)}function mr(e){dr(fr.current);var t=dr(cr.current),n=e.type;n="AndroidTextInput"===n||"RCTMultilineTextInputView"===n||"RCTSinglelineTextInputView"===n||"RCTText"===n||"RCTVirtualText"===n,t!==(n=t.isInAParentText!==n?{isInAParentText:n}:t)&&(Mt(sr,e),Mt(cr,n))}function gr(e){sr.current===e&&(Ut(cr),Ut(sr))}var yr=1,vr=1,br=2,Tr={current:0};function Er(e){for(var t=e;null!==t;){if(13===t.tag){if(null!==t.memoizedState)return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function xr(e,t){return{responder:e,props:t}}var Sr=0,wr=2,kr=4,Pr=8,Cr=16,_r=32,Rr=64,Nr=128,Ir=xe.ReactCurrentDispatcher,zr=0,Ur=null,Mr=null,Ar=null,Dr=null,Fr=null,jr=null,Or=0,Wr=null,Hr=0,Br=!1,Qr=null,Lr=0;function Yr(){throw f(Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem."))}function Vr(e,t){if(null===t)return!1;for(var n=0;nOr&&(Or=s)):(Wl(s,u.suspenseConfig),l=u.eagerReducer===e?u.eagerState:e(l,u.action)),a=u,u=u.next}while(null!==u&&u!==r);c||(o=a,i=l),En(l,t.memoizedState)||(hi=!0),t.memoizedState=l,t.baseUpdate=o,t.baseState=i,n.lastRenderedState=l}return[t.memoizedState,n.dispatch]}function Zr(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Wr?(Wr={lastEffect:null}).lastEffect=e.next=e:null===(t=Wr.lastEffect)?Wr.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Wr.lastEffect=e),e}function ei(e,t,n,r){var i=$r();Hr|=e,i.memoizedState=Zr(t,n,void 0,void 0===r?null:r)}function ti(e,t,n,r){var i=Gr();r=void 0===r?null:r;var l=void 0;if(null!==Mr){var a=Mr.memoizedState;if(l=a.destroy,null!==r&&Vr(r,a.deps))return void Zr(Sr,n,l,r)}Hr|=e,i.memoizedState=Zr(t,n,l,r)}function ni(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function ri(){}function ii(e,t,n){if(!(25>Lr))throw f(Error("Too many re-renders. React limits the number of renders to prevent an infinite loop."));var r=e.alternate;if(e===Ur||null!==r&&r===Ur)if(Br=!0,e={expirationTime:zr,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===Qr&&(Qr=new Map),void 0===(n=Qr.get(t)))Qr.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{var i=Nl(),l=qn.suspense;l={expirationTime:i=Il(i,e,l),suspenseConfig:l,action:n,eagerReducer:null,eagerState:null,next:null};var a=t.last;if(null===a)l.next=l;else{var o=a.next;null!==o&&(l.next=o),a.next=l}if(t.last=l,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var u=t.lastRenderedState,c=r(u,n);if(l.eagerReducer=r,l.eagerState=c,En(c,u))return}catch(e){}zl(e,i)}}var li={readContext:An,useCallback:Yr,useContext:Yr,useEffect:Yr,useImperativeHandle:Yr,useLayoutEffect:Yr,useMemo:Yr,useReducer:Yr,useRef:Yr,useState:Yr,useDebugValue:Yr,useResponder:Yr},ai={readContext:An,useCallback:function(e,t){return $r().memoizedState=[e,void 0===t?null:t],e},useContext:An,useEffect:function(e,t){return ei(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,ei(4,36,ni.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ei(4,36,e,t)},useMemo:function(e,t){var n=$r();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=$r();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=ii.bind(null,Ur,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},$r().memoizedState=e},useState:function(e){var t=$r();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:Jr,lastRenderedState:e}).dispatch=ii.bind(null,Ur,e),[t.memoizedState,e]},useDebugValue:ri,useResponder:xr},oi={readContext:An,useCallback:function(e,t){var n=Gr();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Vr(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:An,useEffect:function(e,t){return ti(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,ti(4,36,ni.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ti(4,36,e,t)},useMemo:function(e,t){var n=Gr();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Vr(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:Kr,useRef:function(){return Gr().memoizedState},useState:function(e){return Kr(Jr)},useDebugValue:ri,useResponder:xr},ui=null,ci=null,si=!1;function fi(e,t){switch(e.tag){case 5:return null!==(t=ot(e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=ot(e.pendingProps))&&(e.stateNode=t,!0);case 13:default:return!1}}function di(e){if(si){var t=ci;if(t){var n=t;if(!fi(e,t)){if(!(t=ot())||!fi(e,t))return e.effectTag|=2,si=!1,void(ui=e);var r=ui,i=na(5,null,null,0);i.elementType="DELETED",i.type="DELETED",i.stateNode=n,i.return=r,i.effectTag=8,null!==r.lastEffect?(r.lastEffect.nextEffect=i,r.lastEffect=i):r.firstEffect=r.lastEffect=i}ui=e,ci=ot()}else e.effectTag|=2,si=!1,ui=e}}var pi=xe.ReactCurrentOwner,hi=!1;function mi(e,t,n,r){t.child=null===e?or(t,null,n,r):ar(t,e.child,n,r)}function gi(e,t,n,r,i){n=n.render;var l=t.ref;return Mn(t,i),r=Xr(e,t,n,r,l,i),null===e||hi?(t.effectTag|=1,mi(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),_i(e,t,i))}function yi(e,t,n,r,i,l){if(null===e){var a=n.type;return"function"!=typeof a||ra(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=aa(n.type,null,r,null,t.mode,l)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,vi(e,t,a,r,i,l))}return a=e.child,it)&&Pl.set(e,t))}}function Ul(e,t){e.expirationTimei.firstPendingTime&&(i.firstPendingTime=t),0===(e=i.lastPendingTime)||t=t)&&(gn(97,function(){return n._onComplete(),null}),!0)}function Fl(){if(null!==Pl){var e=Pl;Pl=null,e.forEach(function(e,t){yn(Ol.bind(null,t,e))}),vn()}}function jl(e,t){e.finishedWork=null,e.finishedExpirationTime=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Ct(n)),null!==cl)for(n=cl.return;null!==n;){var r=n;switch(r.tag){case 1:var i=r.type.childContextTypes;null!==i&&void 0!==i&&Ht();break;case 3:hr(),Bt();break;case 5:gr(r);break;case 4:hr();break;case 13:case 19:Ut(Tr);break;case 10:zn(r)}n=n.return}ul=e,cl=la(e.current,null),sl=t,fl=nl,pl=dl=1073741823,hl=null,ml=!1}function Ol(e,t,n){if((48&ol)!==Ki)throw f(Error("Should not already be working."));if(e.firstPendingTime component higher in the tree to provide a loading indicator or placeholder to display."+Nt(u))}fl!==al&&(fl=rl),c=Di(c,u),u=o;do{switch(u.tag){case 3:u.effectTag|=2048,u.expirationTime=s,Bn(u,s=Xi(u,c,s));break e;case 1:if(d=c,a=u.type,o=u.stateNode,0==(64&u.effectTag)&&("function"==typeof a.getDerivedStateFromError||null!==o&&"function"==typeof o.componentDidCatch&&(null===El||!El.has(o)))){u.effectTag|=2048,u.expirationTime=s,Bn(u,s=qi(u,d,s));break e}}u=u.return}while(null!==u)}cl=Bl(l)}if(ol=r,Nn(),Gi.current=i,null!==cl)return Ol.bind(null,e,t)}if(e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,Dl(e,t))return null;switch(ul=null,fl){case nl:throw f(Error("Should have a work-in-progress."));case rl:return(r=e.lastPendingTime)(n=r-n)&&(n=0),t<(n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*$i(n/1960))-n)&&(n=t)),10=(t=0|(i=hl).busyMinDurationMs)?t=0:(n=0|i.busyDelayMs,t=(r=dn()-(10*(1073741821-r)-(0|i.timeoutMs||5e3)))<=n?0:n+t-r),10i.tailExpiration&&1r&&(r=l),a>r&&(r=a),i=i.sibling;n.childExpirationTime=r}if(null!==t)return t;null!==e&&0==(1024&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=cl.firstEffect),null!==cl.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=cl.firstEffect),e.lastEffect=cl.lastEffect),1i?l:i,e.firstPendingTime=i,i=n?ki(e,t,n):(Mt(Tr,Tr.current&yr),null!==(t=_i(e,t,n))?t.sibling:null);Mt(Tr,Tr.current&yr);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return Ci(e,t,n);t.effectTag|=64}var i=t.memoizedState;if(null!==i&&(i.rendering=null,i.tail=null),Mt(Tr,Tr.current),!r)return null}return _i(e,t,n)}}else hi=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=Ot(t,Dt.current),Mn(t,n),i=Xr(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,qr(),Wt(r)){var l=!0;Yt(t)}else l=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var a=r.getDerivedStateFromProps;"function"==typeof a&&Gn(t,r,a,e),i.updater=Jn,t.stateNode=i,i._reactInternalFiber=t,tr(t,r,e,n),t=xi(null,t,r,!0,l,n)}else t.tag=0,mi(null,t,i,n),t=t.child;return t;case 16:switch(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=kn(i),t.type=i,l=t.tag=ia(i),e=wn(i,e),l){case 0:t=Ti(null,t,i,e,n);break;case 1:t=Ei(null,t,i,e,n);break;case 11:t=gi(null,t,i,e,n);break;case 14:t=yi(null,t,i,wn(i.type,e),r,n);break;default:throw f(Error("Element type is invalid. Received a promise that resolves to: "+i+". Lazy element type must resolve to a class or function."))}return t;case 0:return r=t.type,i=t.pendingProps,Ti(e,t,r,i=t.elementType===r?i:wn(r,i),n);case 1:return r=t.type,i=t.pendingProps,Ei(e,t,r,i=t.elementType===r?i:wn(r,i),n);case 3:if(Si(t),null===(r=t.updateQueue))throw f(Error("If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue."));return i=null!==(i=t.memoizedState)?i.element:null,Yn(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i?t=_i(e,t,n):(mi(e,t,r,n),t=t.child),t;case 5:return mr(t),null===e&&di(t),r=t.pendingProps.children,bi(e,t),mi(e,t,r,n),t.child;case 6:return null===e&&di(t),null;case 13:return ki(e,t,n);case 4:return pr(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ar(t,null,r,n):mi(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,gi(e,t,r,i=t.elementType===r?i:wn(r,i),n);case 7:return mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,a=t.memoizedProps,In(t,l=i.value),null!==a){var o=a.value;if(0===(l=En(o,l)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(o,l):1073741823))){if(a.children===i.children&&!Ft.current){t=_i(e,t,n);break e}}else for(null!==(o=t.child)&&(o.return=t);null!==o;){var u=o.dependencies;if(null!==u){a=o.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&l)){1===o.tag&&((c=On(n,null)).tag=2,Hn(o,c)),o.expirationTimeo&&(s+=c&&u?v.currentPageX:c&&!u?v.currentPageY:!c&&u?v.previousPageX:v.previousPageY,h=1);else for(var C=0;C=o){s+=c&&u?l.currentPageX:c&&!u?l.currentPageY:!c&&u?l.previousPageX:l.previousPageY,h++}}return h>0?s/h:n.noCentroid},currentCentroidXOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!0,!0)},currentCentroidYOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!1,!0)},previousCentroidXOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!0,!1)},previousCentroidYOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!1,!1)},currentCentroidX:function(t){return n.centroidDimension(t,0,!0,!0)},currentCentroidY:function(t){return n.centroidDimension(t,0,!1,!0)},noCentroid:-1};m.exports=n},372,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),s=n(r(d[1])),o=n(r(d[2])),t=n(r(d[3])),E=n(r(d[4])),A=n(r(d[5])),u=n(r(d[6])),_=n(r(d[7])),S=(r(d[8]),Object.freeze({GRANTED:'granted',DENIED:'denied',NEVER_ASK_AGAIN:'never_ask_again'})),l=Object.freeze({READ_CALENDAR:'android.permission.READ_CALENDAR',WRITE_CALENDAR:'android.permission.WRITE_CALENDAR',CAMERA:'android.permission.CAMERA',READ_CONTACTS:'android.permission.READ_CONTACTS',WRITE_CONTACTS:'android.permission.WRITE_CONTACTS',GET_ACCOUNTS:'android.permission.GET_ACCOUNTS',ACCESS_FINE_LOCATION:'android.permission.ACCESS_FINE_LOCATION',ACCESS_COARSE_LOCATION:'android.permission.ACCESS_COARSE_LOCATION',RECORD_AUDIO:'android.permission.RECORD_AUDIO',READ_PHONE_STATE:'android.permission.READ_PHONE_STATE',CALL_PHONE:'android.permission.CALL_PHONE',READ_CALL_LOG:'android.permission.READ_CALL_LOG',WRITE_CALL_LOG:'android.permission.WRITE_CALL_LOG',ADD_VOICEMAIL:'com.android.voicemail.permission.ADD_VOICEMAIL',USE_SIP:'android.permission.USE_SIP',PROCESS_OUTGOING_CALLS:'android.permission.PROCESS_OUTGOING_CALLS',BODY_SENSORS:'android.permission.BODY_SENSORS',SEND_SMS:'android.permission.SEND_SMS',RECEIVE_SMS:'android.permission.RECEIVE_SMS',READ_SMS:'android.permission.READ_SMS',RECEIVE_WAP_PUSH:'android.permission.RECEIVE_WAP_PUSH',RECEIVE_MMS:'android.permission.RECEIVE_MMS',READ_EXTERNAL_STORAGE:'android.permission.READ_EXTERNAL_STORAGE',WRITE_EXTERNAL_STORAGE:'android.permission.WRITE_EXTERNAL_STORAGE'}),R=(function(){function n(){(0,t.default)(this,n),this.PERMISSIONS=l,this.RESULTS=S}return(0,E.default)(n,[{key:"checkPermission",value:function(n){return console.warn('"PermissionsAndroid.checkPermission" is deprecated. Use "PermissionsAndroid.check" instead'),console.warn('"PermissionsAndroid" module works only for Android platform.'),Promise.resolve(!1)}},{key:"check",value:function(n){return console.warn('"PermissionsAndroid" module works only for Android platform.'),Promise.resolve(!1)}},{key:"requestPermission",value:function(n,s){var t;return o.default.async(function(E){for(;;)switch(E.prev=E.next){case 0:return console.warn('"PermissionsAndroid.requestPermission" is deprecated. Use "PermissionsAndroid.request" instead'),console.warn('"PermissionsAndroid" module works only for Android platform.'),E.abrupt("return",Promise.resolve(!1));case 4:return E.next=6,o.default.awrap(this.request(n,s));case 6:return t=E.sent,E.abrupt("return",t===this.RESULTS.GRANTED);case 8:case"end":return E.stop()}},null,this)}},{key:"request",value:function(n,t){return o.default.async(function(E){for(;;)switch(E.prev=E.next){case 0:return console.warn('"PermissionsAndroid" module works only for Android platform.'),E.abrupt("return",Promise.resolve(this.RESULTS.DENIED));case 3:if((0,_.default)(u.default,'PermissionsAndroid is not installed correctly.'),!t){E.next=10;break}return E.next=7,o.default.awrap(u.default.shouldShowRequestPermissionRationale(n));case 7:if(!E.sent||!A.default){E.next=10;break}return E.abrupt("return",new Promise(function(o,E){var _=(0,s.default)({},t);A.default.showAlert(_,function(){return E(new Error('Error showing rationale'))},function(){return o(u.default.requestPermission(n))})}));case 10:return E.abrupt("return",u.default.requestPermission(n));case 11:case"end":return E.stop()}},null,this)}},{key:"requestMultiple",value:function(n){return console.warn('"PermissionsAndroid" module works only for Android platform.'),Promise.resolve({})}}]),n})();R=new R,m.exports=R},373,[9,51,277,25,26,150,374,4,55]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).get('PermissionsAndroid');e.default=o},374,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),u=r(d[4]),c=r(d[5]),s=new u(l.default),f=new Map,v=(function(){function t(n){var l=this;(0,o.default)(this,t),this._data={},this._remoteNotificationCompleteCallbackCalled=!1,this._isRemote=n.remote,this._isRemote&&(this._notificationId=n.notificationId),n.remote?Object.keys(n).forEach(function(t){var o=n[t];'aps'===t?(l._alert=o.alert,l._sound=o.sound,l._badgeCount=o.badge,l._category=o.category,l._contentAvailable=o['content-available'],l._threadID=o['thread-id']):l._data[t]=o}):(this._badgeCount=n.applicationIconBadgeNumber,this._sound=n.soundName,this._alert=n.alertBody,this._data=n.userInfo,this._category=n.category)}return(0,n.default)(t,null,[{key:"presentLocalNotification",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.presentLocalNotification(t)}},{key:"scheduleLocalNotification",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.scheduleLocalNotification(t)}},{key:"cancelAllLocalNotifications",value:function(){c(l.default,'PushNotificationManager is not available.'),l.default.cancelAllLocalNotifications()}},{key:"removeAllDeliveredNotifications",value:function(){c(l.default,'PushNotificationManager is not available.'),l.default.removeAllDeliveredNotifications()}},{key:"getDeliveredNotifications",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.getDeliveredNotifications(t)}},{key:"removeDeliveredNotifications",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.removeDeliveredNotifications(t)}},{key:"setApplicationIconBadgeNumber",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.setApplicationIconBadgeNumber(t)}},{key:"getApplicationIconBadgeNumber",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.getApplicationIconBadgeNumber(t)}},{key:"cancelLocalNotifications",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.cancelLocalNotifications(t)}},{key:"getScheduledLocalNotifications",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.getScheduledLocalNotifications(t)}},{key:"addEventListener",value:function(o,n){var l;c('notification'===o||'register'===o||'registrationError'===o||'localNotification'===o,'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events'),'notification'===o?l=s.addListener("remoteNotificationReceived",function(o){n(new t(o))}):'localNotification'===o?l=s.addListener("localNotificationReceived",function(o){n(new t(o))}):'register'===o?l=s.addListener("remoteNotificationsRegistered",function(t){n(t.deviceToken)}):'registrationError'===o&&(l=s.addListener("remoteNotificationRegistrationError",function(t){n(t)})),f.set(o,l)}},{key:"removeEventListener",value:function(t,o){c('notification'===t||'register'===t||'registrationError'===t||'localNotification'===t,'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events');var n=f.get(t);n&&(n.remove(),f.delete(t))}},{key:"requestPermissions",value:function(t){var o={};return o=t?{alert:!!t.alert,badge:!!t.badge,sound:!!t.sound}:{alert:!0,badge:!0,sound:!0},c(l.default,'PushNotificationManager is not available.'),l.default.requestPermissions(o)}},{key:"abandonPermissions",value:function(){c(l.default,'PushNotificationManager is not available.'),l.default.abandonPermissions()}},{key:"checkPermissions",value:function(t){c('function'==typeof t,'Must provide a valid callback'),c(l.default,'PushNotificationManager is not available.'),l.default.checkPermissions(t)}},{key:"getInitialNotification",value:function(){return c(l.default,'PushNotificationManager is not available.'),l.default.getInitialNotification().then(function(o){return o&&new t(o)})}}]),(0,n.default)(t,[{key:"finish",value:function(t){this._isRemote&&this._notificationId&&!this._remoteNotificationCompleteCallbackCalled&&(this._remoteNotificationCompleteCallbackCalled=!0,c(l.default,'PushNotificationManager is not available.'),l.default.onFinishRemoteNotification(this._notificationId,t))}},{key:"getMessage",value:function(){return this._alert}},{key:"getSound",value:function(){return this._sound}},{key:"getCategory",value:function(){return this._category}},{key:"getAlert",value:function(){return this._alert}},{key:"getContentAvailable",value:function(){return this._contentAvailable}},{key:"getBadgeCount",value:function(){return this._badgeCount}},{key:"getData",value:function(){return this._data}},{key:"getThreadID",value:function(){return this._threadID}}]),t})();v.FetchResult={NewData:'UIBackgroundFetchResultNewData',NoData:'UIBackgroundFetchResultNoData',ResultFailed:'UIBackgroundFetchResultFailed'},m.exports=v},375,[9,25,26,376,125,4]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).get('PushNotificationManager');e.default=o},376,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=t(r(d[1])),n=t(r(d[2])),c=r(d[3]),l=r(d[4]),u=[],o={_settings:n.default&&n.default.getConstants().settings,get:function(t){return this._settings[t]},set:function(t){this._settings=(0,s.default)(this._settings,t),n.default.setValues(t)},watchKeys:function(t,s){'string'==typeof t&&(t=[t]),l(Array.isArray(t),'keys should be a string or array of strings');var n=u.length;return u.push({keys:t,callback:s}),n},clearWatch:function(t){t1&&void 0!==arguments[1]?arguments[1]:{};return u('object'==typeof t&&null!==t,'Content to share must be a valid object'),u('string'==typeof t.url||'string'==typeof t.message,'At least one of URL and message is required'),u('object'==typeof n&&null!==n,'Options must be a valid object'),new Promise(function(o,l){var f=c(n.tintColor);u(s.default,'NativeActionSheetManager is not registered on iOS, but it should be.'),s.default.showShareActionSheetWithOptions({message:'string'==typeof t.message?t.message:void 0,url:'string'==typeof t.url?t.url:void 0,subject:n.subject,tintColor:null!=f?f:void 0,excludedActivityTypes:n.excludedActivityTypes},function(t){return l(t)},function(t,n){o(t?{action:'sharedAction',activityType:n}:{action:'dismissedAction'})})})}}]),t})();l.sharedAction='sharedAction',l.dismissedAction='dismissedAction',m.exports=l},379,[9,25,26,343,380,55,4,83]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('ShareModule');e.default=u},380,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=t(r(d[1])),n=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),s=t(r(d[5])),c=(function(t){function s(){return(0,u.default)(this,s),(0,n.default)(this,(0,f.default)(s).apply(this,arguments))}return(0,l.default)(s,t),s})(r(d[6]));m.exports=new c(s.default)},381,[9,25,38,41,44,331,125]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),c=(function(){function t(){(0,s.default)(this,t)}return(0,u.default)(t,null,[{key:"open",value:function(t){return n.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(!o.default){n.next=4;break}return n.abrupt("return",o.default.open(t));case 4:return n.abrupt("return",Promise.reject({message:'TimePickerAndroid is not supported on this platform.'}));case 5:case"end":return n.stop()}})}}]),t})();c.timeSetAction='timeSetAction',c.dismissedAction='dismissedAction',m.exports=c},382,[9,277,25,26,383]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('TimePickerAndroid');e.default=u},383,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o={show:function(o,s){t(!1,'ToastAndroid is not supported on this platform.')},showWithGravity:function(o,s,n){t(!1,'ToastAndroid is not supported on this platform.')},showWithGravityAndOffset:function(o,s,n,p,f){t(!1,'ToastAndroid is not supported on this platform.')}};m.exports=o},384,[6]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=u.default.get('window'),n=f.useState(!1)[1].bind(null,function(t){return!t}),c=f.useState(t)[0];return f.useEffect(function(){return u.default.addEventListener('change',n),u.default.get('window')!==c&&n(),function(){u.default.removeEventListener('change',n)}},[n,c]),t};var u=n(r(d[2])),f=t(r(d[3]))},385,[11,9,63,57]); -__d(function(g,r,i,a,m,e,d){'use strict';var A=r(d[0])({BOM:"\ufeff",BULLET:"\u2022",BULLET_SP:"\xa0\u2022\xa0",MIDDOT:"\xb7",MIDDOT_SP:"\xa0\xb7\xa0",MIDDOT_KATAKANA:"\u30fb",MDASH:"\u2014",MDASH_SP:"\xa0\u2014\xa0",NDASH:"\u2013",NDASH_SP:"\xa0\u2013\xa0",NBSP:"\xa0",PIZZA:"\ud83c\udf55",TRIANGLE_LEFT:"\u25c0",TRIANGLE_RIGHT:"\u25b6"});m.exports=A},386,[29]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),n=(r(d[2]),!1),o=0;function u(u){var l=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n||(n=!0,0===u[0]&&(t.default.vibrate(),u=u.slice(1)),0!==u.length?setTimeout(function(){return f(++o,u,l,1)},u[0]):n=!1)}function f(u,l,v,c){if(n&&u===o){if(t.default.vibrate(),c>=l.length){if(!v)return void(n=!1);c=0}setTimeout(function(){return f(u,l,v,c+1)},l[c])}}var l={vibrate:function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:400,f=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!n)if('number'==typeof o)t.default.vibrate();else{if(!Array.isArray(o))throw new Error('Vibration pattern should be a number or array');u(o,f)}},cancel:function(){n=!1}};m.exports=l},387,[9,388,55]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])).getEnforcing('Vibration');e.default=n},388,[11,12]); -__d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),u=r(d[1]),l=r(d[2]),o=r(d[3]),s=r(d[4]);n=(function(n){function c(){return t(this,c),l(this,o(c).apply(this,arguments))}return s(c,n),u(c,[{key:"render",value:function(){return null}}],[{key:"ignoreWarnings",value:function(n){}},{key:"install",value:function(){}},{key:"uninstall",value:function(){}}]),c})(r(d[5]).Component),m.exports=n},389,[25,26,38,41,44,57]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),s=n.shape({x:n.number,y:n.number});m.exports=s},390,[70]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},391,[392]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Sentry=e.SentryLog=e.SentrySeverity=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=r(d[3]),s=r(d[4]),v=r(d[5]),c=o.NativeModules.RNSentry,u=o.NativeModules.RNSentryEventEmitter;e.SentrySeverity={Fatal:'fatal',Error:'error',Warning:'warning',Info:'info',Debug:'debug',Critical:'critical'};var _={None:0,Error:1,Debug:2,Verbose:3};e.SentryLog=_;var C={install:function(){C._ravenClient=new s.RavenClient(C._dsn,C.options),c&&c.nativeClientAvailable&&!1===C.options.disableNativeIntegration&&(C._nativeClient=new v.NativeClient(C._dsn,C.options),C.eventEmitter=new o.NativeEventEmitter(u),C.eventEmitter.addListener(u.EVENT_SENT_SUCCESSFULLY,function(t){C._lastEvent=t,C._eventSentSuccessfully&&C._eventSentSuccessfully(t)}),C.eventEmitter.addListener(u.EVENT_STORED,function(){C._internalEventStored&&C._internalEventStored()})),C._ravenClient.install()},config:function(t,n){if(t.constructor!==String)throw new Error('Sentry: A DSN must be provided');return C._dsn=t,C.options={logLevel:_.None,instrument:!1,disableNativeIntegration:!1,handlePromiseRejection:!0},(0,l.default)(C.options,n),C},isNativeClientAvailable:function(){return void 0!==C._nativeClient&&!1===C.options.disableNativeIntegration},_log:function(){if(C.options.logLevel>=2){for(var t=arguments.length,n=new Array(t),l=0;l=s.SentryLog.Debug&&(o.default.debug=!0)}return(0,u.default)(t,[{key:"install",value:function(){if(s.Sentry.isNativeClientAvailable()&&void 0!==this.options.sampleRate&&(o.default._globalOptions.sampleRate=1),o.default.install(),o.default.addPlugin(r(d[6]),{nativeClientAvailable:s.Sentry.isNativeClientAvailable(),handlePromiseRejection:this.options.handlePromiseRejection},function(t){s.Sentry.options.internal&&(t.dist=s.Sentry.options.internal.dist)}),s.Sentry.isNativeClientAvailable()){o.default.setTransport(function(t){delete t.data.breadcrumbs,s.Sentry._captureEvent(t.data)}),o.default.setBreadcrumbCallback(s.Sentry._breadcrumbCallback);var t=o.default.captureBreadcrumb;o.default.captureBreadcrumb=function(l){return l.data&&'object'==typeof l.data&&(l.data=(0,n.default)({},l.data)),t.apply(this,arguments)}}}},{key:"setDataCallback",value:function(t){o.default.setDataCallback(t)}},{key:"setShouldSendCallback",value:function(t){o.default.setShouldSendCallback(t)}},{key:"setUserContext",value:function(t){o.default.setUserContext(t)}},{key:"setTagsContext",value:function(t){o.default.setTagsContext(t)}},{key:"setExtraContext",value:function(t){o.default.setExtraContext(t)}},{key:"captureException",value:function(t,n){o.default.captureException(t,n)}},{key:"captureBreadcrumb",value:function(t){o.default.captureBreadcrumb(t)}},{key:"captureMessage",value:function(t,n){o.default.captureMessage(t,n)}},{key:"setRelease",value:function(t){o.default.setRelease(t)}},{key:"clearContext",value:function(){return o.default.clearContext()}},{key:"context",value:function(t,n,l){return o.default.context(t,n,l)}},{key:"wrap",value:function(t,n,l){return o.default.wrap(t,n,l)}}]),t})();e.RavenClient=c},394,[1,60,140,141,395,392,403]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o='undefined'!=typeof window?window:void 0!==g?g:'undefined'!=typeof self?self:{},f=o.Raven,t=new n;t.noConflict=function(){return o.Raven=f,t},t.afterLoad(),m.exports=t,m.exports.Client=n},395,[396]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),l=r(d[4]),c=l.isErrorEvent,u=l.isDOMError,h=l.isDOMException,p=l.isError,_=l.isObject,f=l.isPlainObject,v=l.isUndefined,b=l.isFunction,y=l.isString,E=l.isArray,k=l.isEmptyObject,S=l.each,x=l.objectMerge,O=l.truncate,w=l.objectFrozen,C=l.hasKey,R=l.joinRegExp,T=l.urlencode,D=l.uuid4,H=l.htmlTreeAsString,B=l.isSameException,j=l.isSameStacktrace,L=l.parseUrl,P=l.fill,F=l.supportsFetch,U=l.supportsReferrerPolicy,I=l.serializeKeysForMessage,M=l.serializeException,N=l.sanitize,q=r(d[5]).wrapMethod,A='source protocol user pass host port path'.split(' '),K=/^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/;function X(){return+new Date}var z='undefined'!=typeof window?window:void 0!==g?g:'undefined'!=typeof self?self:{},W=z.document,J=z.navigator;function G(t,n){return b(n)?function(s){return n(s,t)}:n}function V(){for(var t in this._hasJSON=!('object'!=typeof JSON||!JSON.stringify),this._hasDocument=!v(W),this._hasNavigator=!v(J),this._lastCapturedException=null,this._lastData=null,this._lastEventId=null,this._globalServer=null,this._globalKey=null,this._globalProject=null,this._globalContext={},this._globalOptions={release:z.SENTRY_RELEASE&&z.SENTRY_RELEASE.id,logger:'javascript',ignoreErrors:[],ignoreUrls:[],whitelistUrls:[],includePaths:[],headers:null,collectWindowErrors:!0,captureUnhandledRejections:!0,maxMessageLength:0,maxUrlLength:250,stackTraceLimit:50,autoBreadcrumbs:!0,instrument:!0,sampleRate:1,sanitizeKeys:[]},this._fetchDefaults={method:'POST',referrerPolicy:U()?'origin':''},this._ignoreOnError=0,this._isRavenInstalled=!1,this._originalErrorStackTraceLimit=Error.stackTraceLimit,this._originalConsole=z.console||{},this._originalConsoleMethods={},this._plugins=[],this._startTime=X(),this._wrappedBuiltIns=[],this._breadcrumbs=[],this._lastCapturedEvent=null,this._keypressTimeout,this._location=z.location,this._lastHref=this._location&&this._location.href,this._resetBackoff(),this._originalConsole)this._originalConsoleMethods[t]=this._originalConsole[t]}V.prototype={VERSION:'3.27.0',debug:!1,TraceKit:t,config:function(n,s){var o=this;if(o._globalServer)return this._logDebug('error','Error: Raven has already been configured'),o;if(!n)return o;var l=o._globalOptions;s&&S(s,function(t,n){'tags'===t||'extra'===t||'user'===t?o._globalContext[t]=n:l[t]=n}),o.setDSN(n),l.ignoreErrors.push(/^Script error\.?$/),l.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/),l.ignoreErrors=R(l.ignoreErrors),l.ignoreUrls=!!l.ignoreUrls.length&&R(l.ignoreUrls),l.whitelistUrls=!!l.whitelistUrls.length&&R(l.whitelistUrls),l.includePaths=R(l.includePaths),l.maxBreadcrumbs=Math.max(0,Math.min(l.maxBreadcrumbs||100,100));var c={xhr:!0,console:!0,dom:!0,location:!0,sentry:!0},u=l.autoBreadcrumbs;'[object Object]'==={}.toString.call(u)?u=x(c,u):!1!==u&&(u=c),l.autoBreadcrumbs=u;var h={tryCatch:!0},p=l.instrument;return'[object Object]'==={}.toString.call(p)?p=x(h,p):!1!==p&&(p=h),l.instrument=p,t.collectWindowErrors=!!l.collectWindowErrors,o},install:function(){var n=this;return n.isSetup()&&!n._isRavenInstalled&&(t.report.subscribe(function(){n._handleOnErrorStackInfo.apply(n,arguments)}),n._globalOptions.captureUnhandledRejections&&n._attachPromiseRejectionHandler(),n._patchFunctionToString(),n._globalOptions.instrument&&n._globalOptions.instrument.tryCatch&&n._instrumentTryCatch(),n._globalOptions.autoBreadcrumbs&&n._instrumentBreadcrumbs(),n._drainPlugins(),n._isRavenInstalled=!0),Error.stackTraceLimit=n._globalOptions.stackTraceLimit,this},setDSN:function(t){var n=this._parseDSN(t),s=n.path.lastIndexOf('/'),o=n.path.substr(1,s);this._dsn=t,this._globalKey=n.user,this._globalSecret=n.pass&&n.pass.substr(1),this._globalProject=n.path.substr(s+1),this._globalServer=this._getGlobalServer(n),this._globalEndpoint=this._globalServer+'/'+o+'api/'+this._globalProject+'/store/',this._resetBackoff()},context:function(t,n,s){return b(t)&&(s=n||[],n=t,t={}),this.wrap(t,n).apply(this,s)},wrap:function(t,n,s){var o=this;if(v(n)&&!b(t))return t;if(b(t)&&(n=t,t=void 0),!b(n))return n;try{if(n.__raven__)return n;if(n.__raven_wrapper__)return n.__raven_wrapper__}catch(t){return n}function l(){var l=[],c=arguments.length,u=!t||t&&!1!==t.deep;for(s&&b(s)&&s.apply(this,arguments);c--;)l[c]=u?o.wrap(t,arguments[c]):arguments[c];try{return n.apply(this,l)}catch(n){throw o._ignoreNextOnError(),o.captureException(n,t),n}}for(var c in n)C(n,c)&&(l[c]=n[c]);return l.prototype=n.prototype,n.__raven_wrapper__=l,l.__raven__=!0,l.__orig__=n,l},uninstall:function(){return t.report.uninstall(),this._detachPromiseRejectionHandler(),this._unpatchFunctionToString(),this._restoreBuiltIns(),this._restoreConsole(),Error.stackTraceLimit=this._originalErrorStackTraceLimit,this._isRavenInstalled=!1,this},_promiseRejectionHandler:function(t){this._logDebug('debug','Raven caught unhandled promise rejection:',t),this.captureException(t.reason,{mechanism:{type:'onunhandledrejection',handled:!1}})},_attachPromiseRejectionHandler:function(){return this._promiseRejectionHandler=this._promiseRejectionHandler.bind(this),z.addEventListener&&z.addEventListener('unhandledrejection',this._promiseRejectionHandler),this},_detachPromiseRejectionHandler:function(){return z.removeEventListener&&z.removeEventListener('unhandledrejection',this._promiseRejectionHandler),this},captureException:function(n,s){if(s=x({trimHeadFrames:0},s||{}),c(n)&&n.error)n=n.error;else{if(u(n)||h(n)){var o=n.name||(u(n)?'DOMError':'DOMException'),l=n.message?o+': '+n.message:o;return this.captureMessage(l,x(s,{stacktrace:!0,trimHeadFrames:s.trimHeadFrames+1}))}if(p(n))n=n;else{if(!f(n))return this.captureMessage(n,x(s,{stacktrace:!0,trimHeadFrames:s.trimHeadFrames+1}));s=this._getCaptureExceptionOptionsFromPlainObject(s,n),n=new Error(s.message)}}this._lastCapturedException=n;try{var _=t.computeStackTrace(n);this._handleStackInfo(_,s)}catch(t){if(n!==t)throw t}return this},_getCaptureExceptionOptionsFromPlainObject:function(t,n){var o=Object.keys(n).sort(),l=x(t,{message:'Non-Error exception captured with keys: '+I(o),fingerprint:[s(o)],extra:t.extra||{}});return l.extra.__serialized__=M(n),l},captureMessage:function(n,s){if(!this._globalOptions.ignoreErrors.test||!this._globalOptions.ignoreErrors.test(n)){var o,l=x({message:n+=''},s=s||{});try{throw new Error(n)}catch(t){o=t}o.name=null;var c=t.computeStackTrace(o),u=E(c.stack)&&c.stack[1];u&&'Raven.captureException'===u.func&&(u=c.stack[2]);var h=u&&u.url||'';if((!this._globalOptions.ignoreUrls.test||!this._globalOptions.ignoreUrls.test(h))&&(!this._globalOptions.whitelistUrls.test||this._globalOptions.whitelistUrls.test(h))){if(this._globalOptions.stacktrace||s.stacktrace||''===l.message){l.fingerprint=null==l.fingerprint?n:l.fingerprint,(s=x({trimHeadFrames:0},s)).trimHeadFrames+=1;var p=this._prepareFrames(c,s);l.stacktrace={frames:p.reverse()}}return l.fingerprint&&(l.fingerprint=E(l.fingerprint)?l.fingerprint:[l.fingerprint]),this._send(l),this}}},captureBreadcrumb:function(t){var n=x({timestamp:X()/1e3},t);if(b(this._globalOptions.breadcrumbCallback)){var s=this._globalOptions.breadcrumbCallback(n);if(_(s)&&!k(s))n=s;else if(!1===s)return this}return this._breadcrumbs.push(n),this._breadcrumbs.length>this._globalOptions.maxBreadcrumbs&&this._breadcrumbs.shift(),this},addPlugin:function(t){var n=[].slice.call(arguments,1);return this._plugins.push([t,n]),this._isRavenInstalled&&this._drainPlugins(),this},setUserContext:function(t){return this._globalContext.user=t,this},setExtraContext:function(t){return this._mergeContext('extra',t),this},setTagsContext:function(t){return this._mergeContext('tags',t),this},clearContext:function(){return this._globalContext={},this},getContext:function(){return JSON.parse(n(this._globalContext))},setEnvironment:function(t){return this._globalOptions.environment=t,this},setRelease:function(t){return this._globalOptions.release=t,this},setDataCallback:function(t){var n=this._globalOptions.dataCallback;return this._globalOptions.dataCallback=G(n,t),this},setBreadcrumbCallback:function(t){var n=this._globalOptions.breadcrumbCallback;return this._globalOptions.breadcrumbCallback=G(n,t),this},setShouldSendCallback:function(t){var n=this._globalOptions.shouldSendCallback;return this._globalOptions.shouldSendCallback=G(n,t),this},setTransport:function(t){return this._globalOptions.transport=t,this},lastException:function(){return this._lastCapturedException},lastEventId:function(){return this._lastEventId},isSetup:function(){return!!this._hasJSON&&(!!this._globalServer||(this.ravenNotConfiguredError||(this.ravenNotConfiguredError=!0,this._logDebug('error','Error: Raven has not been configured.')),!1))},afterLoad:function(){var t=z.RavenConfig;t&&this.config(t.dsn,t.config).install()},showReportDialog:function(t){if(W){if(!(t=x({eventId:this.lastEventId(),dsn:this._dsn,user:this._globalContext.user||{}},t)).eventId)throw new o('Missing eventId');if(!t.dsn)throw new o('Missing DSN');var n=encodeURIComponent,s=[];for(var l in t)if('user'===l){var c=t.user;c.name&&s.push('name='+n(c.name)),c.email&&s.push('email='+n(c.email))}else s.push(n(l)+'='+n(t[l]));var u=this._getGlobalServer(this._parseDSN(t.dsn)),h=W.createElement('script');h.async=!0,h.src=u+'/api/embed/error-page/?'+s.join('&'),(W.head||W.body).appendChild(h)}},_ignoreNextOnError:function(){var t=this;this._ignoreOnError+=1,setTimeout(function(){t._ignoreOnError-=1})},_triggerEvent:function(t,n){var s,o;if(this._hasDocument){for(o in n=n||{},t='raven'+t.substr(0,1).toUpperCase()+t.substr(1),W.createEvent?(s=W.createEvent('HTMLEvents')).initEvent(t,!0,!0):(s=W.createEventObject()).eventType=t,n)C(n,o)&&(s[o]=n[o]);if(W.createEvent)W.dispatchEvent(s);else try{W.fireEvent('on'+s.eventType.toLowerCase(),s)}catch(t){}}},_breadcrumbEventHandler:function(t){var n=this;return function(s){if(n._keypressTimeout=null,n._lastCapturedEvent!==s){var o;n._lastCapturedEvent=s;try{o=H(s.target)}catch(t){o=''}n.captureBreadcrumb({category:'ui.'+t,message:o})}}},_keypressEventHandler:function(){var t=this;return function(n){var s;try{s=n.target}catch(t){return}var o=s&&s.tagName;if(o&&('INPUT'===o||'TEXTAREA'===o||s.isContentEditable)){var l=t._keypressTimeout;l||t._breadcrumbEventHandler('input')(n),clearTimeout(l),t._keypressTimeout=setTimeout(function(){t._keypressTimeout=null},1e3)}}},_captureUrlChange:function(t,n){var s=L(this._location.href),o=L(n),l=L(t);this._lastHref=n,s.protocol===o.protocol&&s.host===o.host&&(n=o.relative),s.protocol===l.protocol&&s.host===l.host&&(t=l.relative),this.captureBreadcrumb({category:'navigation',data:{to:n,from:t}})},_patchFunctionToString:function(){var t=this;t._originalFunctionToString=Function.prototype.toString,Function.prototype.toString=function(){return'function'==typeof this&&this.__raven__?t._originalFunctionToString.apply(this.__orig__,arguments):t._originalFunctionToString.apply(this,arguments)}},_unpatchFunctionToString:function(){this._originalFunctionToString&&(Function.prototype.toString=this._originalFunctionToString)},_instrumentTryCatch:function(){var t=this,n=t._wrappedBuiltIns;function s(n){return function(s,o){for(var l=new Array(arguments.length),c=0;c'}}},u)),n.apply?n.apply(this,l):n(l[0],l[1])}}var o=this._globalOptions.autoBreadcrumbs;function l(s){var l=z[s]&&z[s].prototype;l&&l.hasOwnProperty&&l.hasOwnProperty('addEventListener')&&(P(l,'addEventListener',function(n){return function(l,c,u,h){try{c&&c.handleEvent&&(c.handleEvent=t.wrap({mechanism:{type:'instrument',data:{target:s,function:'handleEvent',handler:c&&c.name||''}}},c.handleEvent))}catch(t){}var p,_,f;return o&&o.dom&&('EventTarget'===s||'Node'===s)&&(_=t._breadcrumbEventHandler('click'),f=t._keypressEventHandler(),p=function(t){if(t){var n;try{n=t.type}catch(t){return}return'click'===n?_(t):'keypress'===n?f(t):void 0}}),n.call(this,l,t.wrap({mechanism:{type:'instrument',data:{target:s,function:'addEventListener',handler:c&&c.name||''}}},c,p),u,h)}},n),P(l,'removeEventListener',function(t){return function(n,s,o,l){try{s=s&&(s.__raven_wrapper__?s.__raven_wrapper__:s)}catch(t){}return t.call(this,n,s,o,l)}},n))}P(z,'setTimeout',s,n),P(z,'setInterval',s,n),z.requestAnimationFrame&&P(z,'requestAnimationFrame',function(n){return function(s){return n(t.wrap({mechanism:{type:'instrument',data:{function:'requestAnimationFrame',handler:n&&n.name||''}}},s))}},n);for(var c=['EventTarget','Window','Node','ApplicationCache','AudioTrackList','ChannelMergerNode','CryptoOperation','EventSource','FileReader','HTMLUnknownElement','IDBDatabase','IDBRequest','IDBTransaction','KeyOperation','MediaController','MessagePort','ModalWindow','Notification','SVGElementInstance','Screen','TextTrack','TextTrackCue','TextTrackList','WebSocket','WebSocketWorker','Worker','XMLHttpRequest','XMLHttpRequestEventTarget','XMLHttpRequestUpload'],u=0;u'}}},s)})}if(n.xhr&&'XMLHttpRequest'in z){var l=z.XMLHttpRequest&&z.XMLHttpRequest.prototype;P(l,'open',function(n){return function(s,o){return y(o)&&-1===o.indexOf(t._globalKey)&&(this.__raven_xhr={method:s,url:o,status_code:null}),n.apply(this,arguments)}},s),P(l,'send',function(n){return function(){var s=this;function l(){if(s.__raven_xhr&&4===s.readyState){try{s.__raven_xhr.status_code=s.status}catch(t){}t.captureBreadcrumb({type:'http',category:'xhr',data:s.__raven_xhr})}}for(var c=['onload','onerror','onprogress'],u=0;u'}}},n,l)}):s.onreadystatechange=l,n.apply(this,arguments)}},s)}n.xhr&&F()&&P(z,'fetch',function(n){return function(){for(var s=new Array(arguments.length),o=0;o2?arguments[2]:void 0;return s&&t._captureUrlChange(t._lastHref,s+''),n.apply(this,arguments)}};P(z.history,'pushState',p,s),P(z.history,'replaceState',p,s)}if(n.console&&'console'in z&&console.log){var _=function(n,s){t.captureBreadcrumb({message:n,level:s.level,category:'console'})};S(['debug','info','warn','error','log'],function(t,n){q(console,n,_)})}},_restoreBuiltIns:function(){for(var t;this._wrappedBuiltIns.length;){var n=(t=this._wrappedBuiltIns.shift())[0],s=t[1],o=t[2];n[s]=o}},_restoreConsole:function(){for(var t in this._originalConsoleMethods)this._originalConsole[t]=this._originalConsoleMethods[t]},_drainPlugins:function(){var t=this;S(this._plugins,function(n,s){var o=s[0],l=s[1];o.apply(t,[t].concat(l))})},_parseDSN:function(t){var n=K.exec(t),s={},l=7;try{for(;l--;)s[A[l]]=n[l]||''}catch(n){throw new o('Invalid DSN: '+t)}if(s.pass&&!this._globalOptions.allowSecretKey)throw new o('Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key');return s},_getGlobalServer:function(t){var n='//'+t.host+(t.port?':'+t.port:'');return t.protocol&&(n=t.protocol+':'+n),n},_handleOnErrorStackInfo:function(t,n){(n=n||{}).mechanism=n.mechanism||{type:'onerror',handled:!1},this._ignoreOnError||this._handleStackInfo(t,n)},_handleStackInfo:function(t,n){var s=this._prepareFrames(t,n);this._triggerEvent('handle',{stackInfo:t,options:n}),this._processException(t.name,t.message,t.url,t.lineno,s,n)},_prepareFrames:function(t,n){var s=this,o=[];if(t.stack&&t.stack.length&&(S(t.stack,function(n,l){var c=s._normalizeFrame(l,t.url);c&&o.push(c)}),n&&n.trimHeadFrames))for(var l=0;l0&&(t.breadcrumbs={values:[].slice.call(this._breadcrumbs,0)}),this._globalContext.user&&(t.user=this._globalContext.user),n.environment&&(t.environment=n.environment),n.release&&(t.release=n.release),n.serverName&&(t.server_name=n.serverName),t=this._sanitizeData(t),Object.keys(t).forEach(function(n){(null==t[n]||''===t[n]||k(t[n]))&&delete t[n]}),b(n.dataCallback)&&(t=n.dataCallback(t)||t),t&&!k(t)&&(b(n.shouldSendCallback)&&!n.shouldSendCallback(t)||(this._shouldBackoff()?this._logDebug('warn','Raven dropped error due to backoff: ',t):'number'==typeof n.sampleRate?Math.random()=0;--t)v[t]===n&&v.splice(t,1)},S.uninstall=function(){p&&(l.onerror=f,p=!1,f=void 0),v=[]},S})(),t.computeStackTrace=(function(){function n(n){if(void 0!==n.stack&&n.stack){for(var t,l,c,o=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|native|eval|webpack||[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,f=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx(?:-web)|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,p=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,v=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,h=/\((\S*)(?::(\d+))(?::(\d+))\)/,b=n.stack.split('\n'),k=[],x=(/^(.*) is undefined$/.exec(n.message),0),w=b.length;x eval')>-1&&(t=v.exec(l[3]))?(l[3]=t[1],l[4]=t[2],l[5]=null):0!==x||l[5]||void 0===n.columnNumber||(k[0].column=n.columnNumber+1),c={url:l[3],func:l[1]||u,args:l[2]?l[2].split(','):[],line:l[4]?+l[4]:null,column:l[5]?+l[5]:null}}if(!c.func&&c.line&&(c.func=u),c.url&&'blob:'===c.url.substr(0,5)){var S=new XMLHttpRequest;if(S.open('GET',c.url,!1),S.send(null),200===S.status){var E=S.responseText||'',T=(E=E.slice(-300)).match(/\/\/# sourceMappingURL=(.*)$/);if(T){var F=T[1];'~'===F.charAt(0)&&(F=('undefined'==typeof document||null==document.location?'':document.location.origin?document.location.origin:document.location.protocol+'//'+document.location.hostname+(document.location.port?':'+document.location.port:''))+F.slice(1)),c.url=F.slice(0,-4)}}}k.push(c)}return k.length?{name:n.name,message:n.message,url:s(),stack:k}:null}}function l(n,t,l,c){var o={url:t,line:l};if(o.url&&o.line){if(n.incomplete=!1,o.func||(o.func=u),n.stack.length>0&&n.stack[0].url===o.url){if(n.stack[0].line===o.line)return!1;if(!n.stack[0].line&&n.stack[0].func===o.func)return n.stack[0].line=o.line,!1}return n.stack.unshift(o),n.partial=!0,!0}return n.incomplete=!0,!1}function c(n,f){for(var p,v,h=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,b=[],k={},x=!1,w=c.caller;w&&!x;w=w.caller)if(w!==o&&w!==t.report){if(v={url:null,func:u,line:null,column:null},w.name?v.func=w.name:(p=h.exec(w.toString()))&&(v.func=p[1]),void 0===v.func)try{v.func=p.input.substring(0,p.input.indexOf('{'))}catch(n){}k[''+w]?x=!0:k[''+w]=!0,b.push(v)}f&&b.splice(0,f);var y={name:n.name,message:n.message,url:s(),stack:b};return l(y,n.sourceURL||n.fileName,n.line||n.lineNumber,n.message||n.description),y}function o(l,u){var o=null;u=null==u?0:+u;try{if(o=n(l))return o}catch(n){if(t.debug)throw n}try{if(o=c(l,u+1))return o}catch(n){if(t.debug)throw n}return{name:l.name,message:l.message,url:s()}}return o.augmentStackTraceWithInitialElement=l,o.computeStackTraceFromStackProp=n,o})(),m.exports=t},397,[398]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n='undefined'!=typeof window?window:void 0!==g?g:'undefined'!=typeof self?self:{};function o(t){return void 0===t}function u(t){return'[object Object]'===Object.prototype.toString.call(t)}function c(t){return'[object String]'===Object.prototype.toString.call(t)}function f(t){return'[object Array]'===Object.prototype.toString.call(t)}function s(){if(!('fetch'in n))return!1;try{return new Headers,new Request(''),new Response,!0}catch(t){return!1}}function l(t,n){var u,c;if(o(t.length))for(u in t)y(t,u)&&n.call(null,u,t[u]);else if(c=t.length)for(u=0;u ".length;t&&u++<5&&!('html'===(n=b(t))||u>1&&c+o.length*f+n.length>=80);)o.push(n),c+=n.length,t=t.parentNode;return o.reverse().join(" > ")},htmlElementAsString:b,isSameException:function(t,n){return!v(t,n)&&(t=t.values[0],n=n.values[0],t.type===n.type&&t.value===n.value&&(u=t.stacktrace,c=n.stacktrace,(!o(u)||!o(c))&&j(t.stacktrace,n.stacktrace)));var u,c},isSameStacktrace:j,parseUrl:function(t){if('string'!=typeof t)return{};var n=t.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/),o=n[6]||'',u=n[8]||'';return{protocol:n[2],host:n[4],path:n[5],relative:n[5]+o+u}},fill:function(t,n,o,u){if(null!=t){var c=t[n];t[n]=o(c),t[n].__raven__=!0,t[n].__orig__=c,u&&u.push([t,n,c])}},safeJoin:function(t,n){if(!f(t))return'';for(var o=[],u=0;uf?n(o,c-1):l},serializeKeysForMessage:function(t,n){if('number'==typeof t||'string'==typeof t)return t.toString();if(!Array.isArray(t))return'';if(0===(t=t.filter(function(t){return'string'==typeof t})).length)return'[object has no keys]';if(n='number'!=typeof n?E:n,t[0].length>=n)return t[0];for(var o=t.length;o>0;o--){var u=t.slice(0,o).join(', ');if(!(u.length>n))return o===t.length?u:u+"\u2026"}return''},sanitize:function(n,o){if(!f(o)||f(o)&&0===o.length)return n;var c,s=h(o),l='********';try{c=JSON.parse(t(n))}catch(t){return n}return(function t(n){return f(n)?n.map(function(n){return t(n)}):u(n)?Object.keys(n).reduce(function(o,u){return s.test(u)?o[u]=l:o[u]=t(n[u]),o},{}):n})(c)}}},398,[399]); -__d(function(g,r,i,a,m,e,d){function n(n,t){for(var s=0;s0){var h=n(c,this);~h?c.splice(h+1):c.push(this),~h?l.splice(h,1/0,o):l.push(o),~n(c,f)&&(f=u.call(this,o,f))}else c.push(f);return null==s?f instanceof Error?t(f):f:s.call(this,o,f)}}(m.exports=function(n,t,u,c){return JSON.stringify(n,s(t,c),u)}).getSerialize=s},399,[]); -__d(function(g,r,i,a,m,e,d){function n(n,t){var o=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(o>>16)<<16|65535&o}function t(t,o,u,c,f,h){return n((v=n(n(o,t),n(c,h)))<<(l=f)|v>>>32-l,u);var v,l}function o(n,o,u,c,f,h,v){return t(o&u|~o&c,n,o,f,h,v)}function u(n,o,u,c,f,h,v){return t(o&c|u&~c,n,o,f,h,v)}function c(n,o,u,c,f,h,v){return t(o^u^c,n,o,f,h,v)}function f(n,o,u,c,f,h,v){return t(u^(o|~c),n,o,f,h,v)}function h(t,h){var v,l,C,A,p;t[h>>5]|=128<>>9<<4)]=h;var b=1732584193,s=-271733879,_=-1732584194,x=271733878;for(v=0;v>5]>>>t%32&255);return o}function l(n){var t,o=[];for(o[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(c=h(c,8*n.length)),o=0;o<16;o+=1)f[o]=909522486^c[o],C[o]=1549556828^c[o];return u=h(f.concat(l(t)),512+8*t.length),v(h(C.concat(u),640))}function p(n){var t,o,u='';for(o=0;o>>4&15)+"0123456789abcdef".charAt(15&t);return u}function b(n){return unescape(encodeURIComponent(n))}function s(n){return C(b(n))}function _(n,t){return A(b(n),b(t))}m.exports=function(n,t,o){return t?o?_(t,n):p(_(t,n)):o?s(n):p(s(n))}},400,[]); -__d(function(g,r,i,a,m,e,d){function o(o){this.name='RavenConfigError',this.message=o}o.prototype=new Error,o.prototype.constructor=o,m.exports=o},401,[]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);m.exports={wrapMethod:function(o,s,t){var l=o[s],c=o;if(s in o){var f='warn'===s?'warning':s;o[s]=function(){var o=[].slice.call(arguments),p=n.safeJoin(o,' '),u={level:f,logger:'console',extra:{arguments:o}};'assert'===s?!1===o[0]&&(p='Assertion failed: '+(n.safeJoin(o.slice(1),' ')||'console.assert'),u.extra.arguments=o.slice(1),t&&t(p,u)):t&&t(p,u),l&&Function.prototype.apply.call(l,c,o)}}}}},402,[398]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]);function o(t){return function(n,o){var l=t(n)||n;return o&&o(l)||l}}var l=/^.*\/[^\.]+(\.app|CodePush|.*(?=\/))/,c='--rn-fatal--';function s(t,n){return'app://'+t.replace(/^file\:\/\//,'').replace(n,'')}function u(t){var n=[];for(var o in t)({}).hasOwnProperty.call(t,o)&&n.push(encodeURIComponent(o)+'='+encodeURIComponent(t[o]));return n.join('&')}function f(t,l,s){l=l||{},t.setDataCallback(o(function(t){t=f._normalizeData(t,l.pathStrip),s&&s(t)})),!1===l.nativeClientAvailable&&(t.setTransport(f._transport),f._restorePayload().then(function(n){l.onInitialize&&l.onInitialize(n),n&&t._sendProcessedPayload(n,function(t){t||f._clearPayload()})}).catch(function(){}),t.setShouldSendCallback(function(t,n){if(!(c in t))return!n||n.call(this,t);var o=t[c];return delete t[c],f._persistPayload(t).then(function(){return p(o,!0),u=!1,null}).catch(function(){}),!1}));var u=!1,p=ErrorUtils.getGlobalHandler&&ErrorUtils.getGlobalHandler()||ErrorUtils._globalHandler;if(l.handlePromiseRejection){var v=r(d[2]);v.disable(),v.enable({allRejections:!0,onUnhandled:function(n,o){var l={timestamp:new Date/1e3,type:'Unhandled Promise Rejection'};t.captureException(o,l)},onHandled:function(){}})}ErrorUtils.setGlobalHandler(function(o,s){var f={timestamp:new Date/1e3};o=arguments[0];if(s&&(f.level='fatal'),s&&!g.__DEV__){if(u)return void console.log('Encountered multiple fatals in a row. The latest:',o);u=!0,f[c]=o}t.captureException(o,f),l.nativeClientAvailable?n.Sentry._setInternalEventStored(function(){p(o,s)}):p(o,s)})}f._persistPayload=function(t){return r(d[0]).AsyncStorage.setItem("--raven-js-global-error-payload--",JSON.stringify(t)).catch(function(){return null})},f._restorePayload=function(){var n=r(d[0]).AsyncStorage,o=n.getItem("--raven-js-global-error-payload--").then(function(t){return JSON.parse(t)}).catch(function(){return null}),l=t.NativeModules.AsyncSQLiteDBStorage,c=t.NativeModules.AsyncRocksDBStorage,s=t.NativeModules.AsyncLocalStorage;return(c||l||s).multiGet&&n.flushGetRequests(),o},f._clearPayload=function(){return r(d[0]).AsyncStorage.removeItem("--raven-js-global-error-payload--").catch(function(){return null})},f._transport=function(t){var n=new XMLHttpRequest;n.onreadystatechange=function(o){if(4===n.readyState)if(200===n.status)t.onSuccess&&t.onSuccess();else if(t.onError){var l=new Error('Sentry error code: '+n.status);l.request=n,t.onError(l)}},n.open('POST',t.url+'?'+u(t.auth)),n.setRequestHeader('Content-type','application/json'),n.setRequestHeader('Origin','react-native://'),n.send(JSON.stringify(t.data))},f._normalizeData=function(t,n){n||(n=l),t.culprit&&(t.culprit=s(t.culprit,n));var o=t.stacktrace||t.exception&&t.exception.values[0].stacktrace;return o&&o.frames.forEach(function(t){'[native code]'!==t.filename&&(t.filename=s(t.filename,n))}),t},m.exports=f},403,[3,392,404]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),o=[ReferenceError,TypeError,RangeError],l=!1;function s(){l=!1,n._37=null,n._87=null}function t(n,o){console.warn('Possible Unhandled Promise Rejection (id: '+n+'):'),((o&&(o.stack||o))+'').split('\n').forEach(function(n){console.warn(' '+n)})}function c(n,o){return o.some(function(o){return n instanceof o})}e.disable=s,e.enable=function(u){u=u||{},l&&s();l=!0;var f=0,_=0,h={};function p(n){(u.allRejections||c(h[n].error,u.whitelist||o))&&(h[n].displayId=_++,u.onUnhandled?(h[n].logged=!0,u.onUnhandled(h[n].displayId,h[n].error)):(h[n].logged=!0,t(h[n].displayId,h[n].error)))}function y(n){h[n].logged&&(u.onHandled?u.onHandled(h[n].displayId,h[n].error):h[n].onUnhandled||(console.warn('Promise Rejection Handled (id: '+h[n].displayId+'):'),console.warn(' This means you can ignore any previous messages of the form "Possible Unhandled Promise Rejection" with id '+h[n].displayId+'.')))}n._37=function(n){2===n._65&&h[n._51]&&(h[n._51].logged?y(n._51):clearTimeout(h[n._51].timeout),delete h[n._51])},n._87=function(n,l){0===n._40&&(n._51=f++,h[n._51]={displayId:null,error:l,timeout:setTimeout(p.bind(null,n._51),c(l,o)?100:2e3),logged:!1})}}},404,[34]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.NativeClient=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),l=r(d[5]),c=l.NativeModules.RNSentry,v=l.NativeModules.RNSentryEventEmitter,M=['AccessibilityManager','ActionSheetManager','AlertManager','AppState','AsyncLocalStorage','Clipboard','DevLoadingView','DevMenu','ExceptionsManager','I18nManager','ImageEditingManager','ImageStoreManager','ImageViewManager','IOSConstants','JSCExecutor','JSCSamplingProfiler','KeyboardObserver','LinkingManager','LocationObserver','NativeAnimatedModule','NavigatorManager','NetInfo','Networking','RedBox','ScrollViewManager','SettingsManager','SourceCode','StatusBarManager','Timing','UIManager','Vibration','WebSocketModule','WebViewManager'],f=(function(){function t(s,M){var f=this;if((0,u.default)(this,t),this._activateStacktraceMerging=function(){return o.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",c.activateStacktraceMerging().then(function(t){if(!f._activatedMerging){f._ignoredModules={};var n=r(d[6]);if('undefined'!=typeof __fbBatchedBridgeConfig)__fbBatchedBridgeConfig.remoteModuleConfig.forEach(function(t,n){null!==t&&f._addIgnoredModule(n,t[0])});else if(n._remoteModuleTable)for(var o in n._remoteModuleTable)if(n._remoteModuleTable.hasOwnProperty(o)){var u=n._remoteModuleTable[o];f._addIgnoredModule(o,u)}f._activatedMerging=!0,f._overwriteEnqueueNativeCall()}}).catch(function(t){console.log(t)}));case 1:case"end":return t.stop()}})},s.constructor!==String)throw new Error('Sentry: A DSN must be provided');if(!c)throw new Error('Sentry: There is no native client installed.');(this._dsn=s,this._activatedMerging=!1,this.options={ignoreModulesExclude:[],ignoreModulesInclude:[],deactivateStacktraceMerging:!0},(0,n.default)(this.options,M),c.startWithDsnString(this._dsn,this.options),!1===this.options.deactivateStacktraceMerging)&&(this._activateStacktraceMerging(),new l.NativeEventEmitter(v).addListener(v.MODULE_TABLE,function(t){try{f._updateIgnoredModules(JSON.parse(t.payload))}catch(t){}}));c.setLogLevel(M.logLevel)}return(0,s.default)(t,[{key:"nativeCrash",value:function(){c.crash()}},{key:"captureEvent",value:function(t){c.captureEvent(t)}},{key:"setUserContext",value:function(t){c.setUser(t)}},{key:"setTagsContext",value:function(t){c.setTags(t)}},{key:"setExtraContext",value:function(t){c.setExtra(t)}},{key:"addExtraContext",value:function(t,n){c.addExtra(t,n)}},{key:"captureBreadcrumb",value:function(t){c.captureBreadcrumb(t)}},{key:"clearContext",value:function(){c.clearContext()}},{key:"_updateIgnoredModules",value:function(t){for(var n=Object.values(t),o=Object.keys(t),u=0;u=0||this.options.ignoreModulesInclude.indexOf(n)>=0)&&(this._ignoredModules[t]=!0)}},{key:"_overwriteEnqueueNativeCall",value:function(){var t=r(d[6]),n=t.enqueueNativeCall,o=this;t.enqueueNativeCall=function(t,u,s,l,c){return o._ignoredModules[t]?n.apply(this,arguments):(s.push({__sentry_stack:(new Error).stack,__sentry_moduleID:t}),n.apply(this,arguments))}}}]),t})();e.NativeClient=f},405,[1,60,393,140,141,3,19]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=r(d[1]),u=t(r(d[2])),f=t(r(d[3])),o=t(r(d[4])),n=t(r(d[5])),s=r(d[6]),y=t(r(d[7])),C=t(r(d[8])),v=t(r(d[9])),w=t(r(d[10])),F=t(r(d[11])),L=t(r(d[12])),P=t(r(d[13])),_=t(r(d[14])),c=t(r(d[15])),k=t(r(d[16])),A=t(r(d[17])),M=t(r(d[18])),S={Artist:F.default,Artwork:l.ArtworkContainer,BidFlow:L.default,CitySavedList:o.default,CityBMWList:u.default,CitySectionList:n.default,Conversation:P.default,CityFairList:f.default,Gene:_.default,Fair:y.default,Home:C.default,Inbox:c.default,Inquiry:k.default,MyProfile:v.default,Partner:s.PartnerContainer,RegistrationFlow:A.default,Show:w.default,WorksForYou:M.default};e.default=S},406,[1,407,1302,1316,1319,1322,1325,1362,1469,1731,1736,1529,1560,1632,1675,1692,1689,1622,1486]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ArtworkContainer",{enumerable:!0,get:function(){return n.ArtworkContainer}}),Object.defineProperty(e,"ArtworkRenderer",{enumerable:!0,get:function(){return n.ArtworkRenderer}});var n=r(d[0])},407,[408]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.ArtworkRenderer=e.ArtworkContainer=e.Artwork=void 0;var n,l,o,u,c=t(r(d[1])),s=t(r(d[2])),f=t(r(d[3])),h=t(r(d[4])),p=t(r(d[5])),k=t(r(d[6])),w=t(r(d[7])),v=t(r(d[8])),b=t(r(d[9])),y=r(d[10]),E=r(d[11]),A=r(d[12]),x=r(d[13]),F=r(d[14]),T=r(d[15]),C=r(d[16]),R=t(r(d[17])),_=r(d[18]),P=r(d[19]),S=r(d[20]),D=r(d[21]),I=r(d[22]),V=r(d[23]),W=r(d[24]),B=r(d[25]),H=r(d[26]),O=r(d[27]),q=r(d[28]),M=r(d[29]),Q=(0,T.screenTrack)(function(t){return{context_screen:T.Schema.PageNames.ArtworkPage,context_screen_owner_type:T.Schema.OwnerEntityTypes.Artwork,context_screen_owner_slug:t.artworkAboveTheFold.slug,context_screen_owner_id:t.artworkAboveTheFold.internalID,availability:t.artworkAboveTheFold.availability,acquireable:t.artworkAboveTheFold.is_acquireable,inquireable:t.artworkAboveTheFold.is_inquireable,offerable:t.artworkAboveTheFold.is_offerable,biddable:t.artworkAboveTheFold.is_biddable}})(u=(function(t){function o(){var t,l;(0,p.default)(this,o);for(var u=arguments.length,c=new Array(u),s=0;s0)},l.onRefresh=function(){return h.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(!l.state.refreshing){t.next=2;break}return t.abrupt("return");case 2:return l.setState({refreshing:!0}),t.prev=3,t.next=6,h.default.awrap(l.loadFullArtwork());case 6:t.next=11;break;case 8:t.prev=8,t.t0=t.catch(3),P.Sentry.captureMessage("failed to refresh artwork",{slug:l.props.artworkAboveTheFold.slug});case 11:l.setState({refreshing:!1});case 12:case"end":return t.stop()}},null,null,[[3,8]])},l.markArtworkAsRecentlyViewed=function(){(0,S.commitMutation)(l.props.relay.environment,{mutation:n||(n=function(){var t=r(d[30]);return t.hash&&"4ddb094d53cb9316e9302947e1ff20c3"!==t.hash&&console.error("The definition of 'ArtworkMarkAsRecentlyViewedQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."),r(d[30])}),variables:{input:{artwork_id:l.props.artworkAboveTheFold.slug}}})},l}return(0,b.default)(o,t),(0,k.default)(o,[{key:"componentDidMount",value:function(){this.markArtworkAsRecentlyViewed(),this.loadFullArtwork()}},{key:"componentDidUpdate",value:function(t){var n=this;this.props.isVisible&&!t.isVisible&&this.loadFullArtwork().then(function(){n.markArtworkAsRecentlyViewed()})}},{key:"sections",value:function(){var t=this.state.artworkFull,n=this.props.artworkAboveTheFold,l=[];if(l.push({key:"header",element:R.default.createElement(W.ArtworkHeaderFragmentContainer,{artwork:n}),excludePadding:!0}),l.push({key:"commercialInformation",element:R.default.createElement(H.CommercialInformationFragmentContainer,{artwork:n})}),!t)return l.push({key:"belowTheFoldPlaceholder",element:R.default.createElement(G,null)}),l;var o=t.artist,u=t.context;return(t.description||t.additional_information)&&l.push({key:"aboutWork",element:R.default.createElement(I.AboutWorkFragmentContainer,{artwork:t})}),this.shouldRenderDetails()&&l.push({key:"artworkDetails",element:R.default.createElement(V.ArtworkDetailsFragmentContainer,{artwork:t})}),(t.provenance||t.exhibition_history||t.literature)&&l.push({key:"history",element:R.default.createElement(B.ArtworkHistoryFragmentContainer,{artwork:t})}),o&&o.biography_blurb&&l.push({key:"aboutArtist",element:R.default.createElement(D.AboutArtistFragmentContainer,{artwork:t})}),this.shouldRenderPartner()&&l.push({key:"partnerCard",element:R.default.createElement(M.PartnerCardFragmentContainer,{artwork:t})}),u&&"Sale"===u.__typename&&u.isAuction&&l.push({key:"contextCard",element:R.default.createElement(O.ContextCardFragmentContainer,{artwork:t})}),this.shouldRenderOtherWorks()&&l.push({key:"otherWorks",element:R.default.createElement(q.OtherWorksFragmentContainer,{artwork:t})}),l}},{key:"loadFullArtwork",value:function(){var t;return h.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,h.default.awrap((0,S.fetchQuery)(this.props.relay.environment,l||(l=function(){var t=r(d[31]);return t.hash&&"0104972b5f030fa8c5d5817132b2e140"!==t.hash&&console.error("The definition of 'ArtworkFullQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."),r(d[31])}),{artworkID:this.props.artworkAboveTheFold.internalID},{force:!0}));case 2:t=n.sent,this.setState({artworkFull:t.artwork});case 4:case"end":return n.stop()}},null,this)}},{key:"render",value:function(){return R.default.createElement(_.FlatList,{data:this.sections(),ItemSeparatorComponent:function(){return R.default.createElement(y.Box,{px:2,mx:2,my:3},R.default.createElement(y.Separator,null))},refreshControl:R.default.createElement(_.RefreshControl,{refreshing:this.state.refreshing,onRefresh:this.onRefresh}),contentInset:{bottom:40},renderItem:function(t){var n=t.item;return n.excludePadding?n.element:R.default.createElement(y.Box,{px:2},n.element)}})}}]),o})(R.default.Component))||u;e.Artwork=Q;var L=(0,S.createFragmentContainer)(Q,{artworkAboveTheFold:function(){var t=r(d[32]);return t.hash&&"09df973254733240758245f8a1ce5857"!==t.hash&&console.error("The definition of 'Artwork_artworkAboveTheFold' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."),r(d[32])}});e.ArtworkContainer=L;e.ArtworkRenderer=function(t){var n=t.artworkID,l=(0,f.default)(t,["artworkID"]);return R.default.createElement(E.RetryErrorBoundary,{render:function(t){var u=t.isRetry;return R.default.createElement(y.Theme,null,R.default.createElement(C.ProvideScreenDimensions,null,R.default.createElement(S.QueryRenderer,{environment:A.defaultEnvironment,query:o||(o=function(){var t=r(d[33]);return t.hash&&"4eafa95c9788af843b033b40a78a396f"!==t.hash&&console.error("The definition of 'ArtworkAboveTheFoldQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."),r(d[33])}),variables:{artworkID:n},cacheConfig:(0,s.default)({},u&&{force:!0}),render:(0,F.renderWithPlaceholder)({Container:L,initialProps:l,renderPlaceholder:function(){return R.default.createElement(z,null)}})})))}})};var z=function(t){(0,c.default)(t);var n=(0,C.useScreenDimensions)().width>=375?340:290;return R.default.createElement(_.View,{style:{flex:1,padding:(0,y.space)(2)}},R.default.createElement(x.PlaceholderBox,{height:n}),R.default.createElement(y.Spacer,{mb:2}),R.default.createElement(_.View,{style:{flexDirection:"row",justifyContent:"center"}},R.default.createElement(x.PlaceholderText,{width:50,marginHorizontal:(0,y.space)(1)}),R.default.createElement(x.PlaceholderText,{width:50,marginHorizontal:(0,y.space)(1)}),R.default.createElement(x.PlaceholderText,{width:50,marginHorizontal:(0,y.space)(1)})),R.default.createElement(y.Spacer,{mb:2}),R.default.createElement(x.PlaceholderText,{width:100}),R.default.createElement(y.Spacer,{mb:2}),R.default.createElement(_.View,{style:{width:130}},R.default.createElement(x.PlaceholderRaggedText,{numLines:4})),R.default.createElement(y.Spacer,{mb:3}),R.default.createElement(y.Separator,null),R.default.createElement(y.Spacer,{mb:3}),R.default.createElement(x.PlaceholderRaggedText,{numLines:3}),R.default.createElement(y.Spacer,{mb:2}),R.default.createElement(x.PlaceholderBox,{height:60}))},G=function(t){return(0,c.default)(t),R.default.createElement(x.ProvidePlaceholderContext,null,R.default.createElement(y.Separator,null),R.default.createElement(y.Spacer,{mb:3}),R.default.createElement(x.PlaceholderText,{width:60}),R.default.createElement(y.Spacer,{mb:2}),R.default.createElement(x.PlaceholderRaggedText,{numLines:4}),R.default.createElement(y.Spacer,{mb:3}),R.default.createElement(y.Separator,null),R.default.createElement(y.Spacer,{mb:3}),R.default.createElement(_.ActivityIndicator,null),R.default.createElement(y.Spacer,{mb:3}))}},408,[1,409,410,412,393,140,141,142,145,146,414,851,853,969,1031,1032,1156,57,3,391,1157,1180,1194,1196,1205,1245,1247,1281,1284,1294,1298,1299,1300,1301]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(null==n)throw new TypeError("Cannot destructure undefined")}},409,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n){for(var o=1;o=0||Object.prototype.propertyIsEnumerable.call(n,l)&&(b[l]=n[l])}return b}},412,[413]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n,t){if(null==n)return{};var f,u,o={},c=Object.keys(n);for(u=0;u=0||(o[f]=n[f]);return o}},413,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t={AllIcons:!0};e.AllIcons=void 0;var o=r(d[0]);Object.keys(o).forEach(function(n){"default"!==n&&"__esModule"!==n&&(Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return o[n]}}))});var n=r(d[1]);Object.keys(n).forEach(function(o){"default"!==o&&"__esModule"!==o&&(Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(e,o,{enumerable:!0,get:function(){return n[o]}}))});var c=(function(t){if(t&&t.__esModule)return t;var o={};if(null!=t)for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var c=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(t,n):{};c.get||c.set?Object.defineProperty(o,n,c):o[n]=t[n]}return o.default=t,o})(r(d[2]));Object.keys(c).forEach(function(o){"default"!==o&&"__esModule"!==o&&(Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(e,o,{enumerable:!0,get:function(){return c[o]}}))});var l=r(d[3]);Object.keys(l).forEach(function(o){"default"!==o&&"__esModule"!==o&&(Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(e,o,{enumerable:!0,get:function(){return l[o]}}))});var u=c;e.AllIcons=u},414,[415,468,567,420]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var c=r(d[3]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})});var o=r(d[4]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var f=r(d[5]);Object.keys(f).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}})});var l=r(d[6]);Object.keys(l).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return l[t]}})});var b=r(d[7]);Object.keys(b).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return b[t]}})});var _=r(d[8]);Object.keys(_).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return _[t]}})});var s=r(d[9]);Object.keys(s).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return s[t]}})});var j=r(d[10]);Object.keys(j).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return j[t]}})});var y=r(d[11]);Object.keys(y).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return y[t]}})});var O=r(d[12]);Object.keys(O).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return O[t]}})});var p=r(d[13]);Object.keys(p).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return p[t]}})});var v=r(d[14]);Object.keys(v).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return v[t]}})});var M=r(d[15]);Object.keys(M).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return M[t]}})});var P=r(d[16]);Object.keys(P).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return P[t]}})});var h=r(d[17]);Object.keys(h).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return h[t]}})});var k=r(d[18]);Object.keys(k).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return k[t]}})});var E=r(d[19]);Object.keys(E).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return E[t]}})});var q=r(d[20]);Object.keys(q).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return q[t]}})});var w=r(d[21]);Object.keys(w).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return w[t]}})});var x=r(d[22]);Object.keys(x).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return x[t]}})});var z=r(d[23]);Object.keys(z).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return z[t]}})});var A=r(d[24]);Object.keys(A).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return A[t]}})});var B=r(d[25]);Object.keys(B).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return B[t]}})});var C=r(d[26]);Object.keys(C).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return C[t]}})});var D=r(d[27]);Object.keys(D).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return D[t]}})});var F=r(d[28]);Object.keys(F).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return F[t]}})});var G=r(d[29]);Object.keys(G).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return G[t]}})});var H=r(d[30]);Object.keys(H).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return H[t]}})});var I=r(d[31]);Object.keys(I).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return I[t]}})});var J=r(d[32]);Object.keys(J).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return J[t]}})});var K=r(d[33]);Object.keys(K).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return K[t]}})});var L=r(d[34]);Object.keys(L).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return L[t]}})});var N=r(d[35]);Object.keys(N).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return N[t]}})});var Q=r(d[36]);Object.keys(Q).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Q[t]}})});var R=r(d[37]);Object.keys(R).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return R[t]}})});var S=r(d[38]);Object.keys(S).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return S[t]}})});var T=r(d[39]);Object.keys(T).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return T[t]}})});var U=r(d[40]);Object.keys(U).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return U[t]}})});var V=r(d[41]);Object.keys(V).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return V[t]}})});var W=r(d[42]);Object.keys(W).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return W[t]}})});var X=r(d[43]);Object.keys(X).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return X[t]}})});var Y=r(d[44]);Object.keys(Y).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Y[t]}})});var Z=r(d[45]);Object.keys(Z).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Z[t]}})});var $=r(d[46]);Object.keys($).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return $[t]}})});var ee=r(d[47]);Object.keys(ee).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ee[t]}})})},415,[416,460,462,465,472,474,485,487,489,491,493,495,497,499,454,501,503,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,481,546,548,550,552,554,556,558,563,565,457]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},416,[417]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Avatar=void 0;var t,n=(t=r(d[0]))&&t.__esModule?t:{default:t},s=r(d[1]),u=r(d[2]);function o(){return(o=Object.assign||function(t){for(var n=1;n4?"left":"center";return n.default.createElement(p,{width:b,height:b,justifyContent:x,alignItems:"center",size:o},n.default.createElement(c.Serif,{size:h,color:"black60",weight:"semibold",lineHeight:parseInt(b,10)},s))}return null};var p=(0,s.styledWrapper)(u.Flex)(o(),(0,l.color)("black10"),function(t){return z(t.size).diameter});e.InitialsHolder=p,p.displayName="InitialsHolder"},418,[57,419,424,454,457]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.color=void 0;var o=r(d[0]);e.color=function(t){return o.themeProps.colors[t]}},419,[420]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Theme=e.themeProps=e.breakpoints=void 0;var t,n=(t=r(d[0]))&&t.__esModule?t:{default:t},l=r(d[1]),o=r(d[2]),h=r(d[3]);var f={xl:1192,lg:1024,md:900,sm:768,xs:767};e.breakpoints=f;var c={borders:["1px solid","2px solid"],breakpoints:[f.sm,f.md,f.lg,f.xl],colors:{black100:"#000",black80:"#333",black60:"#666",black30:"#C2C2C2",black10:"#E5E5E5",black5:"#F8F8F8",purple100:"#6E1EFF",purple30:"#D3BBFF",purple5:"#F8F3FF",green100:"#0EDA83",red100:"#F7625A",yellow100:"#F1AF1B",yellow30:"#FAE7BA",yellow10:"#FDF7E8",white100:"#FFF"},fontFamily:o.fontFamily,mediaQueries:{xl:"(min-width: ".concat(f.xl,"px)"),lg:"(min-width: ".concat(f.lg,"px) and (max-width: ").concat(f.xl-1,"px)"),md:"(min-width: ".concat(f.md,"px) and (max-width: ").concat(f.lg-1,"px)"),sm:"(min-width: ".concat(f.sm,"px) and (max-width: ").concat(f.md-1,"px)"),xs:"(max-width: ".concat(f.sm-1,"px)"),hover:"not all and (pointer: coarse), not all and (-moz-touch-enabled: 1)"},grid:{breakpoints:f,container:{padding:0},row:{padding:0},col:{padding:0}},space:{.3:3,.5:5,1:10,2:20,3:30,4:40,6:60,9:90,12:120,18:180},typeSizes:{sans:{0:{fontSize:8,lineHeight:8},1:{fontSize:10,lineHeight:14},2:{fontSize:12,lineHeight:16},3:{fontSize:14,lineHeight:24},"3t":{fontSize:14,lineHeight:20},4:{fontSize:16,lineHeight:26},"4t":{fontSize:16,lineHeight:22},5:{fontSize:18,lineHeight:30},"5t":{fontSize:18,lineHeight:26},6:{fontSize:22,lineHeight:30},8:{fontSize:28,lineHeight:36},10:{fontSize:42,lineHeight:50},12:{fontSize:60,lineHeight:66},14:{fontSize:80,lineHeight:84},16:{fontSize:100,lineHeight:104}},serif:{1:{fontSize:12,lineHeight:16},2:{fontSize:14,lineHeight:18},3:{fontSize:16,lineHeight:24},"3t":{fontSize:16,lineHeight:20},4:{fontSize:18,lineHeight:26},"4t":{fontSize:18,lineHeight:22},5:{fontSize:22,lineHeight:32},"5t":{fontSize:22,lineHeight:28},6:{fontSize:26,lineHeight:32},8:{fontSize:32,lineHeight:38},10:{fontSize:44,lineHeight:50},12:{fontSize:60,lineHeight:70}},display:{2:{fontSize:10,lineHeight:12},"3t":{fontSize:12,lineHeight:16},"4t":{fontSize:14,lineHeight:18},"5t":{fontSize:16,lineHeight:20},6:{fontSize:18,lineHeight:22},8:{fontSize:22,lineHeight:24}}}};e.themeProps=c;var z=function(t){var o=t.children;if((0,l.isReactNative)())return o;var h=r(d[4]);return n.default.createElement(h.GridThemeProvider,{gridTheme:c.grid},o)},S=function(t){return n.default.createElement(h.ThemeProvider,{theme:c},n.default.createElement(z,null,t.children))};e.Theme=S,S.displayName="Theme"},420,[57,421,422,424,442]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isReactNative=function(){return"undefined"!=typeof navigator&&"ReactNative"===navigator.product}},421,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"fontFamily",{enumerable:!0,get:function(){return t.fontFamily}});var t=r(d[0])},422,[423]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.fontFamily=void 0;e.fontFamily={sans:{regular:"Unica77LL-Regular",italic:"Unica77LL-Italic",medium:"Unica77LL-Medium",mediumItalic:"Unica77LL-MediumItalic"},serif:{regular:"ReactNativeAGaramondPro-Regular",italic:"ReactNativeAGaramondPro-Italic",semibold:"ReactNativeAGaramondPro-Semibold"},display:{regular:"AvantGardeGothicITC"}}},423,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.styledWrapper=e.ThemeProvider=e.Image=e.Text=e.View=e.styled=void 0;var t=(function(t){if(t&&t.__esModule)return t;var o={};if(null!=t)for(var l in t)if(Object.prototype.hasOwnProperty.call(t,l)){var f=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(t,l):{};f.get||f.set?Object.defineProperty(o,l,f):o[l]=t[l]}return o.default=t,o})(r(d[0]));var o={Image:t.default.Image,Text:t.default.Text,View:t.default.View};e.styled=o;e.View="View";e.Text="Text";e.Image="Image";var l=t.ThemeProvider;e.ThemeProvider=l;var f=t.default;e.styledWrapper=f},424,[425]); -__d(function(e,t,r,n,o,i,s){'use strict';function a(e){return e&&'object'==typeof e&&'default'in e?e.default:e}Object.defineProperty(i,'__esModule',{value:!0});var c=a(t(s[0])),u=a(t(s[1])),h=t(s[2]),p=a(h),l=a(t(s[3])),f=t(s[4]),d=a(t(s[5])),v=a(t(s[6])),m=a(t(s[7])),y=a(t(s[8]));function w(e){for(var t,r=0|e.length,n=0|r,o=0;r>=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),r-=4,++o;switch(r){case 3:n^=(255&e.charCodeAt(o+2))<<16;case 2:n^=(255&e.charCodeAt(o+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(o)))+((1540483477*(n>>>16)&65535)<<16)}return((n=1540483477*(65535&(n^=n>>>13))+((1540483477*(n>>>16)&65535)<<16))^n>>>15)>>>0}function g(e){return e.displayName||e.name||'Component'}function b(e){return'function'==typeof e}var k="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e},C=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},S=(function(){function e(e,t){for(var r=0;r=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r},O=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},N=function(e){return'object'===(void 0===e?'undefined':k(e))&&e.constructor===Object};function E(e){return e&&'string'==typeof e.styledComponentId}var I='undefined'!=typeof process&&process.env.SC_ATTR||'data-styled',j='undefined'!=typeof window&&'HTMLElement'in window,T='boolean'==typeof SC_DISABLE_SPEEDY&&SC_DISABLE_SPEEDY||!1,P=(function(e){function t(r){C(this,t);for(var n=arguments.length,o=Array(n>1?n-1:0),i=1;i0&&-1!==r.slice(0,t).indexOf(void 0)&&void 0!==r.slice(t-(void 0).length,t)?".undefined":e};B.use([function(e,t,r){2===e&&r.length&&r[0].lastIndexOf(void 0)>0&&(r[0]=r[0].replace(void 0,L))},V,D]),_.use([V,D]);var z=function(){return'undefined'!=typeof __webpack_nonce__?__webpack_nonce__:null},$=function(e,t,r){r&&((e[t]||(e[t]=Object.create(null)))[r]=!0)},W=function(e,t){e[t]=Object.create(null)},H=function(e){return function(t,r){return void 0!==e[t]&&e[t][r]}},J=function(e){var t='';for(var r in e)t+=Object.keys(e[r]).join(' ')+' ';return t.trim()},Y=function(e){var t=Object.create(null);for(var r in e)t[r]=x({},e[r]);return t},q=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets.length,r=0;rn;o-=1)e.deleteRule(o)},G=function(e){return'\n/* sc-component-id: '+e+' */\n'},Q=function(e,t){for(var r=0,n=0;n<=t;n+=1)r+=e[n];return r},X=function(e,t,r){var n=document.createElement('style');n.setAttribute(I,''),n.setAttribute("data-styled-version","4.2.0");var o=z();if(o&&n.setAttribute('nonce',o),n.appendChild(document.createTextNode('')),e&&!t)e.appendChild(n);else{if(!t||!e||!t.parentNode)throw new P(6);t.parentNode.insertBefore(n,r?t:t.nextSibling)}return n},ee=function(e,t){return function(r){var n=z();return''}},te=function(e,t){return function(){var r,n=((r={})[I]=J(t),r["data-styled-version"]="4.2.0",r),o=z();return o&&(n.nonce=o),p.createElement('style',x({},n,{dangerouslySetInnerHTML:{__html:e()}}))}},re=function(e){return function(){return Object.keys(e)}},ne=function(e,t){var r=Object.create(null),n=Object.create(null),o=[],i=void 0!==t,s=!1,a=function(e){var t=n[e];return void 0!==t?t:(n[e]=o.length,o.push(0),W(r,e),n[e])},c=function(){var t=q(e).cssRules,r='';for(var i in n){r+=G(i);for(var s=n[i],a=Q(o,s),c=a-o[s];c0&&(s=!0,t().insertRules(n+'-import',d)),o[h]+=f,$(r,n,u)},removeRules:function(a){var c=n[a];if(void 0!==c){var u=o[c],h=q(e),p=Q(o,c)-1;Z(h,p,u),o[c]=0,W(r,a),i&&s&&t().removeRules(a+'-import')}},sealed:!1,styleTag:e,toElement:te(c,r),toHTML:ee(c,r)}},oe=function(e){return document.createTextNode(G(e))},ie=function(e,t){var r=Object.create(null),n=Object.create(null),o=void 0!==t,i=!1,s=function(t){var o=n[t];return void 0!==o?o:(n[t]=oe(t),e.appendChild(n[t]),r[t]=Object.create(null),n[t])},a=function(){var e='';for(var t in n)e+=n[t].data;return e};return{clone:function(){throw new P(5)},css:a,getIds:re(n),hasNameForId:H(r),insertMarker:s,insertRules:function(e,n,a){for(var c=s(e),u=[],h=n.length,p=0;p0&&(i=!0,t().insertRules(e+'-import',u))},removeRules:function(s){var a=n[s];if(void 0!==a){var c=oe(s);e.replaceChild(c,a),n[s]=c,W(r,s),o&&i&&t().removeRules(s+'-import')}},sealed:!1,styleTag:e,toElement:te(a,r),toHTML:ee(a,r)}},se=function e(t,r){var n=void 0===t?Object.create(null):t,o=void 0===r?Object.create(null):r,i=function(e){var t=o[e];return void 0!==t?t:o[e]=['']},s=function(){var e='';for(var t in o){var r=o[t][0];r&&(e+=G(t)+r)}return e};return{clone:function(){var t=Y(n),r=Object.create(null);for(var i in o)r[i]=[o[i][0]];return e(t,r)},css:s,getIds:re(o),hasNameForId:H(n),insertMarker:i,insertRules:function(e,t,r){i(e)[0]+=t.join(' '),$(n,e,r)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]='',W(n,e))},sealed:!1,styleTag:null,toElement:te(s,n),toHTML:ee(s,n)}},ae=function(e,t,r,n,o){if(j&&!r){var i=X(e,t,n);return T?ie(i,o):ne(i,o)}return se()},ce=function(e,t,r){for(var n=0,o=r.length;n0&&void 0!==arguments[0]?arguments[0]:j?document.head:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];C(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var r=t.tags[0];return t.importRuleTag=ae(t.target,r?r.styleTag:null,t.forceServer,!0)},pe+=1,this.id=pe,this.forceServer=n,this.target=n?null:r,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}e.prototype.rehydrate=function(){if(!j||this.forceServer)return this;var e=[],t=[],r=!1,n=document.querySelectorAll('style['+I+"][data-styled-version=\"4.2.0\"]"),o=n.length;if(!o)return this;for(var i=0;i0&&void 0!==arguments[0]&&arguments[0];le=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map(function(e){for(var r=e.getIds(),n=e.clone(),o=0;o1&&void 0!==arguments[1]?arguments[1]:{},r=[],n=e.css.valueOf(),o=t.ignoreErrors,i=void 0,s=void 0,a=void 0,c=void 0,u=void 0,h=void 0,p=void 0,l=void 0,f=void 0,d=void 0,v=void 0,m=void 0,y=void 0,w=n.length,g=-1,b=1,k=0;function C(t){throw e.error('Unclosed '+t,b,k-g)}for(;k0?(l=b+u,f=s-c[u].length):(l=b,f=g),r.push(['string',n.slice(k,s+1),b,k-g,l,s-f]),g=f,b=l,k=s;break;case De:Ve.lastIndex=k+1,Ve.test(n),s=0===Ve.lastIndex?n.length-1:Ve.lastIndex-2,r.push(['at-word',n.slice(k,s+1),b,k-g,b,s-g]),k=s;break;case Se:for(s=k,p=!0;n.charCodeAt(s+1)===Se;)s+=1,p=!p;i=n.charCodeAt(s+1),p&&i!==xe&&i!==Re&&i!==Ae&&i!==Ne&&i!==Ee&&i!==Oe&&(s+=1),r.push(['word',n.slice(k,s+1),b,k-g,b,s-g]),k=s;break;default:i===xe&&n.charCodeAt(k+1)===Be?(0===(s=n.indexOf('*/',k+2)+1)&&(o?s=n.length:C('comment')),(u=(c=(h=n.slice(k,s+1)).split('\n')).length-1)>0?(l=b+u,f=s-c[u].length):(l=b,f=g),r.push(['comment',h,b,k-g,l,s-f]),g=f,b=l,k=s):(Le.lastIndex=k+1,Le.test(n),s=0===Le.lastIndex?n.length-1:Le.lastIndex-2,r.push(['word',n.slice(k,s+1),b,k-g,b,s-g]),k=s)}k++}return r}var We={brackets:[36,39],string:[31,39],'at-word':[31,39],comment:[90,39],'{':[32,39],'}':[32,39],':':[1,22],';':[1,22],'(':[1,22],')':[1,22]};function He(e){return'\x1b['+e+'m'}function Je(e){var t=[];return $e(new vt(e),{ignoreErrors:!0}).forEach(function(e){var r=We[e[0]];r?t.push(e[1].split(/\r?\n/).map(function(e){return He(r[0])+e+He(r[1])}).join('\n')):t.push(e[1])}),t.join('')}var Ye=(function(){function e(t,r,n,o,i,s){C(this,e),this.name='CssSyntaxError',this.reason=t,i&&(this.file=i),o&&(this.source=o),s&&(this.plugin=s),void 0!==r&&void 0!==n&&(this.line=r,this.column=n),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,e)}return e.prototype.setMessage=function(){this.message=this.plugin?this.plugin+': ':'',this.message+=this.file?this.file:'',void 0!==this.line&&(this.message+=':'+this.line+':'+this.column),this.message+=': '+this.reason},e.prototype.showSourceCode=function(e){var t=this;if(!this.source)return'';var r=this.source;void 0===e&&(e=d),e&&(r=Je(r));var n=r.split(/\r?\n/),o=Math.max(this.line-3,0),i=Math.min(this.line+2,n.length),s=String(i).length;return n.slice(o,i).map(function(e,r){var n=o+1+r,i=' '+(' '+n).slice(-s)+' | ';return n===t.line?'>'+i+e+'\n '+(i.replace(/\d/g,' ')+e.slice(0,t.column-1).replace(/[^\t]/g,' '))+'^':' '+i+e}).join('\n')},e.prototype.toString=function(){var e=this.showSourceCode();return e&&(e='\n\n'+e+'\n'),this.name+': '+this.message+e},S(e,[{key:'generated',get:function(){return be('CssSyntaxError#generated is deprecated. Use input instead.'),this.input}}]),e})(),qe={colon:': ',indent:' ',beforeDecl:'\n',beforeRule:'\n',beforeOpen:' ',beforeClose:'\n',beforeComment:'\n',after:'\n',emptyBody:'',commentLeft:' ',commentRight:' '};var Ke=(function(){function e(t){C(this,e),this.builder=t}return e.prototype.stringify=function(e,t){this[e.type](e,t)},e.prototype.root=function(e){this.body(e),e.raws.after&&this.builder(e.raws.after)},e.prototype.comment=function(e){var t=this.raw(e,'left','commentLeft'),r=this.raw(e,'right','commentRight');this.builder('/*'+t+e.text+r+'*/',e)},e.prototype.decl=function(e,t){var r=this.raw(e,'between','colon'),n=e.prop+r+this.rawValue(e,'value');e.important&&(n+=e.raws.important||' !important'),t&&(n+=';'),this.builder(n,e)},e.prototype.rule=function(e){this.block(e,this.rawValue(e,'selector'))},e.prototype.atrule=function(e,t){var r='@'+e.name,n=e.params?this.rawValue(e,'params'):'';if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=' '),e.nodes)this.block(e,r+n);else{var o=(e.raws.between||'')+(t?';':'');this.builder(r+n+o,e)}},e.prototype.body=function(e){for(var t=e.nodes.length-1;t>0&&'comment'===e.nodes[t].type;)t-=1;for(var r=this.raw(e,'semicolon'),n=0;n0&&void 0!==e.raws.after)return-1!==(t=e.raws.after).indexOf('\n')&&(t=t.replace(/[^\n]+$/,'')),!1}),t},e.prototype.rawBeforeOpen=function(e){var t=void 0;return e.walk(function(e){if('decl'!==e.type&&void 0!==(t=e.raws.between))return!1}),t},e.prototype.rawColon=function(e){var t=void 0;return e.walkDecls(function(e){if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,''),!1}),t},e.prototype.beforeAfter=function(e,t){var r=void 0;r='decl'===e.type?this.raw(e,null,'beforeDecl'):'comment'===e.type?this.raw(e,null,'beforeComment'):'before'===t?this.raw(e,null,'beforeRule'):this.raw(e,null,'beforeClose');for(var n=e.parent,o=0;n&&'root'!==n.type;)o+=1,n=n.parent;if(-1!==r.indexOf('\n')){var i=this.raw(e,null,'indent');if(i.length)for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{};for(var r in C(this,e),this.raws={},t)this[r]=t[r]}return e.prototype.error=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.source){var r=this.positionBy(t);return this.source.input.error(e,r.line,r.column,t)}return new Ye(e)},e.prototype.warn=function(e,t,r){var n={node:this};for(var o in r)n[o]=r[o];return e.warn(t,n)},e.prototype.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},e.prototype.toString=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ze;e.stringify&&(e=e.stringify);var t='';return e(this,function(e){t+=e}),t},e.prototype.clone=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Ge(this);for(var r in e)t[r]=e[r];return t},e.prototype.cloneBefore=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.clone(e);return this.parent.insertBefore(this,t),t},e.prototype.cloneAfter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.clone(e);return this.parent.insertAfter(this,t),t},e.prototype.replaceWith=function(){var e=this;if(this.parent){for(var t=arguments.length,r=Array(t),n=0;n0&&this.unclosedBracket(o),t&&n){for(;this.pos>s&&('space'===(e=this.tokens[this.pos][0])||'comment'===e);)this.pos-=1;this.decl(this.tokens.slice(s,this.pos+1))}else this.unknownWord(s)},e.prototype.rule=function(e){e.pop();var t=new at;this.init(t,e[0][2],e[0][3]),t.raws.between=this.spacesFromEnd(e),this.raw(t,'selector',e),this.current=t},e.prototype.decl=function(e){var t=new Xe;this.init(t);var r=e[e.length-1];for(';'===r[0]&&(this.semicolon=!0,e.pop()),r[4]?t.source.end={line:r[4],column:r[5]}:t.source.end={line:r[2],column:r[3]};'word'!==e[0][0];)t.raws.before+=e.shift()[1];for(t.source.start={line:e[0][2],column:e[0][3]},t.prop='';e.length;){var n=e[0][0];if(':'===n||'space'===n||'comment'===n)break;t.prop+=e.shift()[1]}t.raws.between='';for(var o=void 0;e.length;){if(':'===(o=e.shift())[0]){t.raws.between+=o[1];break}t.raws.between+=o[1]}'_'!==t.prop[0]&&'*'!==t.prop[0]||(t.raws.before+=t.prop[0],t.prop=t.prop.slice(1)),t.raws.between+=this.spacesFromStart(e),this.precheckMissedSemicolon(e);for(var i=e.length-1;i>0;i--){if('!important'===(o=e[i])[1]){t.important=!0;var s=this.stringFrom(e,i);' !important'!==(s=this.spacesFromEnd(e)+s)&&(t.raws.important=s);break}if('important'===o[1]){for(var a=e.slice(0),c='',u=i;u>0;u--){var h=a[u][0];if(0===c.trim().indexOf('!')&&'space'!==h)break;c=a.pop()[1]+c}0===c.trim().indexOf('!')&&(t.important=!0,t.raws.important=c,e=a)}if('space'!==o[0]&&'comment'!==o[0])break}this.raw(t,'value',e),-1!==t.value.indexOf(':')&&this.checkMissedSemicolon(e)},e.prototype.atrule=function(e){var t=new it;t.name=e[1].slice(1),''===t.name&&this.unnamedAtrule(t,e),this.init(t,e[2],e[3]);var r=!1,n=!1,o=[];for(this.pos+=1;this.pos=0&&('space'===(n=e[o])[0]||2!==(r+=1));o--);throw this.input.error('Missed semicolon',n[2],n[3])}},e})();function rt(e,t){if(t&&t.safe)throw new Error("Option safe was removed. Use parser: require(\"postcss-safe-parser\")");var r=new vt(e,t),n=new tt(r);try{n.tokenize(),n.loop()}catch(e){throw'CssSyntaxError'===e.name&&t&&t.from&&(/\.scss$/i.test(t.from)?e.message+="\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser":/\.less$/i.test(t.from)&&(e.message+="\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser")),e}return n.root}function nt(e){return e.map(function(e){return e.nodes&&(e.nodes=nt(e.nodes)),delete e.source,e})}var ot=(function(e){function t(){return C(this,t),O(this,e.apply(this,arguments))}return A(t,e),t.prototype.push=function(e){return e.parent=this,this.nodes.push(e),this},t.prototype.each=function(e){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;var t=this.lastEach;if(this.indexes[t]=0,this.nodes){for(var r=void 0,n=void 0;this.indexes[t]=e&&(this.indexes[r]=t-1);return this},t.prototype.removeAll=function(){return this.nodes.forEach(function(e){return e.parent=void 0}),this.nodes=[],this},t.prototype.replaceValues=function(e,t,r){return r||(r=t,t={}),this.walkDecls(function(n){t.props&&-1===t.props.indexOf(n.prop)||t.fast&&-1===n.value.indexOf(t.fast)||(n.value=n.value.replace(e,r))}),this},t.prototype.every=function(e){return this.nodes.every(e)},t.prototype.some=function(e){return this.nodes.some(e)},t.prototype.index=function(e){return'number'==typeof e?e:this.nodes.indexOf(e)},t.prototype.normalize=function(e,t){var r=this;if('string'==typeof e)e=nt(rt(e).nodes);else if(!Array.isArray(e))if('root'===e.type)e=e.nodes;else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error('Value field is missed in node creation');'string'!=typeof e.value&&(e.value=String(e.value)),e=[new Xe(e)]}else if(e.selector)e=[new at(e)];else if(e.name)e=[new it(e)];else{if(!e.text)throw new Error('Unknown node type in node creation');e=[new et(e)]}return e.map(function(e){return void 0===e.raws&&(e=r.rebuild(e)),e.parent&&(e=e.clone()),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/[^\s]/g,'')),e.parent=r,e})},t.prototype.rebuild=function(e,t){var r=this,n=void 0;for(var o in'root'===e.type?n=new ft:'atrule'===e.type?n=new it:'rule'===e.type?n=new at:'decl'===e.type?n=new Xe:'comment'===e.type&&(n=new et),e)'nodes'===o?n.nodes=e.nodes.map(function(e){return r.rebuild(e,n)}):'parent'===o&&t?n.parent=t:e.hasOwnProperty(o)&&(n[o]=e[o]);return n},t.prototype.eachInside=function(e){return be("Container#eachInside is deprecated. Use Container#walk instead."),this.walk(e)},t.prototype.eachDecl=function(e,t){return be("Container#eachDecl is deprecated. Use Container#walkDecls instead."),this.walkDecls(e,t)},t.prototype.eachRule=function(e,t){return be("Container#eachRule is deprecated. Use Container#walkRules instead."),this.walkRules(e,t)},t.prototype.eachAtRule=function(e,t){return be("Container#eachAtRule is deprecated. Use Container#walkAtRules instead."),this.walkAtRules(e,t)},t.prototype.eachComment=function(e){return be("Container#eachComment is deprecated. Use Container#walkComments instead."),this.walkComments(e)},S(t,[{key:'first',get:function(){if(this.nodes)return this.nodes[0]}},{key:'last',get:function(){if(this.nodes)return this.nodes[this.nodes.length-1]}},{key:'semicolon',get:function(){return be('Node#semicolon is deprecated. Use Node#raws.semicolon'),this.raws.semicolon},set:function(e){be('Node#semicolon is deprecated. Use Node#raws.semicolon'),this.raws.semicolon=e}},{key:'after',get:function(){return be('Node#after is deprecated. Use Node#raws.after'),this.raws.after},set:function(e){be('Node#after is deprecated. Use Node#raws.after'),this.raws.after=e}}]),t})(Qe),it=(function(e){function t(r){C(this,t);var n=O(this,e.call(this,r));return n.type='atrule',n}return A(t,e),t.prototype.append=function(){var t;this.nodes||(this.nodes=[]);for(var r=arguments.length,n=Array(r),o=0;o0&&(s-=1):0===s&&-1!==t.indexOf(h)&&(i=!0),i?(''!==o&&n.push(o.trim()),o='',i=!1):o+=h}return(r||''!==o)&&n.push(o.trim()),n},space:function(e){return st.split(e,[' ','\n','\t'])},comma:function(e){return st.split(e,[','],!0)}},at=(function(e){function t(r){C(this,t);var n=O(this,e.call(this,r));return n.type='rule',n.nodes||(n.nodes=[]),n}return A(t,e),S(t,[{key:'selectors',get:function(){return st.comma(this.selector)},set:function(e){var t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:','+this.raw('between','beforeOpen');this.selector=e.join(r)}},{key:'_selector',get:function(){return be('Rule#_selector is deprecated. Use Rule#raws.selector'),this.raws.selector},set:function(e){be('Rule#_selector is deprecated. Use Rule#raws.selector'),this.raws.selector=e}}]),t})(ot),ct=(function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(C(this,e),this.type='warning',this.text=t,r.node&&r.node.source){var n=r.node.positionBy(r);this.line=n.line,this.column=n.column}for(var o in r)this[o]=r[o]}return e.prototype.toString=function(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+': '+this.text:this.text},e})(),ut=(function(){function e(t,r,n){C(this,e),this.processor=t,this.messages=[],this.root=r,this.opts=n,this.css=void 0,this.map=void 0}return e.prototype.toString=function(){return this.css},e.prototype.warn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);var r=new ct(e,t);return this.messages.push(r),r},e.prototype.warnings=function(){return this.messages.filter(function(e){return'warning'===e.type})},S(e,[{key:'content',get:function(){return this.css}}]),e})();function ht(e){return'object'===(void 0===e?'undefined':k(e))&&'function'==typeof e.then}var pt=(function(){function e(t,r,n){C(this,e),this.stringified=!1,this.processed=!1;var o=void 0;if('object'===(void 0===r?'undefined':k(r))&&'root'===r.type)o=r;else if(r instanceof e||r instanceof ut)o=r.root,r.map&&(void 0===n.map&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=r.map);else{var i=rt;n.syntax&&(i=n.syntax.parse),n.parser&&(i=n.parser),i.parse&&(i=i.parse);try{o=i(r,n)}catch(e){this.error=e}}this.result=new ut(t,o,n)}return e.prototype.warnings=function(){return this.sync().warnings()},e.prototype.toString=function(){return this.css},e.prototype.then=function(e,t){return this.async().then(e,t)},e.prototype.catch=function(e){return this.async().catch(e)},e.prototype.handleError=function(e,t){try{if(this.error=e,'CssSyntaxError'!==e.name||e.plugin){if(t.postcssVersion){var r=t.postcssPlugin,n=t.postcssVersion,o=this.result.processor.version,i=n.split('.'),s=o.split('.');(i[0]!==s[0]||parseInt(i[1])>parseInt(s[1]))&&be("Your current PostCSS version is "+o+', but '+r+" uses "+n+". Perhaps this is the source of the error below.")}}else e.plugin=t.postcssPlugin,e.setMessage()}catch(e){console&&console.error&&console.error(e)}},e.prototype.asyncTick=function(e,t){var r=this;if(this.plugin>=this.processor.plugins.length)return this.processed=!0,e();try{var n=this.processor.plugins[this.plugin],o=this.run(n);this.plugin+=1,ht(o)?o.then(function(){r.asyncTick(e,t)}).catch(function(e){r.handleError(e,n),r.processed=!0,t(e)}):this.asyncTick(e,t)}catch(e){this.processed=!0,t(e)}},e.prototype.async=function(){var e=this;return this.processed?new Promise(function(t,r){e.error?r(e.error):t(e.stringify())}):this.processing?this.processing:(this.processing=new Promise(function(t,r){if(e.error)return r(e.error);e.plugin=0,e.asyncTick(t,r)}).then(function(){return e.processed=!0,e.stringify()}),this.processing)},e.prototype.sync=function(){var e=this;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw new Error('Use process(css).then(cb) to work with async plugins');if(this.error)throw this.error;return this.result.processor.plugins.forEach(function(t){if(ht(e.run(t)))throw new Error('Use process(css).then(cb) to work with async plugins')}),this.result},e.prototype.run=function(e){this.result.lastPlugin=e;try{return e(this.result.root,this.result)}catch(t){throw this.handleError(t,e),t}},e.prototype.stringify=function(){if(this.stringified)return this.result;this.stringified=!0,this.sync();var e=this.result.opts,t=Ze;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);var r='';return t(this.root,function(e){r+=e}),this.result.css=r,this.result},S(e,[{key:'processor',get:function(){return this.result.processor}},{key:'opts',get:function(){return this.result.opts}},{key:'css',get:function(){return this.stringify().css}},{key:'content',get:function(){return this.stringify().content}},{key:'map',get:function(){return this.stringify().map}},{key:'root',get:function(){return this.sync().root}},{key:'messages',get:function(){return this.sync().messages}}]),e})(),lt=(function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];C(this,e),this.version='5.2.0',this.plugins=this.normalize(t)}return e.prototype.use=function(e){return this.plugins=this.plugins.concat(this.normalize([e])),this},e.prototype.process=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new pt(this,e,t)},e.prototype.normalize=function(e){var t=[];return e.forEach(function(e){if(e.postcss&&(e=e.postcss),'object'===(void 0===e?'undefined':k(e))&&Array.isArray(e.plugins))t=t.concat(e.plugins);else{if('function'!=typeof e)throw new Error(e+' is not a PostCSS plugin');t.push(e)}}),t},e})(),ft=(function(e){function t(r){C(this,t);var n=O(this,e.call(this,r));return n.type='root',n.nodes||(n.nodes=[]),n}return A(t,e),t.prototype.removeChild=function(t){return 0===(t=this.index(t))&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[t].raws.before),e.prototype.removeChild.call(this,t)},t.prototype.normalize=function(t,r,n){var o=e.prototype.normalize.call(this,t);return r&&('prepend'===n?this.nodes.length>1?r.raws.before=this.nodes[1].raws.before:delete r.raws.before:this.first!==r&&o.forEach(function(e){e.raws.before=r.raws.before})),o},t.prototype.toResult=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new pt(new lt,this,e).stringify()},t.prototype.remove=function(e){be('Root#remove is deprecated. Use Root#removeChild'),this.removeChild(e)},t.prototype.prevMap=function(){return be('Root#prevMap is deprecated. Use Root#source.input.map'),this.source.input.map},t})(ot),dt=0,vt=(function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};C(this,e),this.css=t.toString(),"\ufeff"!==this.css[0]&&"\ufffe"!==this.css[0]||(this.css=this.css.slice(1)),r.from&&(/^\w+:\/\//.test(r.from)?this.file=r.from:this.file=path.resolve(r.from)),this.file||(dt+=1,this.id=''),this.map&&(this.map.file=this.from)}return e.prototype.error=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0,i=this.origin(t,r);return(o=i?new Ye(e,i.line,i.column,i.source,i.file,n.plugin):new Ye(e,t,r,this.css,this.file,n.plugin)).input={line:t,column:r,source:this.css},this.file&&(o.input.file=this.file),o},e.prototype.origin=function(e,t){if(!this.map)return!1;var r=this.map.consumer(),n=r.originalPositionFor({line:e,column:t});if(!n.source)return!1;var o={file:this.mapResolve(n.source),line:n.line,column:n.column},i=r.sourceContentFor(n.source);return i&&(o.source=i),o},e.prototype.mapResolve=function(e){return/^\w+:\/\//.test(e)?e:path.resolve(this.map.consumer().sourceRoot||'.',e)},S(e,[{key:'from',get:function(){return this.file||this.id}}]),e})(),mt=(function(e){function t(){return C(this,t),O(this,e.apply(this,arguments))}return A(t,e),t.prototype.tokenize=function(){this.tokens=$e(this.input,{ignoreErrors:!0})},t.prototype.comment=function(e){var t=new et;this.init(t,e[2],e[3]),t.source.end={line:e[4],column:e[5]};var r=e[1].slice(2);if('*/'===r.slice(-2)&&(r=r.slice(0,-2)),/^\s*$/.test(r))t.text='',t.raws.left=r,t.raws.right='';else{var n=r.match(/^(\s*)([^]*[^\s])(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}},t.prototype.unclosedBracket=function(){},t.prototype.unknownWord=function(e){var t=this.tokens.slice(e,this.pos+1);this.spaces+=t.map(function(e){return e[1]}).join('')},t.prototype.unexpectedClose=function(){this.current.raws.after+='}'},t.prototype.doubleColon=function(){},t.prototype.unnamedAtrule=function(e){e.name=''},t.prototype.precheckMissedSemicolon=function(e){var t=this.colon(e);if(!1!==t){var r=void 0;for(r=t-1;r>=0&&'word'!==e[r][0];r--);for(r-=1;r>=0;r--)if('space'!==e[r][0]){r+=1;break}var n=e.splice(r,e.length-r);this.decl(n)}},t.prototype.checkMissedSemicolon=function(){},t.prototype.endFile=function(){for(this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||'')+this.spaces;this.current.parent;)this.current=this.current.parent,this.current.raws.after=''},t})(tt);var yt,wt={},gt=Object.freeze([]),bt=Object.freeze({}),kt=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:bt,n=!!r&&e.theme===r.theme;return e.theme&&!n?e.theme:t||r.theme};function Ct(e){return'string'==typeof e&&!0}function St(e){return Ct(e)?'styled.'+e:'Styled('+g(e)+')'}var xt={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},At={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Rt=((yt={})[f.ForwardRef]={$$typeof:!0,render:!0},yt),Ot=Object.defineProperty,Nt=Object.getOwnPropertyNames,Et=Object.getOwnPropertySymbols,It=void 0===Et?function(){return[]}:Et,jt=Object.getOwnPropertyDescriptor,Tt=Object.getPrototypeOf,Pt=Object.prototype,Ut=Array.prototype;function Mt(e,t,r){if('string'!=typeof t){var n=Tt(t);n&&n!==Pt&&Mt(e,n,r);for(var o=Ut.concat(Nt(t),It(t)),i=Rt[e.$$typeof]||xt,s=Rt[t.$$typeof]||xt,a=o.length,c=void 0,u=void 0;a--;)if(u=o[a],!(At[u]||r&&r[u]||s&&s[u]||i&&i[u])&&(c=jt(t,u)))try{Ot(e,u,c)}catch(e){}return e}return e}var _t=h.createContext(),Bt=_t.Consumer,Ft=(function(e){function t(r){C(this,t);var n=O(this,e.call(this,r));return n.getContext=m(n.getContext.bind(n)),n.renderInner=n.renderInner.bind(n),n}return A(t,e),t.prototype.render=function(){return this.props.children?p.createElement(_t.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return p.createElement(_t.Provider,{value:t},p.Children.only(this.props.children))},t.prototype.getTheme=function(e,t){if(b(e))return e(t);if(null===e||Array.isArray(e)||'object'!==(void 0===e?'undefined':k(e)))throw new P(8);return x({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t})(h.Component),Dt=(function(e){function t(r){C(this,t);var n=O(this,e.call(this,r));return n.attrs={},n}return A(t,e),t.prototype.render=function(){var e=this;return p.createElement(Bt,null,function(t){var r=e.props,n=r.as,o=r.forwardedComponent,i=r.forwardedRef,s=(r.innerRef,r.style),a=void 0===s?[]:s,c=R(r,['as','forwardedComponent','forwardedRef','innerRef','style']),u=o.defaultProps,p=(o.displayName,o.target),l=void 0;if(void 0!==t){var f=kt(e.props,t,u);l=e.generateAndInjectStyles(f,e.props)}else l=e.generateAndInjectStyles(t||bt,e.props);var d=x({},e.attrs,c,{style:[l].concat(a)});return i&&(d.ref=i),h.createElement(n||p,d)})},t.prototype.buildExecutionContext=function(e,t,r){var n=this,o=x({},t,{theme:e});return r.length?(this.attrs={},r.forEach(function(e){var t,r=e,i=!1,s=void 0,a=void 0;for(a in b(r)&&(r=r(o),i=!0),r)s=r[a],i||!b(s)||(t=s)&&t.prototype&&t.prototype.isReactComponent||E(s)||(s=s(o)),n.attrs[a]=s,o[a]=s}),o):o},t.prototype.generateAndInjectStyles=function(e,t){var r=t.forwardedComponent.inlineStyle,n=this.buildExecutionContext(e,t,t.forwardedComponent.attrs);return r.generateStyleObject(n)},t.prototype.setNativeProps=function(e){void 0!==this.root&&this.root.setNativeProps(e)},t})(h.Component),Vt=function(e,t){for(var r=[e[0]],n=0,o=t.length;n1?t-1:0),n=1;n2&&void 0!==arguments[2]?arguments[2]:bt;if(!f.isValidElementType(t))throw new P(1,String(t));var n=function(){return e(t,r,Lt.apply(void 0,arguments))};return n.withConfig=function(n){return zt(e,t,x({},r,n))},n.attrs=function(n){return zt(e,t,x({},r,{attrs:Array.prototype.concat(r.attrs,n).filter(Boolean)}))},n}var $t,Wt=(function(e){return function t(r,n,o){var i=n.attrs,s=void 0===i?gt:i,a=n.displayName,c=void 0===a?St(r):a,u=n.ParentComponent,h=void 0===u?Dt:u,l=!Ct(r),f=E(r),d=p.forwardRef(function(e,t){return p.createElement(h,x({},e,{forwardedComponent:d,forwardedRef:t}))}),v=f&&r.attrs?Array.prototype.concat(r.attrs,s).filter(Boolean):s;return d.attrs=v,d.displayName=c,d.inlineStyle=new e(f?r.inlineStyle.rules.concat(o):o),d.styledComponentId='StyledNativeComponent',d.target=f?r.target:r,d.withComponent=function(e){n.displayName,n.componentId;var r=R(n,['displayName','componentId']),i=x({},r,{attrs:v,ParentComponent:h});return t(e,i,o)},l&&Mt(d,r,{attrs:!0,displayName:!0,inlineStyle:!0,styledComponentId:!0,target:!0,withComponent:!0}),d}})(($t=y.StyleSheet,(function(){function e(t){C(this,e),this.rules=t}return e.prototype.generateStyleObject=function(e){var t,r,n,o=we(this.rules,e).join(''),i=w(o);if(!wt[i]){var s=[];(r=new vt(o,t),(n=new mt(r)).tokenize(),n.loop(),n.root).each(function(e){'decl'===e.type&&s.push([e.prop,e.value])});var a=v(s,['borderRadius','borderWidth','borderColor','borderStyle']),c=$t.create({generated:a});wt[i]=c.generated}return wt[i]},e})())),Ht=function(e){return zt(Wt,e)};'ActivityIndicator ActivityIndicatorIOS ART Button DatePickerIOS DrawerLayoutAndroid\n Image ImageBackground ImageEditor ImageStore KeyboardAvoidingView ListView MapView Modal NavigatorIOS\n Picker PickerIOS ProgressBarAndroid ProgressViewIOS ScrollView SegmentedControlIOS Slider\n SliderIOS SnapshotViewIOS Switch RecyclerViewBackedScrollView RefreshControl SafeAreaView StatusBar\n SwipeableListView SwitchAndroid SwitchIOS TabBarIOS Text TextInput ToastAndroid ToolbarAndroid\n Touchable TouchableHighlight TouchableNativeFeedback TouchableOpacity TouchableWithoutFeedback\n View ViewPagerAndroid WebView FlatList SectionList VirtualizedList'.split(/\s+/m).forEach(function(e){return Object.defineProperty(Ht,e,{enumerable:!0,configurable:!1,get:function(){return Ht(y[e])}})}),i.css=Lt,i.isStyledComponent=E,i.ThemeProvider=Ft,i.ThemeConsumer=Bt,i.ThemeContext=_t,i.withTheme=function(e){var t=p.forwardRef(function(t,r){return p.createElement(Bt,null,function(n){var o=e.defaultProps,i=kt(t,n,o);return p.createElement(e,x({},t,{theme:i,ref:r}))})});return Mt(t,e),t.displayName='WithTheme('+g(e)+')',t},i.default=Ht},425,[426,427,57,428,429,431,432,441,3]); -__d(function(g,r,i,a,m,e,d){var c;c=function c(s){"use strict";var t=/^\0+/g,n=/[\0\r\f]/g,l=/: */g,f=/zoo|gra/,o=/([,: ])(transform)/g,h=/,+\s*(?![^(]*[)])/g,u=/ +\s*(?![^(]*[)])/g,b=/ *[\0] */g,k=/,\r+?/g,p=/([\t\r\n ])*\f?&/g,A=/:global\(((?:[^\(\)\[\]]*|\[.*\]|\([^\(\)]*\))*)\)/g,w=/\W+/g,C=/@(k\w+)\s*(\S*)\s*/,v=/::(place)/g,x=/:(read-only)/g,$=/\s+(?=[{\];=:>])/g,y=/([[}=:>])\s+/g,O=/(\{[^{]+?);(?=\})/g,j=/\s{2,}/g,z=/([^\(])(:+) */g,N=/[svh]\w+-[tblr]{2}/,S=/\(\s*(.*)\s*\)/g,_=/([\s\S]*?);/g,F=/-self|flex-/g,W=/[^]*?(:[rp][el]a[\w-]+)[^]*/,q=/stretch|:\s*\w+\-(?:conte|avail)/,B=/([^-])(image-set\()/,D="-webkit-",E="-moz-",G="-ms-",H=59,I=125,J=123,K=40,L=41,M=91,P=93,Q=10,R=13,T=9,U=64,V=32,X=38,Y=45,Z=95,ee=42,ae=44,ce=58,re=39,se=34,te=47,ie=62,ne=43,le=126,fe=0,oe=12,he=11,ue=107,de=109,be=115,ke=112,pe=111,ge=105,Ae=99,we=100,Ce=112,ve=1,me=1,xe=0,$e=1,ye=1,Oe=1,je=0,ze=0,Ne=0,Se=[],_e=[],Fe=0,We=null,qe=-2,Be=-1,De=0,Ee=1,Ge=2,He=3,Ie=0,Je=1,Ke="",Le="",Me="";function Pe(c,s,l,f,o){for(var h,u,k=0,p=0,A=0,w=0,$=0,y=0,O=0,j=0,N=0,_=0,F=0,W=0,q=0,B=0,D=0,E=0,G=0,Z=0,je=0,_e=l.length,We=_e-1,qe="",Be="",Re="",Ze="",ea="",aa="";D<_e;){if(O=l.charCodeAt(D),D===We&&p+w+A+k!==0&&(0!==p&&(O=p===te?Q:te),w=A=k=0,_e++,We++),p+w+A+k===0){if(D===We&&(E>0&&(Be=Be.replace(n,"")),Be.trim().length>0)){switch(O){case V:case T:case H:case R:case Q:break;default:Be+=l.charAt(D)}O=H}if(1===G)switch(O){case J:case I:case H:case se:case re:case K:case L:case ae:G=0;case T:case R:case Q:case V:break;default:for(G=0,je=D,$=O,D--,O=H;je<_e;)switch(l.charCodeAt(je++)){case Q:case R:case H:++D,O=$,je=_e;break;case ce:E>0&&(++D,O=$);case J:je=_e}}switch(O){case J:for($=(Be=Be.trim()).charCodeAt(0),F=1,je=++D;D<_e;){switch(O=l.charCodeAt(D)){case J:F++;break;case I:F--;break;case te:switch(y=l.charCodeAt(D+1)){case ee:case te:D=Ye(y,D,We,l)}break;case M:O++;case K:O++;case se:case re:for(;D++0&&(Be=Be.replace(n,"")),y=Be.charCodeAt(1)){case we:case de:case be:case Y:h=s;break;default:h=Se}if(je=(Re=Pe(s,h,Re,y,o+1)).length,Ne>0&&0===je&&(je=Be.length),Fe>0&&(h=Qe(Se,Be,Z),u=Xe(He,Re,h,s,me,ve,je,y,o,f),Be=h.join(""),void 0!==u&&0===(je=(Re=u.trim()).length)&&(y=0,Re="")),je>0)switch(y){case be:Be=Be.replace(S,Ve);case we:case de:case Y:Re=Be+"{"+Re+"}";break;case ue:Re=(Be=Be.replace(C,"$1 $2"+(Je>0?Ke:"")))+"{"+Re+"}",Re=1===ye||2===ye&&Ue("@"+Re,3)?"@-webkit-"+Re+"@"+Re:"@"+Re;break;default:Re=Be+Re,f===Ce&&(Ze+=Re,Re="")}else Re="";break;default:Re=Pe(s,Qe(s,Be,Z),Re,f,o+1)}ea+=Re,W=0,G=0,B=0,E=0,Z=0,q=0,Be="",Re="",O=l.charCodeAt(++D);break;case I:case H:if((je=(Be=(E>0?Be.replace(n,""):Be).trim()).length)>1)switch(0===B&&(($=Be.charCodeAt(0))===Y||$>96&&$<123)&&(je=(Be=Be.replace(" ",":")).length),Fe>0&&void 0!==(u=Xe(Ee,Be,s,c,me,ve,Ze.length,f,o,f))&&0===(je=(Be=u.trim()).length)&&(Be="\0\0"),$=Be.charCodeAt(0),y=Be.charCodeAt(1),$){case fe:break;case U:if(y===ge||y===Ae){aa+=Be+l.charAt(D);break}default:if(Be.charCodeAt(je-1)===ce)break;Ze+=Te(Be,$,y,Be.charCodeAt(2))}W=0,G=0,B=0,E=0,Z=0,Be="",O=l.charCodeAt(++D)}}switch(O){case R:case Q:if(p+w+A+k+ze===0)switch(_){case L:case re:case se:case U:case le:case ie:case ee:case ne:case te:case Y:case ce:case ae:case H:case J:case I:break;default:B>0&&(G=1)}p===te?p=0:$e+W===0&&f!==ue&&Be.length>0&&(E=1,Be+="\0"),Fe*Ie>0&&Xe(De,Be,s,c,me,ve,Ze.length,f,o,f),ve=1,me++;break;case H:case I:if(p+w+A+k===0){ve++;break}default:switch(ve++,qe=l.charAt(D),O){case T:case V:if(w+k+p===0)switch(j){case ae:case ce:case T:case V:qe="";break;default:O!==V&&(qe=" ")}break;case fe:qe="\\0";break;case oe:qe="\\f";break;case he:qe="\\v";break;case X:w+p+k===0&&$e>0&&(Z=1,E=1,qe="\f"+qe);break;case 108:if(w+p+k+xe===0&&B>0)switch(D-B){case 2:j===ke&&l.charCodeAt(D-3)===ce&&(xe=j);case 8:N===pe&&(xe=N)}break;case ce:w+p+k===0&&(B=D);break;case ae:p+A+w+k===0&&(E=1,qe+="\r");break;case se:case re:0===p&&(w=w===O?0:0===w?O:w);break;case M:w+p+A===0&&k++;break;case P:w+p+A===0&&k--;break;case L:w+p+k===0&&A--;break;case K:if(w+p+k===0){if(0===W)switch(2*j+3*N){case 533:break;default:F=0,W=1}A++}break;case U:p+A+w+k+B+q===0&&(q=1);break;case ee:case te:if(w+k+A>0)break;switch(p){case 0:switch(2*O+3*l.charCodeAt(D+1)){case 235:p=te;break;case 220:je=D,p=ee}break;case ee:O===te&&j===ee&&je+2!==D&&(33===l.charCodeAt(je+2)&&(Ze+=l.substring(je,D+1)),qe="",p=0)}}if(0===p){if($e+w+k+q===0&&f!==ue&&O!==H)switch(O){case ae:case le:case ie:case ne:case L:case K:if(0===W){switch(j){case T:case V:case Q:case R:qe+="\0";break;default:qe="\0"+qe+(O===ae?"":"\0")}E=1}else switch(O){case K:B+7===D&&108===j&&(B=0),W=++F;break;case L:0==(W=--F)&&(E=1,qe+="\0")}break;case T:case V:switch(j){case fe:case J:case I:case H:case ae:case oe:case T:case V:case Q:case R:break;default:0===W&&(E=1,qe+="\0")}}Be+=qe,O!==V&&O!==T&&(_=O)}}N=j,j=O,D++}if(je=Ze.length,Ne>0&&0===je&&0===ea.length&&0===s[0].length==0&&(f!==de||1===s.length&&($e>0?Le:Me)===s[0])&&(je=s.join(",").length+2),je>0){if(h=0===$e&&f!==ue?(function(c){for(var s,t,l=0,f=c.length,o=Array(f);l1)){if(A=u.charCodeAt(u.length-1),w=t.charCodeAt(0),s="",0!==k)switch(A){case ee:case le:case ie:case ne:case V:case K:break;default:s=" "}switch(w){case X:t=s+Le;case le:case ie:case ne:case V:case L:case K:break;case M:t=s+t+Le;break;case ce:switch(2*t.charCodeAt(1)+3*t.charCodeAt(2)){case 530:if(Oe>0){t=s+t.substring(8,p-1);break}default:(k<1||h[k-1].length<1)&&(t=s+Le+t)}break;case ae:s="";default:t=p>1&&t.indexOf(":")>0?s+t.replace(z,"$1"+Le+"$2"):s+t+Le}u+=t}o[l]=u.replace(n,"").trim()}return o})(s):s,Fe>0&&void 0!==(u=Xe(Ge,Ze,h,c,me,ve,je,f,o,f))&&0===(Ze=u).length)return aa+Ze+ea;if(Ze=h.join(",")+"{"+Ze+"}",ye*xe!=0){switch(2!==ye||Ue(Ze,2)||(xe=0),xe){case pe:Ze=Ze.replace(x,":-moz-$1")+Ze;break;case ke:Ze=Ze.replace(v,"::-webkit-input-$1")+Ze.replace(v,"::-moz-$1")+Ze.replace(v,":-ms-input-$1")+Ze}xe=0}}return aa+Ze+ea}function Qe(c,s,t){var n=s.trim().split(k),l=n,f=n.length,o=c.length;switch(o){case 0:case 1:for(var h=0,u=0===o?"":c[0]+" ";h0&&$e>0)return l.replace(A,"$1").replace(p,"$1"+Me);break;default:return c.trim()+l.replace(p,"$1"+c.trim())}default:if(t*$e>0&&l.indexOf("\f")>0)return l.replace(p,(c.charCodeAt(0)===ce?"":"$1")+c.trim())}return c+l}function Te(c,s,t,n){var b,k=0,p=c+";",A=2*s+3*t+4*n;if(944===A)return(function(c){var s=c.length,t=c.indexOf(":",9)+1,n=c.substring(0,t).trim(),l=c.substring(t,s-1).trim();switch(c.charCodeAt(9)*Je){case 0:break;case Y:if(110!==c.charCodeAt(10))break;default:var f=l.split((l="",h)),o=0;for(t=0,s=f.length;oU&&p<90||p>96&&p<123||p===Z||p===Y&&b.charCodeAt(1)!==Y))switch(isNaN(parseFloat(b))+(-1!==b.indexOf("("))){case 1:switch(b){case"infinite":case"alternate":case"backwards":case"running":case"normal":case"forwards":case"both":case"none":case"linear":case"ease":case"ease-in":case"ease-out":case"ease-in-out":case"paused":case"reverse":case"alternate-reverse":case"inherit":case"initial":case"unset":case"step-start":case"step-end":break;default:b+=Ke}}k[t++]=b}l+=(0===o?"":",")+k.join(" ")}}return l=n+l+";",1===ye||2===ye&&Ue(l,1)?D+l+l:l})(p);if(0===ye||2===ye&&!Ue(p,1))return p;switch(A){case 1015:return 97===p.charCodeAt(10)?D+p+p:p;case 951:return 116===p.charCodeAt(3)?D+p+p:p;case 963:return 110===p.charCodeAt(5)?D+p+p:p;case 1009:if(100!==p.charCodeAt(4))break;case 969:case 942:return D+p+p;case 978:return D+p+E+p+p;case 1019:case 983:return D+p+E+p+G+p+p;case 883:return p.charCodeAt(8)===Y?D+p+p:p.indexOf("image-set(",11)>0?p.replace(B,"$1-webkit-$2")+p:p;case 932:if(p.charCodeAt(4)===Y)switch(p.charCodeAt(5)){case 103:return"-webkit-box-"+p.replace("-grow","")+D+p+G+p.replace("grow","positive")+p;case 115:return D+p+G+p.replace("shrink","negative")+p;case 98:return D+p+G+p.replace("basis","preferred-size")+p}return D+p+G+p+p;case 964:return D+p+G+"flex-"+p+p;case 1023:if(99!==p.charCodeAt(8))break;return"-webkit-box-pack"+(b=p.substring(p.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+D+p+G+"flex-pack"+b+p;case 1005:return f.test(p)?p.replace(l,":-webkit-")+p.replace(l,":-moz-")+p:p;case 1e3:switch(k=(b=p.substring(13).trim()).indexOf("-")+1,b.charCodeAt(0)+b.charCodeAt(k)){case 226:b=p.replace(N,"tb");break;case 232:b=p.replace(N,"tb-rl");break;case 220:b=p.replace(N,"lr");break;default:return p}return D+p+G+b+p;case 1017:if(-1===p.indexOf("sticky",9))return p;case 975:switch(k=(p=c).length-10,A=(b=(33===p.charCodeAt(k)?p.substring(0,k):p).substring(c.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|b.charCodeAt(7))){case 203:if(b.charCodeAt(8)<111)break;case 115:p=p.replace(b,D+b)+";"+p;break;case 207:case 102:p=p.replace(b,D+(A>102?"inline-":"")+"box")+";"+p.replace(b,D+b)+";"+p.replace(b,G+b+"box")+";"+p}return p+";";case 938:if(p.charCodeAt(5)===Y)switch(p.charCodeAt(6)){case 105:return b=p.replace("-items",""),D+p+D+"box-"+b+G+"flex-"+b+p;case 115:return D+p+G+"flex-item-"+p.replace(F,"")+p;default:return D+p+G+"flex-line-pack"+p.replace("align-content","").replace(F,"")+p}break;case 973:case 989:if(p.charCodeAt(3)!==Y||122===p.charCodeAt(4))break;case 931:case 953:if(!0===q.test(c))return 115===(b=c.substring(c.indexOf(":")+1)).charCodeAt(0)?Te(c.replace("stretch","fill-available"),s,t,n).replace(":fill-available",":stretch"):p.replace(b,D+b)+p.replace(b,E+b.replace("fill-",""))+p;break;case 962:if(p=D+p+(102===p.charCodeAt(5)?G+p:"")+p,t+n===211&&105===p.charCodeAt(13)&&p.indexOf("transform",10)>0)return p.substring(0,p.indexOf(";",27)+1).replace(o,"$1-webkit-$2")+p}return p}function Ue(c,s){var t=c.indexOf(1===s?":":"{"),n=c.substring(0,3!==s?t:10),l=c.substring(t+1,c.length-1);return We(2!==s?n:n.replace(W,"$1"),l,s)}function Ve(c,s){var t=Te(s,s.charCodeAt(0),s.charCodeAt(1),s.charCodeAt(2));return t!==s+";"?t.replace(_," or ($1)").substring(4):"("+s+")"}function Xe(c,s,t,n,l,f,o,h,u,b){for(var k,p=0,A=s;p0&&(Ke=l.replace(w,f===M?"":"-")),f=1,1===$e?Me=l:Le=l;var o,h=[Me];Fe>0&&void 0!==(o=Xe(Be,t,h,h,me,ve,0,0,0,0))&&"string"==typeof o&&(t=o);var u=Pe(Se,h,t,0,0);return Fe>0&&void 0!==(o=Xe(qe,u,h,h,me,ve,u.length,0,0,0))&&"string"!=typeof(u=o)&&(f=0),Ke="",Me="",Le="",xe=0,me=1,ve=1,je*f==0?u:u.replace(n,"").replace($,"").replace(y,"$1").replace(O,"$1").replace(j," ")}return ea.use=function c(s){switch(s){case void 0:case null:Fe=_e.length=0;break;default:if("function"==typeof s)_e[Fe++]=s;else if("object"==typeof s)for(var t=0,n=s.length;t':null}},T=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String;return function(o){if('word'!==o.type)return null;var u=o.value.match(t);return null===u?null:n(u[1])}},N={SPACE:E(function(t){return'space'===t.type}),SLASH:E(function(t){return'div'===t.type&&'/'===t.value}),COMMA:E(function(t){return'div'===t.type&&','===t.value}),WORD:(f='word',function(t){return t.type===f?t.value:null}),NONE:T(/^(none)$/i),AUTO:T(/^(auto)$/i),NUMBER:T(/^([+-]?(?:\d*\.)?\d+(?:[Ee][+-]?\d+)?)$/,Number),LENGTH:T(/^(0$|(?:[+-]?(?:\d*\.)?\d+(?:[Ee][+-]?\d+)?)(?=px$))/,Number),UNSUPPORTED_LENGTH_UNIT:T(/^([+-]?(?:\d*\.)?\d+(?:[Ee][+-]?\d+)?(ch|em|ex|rem|vh|vw|vmin|vmax|cm|mm|in|pc|pt))$/),ANGLE:T(/^([+-]?(?:\d*\.)?\d+(?:[Ee][+-]?\d+)?(?:deg|rad))$/),PERCENT:T(/^([+-]?(?:\d*\.)?\d+(?:[Ee][+-]?\d+)?%)$/),IDENT:T(/(^-?[_a-z][_a-z0-9-]*$)/i),STRING:function(t){return'string'!==t.type?null:t.value.replace(/\\([0-9a-f]{1,6})(?:\s|$)/gi,function(t,n){return String.fromCharCode(parseInt(n,16))}).replace(/\\/g,'')},COLOR:function(t){return'word'===t.type&&(y.test(t.value)||t.value in p||'transparent'===t.value)?t.value:'function'===t.type&&w.test(t.value)?h.stringify(t):null},LINE:T(/^(none|underline|line-through)$/i)},b=N.NONE,S=N.COLOR,k=N.LENGTH,O=N.UNSUPPORTED_LENGTH_UNIT,C=N.SPACE,L=T(/^(solid|dashed|dotted)$/),R=N.LENGTH,P=N.UNSUPPORTED_LENGTH_UNIT,A=N.PERCENT,V=N.COLOR,U=N.SPACE,$=N.NONE,G=function(t){var n=t.types,o=void 0===n?[R,P,A]:n,u=t.directions,c=void 0===u?['Top','Right','Bottom','Left']:u,f=t.prefix,h=void 0===f?'':f,v=t.suffix,p=void 0===v?'':v;return function(t){var n,u=[];for(u.push(t.expect.apply(t,l(o)));u.length<4&&t.hasTokens();)t.expect(U),u.push(t.expect.apply(t,l(o)));t.expectEmpty();var f=u[0],v=u[1],x=void 0===v?f:v,y=u[2],w=void 0===y?f:y,E=u[3],T=void 0===E?x:E,N=function(t){return''+h+c[t]+p};return s(n={},N(0),f),s(n,N(1),x),s(n,N(2),w),s(n,N(3),T),n}},I=function(t){var n=t.expect(R),o=t.matches(U)?t.expect(R):n;return t.expectEmpty(),{width:n,height:o}},_=function(t){var n=void 0,o=void 0,u=void 0,s=void 0;if(t.matches($))return t.expectEmpty(),{offset:{width:0,height:0},radius:0,color:'black'};for(var l=!1;t.hasTokens();)l&&t.expect(U),void 0===n&&t.matches(R,P)?(n=t.lastValue,t.expect(U),o=t.expect(R,P),t.saveRewindPoint(),t.matches(U)&&t.matches(R,P)?u=t.lastValue:t.rewind()):void 0===s&&t.matches(V)?s=t.lastValue:t.throw(),l=!0;return void 0===n&&t.throw(),{offset:{width:n,height:o},radius:void 0!==u?u:0,color:void 0!==s?s:'black'}},H=N.NONE,D=N.AUTO,M=N.NUMBER,B=N.LENGTH,F=N.SPACE,W=N.SPACE,Y=T(/(nowrap|wrap|wrap-reverse)/),j=T(/(row|row-reverse|column|column-reverse)/),X=N.SPACE,z=N.IDENT,Z=N.STRING,q=function(t){var n=void 0;if(t.matches(Z))n=t.lastValue;else for(n=t.expect(z);t.hasTokens();){t.expect(X),n+=' '+t.expect(z)}return t.expectEmpty(),{fontFamily:n}},J=N.SPACE,K=N.LENGTH,Q=N.UNSUPPORTED_LENGTH_UNIT,ee=N.NUMBER,te=N.SLASH,ne=T(/^(normal)$/),re=T(/^(italic)$/),oe=T(/^([1-9]00|bold)$/),ie=T(/^(small-caps)$/),ae=[],ue=N.SPACE,se=N.LINE,le=N.COLOR,ce=T(/^(solid|double|dotted|dashed)$/),de=N.SPACE,fe=N.LINE,he=N.SPACE,ve=N.COMMA,pe=N.LENGTH,me=N.NUMBER,xe=N.ANGLE,ye=function(t){return function(n){var o=n.expect(t);return n.expectEmpty(),o}},we=ye(me),Ee=ye(pe),Te=ye(xe),Ne=function(t){return function(n,o){return function(u){var l=u.expect(t),c=void 0;if(u.hasTokens())u.expect(ve),c=u.expect(t);else{if(void 0===o)return l;c=o}return u.expectEmpty(),[s({},n+'Y',c),s({},n+'X',l)]}}},be=Ne(me),Se=Ne(pe),ke=Ne(xe),ge={perspective:we,scale:be('scale'),scaleX:we,scaleY:we,translate:Se('translate',0),translateX:Ee,translateY:Ee,rotate:Te,rotateX:Te,rotateY:Te,rotateZ:Te,skewX:Te,skewY:Te,skew:ke('skew','0deg')},Oe=N.IDENT,Ce=N.WORD,Le=N.COLOR,Re=N.LENGTH,Pe=N.UNSUPPORTED_LENGTH_UNIT,Ae=N.PERCENT,Ve=N.AUTO,Ue=G({types:[Ce],prefix:'border',suffix:'Color'}),$e=G({directions:['TopLeft','TopRight','BottomRight','BottomLeft'],prefix:'border',suffix:'Radius'}),Ge=G({prefix:'border',suffix:'Width'}),Ie=G({types:[Re,Pe,Ae,Ve],prefix:'margin'}),_e=G({prefix:'padding'}),He={background:function(t){return{backgroundColor:t.expect(Le)}},border:function(t){var n=void 0,o=void 0,u=void 0;if(t.matches(b))return t.expectEmpty(),{borderWidth:0,borderColor:'black',borderStyle:'solid'};for(var s=0;s<3&&t.hasTokens();)0!==s&&t.expect(C),void 0===n&&t.matches(k)||t.matches(O)?n=t.lastValue:void 0===o&&t.matches(S)?o=t.lastValue:void 0===u&&t.matches(L)?u=t.lastValue:t.throw(),s+=1;return t.expectEmpty(),void 0===n&&(n=1),void 0===o&&(o="black"),void 0===u&&(u="solid"),{borderWidth:n,borderColor:o,borderStyle:u}},borderColor:Ue,borderRadius:$e,borderWidth:Ge,boxShadow:function(t){var n=_(t);return{shadowOffset:n.offset,shadowRadius:n.radius,shadowColor:n.color,shadowOpacity:1}},flex:function(t){var n=void 0,o=void 0,u=void 0;if(t.matches(H))return t.expectEmpty(),{flexGrow:0,flexShrink:0,flexBasis:'auto'};if(t.saveRewindPoint(),t.matches(D)&&!t.hasTokens())return{flexGrow:1,flexShrink:1,flexBasis:'auto'};t.rewind();for(var s=0;s<2&&t.hasTokens();)0!==s&&t.expect(F),void 0===n&&t.matches(M)?(n=t.lastValue,t.saveRewindPoint(),t.matches(F)&&t.matches(M)?o=t.lastValue:t.rewind()):void 0===u&&t.matches(B)?u=t.lastValue:void 0===u&&t.matches(D)?u='auto':t.throw(),s+=1;return t.expectEmpty(),void 0===n&&(n=1),void 0===o&&(o=1),void 0===u&&(u=0),{flexGrow:n,flexShrink:o,flexBasis:u}},flexFlow:function(t){for(var n=void 0,o=void 0,u=0;u<2&&t.hasTokens();)0!==u&&t.expect(W),void 0===n&&t.matches(Y)?n=t.lastValue:void 0===o&&t.matches(j)?o=t.lastValue:t.throw(),u+=1;return t.expectEmpty(),void 0===n&&(n="nowrap"),void 0===o&&(o="row"),{flexWrap:n,flexDirection:o}},font:function(t){for(var n=void 0,o=void 0,u=void 0,s=void 0,l=0;l<3&&t.hasTokens();){if(t.matches(ne));else if(void 0===n&&t.matches(re))n=t.lastValue;else if(void 0===o&&t.matches(oe))o=t.lastValue;else{if(void 0!==u||!t.matches(ie))break;u=[t.lastValue]}t.expect(J),l+=1}var c=t.expect(K,Q);t.matches(te)&&(s=t.matches(ee)?c*t.lastValue:t.expect(K,Q)),t.expect(J);var f=q(t).fontFamily;void 0===n&&(n="normal"),void 0===o&&(o="normal"),void 0===u&&(u=ae);var h={fontStyle:n,fontWeight:o,fontVariant:u,fontSize:c,fontFamily:f};return void 0!==s&&(h.lineHeight=s),h},fontFamily:q,fontVariant:function(t){return{fontVariant:[t.expect(Oe)]}},fontWeight:function(t){return{fontWeight:t.expect(Ce)}},margin:Ie,padding:_e,shadowOffset:function(t){return{shadowOffset:I(t)}},textShadow:function(t){var n=_(t);return{textShadowOffset:n.offset,textShadowRadius:n.radius,textShadowColor:n.color}},textShadowOffset:function(t){return{textShadowOffset:I(t)}},textDecoration:function(t){for(var n=void 0,o=void 0,u=void 0,s=!1;t.hasTokens();){if(s&&t.expect(ue),void 0===n&&t.matches(se)){var l=[t.lastValue.toLowerCase()];t.saveRewindPoint(),'none'!==l[0]&&t.matches(ue)&&t.matches(se)?(l.push(t.lastValue.toLowerCase()),l.sort().reverse()):t.rewind(),n=l.join(' ')}else void 0===o&&t.matches(ce)?o=t.lastValue:void 0===u&&t.matches(le)?u=t.lastValue:t.throw();s=!0}return{textDecorationLine:void 0!==n?n:"none",textDecorationColor:void 0!==u?u:"black",textDecorationStyle:void 0!==o?o:"solid"}},textDecorationLine:function(t){for(var n=[],o=!1;t.hasTokens();)o&&t.expect(de),n.push(t.expect(fe).toLowerCase()),o=!0;return n.sort().reverse(),{textDecorationLine:n.join(' ')}},transform:function(t){for(var n=[],o=!1;t.hasTokens();){o&&t.expect(he);var u=t.expectFunction(),l=u.functionName,c=ge[l](u);Array.isArray(c)||(c=[s({},l,c)]),n=c.concat(n),o=!0}return{transform:n}}},De=(function(){function t(n,o){u(this,t),this.index=0,this.nodes=n,this.functionName=null!=o?o.value:null,this.lastValue=null,this.rewindIndex=-1}return n(t,[{key:'hasTokens',value:function(){return this.index<=this.nodes.length-1}},{key:"SYMBOL_MATCH",value:function(){if(!this.hasTokens())return null;for(var t=this.nodes[this.index],n=0;n1&&void 0!==arguments[1]?arguments[1]:[];return n.reduce(function(n,u){var s=ze(u[0]),l=u[1],c=-1===o.indexOf(s);return t(n,Xe(s,l,c))},{})}},432,[60,433,438,440]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]);function s(n){return this instanceof s?(this.nodes=t(n),this):new s(n)}s.prototype.toString=function(){return Array.isArray(this.nodes)?o(this.nodes):''},s.prototype.walk=function(t,o){return n(this.nodes,t,o),this},s.unit=r(d[3]),s.walk=n,s.stringify=o,m.exports=s},433,[434,435,436,437]); -__d(function(g,r,i,a,m,e,d){var o='('.charCodeAt(0),t=')'.charCodeAt(0),c='\''.charCodeAt(0),s='"'.charCodeAt(0),h='\\'.charCodeAt(0),l='/'.charCodeAt(0),n=','.charCodeAt(0),u=':'.charCodeAt(0),f='*'.charCodeAt(0);m.exports=function(p){for(var A,C,v,x,y,w,I,O,b=[],_=p,q=0,j=_.charCodeAt(q),k=_.length,z=[{nodes:b}],B=0,D='',E='',F='';q=48&&c<=57)s+=o[h],l=!0;else if(c===n){if(b)break;b=!0,s+=o[h]}else{if(c!==f&&c!==t)break;if(0!==h)break;s+=o[h]}h+=1}return!!l&&{number:s,unit:o.slice(h)}}},437,[]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},438,[439]); -__d(function(e,f,a,d,r,l,i){r.exports={black:"#000000",silver:"#c0c0c0",gray:"#808080",white:"#ffffff",maroon:"#800000",red:"#ff0000",purple:"#800080",fuchsia:"#ff00ff",green:"#008000",lime:"#00ff00",olive:"#808000",yellow:"#ffff00",navy:"#000080",blue:"#0000ff",teal:"#008080",aqua:"#00ffff",orange:"#ffa500",aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",limegreen:"#32cd32",linen:"#faf0e6",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",oldlace:"#fdf5e6",olivedrab:"#6b8e23",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellowgreen:"#9acd32",rebeccapurple:"#663399"}},439,[]); -__d(function(g,r,i,a,m,e,d){function t(p){return p&&'object'==typeof p?u(p)||c(p)?p:o(p)?l(p,t):y(f(p),function(o,u){return o[n(u)]=t(p[u]),o},{}):p}function n(t){return t.replace(/[_.-](\w|$)/g,function(t,n){return n.toUpperCase()})}m.exports=function(o){return'string'==typeof o?n(o):t(o)};var o=Array.isArray||function(t){return'[object Array]'===Object.prototype.toString.call(t)},u=function(t){return'[object Date]'===Object.prototype.toString.call(t)},c=function(t){return'[object RegExp]'===Object.prototype.toString.call(t)},p=Object.prototype.hasOwnProperty,f=Object.keys||function(t){var n=[];for(var o in t)p.call(t,o)&&n.push(o);return n};function l(t,n){if(t.map)return t.map(n);for(var o=[],u=0;u=0||Object.prototype.hasOwnProperty.call(n,u)&&(l[u]=n[u]);return l}var c=function(l){var o=l.fluid,c=l.children,p=f(l,['fluid','children']);return o?t.default.createElement(u.ContainerFluid,n({'data-name':'container-fluid'},p),c):t.default.createElement(u.Container,n({'data-name':'container'},p),c)};c.propTypes={children:l.default.any,fluid:l.default.bool.isRequired},c.defaultProps={children:null,fluid:!1},e.default=c},444,[57,70,445]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.defineProperty(e,'media',{enumerable:!0,get:function(){return l(t).default}});var n=r(d[1]);Object.defineProperty(e,'Container',{enumerable:!0,get:function(){return l(n).default}});var u=r(d[2]);Object.defineProperty(e,'ContainerFluid',{enumerable:!0,get:function(){return l(u).default}});var f=r(d[3]);Object.defineProperty(e,'Row',{enumerable:!0,get:function(){return l(f).default}});var o=r(d[4]);function l(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,'Col',{enumerable:!0,get:function(){return l(o).default}})},445,[443,446,447,448,449]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=x(['\n width: 100%;\n padding-right: ','px;\n padding-left: ','px;\n margin-right: auto;\n margin-left: auto;\n\n ','\n\n ','\n\n ','\n\n ','\n'],['\n width: 100%;\n padding-right: ','px;\n padding-left: ','px;\n margin-right: auto;\n margin-left: auto;\n\n ','\n\n ','\n\n ','\n\n ','\n']),n=x(['\n max-width: 540px;\n '],['\n max-width: 540px;\n ']),o=x(['\n max-width: 720px;\n '],['\n max-width: 720px;\n ']),p=x(['\n max-width: 960px;\n '],['\n max-width: 960px;\n ']),u=x(['\n max-width: 1140px;\n '],['\n max-width: 1140px;\n ']),h=f(r(d[0])),l=f(r(d[1]));function f(t){return t&&t.__esModule?t:{default:t}}function x(t,n){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(n)}}))}var s=h.default.div(t,function(t){return t.theme&&t.theme.styledBootstrapGrid&&t.theme.styledBootstrapGrid.getContainerPadding?t.theme.styledBootstrapGrid.getContainerPadding():15},function(t){return t.theme&&t.theme.styledBootstrapGrid&&t.theme.styledBootstrapGrid.getContainerPadding?t.theme.styledBootstrapGrid.getContainerPadding():15},l.default.phone(n),l.default.tablet(o),l.default.desktop(p),l.default.giant(u));e.default=s},446,[425,443]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t,n,o=(t=['\n width: 100%;\n padding-right: ','px;\n padding-left: ','px;\n margin-right: auto;\n margin-left: auto;\n'],n=['\n width: 100%;\n padding-right: ','px;\n padding-left: ','px;\n margin-right: auto;\n margin-left: auto;\n'],Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(n)}}))),u=l(r(d[0]));l(r(d[1]));function l(t){return t&&t.__esModule?t:{default:t}}var s=u.default.div(o,function(t){return t.theme&&t.theme.styledBootstrapGrid&&t.theme.styledBootstrapGrid.getContainerPadding?t.theme.styledBootstrapGrid.getContainerPadding():15},function(t){return t.theme&&t.theme.styledBootstrapGrid&&t.theme.styledBootstrapGrid.getContainerPadding?t.theme.styledBootstrapGrid.getContainerPadding():15});e.default=s},447,[425,443]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=f(['\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -','px;\n margin-left: -','px;\n\n ','\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n ','\n'],['\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -','px;\n margin-left: -','px;\n\n ','\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n ','\n']),n=f(['',''],['','']),s=l(r(d[0])),o=l(r(d[1]));function l(t){return t&&t.__esModule?t:{default:t}}function f(t,n){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(n)}}))}var u={alignItems:{start:'\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n ',end:'\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n ',center:'\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n ',baseline:'\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n ',stretch:'\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n '},justifyContent:{start:'\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n ',end:'\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n ',center:'\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n ',between:'\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n ',around:'\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n '}},p=s.default.div(t,function(t){return t.theme&&t.theme.styledBootstrapGrid&&t.theme.styledBootstrapGrid.getRowPadding?t.theme.styledBootstrapGrid.getRowPadding():15},function(t){return t.theme&&t.theme.styledBootstrapGrid&&t.theme.styledBootstrapGrid.getRowPadding?t.theme.styledBootstrapGrid.getRowPadding():15},function(t){return t.alignItems&&u.alignItems[t.alignItems]},function(t){return t.smAlignItems&&o.default.xs(n,u.alignItems[t.xsAlignItems])},function(t){return t.smAlignItems&&o.default.sm(n,u.alignItems[t.smAlignItems])},function(t){return t.mdAlignItems&&o.default.md(n,u.alignItems[t.mdAlignItems])},function(t){return t.lgAlignItems&&o.default.lg(n,u.alignItems[t.lgAlignItems])},function(t){return t.xlAlignItems&&o.default.xl(n,u.alignItems[t.xlAlignItems])},function(t){return t.justifyContent&&u.justifyContent[t.justifyContent]},function(t){return t.smJustifyContent&&o.default.xs(n,u.justifyContent[t.xsJustifyContent])},function(t){return t.smJustifyContent&&o.default.sm(n,u.justifyContent[t.smJustifyContent])},function(t){return t.mdJustifyContent&&o.default.md(n,u.justifyContent[t.mdJustifyContent])},function(t){return t.lgJustifyContent&&o.default.lg(n,u.justifyContent[t.lgJustifyContent])},function(t){return t.xlJustifyContent&&o.default.xl(n,u.justifyContent[t.xlJustifyContent])});e.default=p},448,[425,443]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var n=x(['\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: ','px;\n padding-left: ','px;\n\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n'],['\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: ','px;\n padding-left: ','px;\n\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n\n ','\n ','\n ','\n ','\n ','\n']),t=x(['',''],['','']),l=f(r(d[0])),o=f(r(d[1]));function f(n){return n&&n.__esModule?n:{default:n}}function x(n,t){return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(t)}}))}var u={col:{true:'\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n ',auto:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n ',1:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n ',2:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n ',3:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n ',4:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n ',5:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n ',6:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n ',7:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n ',8:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n ',9:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n ',10:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n ',11:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n ',12:'\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n '},offset:{0:'margin-left: 0;',1:'margin-left: 8.333333%;',2:'margin-left: 16.666667%;',3:'margin-left: 25%;',4:'margin-left: 33.333333%;',5:'margin-left: 41.666667%;',6:'margin-left: 50%;',7:'margin-left: 58.333333%;',8:'margin-left: 66.666667%;',9:'margin-left: 75%;',10:'margin-left: 83.333333%;',11:'margin-left: 91.666667%;'},order:{first:'\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n ',last:'\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n ',0:'\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n ',1:'\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n ',2:'\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n ',3:'\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n ',4:'\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n ',5:'\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n ',6:'\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n ',7:'\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n ',8:'\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n ',9:'\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n ',10:'\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n ',11:'\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n ',12:'\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n '},alignSelf:{auto:'\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n ',start:'\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n ',end:'\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n ',center:'\n -ms-flex-item-align: center !important;\n align-self: center !important;\n ',baseline:'\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n ',stretch:'\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n '},noGutter:'\n margin-right: 0;\n margin-left: 0;\n '},s=l.default.div(n,function(n){return n.theme&&n.theme.styledBootstrapGrid&&n.theme.styledBootstrapGrid.getColPadding?n.theme.styledBootstrapGrid.getColPadding():15},function(n){return n.theme&&n.theme.styledBootstrapGrid&&n.theme.styledBootstrapGrid.getColPadding?n.theme.styledBootstrapGrid.getColPadding():15},function(n){return n.noGutter&&u.noGutter},function(n){return n.col&&u.col[n.col]},function(n){return n.offset&&u.offset[n.offset]},function(n){return n.auto&&u.col.auto},function(n){return n.alignSelf&&u.alignSelf[n.alignSelf]},function(n){return n.order&&u.order[n.order]},function(n){return n.xs&&o.default.xs(t,u.col[n.xs])},function(n){return!isNaN(parseInt(n.xsOffset,10))&&o.default.xs(t,u.offset[n.xsOffset])},function(n){return n.xsAuto&&o.default.xs(t,u.col.auto)},function(n){return n.xsAlignSelf&&o.default.xs(t,u.alignSelf[n.xsAlignSelf])},function(n){return n.xsOrder&&o.default.xs(t,u.order[n.xsOrder])},function(n){return n.sm&&o.default.sm(t,u.col[n.sm])},function(n){return!isNaN(parseInt(n.smOffset,10))&&o.default.sm(t,u.offset[n.smOffset])},function(n){return n.smAuto&&o.default.sm(t,u.col.auto)},function(n){return n.smAlignSelf&&o.default.sm(t,u.alignSelf[n.smAlignSelf])},function(n){return n.smOrder&&o.default.sm(t,u.order[n.smOrder])},function(n){return n.md&&o.default.md(t,u.col[n.md])},function(n){return!isNaN(parseInt(n.mdOffset,10))&&o.default.md(t,u.offset[n.mdOffset])},function(n){return n.mdAuto&&o.default.md(t,u.col.auto)},function(n){return n.mdAlignSelf&&o.default.md(t,u.alignSelf[n.mdAlignSelf])},function(n){return n.mdOrder&&o.default.md(t,u.order[n.mdOrder])},function(n){return n.lg&&o.default.lg(t,u.col[n.lg])},function(n){return!isNaN(parseInt(n.lgOffset,10))&&o.default.lg(t,u.offset[n.lgOffset])},function(n){return n.lgAuto&&o.default.lg(t,u.col.auto)},function(n){return n.lgAlignSelf&&o.default.lg(t,u.alignSelf[n.lgAlignSelf])},function(n){return n.lgOrder&&o.default.lg(t,u.order[n.lgOrder])},function(n){return n.xl&&o.default.xl(t,u.col[n.xl])},function(n){return!isNaN(parseInt(n.xlOffset,10))&&o.default.xl(t,u.offset[n.xlOffset])},function(n){return n.xlAuto&&o.default.xl(t,u.col.auto)},function(n){return n.xlAlignSelf&&o.default.xl(t,u.alignSelf[n.xlAlignSelf])},function(n){return n.xlOrder&&o.default.xl(t,u.order[n.xlOrder])});e.default=s},449,[425,443]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(t){for(var n=1;n=0||Object.prototype.hasOwnProperty.call(t,l)&&(s[l]=t[l]);return s}var o=function(s){var u=s.children,o=s.alignItems,y=s.smAlignItems,c=s.mdAlignItems,C=s.lgAlignItems,I=s.xlAlignItems,A=s.justifyContent,J=s.smJustifyContent,j=s.mdJustifyContent,p=s.lgJustifyContent,x=s.xlJustifyContent,v=f(s,['children','alignItems','smAlignItems','mdAlignItems','lgAlignItems','xlAlignItems','justifyContent','smJustifyContent','mdJustifyContent','lgJustifyContent','xlJustifyContent']),h='row';return o&&(h=h+' align-items-'+o),y&&(h=h+' align-items-sm-'+y),c&&(h=h+' align-items-md-'+c),C&&(h=h+' align-items-lg-'+C),I&&(h=h+' align-items-xl-'+I),A&&(h=h+' justify-content-'+A),J&&(h=h+' justify-content-sm-'+J),j&&(h=h+' justify-content-md-'+j),p&&(h=h+' justify-content-lg-'+p),x&&(h=h+' justify-content-xl-'+x),h=h.trim(),n.default.createElement(l.Row,t({alignItems:o,smAlignItems:y,mdAlignItems:c,lgAlignItems:C,xlAlignItems:I,justifyContent:A,smJustifyContent:J,mdJustifyContent:j,lgJustifyContent:p,xlJustifyContent:x,'data-name':h},v),u)};o.propTypes={children:s.default.any,alignItems:s.default.string,smAlignItems:s.default.string,mdAlignItems:s.default.string,lgAlignItems:s.default.string,xlAlignItems:s.default.string,justifyContent:s.default.string,smJustifyContent:s.default.string,mdJustifyContent:s.default.string,lgJustifyContent:s.default.string,xlJustifyContent:s.default.string},o.defaultProps={children:null},e.default=o},450,[57,70,445]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var l=Object.assign||function(l){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(l,f)&&(s[f]=l[f]);return s}var u=function(s){var o=s.col,u=s.offset,x=s.auto,O=s.alignSelf,A=s.order,c=s.xs,N=s.xsOffset,p=s.xsAuto,S=s.xsAlignSelf,I=s.xsOrder,b=s.sm,v=s.smOffset,y=s.smAuto,h=s.smAlignSelf,_=s.smOrder,j=s.md,G=s.mdOffset,P=s.mdAuto,T=s.mdAlignSelf,w=s.mdOrder,M=s.lg,C=s.lgOffset,E=s.lgAuto,k=s.lgAlignSelf,q=s.lgOrder,z=s.xl,B=s.xlOffset,D=s.xlAuto,F=s.xlAlignSelf,H=s.xlOrder,J=s.noGutter,K=s.children,L=n(s,['col','offset','auto','alignSelf','order','xs','xsOffset','xsAuto','xsAlignSelf','xsOrder','sm','smOffset','smAuto','smAlignSelf','smOrder','md','mdOffset','mdAuto','mdAlignSelf','mdOrder','lg','lgOffset','lgAuto','lgAlignSelf','lgOrder','xl','xlOffset','xlAuto','xlAlignSelf','xlOrder','noGutter','children']),Q='';o&&(isNaN(parseInt(o,10))?Q+=' col':Q=Q+' col-'+o),isNaN(parseInt(u,10))||(Q=Q+' offset-'+u),x&&(Q+=' col-auto'),O&&(Q=Q+' align-self-'+O),isNaN(parseInt(A,10))&&'first'!==A&&'last'!==A||(Q=Q+' order-'+A),c&&(isNaN(parseInt(c,10))?Q+=' col-xs':Q=Q+' col-xs-'+c),isNaN(parseInt(N,10))||(Q=Q+' offset-xs-'+N),p&&(Q+=' col-xs-auto'),S&&(Q=Q+' align-self-xs-'+S),isNaN(parseInt(I,10))&&'first'!==I&&'last'!==I||(Q=Q+' order-xs-'+I),b&&(isNaN(parseInt(b,10))?Q+=' col-sm':Q=Q+' col-sm-'+b),isNaN(parseInt(v,10))||(Q=Q+' offset-sm-'+v),y&&(Q+=' col-sm-auto'),h&&(Q=Q+' align-self-sm-'+h),isNaN(parseInt(_,10))&&'first'!==_&&'last'!==_||(Q=Q+' order-sm-'+_),j&&(isNaN(parseInt(j,10))?Q+=' col-md':Q=Q+' col-md-'+j),isNaN(parseInt(G,10))||(Q=Q+' offset-md-'+G),P&&(Q+=' col-md-auto'),T&&(Q=Q+' align-self-md-'+T),isNaN(parseInt(w,10))&&'first'!==w&&'last'!==w||(Q=Q+' order-md-'+w),M&&(isNaN(parseInt(M,10))?Q+=' col-lg':Q=Q+' col-lg-'+M),isNaN(parseInt(C,10))||(Q=Q+' offset-lg-'+C),E&&(Q+=' col-lg-auto'),k&&(Q=Q+' align-self-lg-'+k),isNaN(parseInt(q,10))&&'first'!==q&&'last'!==q||(Q=Q+' order-lg-'+q),z&&(isNaN(parseInt(z,10))?Q+=' col-xl':Q=Q+' col-xl-'+z),isNaN(parseInt(B,10))||(Q=Q+' offset-xl-'+B),D&&(Q+=' col-xl-auto'),F&&(Q=Q+' align-self-xl-'+F),isNaN(parseInt(H,10))&&'first'!==H&&'last'!==H||(Q=Q+' order-xl-'+H),J&&(Q+=' no-gutter'),Q=Q.trim();var R=l({col:o,offset:u,auto:x,alignSelf:O,order:A,xs:c,xsOffset:N,xsAuto:p,xsAlignSelf:S,xsOrder:I,sm:b,smOffset:v,smAuto:y,smAlignSelf:h,smOrder:_,md:j,mdOffset:G,mdAuto:P,mdAlignSelf:T,mdOrder:w,lg:M,lgOffset:C,lgAuto:E,lgAlignSelf:k,lgOrder:q,xl:z,xlOffset:B,xlAuto:D,xlAlignSelf:F,xlOrder:H,noGutter:J,'data-name':Q},L);return t.default.createElement(f.Col,R,K)},x=s.default.oneOfType([s.default.string,s.default.number]),O=s.default.oneOfType([s.default.string,s.default.number,s.default.bool]);u.propTypes={children:s.default.any,noGutter:s.default.bool,col:O,auto:s.default.bool,alignSelf:s.default.string,order:x,xs:O,xsOffset:x,xsAuto:s.default.bool,xsAlignSelf:s.default.string,xsOrder:x,sm:O,smOffset:x,smAuto:s.default.bool,smAlignSelf:s.default.string,smOrder:x,md:O,mdOffset:x,mdAuto:s.default.bool,mdAlignSelf:s.default.string,mdOrder:x,lg:O,lgOffset:x,lgAuto:s.default.bool,lgAlignSelf:s.default.string,lgOrder:x,xl:O,xlOffset:x,xlAuto:s.default.bool,xlAlignSelf:s.default.string,xlOrder:x},u.defaultProps={children:null},e.default=u},451,[57,70,445]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var n=b(['',''],['','']),t=b(['\n ','\n ','\n '],['\n ','\n ','\n ']),o=r(d[0]);function b(n,t){return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(t)}}))}var l='\n @-ms-viewport {\n width: device-width;\n }\n\n html {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n }\n\n *,\n *::before,\n *::after {\n -webkit-box-sizing: inherit;\n box-sizing: inherit;\n }\n';e.default=function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return null==b?(0,o.injectGlobal)(n,l):(0,o.injectGlobal)(t,l,b)}},452,[425]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var n,t=Object.assign||function(n){for(var t=1;t1?t-1:0),p=1;p1?v(o):100*o+'%'};e.getWidth=A;var C=function(o){var t,n=o.key,p=o.prop,s=void 0===p?'variant':p,l=function(o){return y(o.theme,n,o[s])||null};return l.propTypes=((t={})[s]=u.numberOrString,t),l};e.variant=C;var T={propTypes:u,defaultBreakpoints:l,is:f,num:c,px:v,get:y,themeGet:b,cloneFunc:h,merge:k,compose:x,createMediaQuery:S,style:w};e.util=T;var R=function(o){return o<0},V=/^[mp][trblxy]?$/,z={m:'margin',p:'padding'},W={t:'Top',r:'Right',b:'Bottom',l:'Left',x:['Left','Right'],y:['Top','Bottom']},j=function(o){var t=o.split(''),n=t[0],p=t[1],s=z[n],u=W[p]||'';return Array.isArray(u)?u.map(function(o){return s+o}):[s+u]},H=function(o){return function(t){if(!c(t))return v(o[t]||t);var n=Math.abs(t),p=R(t),s=o[n]||n;return c(s)?v(s*(p?-1:1)):p?'-'+s:s}},I=[0,4,8,16,32,64,128,256,512],B=function(o){var t=Object.keys(o).filter(function(o){return V.test(o)}).sort(),p=y(o.theme,'space')||I,s=H(p);return t.map(function(t){var p=o[t],u=j(t),c=function(o){return f(o)?u.reduce(function(t,p){var u;return(0,n.default)({},t,((u={})[p]=s(o),u))},{}):null};if(!Array.isArray(p))return c(p);for(var v=[null].concat((y(o.theme,'breakpoints')||l).map(S)),b={},h=0;h0?o+'px solid':o},zr=w({prop:'border',key:'borders',transformValue:Vr});e.border=zr;var Wr=w({prop:'borderTop',key:'borders',transformValue:Vr});e.borderTop=Wr;var jr=w({prop:'borderRight',key:'borders',transformValue:Vr});e.borderRight=jr;var Hr=w({prop:'borderBottom',key:'borders',transformValue:Vr});e.borderBottom=Hr;var Ir=w({prop:'borderLeft',key:'borders',transformValue:Vr});e.borderLeft=Ir;var Br=x(zr,Wr,jr,Hr,Ir);e.borders=Br;var Gr=w({prop:'borderColor',key:'colors'});e.borderColor=Gr;var Pr=w({prop:'borderRadius',key:'radii',transformValue:v});e.borderRadius=Pr;var Fr=w({prop:'boxShadow',key:'shadows'});e.boxShadow=Fr;var Or=w({prop:'opacity'});e.opacity=Or;var Lr=w({prop:'overflow'});e.overflow=Lr;var Mr=w({prop:'background'});e.background=Mr;var Dr=w({prop:'backgroundImage'});e.backgroundImage=Dr;var _r=w({prop:'backgroundSize'});e.backgroundSize=_r;var Qr=w({prop:'backgroundPosition'});e.backgroundPosition=Qr;var Kr=w({prop:'backgroundRepeat'});e.backgroundRepeat=Kr;var Nr=w({prop:'position'});e.position=Nr;var Er=w({prop:'zIndex'});e.zIndex=Er;var $r=w({prop:'top',transformValue:v});e.top=$r;var qr=w({prop:'right',transformValue:v});e.right=qr;var Jr=w({prop:'bottom',transformValue:v});e.bottom=Jr;var Ur=w({prop:'left',transformValue:v});e.left=Ur;var Xr=C({prop:'textStyle',key:'textStyles'});e.textStyle=Xr;var Yr=C({prop:'colors',key:'colorStyles'});e.colorStyle=Yr;var Zr=C({key:'buttons'});e.buttonStyle=Zr;var re={space:B,width:P,fontSize:F,textColor:O,bgColor:L,color:M,fontFamily:D,textAlign:_,lineHeight:Q,fontWeight:K,fontStyle:N,letterSpacing:E,display:$,maxWidth:q,minWidth:J,height:U,maxHeight:X,minHeight:Y,sizeWidth:Z,sizeHeight:rr,size:er,ratioPadding:or,ratio:tr,verticalAlign:nr,alignItems:ar,alignContent:ir,justifyItems:pr,justifyContent:sr,flexWrap:ur,flexBasis:lr,flexDirection:dr,flex:fr,justifySelf:gr,alignSelf:mr,order:cr,gridGap:vr,gridColumnGap:yr,gridRowGap:br,gridColumn:hr,gridRow:kr,gridAutoFlow:xr,gridAutoColumns:Sr,gridAutoRows:wr,gridTemplateColumns:Ar,gridTemplateRows:Cr,gridTemplateAreas:Tr,gridArea:Rr,border:zr,borderTop:Wr,borderRight:jr,borderBottom:Hr,borderLeft:Ir,borders:Br,borderColor:Gr,borderRadius:Pr,boxShadow:Fr,opacity:Or,overflow:Lr,background:Mr,backgroundImage:Dr,backgroundPosition:Qr,backgroundRepeat:Kr,backgroundSize:_r,position:Nr,zIndex:Er,top:$r,right:qr,bottom:Jr,left:Ur,textStyle:Xr,colorStyle:Yr,buttonStyle:Zr};e.styles=re;var ee=function(o,t){var n={};for(var p in o)t.indexOf(p)>-1||(n[p]=o[p]);return n},oe=Object.keys(re).map(function(o){return re[o]}).filter(function(o){return'function'==typeof o}),te=oe.reduce(function(o,t){return o.concat(Object.keys(t.propTypes||{}))},['theme']);e.mixed=function(o){return oe.map(function(t){return t(o)}).reduce(k,ee(o,te))}},456,[60,1,70]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},457,[458]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Display=e.Serif=e.Sans=e.Text=e.renderFontValue=void 0;var t,n=(t=r(d[0]))&&t.__esModule?t:{default:t},o=r(d[1]),l=r(d[2]),f=r(d[3]),c=r(d[4]);function u(){return(u=Object.assign||function(t){for(var n=1;n=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(f[o]=t[o])}return f}function y(t,n){if(null==t)return{};var o,l,f={},c=Object.keys(t);for(l=0;l=0||(f[o]=t[o]);return f}function p(){var t=h([""]);return p=function(){return t},t}function v(){var t=h(["\n ",";\n ",";\n ",";\n ",";\n ",";\n ",";\n ",";\n ",";\n ",";\n"]);return v=function(){return t},t}function h(t,n){return n||(n=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(n)}}))}var O=(0,f.style)({prop:"verticalAlign"}),b=function(t){return"string"==typeof t?"font-family: ".concat(t):["font-family: ".concat(t.fontFamily)].concat(t.fontStyle?"font-style: ".concat(t.fontStyle):[]).concat(t.fontWeight?"font-weight: ".concat(t.fontWeight):[]).join(";\n")};e.renderFontValue=b;var w=o.styled.Text(v(),function(t){var n=t.fontFamily;return n&&b(n)},f.fontSize,f.lineHeight,f.color,f.display,f.maxWidth,f.space,f.textAlign,O);function S(t){if(null!==t)return t||"regular"}function j(t,n){return n?"italic":t}function x(t){var f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:j;return(0,o.styledWrapper)(function(o){var y=o.size,p=o.weight,v=o.italic,h=o.element,O=s(o,["size","weight","italic","element"]),b=f(S(p),v);if(null===b)throw new Error("Did not expect `fontType` to be `null`.");return n.default.createElement(w,u({fontFamily:b&&l.themeProps.fontFamily[t][b]},(0,c.determineFontSizes)(t,y),h?{as:h}:{},O))})(p())}e.Text=w;var F=x("sans",function(t,n){return n&&"medium"===t?"mediumItalic":j(t,n)});e.Sans=F;var z=x("serif",function(t,n){if(n&&t&&"regular"!==t)throw new Error("The serif font does not have an italic font with weight `".concat(t,"`"));return j(t,n)});e.Serif=z;var P=x("display");e.Display=P,F.displayName="Sans",z.displayName="Serif",P.displayName="Display"},458,[57,424,420,456,459]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.determineFontSizes=function(o,c){if(!Array.isArray(c)){var f=t.themeProps.typeSizes[o][c];return{fontSize:"".concat(f.fontSize,"px"),lineHeight:"".concat(f.lineHeight,"px")}}return c.map(function(n){return t.themeProps.typeSizes[o][n]}).reduce(function(t,o){return{fontSize:[].concat(n(t.fontSize),["".concat(o.fontSize,"px")]),lineHeight:[].concat(n(t.lineHeight),["".concat(o.lineHeight,"px")])}},{fontSize:[],lineHeight:[]})};var t=r(d[0]);function n(t){return f(t)||c(t)||o()}function o(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function c(t){if(("function"==typeof Symbol?Symbol.iterator:"@@iterator")in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}function f(t){if(Array.isArray(t)){for(var n=0,o=new Array(t.length);n links */\n\n "," {\n a {\n color: inherit;\n &:hover {\n color: ",";\n }\n &:active {\n color: ",";\n }\n &.noUnderline {\n ",";\n }\n &.colorLink {\n ",";\n ",";\n }\n }\n }\n\n /* links */\n\n "," {\n a {\n color: inherit;\n &:hover {\n color: ",";\n }\n &:active {\n color: ",";\n }\n &.noUnderline {\n ",";\n }\n &.colorLink {\n ",";\n ",";\n }\n }\n }\n\n /* links */\n\n "," {\n a {\n color: ",";\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-style: inherit;\n font-family: inherit;\n font-weight: inherit;\n font-size: inherit;\n margin: 0;\n }\n \n ",";\n "]);return l=function(){return n},n}function c(n,o){return o||(o=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(o)}}))}var s=(0,n.css)(["text-decoration:none;&:hover{text-decoration:underline;}"]),h=(0,n.css)(["color:",";"],(0,t.color)("purple100"))},469,[425,457,419]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.media=void 0;var t=r(d[0]),n=r(d[1]);function o(t){for(var n=1;n1?o-1:0),c=1;c=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(u[o]=t[o])}return u}function S(t,n){if(null==t)return{};var o,l,u={},s=Object.keys(t);for(l=0;l=0||(u[o]=t[o]);return u}function j(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function _(t,n){for(var o=0;oo){if('identity'===f)return h;'clamp'===f&&(h=o)}return s===u?s:n===o?t<=n?s:u:(n===-1/0?h=-h:o===1/0?h-=n:h=(h-n)/(o-n),h=l(h),s===-1/0?h=-h:u===1/0?h+=s:h=h*(u-s)+s,h)}function O(t,n){for(var o=1;o=t);++o);return o-1}var q=(function(t){function n(s,u,l){var c;return(c=t.call(this)||this).getValue=function(){var t;return(t=c).calc.apply(t,c.payload.map(function(t){return t.getValue()}))},c.updateConfig=function(t,n){return c.calc=M.create(t,n)},c.interpolate=function(t,s){return new n(o(c),t,s)},c.payload=s instanceof T&&!s.updateConfig?s.payload:Array.isArray(s)?s:[s],c.calc=M.create(u,l),c}return s(n,t),n})(T);function D(t,n){'function'==typeof t.update?n.add(t):t.getChildren().forEach(function(t){return D(t,n)})}var _=(function(t){function n(n){var s;return(s=t.call(this)||this).setValue=function(t,n){void 0===n&&(n=!0),s.value=t,n&&s.flush()},s.getValue=function(){return s.value},s.updateStyles=function(){return D(o(s),s.animatedStyles)},s.updateValue=function(t){return s.flush(s.value=t)},s.interpolate=function(t,n){return new q(o(s),t,n)},s.value=n,s.animatedStyles=new Set,s.done=!1,s.startPosition=n,s.lastPosition=n,s.lastVelocity=void 0,s.lastTime=void 0,s.controller=void 0,s}s(n,t);var u=n.prototype;return u.flush=function(){0===this.animatedStyles.size&&this.updateStyles(),this.animatedStyles.forEach(function(t){return t.update()})},u.prepare=function(t){void 0===this.controller&&(this.controller=t),this.controller===t&&(this.startPosition=this.value,this.lastPosition=this.value,this.lastVelocity=t.isActive?this.lastVelocity:void 0,this.lastTime=t.isActive?this.lastTime:void 0,this.done=!1,this.animatedStyles.clear())},n})(F),K=(function(t){function n(n){var s;return(s=t.call(this)||this).setValue=function(t,n){void 0===n&&(n=!0),Array.isArray(t)?t.length===s.payload.length&&t.forEach(function(t,o){return s.payload[o].setValue(t,n)}):s.payload.forEach(function(o,u){return s.payload[u].setValue(t,n)})},s.getValue=function(){return s.payload.map(function(t){return t.getValue()})},s.interpolate=function(t,n){return new q(o(s),t,n)},s.payload=n.map(function(t){return new _(t)}),s}return s(n,t),n})(T),N=!1,W=new Set,z=function t(){var n=b(),o=W,s=Array.isArray(o),u=0;for(o=s?o:o["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(s){if(u>=o.length)break;l=o[u++]}else{if((u=o.next()).done)break;l=u.value}for(var c=l,f=!0,p=!0,h=0;h=c.startTime+y.delay+y.duration;else if(y.decay)j=P+E/.0020000000000000018*(1-Math.exp(-.0020000000000000018*(n-c.startTime))),(w=Math.abs(V.lastPosition-j)<.1)&&(x=j);else{A=void 0!==V.lastTime?V.lastTime:n,E=void 0!==V.lastVelocity?V.lastVelocity:y.initialVelocity,n>A+64&&(A=n);for(var R=Math.floor(n-A),F=0;Fx:j1?n-1:0),s=1;s1?R-1:0),T=1;T1&&(o-=1),o<.16666666666666666?t+6*(n-t)*o:o<.5?n:o<.6666666666666666?t+(n-t)*(.6666666666666666-o)*6:t}function Pt(t,n,o){var s=o<.5?o*(1+n):o+n-o*n,u=2*o-s,l=Vt(u,s,t+.3333333333333333),c=Vt(u,s,t),f=Vt(u,s,t-.3333333333333333);return Math.round(255*l)<<24|Math.round(255*c)<<16|Math.round(255*f)<<8}function xt(t){var n=parseInt(t,10);return n<0?0:n>255?255:n}function jt(t){return(parseFloat(t)%360+360)%360/360}function St(t){var n=parseFloat(t);return n<0?0:n>1?255:Math.round(255*n)}function Et(t){var n=parseFloat(t);return n<0?0:n>100?1:n/100}function Ct(t){var n,o,s='number'==typeof(n=t)?n>>>0===n&&n>=0&&n<=4294967295?n:null:(o=At.exec(n))?parseInt(o[1]+'ff',16)>>>0:ft.hasOwnProperty(n)?ft[n]:(o=mt.exec(n))?(xt(o[1])<<24|xt(o[2])<<16|xt(o[3])<<8|255)>>>0:(o=vt.exec(n))?(xt(o[1])<<24|xt(o[2])<<16|xt(o[3])<<8|St(o[4]))>>>0:(o=wt.exec(n))?parseInt(o[1]+o[1]+o[2]+o[2]+o[3]+o[3]+'ff',16)>>>0:(o=kt.exec(n))?parseInt(o[1],16)>>>0:(o=bt.exec(n))?parseInt(o[1]+o[1]+o[2]+o[2]+o[3]+o[3]+o[4]+o[4],16)>>>0:(o=yt.exec(n))?(255|Pt(jt(o[1]),Et(o[2]),Et(o[3])))>>>0:(o=gt.exec(n))?(Pt(jt(o[1]),Et(o[2]),Et(o[3]))|St(o[4]))>>>0:null;return null===s?t:"rgba("+((4278190080&(s=s||0))>>>24)+", "+((16711680&s)>>>16)+", "+((65280&s)>>>8)+", "+(255&s)/255+")"}var Rt=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,Ft=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,Tt=new RegExp("("+Object.keys(ft).join('|')+")",'g');var It=(function(t){function n(n){var o;return(o=t.call(this)||this)._transforms=n,o}s(n,t);var o=n.prototype;return o.getValue=function(){return this._transforms.map(function(t){var n={};for(var o in t){var s=t[o];n[o]=s instanceof C?s.getValue():s}return n})},o.getAnimatedValue=function(){return this._transforms.map(function(t){var n={};for(var o in t){var s=t[o];n[o]=s instanceof C?s.getAnimatedValue():s}return n})},o.attach=function(){var t=this;this._transforms.forEach(function(n){for(var o in n){var s=n[o];s instanceof C&&s.addChild(t)}})},o.detach=function(){var t=this;this._transforms.forEach(function(n){for(var o in n){var s=n[o];s instanceof C&&s.removeChild(t)}})},n})(F);j(c.View),x(function(t){var o=t.output.map(function(t){return t.replace(Ft,Ct)}).map(function(t){return t.replace(Tt,Ct)}),s=o[0].match(Rt).map(function(){return[]});o.forEach(function(t){t.match(Rt).forEach(function(t,n){return s[n].push(+t)})});var u=o[0].match(Rt).map(function(o,u){return M.create(n({},t,{output:s[u]}))});return function(t){var n=0;return o[0].replace(Rt,function(){return u[n++](t)}).replace(/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,function(t,n,o,s,u){return"rgba("+Math.round(n)+", "+Math.round(o)+", "+Math.round(s)+", "+u+")"})}}),P(ft),V(function(t,n){return!!t.setNativeProps&&t.setNativeProps(n)},function(t){return n({},t,{transform:new It(t.transform)})}),S(function(t){return new rt(c.StyleSheet.flatten(t))}),e.Spring=it,e.Keyframes=st,e.Transition=ct,e.Trail=ot,e.Controller=tt,e.config=nt,e.animated=function(t){var c=(function(c){function f(t){var n;return(n=c.call(this)||this).callback=function(){n.node&&!1===p.fn(n.node,n.propsAnimated.getAnimatedValue(),o(n))&&n.forceUpdate()},n.attachProps(t),n}s(f,c);var h=f.prototype;return h.componentWillUnmount=function(){this.propsAnimated&&this.propsAnimated.detach()},h.setNativeProps=function(t){!1===p.fn(this.node,t,this)&&this.forceUpdate()},h.attachProps=function(t){t.forwardRef;var n=u(t,["forwardRef"]),o=this.propsAnimated;this.propsAnimated=new et(n,this.callback),o&&o.detach()},h.shouldComponentUpdate=function(t){var n=t.style,o=u(t,["style"]),s=this.props,l=s.style;return!(G(u(s,["style"]),o)&&G(l,n)||(this.attachProps(t),0))},h.render=function(){var o=this,s=this.propsAnimated.getValue(),c=(s.scrollTop,s.scrollLeft,u(s,["scrollTop","scrollLeft"]));return l.createElement(t,n({},c,{ref:function(t){return o.node=Z(t,o.props.forwardRef)}}))},f})(l.Component);return l.forwardRef(function(t,o){return l.createElement(c,n({},t,{forwardRef:o}))})},e.interpolate=function(t,n,o){return t&&new q(t,n,o)},e.Globals=E},476,[477,478,479,480,57,3]); -__d(function(g,r,i,a,m,e,d){function t(){return m.exports=t=Object.assign||function(t){for(var n=1;n=0||(o[f]=n[f]);return o}},480,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},481,[482,483]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Spinner=void 0;var t=f(r(d[0])),n=r(d[1]),o=f(r(d[2])),u=r(d[3]),c=r(d[4]);function f(t){return t&&t.__esModule?t:{default:t}}function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof t})(t)}function p(){return(p=Object.assign||function(t){for(var n=1;n=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(c[o]=t[o])}return c}function f(t,n){if(null==t)return{};var o,u,c={},f=Object.keys(t);for(u=0;u=0||(c[o]=t[o]);return c}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function s(t){if(("function"==typeof Symbol?Symbol.iterator:"@@iterator")in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}function y(t){if(Array.isArray(t)){for(var n=0,o=new Array(t.length);n-1||(o[u]=t[u]);return o};e.omit=w;var P=function(t){return"string"==typeof t?t:t.displayName||"Tag"};function h(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u.View,o=n.default.forwardRef(function(o,u){var f=o.is,l=void 0===f?t:f,s=o.omitFromProps,y=void 0===s?j:s,b=c(o,["is","omitFromProps"]);return n.default.createElement(l,p({ref:u},w(b,y)))});return o.displayName="Clean.".concat(P(t)),o}var S=h();e.CleanTag=S,S.as=h},488,[57,456,424]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},489,[490]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Collapse=void 0;var t,n=(t=r(d[0]))&&t.__esModule?t:{default:t},o=r(d[1]),u=r(d[2]);function s(t){return(s="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof t})(t)}function f(t){for(var n=1;n=0||Object.prototype.propertyIsEnumerable.call(t,l)&&(f[l]=t[l])}return f}function s(t,n){if(null==t)return{};var l,o,f={},u=Object.keys(t);for(o=0;o=0||(f[l]=t[l]);return f}var y=function(t){t.href;var s=t.imageUrl,y=t.initials,p=t.name,b=t.meta,O=t.FollowButton,v=c(t,["href","imageUrl","initials","name","meta","FollowButton"]);return n.default.createElement(o.Flex,u({flexDirection:"row",justifyContent:"space-between",flexWrap:"nowrap"},v),(s||y)&&n.default.createElement(o.Flex,{mr:1,justifyContent:"center"},n.default.createElement(l.Avatar,{size:"xs",src:s,initials:y})),n.default.createElement(o.Flex,{justifyContent:"center",width:0,flexGrow:1},n.default.createElement(f.Serif,{ellipsizeMode:"tail",numberOfLines:1,size:"3t",color:"black100"},p),!!b&&n.default.createElement(f.Sans,{ellipsizeMode:"tail",numberOfLines:1,size:"2",color:"black60"},b)),O&&n.default.createElement(o.Flex,{ml:1,flexDirection:"row",alignItems:"center",justifyContent:"flex-end"},O))};e.EntityHeader=y,y.displayName="EntityHeader",y.displayName="EntityHeader"},500,[57,416,454,457]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},501,[502]); -__d(function(g,r,i,a,m,e,d){"use strict"},502,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},503,[504]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResponsiveImage=e.Image=void 0;var s=r(d[0]),o=s.BaseImage;e.Image=o,o.displayName="Image";var v=s.BaseResponsiveImage;e.ResponsiveImage=v,v.displayName="ResponsiveImage"},504,[505]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BaseResponsiveImage=e.BaseImage=void 0;var s,t=(s=r(d[0]))&&s.__esModule?s:{default:s},o=r(d[1]),n=r(d[2]),c=r(d[3]);var u=(0,t.default)(n.CleanTag.as(o.Image)).withConfig({displayName:"Imageshared__BaseImage",componentId:"sc-1dymtq1-0"})(["",";",";",";",""],c.space,c.width,c.height,c.borderRadius);e.BaseImage=u;var p=(0,t.default)(n.CleanTag).withConfig({displayName:"Imageshared__BaseResponsiveImage",componentId:"sc-1dymtq1-1"})(["background:url(",");background-size:contain;background-repeat:no-repeat;background-position:center;",";",";",";",";"],function(s){return s.src},c.ratio,c.space,c.width,c.maxWidth);e.BaseResponsiveImage=p,p.defaultProps={width:"100%",ratio:1}},505,[425,424,487,456]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},506,[507]); -__d(function(g,r,i,a,m,e,d){"use strict"},507,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},508,[509]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Join=void 0;var n,t=(n=r(d[0]))&&n.__esModule?n:{default:n};e.Join=function(n){var o=n.separator,u=n.children,l=t.default.Children.toArray(u);return l.reduce(function(n,u,c){return n.push(t.default.cloneElement(u,{key:"join-".concat(c)})),c!==l.length-1&&n.push(o&&t.default.cloneElement(o,{key:"join-sep-".concat(c)})),n},[])}},509,[57]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},510,[511]); -__d(function(g,r,i,a,m,e,d){"use strict"},511,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},512,[513]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Message=void 0;var t,n=(t=r(d[0]))&&t.__esModule?t:{default:t},o=r(d[1]),l=r(d[2]),c=r(d[3]),u=r(d[4]);function f(){return(f=Object.assign||function(t){for(var n=1;n=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(c[o]=t[o])}return c}function p(t,n){if(null==t)return{};var o,l,c={},u=Object.keys(t);for(l=0;l=0||(c[o]=t[o]);return c}function b(){var t=O(["\n background-color: ",";\n border-radius: 2px;\n"]);return b=function(){return t},t}function O(t,n){return n||(n=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(n)}}))}var v=(0,l.styledWrapper)(c.Flex)(b(),(0,o.color)("black5")),y=function(t){var l=t.children,c=t.textSize,p=void 0===c?"3t":c,b=s(t,["children","textSize"]);return n.default.createElement(v,f({p:2},b),n.default.createElement(u.Sans,{size:p,color:(0,o.color)("black60"),weight:"regular"},l))};e.Message=y,y.displayName="Message"},513,[57,468,424,454,457]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},514,[515]); -__d(function(g,r,i,a,m,e,d){"use strict"},515,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},516,[517]); -__d(function(g,r,i,a,m,e,d){"use strict"},517,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},518,[519]); -__d(function(g,r,i,a,m,e,d){"use strict"},519,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},520,[521]); -__d(function(g,r,i,a,m,e,d){"use strict"},521,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},522,[523]); -__d(function(g,r,i,a,m,e,d){"use strict"},523,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},524,[525]); -__d(function(g,r,i,a,m,e,d){"use strict"},525,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},526,[527]); -__d(function(g,r,i,a,m,e,d){"use strict"},527,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},528,[529]); -__d(function(g,r,i,a,m,e,d){"use strict"},529,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},530,[531]); -__d(function(g,r,i,a,m,e,d){"use strict"},531,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},532,[533]); -__d(function(g,r,i,a,m,e,d){"use strict"},533,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},534,[535]); -__d(function(g,r,i,a,m,e,d){"use strict"},535,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},536,[537]); -__d(function(g,r,i,a,m,e,d){"use strict"},537,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},538,[539]); -__d(function(g,r,i,a,m,e,d){"use strict"},539,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},540,[541]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Separator=void 0;var t=r(d[0]),n=r(d[1]);function o(){var t=c(["\n border: 1px solid ",";\n border-bottom-width: 0;\n ",";\n ",";\n"]);return o=function(){return t},t}function c(t,n){return n||(n=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(n)}}))}var u=r(d[2]).styled.View(o(),(0,n.color)("black10"),t.space,t.width);e.Separator=u,u.defaultProps={width:"100%"}},541,[456,468,424]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},542,[543]); -__d(function(g,r,i,a,m,e,d){"use strict"},543,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},544,[545]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Spacer=void 0;var t,c=(t=r(d[0]))&&t.__esModule?t:{default:t},u=r(d[1]);var l=function(t){return c.default.createElement(u.Box,t)};e.Spacer=l,l.displayName="Spacer",l.displayName="Spacer"},545,[57,472]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},546,[547]); -__d(function(g,r,i,a,m,e,d){"use strict"},547,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},548,[549]); -__d(function(g,r,i,a,m,e,d){"use strict"},549,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},550,[551]); -__d(function(g,r,i,a,m,e,d){"use strict"},551,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},552,[553]); -__d(function(g,r,i,a,m,e,d){"use strict"},553,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},554,[555]); -__d(function(g,r,i,a,m,e,d){"use strict"},555,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},556,[557]); -__d(function(g,r,i,a,m,e,d){"use strict"},557,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},558,[559]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TimeRemaining=void 0;var t,n=r(d[0]),o=(t=r(d[1]))&&t.__esModule?t:{default:t},l=r(d[2]),u=r(d[3]);function c(t){return t.toString().padStart(2,"0")}var s=function(t){var s=t.countdownEnd,f=t.currentTime,h=t.highlight,M=void 0===h?"purple100":h,T=t.labelFontSize,S=void 0===T?"3":T,v=t.labelWithoutTimeRemaining,x=t.labelWithTimeRemaining,p=t.timeEndedDisplayText,E=t.timerFontSize,_=void 0===E?"3":E,R=t.trailingText,b=n.Duration.fromISO(n.DateTime.fromISO(s).diff((0,u.useCurrentTime)(f)).toString()),y=Math.floor(b.seconds)<=0,z="".concat(c(Math.max(0,Math.floor(b.as("days")))),"d "),D="".concat(c(Math.max(0,Math.floor(b.as("hours")%24))),"h "),F="".concat(c(Math.max(0,Math.floor(b.as("minutes")%60))),"m "),w="".concat(c(Math.max(0,Math.floor(b.as("seconds")%60))),"s");return o.default.createElement(l.Flex,{flexDirection:"column",alignItems:"center"},o.default.createElement(l.Sans,{size:_,color:M,weight:"medium"},y&&p?p:o.default.createElement(o.default.Fragment,null,z,D,F,w,R&&" ".concat(R))),(x||v)&&o.default.createElement(l.Sans,{size:S,weight:"medium"},y?v:x))};e.TimeRemaining=s,s.displayName="TimeRemaining"},559,[560,57,415,561]); -__d(function(e,t,n,r,i,o,a){'use strict';var u=t(a[0]);function s(e,t){for(var n=0;n=t&&e<=n}function x(e,t){return void 0===t&&(t=2),e.toString().length=0&&(t=new Date(t)).setUTCFullYear(t.getUTCFullYear()-1900),+t}function q(e){var t=(e+Math.floor(e/4)-Math.floor(e/100)+Math.floor(e/400))%7,n=e-1,r=(n+Math.floor(n/4)-Math.floor(n/100)+Math.floor(n/400))%7;return 4===t||3===r?53:52}function H(e){return e>99?e:e>60?1900+e:2e3+e}function U(e,t,n,r){void 0===r&&(r=null);var i=new Date(e),o={hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);var a=u({timeZoneName:t},o),s=M();if(s&&D()){var c=new Intl.DateTimeFormat(n,a).formatToParts(i).find(function(e){return"timezonename"===e.type.toLowerCase()});return c?c.value:null}if(s){var l=new Intl.DateTimeFormat(n,o).format(i);return new Intl.DateTimeFormat(n,a).format(i).substring(l.length).replace(/^[, \u200e]+/,"")}return null}function R(e,t){var n=parseInt(e,10)||0,r=parseInt(t,10)||0;return 60*n+(n<0?-r:r)}function P(e){var t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new T("Invalid unit value "+e);return t}function W(e,t,n){var r={};for(var i in e)if(e.hasOwnProperty(i)){if(n.indexOf(i)>=0)continue;var o=e[i];if(void 0===o||null===o)continue;r[t(i)]=P(o)}return r}function J(e,t){var n=Math.trunc(e/60),r=Math.abs(e%60),i=n>=0?"+":"-",o=""+i+Math.abs(n);switch(t){case"short":return""+i+x(Math.abs(n),2)+":"+x(r,2);case"narrow":return r>0?o+":"+r:o;case"techie":return""+i+x(Math.abs(n),2)+x(r,2);default:throw new RangeError("Value format "+t+" is out of range for property format")}}function Y(e){return V(e,["hour","minute","second","millisecond"])}var G=/[A-Za-z_+-]{1,256}(:?\/[A-Za-z_+-]{1,256}(\/[A-Za-z_+-]{1,256})?)?/,$="numeric",B="short",Q="long",X="2-digit",K={year:$,month:$,day:$},ee={year:$,month:B,day:$},te={year:$,month:Q,day:$},ne={year:$,month:Q,day:$,weekday:Q},re={hour:$,minute:X},ie={hour:$,minute:X,second:X},oe={hour:$,minute:X,second:X,timeZoneName:B},ae={hour:$,minute:X,second:X,timeZoneName:Q},ue={hour:$,minute:X,hour12:!1},se={hour:$,minute:X,second:X,hour12:!1},ce={hour:$,minute:X,second:X,hour12:!1,timeZoneName:B},le={hour:$,minute:X,second:X,hour12:!1,timeZoneName:Q},fe={year:$,month:$,day:$,hour:$,minute:X},de={year:$,month:$,day:$,hour:$,minute:X,second:X},he={year:$,month:B,day:$,hour:$,minute:X},me={year:$,month:B,day:$,hour:$,minute:X,second:X},ye={year:$,month:Q,day:$,hour:$,minute:X,timeZoneName:B},ve={year:$,month:Q,day:$,hour:$,minute:X,second:X,timeZoneName:B},ge={year:$,month:Q,day:$,weekday:Q,hour:$,minute:X,timeZoneName:Q},pe={year:$,month:Q,day:$,weekday:Q,hour:$,minute:X,second:X,timeZoneName:Q};function we(e){return JSON.stringify(e,Object.keys(e).sort())}var ke=["January","February","March","April","May","June","July","August","September","October","November","December"],Se=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Te=["J","F","M","A","M","J","J","A","S","O","N","D"];function be(e){switch(e){case"narrow":return Te;case"short":return Se;case"long":return ke;case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var Oe=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Ne=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Me=["M","T","W","T","F","S","S"];function De(e){switch(e){case"narrow":return Me;case"short":return Ne;case"long":return Oe;case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Ie=["AM","PM"],Ee=["Before Christ","Anno Domini"],Ve=["BC","AD"],Le=["B","A"];function xe(e){switch(e){case"narrow":return Le;case"short":return Ve;case"long":return Ee;default:return null}}function Fe(e){return Ie[e.hour<12?0:1]}function Ce(e,t){return De(t)[e.weekday-1]}function Ze(e,t){return be(t)[e.month-1]}function ze(e,t){return xe(t)[e.year<0?0:1]}function Ae(e,t,n,r){void 0===n&&(n="always"),void 0===r&&(r=!1);var i={years:["year","yr."],quarters:["quarer","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===n&&o){var a="days"===e;switch(t){case 1:return a?"tomorrow":"next "+i[e][0];case-1:return a?"yesterday":"last "+i[e][0];case 0:return a?"today":"this "+i[e][0]}}var u=Object.is(t,-0)||t<0,s=Math.abs(t),c=r?i[e][1]:1===s?i[e][0]:e;return u?s+" "+c+" ago":"in "+s+" "+c}function _e(e){switch(we(V(e,["weekday","era","year","month","day","hour","minute","second","timeZoneName","hour12"]))){case we(K):return"M/d/yyyy";case we(ee):return"LLL d, yyyy";case we(te):return"LLLL d, yyyy";case we(ne):return"EEEE, LLLL d, yyyy";case we(re):return"h:mm a";case we(ie):return"h:mm:ss a";case we(oe):case we(ae):return"h:mm a";case we(ue):return"HH:mm";case we(se):return"HH:mm:ss";case we(ce):case we(le):return"HH:mm";case we(fe):return"M/d/yyyy, h:mm a";case we(he):return"LLL d, yyyy, h:mm a";case we(ye):return"LLLL d, yyyy, h:mm a";case we(ge):return"EEEE, LLLL d, yyyy, h:mm a";case we(de):return"M/d/yyyy, h:mm:ss a";case we(me):return"LLL d, yyyy, h:mm:ss a";case we(ve):return"LLLL d, yyyy, h:mm:ss a";case we(pe):return"EEEE, LLLL d, yyyy, h:mm:ss a";default:return"EEEE, LLLL d, yyyy, h:mm a"}}var je=(function(){function e(){}var t=e.prototype;return t.offsetName=function(e,t){throw new b},t.formatOffset=function(e,t){throw new b},t.offset=function(e){throw new b},t.equals=function(e){throw new b},c(e,[{key:"type",get:function(){throw new b}},{key:"name",get:function(){throw new b}},{key:"universal",get:function(){throw new b}},{key:"isValid",get:function(){throw new b}}]),e})(),qe=null,He=(function(e){function t(){return e.apply(this,arguments)||this}l(t,e);var n=t.prototype;return n.offsetName=function(e,t){return U(e,t.format,t.locale)},n.formatOffset=function(e,t){return J(this.offset(e),t)},n.offset=function(e){return-new Date(e).getTimezoneOffset()},n.equals=function(e){return"local"===e.type},c(t,[{key:"type",get:function(){return"local"}},{key:"name",get:function(){return M()?(new Intl.DateTimeFormat).resolvedOptions().timeZone:"local"}},{key:"universal",get:function(){return!1}},{key:"isValid",get:function(){return!0}}],[{key:"instance",get:function(){return null===qe&&(qe=new t),qe}}]),t})(je),Ue=RegExp("^"+G.source+"$"),Re={};var Pe={year:0,month:1,day:2,hour:3,minute:4,second:5};function We(e,t){var n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(n),i=r[1],o=r[2];return[r[3],i,o,r[4],r[5],r[6]]}function Je(e,t){for(var n=e.formatToParts(t),r=[],i=0;i=r.length)break;a=r[o++]}else{if((o=r.next()).done)break;a=o.value}var u=a;u.literal?n+=u.val:n+=t(u.val)}return n}var ut={D:K,DD:ee,DDD:te,DDDD:ne,t:re,tt:ie,ttt:oe,tttt:ae,T:ue,TT:se,TTT:ce,TTTT:le,f:fe,ff:he,fff:ye,ffff:ge,F:de,FF:me,FFF:ve,FFFF:pe},st=(function(){function e(e,t){this.opts=t,this.loc=e,this.systemLoc=null}e.create=function(t,n){return void 0===n&&(n={}),new e(t,n)},e.parseFormat=function(e){for(var t=null,n="",r=!1,i=[],o=0;o0&&i.push({literal:r,val:n}),t=null,n="",r=!r):r?n+=a:a===t?n+=a:(n.length>0&&i.push({literal:!1,val:n}),n=a,t=a)}return n.length>0&&i.push({literal:r,val:n}),i};var t=e.prototype;return t.formatWithSystemDefault=function(e,t){return null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,u({},this.opts,t)).format()},t.formatDateTime=function(e,t){return void 0===t&&(t={}),this.loc.dtFormatter(e,u({},this.opts,t)).format()},t.formatDateTimeParts=function(e,t){return void 0===t&&(t={}),this.loc.dtFormatter(e,u({},this.opts,t)).formatToParts()},t.resolvedOptions=function(e,t){return void 0===t&&(t={}),this.loc.dtFormatter(e,u({},this.opts,t)).resolvedOptions()},t.num=function(e,t){if(void 0===t&&(t=0),this.opts.forceSimple)return x(e,t);var n=u({},this.opts);return t>0&&(n.padTo=t),this.loc.numberFormatter(n).format(e)},t.formatDateTimeFromString=function(t,n){var r=this,i="en"===this.loc.listingMode(),o=function(e,n){return r.loc.extract(t,e,n)},a=function(e){return t.isOffsetFixed&&0===t.offset&&e.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,e.format):""},u=function(e,n){return i?Ze(t,e):o(n?{month:e}:{month:e,day:"numeric"},"month")},s=function(e,n){return i?Ce(t,e):o(n?{weekday:e}:{weekday:e,month:"long",day:"numeric"},"weekday")},c=function(e){var n=ut[e];return n?r.formatWithSystemDefault(t,n):e},l=function(e){return i?ze(t,e):o({era:e},"era")};return at(e.parseFormat(n),function(e){var n=r.loc.outputCalendar;switch(e){case"S":return r.num(t.millisecond);case"u":case"SSS":return r.num(t.millisecond,3);case"s":return r.num(t.second);case"ss":return r.num(t.second,2);case"m":return r.num(t.minute);case"mm":return r.num(t.minute,2);case"h":return r.num(t.hour%12==0?12:t.hour%12);case"hh":return r.num(t.hour%12==0?12:t.hour%12,2);case"H":return r.num(t.hour);case"HH":return r.num(t.hour,2);case"Z":return a({format:"narrow",allowZ:r.opts.allowZ});case"ZZ":return a({format:"short",allowZ:r.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:!1});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:r.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:r.loc.locale});case"z":return t.zoneName;case"a":return i?Fe(t):o({hour:"numeric",hour12:!0},"dayperiod");case"d":return n?o({day:"numeric"},"day"):r.num(t.day);case"dd":return n?o({day:"2-digit"},"day"):r.num(t.day,2);case"c":return r.num(t.weekday);case"ccc":return s("short",!0);case"cccc":return s("long",!0);case"ccccc":return s("narrow",!0);case"E":return r.num(t.weekday);case"EEE":return s("short",!1);case"EEEE":return s("long",!1);case"EEEEE":return s("narrow",!1);case"L":return n?o({month:"numeric",day:"numeric"},"month"):r.num(t.month);case"LL":return n?o({month:"2-digit",day:"numeric"},"month"):r.num(t.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return n?o({month:"numeric"},"month"):r.num(t.month);case"MM":return n?o({month:"2-digit"},"month"):r.num(t.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return n?o({year:"numeric"},"year"):r.num(t.year);case"yy":return n?o({year:"2-digit"},"year"):r.num(t.year.toString().slice(-2),2);case"yyyy":return n?o({year:"numeric"},"year"):r.num(t.year,4);case"yyyyyy":return n?o({year:"numeric"},"year"):r.num(t.year,6);case"G":return l("short");case"GG":return l("long");case"GGGGG":return l("narrow");case"kk":return r.num(t.weekYear.toString().slice(-2),2);case"kkkk":return r.num(t.weekYear,4);case"W":return r.num(t.weekNumber);case"WW":return r.num(t.weekNumber,2);case"o":return r.num(t.ordinal);case"ooo":return r.num(t.ordinal,3);case"q":return r.num(t.quarter);case"qq":return r.num(t.quarter,2);case"X":return r.num(Math.floor(t.ts/1e3));case"x":return r.num(t.ts);default:return c(e)}})},t.formatDurationFromString=function(t,n){var r,i=this,o=function(e){switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"M":return"month";case"y":return"year";default:return null}},a=e.parseFormat(n),u=a.reduce(function(e,t){var n=t.literal,r=t.val;return n?e:e.concat(r)},[]),s=t.shiftTo.apply(t,u.map(o).filter(function(e){return e}));return at(a,(r=s,function(e){var t=o(e);return t?i.num(r.get(t),e.length):e}))},e})(),ct={};function lt(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=ct[n];return r||(r=new Intl.DateTimeFormat(e,t),ct[n]=r),r}var ft={};function dt(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=ft[n];return r||(r=new Intl.NumberFormat(e,t),ft[n]=r),r}var ht={};function mt(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=ht[n];return r||(r=new Intl.RelativeTimeFormat(e,t),ht[n]=r),r}var yt=null;function vt(){if(yt)return yt;if(M()){var e=(new Intl.DateTimeFormat).resolvedOptions().locale;return yt="und"===e?"en-US":e}return yt="en-US"}function gt(e){var t=e.indexOf("-u-");if(-1===t)return[e];var n,r=e.substring(0,t);try{n=lt(e).resolvedOptions()}catch(e){n=lt(r).resolvedOptions()}var i=n;return[r,i.numberingSystem,i.calendar]}function pt(e,t,n){return M()?n||t?(e+="-u",n&&(e+="-ca-"+n),t&&(e+="-nu-"+t),e):e:[]}function wt(e){for(var t=[],n=1;n<=12;n++){var r=Mr.utc(2016,n,1);t.push(e(r))}return t}function kt(e){for(var t=[],n=1;n<=7;n++){var r=Mr.utc(2016,11,13+n);t.push(e(r))}return t}function St(e,t,n,r,i){var o=e.listingMode(n);return"error"===o?null:"en"===o?r(t):i(t)}var Tt=(function(){function e(e,t,n){if(this.padTo=n.padTo||0,this.floor=n.floor||!1,!t&&M()){var r={useGrouping:!1};n.padTo>0&&(r.minimumIntegerDigits=n.padTo),this.inf=dt(e,r)}}return e.prototype.format=function(e){if(this.inf){var t=this.floor?Math.floor(e):e;return this.inf.format(t)}return x(this.floor?Math.floor(e):Z(e,3),this.padTo)},e})(),bt=(function(){function e(e,t,n){var r;if(this.opts=n,this.hasIntl=M(),e.zone.universal&&this.hasIntl?(r="UTC",n.timeZoneName?this.dt=e:this.dt=0===e.offset?e:Mr.fromMillis(e.ts+60*e.offset*1e3)):"local"===e.zone.type?this.dt=e:(this.dt=e,r=e.zone.name),this.hasIntl){var i=u({},this.opts);r&&(i.timeZone=r),this.dtf=lt(t,i)}}var t=e.prototype;return t.format=function(){if(this.hasIntl)return this.dtf.format(this.dt.toJSDate());var e=_e(this.opts),t=Nt.create("en-US");return st.create(t).formatDateTimeFromString(this.dt,e)},t.formatToParts=function(){return this.hasIntl&&D()?this.dtf.formatToParts(this.dt.toJSDate()):[]},t.resolvedOptions=function(){return this.hasIntl?this.dtf.resolvedOptions():{locale:"en-US",numberingSystem:"latn",outputCalendar:"gregory"}},e})(),Ot=(function(){function e(e,t,n){this.opts=u({style:"long"},n),!t&&I()&&(this.rtf=mt(e,n))}var t=e.prototype;return t.format=function(e,t){return this.rtf?this.rtf.format(e,t):Ae(t,e,this.opts.numeric,"long"!==this.opts.style)},t.formatToParts=function(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]},e})(),Nt=(function(){function e(e,t,n,r){var i=gt(e),o=i[0],a=i[1],u=i[2];this.locale=o,this.numberingSystem=t||a||null,this.outputCalendar=n||u||null,this.intl=pt(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=r,this.fastNumbersCached=null}e.fromOpts=function(t){return e.create(t.locale,t.numberingSystem,t.outputCalendar,t.defaultToEN)},e.create=function(t,n,r,i){void 0===i&&(i=!1);var o=t||ot.defaultLocale;return new e(o||(i?"en-US":vt()),n||ot.defaultNumberingSystem,r||ot.defaultOutputCalendar,o)},e.resetCache=function(){yt=null,ct={},ft={}},e.fromObject=function(t){var n=void 0===t?{}:t,r=n.locale,i=n.numberingSystem,o=n.outputCalendar;return e.create(r,i,o)};var t=e.prototype;return t.listingMode=function(e){void 0===e&&(e=!0);var t=M()&&D(),n=this.isEnglish(),r=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return t||n&&r||e?!t||n&&r?"en":"intl":"error"},t.clone=function(t){return t&&0!==Object.getOwnPropertyNames(t).length?e.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,t.defaultToEN||!1):this},t.redefaultToEN=function(e){return void 0===e&&(e={}),this.clone(u({},e,{defaultToEN:!0}))},t.redefaultToSystem=function(e){return void 0===e&&(e={}),this.clone(u({},e,{defaultToEN:!1}))},t.months=function(e,t,n){var r=this;return void 0===t&&(t=!1),void 0===n&&(n=!0),St(this,e,n,be,function(){var n=t?{month:e,day:"numeric"}:{month:e},i=t?"format":"standalone";return r.monthsCache[i][e]||(r.monthsCache[i][e]=wt(function(e){return r.extract(e,n,"month")})),r.monthsCache[i][e]})},t.weekdays=function(e,t,n){var r=this;return void 0===t&&(t=!1),void 0===n&&(n=!0),St(this,e,n,De,function(){var n=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=t?"format":"standalone";return r.weekdaysCache[i][e]||(r.weekdaysCache[i][e]=kt(function(e){return r.extract(e,n,"weekday")})),r.weekdaysCache[i][e]})},t.meridiems=function(e){var t=this;return void 0===e&&(e=!0),St(this,void 0,e,function(){return Ie},function(){if(!t.meridiemCache){var e={hour:"numeric",hour12:!0};t.meridiemCache=[Mr.utc(2016,11,13,9),Mr.utc(2016,11,13,19)].map(function(n){return t.extract(n,e,"dayperiod")})}return t.meridiemCache})},t.eras=function(e,t){var n=this;return void 0===t&&(t=!0),St(this,e,t,xe,function(){var t={era:e};return n.eraCache[e]||(n.eraCache[e]=[Mr.utc(-40,1,1),Mr.utc(2017,1,1)].map(function(e){return n.extract(e,t,"era")})),n.eraCache[e]})},t.extract=function(e,t,n){var r=this.dtFormatter(e,t).formatToParts().find(function(e){return e.type.toLowerCase()===n});return r?r.value:null},t.numberFormatter=function(e){return void 0===e&&(e={}),new Tt(this.intl,e.forceSimple||this.fastNumbers,e)},t.dtFormatter=function(e,t){return void 0===t&&(t={}),new bt(e,this.intl,t)},t.relFormatter=function(e){return void 0===e&&(e={}),new Ot(this.intl,this.isEnglish(),e)},t.isEnglish=function(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||M()&&Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")},t.equals=function(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar},c(e,[{key:"fastNumbers",get:function(){var e;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(e=this).numberingSystem||"latn"===e.numberingSystem)&&("latn"===e.numberingSystem||!e.locale||e.locale.startsWith("en")||M()&&"latn"===Intl.DateTimeFormat(e.intl).resolvedOptions().numberingSystem)),this.fastNumbersCached}}]),e})();function Mt(){for(var e=arguments.length,t=new Array(e),n=0;n1?t-1:0),r=1;r3?Oe.indexOf(e)+1:Ne.indexOf(e)+1),u}var Jt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Yt(e){var t,n=e[1],r=e[2],i=e[3],o=e[4],a=e[5],u=e[6],s=e[7],c=e[8],l=e[9],f=e[10],d=e[11],h=Wt(n,o,i,r,a,u,s);return t=c?Pt[c]:l?0:R(f,d),[h,new Be(t)]}function Gt(e){return e.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var $t=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Bt=/^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Qt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Xt(e){var t=e[1],n=e[2],r=e[3];return[Wt(t,e[4],r,n,e[5],e[6],e[7]),Be.utcInstance]}function Kt(e){var t=e[1],n=e[2],r=e[3],i=e[4],o=e[5],a=e[6];return[Wt(t,e[7],n,r,i,o,a),Be.utcInstance]}var en=Mt(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Ft),tn=Mt(/(\d{4})-?W(\d\d)(?:-?(\d))?/,Ft),nn=Mt(/(\d{4})-?(\d{3})/,Ft),rn=Mt(xt),on=Dt(_t,jt,qt),an=Dt(Ct,jt,qt),un=Dt(Zt,jt),sn=Dt(jt,qt);var cn=Mt(/(\d{4})-(\d\d)-(\d\d)/,At),ln=Mt(zt),fn=Dt(_t,jt,qt,Ht),dn=Dt(jt,qt,Ht);var hn=(function(){function e(e,t){this.reason=e,this.explanation=t}return e.prototype.toMessage=function(){return this.explanation?this.reason+": "+this.explanation:this.reason},e})(),mn={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},yn=u({years:{months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6}},mn),vn=u({years:{months:12,weeks:52.1775,days:365.2425,hours:8765.82,minutes:525949.2,seconds:31556951.999999996,milliseconds:31556951999.999996},quarters:{months:3,weeks:13.044375,days:91.310625,hours:2191.455,minutes:131487.3,seconds:7889237.999999999,milliseconds:7889237999.999999},months:{weeks:4.3481250000000005,days:30.436875,hours:730.485,minutes:43829.1,seconds:2629746,milliseconds:2629746e3}},mn),gn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],pn=gn.slice(0).reverse();function wn(e,t,n){void 0===n&&(n=!1);var r={values:n?t.values:u({},e.values,t.values||{}),loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy};return new Tn(r)}function kn(e,t,n,r,i){var o,a=e[i][n],u=t[n]/a,s=!(Math.sign(u)===Math.sign(r[i]))&&0!==r[i]&&Math.abs(u)<=1?(o=u)<0?Math.floor(o):Math.ceil(o):Math.trunc(u);r[i]+=s,t[n]-=s*a}function Sn(e,t){pn.reduce(function(n,r){return O(t[r])?n:(n&&kn(e,t,n,t,r),r)},null)}var Tn=(function(){function e(e){var t="longterm"===e.conversionAccuracy||!1;this.values=e.values,this.loc=e.loc||Nt.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=t?vn:yn,this.isLuxonDuration=!0}e.fromMillis=function(t,n){return e.fromObject(u({milliseconds:t},n))},e.fromObject=function(t){if(null==t||"object"!=typeof t)throw new T("Duration.fromObject: argument expected to be an object, got "+(null===t?"null":typeof t));return new e({values:W(t,e.normalizeUnit,["locale","numberingSystem","conversionAccuracy","zone"]),loc:Nt.fromObject(t),conversionAccuracy:t.conversionAccuracy})},e.fromISO=function(t,n){var r=It(t,[Ut,Rt])[0];if(r){var i=u(r,n);return e.fromObject(i)}return e.invalid("unparsable","the input \""+t+"\" can't be parsed as ISO 8601")},e.invalid=function(t,n){if(void 0===n&&(n=null),!t)throw new T("need to specify a reason the Duration is invalid");var r=t instanceof hn?t:new hn(t,n);if(ot.throwOnInvalid)throw new w(r);return new e({invalid:r})},e.normalizeUnit=function(e){var t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!t)throw new S(e);return t},e.isDuration=function(e){return e&&e.isLuxonDuration||!1};var t=e.prototype;return t.toFormat=function(e,t){void 0===t&&(t={});var n=u({},t,{floor:!1!==t.round&&!1!==t.floor});return this.isValid?st.create(this.loc,n).formatDurationFromString(this,e):"Invalid Duration"},t.toObject=function(e){if(void 0===e&&(e={}),!this.isValid)return{};var t=u({},this.values);return e.includeConfig&&(t.conversionAccuracy=this.conversionAccuracy,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t},t.toISO=function(){if(!this.isValid)return null;var e="P";return 0!==this.years&&(e+=this.years+"Y"),0===this.months&&0===this.quarters||(e+=this.months+3*this.quarters+"M"),0!==this.weeks&&(e+=this.weeks+"W"),0!==this.days&&(e+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(e+="T"),0!==this.hours&&(e+=this.hours+"H"),0!==this.minutes&&(e+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(e+=this.seconds+this.milliseconds/1e3+"S"),"P"===e&&(e+="T0S"),e},t.toJSON=function(){return this.toISO()},t.toString=function(){return this.toISO()},t.valueOf=function(){return this.as("milliseconds")},t.plus=function(e){if(!this.isValid)return this;for(var t=bn(e),n={},r=0,i=gn;r=0){i=l;var f=0;for(var d in a)f+=this.matrix[d][l]*a[d],a[d]=0;N(u[l])&&(f+=u[l]);var h=Math.trunc(f);for(var m in o[l]=h,a[l]=f-h,u)gn.indexOf(m)>gn.indexOf(l)&&kn(this.matrix,u,m,o,l)}else N(u[l])&&(a[l]=u[l])}for(var y in a)0!==a[y]&&(o[i]+=y===i?a[y]:a[y]/this.matrix[i][y]);return wn(this,{values:o},!0)},t.negate=function(){if(!this.isValid)return this;for(var e={},t=0,n=Object.keys(this.values);te},t.isBefore=function(e){return!!this.isValid&&this.e<=e},t.contains=function(e){return!!this.isValid&&(this.s<=e&&this.e>e)},t.set=function(t){var n=void 0===t?{}:t,r=n.start,i=n.end;return this.isValid?e.fromDateTimes(r||this.s,i||this.e):this},t.splitAt=function(){if(!this.isValid)return[];for(var t=arguments.length,n=new Array(t),r=0;r+this.e?this.e:s;o.push(e.fromDateTimes(a,c)),a=c,u+=1}return o},t.splitBy=function(t){var n=bn(t);if(!this.isValid||!n.isValid||0===n.as("milliseconds"))return[];for(var r,i,o=this.s,a=[];o+this.e?this.e:r,a.push(e.fromDateTimes(o,i)),o=i;return a},t.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},t.overlaps=function(e){return this.e>e.s&&this.s=e.e)},t.equals=function(e){return!(!this.isValid||!e.isValid)&&(this.s.equals(e.s)&&this.e.equals(e.e))},t.intersection=function(t){if(!this.isValid)return this;var n=this.s>t.s?this.s:t.s,r=this.er?null:e.fromDateTimes(n,r)},t.union=function(t){if(!this.isValid)return this;var n=this.st.e?this.e:t.e;return e.fromDateTimes(n,r)},e.merge=function(e){var t=e.sort(function(e,t){return e.s-t.s}).reduce(function(e,t){var n=e[0],r=e[1];return r?r.overlaps(t)||r.abutsStart(t)?[n,r.union(t)]:[n.concat([r]),t]:[n,t]},[[],null]),n=t[0],r=t[1];return r&&n.push(r),n},e.xor=function(t){var n,r=null,i=0,o=[],a=t.map(function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]}),u=(n=Array.prototype).concat.apply(n,a).sort(function(e,t){return e.time-t.time}),s=Array.isArray(u),c=0;for(u=s?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(s){if(c>=u.length)break;l=u[c++]}else{if((c=u.next()).done)break;l=c.value}var f=l;1===(i+="s"===f.type?1:-1)?r=f.time:(r&&+r!=+f.time&&o.push(e.fromDateTimes(r,f.time)),r=null)}return e.merge(o)},t.difference=function(){for(var t=this,n=arguments.length,r=new Array(n),i=0;i=0){var f;r=c;var d,h=l(e,t);if((i=e.plus(((f={})[c]=h,f)))>t)e=e.plus(((d={})[c]=h-1,d)),h-=1;else e=i;o[c]=h}}return[e,o,i,r]}function En(e,t,n,r){var i=In(e,t,n),o=i[0],a=i[1],s=i[2],c=i[3],l=t-o,f=n.filter(function(e){return["hours","minutes","seconds","milliseconds"].indexOf(e)>=0});if(0===f.length){var d;if(s0?(h=Tn.fromMillis(l,r)).shiftTo.apply(h,f).plus(m):m}var Vn={arab:"[\u0660-\u0669]",arabext:"[\u06f0-\u06f9]",bali:"[\u1b50-\u1b59]",beng:"[\u09e6-\u09ef]",deva:"[\u0966-\u096f]",fullwide:"[\uff10-\uff19]",gujr:"[\u0ae6-\u0aef]",hanidec:"[\u3007|\u4e00|\u4e8c|\u4e09|\u56db|\u4e94|\u516d|\u4e03|\u516b|\u4e5d]",khmr:"[\u17e0-\u17e9]",knda:"[\u0ce6-\u0cef]",laoo:"[\u0ed0-\u0ed9]",limb:"[\u1946-\u194f]",mlym:"[\u0d66-\u0d6f]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0b66-\u0b6f]",tamldec:"[\u0be6-\u0bef]",telu:"[\u0c66-\u0c6f]",thai:"[\u0e50-\u0e59]",tibt:"[\u0f20-\u0f29]",latn:"\\d"},Ln={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},xn=Vn.hanidec.replace(/[\[|\]]/g,"").split("");function Fn(e){var t=parseInt(e,10);if(isNaN(t)){t="";for(var n=0;n=a&&r<=u&&(t+=r-a)}}return parseInt(t,10)}return t}function Cn(e,t){var n=e.numberingSystem;return void 0===t&&(t=""),new RegExp(""+Vn[n||"latn"]+t)}var Zn="missing Intl.DateTimeFormat.formatToParts support";function zn(e,t){return void 0===t&&(t=function(e){return e}),{regex:e,deser:function(e){var n=e[0];return t(Fn(n))}}}function An(e){return e.replace(/\./,"\\.?")}function _n(e){return e.replace(/\./,"").toLowerCase()}function jn(e,t){return null===e?null:{regex:RegExp(e.map(An).join("|")),deser:function(n){var r=n[0];return e.findIndex(function(e){return _n(r)===_n(e)})+t}}}function qn(e,t){return{regex:e,deser:function(e){return R(e[1],e[2])},groups:t}}function Hn(e){return{regex:e,deser:function(e){return e[0]}}}function Un(e){return["^"+e.map(function(e){return e.regex}).reduce(function(e,t){return e+"("+t.source+")"},"")+"$",e]}function Rn(e,t,n){var r=e.match(t);if(r){var i={},o=1;for(var a in n)if(n.hasOwnProperty(a)){var u=n[a],s=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(r.slice(o,o+s))),o+=s}return[r,i]}return[r,{}]}function Pn(e){var t,n=function(e){switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";default:return null}};return t=O(e.Z)?O(e.z)?null:Ge.create(e.z):new Be(e.Z),O(e.h)||(e.h<12&&1===e.a?e.h+=12:12===e.h&&0===e.a&&(e.h=0)),0===e.G&&e.y&&(e.y=-e.y),O(e.u)||(e.S=C(e.u)),[Object.keys(e).reduce(function(t,r){var i=n(r);return i&&(t[i]=e[r]),t},{}),t]}function Wn(e,t,n){var r=st.parseFormat(n),i=r.map(function(t){return n=t,i=Cn(r=e),o=Cn(r,"{2}"),a=Cn(r,"{3}"),u=Cn(r,"{4}"),s=Cn(r,"{6}"),c=Cn(r,"{1,2}"),l=Cn(r,"{1,3}"),f=Cn(r,"{1,6}"),d=Cn(r,"{1,9}"),h=Cn(r,"{2,4}"),m=Cn(r,"{4,6}"),y=function(e){return{regex:RegExp((t=e.val,t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"))),deser:function(e){return e[0]},literal:!0};var t},(v=(function(e){if(n.literal)return y(e);switch(e.val){case"G":return jn(r.eras("short",!1),0);case"GG":return jn(r.eras("long",!1),0);case"y":return zn(f);case"yy":return zn(h,H);case"yyyy":return zn(u);case"yyyyy":return zn(m);case"yyyyyy":return zn(s);case"M":return zn(c);case"MM":return zn(o);case"MMM":return jn(r.months("short",!0,!1),1);case"MMMM":return jn(r.months("long",!0,!1),1);case"L":return zn(c);case"LL":return zn(o);case"LLL":return jn(r.months("short",!1,!1),1);case"LLLL":return jn(r.months("long",!1,!1),1);case"d":return zn(c);case"dd":return zn(o);case"o":return zn(l);case"ooo":return zn(a);case"HH":return zn(o);case"H":return zn(c);case"hh":return zn(o);case"h":return zn(c);case"mm":return zn(o);case"m":case"s":return zn(c);case"ss":return zn(o);case"S":return zn(l);case"SSS":return zn(a);case"u":return Hn(d);case"a":return jn(r.meridiems(),0);case"kkkk":return zn(u);case"kk":return zn(h,H);case"W":return zn(c);case"WW":return zn(o);case"E":case"c":return zn(i);case"EEE":return jn(r.weekdays("short",!1,!1),1);case"EEEE":return jn(r.weekdays("long",!1,!1),1);case"ccc":return jn(r.weekdays("short",!0,!1),1);case"cccc":return jn(r.weekdays("long",!0,!1),1);case"Z":case"ZZ":return qn(new RegExp("([+-]"+c.source+")(?::("+o.source+"))?"),2);case"ZZZ":return qn(new RegExp("([+-]"+c.source+")("+o.source+")?"),2);case"z":return Hn(/[a-z_+-/]{1,256}?/i);default:return y(e)}})(n)||{invalidReason:Zn}).token=n,v;var n,r,i,o,a,u,s,c,l,f,d,h,m,y,v}),o=i.find(function(e){return e.invalidReason});if(o)return{input:t,tokens:r,invalidReason:o.invalidReason};var a=Un(i),u=a[0],s=a[1],c=RegExp(u,"i"),l=Rn(t,c,s),f=l[0],d=l[1],h=d?Pn(d):[null,null];return{input:t,tokens:r,regex:c,rawMatches:f,matches:d,result:h[0],zone:h[1]}}function Jn(e,t,n){var r=Wn(e,t,n);return[r.result,r.zone,r.invalidReason]}var Yn=[0,31,59,90,120,151,181,212,243,273,304,334],Gn=[0,31,60,91,121,152,182,213,244,274,305,335];function $n(e,t){return new hn("unit out of range","you specified "+t+" (of type "+typeof t+") as a "+e+", which is invalid")}function Bn(e,t,n){var r=new Date(Date.UTC(e,t-1,n)).getUTCDay();return 0===r?7:r}function Qn(e,t,n){return n+(z(e)?Gn:Yn)[t-1]}function Xn(e,t){var n=z(e)?Gn:Yn,r=n.findIndex(function(e){return eq(n)?(t=n+1,s=1):t=n,u({weekYear:t,weekNumber:s,weekday:a},Y(e))}function er(e){var t,n=e.weekYear,r=e.weekNumber,i=e.weekday,o=Bn(n,1,4),a=A(n),s=7*r+i-o-3;s<1?s+=A(t=n-1):s>a?(t=n+1,s-=A(n)):t=n;var c=Xn(t,s),l=c.month,f=c.day;return u({year:t,month:l,day:f},Y(e))}function tr(e){var t=e.year,n=Qn(t,e.month,e.day);return u({year:t,ordinal:n},Y(e))}function nr(e){var t=e.year,n=Xn(t,e.ordinal),r=n.month,i=n.day;return u({year:t,month:r,day:i},Y(e))}function rr(e){var t=N(e.weekYear),n=L(e.weekNumber,1,q(e.weekYear)),r=L(e.weekday,1,7);return t?n?!r&&$n("weekday",e.weekday):$n("week",e.week):$n("weekYear",e.weekYear)}function ir(e){var t=N(e.year),n=L(e.ordinal,1,A(e.year));return t?!n&&$n("ordinal",e.ordinal):$n("year",e.year)}function or(e){var t=N(e.year),n=L(e.month,1,12),r=L(e.day,1,_(e.year,e.month));return t?n?!r&&$n("day",e.day):$n("month",e.month):$n("year",e.year)}function ar(e){var t=e.hour,n=e.minute,r=e.second,i=e.millisecond,o=L(t,0,23)||24===t&&0===n&&0===r&&0===i,a=L(n,0,59),u=L(r,0,59),s=L(i,0,999);return o?a?u?!s&&$n("millisecond",i):$n("second",r):$n("minute",n):$n("hour",t)}function ur(e){return new hn("unsupported zone","the zone \""+e.name+"\" is not supported")}function sr(e){return null===e.weekData&&(e.weekData=Kn(e.c)),e.weekData}function cr(e,t){var n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new Mr(u({},n,t,{old:n}))}function lr(e,t,n){var r=e-60*t*1e3,i=n.offset(r);if(t===i)return[r,t];r-=60*(i-t)*1e3;var o=n.offset(r);return i===o?[r,i]:[e-60*Math.min(i,o)*1e3,Math.max(i,o)]}function fr(e,t){var n=new Date(e+=60*t*1e3);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function dr(e,t,n){return lr(j(e),t,n)}function hr(e,t){var n=e.o,r=e.c.year+t.years,i=e.c.month+t.months+3*t.quarters,o=u({},e.c,{year:r,month:i,day:Math.min(e.c.day,_(r,i))+t.days+7*t.weeks}),a=Tn.fromObject({hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=lr(j(o),n,e.zone),c=s[0],l=s[1];return 0!==a&&(c+=a,l=e.zone.offset(c)),{ts:c,o:l}}function mr(e,t,n,r,i){var o=n.setZone,a=n.zone;if(e&&0!==Object.keys(e).length){var s=t||a,c=Mr.fromObject(u(e,n,{zone:s,setZone:void 0}));return o?c:c.setZone(a)}return Mr.invalid(new hn("unparsable","the input \""+i+"\" can't be parsed as "+r))}function yr(e,t){return e.isValid?st.create(Nt.create("en-US"),{allowZ:!0,forceSimple:!0}).formatDateTimeFromString(e,t):null}function vr(e,t){var n=t.suppressSeconds,r=void 0!==n&&n,i=t.suppressMilliseconds,o=void 0!==i&&i,a=t.includeOffset,u=t.includeZone,s=void 0!==u&&u,c=t.spaceZone,l=void 0!==c&&c,f="HH:mm";return r&&0===e.second&&0===e.millisecond||(f+=":ss",o&&0===e.millisecond||(f+=".SSS")),(s||a)&&l&&(f+=" "),s?f+="z":a&&(f+="ZZ"),yr(e,f)}var gr={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},pr={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},wr={ordinal:1,hour:0,minute:0,second:0,millisecond:0},kr=["year","month","day","hour","minute","second","millisecond"],Sr=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Tr=["year","ordinal","hour","minute","second","millisecond"];function br(e){var t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new S(e);return t}function Or(e,t){for(var n=0,r=kr;n=a.length)break;c=a[s++]}else{if((s=a.next()).done)break;c=s.value}var l=c,f=o(l);if(Math.abs(f)>=1)return i(f,l)}return i(0,n.units[n.units.length-1])}var Mr=(function(){function e(e){var t=e.zone||ot.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new hn("invalid input"):null)||(t.isValid?null:ur(t));this.ts=O(e.ts)?ot.now():e.ts;var r=null,i=null;if(!n){var o=e.old&&e.old.ts===this.ts&&e.old.zone.equals(t);r=o?e.old.c:fr(this.ts,t.offset(this.ts)),i=o?e.old.o:t.offset(this.ts)}this._zone=t,this.loc=e.loc||Nt.create(),this.invalid=n,this.weekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}e.local=function(t,n,r,i,o,a,u){return O(t)?new e({ts:ot.now()}):Or({year:t,month:n,day:r,hour:i,minute:o,second:a,millisecond:u},ot.defaultZone)},e.utc=function(t,n,r,i,o,a,u){return O(t)?new e({ts:ot.now(),zone:Be.utcInstance}):Or({year:t,month:n,day:r,hour:i,minute:o,second:a,millisecond:u},Be.utcInstance)},e.fromJSDate=function(t,n){void 0===n&&(n={});var r,i=(r=t,"[object Date]"===Object.prototype.toString.call(r)?t.valueOf():NaN);if(Number.isNaN(i))return e.invalid("invalid input");var o=Xe(n.zone,ot.defaultZone);return o.isValid?new e({ts:i,zone:o,loc:Nt.fromObject(n)}):e.invalid(ur(o))},e.fromMillis=function(t,n){if(void 0===n&&(n={}),N(t))return new e({ts:t,zone:Xe(n.zone,ot.defaultZone),loc:Nt.fromObject(n)});throw new T("fromMillis requires a numerical input")},e.fromSeconds=function(t,n){if(void 0===n&&(n={}),N(t))return new e({ts:1e3*t,zone:Xe(n.zone,ot.defaultZone),loc:Nt.fromObject(n)});throw new T("fromSeconds requires a numerical input")},e.fromObject=function(t){var n=Xe(t.zone,ot.defaultZone);if(!n.isValid)return e.invalid(ur(n));var r=ot.now(),i=n.offset(r),o=W(t,br,["zone","locale","outputCalendar","numberingSystem"]),a=!O(o.ordinal),u=!O(o.year),s=!O(o.month)||!O(o.day),c=u||s,l=o.weekYear||o.weekNumber,f=Nt.fromObject(t);if((c||a)&&l)throw new k("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(s&&a)throw new k("Can't mix ordinal dates with month/day");var d,h,m=l||o.weekday&&!c,y=fr(r,i);m?(d=Sr,h=pr,y=Kn(y)):a?(d=Tr,h=wr,y=tr(y)):(d=kr,h=gr);var v=!1,g=d,p=Array.isArray(g),w=0;for(g=p?g:g["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var S;if(p){if(w>=g.length)break;S=g[w++]}else{if((w=g.next()).done)break;S=w.value}var T=S;O(o[T])?o[T]=v?h[T]:y[T]:v=!0}var b=(m?rr(o):a?ir(o):or(o))||ar(o);if(b)return e.invalid(b);var N=dr(m?er(o):a?nr(o):o,i,n),M=new e({ts:N[0],zone:n,o:N[1],loc:f});return o.weekday&&c&&t.weekday!==M.weekday?e.invalid("mismatched weekday","you can't specify both a weekday of "+o.weekday+" and a date of "+M.toISO()):M},e.fromISO=function(e,t){void 0===t&&(t={});var n=It(e,[en,on],[tn,an],[nn,un],[rn,sn]);return mr(n[0],n[1],t,"ISO 8601",e)},e.fromRFC2822=function(e,t){void 0===t&&(t={});var n=It(Gt(e),[Jt,Yt]);return mr(n[0],n[1],t,"RFC 2822",e)},e.fromHTTP=function(e,t){void 0===t&&(t={});var n=It(e,[$t,Xt],[Bt,Xt],[Qt,Kt]);return mr(n[0],n[1],t,"HTTP",t)},e.fromFormat=function(t,n,r){if(void 0===r&&(r={}),O(t)||O(n))throw new T("fromFormat requires an input string and a format");var i=r,o=i.locale,a=void 0===o?null:o,u=i.numberingSystem,s=void 0===u?null:u,c=Jn(Nt.fromOpts({locale:a,numberingSystem:s,defaultToEN:!0}),t,n),l=c[0],f=c[1],d=c[2];return d?e.invalid(d):mr(l,f,r,"format "+n,t)},e.fromString=function(t,n,r){return void 0===r&&(r={}),e.fromFormat(t,n,r)},e.fromSQL=function(e,t){void 0===t&&(t={});var n=It(e,[cn,fn],[ln,dn]);return mr(n[0],n[1],t,"SQL",e)},e.invalid=function(t,n){if(void 0===n&&(n=null),!t)throw new T("need to specify a reason the DateTime is invalid");var r=t instanceof hn?t:new hn(t,n);if(ot.throwOnInvalid)throw new g(r);return new e({invalid:r})},e.isDateTime=function(e){return e&&e.isLuxonDateTime||!1};var t=e.prototype;return t.get=function(e){return this[e]},t.resolvedLocaleOpts=function(e){void 0===e&&(e={});var t=st.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t.locale,numberingSystem:t.numberingSystem,outputCalendar:t.calendar}},t.toUTC=function(e,t){return void 0===e&&(e=0),void 0===t&&(t={}),this.setZone(Be.instance(e),t)},t.toLocal=function(){return this.setZone(ot.defaultZone)},t.setZone=function(t,n){var r=void 0===n?{}:n,i=r.keepLocalTime,o=void 0!==i&&i,a=r.keepCalendarTime,u=void 0!==a&&a;if((t=Xe(t,ot.defaultZone)).equals(this.zone))return this;if(t.isValid){var s=this.ts;if(o||u){var c=this.o-t.offset(this.ts);s=dr(this.toObject(),c,t)[0]}return cr(this,{ts:s,zone:t})}return e.invalid(ur(t))},t.reconfigure=function(e){var t=void 0===e?{}:e,n=t.locale,r=t.numberingSystem,i=t.outputCalendar;return cr(this,{loc:this.loc.clone({locale:n,numberingSystem:r,outputCalendar:i})})},t.setLocale=function(e){return this.reconfigure({locale:e})},t.set=function(e){if(!this.isValid)return this;var t,n=W(e,br,[]);!O(n.weekYear)||!O(n.weekNumber)||!O(n.weekday)?t=er(u(Kn(this.c),n)):O(n.ordinal)?(t=u(this.toObject(),n),O(n.day)&&(t.day=Math.min(_(t.year,t.month),t.day))):t=nr(u(tr(this.c),n));var r=dr(t,this.o,this.zone);return cr(this,{ts:r[0],o:r[1]})},t.plus=function(e){return this.isValid?cr(this,hr(this,bn(e))):this},t.minus=function(e){return this.isValid?cr(this,hr(this,bn(e).negate())):this},t.startOf=function(e){if(!this.isValid)return this;var t={},n=Tn.normalizeUnit(e);switch(n){case"years":t.month=1;case"quarters":case"months":t.day=1;case"weeks":case"days":t.hour=0;case"hours":t.minute=0;case"minutes":t.second=0;case"seconds":t.millisecond=0}if("weeks"===n&&(t.weekday=1),"quarters"===n){var r=Math.ceil(this.month/3);t.month=3*(r-1)+1}return this.set(t)},t.endOf=function(e){var t;return this.isValid?this.plus((t={},t[e]=1,t)).startOf(e).minus(1):this},t.toFormat=function(e,t){return void 0===t&&(t={}),this.isValid?st.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):"Invalid DateTime"},t.toLocaleString=function(e){return void 0===e&&(e=K),this.isValid?st.create(this.loc.clone(e),e).formatDateTime(this):"Invalid DateTime"},t.toLocaleParts=function(e){return void 0===e&&(e={}),this.isValid?st.create(this.loc.clone(e),e).formatDateTimeParts(this):[]},t.toISO=function(e){return void 0===e&&(e={}),this.isValid?this.toISODate()+"T"+this.toISOTime(e):null},t.toISODate=function(){var e="yyyy-MM-dd";return this.year>9999&&(e="+"+e),yr(this,e)},t.toISOWeekDate=function(){return yr(this,"kkkk-'W'WW-c")},t.toISOTime=function(e){var t=void 0===e?{}:e,n=t.suppressMilliseconds,r=void 0!==n&&n,i=t.suppressSeconds,o=void 0!==i&&i,a=t.includeOffset;return vr(this,{suppressSeconds:o,suppressMilliseconds:r,includeOffset:void 0===a||a})},t.toRFC2822=function(){return yr(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ")},t.toHTTP=function(){return yr(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")},t.toSQLDate=function(){return yr(this,"yyyy-MM-dd")},t.toSQLTime=function(e){var t=void 0===e?{}:e,n=t.includeOffset,r=void 0===n||n,i=t.includeZone;return vr(this,{includeOffset:r,includeZone:void 0!==i&&i,spaceZone:!0})},t.toSQL=function(e){return void 0===e&&(e={}),this.isValid?this.toSQLDate()+" "+this.toSQLTime(e):null},t.toString=function(){return this.isValid?this.toISO():"Invalid DateTime"},t.valueOf=function(){return this.toMillis()},t.toMillis=function(){return this.isValid?this.ts:NaN},t.toSeconds=function(){return this.isValid?this.ts/1e3:NaN},t.toJSON=function(){return this.toISO()},t.toBSON=function(){return this.toJSDate()},t.toObject=function(e){if(void 0===e&&(e={}),!this.isValid)return{};var t=u({},this.c);return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t},t.toJSDate=function(){return new Date(this.isValid?this.ts:NaN)},t.diff=function(e,t,n){if(void 0===t&&(t="milliseconds"),void 0===n&&(n={}),!this.isValid||!e.isValid)return Tn.invalid(this.invalid||e.invalid,"created by diffing an invalid DateTime");var r,i=u({locale:this.locale,numberingSystem:this.numberingSystem},n),o=(r=t,Array.isArray(r)?r:[r]).map(Tn.normalizeUnit),a=e.valueOf()>this.valueOf(),s=En(a?this:e,a?e:this,o,i);return a?s.negate():s},t.diffNow=function(t,n){return void 0===t&&(t="milliseconds"),void 0===n&&(n={}),this.diff(e.local(),t,n)},t.until=function(e){return this.isValid?Nn.fromDateTimes(this,e):this},t.hasSame=function(e,t){if(!this.isValid)return!1;if("millisecond"===t)return this.valueOf()===e.valueOf();var n=e.valueOf();return this.startOf(t)<=n&&n<=this.endOf(t)},t.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},t.toRelative=function(t){if(void 0===t&&(t={}),!this.isValid)return null;var n=t.base||e.fromObject({zone:this.zone}),r=t.padding?thisthis.set({month:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return z(this.year)}},{key:"daysInMonth",get:function(){return _(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?A(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?q(this.weekYear):NaN}}],[{key:"DATE_SHORT",get:function(){return K}},{key:"DATE_MED",get:function(){return ee}},{key:"DATE_FULL",get:function(){return te}},{key:"DATE_HUGE",get:function(){return ne}},{key:"TIME_SIMPLE",get:function(){return re}},{key:"TIME_WITH_SECONDS",get:function(){return ie}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return oe}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return ae}},{key:"TIME_24_SIMPLE",get:function(){return ue}},{key:"TIME_24_WITH_SECONDS",get:function(){return se}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return ce}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return le}},{key:"DATETIME_SHORT",get:function(){return fe}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return de}},{key:"DATETIME_MED",get:function(){return he}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return me}},{key:"DATETIME_FULL",get:function(){return ye}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return ve}},{key:"DATETIME_HUGE",get:function(){return ge}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return pe}}]),e})();function Dr(e){if(Mr.isDateTime(e))return e;if(e&&e.valueOf&&N(e.valueOf()))return Mr.fromJSDate(e);if(e&&"object"==typeof e)return Mr.fromObject(e);throw new T("Unknown datetime argument: "+e+", of type "+typeof e)}o.DateTime=Mr,o.Duration=Tn,o.FixedOffsetZone=Be,o.IANAZone=Ge,o.Info=Mn,o.Interval=Nn,o.InvalidZone=Qe,o.LocalZone=He,o.Settings=ot,o.Zone=je},560,[60]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.useCurrentTime=function(c){var y=(S=(0,n.useState)(c?t.DateTime.fromISO(c.toString()):t.DateTime.local()),T=2,f(S)||l(S,T)||u()),s=y[0],v=y[1];var S,T;return(0,o.useInterval)(function(){v(c?t.DateTime.fromISO(c.toString()):t.DateTime.local())},1e3),s};var t=r(d[0]),n=r(d[1]),o=r(d[2]);function u(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function l(t,n){var o=[],u=!0,l=!1,f=void 0;try{for(var c,y=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(u=(c=y.next()).done)&&(o.push(c.value),!n||o.length!==n);u=!0);}catch(t){l=!0,f=t}finally{try{u||null==y.return||y.return()}finally{if(l)throw f}}return o}function f(t){if(Array.isArray(t))return t}},561,[560,57,562]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.useInterval=function(t,u){var c=(0,n.useRef)(null);(0,n.useEffect)(function(){c.current=t},[t]),(0,n.useEffect)(function(){if(null!==u){var n=setInterval(function(){c.current()},u);return function(){return clearInterval(n)}}},[u])};var n=r(d[0])},562,[57]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},563,[564]); -__d(function(g,r,i,a,m,e,d){"use strict"},564,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},565,[566]); -__d(function(g,r,i,a,m,e,d){"use strict"},566,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var c=r(d[3]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})});var o=r(d[4]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var f=r(d[5]);Object.keys(f).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}})});var l=r(d[6]);Object.keys(l).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return l[t]}})});var b=r(d[7]);Object.keys(b).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return b[t]}})});var _=r(d[8]);Object.keys(_).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return _[t]}})});var s=r(d[9]);Object.keys(s).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return s[t]}})});var j=r(d[10]);Object.keys(j).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return j[t]}})});var y=r(d[11]);Object.keys(y).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return y[t]}})});var O=r(d[12]);Object.keys(O).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return O[t]}})});var p=r(d[13]);Object.keys(p).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return p[t]}})});var v=r(d[14]);Object.keys(v).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return v[t]}})});var M=r(d[15]);Object.keys(M).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return M[t]}})});var P=r(d[16]);Object.keys(P).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return P[t]}})});var h=r(d[17]);Object.keys(h).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return h[t]}})});var k=r(d[18]);Object.keys(k).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return k[t]}})});var E=r(d[19]);Object.keys(E).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return E[t]}})});var q=r(d[20]);Object.keys(q).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return q[t]}})});var w=r(d[21]);Object.keys(w).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return w[t]}})});var x=r(d[22]);Object.keys(x).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return x[t]}})});var z=r(d[23]);Object.keys(z).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return z[t]}})});var A=r(d[24]);Object.keys(A).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return A[t]}})});var B=r(d[25]);Object.keys(B).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return B[t]}})});var C=r(d[26]);Object.keys(C).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return C[t]}})});var D=r(d[27]);Object.keys(D).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return D[t]}})});var F=r(d[28]);Object.keys(F).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return F[t]}})});var G=r(d[29]);Object.keys(G).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return G[t]}})});var H=r(d[30]);Object.keys(H).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return H[t]}})});var I=r(d[31]);Object.keys(I).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return I[t]}})});var J=r(d[32]);Object.keys(J).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return J[t]}})});var K=r(d[33]);Object.keys(K).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return K[t]}})});var L=r(d[34]);Object.keys(L).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return L[t]}})});var N=r(d[35]);Object.keys(N).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return N[t]}})});var Q=r(d[36]);Object.keys(Q).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Q[t]}})});var R=r(d[37]);Object.keys(R).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return R[t]}})});var S=r(d[38]);Object.keys(S).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return S[t]}})});var T=r(d[39]);Object.keys(T).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return T[t]}})});var U=r(d[40]);Object.keys(U).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return U[t]}})});var V=r(d[41]);Object.keys(V).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return V[t]}})});var W=r(d[42]);Object.keys(W).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return W[t]}})});var X=r(d[43]);Object.keys(X).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return X[t]}})});var Y=r(d[44]);Object.keys(Y).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Y[t]}})});var Z=r(d[45]);Object.keys(Z).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Z[t]}})});var $=r(d[46]);Object.keys($).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return $[t]}})});var ee=r(d[47]);Object.keys(ee).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ee[t]}})});var te=r(d[48]);Object.keys(te).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return te[t]}})});var ne=r(d[49]);Object.keys(ne).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ne[t]}})});var re=r(d[50]);Object.keys(re).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return re[t]}})});var ue=r(d[51]);Object.keys(ue).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ue[t]}})});var ce=r(d[52]);Object.keys(ce).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ce[t]}})});var oe=r(d[53]);Object.keys(oe).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return oe[t]}})});var fe=r(d[54]);Object.keys(fe).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return fe[t]}})});var ae=r(d[55]);Object.keys(ae).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ae[t]}})});var de=r(d[56]);Object.keys(de).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return de[t]}})});var ie=r(d[57]);Object.keys(ie).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ie[t]}})});var le=r(d[58]);Object.keys(le).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return le[t]}})});var be=r(d[59]);Object.keys(be).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return be[t]}})});var _e=r(d[60]);Object.keys(_e).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return _e[t]}})});var se=r(d[61]);Object.keys(se).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return se[t]}})});var je=r(d[62]);Object.keys(je).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return je[t]}})});var ye=r(d[63]);Object.keys(ye).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ye[t]}})});var Oe=r(d[64]);Object.keys(Oe).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Oe[t]}})});var pe=r(d[65]);Object.keys(pe).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return pe[t]}})});var ve=r(d[66]);Object.keys(ve).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ve[t]}})});var Me=r(d[67]);Object.keys(Me).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Me[t]}})});var Pe=r(d[68]);Object.keys(Pe).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Pe[t]}})});var ge=r(d[69]);Object.keys(ge).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ge[t]}})});var he=r(d[70]);Object.keys(he).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return he[t]}})});var ke=r(d[71]);Object.keys(ke).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return ke[t]}})});var me=r(d[72]);Object.keys(me).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return me[t]}})});var Ee=r(d[73]);Object.keys(Ee).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return Ee[t]}})});var qe=r(d[74]);Object.keys(qe).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return qe[t]}})});var we=r(d[75]);Object.keys(we).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return we[t]}})});var xe=r(d[76]);Object.keys(xe).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return xe[t]}})})},567,[568,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,569,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PlusIcon=e.AddCircleFillIcon=void 0;var l,t=(l=r(d[0]))&&l.__esModule?l:{default:l},n=r(d[1]),o=r(d[2]);function c(){return(c=Object.assign||function(l){for(var t=1;t>>0===n&&n>=0&&n<=4294967295)return[0,(0,t.integerColor)(n)];if(!n||'none'===n)return null;if('currentColor'===n)return u;if('context-fill'===n)return f;if('context-stroke'===n)return l;var c='string'==typeof n&&n.match(o);if(c)return[1,c[1]];var s=(0,t.default)(n);if('number'==typeof s)return[0,s];return console.warn("\""+n+"\" is not a valid color or brush"),null};var t=n(r(d[1])),o=/^url\(#(.+)\)$/,u=[2],f=[3],l=[4]},582,[571,583]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(l){if('number'==typeof l)return l>>>0===l&&l>=0&&l<=4294967295?_(l):null;var n='string'==typeof l?O(l):l;if(!Array.isArray(n))return n;var t=n[0],o=n[1],s=n[2],u=n[3],c=((void 0===u?4278190080:Math.round(255*u)<<24)|Math.round(255*t)<<16|Math.round(255*o)<<8|Math.round(255*s))>>>0;return _(c)},e.integerColor=e.colorNames=e.colors=void 0;var l=r(d[0]),n={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};e.colors=n;var t={};for(var o in e.colorNames=t,n)if(n.hasOwnProperty(o)){var s=n[o],u=s[0],c=s[1],h=s[2];t[o]=(4278190080|u<<16|c<<8|h)>>>0}function f(l,n,t,o){var s,u,c,h,f,b=l/360,p=n/100,y=t/100;if(0===p)return[f=y,f,f,o];s=2*y-(u=y<.5?y*(1+p):y+p-y*p),h=[0,0,0,o];for(var k=0;k<3;k++)(c=b+.3333333333333333*-(k-1))<0&&c++,c>1&&c--,f=6*c<1?s+6*(u-s)*c:2*c<1?u:3*c<2?s+(u-s)*(.6666666666666666-c)*6:s,h[k]=f;return h}function b(l,n,t,o){var s,u,c,h,f,b,p,y=l/360,k=n/100,v=t/100,w=k+v;switch(w>1&&(k/=w,v/=w),u=1-v,c=6*y-(s=Math.floor(6*y)),0!=(1&s)&&(c=1-c),h=k+c*(u-k),s){default:case 6:case 0:f=u,b=h,p=k;break;case 1:f=h,b=u,p=k;break;case 2:f=k,b=u,p=h;break;case 3:f=k,b=h,p=u;break;case 4:f=h,b=k,p=u;break;case 5:f=u,b=k,p=h}return[f,b,p,o]}function p(l,n,t){return Math.min(Math.max(n,l),t)}Object.freeze(t);var y=/^#([a-f0-9]{3,4})$/i,k=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,v=/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/,w=/^rgba?\(\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/,F=/(\D+)/;function M(l){var n,o,s,u=[0,0,0,1];if(n=l.match(k)){for(s=n[2],n=n[1],o=0;o<3;o++){var c=2*o;u[o]=parseInt(n.slice(c,c+2),16)/255}s&&(u[3]=Math.round(parseInt(s,16)/255*100)/100)}else if(n=l.match(y)){for(s=(n=n[1])[3],o=0;o<3;o++)u[o]=parseInt(n[o]+n[o],16)/255;s&&(u[3]=Math.round(parseInt(s+s,16)/255*100)/100)}else if(n=l.match(v)){for(o=0;o<3;o++)u[o]=parseInt(n[o+1],0)/255;n[4]&&(u[3]=parseFloat(n[4]))}else{if(!(n=l.match(w))){if(n=l.match(F)){if('transparent'===n[1])return[0,0,0,0];var h=t[n[1]];return'number'!=typeof h?null:_(h)}return null}for(o=0;o<3;o++)u[o]=parseFloat(n[o+1])/100;n[4]&&(u[3]=parseFloat(n[4]))}for(o=0;o<4;o++)u[o]=p(u[o],0,1);return u}var q=/^hsla?\(\s*([+-]?(?:\d*\.)?\d+)(?:deg)?\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/;function N(l){var n=l.match(q);if(!n)return null;var t=parseFloat(n[4]);return f((parseFloat(n[1])+360)%360,p(parseFloat(n[2]),0,100),p(parseFloat(n[3]),0,100),isNaN(t)?1:p(t,0,1))}var $=/^hwb\(\s*([+-]?\d*[.]?\d+)(?:deg)?\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/;function I(l){var n=l.match($);if(!n)return null;var t=parseFloat(n[4]);return b((parseFloat(n[1])%360+360)%360,p(parseFloat(n[2]),0,100),p(parseFloat(n[3]),0,100),isNaN(t)?1:p(t,0,1))}function O(l){switch(l.substring(0,3).toLowerCase()){case'hsl':return N(l);case'hwb':return I(l);default:return M(l)}}var _='android'===l.Platform.OS?function(l){return 0|l}:function(l){return l};e.integerColor=_},583,[3]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){var t=+n;return isNaN(t)?1:t}},584,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,f){var h=t.stroke,c=t.strokeOpacity,p=t.strokeLinecap,v=t.strokeLinejoin,y=t.strokeDasharray,D=t.strokeWidth,L=t.strokeDashoffset,b=t.strokeMiterlimit,j=t.vectorEffect;null!=h&&f.push('stroke');null!=D&&f.push('strokeWidth');null!=c&&f.push('strokeOpacity');null!=y&&f.push('strokeDasharray');null!=L&&f.push('strokeDashoffset');null!=p&&f.push('strokeLinecap');null!=v&&f.push('strokeLinejoin');null!=b&&f.push('strokeMiterlimit');var M=y&&'none'!==y?(0,n.default)(y):null;return{stroke:(0,o.default)(h),strokeOpacity:(0,s.default)(c),strokeLinecap:p&&l[p]||0,strokeLinejoin:v&&u[v]||0,strokeDasharray:M&&M.length%2==1?M.concat(M):M,strokeWidth:null!=D?D:1,strokeDashoffset:y&&L?+L||0:null,strokeMiterlimit:(b&&'number'!=typeof b?parseFloat(b):b)||4,vectorEffect:j&&k[j]||0}};var o=t(r(d[1])),s=t(r(d[2])),n=t(r(d[3])),l={butt:0,square:2,round:1},u={miter:0,bevel:2,round:1},k={none:0,default:0,nonScalingStroke:1,'non-scaling-stroke':1,inherit:2,uri:3}},585,[1,582,584,586]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(u){return Array.isArray(u)?u:'number'==typeof u?[u]:'string'==typeof u?u.trim().replace(n,' ').split(t):[]};var t=/\s+/,n=/,/g},586,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.props2transform=y,e.transformToMatrix=l,e.default=function(s){if(Array.isArray(s))return s;if('string'==typeof s)try{var o=(0,n.parse)(s);return[o[0],o[3],o[1],o[4],o[2],o[5]]}catch(n){return console.error(n),t.identity}return l(y(s),s.transform)};var t=r(d[0]),n=r(d[1]);function s(n){var s=n.x,o=n.y,y=n.originX,l=n.originY,f=n.scaleX,c=n.scaleY,u=n.rotation,p=n.skewX,A=n.skewY;(0,t.appendTransform)(s+y,o+l,f,c,u,p,A,y,l)}function o(t,n,s,o){var y,l;if('number'==typeof t)y=l=t;else if('string'==typeof t){var f=t.split(/\s*,\s*/);2===f.length?(y=+f[0],l=+f[1]):1===f.length&&(y=l=+f[0])}else Array.isArray(t)&&(2===t.length?(y=+t[0],l=+t[1]):1===t.length&&(y=l=+t[0]));return n=+n,isNaN(n)||(y=n),s=+s,isNaN(s)||(l=s),[y||o||0,l||o||0]}function y(t){var n=t.rotation,s=void 0===n?0:n,y=t.translate,l=t.translateX,f=t.translateY,c=t.origin,u=t.originX,p=t.originY,A=t.scale,v=t.scaleX,X=t.scaleY,Y=t.skew,h=t.skewX,w=t.skewY,k=t.x,x=t.y;(Array.isArray(k)||Array.isArray(x))&&console.warn('Passing SvgLengthList to x or y attribute where SvgLength expected');var b=o(y,l||(Array.isArray(k)?k[0]:k),f||(Array.isArray(x)?x[0]:x)),N=o(c,u,p),_=o(A,v,X,1),L=o(Y,h,w);return{rotation:+s||0,originX:N[0],originY:N[1],scaleX:_[0],scaleY:_[1],skewX:L[0],skewY:L[1],x:b[0],y:b[1]}}function l(o,l){if((0,t.reset)(),s(o),l)if(Array.isArray(l))'number'==typeof l[0]&&(0,t.append)(l[0],l[1],l[2],l[3],l[4],l[5]);else if('string'==typeof l)try{var f=(0,n.parse)(l);(0,t.append)(f[0],f[3],f[1],f[4],f[2],f[5])}catch(t){console.error(t)}else s(y(l));return(0,t.toArray)()}},587,[588,589]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.reset=function(){if(M)return;f=v=1,o=u=c=s=0,M=!0},e.toArray=function(){if(M)return n;return[f,o,u,v,c,s]},e.append=h,e.appendTransform=function(n,p,l,y,_,P,b,j,A){if(0===n&&0===p&&1===l&&1===y&&0===_&&0===P&&0===b&&0===j&&0===A)return;var I,O;if(_%360){var T=_*t;I=Math.cos(T),O=Math.sin(T)}else I=1,O=0;var k=I*l,q=O*l,w=-O*y,x=I*y;if(P||b){var z=Math.tan(b*t),B=Math.tan(P*t);h(k+B*q,z*k+q,w+B*x,z*w+x,n,p)}else h(k,q,w,x,n,p);(j||A)&&(c-=j*f+A*u,s-=j*o+A*v,M=!1)},e.identity=void 0;var t=Math.PI/180,n=[1,0,0,1,0,0];e.identity=n;var f=1,o=0,u=0,v=1,c=0,s=0,M=!0;function h(t,n,h,p,l,y){var _=1!==t||0!==n||0!==h||1!==p,P=0!==l||0!==y;if(_||P){if(M)return M=!1,f=t,o=n,u=h,v=p,c=l,void(s=y);var b=f,j=o,A=u,I=v;_&&(f=b*t+A*n,o=j*t+I*n,u=b*h+A*p,v=j*h+I*p),P&&(c=b*l+A*y+c,s=j*l+I*y+s)}}},588,[]); -__d(function(g,r,i,a,m,e,d){"use strict";function n(t,u,o,f){this.message=t,this.expected=u,this.found=o,this.location=f,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,n)}!(function(n,t){function u(){this.constructor=n}u.prototype=t.prototype,n.prototype=new u})(n,Error),n.buildMessage=function(n,t){var u={literal:function(n){return"\""+f(n.text)+"\""},class:function(n){var t,u="";for(t=0;t0){for(t=1,o=1;tse&&(se=ie,le=[]),le.push(n))}function ve(){var n,t,u,o,s;for(n=ie,t=[],u=Pe();u!==f;)t.push(u),u=Pe();if(t!==f)if((u=Ae())===f&&(u=null),u!==f){for(o=[],s=Pe();s!==f;)o.push(s),s=Pe();o!==f?n=t=c(u):(ie=n,n=f)}else ie=n,n=f;else ie=n,n=f;return n}function Ae(){var n,t,u,o;if(n=ie,(t=xe())!==f){for(u=[],o=ke();o!==f;)u.push(o),o=ke();u!==f&&(o=Ae())!==f?n=t=h(t,o):(ie=n,n=f)}else ie=n,n=f;return n===f&&(n=xe()),n}function xe(){var n;return(n=Ce())===f&&(n=me())===f&&(n=ye())===f&&(n=je())===f&&(n=we())===f&&(n=be()),n}function Ce(){var n,u,o,s,l,c,h,w,b,E,F,M,k;if(n=ie,t.substr(ie,6)===p?(u=p,ie+=6):(u=f,0===ae&&de(v)),u!==f){for(o=[],s=Pe();s!==f;)o.push(s),s=Pe();if(o!==f)if(40===t.charCodeAt(ie)?(s=A,ie++):(s=f,0===ae&&de(x)),s!==f){for(l=[],c=Pe();c!==f;)l.push(c),c=Pe();if(l!==f)if((c=Ee())!==f)if(ke()!==f)if((h=Ee())!==f)if(ke()!==f)if((w=Ee())!==f)if(ke()!==f)if((b=Ee())!==f)if(ke()!==f)if((E=Ee())!==f)if(ke()!==f)if((F=Ee())!==f){for(M=[],k=Pe();k!==f;)M.push(k),k=Pe();M!==f?(41===t.charCodeAt(ie)?(k=C,ie++):(k=f,0===ae&&de(y)),k!==f?n=u=j(c,h,w,b,E,F):(ie=n,n=f)):(ie=n,n=f)}else ie=n,n=f;else ie=n,n=f;else ie=n,n=f;else ie=n,n=f;else ie=n,n=f;else ie=n,n=f;else ie=n,n=f;else ie=n,n=f;else ie=n,n=f;else ie=n,n=f;else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;return n}function me(){var n,u,o,s,l,c,h,p,v;if(n=ie,t.substr(ie,9)===w?(u=w,ie+=9):(u=f,0===ae&&de(b)),u!==f){for(o=[],s=Pe();s!==f;)o.push(s),s=Pe();if(o!==f)if(40===t.charCodeAt(ie)?(s=A,ie++):(s=f,0===ae&&de(x)),s!==f){for(l=[],c=Pe();c!==f;)l.push(c),c=Pe();if(l!==f)if((c=Ee())!==f)if((h=Fe())===f&&(h=null),h!==f){for(p=[],v=Pe();v!==f;)p.push(v),v=Pe();p!==f?(41===t.charCodeAt(ie)?(v=C,ie++):(v=f,0===ae&&de(y)),v!==f?n=u=E(c,h):(ie=n,n=f)):(ie=n,n=f)}else ie=n,n=f;else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;return n}function ye(){var n,u,o,s,l,c,h,p,v;if(n=ie,t.substr(ie,5)===F?(u=F,ie+=5):(u=f,0===ae&&de(M)),u!==f){for(o=[],s=Pe();s!==f;)o.push(s),s=Pe();if(o!==f)if(40===t.charCodeAt(ie)?(s=A,ie++):(s=f,0===ae&&de(x)),s!==f){for(l=[],c=Pe();c!==f;)l.push(c),c=Pe();if(l!==f)if((c=Ee())!==f)if((h=Fe())===f&&(h=null),h!==f){for(p=[],v=Pe();v!==f;)p.push(v),v=Pe();p!==f?(41===t.charCodeAt(ie)?(v=C,ie++):(v=f,0===ae&&de(y)),v!==f?n=u=k(c,h):(ie=n,n=f)):(ie=n,n=f)}else ie=n,n=f;else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;return n}function je(){var n,u,o,s,l,c,h,p,v;if(n=ie,t.substr(ie,6)===S?(u=S,ie+=6):(u=f,0===ae&&de(R)),u!==f){for(o=[],s=Pe();s!==f;)o.push(s),s=Pe();if(o!==f)if(40===t.charCodeAt(ie)?(s=A,ie++):(s=f,0===ae&&de(x)),s!==f){for(l=[],c=Pe();c!==f;)l.push(c),c=Pe();if(l!==f)if((c=Ee())!==f)if((h=Me())===f&&(h=null),h!==f){for(p=[],v=Pe();v!==f;)p.push(v),v=Pe();p!==f?(41===t.charCodeAt(ie)?(v=C,ie++):(v=f,0===ae&&de(y)),v!==f?n=u=I(c,h):(ie=n,n=f)):(ie=n,n=f)}else ie=n,n=f;else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;return n}function we(){var n,u,o,s,l,c,h,p;if(n=ie,t.substr(ie,5)===T?(u=T,ie+=5):(u=f,0===ae&&de(X)),u!==f){for(o=[],s=Pe();s!==f;)o.push(s),s=Pe();if(o!==f)if(40===t.charCodeAt(ie)?(s=A,ie++):(s=f,0===ae&&de(x)),s!==f){for(l=[],c=Pe();c!==f;)l.push(c),c=Pe();if(l!==f)if((c=Ee())!==f){for(h=[],p=Pe();p!==f;)h.push(p),p=Pe();h!==f?(41===t.charCodeAt(ie)?(p=C,ie++):(p=f,0===ae&&de(y)),p!==f?n=u=Y(c):(ie=n,n=f)):(ie=n,n=f)}else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;return n}function be(){var n,u,o,s,l,c,h,p;if(n=ie,t.substr(ie,5)===_?(u=_,ie+=5):(u=f,0===ae&&de(L)),u!==f){for(o=[],s=Pe();s!==f;)o.push(s),s=Pe();if(o!==f)if(40===t.charCodeAt(ie)?(s=A,ie++):(s=f,0===ae&&de(x)),s!==f){for(l=[],c=Pe();c!==f;)l.push(c),c=Pe();if(l!==f)if((c=Ee())!==f){for(h=[],p=Pe();p!==f;)h.push(p),p=Pe();h!==f?(41===t.charCodeAt(ie)?(p=C,ie++):(p=f,0===ae&&de(y)),p!==f?n=u=P(c):(ie=n,n=f)):(ie=n,n=f)}else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;else ie=n,n=f}else ie=n,n=f;return n}function Ee(){var n,t,u,o;return n=ie,t=ie,(u=Ye())===f&&(u=null),u!==f&&(o=Ie())!==f?t=u=[u,o]:(ie=t,t=f),t!==f&&(t=U(t)),(n=t)===f&&(n=ie,t=ie,(u=Ye())===f&&(u=null),u!==f&&(o=Re())!==f?t=u=[u,o]:(ie=t,t=f),t!==f&&(t=q(t)),n=t),n}function Fe(){var n,t;return n=ie,ke()!==f&&(t=Ee())!==f?n=z(t):(ie=n,n=f),n}function Me(){var n,t,u;return n=ie,ke()!==f&&(t=Ee())!==f&&ke()!==f&&(u=Ee())!==f?n=B(t,u):(ie=n,n=f),n}function ke(){var n,t,u,o,s;if(n=ie,t=[],(u=Pe())!==f)for(;u!==f;)t.push(u),u=Pe();else t=f;if(t!==f)if((u=Se())===f&&(u=null),u!==f){for(o=[],s=Pe();s!==f;)o.push(s),s=Pe();o!==f?n=t=[t,u,o]:(ie=n,n=f)}else ie=n,n=f;else ie=n,n=f;if(n===f)if(n=ie,(t=Se())!==f){for(u=[],o=Pe();o!==f;)u.push(o),o=Pe();u!==f?n=t=[t,u]:(ie=n,n=f)}else ie=n,n=f;return n}function Se(){var n;return 44===t.charCodeAt(ie)?(n=D,ie++):(n=f,0===ae&&de(G)),n}function Re(){var n;return ie,(n=_e())!==f&&(n=H(n)),n}function Ie(){var n,t,u,o;return n=ie,t=ie,(u=Te())!==f?((o=Xe())===f&&(o=null),o!==f?t=u=[u,o]:(ie=t,t=f)):(ie=t,t=f),t!==f&&(t=J(t)),(n=t)===f&&(n=ie,t=ie,(u=_e())!==f&&(o=Xe())!==f?t=u=[u,o]:(ie=t,t=f),t!==f&&(t=K(t)),n=t),n}function Te(){var n,u,o,s;return ae++,n=ie,(u=_e())===f&&(u=null),u!==f?(46===t.charCodeAt(ie)?(o=O,ie++):(o=f,0===ae&&de(Q)),o!==f&&(s=_e())!==f?n=u=V(u,s):(ie=n,n=f)):(ie=n,n=f),n===f&&(n=ie,(u=_e())!==f?(46===t.charCodeAt(ie)?(o=O,ie++):(o=f,0===ae&&de(Q)),o!==f?n=u=K(u):(ie=n,n=f)):(ie=n,n=f)),ae--,n===f&&(u=f,0===ae&&de(N)),n}function Xe(){var n,u,o,s;return ie,n=ie,W.test(t.charAt(ie))?(u=t.charAt(ie),ie++):(u=f,0===ae&&de(Z)),u!==f?((o=Ye())===f&&(o=null),o!==f&&(s=_e())!==f?n=u=[u,o,s]:(ie=n,n=f)):(ie=n,n=f),n!==f&&(n=$(n)),n}function Ye(){var n;return ee.test(t.charAt(ie))?(n=t.charAt(ie),ie++):(n=f,0===ae&&de(re)),n}function _e(){var n,t;if(n=[],(t=Le())!==f)for(;t!==f;)n.push(t),t=Le();else n=f;return n}function Le(){var n;return ne.test(t.charAt(ie))?(n=t.charAt(ie),ie++):(n=f,0===ae&&de(te)),n}function Pe(){var n;return ue.test(t.charAt(ie))?(n=t.charAt(ie),ie++):(n=f,0===ae&&de(oe)),n}var Ue,qe,ze,Be=Math.PI/180;if((o=l())!==f&&ie===t.length)return o;throw o!==f&&ie1||Array.isArray(y)?f.Children.map(y,A):y;return{content:null===V?String(y):null,children:V,inlineSize:h,baselineShift:x,verticalAlign:v,alignmentBaseline:F,font:b(t),x:(0,u.default)(o),y:(0,u.default)(c),dx:(0,u.default)(s),dy:(0,u.default)(S),rotate:(0,u.default)(p)}};var l,o=n(r(d[2])),f=t(r(d[3])),u=n(r(d[4])),c=r(d[5]),s=/^\s*((?:(?:normal|bold|italic)\s+)*)(?:(\d+(?:\.\d+)?(?:%|px|em|pt|pc|mm|cm|in]))*(?:\s*\/.*?)?\s+)?\s*"?([^"]*)/i,S=/^[\s"']*/,p=/[\s"']*$/,y=/\s*,\s*/g,h={};function x(t){return t?t.split(y)[0].replace(S,'').replace(p,''):null}function v(t){if(h.hasOwnProperty(t))return h[t];var n=s.exec(t);if(!n)return h[t]=null,null;var l=/bold/.exec(n[1]),o=/italic/.exec(n[1]);return h[t]={fontSize:n[2]||12,fontWeight:l?'bold':'normal',fontStyle:o?'italic':'normal',fontFamily:x(n[3])},h[t]}function b(t){var n=t.fontData,l=t.fontStyle,f=t.fontVariant,u=t.fontWeight,s=t.fontStretch,S=t.fontSize,p=t.fontFamily,y=t.textAnchor,h=t.textDecoration,b=t.letterSpacing,A=t.wordSpacing,F=t.kerning,V=t.fontFeatureSettings,z=t.fontVariantLigatures,D=t.fontVariationSettings,_=t.font,k=(0,c.pickNotNil)({fontData:n,fontStyle:l,fontVariant:f,fontWeight:u,fontStretch:s,fontSize:S,fontFamily:x(p),textAnchor:y,textDecoration:h,letterSpacing:b,wordSpacing:A,kerning:F,fontFeatureSettings:V,fontVariantLigatures:z,fontVariationSettings:D}),w='string'==typeof _?v(_):_;return(0,o.default)({},w,k)}function A(t){return'string'==typeof t||'number'==typeof t?f.default.createElement(l,null,String(t)):t}},602,[571,1,410,57,586,591]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.RNSVGText=e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=l(r(d[4])),o=l(r(d[5])),s=l(r(d[6])),v=l(r(d[7])),p=l(r(d[8])),c=l(r(d[9])),N=r(d[10]),h=l(r(d[11])),y=t(r(d[12])),x=l(r(d[13])),S=r(d[14]),T=l(r(d[15]));r(d[16]);var _=(function(t){function l(){var t,u;(0,n.default)(this,l);for(var o=arguments.length,p=new Array(o),c=0;c=o))break;f-=o}var s=t.slice(0,n).replace(/^\t+/,ee),p=/(^|\n).*$/.exec(s),v=p&&p[0]||'',h=t.slice(n),x=/.*(\n|$)/.exec(h);return{line:c,column:f,snippet:""+v+(x&&x[0])+"\n"+Y(' ',v.length)+"^"}}var re=/[a-zA-Z0-9:_-]/,ne=/[\s\t\r\n]/,ae=/['"]/;function ue(t,n){var u,l=t.length,f=null,c=function(){for(;A+1'!==t[A]&&p('Expected >'),C||(f=w,o=w.children,s.push(w)),v}function x(){var n=t.indexOf('--\x3e',A);return~n||p('expected --\x3e'),A=n+2,v}function y(){var n=t.indexOf(']]>',A);return~n||p('expected ]]>'),o.push(t.slice(A+7,n)),A=n+2,v}function k(){var n=S();(n||p('Expected tag name'),f&&n!==f.tag&&p("Expected closing tag to match opening tag <"+f.tag+">"),'>'!==t[A]&&p('Expected >'),s.pop(),f=s[s.length-1])&&(o=f.children);return v}function S(){for(var n,u='';A'===u||'/'===u)return n;n+=u,A+=1}while(A-1;){for(n=o=t[s],delete t[s],l=!0;o;){if(t.includes(o)){l=!1,t.splice(s,1);break}o='object'==typeof o&&o.parent||null}l&&(t[s]=n)}return t},existsOne:function t(n,o){return o.some(function(o){return'object'==typeof o&&(n(o)||t(n,o.children))})},getSiblings:function(t){var n='object'==typeof t&&t.parent;return n&&n.children||[]},hasAttrib:function(t,n){return t.props.hasOwnProperty(n)},findOne:function t(n,o){for(var l,s=0,u=o.length;s2&&void 0!==arguments[2]?arguments[2]:[],s=0,u=o.length;sn[o])return 1}return 0}function M(t){return{selector:t,specificity:j(t.item.data)}}function T(t,n,o,l){var s,u,c,f,p,v,h,y=2*o,b=0;for(s=0;sn&&(u=n),c>n&&(c=n),f=s,p=u;;)if(f=l.length)break;c=l[u++]}else{if((u=l.next()).done)break;c=u.value}var f=c,p=f.children;if(p.length&&!V(f,'foreignObject'))try{var v=p.join('');x(y.default.parse(v,R),o)}catch(t){console.warn('Warning: Parse error of styles of ';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.2.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React__default.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(id) {\n return document.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.2.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return React.cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCss = function objToCss(obj, prevKey) {\n var css = Object.keys(obj).filter(function (key) {\n return !isFalsish(obj[key]);\n }).map(function (key) {\n if (isPlainObject(obj[key])) return objToCss(obj[key], key);\n return hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';';\n }).join(' ');\n return prevKey ? prevKey + ' {\\n ' + css + '\\n}' : css;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && reactIs.isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCss(chunk) : chunk.toString();\n}\n\n// \nvar printed = {};\n\nfunction warnOnce(message) {\n if (printed[message]) return;\n printed[message] = true;\n\n if (typeof console !== 'undefined' && console.warn) console.warn(message);\n}\n\n// \nvar SINGLE_QUOTE = \"'\".charCodeAt(0);\nvar DOUBLE_QUOTE = '\"'.charCodeAt(0);\nvar BACKSLASH = '\\\\'.charCodeAt(0);\nvar SLASH = '/'.charCodeAt(0);\nvar NEWLINE = '\\n'.charCodeAt(0);\nvar SPACE = ' '.charCodeAt(0);\nvar FEED = '\\f'.charCodeAt(0);\nvar TAB = '\\t'.charCodeAt(0);\nvar CR = '\\r'.charCodeAt(0);\nvar OPEN_SQUARE = '['.charCodeAt(0);\nvar CLOSE_SQUARE = ']'.charCodeAt(0);\nvar OPEN_PARENTHESES = '('.charCodeAt(0);\nvar CLOSE_PARENTHESES = ')'.charCodeAt(0);\nvar OPEN_CURLY = '{'.charCodeAt(0);\nvar CLOSE_CURLY = '}'.charCodeAt(0);\nvar SEMICOLON = ';'.charCodeAt(0);\nvar ASTERISK = '*'.charCodeAt(0);\nvar COLON = ':'.charCodeAt(0);\nvar AT = '@'.charCodeAt(0);\n\nvar RE_AT_END = /[ \\n\\t\\r\\f\\{\\(\\)'\"\\\\;/\\[\\]#]/g;\nvar RE_WORD_END = /[ \\n\\t\\r\\f\\(\\)\\{\\}:;@!'\"\\\\\\]\\[#]|\\/(?=\\*)/g;\nvar RE_BAD_BRACKET = /.[\\\\\\/\\(\"'\\n]/;\n\nfunction tokenize(input) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var tokens = [];\n var css = input.css.valueOf();\n\n var ignore = options.ignoreErrors;\n\n var code = void 0,\n next = void 0,\n quote = void 0,\n lines = void 0,\n last = void 0,\n content = void 0,\n escape = void 0,\n nextLine = void 0,\n nextOffset = void 0,\n escaped = void 0,\n escapePos = void 0,\n prev = void 0,\n n = void 0;\n\n var length = css.length;\n var offset = -1;\n var line = 1;\n var pos = 0;\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, line, pos - offset);\n }\n\n while (pos < length) {\n code = css.charCodeAt(pos);\n\n if (code === NEWLINE || code === FEED || code === CR && css.charCodeAt(pos + 1) !== NEWLINE) {\n offset = pos;\n line += 1;\n }\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED:\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n if (code === NEWLINE) {\n offset = next;\n line += 1;\n }\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n\n tokens.push(['space', css.slice(pos, next)]);\n pos = next - 1;\n break;\n\n case OPEN_SQUARE:\n tokens.push(['[', '[', line, pos - offset]);\n break;\n\n case CLOSE_SQUARE:\n tokens.push([']', ']', line, pos - offset]);\n break;\n\n case OPEN_CURLY:\n tokens.push(['{', '{', line, pos - offset]);\n break;\n\n case CLOSE_CURLY:\n tokens.push(['}', '}', line, pos - offset]);\n break;\n\n case COLON:\n tokens.push([':', ':', line, pos - offset]);\n break;\n\n case SEMICOLON:\n tokens.push([';', ';', line, pos - offset]);\n break;\n\n case OPEN_PARENTHESES:\n prev = tokens.length ? tokens[tokens.length - 1][1] : '';\n n = css.charCodeAt(pos + 1);\n if (prev === 'url' && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(')', next + 1);\n if (next === -1) {\n if (ignore) {\n next = pos;\n break;\n } else {\n unclosed('bracket');\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n tokens.push(['brackets', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n } else {\n next = css.indexOf(')', pos + 1);\n content = css.slice(pos, next + 1);\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n tokens.push(['(', '(', line, pos - offset]);\n } else {\n tokens.push(['brackets', content, line, pos - offset, line, next - offset]);\n pos = next;\n }\n }\n\n break;\n\n case CLOSE_PARENTHESES:\n tokens.push([')', ')', line, pos - offset]);\n break;\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE:\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore) {\n next = pos + 1;\n break;\n } else {\n unclosed('quote');\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n content = css.slice(pos, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokens.push(['string', css.slice(pos, next + 1), line, pos - offset, nextLine, next - nextOffset]);\n\n offset = nextOffset;\n line = nextLine;\n pos = next;\n break;\n\n case AT:\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n tokens.push(['at-word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n break;\n\n case BACKSLASH:\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n }\n tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n break;\n\n default:\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1;\n if (next === 0) {\n if (ignore) {\n next = css.length;\n } else {\n unclosed('comment');\n }\n }\n\n content = css.slice(pos, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokens.push(['comment', content, line, pos - offset, nextLine, next - nextOffset]);\n\n offset = nextOffset;\n line = nextLine;\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n\n tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n }\n\n break;\n }\n\n pos++;\n }\n\n return tokens;\n}\n\n// \n\nvar HIGHLIGHT_THEME = {\n brackets: [36, 39], // cyan\n string: [31, 39], // red\n 'at-word': [31, 39], // red\n comment: [90, 39], // gray\n '{': [32, 39], // green\n '}': [32, 39], // green\n ':': [1, 22], // bold\n ';': [1, 22], // bold\n '(': [1, 22], // bold\n ')': [1, 22] // bold\n};\n\nfunction code(color) {\n return '\\x1B[' + color + 'm';\n}\n\nfunction terminalHighlight(css) {\n var tokens = tokenize(new Input(css), { ignoreErrors: true });\n var result = [];\n tokens.forEach(function (token) {\n var color = HIGHLIGHT_THEME[token[0]];\n if (color) {\n result.push(token[1].split(/\\r?\\n/).map(function (i) {\n return code(color[0]) + i + code(color[1]);\n }).join('\\n'));\n } else {\n result.push(token[1]);\n }\n });\n return result.join('');\n}\n\n// \n\n/**\n * The CSS parser throws this error for broken CSS.\n *\n * Custom parsers can throw this error for broken custom syntax using\n * the {@link Node#error} method.\n *\n * PostCSS will use the input source map to detect the original error location.\n * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS,\n * PostCSS will show the original position in the Sass file.\n *\n * If you need the position in the PostCSS input\n * (e.g., to debug the previous compiler), use `error.input.file`.\n *\n * @example\n * // Catching and checking syntax error\n * try {\n * postcss.parse('a{')\n * } catch (error) {\n * if ( error.name === 'CssSyntaxError' ) {\n * error //=> CssSyntaxError\n * }\n * }\n *\n * @example\n * // Raising error from plugin\n * throw node.error('Unknown variable', { plugin: 'postcss-vars' });\n */\n\nvar CssSyntaxError = function () {\n /**\n * @param {string} message - error message\n * @param {number} [line] - source line of the error\n * @param {number} [column] - source column of the error\n * @param {string} [source] - source code of the broken file\n * @param {string} [file] - absolute path to the broken file\n * @param {string} [plugin] - PostCSS plugin name, if error came from plugin\n */\n function CssSyntaxError(message, line, column, source, file, plugin) {\n classCallCheck(this, CssSyntaxError);\n\n /**\n * @member {string} - Always equal to `'CssSyntaxError'`. You should\n * always check error type\n * by `error.name === 'CssSyntaxError'` instead of\n * `error instanceof CssSyntaxError`, because\n * npm could have several PostCSS versions.\n *\n * @example\n * if ( error.name === 'CssSyntaxError' ) {\n * error //=> CssSyntaxError\n * }\n */\n this.name = 'CssSyntaxError';\n /**\n * @member {string} - Error message.\n *\n * @example\n * error.message //=> 'Unclosed block'\n */\n this.reason = message;\n\n if (file) {\n /**\n * @member {string} - Absolute path to the broken file.\n *\n * @example\n * error.file //=> 'a.sass'\n * error.input.file //=> 'a.css'\n */\n this.file = file;\n }\n if (source) {\n /**\n * @member {string} - Source code of the broken file.\n *\n * @example\n * error.source //=> 'a { b {} }'\n * error.input.column //=> 'a b { }'\n */\n this.source = source;\n }\n if (plugin) {\n /**\n * @member {string} - Plugin name, if error came from plugin.\n *\n * @example\n * error.plugin //=> 'postcss-vars'\n */\n this.plugin = plugin;\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n /**\n * @member {number} - Source line of the error.\n *\n * @example\n * error.line //=> 2\n * error.input.line //=> 4\n */\n this.line = line;\n /**\n * @member {number} - Source column of the error.\n *\n * @example\n * error.column //=> 1\n * error.input.column //=> 4\n */\n this.column = column;\n }\n\n this.setMessage();\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n\n CssSyntaxError.prototype.setMessage = function setMessage() {\n /**\n * @member {string} - Full error text in the GNU error format\n * with plugin, file, line and column.\n *\n * @example\n * error.message //=> 'a.css:1:1: Unclosed block'\n */\n this.message = this.plugin ? this.plugin + ': ' : '';\n this.message += this.file ? this.file : '';\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column;\n }\n this.message += ': ' + this.reason;\n };\n\n /**\n * Returns a few lines of CSS source that caused the error.\n *\n * If the CSS has an input source map without `sourceContent`,\n * this method will return an empty string.\n *\n * @param {boolean} [color] whether arrow will be colored red by terminal\n * color codes. By default, PostCSS will detect\n * color support by `process.stdout.isTTY`\n * and `process.env.NODE_DISABLE_COLORS`.\n *\n * @example\n * error.showSourceCode() //=> \" 4 | }\n * // 5 | a {\n * // > 6 | bad\n * // | ^\n * // 7 | }\n * // 8 | b {\"\n *\n * @return {string} few lines of CSS source that caused the error\n */\n\n\n CssSyntaxError.prototype.showSourceCode = function showSourceCode(color) {\n var _this = this;\n\n if (!this.source) return '';\n\n var css = this.source;\n if (typeof color === 'undefined') color = supportsColor;\n if (color) css = terminalHighlight(css);\n\n var lines = css.split(/\\r?\\n/);\n var start = Math.max(this.line - 3, 0);\n var end = Math.min(this.line + 2, lines.length);\n\n var maxWidth = String(end).length;\n\n return lines.slice(start, end).map(function (line, index) {\n var number = start + 1 + index;\n var padded = (' ' + number).slice(-maxWidth);\n var gutter = ' ' + padded + ' | ';\n if (number === _this.line) {\n var spacing = gutter.replace(/\\d/g, ' ') + line.slice(0, _this.column - 1).replace(/[^\\t]/g, ' ');\n return '>' + gutter + line + '\\n ' + spacing + '^';\n } else {\n return ' ' + gutter + line;\n }\n }).join('\\n');\n };\n\n /**\n * Returns error position, message and source code of the broken part.\n *\n * @example\n * error.toString() //=> \"CssSyntaxError: app.css:1:1: Unclosed block\n * // > 1 | a {\n * // | ^\"\n *\n * @return {string} error position, message and source code\n */\n\n\n CssSyntaxError.prototype.toString = function toString() {\n var code = this.showSourceCode();\n if (code) {\n code = '\\n\\n' + code + '\\n';\n }\n return this.name + ': ' + this.message + code;\n };\n\n createClass(CssSyntaxError, [{\n key: 'generated',\n get: function get$$1() {\n warnOnce('CssSyntaxError#generated is deprecated. Use input instead.');\n return this.input;\n }\n\n /**\n * @memberof CssSyntaxError#\n * @member {Input} input - Input object with PostCSS internal information\n * about input file. If input has source map\n * from previous tool, PostCSS will use origin\n * (for example, Sass) source. You can use this\n * object to get PostCSS input source.\n *\n * @example\n * error.input.file //=> 'a.css'\n * error.file //=> 'a.sass'\n */\n\n }]);\n return CssSyntaxError;\n}();\n\n// \n/* eslint-disable valid-jsdoc */\n\nvar defaultRaw = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' '\n};\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\n\nvar Stringifier = function () {\n function Stringifier(builder) {\n classCallCheck(this, Stringifier);\n\n this.builder = builder;\n }\n\n Stringifier.prototype.stringify = function stringify(node, semicolon) {\n this[node.type](node, semicolon);\n };\n\n Stringifier.prototype.root = function root(node) {\n this.body(node);\n if (node.raws.after) this.builder(node.raws.after);\n };\n\n Stringifier.prototype.comment = function comment(node) {\n var left = this.raw(node, 'left', 'commentLeft');\n var right = this.raw(node, 'right', 'commentRight');\n this.builder('/*' + left + node.text + right + '*/', node);\n };\n\n Stringifier.prototype.decl = function decl(node, semicolon) {\n var between = this.raw(node, 'between', 'colon');\n var string = node.prop + between + this.rawValue(node, 'value');\n\n if (node.important) {\n string += node.raws.important || ' !important';\n }\n\n if (semicolon) string += ';';\n this.builder(string, node);\n };\n\n Stringifier.prototype.rule = function rule(node) {\n this.block(node, this.rawValue(node, 'selector'));\n };\n\n Stringifier.prototype.atrule = function atrule(node, semicolon) {\n var name = '@' + node.name;\n var params = node.params ? this.rawValue(node, 'params') : '';\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName;\n } else if (params) {\n name += ' ';\n }\n\n if (node.nodes) {\n this.block(node, name + params);\n } else {\n var end = (node.raws.between || '') + (semicolon ? ';' : '');\n this.builder(name + params + end, node);\n }\n };\n\n Stringifier.prototype.body = function body(node) {\n var last = node.nodes.length - 1;\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break;\n last -= 1;\n }\n\n var semicolon = this.raw(node, 'semicolon');\n for (var i = 0; i < node.nodes.length; i++) {\n var child = node.nodes[i];\n var before = this.raw(child, 'before');\n if (before) this.builder(before);\n this.stringify(child, last !== i || semicolon);\n }\n };\n\n Stringifier.prototype.block = function block(node, start) {\n var between = this.raw(node, 'between', 'beforeOpen');\n this.builder(start + between + '{', node, 'start');\n\n var after = void 0;\n if (node.nodes && node.nodes.length) {\n this.body(node);\n after = this.raw(node, 'after');\n } else {\n after = this.raw(node, 'after', 'emptyBody');\n }\n\n if (after) this.builder(after);\n this.builder('}', node, 'end');\n };\n\n Stringifier.prototype.raw = function raw(node, own, detect) {\n var value = void 0;\n if (!detect) detect = own;\n\n // Already had\n if (own) {\n value = node.raws[own];\n if (typeof value !== 'undefined') return value;\n }\n\n var parent = node.parent;\n\n // Hack for first rule in CSS\n if (detect === 'before') {\n if (!parent || parent.type === 'root' && parent.first === node) {\n return '';\n }\n }\n\n // Floating child without parent\n if (!parent) return defaultRaw[detect];\n\n // Detect style by other nodes\n var root = node.root();\n if (!root.rawCache) root.rawCache = {};\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect];\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect);\n } else {\n var method = 'raw' + capitalize(detect);\n if (this[method]) {\n value = this[method](root, node);\n } else {\n root.walk(function (i) {\n value = i.raws[own];\n if (typeof value !== 'undefined') return false;\n });\n }\n }\n\n if (typeof value === 'undefined') value = defaultRaw[detect];\n\n root.rawCache[detect] = value;\n return value;\n };\n\n Stringifier.prototype.rawSemicolon = function rawSemicolon(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawEmptyBody = function rawEmptyBody(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawIndent = function rawIndent(root) {\n if (root.raws.indent) return root.raws.indent;\n var value = void 0;\n root.walk(function (i) {\n var p = i.parent;\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n var parts = i.raws.before.split('\\n');\n value = parts[parts.length - 1];\n value = value.replace(/[^\\s]/g, '');\n return false;\n }\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawBeforeComment = function rawBeforeComment(root, node) {\n var value = void 0;\n root.walkComments(function (i) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n });\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl');\n }\n return value;\n };\n\n Stringifier.prototype.rawBeforeDecl = function rawBeforeDecl(root, node) {\n var value = void 0;\n root.walkDecls(function (i) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n });\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule');\n }\n return value;\n };\n\n Stringifier.prototype.rawBeforeRule = function rawBeforeRule(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawBeforeClose = function rawBeforeClose(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawBeforeOpen = function rawBeforeOpen(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.type !== 'decl') {\n value = i.raws.between;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawColon = function rawColon(root) {\n var value = void 0;\n root.walkDecls(function (i) {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '');\n return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.beforeAfter = function beforeAfter(node, detect) {\n var value = void 0;\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl');\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment');\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule');\n } else {\n value = this.raw(node, null, 'beforeClose');\n }\n\n var buf = node.parent;\n var depth = 0;\n while (buf && buf.type !== 'root') {\n depth += 1;\n buf = buf.parent;\n }\n\n if (value.indexOf('\\n') !== -1) {\n var indent = this.raw(node, null, 'indent');\n if (indent.length) {\n for (var step = 0; step < depth; step++) {\n value += indent;\n }\n }\n }\n\n return value;\n };\n\n Stringifier.prototype.rawValue = function rawValue(node, prop) {\n var value = node[prop];\n var raw = node.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n } else {\n return value;\n }\n };\n\n return Stringifier;\n}();\n\n// \n\nfunction stringify(node, builder) {\n var str = new Stringifier(builder);\n str.stringify(node);\n}\n\n// \n\n/**\n * @typedef {object} position\n * @property {number} line - source line in file\n * @property {number} column - source column in file\n */\n\n/**\n * @typedef {object} source\n * @property {Input} input - {@link Input} with input file\n * @property {position} start - The starting position of the node’s source\n * @property {position} end - The ending position of the node’s source\n */\n\nvar cloneNode = function cloneNode(obj, parent) {\n var cloned = new obj.constructor();\n\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) continue;\n var value = obj[i];\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent;\n } else if (i === 'source') {\n cloned[i] = value;\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else if (i !== 'before' && i !== 'after' && i !== 'between' && i !== 'semicolon') {\n if (type === 'object' && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n\n return cloned;\n};\n\n/**\n * All node classes inherit the following common methods.\n *\n * @abstract\n */\n\nvar Node = function () {\n /**\n * @param {object} [defaults] - value for node properties\n */\n function Node() {\n var defaults$$1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n classCallCheck(this, Node);\n\n this.raws = {};\n for (var name in defaults$$1) {\n this[name] = defaults$$1[name];\n }\n }\n\n /**\n * Returns a CssSyntaxError instance containing the original position\n * of the node in the source, showing line and column numbers and also\n * a small excerpt to facilitate debugging.\n *\n * If present, an input source map will be used to get the original position\n * of the source, even from a previous compilation step\n * (e.g., from Sass compilation).\n *\n * This method produces very useful error messages.\n *\n * @param {string} message - error description\n * @param {object} [opts] - options\n * @param {string} opts.plugin - plugin name that created this error.\n * PostCSS will set it automatically.\n * @param {string} opts.word - a word inside a node’s string that should\n * be highlighted as the source of the error\n * @param {number} opts.index - an index inside a node’s string that should\n * be highlighted as the source of the error\n *\n * @return {CssSyntaxError} error object to throw it\n *\n * @example\n * if ( !variables[name] ) {\n * throw decl.error('Unknown variable ' + name, { word: name });\n * // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black\n * // color: $black\n * // a\n * // ^\n * // background: white\n * }\n */\n\n\n Node.prototype.error = function error(message) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.source) {\n var pos = this.positionBy(opts);\n return this.source.input.error(message, pos.line, pos.column, opts);\n } else {\n return new CssSyntaxError(message);\n }\n };\n\n /**\n * This method is provided as a convenience wrapper for {@link Result#warn}.\n *\n * @param {Result} result - the {@link Result} instance\n * that will receive the warning\n * @param {string} text - warning message\n * @param {object} [opts] - options\n * @param {string} opts.plugin - plugin name that created this warning.\n * PostCSS will set it automatically.\n * @param {string} opts.word - a word inside a node’s string that should\n * be highlighted as the source of the warning\n * @param {number} opts.index - an index inside a node’s string that should\n * be highlighted as the source of the warning\n *\n * @return {Warning} created warning object\n *\n * @example\n * const plugin = postcss.plugin('postcss-deprecated', () => {\n * return (root, result) => {\n * root.walkDecls('bad', decl => {\n * decl.warn(result, 'Deprecated property bad');\n * });\n * };\n * });\n */\n\n\n Node.prototype.warn = function warn(result, text, opts) {\n var data = { node: this };\n for (var i in opts) {\n data[i] = opts[i];\n }return result.warn(text, data);\n };\n\n /**\n * Removes the node from its parent and cleans the parent properties\n * from the node and its children.\n *\n * @example\n * if ( decl.prop.match(/^-webkit-/) ) {\n * decl.remove();\n * }\n *\n * @return {Node} node to make calls chain\n */\n\n\n Node.prototype.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = undefined;\n return this;\n };\n\n /**\n * Returns a CSS string representing the node.\n *\n * @param {stringifier|syntax} [stringifier] - a syntax to use\n * in string generation\n *\n * @return {string} CSS string of this node\n *\n * @example\n * postcss.rule({ selector: 'a' }).toString() //=> \"a {}\"\n */\n\n\n Node.prototype.toString = function toString() {\n var stringifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : stringify;\n\n if (stringifier.stringify) stringifier = stringifier.stringify;\n var result = '';\n stringifier(this, function (i) {\n result += i;\n });\n return result;\n };\n\n /**\n * Returns a clone of the node.\n *\n * The resulting cloned node and its (cloned) children will have\n * a clean parent and code style properties.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @example\n * const cloned = decl.clone({ prop: '-moz-' + decl.prop });\n * cloned.raws.before //=> undefined\n * cloned.parent //=> undefined\n * cloned.toString() //=> -moz-transform: scale(0)\n *\n * @return {Node} clone of the node\n */\n\n\n Node.prototype.clone = function clone() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var cloned = cloneNode(this);\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n };\n\n /**\n * Shortcut to clone the node and insert the resulting cloned node\n * before the current node.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @example\n * decl.cloneBefore({ prop: '-moz-' + decl.prop });\n *\n * @return {Node} - new node\n */\n\n\n Node.prototype.cloneBefore = function cloneBefore() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n };\n\n /**\n * Shortcut to clone the node and insert the resulting cloned node\n * after the current node.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @return {Node} - new node\n */\n\n\n Node.prototype.cloneAfter = function cloneAfter() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n };\n\n /**\n * Inserts node(s) before the current node and removes the current node.\n *\n * @param {...Node} nodes - node(s) to replace current one\n *\n * @example\n * if ( atrule.name == 'mixin' ) {\n * atrule.replaceWith(mixinRules[atrule.params]);\n * }\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.replaceWith = function replaceWith() {\n var _this = this;\n\n if (this.parent) {\n for (var _len = arguments.length, nodes = Array(_len), _key = 0; _key < _len; _key++) {\n nodes[_key] = arguments[_key];\n }\n\n nodes.forEach(function (node) {\n _this.parent.insertBefore(_this, node);\n });\n\n this.remove();\n }\n\n return this;\n };\n\n /**\n * Removes the node from its current parent and inserts it\n * at the end of `newParent`.\n *\n * This will clean the `before` and `after` code {@link Node#raws} data\n * from the node and replace them with the indentation style of `newParent`.\n * It will also clean the `between` property\n * if `newParent` is in another {@link Root}.\n *\n * @param {Container} newParent - container node where the current node\n * will be moved\n *\n * @example\n * atrule.moveTo(atrule.root());\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.moveTo = function moveTo(newParent) {\n this.cleanRaws(this.root() === newParent.root());\n this.remove();\n newParent.append(this);\n return this;\n };\n\n /**\n * Removes the node from its current parent and inserts it into\n * a new parent before `otherNode`.\n *\n * This will also clean the node’s code style properties just as it would\n * in {@link Node#moveTo}.\n *\n * @param {Node} otherNode - node that will be before current node\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.moveBefore = function moveBefore(otherNode) {\n this.cleanRaws(this.root() === otherNode.root());\n this.remove();\n otherNode.parent.insertBefore(otherNode, this);\n return this;\n };\n\n /**\n * Removes the node from its current parent and inserts it into\n * a new parent after `otherNode`.\n *\n * This will also clean the node’s code style properties just as it would\n * in {@link Node#moveTo}.\n *\n * @param {Node} otherNode - node that will be after current node\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.moveAfter = function moveAfter(otherNode) {\n this.cleanRaws(this.root() === otherNode.root());\n this.remove();\n otherNode.parent.insertAfter(otherNode, this);\n return this;\n };\n\n /**\n * Returns the next child of the node’s parent.\n * Returns `undefined` if the current node is the last child.\n *\n * @return {Node|undefined} next node\n *\n * @example\n * if ( comment.text === 'delete next' ) {\n * const next = comment.next();\n * if ( next ) {\n * next.remove();\n * }\n * }\n */\n\n\n Node.prototype.next = function next() {\n var index = this.parent.index(this);\n return this.parent.nodes[index + 1];\n };\n\n /**\n * Returns the previous child of the node’s parent.\n * Returns `undefined` if the current node is the first child.\n *\n * @return {Node|undefined} previous node\n *\n * @example\n * const annotation = decl.prev();\n * if ( annotation.type == 'comment' ) {\n * readAnnotation(annotation.text);\n * }\n */\n\n\n Node.prototype.prev = function prev() {\n var index = this.parent.index(this);\n return this.parent.nodes[index - 1];\n };\n\n Node.prototype.toJSON = function toJSON() {\n var fixed = {};\n\n for (var name in this) {\n if (!this.hasOwnProperty(name)) continue;\n if (name === 'parent') continue;\n var value = this[name];\n\n if (value instanceof Array) {\n fixed[name] = value.map(function (i) {\n if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && i.toJSON) {\n return i.toJSON();\n } else {\n return i;\n }\n });\n } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.toJSON) {\n fixed[name] = value.toJSON();\n } else {\n fixed[name] = value;\n }\n }\n\n return fixed;\n };\n\n /**\n * Returns a {@link Node#raws} value. If the node is missing\n * the code style property (because the node was manually built or cloned),\n * PostCSS will try to autodetect the code style property by looking\n * at other nodes in the tree.\n *\n * @param {string} prop - name of code style property\n * @param {string} [defaultType] - name of default value, it can be missed\n * if the value is the same as prop\n *\n * @example\n * const root = postcss.parse('a { background: white }');\n * root.nodes[0].append({ prop: 'color', value: 'black' });\n * root.nodes[0].nodes[1].raws.before //=> undefined\n * root.nodes[0].nodes[1].raw('before') //=> ' '\n *\n * @return {string} code style value\n */\n\n\n Node.prototype.raw = function raw(prop, defaultType) {\n var str = new Stringifier();\n return str.raw(this, prop, defaultType);\n };\n\n /**\n * Finds the Root instance of the node’s tree.\n *\n * @example\n * root.nodes[0].nodes[0].root() === root\n *\n * @return {Root} root parent\n */\n\n\n Node.prototype.root = function root() {\n var result = this;\n while (result.parent) {\n result = result.parent;\n }return result;\n };\n\n Node.prototype.cleanRaws = function cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n };\n\n Node.prototype.positionInside = function positionInside(index) {\n var string = this.toString();\n var column = this.source.start.column;\n var line = this.source.start.line;\n\n for (var i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n\n return { line: line, column: column };\n };\n\n Node.prototype.positionBy = function positionBy(opts) {\n var pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index);\n } else if (opts.word) {\n var index = this.toString().indexOf(opts.word);\n if (index !== -1) pos = this.positionInside(index);\n }\n return pos;\n };\n\n Node.prototype.removeSelf = function removeSelf() {\n warnOnce('Node#removeSelf is deprecated. Use Node#remove.');\n return this.remove();\n };\n\n Node.prototype.replace = function replace(nodes) {\n warnOnce('Node#replace is deprecated. Use Node#replaceWith');\n return this.replaceWith(nodes);\n };\n\n Node.prototype.style = function style(own, detect) {\n warnOnce('Node#style() is deprecated. Use Node#raw()');\n return this.raw(own, detect);\n };\n\n Node.prototype.cleanStyles = function cleanStyles(keepBetween) {\n warnOnce('Node#cleanStyles() is deprecated. Use Node#cleanRaws()');\n return this.cleanRaws(keepBetween);\n };\n\n createClass(Node, [{\n key: 'before',\n get: function get$$1() {\n warnOnce('Node#before is deprecated. Use Node#raws.before');\n return this.raws.before;\n },\n set: function set$$1(val) {\n warnOnce('Node#before is deprecated. Use Node#raws.before');\n this.raws.before = val;\n }\n }, {\n key: 'between',\n get: function get$$1() {\n warnOnce('Node#between is deprecated. Use Node#raws.between');\n return this.raws.between;\n },\n set: function set$$1(val) {\n warnOnce('Node#between is deprecated. Use Node#raws.between');\n this.raws.between = val;\n }\n\n /**\n * @memberof Node#\n * @member {string} type - String representing the node’s type.\n * Possible values are `root`, `atrule`, `rule`,\n * `decl`, or `comment`.\n *\n * @example\n * postcss.decl({ prop: 'color', value: 'black' }).type //=> 'decl'\n */\n\n /**\n * @memberof Node#\n * @member {Container} parent - the node’s parent node.\n *\n * @example\n * root.nodes[0].parent == root;\n */\n\n /**\n * @memberof Node#\n * @member {source} source - the input source of the node\n *\n * The property is used in source map generation.\n *\n * If you create a node manually (e.g., with `postcss.decl()`),\n * that node will not have a `source` property and will be absent\n * from the source map. For this reason, the plugin developer should\n * consider cloning nodes to create new ones (in which case the new node’s\n * source will reference the original, cloned node) or setting\n * the `source` property manually.\n *\n * ```js\n * // Bad\n * const prefixed = postcss.decl({\n * prop: '-moz-' + decl.prop,\n * value: decl.value\n * });\n *\n * // Good\n * const prefixed = decl.clone({ prop: '-moz-' + decl.prop });\n * ```\n *\n * ```js\n * if ( atrule.name == 'add-link' ) {\n * const rule = postcss.rule({ selector: 'a', source: atrule.source });\n * atrule.parent.insertBefore(atrule, rule);\n * }\n * ```\n *\n * @example\n * decl.source.input.from //=> '/home/ai/a.sass'\n * decl.source.start //=> { line: 10, column: 2 }\n * decl.source.end //=> { line: 10, column: 12 }\n */\n\n /**\n * @memberof Node#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n * * `afterName`: the space between the at-rule name and its parameters.\n * * `left`: the space symbols between `/*` and the comment’s text.\n * * `right`: the space symbols between the comment’s text\n * and */.\n * * `important`: the content of the important statement,\n * if it is not just `!important`.\n *\n * PostCSS cleans selectors, declaration values and at-rule parameters\n * from comments and extra spaces, but it stores origin content in raws\n * properties. As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '\\n ', between: ':' }\n */\n\n }]);\n return Node;\n}();\n\n// \n\n/**\n * Represents a CSS declaration.\n *\n * @extends Node\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.type //=> 'decl'\n * decl.toString() //=> ' color: black'\n */\n\nvar Declaration = function (_Node) {\n inherits(Declaration, _Node);\n\n function Declaration(defaults$$1) {\n classCallCheck(this, Declaration);\n\n var _this = possibleConstructorReturn(this, _Node.call(this, defaults$$1));\n\n _this.type = 'decl';\n return _this;\n }\n\n createClass(Declaration, [{\n key: '_value',\n get: function get$$1() {\n warnOnce('Node#_value was deprecated. Use Node#raws.value');\n return this.raws.value;\n },\n set: function set$$1(val) {\n warnOnce('Node#_value was deprecated. Use Node#raws.value');\n this.raws.value = val;\n }\n }, {\n key: '_important',\n get: function get$$1() {\n warnOnce('Node#_important was deprecated. Use Node#raws.important');\n return this.raws.important;\n },\n set: function set$$1(val) {\n warnOnce('Node#_important was deprecated. Use Node#raws.important');\n this.raws.important = val;\n }\n\n /**\n * @memberof Declaration#\n * @member {string} prop - the declaration’s property name\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.prop //=> 'color'\n */\n\n /**\n * @memberof Declaration#\n * @member {string} value - the declaration’s value\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.value //=> 'black'\n */\n\n /**\n * @memberof Declaration#\n * @member {boolean} important - `true` if the declaration\n * has an !important annotation.\n *\n * @example\n * const root = postcss.parse('a { color: black !important; color: red }');\n * root.first.first.important //=> true\n * root.first.last.important //=> undefined\n */\n\n /**\n * @memberof Declaration#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `important`: the content of the important statement,\n * if it is not just `!important`.\n *\n * PostCSS cleans declaration from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '\\n ', between: ':' }\n */\n\n }]);\n return Declaration;\n}(Node);\n\n// \n\n/**\n * Represents a comment between declarations or statements (rule and at-rules).\n *\n * Comments inside selectors, at-rule parameters, or declaration values\n * will be stored in the `raws` properties explained above.\n *\n * @extends Node\n */\n\nvar Comment = function (_Node) {\n inherits(Comment, _Node);\n\n function Comment(defaults$$1) {\n classCallCheck(this, Comment);\n\n var _this = possibleConstructorReturn(this, _Node.call(this, defaults$$1));\n\n _this.type = 'comment';\n return _this;\n }\n\n createClass(Comment, [{\n key: 'left',\n get: function get$$1() {\n warnOnce('Comment#left was deprecated. Use Comment#raws.left');\n return this.raws.left;\n },\n set: function set$$1(val) {\n warnOnce('Comment#left was deprecated. Use Comment#raws.left');\n this.raws.left = val;\n }\n }, {\n key: 'right',\n get: function get$$1() {\n warnOnce('Comment#right was deprecated. Use Comment#raws.right');\n return this.raws.right;\n },\n set: function set$$1(val) {\n warnOnce('Comment#right was deprecated. Use Comment#raws.right');\n this.raws.right = val;\n }\n\n /**\n * @memberof Comment#\n * @member {string} text - the comment’s text\n */\n\n /**\n * @memberof Comment#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node.\n * * `left`: the space symbols between `/*` and the comment’s text.\n * * `right`: the space symbols between the comment’s text.\n */\n\n }]);\n return Comment;\n}(Node);\n\n// \n\nvar Parser = function () {\n function Parser(input) {\n classCallCheck(this, Parser);\n\n this.input = input;\n\n this.pos = 0;\n this.root = new Root();\n this.current = this.root;\n this.spaces = '';\n this.semicolon = false;\n\n this.root.source = { input: input, start: { line: 1, column: 1 } };\n }\n\n Parser.prototype.tokenize = function tokenize$$1() {\n this.tokens = tokenize(this.input);\n };\n\n Parser.prototype.loop = function loop() {\n var token = void 0;\n while (this.pos < this.tokens.length) {\n token = this.tokens[this.pos];\n\n switch (token[0]) {\n case 'space':\n case ';':\n this.spaces += token[1];\n break;\n\n case '}':\n this.end(token);\n break;\n\n case 'comment':\n this.comment(token);\n break;\n\n case 'at-word':\n this.atrule(token);\n break;\n\n case '{':\n this.emptyRule(token);\n break;\n\n default:\n this.other();\n break;\n }\n\n this.pos += 1;\n }\n this.endFile();\n };\n\n Parser.prototype.comment = function comment(token) {\n var node = new Comment();\n this.init(node, token[2], token[3]);\n node.source.end = { line: token[4], column: token[5] };\n\n var text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node.text = '';\n node.raws.left = text;\n node.raws.right = '';\n } else {\n var match = text.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);\n node.text = match[2];\n node.raws.left = match[1];\n node.raws.right = match[3];\n }\n };\n\n Parser.prototype.emptyRule = function emptyRule(token) {\n var node = new Rule();\n this.init(node, token[2], token[3]);\n node.selector = '';\n node.raws.between = '';\n this.current = node;\n };\n\n Parser.prototype.other = function other() {\n var token = void 0;\n var end = false;\n var type = null;\n var colon = false;\n var bracket = null;\n var brackets = [];\n\n var start = this.pos;\n while (this.pos < this.tokens.length) {\n token = this.tokens[this.pos];\n type = token[0];\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token;\n brackets.push(type === '(' ? ')' : ']');\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(this.tokens.slice(start, this.pos + 1));\n return;\n } else {\n break;\n }\n } else if (type === '{') {\n this.rule(this.tokens.slice(start, this.pos + 1));\n return;\n } else if (type === '}') {\n this.pos -= 1;\n end = true;\n break;\n } else if (type === ':') {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n\n this.pos += 1;\n }\n if (this.pos === this.tokens.length) {\n this.pos -= 1;\n end = true;\n }\n\n if (brackets.length > 0) this.unclosedBracket(bracket);\n\n if (end && colon) {\n while (this.pos > start) {\n token = this.tokens[this.pos][0];\n if (token !== 'space' && token !== 'comment') break;\n this.pos -= 1;\n }\n this.decl(this.tokens.slice(start, this.pos + 1));\n return;\n }\n\n this.unknownWord(start);\n };\n\n Parser.prototype.rule = function rule(tokens) {\n tokens.pop();\n\n var node = new Rule();\n this.init(node, tokens[0][2], tokens[0][3]);\n\n node.raws.between = this.spacesFromEnd(tokens);\n this.raw(node, 'selector', tokens);\n this.current = node;\n };\n\n Parser.prototype.decl = function decl(tokens) {\n var node = new Declaration();\n this.init(node);\n\n var last = tokens[tokens.length - 1];\n if (last[0] === ';') {\n this.semicolon = true;\n tokens.pop();\n }\n if (last[4]) {\n node.source.end = { line: last[4], column: last[5] };\n } else {\n node.source.end = { line: last[2], column: last[3] };\n }\n\n while (tokens[0][0] !== 'word') {\n node.raws.before += tokens.shift()[1];\n }\n node.source.start = { line: tokens[0][2], column: tokens[0][3] };\n\n node.prop = '';\n while (tokens.length) {\n var type = tokens[0][0];\n if (type === ':' || type === 'space' || type === 'comment') {\n break;\n }\n node.prop += tokens.shift()[1];\n }\n\n node.raws.between = '';\n\n var token = void 0;\n while (tokens.length) {\n token = tokens.shift();\n\n if (token[0] === ':') {\n node.raws.between += token[1];\n break;\n } else {\n node.raws.between += token[1];\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0];\n node.prop = node.prop.slice(1);\n }\n node.raws.between += this.spacesFromStart(tokens);\n this.precheckMissedSemicolon(tokens);\n\n for (var i = tokens.length - 1; i > 0; i--) {\n token = tokens[i];\n if (token[1] === '!important') {\n node.important = true;\n var string = this.stringFrom(tokens, i);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== ' !important') node.raws.important = string;\n break;\n } else if (token[1] === 'important') {\n var cache = tokens.slice(0);\n var str = '';\n for (var j = i; j > 0; j--) {\n var _type = cache[j][0];\n if (str.trim().indexOf('!') === 0 && _type !== 'space') {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true;\n node.raws.important = str;\n tokens = cache;\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break;\n }\n }\n\n this.raw(node, 'value', tokens);\n\n if (node.value.indexOf(':') !== -1) this.checkMissedSemicolon(tokens);\n };\n\n Parser.prototype.atrule = function atrule(token) {\n var node = new AtRule();\n node.name = token[1].slice(1);\n if (node.name === '') {\n this.unnamedAtrule(node, token);\n }\n this.init(node, token[2], token[3]);\n\n var last = false;\n var open = false;\n var params = [];\n\n this.pos += 1;\n while (this.pos < this.tokens.length) {\n token = this.tokens[this.pos];\n\n if (token[0] === ';') {\n node.source.end = { line: token[2], column: token[3] };\n this.semicolon = true;\n break;\n } else if (token[0] === '{') {\n open = true;\n break;\n } else if (token[0] === '}') {\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n\n this.pos += 1;\n }\n if (this.pos === this.tokens.length) {\n last = true;\n }\n\n node.raws.between = this.spacesFromEnd(params);\n if (params.length) {\n node.raws.afterName = this.spacesFromStart(params);\n this.raw(node, 'params', params);\n if (last) {\n token = params[params.length - 1];\n node.source.end = { line: token[4], column: token[5] };\n this.spaces = node.raws.between;\n node.raws.between = '';\n }\n } else {\n node.raws.afterName = '';\n node.params = '';\n }\n\n if (open) {\n node.nodes = [];\n this.current = node;\n }\n };\n\n Parser.prototype.end = function end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces;\n this.spaces = '';\n\n if (this.current.parent) {\n this.current.source.end = { line: token[2], column: token[3] };\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n };\n\n Parser.prototype.endFile = function endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces;\n };\n\n // Helpers\n\n Parser.prototype.init = function init(node, line, column) {\n this.current.push(node);\n\n node.source = { start: { line: line, column: column }, input: this.input };\n node.raws.before = this.spaces;\n this.spaces = '';\n if (node.type !== 'comment') this.semicolon = false;\n };\n\n Parser.prototype.raw = function raw(node, prop, tokens) {\n var token = void 0,\n type = void 0;\n var length = tokens.length;\n var value = '';\n var clean = true;\n for (var i = 0; i < length; i += 1) {\n token = tokens[i];\n type = token[0];\n if (type === 'comment' || type === 'space' && i === length - 1) {\n clean = false;\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n var raw = tokens.reduce(function (all, i) {\n return all + i[1];\n }, '');\n node.raws[prop] = { value: value, raw: raw };\n }\n node[prop] = value;\n };\n\n Parser.prototype.spacesFromEnd = function spacesFromEnd(tokens) {\n var lastTokenType = void 0;\n var spaces = '';\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n };\n\n Parser.prototype.spacesFromStart = function spacesFromStart(tokens) {\n var next = void 0;\n var spaces = '';\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== 'space' && next !== 'comment') break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n };\n\n Parser.prototype.stringFrom = function stringFrom(tokens, from) {\n var result = '';\n for (var i = from; i < tokens.length; i++) {\n result += tokens[i][1];\n }\n tokens.splice(from, tokens.length - from);\n return result;\n };\n\n Parser.prototype.colon = function colon(tokens) {\n var brackets = 0;\n var token = void 0,\n type = void 0,\n prev = void 0;\n for (var i = 0; i < tokens.length; i++) {\n token = tokens[i];\n type = token[0];\n\n if (type === '(') {\n brackets += 1;\n } else if (type === ')') {\n brackets -= 1;\n } else if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue;\n } else {\n return i;\n }\n }\n\n prev = token;\n }\n return false;\n };\n\n // Errors\n\n Parser.prototype.unclosedBracket = function unclosedBracket(bracket) {\n throw this.input.error('Unclosed bracket', bracket[2], bracket[3]);\n };\n\n Parser.prototype.unknownWord = function unknownWord(start) {\n var token = this.tokens[start];\n throw this.input.error('Unknown word', token[2], token[3]);\n };\n\n Parser.prototype.unexpectedClose = function unexpectedClose(token) {\n throw this.input.error('Unexpected }', token[2], token[3]);\n };\n\n Parser.prototype.unclosedBlock = function unclosedBlock() {\n var pos = this.current.source.start;\n throw this.input.error('Unclosed block', pos.line, pos.column);\n };\n\n Parser.prototype.doubleColon = function doubleColon(token) {\n throw this.input.error('Double colon', token[2], token[3]);\n };\n\n Parser.prototype.unnamedAtrule = function unnamedAtrule(node, token) {\n throw this.input.error('At-rule without name', token[2], token[3]);\n };\n\n Parser.prototype.precheckMissedSemicolon = function precheckMissedSemicolon(tokens) {\n };\n\n Parser.prototype.checkMissedSemicolon = function checkMissedSemicolon(tokens) {\n var colon = this.colon(tokens);\n if (colon === false) return;\n\n var founded = 0;\n var token = void 0;\n for (var j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== 'space') {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error('Missed semicolon', token[2], token[3]);\n };\n\n return Parser;\n}();\n\n// \n\nfunction parse(css, opts) {\n if (opts && opts.safe) {\n throw new Error('Option safe was removed. ' + 'Use parser: require(\"postcss-safe-parser\")');\n }\n\n var input = new Input(css, opts);\n\n var parser = new Parser(input);\n try {\n parser.tokenize();\n parser.loop();\n } catch (e) {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message += '\\nYou tried to parse SCSS with ' + 'the standard CSS parser; ' + 'try again with the postcss-scss parser';\n } else if (/\\.less$/i.test(opts.from)) {\n e.message += '\\nYou tried to parse Less with ' + 'the standard CSS parser; ' + 'try again with the postcss-less parser';\n }\n }\n throw e;\n }\n\n return parser.root;\n}\n\n// \n\nfunction cleanSource(nodes) {\n return nodes.map(function (i) {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n}\n\n/**\n * @callback childCondition\n * @param {Node} node - container child\n * @param {number} index - child index\n * @param {Node[]} nodes - all container children\n * @return {boolean}\n */\n\n/**\n * @callback childIterator\n * @param {Node} node - container child\n * @param {number} index - child index\n * @return {false|undefined} returning `false` will break iteration\n */\n\n/**\n * The {@link Root}, {@link AtRule}, and {@link Rule} container nodes\n * inherit some common methods to help work with their children.\n *\n * Note that all containers can store any content. If you write a rule inside\n * a rule, PostCSS will parse it.\n *\n * @extends Node\n * @abstract\n */\n\nvar Container = function (_Node) {\n inherits(Container, _Node);\n\n function Container() {\n classCallCheck(this, Container);\n return possibleConstructorReturn(this, _Node.apply(this, arguments));\n }\n\n Container.prototype.push = function push(child) {\n child.parent = this;\n this.nodes.push(child);\n return this;\n };\n\n /**\n * Iterates through the container’s immediate children,\n * calling `callback` for each child.\n *\n * Returning `false` in the callback will break iteration.\n *\n * This method only iterates through the container’s immediate children.\n * If you need to recursively iterate through all the container’s descendant\n * nodes, use {@link Container#walk}.\n *\n * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe\n * if you are mutating the array of child nodes during iteration.\n * PostCSS will adjust the current index to match the mutations.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * const root = postcss.parse('a { color: black; z-index: 1 }');\n * const rule = root.first;\n *\n * for ( let decl of rule.nodes ) {\n * decl.cloneBefore({ prop: '-webkit-' + decl.prop });\n * // Cycle will be infinite, because cloneBefore moves the current node\n * // to the next index\n * }\n *\n * rule.each(decl => {\n * decl.cloneBefore({ prop: '-webkit-' + decl.prop });\n * // Will be executed only for color and z-index\n * });\n */\n\n\n Container.prototype.each = function each(callback) {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n\n this.lastEach += 1;\n var id = this.lastEach;\n this.indexes[id] = 0;\n\n if (!this.nodes) return undefined;\n\n var index = void 0,\n result = void 0;\n while (this.indexes[id] < this.nodes.length) {\n index = this.indexes[id];\n result = callback(this.nodes[index], index);\n if (result === false) break;\n\n this.indexes[id] += 1;\n }\n\n delete this.indexes[id];\n\n return result;\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each node.\n *\n * Like container.each(), this method is safe to use\n * if you are mutating arrays during iteration.\n *\n * If you only need to iterate through the container’s immediate children,\n * use {@link Container#each}.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walk(node => {\n * // Traverses all descendant nodes.\n * });\n */\n\n\n Container.prototype.walk = function walk(callback) {\n return this.each(function (child, i) {\n var result = callback(child, i);\n if (result !== false && child.walk) {\n result = child.walk(callback);\n }\n return result;\n });\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each declaration node.\n *\n * If you pass a filter, iteration will only happen over declarations\n * with matching properties.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [prop] - string or regular expression\n * to filter declarations by property name\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkDecls(decl => {\n * checkPropertySupport(decl.prop);\n * });\n *\n * root.walkDecls('border-radius', decl => {\n * decl.remove();\n * });\n *\n * root.walkDecls(/^background/, decl => {\n * decl.value = takeFirstColorFromGradient(decl.value);\n * });\n */\n\n\n Container.prototype.walkDecls = function walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk(function (child, i) {\n if (child.type === 'decl') {\n return callback(child, i);\n }\n });\n } else if (prop instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each rule node.\n *\n * If you pass a filter, iteration will only happen over rules\n * with matching selectors.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [selector] - string or regular expression\n * to filter rules by selector\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * const selectors = [];\n * root.walkRules(rule => {\n * selectors.push(rule.selector);\n * });\n * console.log(`Your CSS uses ${selectors.length} selectors`);\n */\n\n\n Container.prototype.walkRules = function walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n\n return this.walk(function (child, i) {\n if (child.type === 'rule') {\n return callback(child, i);\n }\n });\n } else if (selector instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i);\n }\n });\n }\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each at-rule node.\n *\n * If you pass a filter, iteration will only happen over at-rules\n * that have matching names.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [name] - string or regular expression\n * to filter at-rules by name\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkAtRules(rule => {\n * if ( isOld(rule.name) ) rule.remove();\n * });\n *\n * let first = false;\n * root.walkAtRules('charset', rule => {\n * if ( !first ) {\n * first = true;\n * } else {\n * rule.remove();\n * }\n * });\n */\n\n\n Container.prototype.walkAtRules = function walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk(function (child, i) {\n if (child.type === 'atrule') {\n return callback(child, i);\n }\n });\n } else if (name instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i);\n }\n });\n }\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each comment node.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkComments(comment => {\n * comment.remove();\n * });\n */\n\n\n Container.prototype.walkComments = function walkComments(callback) {\n return this.walk(function (child, i) {\n if (child.type === 'comment') {\n return callback(child, i);\n }\n });\n };\n\n /**\n * Inserts new nodes to the start of the container.\n *\n * @param {...(Node|object|string|Node[])} children - new nodes\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * const decl1 = postcss.decl({ prop: 'color', value: 'black' });\n * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' });\n * rule.append(decl1, decl2);\n *\n * root.append({ name: 'charset', params: '\"UTF-8\"' }); // at-rule\n * root.append({ selector: 'a' }); // rule\n * rule.append({ prop: 'color', value: 'black' }); // declaration\n * rule.append({ text: 'Comment' }) // comment\n *\n * root.append('a {}');\n * root.first.append('color: black; z-index: 1');\n */\n\n\n Container.prototype.append = function append() {\n var _this2 = this;\n\n for (var _len = arguments.length, children = Array(_len), _key = 0; _key < _len; _key++) {\n children[_key] = arguments[_key];\n }\n\n children.forEach(function (child) {\n var nodes = _this2.normalize(child, _this2.last);\n nodes.forEach(function (node) {\n return _this2.nodes.push(node);\n });\n });\n return this;\n };\n\n /**\n * Inserts new nodes to the end of the container.\n *\n * @param {...(Node|object|string|Node[])} children - new nodes\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * const decl1 = postcss.decl({ prop: 'color', value: 'black' });\n * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' });\n * rule.prepend(decl1, decl2);\n *\n * root.append({ name: 'charset', params: '\"UTF-8\"' }); // at-rule\n * root.append({ selector: 'a' }); // rule\n * rule.append({ prop: 'color', value: 'black' }); // declaration\n * rule.append({ text: 'Comment' }) // comment\n *\n * root.append('a {}');\n * root.first.append('color: black; z-index: 1');\n */\n\n\n Container.prototype.prepend = function prepend() {\n var _this3 = this;\n\n for (var _len2 = arguments.length, children = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n children[_key2] = arguments[_key2];\n }\n\n children = children.reverse();\n children.forEach(function (child) {\n var nodes = _this3.normalize(child, _this3.first, 'prepend').reverse();\n nodes.forEach(function (node) {\n return _this3.nodes.unshift(node);\n });\n for (var id in _this3.indexes) {\n _this3.indexes[id] = _this3.indexes[id] + nodes.length;\n }\n });\n return this;\n };\n\n Container.prototype.cleanRaws = function cleanRaws(keepBetween) {\n _Node.prototype.cleanRaws.call(this, keepBetween);\n if (this.nodes) {\n this.nodes.forEach(function (node) {\n return node.cleanRaws(keepBetween);\n });\n }\n };\n\n /**\n * Insert new node before old node within the container.\n *\n * @param {Node|number} exist - child or child’s index.\n * @param {Node|object|string|Node[]} add - new node\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop }));\n */\n\n\n Container.prototype.insertBefore = function insertBefore(exist, add) {\n var _this4 = this;\n\n exist = this.index(exist);\n\n var type = exist === 0 ? 'prepend' : false;\n var nodes = this.normalize(add, this.nodes[exist], type).reverse();\n nodes.forEach(function (node) {\n return _this4.nodes.splice(exist, 0, node);\n });\n\n var index = void 0;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (exist <= index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n\n return this;\n };\n\n /**\n * Insert new node after old node within the container.\n *\n * @param {Node|number} exist - child or child’s index\n * @param {Node|object|string|Node[]} add - new node\n *\n * @return {Node} this node for methods chain\n */\n\n\n Container.prototype.insertAfter = function insertAfter(exist, add) {\n var _this5 = this;\n\n exist = this.index(exist);\n\n var nodes = this.normalize(add, this.nodes[exist]).reverse();\n nodes.forEach(function (node) {\n return _this5.nodes.splice(exist + 1, 0, node);\n });\n\n var index = void 0;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (exist < index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n\n return this;\n };\n\n Container.prototype.remove = function remove(child) {\n if (typeof child !== 'undefined') {\n warnOnce('Container#remove is deprecated. ' + 'Use Container#removeChild');\n this.removeChild(child);\n } else {\n _Node.prototype.remove.call(this);\n }\n return this;\n };\n\n /**\n * Removes node from the container and cleans the parent properties\n * from the node and its children.\n *\n * @param {Node|number} child - child or child’s index\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.nodes.length //=> 5\n * rule.removeChild(decl);\n * rule.nodes.length //=> 4\n * decl.parent //=> undefined\n */\n\n\n Container.prototype.removeChild = function removeChild(child) {\n child = this.index(child);\n this.nodes[child].parent = undefined;\n this.nodes.splice(child, 1);\n\n var index = void 0;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n\n return this;\n };\n\n /**\n * Removes all children from the container\n * and cleans their parent properties.\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.removeAll();\n * rule.nodes.length //=> 0\n */\n\n\n Container.prototype.removeAll = function removeAll() {\n this.nodes.forEach(function (node) {\n return node.parent = undefined;\n });\n this.nodes = [];\n return this;\n };\n\n /**\n * Passes all declaration values within the container that match pattern\n * through callback, replacing those values with the returned result\n * of callback.\n *\n * This method is useful if you are using a custom unit or function\n * and need to iterate through all values.\n *\n * @param {string|RegExp} pattern - replace pattern\n * @param {object} opts - options to speed up the search\n * @param {string|string[]} opts.props - an array of property names\n * @param {string} opts.fast - string that’s used\n * to narrow down values and speed up\n the regexp search\n * @param {function|string} callback - string to replace pattern\n * or callback that returns a new\n * value.\n * The callback will receive\n * the same arguments as those\n * passed to a function parameter\n * of `String#replace`.\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * root.replaceValues(/\\d+rem/, { fast: 'rem' }, string => {\n * return 15 * parseInt(string) + 'px';\n * });\n */\n\n\n Container.prototype.replaceValues = function replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n\n this.walkDecls(function (decl) {\n if (opts.props && opts.props.indexOf(decl.prop) === -1) return;\n if (opts.fast && decl.value.indexOf(opts.fast) === -1) return;\n\n decl.value = decl.value.replace(pattern, callback);\n });\n\n return this;\n };\n\n /**\n * Returns `true` if callback returns `true`\n * for all of the container’s children.\n *\n * @param {childCondition} condition - iterator returns true or false.\n *\n * @return {boolean} is every child pass condition\n *\n * @example\n * const noPrefixes = rule.every(i => i.prop[0] !== '-');\n */\n\n\n Container.prototype.every = function every(condition) {\n return this.nodes.every(condition);\n };\n\n /**\n * Returns `true` if callback returns `true` for (at least) one\n * of the container’s children.\n *\n * @param {childCondition} condition - iterator returns true or false.\n *\n * @return {boolean} is some child pass condition\n *\n * @example\n * const hasPrefix = rule.some(i => i.prop[0] === '-');\n */\n\n\n Container.prototype.some = function some(condition) {\n return this.nodes.some(condition);\n };\n\n /**\n * Returns a `child`’s index within the {@link Container#nodes} array.\n *\n * @param {Node} child - child of the current container.\n *\n * @return {number} child index\n *\n * @example\n * rule.index( rule.nodes[2] ) //=> 2\n */\n\n\n Container.prototype.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n } else {\n return this.nodes.indexOf(child);\n }\n };\n\n /**\n * The container’s first child.\n *\n * @type {Node}\n *\n * @example\n * rule.first == rules.nodes[0];\n */\n\n\n Container.prototype.normalize = function normalize(nodes, sample) {\n var _this6 = this;\n\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes);\n } else if (!Array.isArray(nodes)) {\n if (nodes.type === 'root') {\n nodes = nodes.nodes;\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation');\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment(nodes)];\n } else {\n throw new Error('Unknown node type in node creation');\n }\n }\n\n var processed = nodes.map(function (i) {\n if (typeof i.raws === 'undefined') i = _this6.rebuild(i);\n\n if (i.parent) i = i.clone();\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/[^\\s]/g, '');\n }\n }\n i.parent = _this6;\n return i;\n });\n\n return processed;\n };\n\n Container.prototype.rebuild = function rebuild(node, parent) {\n var _this7 = this;\n\n var fix = void 0;\n if (node.type === 'root') {\n fix = new Root();\n } else if (node.type === 'atrule') {\n fix = new AtRule();\n } else if (node.type === 'rule') {\n fix = new Rule();\n } else if (node.type === 'decl') {\n fix = new Declaration();\n } else if (node.type === 'comment') {\n fix = new Comment();\n }\n\n for (var i in node) {\n if (i === 'nodes') {\n fix.nodes = node.nodes.map(function (j) {\n return _this7.rebuild(j, fix);\n });\n } else if (i === 'parent' && parent) {\n fix.parent = parent;\n } else if (node.hasOwnProperty(i)) {\n fix[i] = node[i];\n }\n }\n\n return fix;\n };\n\n Container.prototype.eachInside = function eachInside(callback) {\n warnOnce('Container#eachInside is deprecated. ' + 'Use Container#walk instead.');\n return this.walk(callback);\n };\n\n Container.prototype.eachDecl = function eachDecl(prop, callback) {\n warnOnce('Container#eachDecl is deprecated. ' + 'Use Container#walkDecls instead.');\n return this.walkDecls(prop, callback);\n };\n\n Container.prototype.eachRule = function eachRule(selector, callback) {\n warnOnce('Container#eachRule is deprecated. ' + 'Use Container#walkRules instead.');\n return this.walkRules(selector, callback);\n };\n\n Container.prototype.eachAtRule = function eachAtRule(name, callback) {\n warnOnce('Container#eachAtRule is deprecated. ' + 'Use Container#walkAtRules instead.');\n return this.walkAtRules(name, callback);\n };\n\n Container.prototype.eachComment = function eachComment(callback) {\n warnOnce('Container#eachComment is deprecated. ' + 'Use Container#walkComments instead.');\n return this.walkComments(callback);\n };\n\n createClass(Container, [{\n key: 'first',\n get: function get$$1() {\n if (!this.nodes) return undefined;\n return this.nodes[0];\n }\n\n /**\n * The container’s last child.\n *\n * @type {Node}\n *\n * @example\n * rule.last == rule.nodes[rule.nodes.length - 1];\n */\n\n }, {\n key: 'last',\n get: function get$$1() {\n if (!this.nodes) return undefined;\n return this.nodes[this.nodes.length - 1];\n }\n }, {\n key: 'semicolon',\n get: function get$$1() {\n warnOnce('Node#semicolon is deprecated. Use Node#raws.semicolon');\n return this.raws.semicolon;\n },\n set: function set$$1(val) {\n warnOnce('Node#semicolon is deprecated. Use Node#raws.semicolon');\n this.raws.semicolon = val;\n }\n }, {\n key: 'after',\n get: function get$$1() {\n warnOnce('Node#after is deprecated. Use Node#raws.after');\n return this.raws.after;\n },\n set: function set$$1(val) {\n warnOnce('Node#after is deprecated. Use Node#raws.after');\n this.raws.after = val;\n }\n\n /**\n * @memberof Container#\n * @member {Node[]} nodes - an array containing the container’s children\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * root.nodes.length //=> 1\n * root.nodes[0].selector //=> 'a'\n * root.nodes[0].nodes[0].prop //=> 'color'\n */\n\n }]);\n return Container;\n}(Node);\n\n// \n\n/**\n * Represents an at-rule.\n *\n * If it’s followed in the CSS by a {} block, this node will have\n * a nodes property representing its children.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('@charset \"UTF-8\"; @media print {}');\n *\n * const charset = root.first;\n * charset.type //=> 'atrule'\n * charset.nodes //=> undefined\n *\n * const media = root.last;\n * media.nodes //=> []\n */\n\nvar AtRule = function (_Container) {\n inherits(AtRule, _Container);\n\n function AtRule(defaults$$1) {\n classCallCheck(this, AtRule);\n\n var _this = possibleConstructorReturn(this, _Container.call(this, defaults$$1));\n\n _this.type = 'atrule';\n return _this;\n }\n\n AtRule.prototype.append = function append() {\n var _Container$prototype$;\n\n if (!this.nodes) this.nodes = [];\n\n for (var _len = arguments.length, children = Array(_len), _key = 0; _key < _len; _key++) {\n children[_key] = arguments[_key];\n }\n\n return (_Container$prototype$ = _Container.prototype.append).call.apply(_Container$prototype$, [this].concat(children));\n };\n\n AtRule.prototype.prepend = function prepend() {\n var _Container$prototype$2;\n\n if (!this.nodes) this.nodes = [];\n\n for (var _len2 = arguments.length, children = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n children[_key2] = arguments[_key2];\n }\n\n return (_Container$prototype$2 = _Container.prototype.prepend).call.apply(_Container$prototype$2, [this].concat(children));\n };\n\n createClass(AtRule, [{\n key: 'afterName',\n get: function get$$1() {\n warnOnce('AtRule#afterName was deprecated. Use AtRule#raws.afterName');\n return this.raws.afterName;\n },\n set: function set$$1(val) {\n warnOnce('AtRule#afterName was deprecated. Use AtRule#raws.afterName');\n this.raws.afterName = val;\n }\n }, {\n key: '_params',\n get: function get$$1() {\n warnOnce('AtRule#_params was deprecated. Use AtRule#raws.params');\n return this.raws.params;\n },\n set: function set$$1(val) {\n warnOnce('AtRule#_params was deprecated. Use AtRule#raws.params');\n this.raws.params = val;\n }\n\n /**\n * @memberof AtRule#\n * @member {string} name - the at-rule’s name immediately follows the `@`\n *\n * @example\n * const root = postcss.parse('@media print {}');\n * media.name //=> 'media'\n * const media = root.first;\n */\n\n /**\n * @memberof AtRule#\n * @member {string} params - the at-rule’s parameters, the values\n * that follow the at-rule’s name but precede\n * any {} block\n *\n * @example\n * const root = postcss.parse('@media print, screen {}');\n * const media = root.first;\n * media.params //=> 'print, screen'\n */\n\n /**\n * @memberof AtRule#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n * * `afterName`: the space between the at-rule name and its parameters.\n *\n * PostCSS cleans at-rule parameters from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse(' @media\\nprint {\\n}')\n * root.first.first.raws //=> { before: ' ',\n * // between: ' ',\n * // afterName: '\\n',\n * // after: '\\n' }\n */\n\n }]);\n return AtRule;\n}(Container);\n\n// \n/**\n * Contains helpers for safely splitting lists of CSS values,\n * preserving parentheses and quotes.\n *\n * @example\n * const list = postcss.list;\n *\n * @namespace list\n */\nvar list = {\n split: function split(string, separators, last) {\n var array = [];\n var current = '';\n var split = false;\n\n var func = 0;\n var quote = false;\n var escape = false;\n\n for (var i = 0; i < string.length; i++) {\n var letter = string[i];\n\n if (quote) {\n if (escape) {\n escape = false;\n } else if (letter === '\\\\') {\n escape = true;\n } else if (letter === quote) {\n quote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n quote = letter;\n } else if (letter === '(') {\n func += 1;\n } else if (letter === ')') {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.indexOf(letter) !== -1) split = true;\n }\n\n if (split) {\n if (current !== '') array.push(current.trim());\n current = '';\n split = false;\n } else {\n current += letter;\n }\n }\n\n if (last || current !== '') array.push(current.trim());\n return array;\n },\n\n\n /**\n * Safely splits space-separated values (such as those for `background`,\n * `border-radius`, and other shorthand properties).\n *\n * @param {string} string - space-separated values\n *\n * @return {string[]} splitted values\n *\n * @example\n * postcss.list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)']\n */\n space: function space(string) {\n var spaces = [' ', '\\n', '\\t'];\n return list.split(string, spaces);\n },\n\n\n /**\n * Safely splits comma-separated values (such as those for `transition-*`\n * and `background` properties).\n *\n * @param {string} string - comma-separated values\n *\n * @return {string[]} splitted values\n *\n * @example\n * postcss.list.comma('black, linear-gradient(white, black)')\n * //=> ['black', 'linear-gradient(white, black)']\n */\n comma: function comma(string) {\n var comma = ',';\n return list.split(string, [comma], true);\n }\n};\n\n// \n\n/**\n * Represents a CSS rule: a selector followed by a declaration block.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('a{}');\n * const rule = root.first;\n * rule.type //=> 'rule'\n * rule.toString() //=> 'a{}'\n */\n\nvar Rule = function (_Container) {\n inherits(Rule, _Container);\n\n function Rule(defaults$$1) {\n classCallCheck(this, Rule);\n\n var _this = possibleConstructorReturn(this, _Container.call(this, defaults$$1));\n\n _this.type = 'rule';\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n\n /**\n * An array containing the rule’s individual selectors.\n * Groups of selectors are split at commas.\n *\n * @type {string[]}\n *\n * @example\n * const root = postcss.parse('a, b { }');\n * const rule = root.first;\n *\n * rule.selector //=> 'a, b'\n * rule.selectors //=> ['a', 'b']\n *\n * rule.selectors = ['a', 'strong'];\n * rule.selector //=> 'a, strong'\n */\n\n\n createClass(Rule, [{\n key: 'selectors',\n get: function get$$1() {\n return list.comma(this.selector);\n },\n set: function set$$1(values) {\n var match = this.selector ? this.selector.match(/,\\s*/) : null;\n var sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen');\n this.selector = values.join(sep);\n }\n }, {\n key: '_selector',\n get: function get$$1() {\n warnOnce('Rule#_selector is deprecated. Use Rule#raws.selector');\n return this.raws.selector;\n },\n set: function set$$1(val) {\n warnOnce('Rule#_selector is deprecated. Use Rule#raws.selector');\n this.raws.selector = val;\n }\n\n /**\n * @memberof Rule#\n * @member {string} selector - the rule’s full selector represented\n * as a string\n *\n * @example\n * const root = postcss.parse('a, b { }');\n * const rule = root.first;\n * rule.selector //=> 'a, b'\n */\n\n /**\n * @memberof Rule#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n *\n * PostCSS cleans selectors from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '', between: ' ', after: '\\n' }\n */\n\n }]);\n return Rule;\n}(Container);\n\n// \n/**\n * Represents a plugin’s warning. It can be created using {@link Node#warn}.\n *\n * @example\n * if ( decl.important ) {\n * decl.warn(result, 'Avoid !important', { word: '!important' });\n * }\n */\nvar Warning = function () {\n /**\n * @param {string} text - warning message\n * @param {Object} [opts] - warning options\n * @param {Node} opts.node - CSS node that caused the warning\n * @param {string} opts.word - word in CSS source that caused the warning\n * @param {number} opts.index - index in CSS node string that caused\n * the warning\n * @param {string} opts.plugin - name of the plugin that created\n * this warning. {@link Result#warn} fills\n * this property automatically.\n */\n function Warning(text) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, Warning);\n\n /**\n * @member {string} - Type to filter warnings from\n * {@link Result#messages}. Always equal\n * to `\"warning\"`.\n *\n * @example\n * const nonWarning = result.messages.filter(i => i.type !== 'warning')\n */\n this.type = 'warning';\n /**\n * @member {string} - The warning message.\n *\n * @example\n * warning.text //=> 'Try to avoid !important'\n */\n this.text = text;\n\n if (opts.node && opts.node.source) {\n var pos = opts.node.positionBy(opts);\n /**\n * @member {number} - Line in the input file\n * with this warning’s source\n *\n * @example\n * warning.line //=> 5\n */\n this.line = pos.line;\n /**\n * @member {number} - Column in the input file\n * with this warning’s source.\n *\n * @example\n * warning.column //=> 6\n */\n this.column = pos.column;\n }\n\n for (var opt in opts) {\n this[opt] = opts[opt];\n }\n }\n\n /**\n * Returns a warning position and message.\n *\n * @example\n * warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important'\n *\n * @return {string} warning position and message\n */\n\n\n Warning.prototype.toString = function toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message;\n } else if (this.plugin) {\n return this.plugin + ': ' + this.text;\n } else {\n return this.text;\n }\n };\n\n /**\n * @memberof Warning#\n * @member {string} plugin - The name of the plugin that created\n * it will fill this property automatically.\n * this warning. When you call {@link Node#warn}\n *\n * @example\n * warning.plugin //=> 'postcss-important'\n */\n\n /**\n * @memberof Warning#\n * @member {Node} node - Contains the CSS node that caused the warning.\n *\n * @example\n * warning.node.toString() //=> 'color: white !important'\n */\n\n\n return Warning;\n}();\n\n// \n\n/**\n * @typedef {object} Message\n * @property {string} type - message type\n * @property {string} plugin - source PostCSS plugin name\n */\n\n/**\n * Provides the result of the PostCSS transformations.\n *\n * A Result instance is returned by {@link LazyResult#then}\n * or {@link Root#toResult} methods.\n *\n * @example\n * postcss([cssnext]).process(css).then(function (result) {\n * console.log(result.css);\n * });\n *\n * @example\n * var result2 = postcss.parse(css).toResult();\n */\n\nvar Result = function () {\n /**\n * @param {Processor} processor - processor used for this transformation.\n * @param {Root} root - Root node after all transformations.\n * @param {processOptions} opts - options from the {@link Processor#process}\n * or {@link Root#toResult}\n */\n function Result(processor, root, opts) {\n classCallCheck(this, Result);\n\n /**\n * @member {Processor} - The Processor instance used\n * for this transformation.\n *\n * @example\n * for ( let plugin of result.processor.plugins) {\n * if ( plugin.postcssPlugin === 'postcss-bad' ) {\n * throw 'postcss-good is incompatible with postcss-bad';\n * }\n * });\n */\n this.processor = processor;\n /**\n * @member {Message[]} - Contains messages from plugins\n * (e.g., warnings or custom messages).\n * Each message should have type\n * and plugin properties.\n *\n * @example\n * postcss.plugin('postcss-min-browser', () => {\n * return (root, result) => {\n * var browsers = detectMinBrowsersByCanIUse(root);\n * result.messages.push({\n * type: 'min-browser',\n * plugin: 'postcss-min-browser',\n * browsers: browsers\n * });\n * };\n * });\n */\n this.messages = [];\n /**\n * @member {Root} - Root node after all transformations.\n *\n * @example\n * root.toResult().root == root;\n */\n this.root = root;\n /**\n * @member {processOptions} - Options from the {@link Processor#process}\n * or {@link Root#toResult} call\n * that produced this Result instance.\n *\n * @example\n * root.toResult(opts).opts == opts;\n */\n this.opts = opts;\n /**\n * @member {string} - A CSS string representing of {@link Result#root}.\n *\n * @example\n * postcss.parse('a{}').toResult().css //=> \"a{}\"\n */\n this.css = undefined;\n /**\n * @member {SourceMapGenerator} - An instance of `SourceMapGenerator`\n * class from the `source-map` library,\n * representing changes\n * to the {@link Result#root} instance.\n *\n * @example\n * result.map.toJSON() //=> { version: 3, file: 'a.css', … }\n *\n * @example\n * if ( result.map ) {\n * fs.writeFileSync(result.opts.to + '.map', result.map.toString());\n * }\n */\n this.map = undefined;\n }\n\n /**\n * Returns for @{link Result#css} content.\n *\n * @example\n * result + '' === result.css\n *\n * @return {string} string representing of {@link Result#root}\n */\n\n\n Result.prototype.toString = function toString() {\n return this.css;\n };\n\n /**\n * Creates an instance of {@link Warning} and adds it\n * to {@link Result#messages}.\n *\n * @param {string} text - warning message\n * @param {Object} [opts] - warning options\n * @param {Node} opts.node - CSS node that caused the warning\n * @param {string} opts.word - word in CSS source that caused the warning\n * @param {number} opts.index - index in CSS node string that caused\n * the warning\n * @param {string} opts.plugin - name of the plugin that created\n * this warning. {@link Result#warn} fills\n * this property automatically.\n *\n * @return {Warning} created warning\n */\n\n\n Result.prototype.warn = function warn(text) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n\n var warning = new Warning(text, opts);\n this.messages.push(warning);\n\n return warning;\n };\n\n /**\n * Returns warnings from plugins. Filters {@link Warning} instances\n * from {@link Result#messages}.\n *\n * @example\n * result.warnings().forEach(warn => {\n * console.warn(warn.toString());\n * });\n *\n * @return {Warning[]} warnings from plugins\n */\n\n\n Result.prototype.warnings = function warnings() {\n return this.messages.filter(function (i) {\n return i.type === 'warning';\n });\n };\n\n /**\n * An alias for the {@link Result#css} property.\n * Use it with syntaxes that generate non-CSS output.\n * @type {string}\n *\n * @example\n * result.css === result.content;\n */\n\n\n createClass(Result, [{\n key: 'content',\n get: function get$$1() {\n return this.css;\n }\n }]);\n return Result;\n}();\n\n// \n\nfunction isPromise(obj) {\n return (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.then === 'function';\n}\n\n/**\n * @callback onFulfilled\n * @param {Result} result\n */\n\n/**\n * @callback onRejected\n * @param {Error} error\n */\n\n/**\n * A Promise proxy for the result of PostCSS transformations.\n *\n * A `LazyResult` instance is returned by {@link Processor#process}.\n *\n * @example\n * const lazy = postcss([cssnext]).process(css);\n */\n\nvar LazyResult = function () {\n function LazyResult(processor, css, opts) {\n classCallCheck(this, LazyResult);\n\n this.stringified = false;\n this.processed = false;\n\n var root = void 0;\n if ((typeof css === 'undefined' ? 'undefined' : _typeof(css)) === 'object' && css.type === 'root') {\n root = css;\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = css.root;\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n var parser = parse;\n if (opts.syntax) parser = opts.syntax.parse;\n if (opts.parser) parser = opts.parser;\n if (parser.parse) parser = parser.parse;\n\n try {\n root = parser(css, opts);\n } catch (error) {\n this.error = error;\n }\n }\n\n this.result = new Result(processor, root, opts);\n }\n\n /**\n * Returns a {@link Processor} instance, which will be used\n * for CSS transformations.\n * @type {Processor}\n */\n\n\n /**\n * Processes input CSS through synchronous plugins\n * and calls {@link Result#warnings()}.\n *\n * @return {Warning[]} warnings from plugins\n */\n LazyResult.prototype.warnings = function warnings() {\n return this.sync().warnings();\n };\n\n /**\n * Alias for the {@link LazyResult#css} property.\n *\n * @example\n * lazy + '' === lazy.css;\n *\n * @return {string} output CSS\n */\n\n\n LazyResult.prototype.toString = function toString() {\n return this.css;\n };\n\n /**\n * Processes input CSS through synchronous and asynchronous plugins\n * and calls `onFulfilled` with a Result instance. If a plugin throws\n * an error, the `onRejected` callback will be executed.\n *\n * It implements standard Promise API.\n *\n * @param {onFulfilled} onFulfilled - callback will be executed\n * when all plugins will finish work\n * @param {onRejected} onRejected - callback will be execited on any error\n *\n * @return {Promise} Promise API to make queue\n *\n * @example\n * postcss([cssnext]).process(css).then(result => {\n * console.log(result.css);\n * });\n */\n\n\n LazyResult.prototype.then = function then(onFulfilled, onRejected) {\n return this.async().then(onFulfilled, onRejected);\n };\n\n /**\n * Processes input CSS through synchronous and asynchronous plugins\n * and calls onRejected for each error thrown in any plugin.\n *\n * It implements standard Promise API.\n *\n * @param {onRejected} onRejected - callback will be execited on any error\n *\n * @return {Promise} Promise API to make queue\n *\n * @example\n * postcss([cssnext]).process(css).then(result => {\n * console.log(result.css);\n * }).catch(error => {\n * console.error(error);\n * });\n */\n\n\n LazyResult.prototype.catch = function _catch(onRejected) {\n return this.async().catch(onRejected);\n };\n\n LazyResult.prototype.handleError = function handleError(error, plugin) {\n try {\n this.error = error;\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n var pluginName = plugin.postcssPlugin;\n var pluginVer = plugin.postcssVersion;\n var runtimeVer = this.result.processor.version;\n var a = pluginVer.split('.');\n var b = runtimeVer.split('.');\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n warnOnce('' + ('Your current PostCSS version ' + 'is ') + runtimeVer + ', but ' + pluginName + ' ' + ('uses ' + pluginVer + '. Perhaps this is ') + 'the source of the error below.');\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n };\n\n LazyResult.prototype.asyncTick = function asyncTick(resolve, reject) {\n var _this = this;\n\n if (this.plugin >= this.processor.plugins.length) {\n this.processed = true;\n return resolve();\n }\n\n try {\n var plugin = this.processor.plugins[this.plugin];\n var promise = this.run(plugin);\n this.plugin += 1;\n\n if (isPromise(promise)) {\n promise.then(function () {\n _this.asyncTick(resolve, reject);\n }).catch(function (error) {\n _this.handleError(error, plugin);\n _this.processed = true;\n reject(error);\n });\n } else {\n this.asyncTick(resolve, reject);\n }\n } catch (error) {\n this.processed = true;\n reject(error);\n }\n };\n\n LazyResult.prototype.async = function async() {\n var _this2 = this;\n\n if (this.processed) {\n return new Promise(function (resolve, reject) {\n if (_this2.error) {\n reject(_this2.error);\n } else {\n resolve(_this2.stringify());\n }\n });\n }\n if (this.processing) {\n return this.processing;\n }\n\n this.processing = new Promise(function (resolve, reject) {\n if (_this2.error) return reject(_this2.error);\n _this2.plugin = 0;\n _this2.asyncTick(resolve, reject);\n }).then(function () {\n _this2.processed = true;\n return _this2.stringify();\n });\n\n return this.processing;\n };\n\n LazyResult.prototype.sync = function sync() {\n var _this3 = this;\n\n if (this.processed) return this.result;\n this.processed = true;\n\n if (this.processing) {\n throw new Error('Use process(css).then(cb) to work with async plugins');\n }\n\n if (this.error) throw this.error;\n\n this.result.processor.plugins.forEach(function (plugin) {\n var promise = _this3.run(plugin);\n if (isPromise(promise)) {\n throw new Error('Use process(css).then(cb) to work with async plugins');\n }\n });\n\n return this.result;\n };\n\n LazyResult.prototype.run = function run(plugin) {\n this.result.lastPlugin = plugin;\n\n try {\n return plugin(this.result.root, this.result);\n } catch (error) {\n this.handleError(error, plugin);\n throw error;\n }\n };\n\n LazyResult.prototype.stringify = function stringify$$1() {\n if (this.stringified) return this.result;\n this.stringified = true;\n\n this.sync();\n\n var opts = this.result.opts;\n var str = stringify;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n\n var result = '';\n str(this.root, function (i) {\n result += i;\n });\n this.result.css = result;\n\n return this.result;\n };\n\n createClass(LazyResult, [{\n key: 'processor',\n get: function get$$1() {\n return this.result.processor;\n }\n\n /**\n * Options from the {@link Processor#process} call.\n * @type {processOptions}\n */\n\n }, {\n key: 'opts',\n get: function get$$1() {\n return this.result.opts;\n }\n\n /**\n * Processes input CSS through synchronous plugins, converts `Root`\n * to a CSS string and returns {@link Result#css}.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {string}\n * @see Result#css\n */\n\n }, {\n key: 'css',\n get: function get$$1() {\n return this.stringify().css;\n }\n\n /**\n * An alias for the `css` property. Use it with syntaxes\n * that generate non-CSS output.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {string}\n * @see Result#content\n */\n\n }, {\n key: 'content',\n get: function get$$1() {\n return this.stringify().content;\n }\n\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#map}.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {SourceMapGenerator}\n * @see Result#map\n */\n\n }, {\n key: 'map',\n get: function get$$1() {\n return this.stringify().map;\n }\n\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#root}.\n *\n * This property will only work with synchronous plugins. If the processor\n * contains any asynchronous plugins it will throw an error.\n *\n * This is why this method is only for debug purpose,\n * you should always use {@link LazyResult#then}.\n *\n * @type {Root}\n * @see Result#root\n */\n\n }, {\n key: 'root',\n get: function get$$1() {\n return this.sync().root;\n }\n\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#messages}.\n *\n * This property will only work with synchronous plugins. If the processor\n * contains any asynchronous plugins it will throw an error.\n *\n * This is why this method is only for debug purpose,\n * you should always use {@link LazyResult#then}.\n *\n * @type {Message[]}\n * @see Result#messages\n */\n\n }, {\n key: 'messages',\n get: function get$$1() {\n return this.sync().messages;\n }\n }]);\n return LazyResult;\n}();\n\n// \n\n/**\n * @callback builder\n * @param {string} part - part of generated CSS connected to this node\n * @param {Node} node - AST node\n * @param {\"start\"|\"end\"} [type] - node’s part type\n */\n\n/**\n * @callback parser\n *\n * @param {string|toString} css - string with input CSS or any object\n * with toString() method, like a Buffer\n * @param {processOptions} [opts] - options with only `from` and `map` keys\n *\n * @return {Root} PostCSS AST\n */\n\n/**\n * @callback stringifier\n *\n * @param {Node} node - start node for stringifing. Usually {@link Root}.\n * @param {builder} builder - function to concatenate CSS from node’s parts\n * or generate string and source map\n *\n * @return {void}\n */\n\n/**\n * @typedef {object} syntax\n * @property {parser} parse - function to generate AST by string\n * @property {stringifier} stringify - function to generate string by AST\n */\n\n/**\n * @typedef {object} toString\n * @property {function} toString\n */\n\n/**\n * @callback pluginFunction\n * @param {Root} root - parsed input CSS\n * @param {Result} result - result to set warnings or check other plugins\n */\n\n/**\n * @typedef {object} Plugin\n * @property {function} postcss - PostCSS plugin function\n */\n\n/**\n * @typedef {object} processOptions\n * @property {string} from - the path of the CSS source file.\n * You should always set `from`,\n * because it is used in source map\n * generation and syntax error messages.\n * @property {string} to - the path where you’ll put the output\n * CSS file. You should always set `to`\n * to generate correct source maps.\n * @property {parser} parser - function to generate AST by string\n * @property {stringifier} stringifier - class to generate string by AST\n * @property {syntax} syntax - object with `parse` and `stringify`\n * @property {object} map - source map options\n * @property {boolean} map.inline - does source map should\n * be embedded in the output\n * CSS as a base64-encoded\n * comment\n * @property {string|object|false|function} map.prev - source map content\n * from a previous\n * processing step\n * (for example, Sass).\n * PostCSS will try to find\n * previous map\n * automatically, so you\n * could disable it by\n * `false` value.\n * @property {boolean} map.sourcesContent - does PostCSS should set\n * the origin content to map\n * @property {string|false} map.annotation - does PostCSS should set\n * annotation comment to map\n * @property {string} map.from - override `from` in map’s\n * `sources`\n */\n\n/**\n * Contains plugins to process CSS. Create one `Processor` instance,\n * initialize its plugins, and then use that instance on numerous CSS files.\n *\n * @example\n * const processor = postcss([autoprefixer, precss]);\n * processor.process(css1).then(result => console.log(result.css));\n * processor.process(css2).then(result => console.log(result.css));\n */\n\nvar Processor = function () {\n /**\n * @param {Array.|Processor} plugins - PostCSS\n * plugins. See {@link Processor#use} for plugin format.\n */\n function Processor() {\n var plugins = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n classCallCheck(this, Processor);\n\n /**\n * @member {string} - Current PostCSS version.\n *\n * @example\n * if ( result.processor.version.split('.')[0] !== '5' ) {\n * throw new Error('This plugin works only with PostCSS 5');\n * }\n */\n this.version = '5.2.0';\n /**\n * @member {pluginFunction[]} - Plugins added to this processor.\n *\n * @example\n * const processor = postcss([autoprefixer, precss]);\n * processor.plugins.length //=> 2\n */\n this.plugins = this.normalize(plugins);\n }\n\n /**\n * Adds a plugin to be used as a CSS processor.\n *\n * PostCSS plugin can be in 4 formats:\n * * A plugin created by {@link postcss.plugin} method.\n * * A function. PostCSS will pass the function a @{link Root}\n * as the first argument and current {@link Result} instance\n * as the second.\n * * An object with a `postcss` method. PostCSS will use that method\n * as described in #2.\n * * Another {@link Processor} instance. PostCSS will copy plugins\n * from that instance into this one.\n *\n * Plugins can also be added by passing them as arguments when creating\n * a `postcss` instance (see [`postcss(plugins)`]).\n *\n * Asynchronous plugins should return a `Promise` instance.\n *\n * @param {Plugin|pluginFunction|Processor} plugin - PostCSS plugin\n * or {@link Processor}\n * with plugins\n *\n * @example\n * const processor = postcss()\n * .use(autoprefixer)\n * .use(precss);\n *\n * @return {Processes} current processor to make methods chain\n */\n\n\n Processor.prototype.use = function use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]));\n return this;\n };\n\n /**\n * Parses source CSS and returns a {@link LazyResult} Promise proxy.\n * Because some plugins can be asynchronous it doesn’t make\n * any transformations. Transformations will be applied\n * in the {@link LazyResult} methods.\n *\n * @param {string|toString|Result} css - String with input CSS or\n * any object with a `toString()`\n * method, like a Buffer.\n * Optionally, send a {@link Result}\n * instance and the processor will\n * take the {@link Root} from it.\n * @param {processOptions} [opts] - options\n *\n * @return {LazyResult} Promise proxy\n *\n * @example\n * processor.process(css, { from: 'a.css', to: 'a.out.css' })\n * .then(result => {\n * console.log(result.css);\n * });\n */\n\n\n Processor.prototype.process = function process(css) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return new LazyResult(this, css, opts);\n };\n\n Processor.prototype.normalize = function normalize(plugins) {\n var normalized = [];\n plugins.forEach(function (i) {\n if (i.postcss) i = i.postcss;\n\n if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins);\n } else if (typeof i === 'function') {\n normalized.push(i);\n } else {\n throw new Error(i + ' is not a PostCSS plugin');\n }\n });\n return normalized;\n };\n\n return Processor;\n}();\n\n// \n\n/**\n * Represents a CSS file and contains all its parsed nodes.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('a{color:black} b{z-index:2}');\n * root.type //=> 'root'\n * root.nodes.length //=> 2\n */\n\nvar Root = function (_Container) {\n inherits(Root, _Container);\n\n function Root(defaults$$1) {\n classCallCheck(this, Root);\n\n var _this = possibleConstructorReturn(this, _Container.call(this, defaults$$1));\n\n _this.type = 'root';\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n\n Root.prototype.removeChild = function removeChild(child) {\n child = this.index(child);\n\n if (child === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[child].raws.before;\n }\n\n return _Container.prototype.removeChild.call(this, child);\n };\n\n Root.prototype.normalize = function normalize(child, sample, type) {\n var nodes = _Container.prototype.normalize.call(this, child);\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n nodes.forEach(function (node) {\n node.raws.before = sample.raws.before;\n });\n }\n }\n\n return nodes;\n };\n\n /**\n * Returns a {@link Result} instance representing the root’s CSS.\n *\n * @param {processOptions} [opts] - options with only `to` and `map` keys\n *\n * @return {Result} result with current root’s CSS\n *\n * @example\n * const root1 = postcss.parse(css1, { from: 'a.css' });\n * const root2 = postcss.parse(css2, { from: 'b.css' });\n * root1.append(root2);\n * const result = root1.toResult({ to: 'all.css', map: true });\n */\n\n\n Root.prototype.toResult = function toResult() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n };\n\n Root.prototype.remove = function remove(child) {\n warnOnce('Root#remove is deprecated. Use Root#removeChild');\n this.removeChild(child);\n };\n\n Root.prototype.prevMap = function prevMap() {\n warnOnce('Root#prevMap is deprecated. Use Root#source.input.map');\n return this.source.input.map;\n };\n\n /**\n * @memberof Root#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `after`: the space symbols after the last child to the end of file.\n * * `semicolon`: is the last child has an (optional) semicolon.\n *\n * @example\n * postcss.parse('a {}\\n').raws //=> { after: '\\n' }\n * postcss.parse('a {}').raws //=> { after: '' }\n */\n\n\n return Root;\n}(Container);\n\n// \n// import PreviousMap from './previous-map';\n\nvar sequence = 0;\n\n/**\n * @typedef {object} filePosition\n * @property {string} file - path to file\n * @property {number} line - source line in file\n * @property {number} column - source column in file\n */\n\n/**\n * Represents the source CSS.\n *\n * @example\n * const root = postcss.parse(css, { from: file });\n * const input = root.source.input;\n */\n\nvar Input = function () {\n /**\n * @param {string} css - input CSS source\n * @param {object} [opts] - {@link Processor#process} options\n */\n function Input(css) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, Input);\n\n /**\n * @member {string} - input CSS source\n *\n * @example\n * const input = postcss.parse('a{}', { from: file }).input;\n * input.css //=> \"a{}\";\n */\n this.css = css.toString();\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.css = this.css.slice(1);\n }\n\n if (opts.from) {\n if (/^\\w+:\\/\\//.test(opts.from)) {\n /**\n * @member {string} - The absolute path to the CSS source file\n * defined with the `from` option.\n *\n * @example\n * const root = postcss.parse(css, { from: 'a.css' });\n * root.source.input.file //=> '/home/ai/a.css'\n */\n this.file = opts.from;\n } else {\n this.file = path.resolve(opts.from);\n }\n }\n\n /*\n let map = new PreviousMap(this.css, opts);\n if ( map.text ) {\n /!**\n * @member {PreviousMap} - The input source map passed from\n * a compilation step before PostCSS\n * (for example, from Sass compiler).\n *\n * @example\n * root.source.input.map.consumer().sources //=> ['a.sass']\n *!/\n this.map = map;\n let file = map.consumer().file;\n if ( !this.file && file ) this.file = this.mapResolve(file);\n }\n */\n\n if (!this.file) {\n sequence += 1;\n /**\n * @member {string} - The unique ID of the CSS source. It will be\n * created if `from` option is not provided\n * (because PostCSS does not know the file path).\n *\n * @example\n * const root = postcss.parse(css);\n * root.source.input.file //=> undefined\n * root.source.input.id //=> \"\"\n */\n this.id = '';\n }\n if (this.map) this.map.file = this.from;\n }\n\n Input.prototype.error = function error(message, line, column) {\n var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var result = void 0;\n var origin = this.origin(line, column);\n if (origin) {\n result = new CssSyntaxError(message, origin.line, origin.column, origin.source, origin.file, opts.plugin);\n } else {\n result = new CssSyntaxError(message, line, column, this.css, this.file, opts.plugin);\n }\n\n result.input = { line: line, column: column, source: this.css };\n if (this.file) result.input.file = this.file;\n\n return result;\n };\n\n /**\n * Reads the input source map and returns a symbol position\n * in the input source (e.g., in a Sass file that was compiled\n * to CSS before being passed to PostCSS).\n *\n * @param {number} line - line in input CSS\n * @param {number} column - column in input CSS\n *\n * @return {filePosition} position in input source\n *\n * @example\n * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 }\n */\n\n\n Input.prototype.origin = function origin(line, column) {\n if (!this.map) return false;\n var consumer = this.map.consumer();\n\n var from = consumer.originalPositionFor({ line: line, column: column });\n if (!from.source) return false;\n\n var result = {\n file: this.mapResolve(from.source),\n line: from.line,\n column: from.column\n };\n\n var source = consumer.sourceContentFor(from.source);\n if (source) result.source = source;\n\n return result;\n };\n\n Input.prototype.mapResolve = function mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n } else {\n return path.resolve(this.map.consumer().sourceRoot || '.', file);\n }\n };\n\n /**\n * The CSS source identifier. Contains {@link Input#file} if the user\n * set the `from` option, or {@link Input#id} if they did not.\n * @type {string}\n *\n * @example\n * const root = postcss.parse(css, { from: 'a.css' });\n * root.source.input.from //=> \"/home/ai/a.css\"\n *\n * const root = postcss.parse(css);\n * root.source.input.from //=> \"\"\n */\n\n\n createClass(Input, [{\n key: 'from',\n get: function get$$1() {\n return this.file || this.id;\n }\n }]);\n return Input;\n}();\n\n// \n\nvar SafeParser = function (_Parser) {\n inherits(SafeParser, _Parser);\n\n function SafeParser() {\n classCallCheck(this, SafeParser);\n return possibleConstructorReturn(this, _Parser.apply(this, arguments));\n }\n\n SafeParser.prototype.tokenize = function tokenize$$1() {\n this.tokens = tokenize(this.input, { ignoreErrors: true });\n };\n\n SafeParser.prototype.comment = function comment(token) {\n var node = new Comment();\n this.init(node, token[2], token[3]);\n node.source.end = { line: token[4], column: token[5] };\n\n var text = token[1].slice(2);\n if (text.slice(-2) === '*/') text = text.slice(0, -2);\n\n if (/^\\s*$/.test(text)) {\n node.text = '';\n node.raws.left = text;\n node.raws.right = '';\n } else {\n var match = text.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);\n node.text = match[2];\n node.raws.left = match[1];\n node.raws.right = match[3];\n }\n };\n\n SafeParser.prototype.unclosedBracket = function unclosedBracket() {};\n\n SafeParser.prototype.unknownWord = function unknownWord(start) {\n var buffer = this.tokens.slice(start, this.pos + 1);\n this.spaces += buffer.map(function (i) {\n return i[1];\n }).join('');\n };\n\n SafeParser.prototype.unexpectedClose = function unexpectedClose() {\n this.current.raws.after += '}';\n };\n\n SafeParser.prototype.doubleColon = function doubleColon() {};\n\n SafeParser.prototype.unnamedAtrule = function unnamedAtrule(node) {\n node.name = '';\n };\n\n SafeParser.prototype.precheckMissedSemicolon = function precheckMissedSemicolon(tokens) {\n var colon = this.colon(tokens);\n if (colon === false) return;\n\n var split = void 0;\n for (split = colon - 1; split >= 0; split--) {\n if (tokens[split][0] === 'word') break;\n }\n for (split -= 1; split >= 0; split--) {\n if (tokens[split][0] !== 'space') {\n split += 1;\n break;\n }\n }\n var other = tokens.splice(split, tokens.length - split);\n this.decl(other);\n };\n\n SafeParser.prototype.checkMissedSemicolon = function checkMissedSemicolon() {};\n\n SafeParser.prototype.endFile = function endFile() {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces;\n\n while (this.current.parent) {\n this.current = this.current.parent;\n this.current.raws.after = '';\n }\n };\n\n return SafeParser;\n}(Parser);\n\n// \n\nfunction safeParse(css, opts) {\n var input = new Input(css, opts);\n\n var parser = new SafeParser(input);\n parser.tokenize();\n parser.loop();\n\n return parser.root;\n}\n\n// \n\nvar generated = {};\n\n/*\n InlineStyle takes arbitrary CSS and generates a flat object\n */\nvar _InlineStyle = (function (styleSheet) {\n var InlineStyle = function () {\n function InlineStyle(rules) {\n classCallCheck(this, InlineStyle);\n\n this.rules = rules;\n }\n\n InlineStyle.prototype.generateStyleObject = function generateStyleObject(executionContext) {\n var flatCSS = flatten(this.rules, executionContext).join('');\n\n var hash = murmurhash(flatCSS);\n if (!generated[hash]) {\n var root = safeParse(flatCSS);\n var declPairs = [];\n root.each(function (node) {\n if (node.type === 'decl') {\n declPairs.push([node.prop, node.value]);\n } else if (process.env.NODE_ENV !== 'production' && node.type !== 'comment') {\n /* eslint-disable no-console */\n console.warn('Node of type ' + node.type + ' not supported as an inline style');\n }\n });\n // RN currently does not support differing values for the corner radii of Image\n // components (but does for View). It is almost impossible to tell whether we'll have\n // support, so we'll just disable multiple values here.\n // https://github.com/styled-components/css-to-react-native/issues/11\n var styleObject = transformDeclPairs(declPairs, ['borderRadius', 'borderWidth', 'borderColor', 'borderStyle']);\n var styles = styleSheet.create({\n generated: styleObject\n });\n generated[hash] = styles.generated;\n }\n return generated[hash];\n };\n\n return InlineStyle;\n }();\n\n return InlineStyle;\n});\n\n// \nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[reactIs.ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = React.createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React__default.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React__default.createElement(\n ThemeContext.Provider,\n { value: context },\n React__default.Children.only(this.props.children)\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(React.Component);\n\n// \n\n// $FlowFixMe\n\nvar StyledNativeComponent = function (_Component) {\n inherits(StyledNativeComponent, _Component);\n\n function StyledNativeComponent(props) {\n classCallCheck(this, StyledNativeComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.attrs = {};\n\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".')\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledNativeComponent.prototype.render = function render() {\n var _this2 = this;\n\n return React__default.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n var _props = _this2.props,\n renderAs = _props.as,\n forwardedComponent = _props.forwardedComponent,\n forwardedRef = _props.forwardedRef,\n innerRef = _props.innerRef,\n _props$style = _props.style,\n style = _props$style === undefined ? [] : _props$style,\n props = objectWithoutProperties(_props, ['as', 'forwardedComponent', 'forwardedRef', 'innerRef', 'style']);\n var defaultProps = forwardedComponent.defaultProps,\n displayName = forwardedComponent.displayName,\n target = forwardedComponent.target;\n\n\n var generatedStyles = void 0;\n if (theme !== undefined) {\n var themeProp = determineTheme(_this2.props, theme, defaultProps);\n generatedStyles = _this2.generateAndInjectStyles(themeProp, _this2.props);\n } else {\n generatedStyles = _this2.generateAndInjectStyles(theme || EMPTY_OBJECT, _this2.props);\n }\n\n var propsForElement = _extends({}, _this2.attrs, props, {\n style: [generatedStyles].concat(style)\n });\n\n if (forwardedRef) propsForElement.ref = forwardedRef;\n\n if (process.env.NODE_ENV !== 'production' && innerRef) {\n _this2.warnInnerRef(displayName);\n }\n\n return React.createElement(renderAs || target, propsForElement);\n }\n );\n };\n\n StyledNativeComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this3 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this3.warnAttrsFnObjectKeyDeprecated(key, _this3.props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React__default.isValidElement(attr)) {\n _this3.warnNonStyledComponentAttrsObjectKey(key, _this3.props.forwardedComponent.displayName);\n }\n }\n }\n\n _this3.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledNativeComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var inlineStyle = props.forwardedComponent.inlineStyle;\n\n\n var executionContext = this.buildExecutionContext(theme, props, props.forwardedComponent.attrs);\n\n return inlineStyle.generateStyleObject(executionContext);\n };\n\n StyledNativeComponent.prototype.setNativeProps = function setNativeProps(nativeProps) {\n if (this.root !== undefined) {\n // $FlowFixMe\n this.root.setNativeProps(nativeProps);\n } else if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('setNativeProps was called on a Styled Component wrapping a stateless functional component.');\n }\n };\n\n return StyledNativeComponent;\n}(React.Component);\n\nvar _StyledNativeComponent = (function (InlineStyle) {\n var createStyledNativeComponent = function createStyledNativeComponent(target, options, rules) {\n var _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs,\n _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledNativeComponent : _options$ParentCompon;\n\n\n var isClass = !isTag(target);\n var isTargetStyledComp = isStyledComponent(target);\n\n var WrappedStyledNativeComponent = React__default.forwardRef(function (props, ref) {\n return React__default.createElement(ParentComponent, _extends({}, props, {\n forwardedComponent: WrappedStyledNativeComponent,\n forwardedRef: ref\n }));\n });\n\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n\n // $FlowFixMe\n WrappedStyledNativeComponent.attrs = finalAttrs;\n\n WrappedStyledNativeComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledNativeComponent.inlineStyle = new InlineStyle(\n // $FlowFixMe\n isTargetStyledComp ? target.inlineStyle.rules.concat(rules) : rules);\n\n // $FlowFixMe\n WrappedStyledNativeComponent.styledComponentId = 'StyledNativeComponent';\n // $FlowFixMe\n WrappedStyledNativeComponent.target = isTargetStyledComp ? // $FlowFixMe\n target.target : target;\n // $FlowFixMe\n WrappedStyledNativeComponent.withComponent = function withComponent(tag) {\n var _ = options.displayName,\n __ = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['displayName', 'componentId']);\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n ParentComponent: ParentComponent\n });\n\n return createStyledNativeComponent(tag, newOptions, rules);\n };\n\n if (isClass) {\n // $FlowFixMe\n hoistNonReactStatics(WrappedStyledNativeComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n displayName: true,\n inlineStyle: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledNativeComponent;\n };\n\n return createStyledNativeComponent;\n});\n\n// \n\nvar interleave = (function (strings, interpolations) {\n var result = [strings[0]];\n\n for (var i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n});\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!reactIs.isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n\nvar withTheme = (function (Component) {\n var WithTheme = React__default.forwardRef(function (props, ref) {\n return React__default.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component) + '\"');\n }\n\n return React__default.createElement(Component, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component) + ')';\n\n return WithTheme;\n});\n\n// \n\nvar InlineStyle = _InlineStyle(reactNative.StyleSheet);\nvar StyledNativeComponent$1 = _StyledNativeComponent(InlineStyle);\nvar styled = function styled(tag) {\n return constructWithOptions(StyledNativeComponent$1, tag);\n};\n\n/* React native lazy-requires each of these modules for some reason, so let's\n * assume it's for a good reason and not eagerly load them all */\nvar aliases = 'ActivityIndicator ActivityIndicatorIOS ART Button DatePickerIOS DrawerLayoutAndroid\\n Image ImageBackground ImageEditor ImageStore KeyboardAvoidingView ListView MapView Modal NavigatorIOS\\n Picker PickerIOS ProgressBarAndroid ProgressViewIOS ScrollView SegmentedControlIOS Slider\\n SliderIOS SnapshotViewIOS Switch RecyclerViewBackedScrollView RefreshControl SafeAreaView StatusBar\\n SwipeableListView SwitchAndroid SwitchIOS TabBarIOS Text TextInput ToastAndroid ToolbarAndroid\\n Touchable TouchableHighlight TouchableNativeFeedback TouchableOpacity TouchableWithoutFeedback\\n View ViewPagerAndroid WebView FlatList SectionList VirtualizedList';\n\n/* Define a getter for each alias which simply gets the reactNative component\n * and passes it to styled */\naliases.split(/\\s+/m).forEach(function (alias) {\n return Object.defineProperty(styled, alias, {\n enumerable: true,\n configurable: false,\n get: function get() {\n return styled(reactNative[alias]);\n }\n });\n});\n\nexports.css = css;\nexports.isStyledComponent = isStyledComponent;\nexports.ThemeProvider = ThemeProvider;\nexports.ThemeConsumer = ThemeConsumer;\nexports.ThemeContext = ThemeContext;\nexports.withTheme = withTheme;\nexports.default = styled;\n//# sourceMappingURL=styled-components.native.cjs.js.map\n","!function(e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(null):\"function\"==typeof define&&define.amd?define(e(null)):window.stylis=e(null)}(function e(a){\"use strict\";var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\"}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \"}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \"}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee}n+=r}i[s]=n.replace(c,\"\").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De}}o[r++]=l}s+=(0===i?\"\":\",\")+o.join(\" \")}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r' : null;\n };\n};\n\nvar valueForTypeToken = function valueForTypeToken(type) {\n return function (node) {\n return node.type === type ? node.value : null;\n };\n};\n\nvar regExpToken = function regExpToken(regExp) {\n var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String;\n return function (node) {\n if (node.type !== 'word') return null;\n\n var match = node.value.match(regExp);\n if (match === null) return null;\n\n var value = transform(match[1]);\n\n return value;\n };\n};\n\nvar tokens = {\n SPACE: noopToken(function (node) {\n return node.type === 'space';\n }),\n SLASH: noopToken(function (node) {\n return node.type === 'div' && node.value === '/';\n }),\n COMMA: noopToken(function (node) {\n return node.type === 'div' && node.value === ',';\n }),\n WORD: valueForTypeToken('word'),\n NONE: regExpToken(noneRe),\n AUTO: regExpToken(autoRe),\n NUMBER: regExpToken(numberRe, Number),\n LENGTH: regExpToken(lengthRe, Number),\n UNSUPPORTED_LENGTH_UNIT: regExpToken(unsupportedUnitRe),\n ANGLE: regExpToken(angleRe),\n PERCENT: regExpToken(percentRe),\n IDENT: regExpToken(identRe),\n STRING: matchString,\n COLOR: matchColor,\n LINE: regExpToken(/^(none|underline|line-through)$/i)\n};\n\nvar NONE = tokens.NONE,\n COLOR = tokens.COLOR,\n LENGTH = tokens.LENGTH,\n UNSUPPORTED_LENGTH_UNIT = tokens.UNSUPPORTED_LENGTH_UNIT,\n SPACE = tokens.SPACE;\n\n\nvar BORDER_STYLE = regExpToken(/^(solid|dashed|dotted)$/);\n\nvar defaultBorderWidth = 1;\nvar defaultBorderColor = 'black';\nvar defaultBorderStyle = 'solid';\n\nvar border = function border(tokenStream) {\n var borderWidth = void 0;\n var borderColor = void 0;\n var borderStyle = void 0;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return { borderWidth: 0, borderColor: 'black', borderStyle: 'solid' };\n }\n\n var partsParsed = 0;\n while (partsParsed < 3 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (borderWidth === undefined && tokenStream.matches(LENGTH) || tokenStream.matches(UNSUPPORTED_LENGTH_UNIT)) {\n borderWidth = tokenStream.lastValue;\n } else if (borderColor === undefined && tokenStream.matches(COLOR)) {\n borderColor = tokenStream.lastValue;\n } else if (borderStyle === undefined && tokenStream.matches(BORDER_STYLE)) {\n borderStyle = tokenStream.lastValue;\n } else {\n tokenStream.throw();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n\n if (borderWidth === undefined) borderWidth = defaultBorderWidth;\n if (borderColor === undefined) borderColor = defaultBorderColor;\n if (borderStyle === undefined) borderStyle = defaultBorderStyle;\n\n return { borderWidth: borderWidth, borderColor: borderColor, borderStyle: borderStyle };\n};\n\nvar LENGTH$1 = tokens.LENGTH,\n UNSUPPORTED_LENGTH_UNIT$1 = tokens.UNSUPPORTED_LENGTH_UNIT,\n PERCENT = tokens.PERCENT,\n COLOR$1 = tokens.COLOR,\n SPACE$1 = tokens.SPACE,\n NONE$1 = tokens.NONE;\n\n\nvar directionFactory = function directionFactory(_ref) {\n var _ref$types = _ref.types,\n types = _ref$types === undefined ? [LENGTH$1, UNSUPPORTED_LENGTH_UNIT$1, PERCENT] : _ref$types,\n _ref$directions = _ref.directions,\n directions = _ref$directions === undefined ? ['Top', 'Right', 'Bottom', 'Left'] : _ref$directions,\n _ref$prefix = _ref.prefix,\n prefix = _ref$prefix === undefined ? '' : _ref$prefix,\n _ref$suffix = _ref.suffix,\n suffix = _ref$suffix === undefined ? '' : _ref$suffix;\n return function (tokenStream) {\n var _ref2;\n\n var values = [];\n\n // borderWidth doesn't currently allow a percent value, but may do in the future\n values.push(tokenStream.expect.apply(tokenStream, _toConsumableArray(types)));\n\n while (values.length < 4 && tokenStream.hasTokens()) {\n tokenStream.expect(SPACE$1);\n values.push(tokenStream.expect.apply(tokenStream, _toConsumableArray(types)));\n }\n\n tokenStream.expectEmpty();\n\n var top = values[0],\n _values$ = values[1],\n right = _values$ === undefined ? top : _values$,\n _values$2 = values[2],\n bottom = _values$2 === undefined ? top : _values$2,\n _values$3 = values[3],\n left = _values$3 === undefined ? right : _values$3;\n\n\n var keyFor = function keyFor(n) {\n return '' + prefix + directions[n] + suffix;\n };\n\n return _ref2 = {}, _defineProperty(_ref2, keyFor(0), top), _defineProperty(_ref2, keyFor(1), right), _defineProperty(_ref2, keyFor(2), bottom), _defineProperty(_ref2, keyFor(3), left), _ref2;\n };\n};\n\nvar parseShadowOffset = function parseShadowOffset(tokenStream) {\n var width = tokenStream.expect(LENGTH$1);\n var height = tokenStream.matches(SPACE$1) ? tokenStream.expect(LENGTH$1) : width;\n tokenStream.expectEmpty();\n return { width: width, height: height };\n};\n\nvar parseShadow = function parseShadow(tokenStream) {\n var offsetX = void 0;\n var offsetY = void 0;\n var radius = void 0;\n var color = void 0;\n\n if (tokenStream.matches(NONE$1)) {\n tokenStream.expectEmpty();\n return {\n offset: { width: 0, height: 0 },\n radius: 0,\n color: 'black'\n };\n }\n\n var didParseFirst = false;\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE$1);\n\n if (offsetX === undefined && tokenStream.matches(LENGTH$1, UNSUPPORTED_LENGTH_UNIT$1)) {\n offsetX = tokenStream.lastValue;\n tokenStream.expect(SPACE$1);\n offsetY = tokenStream.expect(LENGTH$1, UNSUPPORTED_LENGTH_UNIT$1);\n\n tokenStream.saveRewindPoint();\n if (tokenStream.matches(SPACE$1) && tokenStream.matches(LENGTH$1, UNSUPPORTED_LENGTH_UNIT$1)) {\n radius = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (color === undefined && tokenStream.matches(COLOR$1)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream.throw();\n }\n\n didParseFirst = true;\n }\n\n if (offsetX === undefined) tokenStream.throw();\n\n return {\n offset: { width: offsetX, height: offsetY },\n radius: radius !== undefined ? radius : 0,\n color: color !== undefined ? color : 'black'\n };\n};\n\nvar boxShadow = function boxShadow(tokenStream) {\n var _parseShadow = parseShadow(tokenStream),\n offset = _parseShadow.offset,\n radius = _parseShadow.radius,\n color = _parseShadow.color;\n\n return {\n shadowOffset: offset,\n shadowRadius: radius,\n shadowColor: color,\n shadowOpacity: 1\n };\n};\n\nvar NONE$2 = tokens.NONE,\n AUTO = tokens.AUTO,\n NUMBER = tokens.NUMBER,\n LENGTH$2 = tokens.LENGTH,\n SPACE$2 = tokens.SPACE;\n\n\nvar defaultFlexGrow = 1;\nvar defaultFlexShrink = 1;\nvar defaultFlexBasis = 0;\n\nvar flex = function flex(tokenStream) {\n var flexGrow = void 0;\n var flexShrink = void 0;\n var flexBasis = void 0;\n\n if (tokenStream.matches(NONE$2)) {\n tokenStream.expectEmpty();\n return { flexGrow: 0, flexShrink: 0, flexBasis: 'auto' };\n }\n\n tokenStream.saveRewindPoint();\n if (tokenStream.matches(AUTO) && !tokenStream.hasTokens()) {\n return { flexGrow: 1, flexShrink: 1, flexBasis: 'auto' };\n }\n tokenStream.rewind();\n\n var partsParsed = 0;\n while (partsParsed < 2 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE$2);\n\n if (flexGrow === undefined && tokenStream.matches(NUMBER)) {\n flexGrow = tokenStream.lastValue;\n\n tokenStream.saveRewindPoint();\n if (tokenStream.matches(SPACE$2) && tokenStream.matches(NUMBER)) {\n flexShrink = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (flexBasis === undefined && tokenStream.matches(LENGTH$2)) {\n flexBasis = tokenStream.lastValue;\n } else if (flexBasis === undefined && tokenStream.matches(AUTO)) {\n flexBasis = 'auto';\n } else {\n tokenStream.throw();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n\n if (flexGrow === undefined) flexGrow = defaultFlexGrow;\n if (flexShrink === undefined) flexShrink = defaultFlexShrink;\n if (flexBasis === undefined) flexBasis = defaultFlexBasis;\n\n return { flexGrow: flexGrow, flexShrink: flexShrink, flexBasis: flexBasis };\n};\n\nvar SPACE$3 = tokens.SPACE;\n\n\nvar FLEX_WRAP = regExpToken(/(nowrap|wrap|wrap-reverse)/);\nvar FLEX_DIRECTION = regExpToken(/(row|row-reverse|column|column-reverse)/);\n\nvar defaultFlexWrap = 'nowrap';\nvar defaultFlexDirection = 'row';\n\nvar flexFlow = function flexFlow(tokenStream) {\n var flexWrap = void 0;\n var flexDirection = void 0;\n\n var partsParsed = 0;\n while (partsParsed < 2 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE$3);\n\n if (flexWrap === undefined && tokenStream.matches(FLEX_WRAP)) {\n flexWrap = tokenStream.lastValue;\n } else if (flexDirection === undefined && tokenStream.matches(FLEX_DIRECTION)) {\n flexDirection = tokenStream.lastValue;\n } else {\n tokenStream.throw();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n\n if (flexWrap === undefined) flexWrap = defaultFlexWrap;\n if (flexDirection === undefined) flexDirection = defaultFlexDirection;\n\n return { flexWrap: flexWrap, flexDirection: flexDirection };\n};\n\nvar SPACE$4 = tokens.SPACE,\n IDENT = tokens.IDENT,\n STRING = tokens.STRING;\n\n\nvar parseFontFamily = function parseFontFamily(tokenStream) {\n var fontFamily = void 0;\n\n if (tokenStream.matches(STRING)) {\n fontFamily = tokenStream.lastValue;\n } else {\n fontFamily = tokenStream.expect(IDENT);\n while (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE$4);\n var nextIdent = tokenStream.expect(IDENT);\n fontFamily += ' ' + nextIdent;\n }\n }\n\n tokenStream.expectEmpty();\n\n return { fontFamily: fontFamily };\n};\n\nvar SPACE$5 = tokens.SPACE,\n LENGTH$3 = tokens.LENGTH,\n UNSUPPORTED_LENGTH_UNIT$2 = tokens.UNSUPPORTED_LENGTH_UNIT,\n NUMBER$1 = tokens.NUMBER,\n SLASH = tokens.SLASH;\n\nvar NORMAL = regExpToken(/^(normal)$/);\nvar STYLE = regExpToken(/^(italic)$/);\nvar WEIGHT = regExpToken(/^([1-9]00|bold)$/);\nvar VARIANT = regExpToken(/^(small-caps)$/);\n\nvar defaultFontStyle = 'normal';\nvar defaultFontWeight = 'normal';\nvar defaultFontVariant = [];\n\nvar font = function font(tokenStream) {\n var fontStyle = void 0;\n var fontWeight = void 0;\n var fontVariant = void 0;\n // let fontSize;\n var lineHeight = void 0;\n // let fontFamily;\n\n var numStyleWeightVariantMatched = 0;\n while (numStyleWeightVariantMatched < 3 && tokenStream.hasTokens()) {\n if (tokenStream.matches(NORMAL)) {\n /* pass */\n } else if (fontStyle === undefined && tokenStream.matches(STYLE)) {\n fontStyle = tokenStream.lastValue;\n } else if (fontWeight === undefined && tokenStream.matches(WEIGHT)) {\n fontWeight = tokenStream.lastValue;\n } else if (fontVariant === undefined && tokenStream.matches(VARIANT)) {\n fontVariant = [tokenStream.lastValue];\n } else {\n break;\n }\n\n tokenStream.expect(SPACE$5);\n numStyleWeightVariantMatched += 1;\n }\n\n var fontSize = tokenStream.expect(LENGTH$3, UNSUPPORTED_LENGTH_UNIT$2);\n\n if (tokenStream.matches(SLASH)) {\n if (tokenStream.matches(NUMBER$1)) {\n lineHeight = fontSize * tokenStream.lastValue;\n } else {\n lineHeight = tokenStream.expect(LENGTH$3, UNSUPPORTED_LENGTH_UNIT$2);\n }\n }\n\n tokenStream.expect(SPACE$5);\n\n var _parseFontFamily = parseFontFamily(tokenStream),\n fontFamily = _parseFontFamily.fontFamily;\n\n if (fontStyle === undefined) fontStyle = defaultFontStyle;\n if (fontWeight === undefined) fontWeight = defaultFontWeight;\n if (fontVariant === undefined) fontVariant = defaultFontVariant;\n\n var out = { fontStyle: fontStyle, fontWeight: fontWeight, fontVariant: fontVariant, fontSize: fontSize, fontFamily: fontFamily };\n if (lineHeight !== undefined) out.lineHeight = lineHeight;\n\n return out;\n};\n\nvar textShadow = function textShadow(tokenStream) {\n var _parseShadow2 = parseShadow(tokenStream),\n offset = _parseShadow2.offset,\n radius = _parseShadow2.radius,\n color = _parseShadow2.color;\n\n return {\n textShadowOffset: offset,\n textShadowRadius: radius,\n textShadowColor: color\n };\n};\n\nvar SPACE$6 = tokens.SPACE,\n LINE = tokens.LINE,\n COLOR$2 = tokens.COLOR;\n\n\nvar STYLE$1 = regExpToken(/^(solid|double|dotted|dashed)$/);\n\nvar defaultTextDecorationLine = 'none';\nvar defaultTextDecorationStyle = 'solid';\nvar defaultTextDecorationColor = 'black';\n\nvar textDecoration = function textDecoration(tokenStream) {\n var line = void 0;\n var style = void 0;\n var color = void 0;\n\n var didParseFirst = false;\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE$6);\n\n if (line === undefined && tokenStream.matches(LINE)) {\n var lines = [tokenStream.lastValue.toLowerCase()];\n\n tokenStream.saveRewindPoint();\n if (lines[0] !== 'none' && tokenStream.matches(SPACE$6) && tokenStream.matches(LINE)) {\n lines.push(tokenStream.lastValue.toLowerCase());\n // Underline comes before line-through\n lines.sort().reverse();\n } else {\n tokenStream.rewind();\n }\n\n line = lines.join(' ');\n } else if (style === undefined && tokenStream.matches(STYLE$1)) {\n style = tokenStream.lastValue;\n } else if (color === undefined && tokenStream.matches(COLOR$2)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream.throw();\n }\n\n didParseFirst = true;\n }\n\n return {\n textDecorationLine: line !== undefined ? line : defaultTextDecorationLine,\n textDecorationColor: color !== undefined ? color : defaultTextDecorationColor,\n textDecorationStyle: style !== undefined ? style : defaultTextDecorationStyle\n };\n};\n\nvar SPACE$7 = tokens.SPACE,\n LINE$1 = tokens.LINE;\n\n\nvar textDecorationLine = function textDecorationLine(tokenStream) {\n var lines = [];\n\n var didParseFirst = false;\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE$7);\n\n lines.push(tokenStream.expect(LINE$1).toLowerCase());\n\n didParseFirst = true;\n }\n\n lines.sort().reverse();\n\n return { textDecorationLine: lines.join(' ') };\n};\n\nvar SPACE$8 = tokens.SPACE,\n COMMA = tokens.COMMA,\n LENGTH$4 = tokens.LENGTH,\n NUMBER$2 = tokens.NUMBER,\n ANGLE = tokens.ANGLE;\n\n\nvar oneOfType = function oneOfType(tokenType) {\n return function (functionStream) {\n var value = functionStream.expect(tokenType);\n functionStream.expectEmpty();\n return value;\n };\n};\n\nvar singleNumber = oneOfType(NUMBER$2);\nvar singleLength = oneOfType(LENGTH$4);\nvar singleAngle = oneOfType(ANGLE);\nvar xyTransformFactory = function xyTransformFactory(tokenType) {\n return function (key, valueIfOmitted) {\n return function (functionStream) {\n var x = functionStream.expect(tokenType);\n\n var y = void 0;\n if (functionStream.hasTokens()) {\n functionStream.expect(COMMA);\n y = functionStream.expect(tokenType);\n } else if (valueIfOmitted !== undefined) {\n y = valueIfOmitted;\n } else {\n // Assumption, if x === y, then we can omit XY\n // I.e. scale(5) => [{ scale: 5 }] rather than [{ scaleX: 5 }, { scaleY: 5 }]\n return x;\n }\n\n functionStream.expectEmpty();\n\n return [_defineProperty({}, key + 'Y', y), _defineProperty({}, key + 'X', x)];\n };\n };\n};\nvar xyNumber = xyTransformFactory(NUMBER$2);\nvar xyLength = xyTransformFactory(LENGTH$4);\nvar xyAngle = xyTransformFactory(ANGLE);\n\nvar partTransforms = {\n perspective: singleNumber,\n scale: xyNumber('scale'),\n scaleX: singleNumber,\n scaleY: singleNumber,\n translate: xyLength('translate', 0),\n translateX: singleLength,\n translateY: singleLength,\n rotate: singleAngle,\n rotateX: singleAngle,\n rotateY: singleAngle,\n rotateZ: singleAngle,\n skewX: singleAngle,\n skewY: singleAngle,\n skew: xyAngle('skew', '0deg')\n};\n\nvar transform = function transform(tokenStream) {\n var transforms = [];\n\n var didParseFirst = false;\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE$8);\n\n var functionStream = tokenStream.expectFunction();\n var functionName = functionStream.functionName;\n\n var transformedValues = partTransforms[functionName](functionStream);\n if (!Array.isArray(transformedValues)) {\n transformedValues = [_defineProperty({}, functionName, transformedValues)];\n }\n transforms = transformedValues.concat(transforms);\n\n didParseFirst = true;\n }\n\n return { transform: transforms };\n};\n\nvar IDENT$1 = tokens.IDENT,\n WORD = tokens.WORD,\n COLOR$3 = tokens.COLOR,\n LENGTH$5 = tokens.LENGTH,\n UNSUPPORTED_LENGTH_UNIT$3 = tokens.UNSUPPORTED_LENGTH_UNIT,\n PERCENT$1 = tokens.PERCENT,\n AUTO$1 = tokens.AUTO;\n\n\nvar background = function background(tokenStream) {\n return {\n backgroundColor: tokenStream.expect(COLOR$3)\n };\n};\nvar borderColor = directionFactory({\n types: [WORD],\n prefix: 'border',\n suffix: 'Color'\n});\nvar borderRadius = directionFactory({\n directions: ['TopLeft', 'TopRight', 'BottomRight', 'BottomLeft'],\n prefix: 'border',\n suffix: 'Radius'\n});\nvar borderWidth = directionFactory({ prefix: 'border', suffix: 'Width' });\nvar margin = directionFactory({\n types: [LENGTH$5, UNSUPPORTED_LENGTH_UNIT$3, PERCENT$1, AUTO$1],\n prefix: 'margin'\n});\nvar padding = directionFactory({ prefix: 'padding' });\nvar fontVariant = function fontVariant(tokenStream) {\n return {\n fontVariant: [tokenStream.expect(IDENT$1)]\n };\n};\nvar fontWeight = function fontWeight(tokenStream) {\n return {\n fontWeight: tokenStream.expect(WORD) // Also match numbers as strings\n };\n};\nvar shadowOffset = function shadowOffset(tokenStream) {\n return {\n shadowOffset: parseShadowOffset(tokenStream)\n };\n};\nvar textShadowOffset = function textShadowOffset(tokenStream) {\n return {\n textShadowOffset: parseShadowOffset(tokenStream)\n };\n};\n\nvar transforms = {\n background: background,\n border: border,\n borderColor: borderColor,\n borderRadius: borderRadius,\n borderWidth: borderWidth,\n boxShadow: boxShadow,\n flex: flex,\n flexFlow: flexFlow,\n font: font,\n fontFamily: parseFontFamily,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n margin: margin,\n padding: padding,\n shadowOffset: shadowOffset,\n textShadow: textShadow,\n textShadowOffset: textShadowOffset,\n textDecoration: textDecoration,\n textDecorationLine: textDecorationLine,\n transform: transform\n};\n\nvar SYMBOL_MATCH = 'SYMBOL_MATCH';\n\nvar TokenStream = function () {\n function TokenStream(nodes, parent) {\n _classCallCheck(this, TokenStream);\n\n this.index = 0;\n this.nodes = nodes;\n this.functionName = parent != null ? parent.value : null;\n this.lastValue = null;\n this.rewindIndex = -1;\n }\n\n _createClass(TokenStream, [{\n key: 'hasTokens',\n value: function hasTokens() {\n return this.index <= this.nodes.length - 1;\n }\n }, {\n key: SYMBOL_MATCH,\n value: function value() {\n if (!this.hasTokens()) return null;\n\n var node = this.nodes[this.index];\n\n for (var i = 0; i < arguments.length; i += 1) {\n var tokenDescriptor = arguments.length <= i ? undefined : arguments[i];\n var value = tokenDescriptor(node);\n if (value !== null) {\n this.index += 1;\n this.lastValue = value;\n return value;\n }\n }\n\n return null;\n }\n }, {\n key: 'matches',\n value: function matches() {\n return this[SYMBOL_MATCH].apply(this, arguments) !== null;\n }\n }, {\n key: 'expect',\n value: function expect() {\n var value = this[SYMBOL_MATCH].apply(this, arguments);\n return value !== null ? value : this.throw();\n }\n }, {\n key: 'matchesFunction',\n value: function matchesFunction() {\n var node = this.nodes[this.index];\n if (node.type !== 'function') return null;\n var value = new TokenStream(node.nodes, node);\n this.index += 1;\n this.lastValue = null;\n return value;\n }\n }, {\n key: 'expectFunction',\n value: function expectFunction() {\n var value = this.matchesFunction();\n return value !== null ? value : this.throw();\n }\n }, {\n key: 'expectEmpty',\n value: function expectEmpty() {\n if (this.hasTokens()) this.throw();\n }\n }, {\n key: 'throw',\n value: function _throw() {\n throw new Error('Unexpected token type: ' + this.nodes[this.index].type);\n }\n }, {\n key: 'saveRewindPoint',\n value: function saveRewindPoint() {\n this.rewindIndex = this.index;\n }\n }, {\n key: 'rewind',\n value: function rewind() {\n if (this.rewindIndex === -1) throw new Error('Internal error');\n this.index = this.rewindIndex;\n this.lastValue = null;\n }\n }]);\n\n return TokenStream;\n}();\n\n/* eslint-disable no-param-reassign */\n// Note if this is wrong, you'll need to change tokenTypes.js too\n\n\nvar numberOrLengthRe = /^([+-]?(?:\\d*\\.)?\\d+(?:[Ee][+-]?\\d+)?)(?:px)?$/i;\nvar boolRe = /^true|false$/i;\nvar nullRe = /^null$/i;\nvar undefinedRe = /^undefined$/i;\n\n// Undocumented export\nvar transformRawValue = function transformRawValue(input) {\n var value = input.trim();\n\n var numberMatch = value.match(numberOrLengthRe);\n if (numberMatch !== null) return Number(numberMatch[1]);\n\n var boolMatch = input.match(boolRe);\n if (boolMatch !== null) return boolMatch[0].toLowerCase() === 'true';\n\n var nullMatch = input.match(nullRe);\n if (nullMatch !== null) return null;\n\n var undefinedMatch = input.match(undefinedRe);\n if (undefinedMatch !== null) return undefined;\n\n return value;\n};\n\nvar baseTransformShorthandValue = function baseTransformShorthandValue(propName, inputValue) {\n var ast = parse__default(inputValue.trim());\n var tokenStream = new TokenStream(ast.nodes);\n return transforms[propName](tokenStream);\n};\n\nvar transformShorthandValue = process.env.NODE_ENV === 'production' ? baseTransformShorthandValue : function (propName, inputValue) {\n try {\n return baseTransformShorthandValue(propName, inputValue);\n } catch (e) {\n throw new Error('Failed to parse declaration \"' + propName + ': ' + inputValue + '\"');\n }\n};\n\nvar getStylesForProperty = function getStylesForProperty(propName, inputValue, allowShorthand) {\n var isRawValue = allowShorthand === false || !(propName in transforms);\n var propValues = isRawValue ? _defineProperty({}, propName, transformRawValue(inputValue)) : transformShorthandValue(propName, inputValue.trim());\n\n return propValues;\n};\n\nvar getPropertyName = function getPropertyName(propName) {\n var isCustomProp = /^--\\w+/.test(propName);\n if (isCustomProp) {\n return propName;\n }\n return camelizeStyleName(propName);\n};\n\nvar index = function index(rules) {\n var shorthandBlacklist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return rules.reduce(function (accum, rule) {\n var propertyName = getPropertyName(rule[0]);\n var value = rule[1];\n var allowShorthand = shorthandBlacklist.indexOf(propertyName) === -1;\n return Object.assign(accum, getStylesForProperty(propertyName, value, allowShorthand));\n }, {});\n};\n\nexports.transformRawValue = transformRawValue;\nexports.getStylesForProperty = getStylesForProperty;\nexports.getPropertyName = getPropertyName;\nexports.default = index;\n","var parse = require('./parse');\nvar walk = require('./walk');\nvar stringify = require('./stringify');\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function () {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : '';\n};\n\nValueParser.prototype.walk = function (cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require('./unit');\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = '('.charCodeAt(0);\nvar closeParentheses = ')'.charCodeAt(0);\nvar singleQuote = '\\''.charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = '\\\\'.charCodeAt(0);\nvar slash = '/'.charCodeAt(0);\nvar comma = ','.charCodeAt(0);\nvar colon = ':'.charCodeAt(0);\nvar star = '*'.charCodeAt(0);\n\nmodule.exports = function (input) {\n var tokens = [];\n var value = input;\n\n var next, quote, prev, token, escape, escapePos, whitespacePos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = '';\n var before = '';\n var after = '';\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === 'div') {\n prev.after = token;\n } else if (code === comma || code === colon || code === slash && value.charCodeAt(next + 1) !== star) {\n before = token;\n } else {\n tokens.push({\n type: 'space',\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? '\\'' : '\"';\n token = {\n type: 'string',\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: 'comment',\n sourceIndex: pos\n };\n\n next = value.indexOf('*/', pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: 'div',\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: ''\n });\n before = '';\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = {\n type: 'function',\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(pos + 1, next)\n };\n pos = next;\n\n if (name === 'url' && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(')', next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += ')';\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (pos !== whitespacePos + 1) {\n token.nodes = [{\n type: 'word',\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = '';\n token.nodes.push({\n type: 'space',\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = '';\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = '';\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = '';\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (next < max && !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n code === closeParentheses && balanced\n ));\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else {\n tokens.push({\n type: 'word',\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n","module.exports = function walk(nodes, cb, bubble) {\r\n var i, max, node, result;\r\n\r\n for (i = 0, max = nodes.length; i < max; i += 1) {\r\n node = nodes[i];\r\n if (!bubble) {\r\n result = cb(node, i, nodes);\r\n }\r\n\r\n if (result !== false && node.type === 'function' && Array.isArray(node.nodes)) {\r\n walk(node.nodes, cb, bubble);\r\n }\r\n\r\n if (bubble) {\r\n cb(node, i, nodes);\r\n }\r\n }\r\n};\r\n","function stringifyNode(node, custom) {\r\n var type = node.type;\r\n var value = node.value;\r\n var buf;\r\n var customResult;\r\n\r\n if (custom && (customResult = custom(node)) !== undefined) {\r\n return customResult;\r\n } else if (type === 'word' || type === 'space') {\r\n return value;\r\n } else if (type === 'string') {\r\n buf = node.quote || '';\r\n return buf + value + (node.unclosed ? '' : buf);\r\n } else if (type === 'comment') {\r\n return '/*' + value + (node.unclosed ? '' : '*/');\r\n } else if (type === 'div') {\r\n return (node.before || '') + value + (node.after || '');\r\n } else if (Array.isArray(node.nodes)) {\r\n buf = stringify(node.nodes);\r\n if (type !== 'function') {\r\n return buf;\r\n }\r\n return value + '(' + (node.before || '') + buf + (node.after || '') + (node.unclosed ? '' : ')');\r\n }\r\n return value;\r\n}\r\n\r\nfunction stringify(nodes, custom) {\r\n var result, i;\r\n\r\n if (Array.isArray(nodes)) {\r\n result = '';\r\n for (i = nodes.length - 1; ~i; i -= 1) {\r\n result = stringifyNode(nodes[i], custom) + result;\r\n }\r\n return result;\r\n }\r\n return stringifyNode(nodes, custom);\r\n}\r\n\r\nmodule.exports = stringify;\r\n","var minus = '-'.charCodeAt(0);\nvar plus = '+'.charCodeAt(0);\nvar dot = '.'.charCodeAt(0);\n\nmodule.exports = function (value) {\n var pos = 0;\n var length = value.length;\n var dotted = false;\n var containsNumber = false;\n var code;\n var number = '';\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code >= 48 && code <= 57) {\n number += value[pos];\n containsNumber = true;\n } else if (code === dot) {\n if (dotted) {\n break;\n }\n dotted = true;\n number += value[pos];\n } else if (code === plus || code === minus) {\n if (pos !== 0) {\n break;\n }\n number += value[pos];\n } else {\n break;\n }\n\n pos += 1;\n }\n\n return containsNumber ? {\n number: number,\n unit: value.slice(pos)\n } : false;\n};\n","'use strict'\n\nmodule.exports = require('./colors.json')\n","","module.exports = function(obj) {\n if (typeof obj === 'string') return camelCase(obj);\n return walk(obj);\n};\n\nfunction walk (obj) {\n if (!obj || typeof obj !== 'object') return obj;\n if (isDate(obj) || isRegex(obj)) return obj;\n if (isArray(obj)) return map(obj, walk);\n return reduce(objectKeys(obj), function (acc, key) {\n var camel = camelCase(key);\n acc[camel] = walk(obj[key]);\n return acc;\n }, {});\n}\n\nfunction camelCase(str) {\n return str.replace(/[_.-](\\w|$)/g, function (_,x) {\n return x.toUpperCase();\n });\n}\n\nvar isArray = Array.isArray || function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nvar isDate = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n};\n\nvar isRegex = function (obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar has = Object.prototype.hasOwnProperty;\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (has.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nfunction reduce (xs, f, acc) {\n if (xs.reduce) return xs.reduce(f, acc);\n for (var i = 0; i < xs.length; i++) {\n acc = f(acc, xs[i], i);\n }\n return acc;\n}\n","'use strict';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction index (resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = areInputsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n var result = function result() {\n for (var _len = arguments.length, newArgs = new Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n };\n\n return result;\n}\n\nmodule.exports = index;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _media = require('./styled/media');\n\nObject.defineProperty(exports, 'media', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_media).default;\n }\n});\n\nvar _Container = require('./Container');\n\nObject.defineProperty(exports, 'Container', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Container).default;\n }\n});\n\nvar _Row = require('./Row');\n\nObject.defineProperty(exports, 'Row', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Row).default;\n }\n});\n\nvar _Col = require('./Col');\n\nObject.defineProperty(exports, 'Col', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Col).default;\n }\n});\n\nvar _injectLayoutBaseCSS = require('./injectLayoutBaseCSS');\n\nObject.defineProperty(exports, 'injectLayoutBaseCSS', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_injectLayoutBaseCSS).default;\n }\n});\n\nvar _ThemeProvider = require('./ThemeProvider');\n\nObject.defineProperty(exports, 'GridThemeProvider', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ThemeProvider).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _templateObject = _taggedTemplateLiteral(['\\n @media (max-width: ', 'px) {\\n ', '\\n }\\n '], ['\\n @media (max-width: ', 'px) {\\n ', '\\n }\\n ']),\n _templateObject2 = _taggedTemplateLiteral(['\\n @media (min-width: ', 'px) {\\n ', '\\n }\\n '], ['\\n @media (min-width: ', 'px) {\\n ', '\\n }\\n ']);\n\nvar _styledComponents = require('styled-components');\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar defaultBreakpoints = {\n giant: 1200,\n xl: 1200,\n desktop: 992,\n lg: 992,\n tablet: 768,\n md: 768,\n phone: 576,\n sm: 576,\n smaller: 575,\n xs: 575\n};\n\nvar getBreakpoints = function getBreakpoints(props) {\n if (props.theme && props.theme.grid && props.theme.grid.breakpoints) {\n return props.theme.grid.breakpoints;\n } else {\n return defaultBreakpoints;\n }\n};\n\nvar media = Object.keys(defaultBreakpoints).reduce(function (accumulator, label) {\n if (label === 'xs' || label === 'smaller') {\n accumulator[label] = function () {\n return (0, _styledComponents.css)(_templateObject, function (props) {\n return getBreakpoints(props).xs;\n }, _styledComponents.css.apply(undefined, arguments));\n };\n } else {\n accumulator[label] = function () {\n return (0, _styledComponents.css)(_templateObject2, function (props) {\n return getBreakpoints(props)[label];\n }, _styledComponents.css.apply(undefined, arguments));\n };\n }\n return accumulator;\n}, {});\n\nexports.default = media;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _styled = require('./styled');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar container = function container(props) {\n var fluid = props.fluid,\n children = props.children,\n otherProps = _objectWithoutProperties(props, ['fluid', 'children']);\n\n if (fluid) {\n return _react2.default.createElement(\n _styled.ContainerFluid,\n _extends({ 'data-name': 'container-fluid' }, otherProps),\n children\n );\n }\n return _react2.default.createElement(\n _styled.Container,\n _extends({ 'data-name': 'container' }, otherProps),\n children\n );\n};\n\ncontainer.propTypes = {\n children: _propTypes2.default.any,\n fluid: _propTypes2.default.bool.isRequired\n};\n\ncontainer.defaultProps = {\n children: null,\n fluid: false\n};\n\nexports.default = container;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _media = require('./media');\n\nObject.defineProperty(exports, 'media', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_media).default;\n }\n});\n\nvar _Container = require('./Container');\n\nObject.defineProperty(exports, 'Container', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Container).default;\n }\n});\n\nvar _ContainerFluid = require('./ContainerFluid');\n\nObject.defineProperty(exports, 'ContainerFluid', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ContainerFluid).default;\n }\n});\n\nvar _Row = require('./Row');\n\nObject.defineProperty(exports, 'Row', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Row).default;\n }\n});\n\nvar _Col = require('./Col');\n\nObject.defineProperty(exports, 'Col', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Col).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding-right: ', 'px;\\n padding-left: ', 'px;\\n margin-right: auto;\\n margin-left: auto;\\n\\n ', '\\n\\n ', '\\n\\n ', '\\n\\n ', '\\n'], ['\\n width: 100%;\\n padding-right: ', 'px;\\n padding-left: ', 'px;\\n margin-right: auto;\\n margin-left: auto;\\n\\n ', '\\n\\n ', '\\n\\n ', '\\n\\n ', '\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n max-width: 540px;\\n '], ['\\n max-width: 540px;\\n ']),\n _templateObject3 = _taggedTemplateLiteral(['\\n max-width: 720px;\\n '], ['\\n max-width: 720px;\\n ']),\n _templateObject4 = _taggedTemplateLiteral(['\\n max-width: 960px;\\n '], ['\\n max-width: 960px;\\n ']),\n _templateObject5 = _taggedTemplateLiteral(['\\n max-width: 1140px;\\n '], ['\\n max-width: 1140px;\\n ']);\n\nvar _styledComponents = require('styled-components');\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _media = require('./media');\n\nvar _media2 = _interopRequireDefault(_media);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Container = _styledComponents2.default.div(_templateObject, function (p) {\n if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getContainerPadding) {\n return 15;\n }\n return p.theme.styledBootstrapGrid.getContainerPadding();\n}, function (p) {\n if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getContainerPadding) {\n return 15;\n }\n return p.theme.styledBootstrapGrid.getContainerPadding();\n}, _media2.default.phone(_templateObject2), _media2.default.tablet(_templateObject3), _media2.default.desktop(_templateObject4), _media2.default.giant(_templateObject5));\n\nexports.default = Container;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding-right: ', 'px;\\n padding-left: ', 'px;\\n margin-right: auto;\\n margin-left: auto;\\n'], ['\\n width: 100%;\\n padding-right: ', 'px;\\n padding-left: ', 'px;\\n margin-right: auto;\\n margin-left: auto;\\n']);\n\nvar _styledComponents = require('styled-components');\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _media = require('./media');\n\nvar _media2 = _interopRequireDefault(_media);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ContainerFluid = _styledComponents2.default.div(_templateObject, function (p) {\n if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getContainerPadding) {\n return 15;\n }\n return p.theme.styledBootstrapGrid.getContainerPadding();\n}, function (p) {\n if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getContainerPadding) {\n return 15;\n }\n return p.theme.styledBootstrapGrid.getContainerPadding();\n});\n\nexports.default = ContainerFluid;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n margin-right: -', 'px;\\n margin-left: -', 'px;\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n'], ['\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n margin-right: -', 'px;\\n margin-left: -', 'px;\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n']),\n _templateObject2 = _taggedTemplateLiteral(['', ''], ['', '']);\n\nvar _styledComponents = require('styled-components');\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _media = require('./media');\n\nvar _media2 = _interopRequireDefault(_media);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar css = {\n alignItems: {\n start: '\\n -webkit-box-align: start !important;\\n -ms-flex-align: start !important;\\n align-items: flex-start !important;\\n ',\n end: '\\n -webkit-box-align: end !important;\\n -ms-flex-align: end !important;\\n align-items: flex-end !important;\\n ',\n center: '\\n -webkit-box-align: center !important;\\n -ms-flex-align: center !important;\\n align-items: center !important;\\n ',\n baseline: '\\n -webkit-box-align: baseline !important;\\n -ms-flex-align: baseline !important;\\n align-items: baseline !important;\\n ',\n stretch: '\\n -webkit-box-align: stretch !important;\\n -ms-flex-align: stretch !important;\\n align-items: stretch !important;\\n '\n },\n justifyContent: {\n start: '\\n -webkit-box-pack: start !important;\\n -ms-flex-pack: start !important;\\n justify-content: flex-start !important;\\n ',\n end: '\\n -webkit-box-pack: end !important;\\n -ms-flex-pack: end !important;\\n justify-content: flex-end !important;\\n ',\n center: '\\n -webkit-box-pack: center !important;\\n -ms-flex-pack: center !important;\\n justify-content: center !important;\\n ',\n between: '\\n -webkit-box-pack: justify !important;\\n -ms-flex-pack: justify !important;\\n justify-content: space-between !important;\\n ',\n around: '\\n -ms-flex-pack: distribute !important;\\n justify-content: space-around !important;\\n '\n }\n};\n\nvar Row = _styledComponents2.default.div(_templateObject, function (p) {\n if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getRowPadding) {\n return 15;\n }\n return p.theme.styledBootstrapGrid.getRowPadding();\n}, function (p) {\n if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getRowPadding) {\n return 15;\n }\n return p.theme.styledBootstrapGrid.getRowPadding();\n}, function (p) {\n return p.alignItems && css.alignItems[p.alignItems];\n}, function (p) {\n return p.smAlignItems && _media2.default.xs(_templateObject2, css.alignItems[p.xsAlignItems]);\n}, function (p) {\n return p.smAlignItems && _media2.default.sm(_templateObject2, css.alignItems[p.smAlignItems]);\n}, function (p) {\n return p.mdAlignItems && _media2.default.md(_templateObject2, css.alignItems[p.mdAlignItems]);\n}, function (p) {\n return p.lgAlignItems && _media2.default.lg(_templateObject2, css.alignItems[p.lgAlignItems]);\n}, function (p) {\n return p.xlAlignItems && _media2.default.xl(_templateObject2, css.alignItems[p.xlAlignItems]);\n}, function (p) {\n return p.justifyContent && css.justifyContent[p.justifyContent];\n}, function (p) {\n return p.smJustifyContent && _media2.default.xs(_templateObject2, css.justifyContent[p.xsJustifyContent]);\n}, function (p) {\n return p.smJustifyContent && _media2.default.sm(_templateObject2, css.justifyContent[p.smJustifyContent]);\n}, function (p) {\n return p.mdJustifyContent && _media2.default.md(_templateObject2, css.justifyContent[p.mdJustifyContent]);\n}, function (p) {\n return p.lgJustifyContent && _media2.default.lg(_templateObject2, css.justifyContent[p.lgJustifyContent]);\n}, function (p) {\n return p.xlJustifyContent && _media2.default.xl(_templateObject2, css.justifyContent[p.xlJustifyContent]);\n});\n\nexports.default = Row;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n width: 100%;\\n min-height: 1px;\\n padding-right: ', 'px;\\n padding-left: ', 'px;\\n\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n'], ['\\n position: relative;\\n width: 100%;\\n min-height: 1px;\\n padding-right: ', 'px;\\n padding-left: ', 'px;\\n\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n\\n ', '\\n ', '\\n ', '\\n ', '\\n ', '\\n']),\n _templateObject2 = _taggedTemplateLiteral(['', ''], ['', '']);\n\nvar _styledComponents = require('styled-components');\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _media = require('./media');\n\nvar _media2 = _interopRequireDefault(_media);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar css = {\n col: {\n true: '\\n -ms-flex-preferred-size: 0;\\n flex-basis: 0;\\n -webkit-box-flex: 1;\\n -ms-flex-positive: 1;\\n flex-grow: 1;\\n max-width: 100%;\\n ',\n auto: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n width: auto;\\n max-width: none;\\n ',\n 1: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 8.333333%;\\n flex: 0 0 8.333333%;\\n max-width: 8.333333%;\\n ',\n 2: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 16.666667%;\\n flex: 0 0 16.666667%;\\n max-width: 16.666667%;\\n ',\n 3: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 25%;\\n flex: 0 0 25%;\\n max-width: 25%;\\n ',\n 4: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 33.333333%;\\n flex: 0 0 33.333333%;\\n max-width: 33.333333%;\\n ',\n 5: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 41.666667%;\\n flex: 0 0 41.666667%;\\n max-width: 41.666667%;\\n ',\n 6: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 50%;\\n flex: 0 0 50%;\\n max-width: 50%;\\n ',\n 7: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 58.333333%;\\n flex: 0 0 58.333333%;\\n max-width: 58.333333%;\\n ',\n 8: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 66.666667%;\\n flex: 0 0 66.666667%;\\n max-width: 66.666667%;\\n ',\n 9: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 75%;\\n flex: 0 0 75%;\\n max-width: 75%;\\n ',\n 10: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 83.333333%;\\n flex: 0 0 83.333333%;\\n max-width: 83.333333%;\\n ',\n 11: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 91.666667%;\\n flex: 0 0 91.666667%;\\n max-width: 91.666667%;\\n ',\n 12: '\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 100%;\\n flex: 0 0 100%;\\n max-width: 100%;\\n '\n },\n offset: {\n 0: 'margin-left: 0;',\n 1: 'margin-left: 8.333333%;',\n 2: 'margin-left: 16.666667%;',\n 3: 'margin-left: 25%;',\n 4: 'margin-left: 33.333333%;',\n 5: 'margin-left: 41.666667%;',\n 6: 'margin-left: 50%;',\n 7: 'margin-left: 58.333333%;',\n 8: 'margin-left: 66.666667%;',\n 9: 'margin-left: 75%;',\n 10: 'margin-left: 83.333333%;',\n 11: 'margin-left: 91.666667%;'\n },\n order: {\n first: '\\n -webkit-box-ordinal-group: 0;\\n -ms-flex-order: -1;\\n order: -1;\\n ',\n last: '\\n -webkit-box-ordinal-group: 14;\\n -ms-flex-order: 13;\\n order: 13;\\n ',\n 0: '\\n -webkit-box-ordinal-group: 1;\\n -ms-flex-order: 0;\\n order: 0;\\n ',\n 1: '\\n -webkit-box-ordinal-group: 2;\\n -ms-flex-order: 1;\\n order: 1;\\n ',\n 2: '\\n -webkit-box-ordinal-group: 3;\\n -ms-flex-order: 2;\\n order: 2;\\n ',\n 3: '\\n -webkit-box-ordinal-group: 4;\\n -ms-flex-order: 3;\\n order: 3;\\n ',\n 4: '\\n -webkit-box-ordinal-group: 5;\\n -ms-flex-order: 4;\\n order: 4;\\n ',\n 5: '\\n -webkit-box-ordinal-group: 6;\\n -ms-flex-order: 5;\\n order: 5;\\n ',\n 6: '\\n -webkit-box-ordinal-group: 7;\\n -ms-flex-order: 6;\\n order: 6;\\n ',\n 7: '\\n -webkit-box-ordinal-group: 8;\\n -ms-flex-order: 7;\\n order: 7;\\n ',\n 8: '\\n -webkit-box-ordinal-group: 9;\\n -ms-flex-order: 8;\\n order: 8;\\n ',\n 9: '\\n -webkit-box-ordinal-group: 10;\\n -ms-flex-order: 9;\\n order: 9;\\n ',\n 10: '\\n -webkit-box-ordinal-group: 11;\\n -ms-flex-order: 10;\\n order: 10;\\n ',\n 11: '\\n -webkit-box-ordinal-group: 12;\\n -ms-flex-order: 11;\\n order: 11;\\n ',\n 12: '\\n -webkit-box-ordinal-group: 13;\\n -ms-flex-order: 12;\\n order: 12;\\n '\n },\n alignSelf: {\n auto: '\\n -ms-flex-item-align: auto !important;\\n align-self: auto !important;\\n ',\n start: '\\n -ms-flex-item-align: start !important;\\n align-self: flex-start !important;\\n ',\n end: '\\n -ms-flex-item-align: end !important;\\n align-self: flex-end !important;\\n ',\n center: '\\n -ms-flex-item-align: center !important;\\n align-self: center !important;\\n ',\n baseline: '\\n -ms-flex-item-align: baseline !important;\\n align-self: baseline !important;\\n ',\n stretch: '\\n -ms-flex-item-align: stretch !important;\\n align-self: stretch !important;\\n '\n },\n noGutter: '\\n margin-right: 0;\\n margin-left: 0;\\n '\n};\n\nvar Col = _styledComponents2.default.div(_templateObject, function (p) {\n if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getColPadding) {\n return 15;\n }\n return p.theme.styledBootstrapGrid.getColPadding();\n}, function (p) {\n if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getColPadding) {\n return 15;\n }\n return p.theme.styledBootstrapGrid.getColPadding();\n}, function (p) {\n return p.noGutter && css.noGutter;\n}, function (p) {\n return p.col && css.col[p.col];\n}, function (p) {\n return p.offset && css.offset[p.offset];\n}, function (p) {\n return p.auto && css.col.auto;\n}, function (p) {\n return p.alignSelf && css.alignSelf[p.alignSelf];\n}, function (p) {\n return p.order && css.order[p.order];\n}, function (p) {\n return p.xs && _media2.default.xs(_templateObject2, css.col[p.xs]);\n}, function (p) {\n return !isNaN(parseInt(p.xsOffset, 10)) && _media2.default.xs(_templateObject2, css.offset[p.xsOffset]);\n}, function (p) {\n return p.xsAuto && _media2.default.xs(_templateObject2, css.col.auto);\n}, function (p) {\n return p.xsAlignSelf && _media2.default.xs(_templateObject2, css.alignSelf[p.xsAlignSelf]);\n}, function (p) {\n return p.xsOrder && _media2.default.xs(_templateObject2, css.order[p.xsOrder]);\n}, function (p) {\n return p.sm && _media2.default.sm(_templateObject2, css.col[p.sm]);\n}, function (p) {\n return !isNaN(parseInt(p.smOffset, 10)) && _media2.default.sm(_templateObject2, css.offset[p.smOffset]);\n}, function (p) {\n return p.smAuto && _media2.default.sm(_templateObject2, css.col.auto);\n}, function (p) {\n return p.smAlignSelf && _media2.default.sm(_templateObject2, css.alignSelf[p.smAlignSelf]);\n}, function (p) {\n return p.smOrder && _media2.default.sm(_templateObject2, css.order[p.smOrder]);\n}, function (p) {\n return p.md && _media2.default.md(_templateObject2, css.col[p.md]);\n}, function (p) {\n return !isNaN(parseInt(p.mdOffset, 10)) && _media2.default.md(_templateObject2, css.offset[p.mdOffset]);\n}, function (p) {\n return p.mdAuto && _media2.default.md(_templateObject2, css.col.auto);\n}, function (p) {\n return p.mdAlignSelf && _media2.default.md(_templateObject2, css.alignSelf[p.mdAlignSelf]);\n}, function (p) {\n return p.mdOrder && _media2.default.md(_templateObject2, css.order[p.mdOrder]);\n}, function (p) {\n return p.lg && _media2.default.lg(_templateObject2, css.col[p.lg]);\n}, function (p) {\n return !isNaN(parseInt(p.lgOffset, 10)) && _media2.default.lg(_templateObject2, css.offset[p.lgOffset]);\n}, function (p) {\n return p.lgAuto && _media2.default.lg(_templateObject2, css.col.auto);\n}, function (p) {\n return p.lgAlignSelf && _media2.default.lg(_templateObject2, css.alignSelf[p.lgAlignSelf]);\n}, function (p) {\n return p.lgOrder && _media2.default.lg(_templateObject2, css.order[p.lgOrder]);\n}, function (p) {\n return p.xl && _media2.default.xl(_templateObject2, css.col[p.xl]);\n}, function (p) {\n return !isNaN(parseInt(p.xlOffset, 10)) && _media2.default.xl(_templateObject2, css.offset[p.xlOffset]);\n}, function (p) {\n return p.xlAuto && _media2.default.xl(_templateObject2, css.col.auto);\n}, function (p) {\n return p.xlAlignSelf && _media2.default.xl(_templateObject2, css.alignSelf[p.xlAlignSelf]);\n}, function (p) {\n return p.xlOrder && _media2.default.xl(_templateObject2, css.order[p.xlOrder]);\n});\n\nexports.default = Col;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _styled = require('./styled');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar row = function row(props) {\n var children = props.children,\n alignItems = props.alignItems,\n smAlignItems = props.smAlignItems,\n mdAlignItems = props.mdAlignItems,\n lgAlignItems = props.lgAlignItems,\n xlAlignItems = props.xlAlignItems,\n justifyContent = props.justifyContent,\n smJustifyContent = props.smJustifyContent,\n mdJustifyContent = props.mdJustifyContent,\n lgJustifyContent = props.lgJustifyContent,\n xlJustifyContent = props.xlJustifyContent,\n otherProps = _objectWithoutProperties(props, ['children', 'alignItems', 'smAlignItems', 'mdAlignItems', 'lgAlignItems', 'xlAlignItems', 'justifyContent', 'smJustifyContent', 'mdJustifyContent', 'lgJustifyContent', 'xlJustifyContent']);\n\n var dataName = 'row';\n\n if (alignItems) {\n dataName = dataName + ' align-items-' + alignItems;\n }\n if (smAlignItems) {\n dataName = dataName + ' align-items-sm-' + smAlignItems;\n }\n if (mdAlignItems) {\n dataName = dataName + ' align-items-md-' + mdAlignItems;\n }\n if (lgAlignItems) {\n dataName = dataName + ' align-items-lg-' + lgAlignItems;\n }\n if (xlAlignItems) {\n dataName = dataName + ' align-items-xl-' + xlAlignItems;\n }\n if (justifyContent) {\n dataName = dataName + ' justify-content-' + justifyContent;\n }\n if (smJustifyContent) {\n dataName = dataName + ' justify-content-sm-' + smJustifyContent;\n }\n if (mdJustifyContent) {\n dataName = dataName + ' justify-content-md-' + mdJustifyContent;\n }\n if (lgJustifyContent) {\n dataName = dataName + ' justify-content-lg-' + lgJustifyContent;\n }\n if (xlJustifyContent) {\n dataName = dataName + ' justify-content-xl-' + xlJustifyContent;\n }\n\n dataName = dataName.trim();\n return _react2.default.createElement(\n _styled.Row,\n _extends({\n alignItems: alignItems,\n smAlignItems: smAlignItems,\n mdAlignItems: mdAlignItems,\n lgAlignItems: lgAlignItems,\n xlAlignItems: xlAlignItems,\n justifyContent: justifyContent,\n smJustifyContent: smJustifyContent,\n mdJustifyContent: mdJustifyContent,\n lgJustifyContent: lgJustifyContent,\n xlJustifyContent: xlJustifyContent,\n 'data-name': dataName\n }, otherProps),\n children\n );\n};\n\nrow.propTypes = {\n children: _propTypes2.default.any,\n alignItems: _propTypes2.default.string,\n smAlignItems: _propTypes2.default.string,\n mdAlignItems: _propTypes2.default.string,\n lgAlignItems: _propTypes2.default.string,\n xlAlignItems: _propTypes2.default.string,\n justifyContent: _propTypes2.default.string,\n smJustifyContent: _propTypes2.default.string,\n mdJustifyContent: _propTypes2.default.string,\n lgJustifyContent: _propTypes2.default.string,\n xlJustifyContent: _propTypes2.default.string\n};\n\nrow.defaultProps = {\n children: null\n};\n\nexports.default = row;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _styled = require('./styled');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar col = function col(props) {\n var col = props.col,\n offset = props.offset,\n auto = props.auto,\n alignSelf = props.alignSelf,\n order = props.order,\n xs = props.xs,\n xsOffset = props.xsOffset,\n xsAuto = props.xsAuto,\n xsAlignSelf = props.xsAlignSelf,\n xsOrder = props.xsOrder,\n sm = props.sm,\n smOffset = props.smOffset,\n smAuto = props.smAuto,\n smAlignSelf = props.smAlignSelf,\n smOrder = props.smOrder,\n md = props.md,\n mdOffset = props.mdOffset,\n mdAuto = props.mdAuto,\n mdAlignSelf = props.mdAlignSelf,\n mdOrder = props.mdOrder,\n lg = props.lg,\n lgOffset = props.lgOffset,\n lgAuto = props.lgAuto,\n lgAlignSelf = props.lgAlignSelf,\n lgOrder = props.lgOrder,\n xl = props.xl,\n xlOffset = props.xlOffset,\n xlAuto = props.xlAuto,\n xlAlignSelf = props.xlAlignSelf,\n xlOrder = props.xlOrder,\n noGutter = props.noGutter,\n children = props.children,\n otherProps = _objectWithoutProperties(props, ['col', 'offset', 'auto', 'alignSelf', 'order', 'xs', 'xsOffset', 'xsAuto', 'xsAlignSelf', 'xsOrder', 'sm', 'smOffset', 'smAuto', 'smAlignSelf', 'smOrder', 'md', 'mdOffset', 'mdAuto', 'mdAlignSelf', 'mdOrder', 'lg', 'lgOffset', 'lgAuto', 'lgAlignSelf', 'lgOrder', 'xl', 'xlOffset', 'xlAuto', 'xlAlignSelf', 'xlOrder', 'noGutter', 'children']);\n\n var dataName = '';\n if (col) {\n if (!isNaN(parseInt(col, 10))) {\n dataName = dataName + ' col-' + col;\n } else {\n dataName = dataName + ' col';\n }\n }\n if (!isNaN(parseInt(offset, 10))) {\n dataName = dataName + ' offset-' + offset;\n }\n if (auto) {\n dataName = dataName + ' col-auto';\n }\n if (alignSelf) {\n dataName = dataName + ' align-self-' + alignSelf;\n }\n if (!isNaN(parseInt(order, 10)) || order === 'first' || order === 'last') {\n dataName = dataName + ' order-' + order;\n }\n\n // XS\n if (xs) {\n if (!isNaN(parseInt(xs, 10))) {\n dataName = dataName + ' col-xs-' + xs;\n } else {\n dataName = dataName + ' col-xs';\n }\n }\n if (!isNaN(parseInt(xsOffset, 10))) {\n dataName = dataName + ' offset-xs-' + xsOffset;\n }\n if (xsAuto) {\n dataName = dataName + ' col-xs-auto';\n }\n if (xsAlignSelf) {\n dataName = dataName + ' align-self-xs-' + xsAlignSelf;\n }\n if (!isNaN(parseInt(xsOrder, 10)) || xsOrder === 'first' || xsOrder === 'last') {\n dataName = dataName + ' order-xs-' + xsOrder;\n }\n\n // SM\n if (sm) {\n if (!isNaN(parseInt(sm, 10))) {\n dataName = dataName + ' col-sm-' + sm;\n } else {\n dataName = dataName + ' col-sm';\n }\n }\n if (!isNaN(parseInt(smOffset, 10))) {\n dataName = dataName + ' offset-sm-' + smOffset;\n }\n if (smAuto) {\n dataName = dataName + ' col-sm-auto';\n }\n if (smAlignSelf) {\n dataName = dataName + ' align-self-sm-' + smAlignSelf;\n }\n if (!isNaN(parseInt(smOrder, 10)) || smOrder === 'first' || smOrder === 'last') {\n dataName = dataName + ' order-sm-' + smOrder;\n }\n\n // MD\n if (md) {\n if (!isNaN(parseInt(md, 10))) {\n dataName = dataName + ' col-md-' + md;\n } else {\n dataName = dataName + ' col-md';\n }\n }\n if (!isNaN(parseInt(mdOffset, 10))) {\n dataName = dataName + ' offset-md-' + mdOffset;\n }\n if (mdAuto) {\n dataName = dataName + ' col-md-auto';\n }\n if (mdAlignSelf) {\n dataName = dataName + ' align-self-md-' + mdAlignSelf;\n }\n if (!isNaN(parseInt(mdOrder, 10)) || mdOrder === 'first' || mdOrder === 'last') {\n dataName = dataName + ' order-md-' + mdOrder;\n }\n\n // LG\n if (lg) {\n if (!isNaN(parseInt(lg, 10))) {\n dataName = dataName + ' col-lg-' + lg;\n } else {\n dataName = dataName + ' col-lg';\n }\n }\n if (!isNaN(parseInt(lgOffset, 10))) {\n dataName = dataName + ' offset-lg-' + lgOffset;\n }\n if (lgAuto) {\n dataName = dataName + ' col-lg-auto';\n }\n if (lgAlignSelf) {\n dataName = dataName + ' align-self-lg-' + lgAlignSelf;\n }\n if (!isNaN(parseInt(lgOrder, 10)) || lgOrder === 'first' || lgOrder === 'last') {\n dataName = dataName + ' order-lg-' + lgOrder;\n }\n\n // XL\n if (xl) {\n if (!isNaN(parseInt(xl, 10))) {\n dataName = dataName + ' col-xl-' + xl;\n } else {\n dataName = dataName + ' col-xl';\n }\n }\n if (!isNaN(parseInt(xlOffset, 10))) {\n dataName = dataName + ' offset-xl-' + xlOffset;\n }\n if (xlAuto) {\n dataName = dataName + ' col-xl-auto';\n }\n if (xlAlignSelf) {\n dataName = dataName + ' align-self-xl-' + xlAlignSelf;\n }\n if (!isNaN(parseInt(xlOrder, 10)) || xlOrder === 'first' || xlOrder === 'last') {\n dataName = dataName + ' order-xl-' + xlOrder;\n }\n\n if (noGutter) {\n dataName = dataName + ' no-gutter';\n }\n\n dataName = dataName.trim();\n\n var allProps = _extends({\n col: col,\n offset: offset,\n auto: auto,\n alignSelf: alignSelf,\n order: order,\n\n xs: xs,\n xsOffset: xsOffset,\n xsAuto: xsAuto,\n xsAlignSelf: xsAlignSelf,\n xsOrder: xsOrder,\n\n sm: sm,\n smOffset: smOffset,\n smAuto: smAuto,\n smAlignSelf: smAlignSelf,\n smOrder: smOrder,\n\n md: md,\n mdOffset: mdOffset,\n mdAuto: mdAuto,\n mdAlignSelf: mdAlignSelf,\n mdOrder: mdOrder,\n\n lg: lg,\n lgOffset: lgOffset,\n lgAuto: lgAuto,\n lgAlignSelf: lgAlignSelf,\n lgOrder: lgOrder,\n\n xl: xl,\n xlOffset: xlOffset,\n xlAuto: xlAuto,\n xlAlignSelf: xlAlignSelf,\n xlOrder: xlOrder,\n\n noGutter: noGutter,\n 'data-name': dataName\n }, otherProps);\n\n return _react2.default.createElement(\n _styled.Col,\n allProps,\n children\n );\n};\n\nvar stringOrNumberReactPropType = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]);\n\nvar stringOrNumberorBooleanReactPropType = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]);\n\ncol.propTypes = {\n children: _propTypes2.default.any,\n noGutter: _propTypes2.default.bool,\n\n col: stringOrNumberorBooleanReactPropType,\n auto: _propTypes2.default.bool,\n alignSelf: _propTypes2.default.string,\n order: stringOrNumberReactPropType,\n\n xs: stringOrNumberorBooleanReactPropType,\n xsOffset: stringOrNumberReactPropType,\n xsAuto: _propTypes2.default.bool,\n xsAlignSelf: _propTypes2.default.string,\n xsOrder: stringOrNumberReactPropType,\n\n sm: stringOrNumberorBooleanReactPropType,\n smOffset: stringOrNumberReactPropType,\n smAuto: _propTypes2.default.bool,\n smAlignSelf: _propTypes2.default.string,\n smOrder: stringOrNumberReactPropType,\n\n md: stringOrNumberorBooleanReactPropType,\n mdOffset: stringOrNumberReactPropType,\n mdAuto: _propTypes2.default.bool,\n mdAlignSelf: _propTypes2.default.string,\n mdOrder: stringOrNumberReactPropType,\n\n lg: stringOrNumberorBooleanReactPropType,\n lgOffset: stringOrNumberReactPropType,\n lgAuto: _propTypes2.default.bool,\n lgAlignSelf: _propTypes2.default.string,\n lgOrder: stringOrNumberReactPropType,\n\n xl: stringOrNumberorBooleanReactPropType,\n xlOffset: stringOrNumberReactPropType,\n xlAuto: _propTypes2.default.bool,\n xlAlignSelf: _propTypes2.default.string,\n xlOrder: stringOrNumberReactPropType\n};\n\ncol.defaultProps = {\n children: null\n};\n\nexports.default = col;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']),\n _templateObject2 = _taggedTemplateLiteral(['\\n ', '\\n ', '\\n '], ['\\n ', '\\n ', '\\n ']);\n\nvar _styledComponents = require('styled-components');\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar defaultCSS = '\\n @-ms-viewport {\\n width: device-width;\\n }\\n\\n html {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -ms-overflow-style: scrollbar;\\n }\\n\\n *,\\n *::before,\\n *::after {\\n -webkit-box-sizing: inherit;\\n box-sizing: inherit;\\n }\\n';\n\nexports.default = function () {\n var css = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n if (css == null) {\n return (0, _styledComponents.injectGlobal)(_templateObject, defaultCSS);\n }\n return (0, _styledComponents.injectGlobal)(_templateObject2, defaultCSS, css);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = require('styled-components');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (props) {\n var theme = props.gridTheme || {};\n var myTheme = {\n styledBootstrapGrid: {\n breakpoints: theme.breakpoints || {},\n col: theme.col || {},\n row: theme.row || {},\n container: theme.container || {},\n getContainerPadding: function getContainerPadding() {\n if (theme.container) {\n if (!isNaN(parseInt(theme.container.padding, 10))) {\n return theme.container.padding;\n }\n }\n return 15;\n },\n getRowPadding: function getRowPadding() {\n if (theme.row) {\n if (!isNaN(parseInt(theme.row.padding, 10))) {\n return theme.row.padding;\n }\n }\n return 15;\n },\n getColPadding: function getColPadding() {\n if (theme.col) {\n if (!isNaN(parseInt(theme.col.padding, 10))) {\n return theme.col.padding;\n }\n }\n return 15;\n }\n }\n };\n\n return _react2.default.createElement(_styledComponents.ThemeProvider, _extends({ theme: myTheme }, props));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Flex = require(\"./Flex\");\n\nObject.keys(_Flex).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Flex[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Flex = void 0;\n\nvar _primitives = require(\"../../platform/primitives\");\n\nvar _styledSystem = require(\"styled-system\");\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n display: flex;\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar flexGrow = (0, _styledSystem.style)({\n prop: \"flexGrow\"\n});\n\n/**\n * A utility component that encapsulates flexbox behavior\n */\nvar Flex = _primitives.styled.View(_templateObject(), _styledSystem.alignContent, _styledSystem.alignItems, _styledSystem.background, _styledSystem.bottom, _styledSystem.display, _styledSystem.flexBasis, _styledSystem.flexDirection, flexGrow, _styledSystem.flexWrap, _styledSystem.height, _styledSystem.justifyContent, _styledSystem.maxHeight, _styledSystem.maxWidth, _styledSystem.order, _styledSystem.position, _styledSystem.space, _styledSystem.width, _styledSystem.zIndex);\n\nexports.Flex = Flex;\nFlex.displayName = \"Flex\";\n//# sourceMappingURL=Flex.js.map","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.mixed = exports.styles = exports.buttonStyle = exports.colorStyle = exports.textStyle = exports.left = exports.bottom = exports.right = exports.top = exports.zIndex = exports.position = exports.backgroundRepeat = exports.backgroundPosition = exports.backgroundSize = exports.backgroundImage = exports.background = exports.overflow = exports.opacity = exports.boxShadow = exports.borderRadius = exports.borderColor = exports.borders = exports.borderLeft = exports.borderBottom = exports.borderRight = exports.borderTop = exports.border = exports.gridArea = exports.gridTemplateAreas = exports.gridTemplateRows = exports.gridTemplateColumns = exports.gridAutoRows = exports.gridAutoColumns = exports.gridAutoFlow = exports.gridRow = exports.gridColumn = exports.gridRowGap = exports.gridColumnGap = exports.gridGap = exports.order = exports.alignSelf = exports.justifySelf = exports.flex = exports.flexDirection = exports.flexBasis = exports.flexWrap = exports.justifyContent = exports.justifyItems = exports.alignContent = exports.alignItems = exports.verticalAlign = exports.ratio = exports.ratioPadding = exports.size = exports.sizeHeight = exports.sizeWidth = exports.minHeight = exports.maxHeight = exports.height = exports.minWidth = exports.maxWidth = exports.display = exports.letterSpacing = exports.fontStyle = exports.fontWeight = exports.lineHeight = exports.textAlign = exports.fontFamily = exports.color = exports.bgColor = exports.textColor = exports.fontSize = exports.width = exports.space = exports.util = exports.variant = exports.getWidth = exports.style = exports.createMediaQuery = exports.compose = exports.merge = exports.cloneFunc = exports.themeGet = exports.get = exports.px = exports.num = exports.is = exports.defaultBreakpoints = exports.propTypes = void 0;\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\n// utils\nvar noop = function noop(n) {\n return n;\n};\n\nvar propTypes = {\n numberOrString: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n responsive: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string, _propTypes.default.array])\n};\nexports.propTypes = propTypes;\nvar defaultBreakpoints = [40, 52, 64].map(function (n) {\n return n + 'em';\n});\nexports.defaultBreakpoints = defaultBreakpoints;\n\nvar is = function is(n) {\n return n !== undefined && n !== null;\n};\n\nexports.is = is;\n\nvar num = function num(n) {\n return typeof n === 'number' && !isNaN(n);\n};\n\nexports.num = num;\n\nvar px = function px(n) {\n return num(n) ? n + 'px' : n;\n};\n\nexports.px = px;\n\nvar get = function get(obj) {\n for (var _len = arguments.length, paths = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n paths[_key - 1] = arguments[_key];\n }\n\n return paths.join('.').split('.').reduce(function (a, b) {\n return a && a[b] ? a[b] : null;\n }, obj);\n};\n\nexports.get = get;\n\nvar themeGet = function themeGet(paths, fallback) {\n return function (props) {\n return get(props.theme, paths) || fallback;\n };\n};\n\nexports.themeGet = themeGet;\n\nvar cloneFunc = function cloneFunc(fn) {\n return function () {\n return fn.apply(void 0, arguments);\n };\n};\n\nexports.cloneFunc = cloneFunc;\n\nvar merge = function merge(a, b) {\n return Object.assign({}, a, b, Object.keys(b || {}).reduce(function (obj, key) {\n var _Object$assign;\n\n return Object.assign(obj, (_Object$assign = {}, _Object$assign[key] = a[key] !== null && typeof a[key] === 'object' ? merge(a[key], b[key]) : b[key], _Object$assign));\n }, {}));\n};\n\nexports.merge = merge;\n\nvar compose = function compose() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var fn = function fn(props) {\n return funcs.map(function (fn) {\n return fn(props);\n }).filter(Boolean).reduce(merge, {});\n };\n\n fn.propTypes = funcs.map(function (fn) {\n return fn.propTypes;\n }).reduce(merge, {});\n return fn;\n};\n\nexports.compose = compose;\n\nvar createMediaQuery = function createMediaQuery(n) {\n return \"@media screen and (min-width: \" + px(n) + \")\";\n};\n\nexports.createMediaQuery = createMediaQuery;\n\nvar style = function style(_ref) {\n var _fn$propTypes;\n\n var prop = _ref.prop,\n cssProperty = _ref.cssProperty,\n key = _ref.key,\n getter = _ref.getter,\n transformValue = _ref.transformValue,\n _ref$scale = _ref.scale,\n defaultScale = _ref$scale === void 0 ? {} : _ref$scale;\n var css = cssProperty || prop;\n var transform = transformValue || getter || noop;\n\n var fn = function fn(props) {\n var val = props[prop];\n if (!is(val)) return null;\n var scale = get(props.theme, key) || defaultScale;\n\n var style = function style(n) {\n var _ref2;\n\n return is(n) ? (_ref2 = {}, _ref2[css] = transform(get(scale, n) || n), _ref2) : null;\n };\n\n if (!Array.isArray(val)) {\n return style(val);\n } // how to hoist this up??\n\n\n var breakpoints = [null].concat((get(props.theme, 'breakpoints') || defaultBreakpoints).map(createMediaQuery));\n var styles = {};\n\n for (var i = 0; i < val.length; i++) {\n var media = breakpoints[i];\n\n if (!media) {\n styles = style(val[i]) || {};\n continue;\n }\n\n var rule = style(val[i]);\n if (!rule) continue;\n styles[media] = rule;\n }\n\n return styles;\n };\n\n fn.propTypes = (_fn$propTypes = {}, _fn$propTypes[prop] = cloneFunc(propTypes.responsive), _fn$propTypes);\n fn.propTypes[prop].meta = {\n prop: prop,\n themeKey: key,\n styleType: 'responsive'\n };\n return fn;\n};\n\nexports.style = style;\n\nvar getWidth = function getWidth(n) {\n return !num(n) || n > 1 ? px(n) : n * 100 + '%';\n}; // variant\n\n\nexports.getWidth = getWidth;\n\nvar variant = function variant(_ref3) {\n var _fn$propTypes2;\n\n var key = _ref3.key,\n _ref3$prop = _ref3.prop,\n prop = _ref3$prop === void 0 ? 'variant' : _ref3$prop;\n\n var fn = function fn(props) {\n return get(props.theme, key, props[prop]) || null;\n };\n\n fn.propTypes = (_fn$propTypes2 = {}, _fn$propTypes2[prop] = propTypes.numberOrString, _fn$propTypes2);\n return fn;\n};\n\nexports.variant = variant;\nvar util = {\n propTypes: propTypes,\n defaultBreakpoints: defaultBreakpoints,\n is: is,\n num: num,\n px: px,\n get: get,\n themeGet: themeGet,\n cloneFunc: cloneFunc,\n merge: merge,\n compose: compose,\n createMediaQuery: createMediaQuery,\n style: style // space\n\n};\nexports.util = util;\n\nvar isNegative = function isNegative(n) {\n return n < 0;\n};\n\nvar REG = /^[mp][trblxy]?$/;\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\n\nvar getProperties = function getProperties(key) {\n var _key$split = key.split(''),\n a = _key$split[0],\n b = _key$split[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n};\n\nvar getValue = function getValue(scale) {\n return function (n) {\n if (!num(n)) {\n return px(scale[n] || n);\n }\n\n var abs = Math.abs(n);\n var neg = isNegative(n);\n var value = scale[abs] || abs;\n\n if (!num(value)) {\n return neg ? '-' + value : value;\n }\n\n return px(value * (neg ? -1 : 1));\n };\n};\n\nvar defaultScale = [0, 4, 8, 16, 32, 64, 128, 256, 512];\n\nvar space = function space(props) {\n var keys = Object.keys(props).filter(function (key) {\n return REG.test(key);\n }).sort();\n var scale = get(props.theme, 'space') || defaultScale;\n var getStyle = getValue(scale);\n return keys.map(function (key) {\n var value = props[key];\n var properties = getProperties(key);\n\n var style = function style(n) {\n return is(n) ? properties.reduce(function (a, prop) {\n var _extends2;\n\n return (0, _extends3.default)({}, a, (_extends2 = {}, _extends2[prop] = getStyle(n), _extends2));\n }, {}) : null;\n };\n\n if (!Array.isArray(value)) {\n return style(value);\n }\n\n var breakpoints = [null].concat((get(props.theme, 'breakpoints') || defaultBreakpoints).map(createMediaQuery));\n var styles = {};\n\n for (var i = 0; i < value.length; i++) {\n var media = breakpoints[i];\n\n if (!media) {\n styles = style(value[i]) || {};\n continue;\n }\n\n var rule = style(value[i]);\n if (!rule) continue;\n styles[media] = rule;\n }\n\n return styles;\n }).reduce(merge, {});\n};\n\nexports.space = space;\nspace.propTypes = {\n m: cloneFunc(propTypes.responsive),\n mt: cloneFunc(propTypes.responsive),\n mr: cloneFunc(propTypes.responsive),\n mb: cloneFunc(propTypes.responsive),\n ml: cloneFunc(propTypes.responsive),\n mx: cloneFunc(propTypes.responsive),\n my: cloneFunc(propTypes.responsive),\n p: cloneFunc(propTypes.responsive),\n pt: cloneFunc(propTypes.responsive),\n pr: cloneFunc(propTypes.responsive),\n pb: cloneFunc(propTypes.responsive),\n pl: cloneFunc(propTypes.responsive),\n px: cloneFunc(propTypes.responsive),\n py: cloneFunc(propTypes.responsive)\n};\n\nvar meta = function meta(prop) {\n return {\n prop: prop,\n themeKey: 'space',\n styleType: 'responsive'\n };\n};\n\nObject.keys(space.propTypes).forEach(function (prop) {\n space.propTypes[prop].meta = meta(prop);\n}); // styles\n\nvar width = style({\n prop: 'width',\n transformValue: getWidth\n});\nexports.width = width;\nvar fontSize = style({\n prop: 'fontSize',\n key: 'fontSizes',\n transformValue: px,\n scale: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n});\nexports.fontSize = fontSize;\nvar textColor = style({\n prop: 'color',\n key: 'colors'\n});\nexports.textColor = textColor;\nvar bgColor = style({\n prop: 'bg',\n cssProperty: 'backgroundColor',\n key: 'colors'\n});\nexports.bgColor = bgColor;\nvar color = compose(textColor, bgColor); // typography\n\nexports.color = color;\nvar fontFamily = style({\n prop: 'fontFamily',\n key: 'fonts'\n});\nexports.fontFamily = fontFamily;\nvar textAlign = style({\n prop: 'textAlign'\n});\nexports.textAlign = textAlign;\nvar lineHeight = style({\n prop: 'lineHeight',\n key: 'lineHeights'\n});\nexports.lineHeight = lineHeight;\nvar fontWeight = style({\n prop: 'fontWeight',\n key: 'fontWeights'\n});\nexports.fontWeight = fontWeight;\nvar fontStyle = style({\n prop: 'fontStyle'\n});\nexports.fontStyle = fontStyle;\nvar letterSpacing = style({\n prop: 'letterSpacing',\n key: 'letterSpacings',\n transformValue: px\n}); // layout\n\nexports.letterSpacing = letterSpacing;\nvar display = style({\n prop: 'display'\n});\nexports.display = display;\nvar maxWidth = style({\n prop: 'maxWidth',\n key: 'maxWidths',\n transformValue: px\n});\nexports.maxWidth = maxWidth;\nvar minWidth = style({\n prop: 'minWidth',\n key: 'minWidths',\n transformValue: px\n});\nexports.minWidth = minWidth;\nvar height = style({\n prop: 'height',\n key: 'heights',\n transformValue: px\n});\nexports.height = height;\nvar maxHeight = style({\n prop: 'maxHeight',\n key: 'maxHeights',\n transformValue: px\n});\nexports.maxHeight = maxHeight;\nvar minHeight = style({\n prop: 'minHeight',\n key: 'minHeights',\n transformValue: px\n});\nexports.minHeight = minHeight;\nvar sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transformValue: px\n});\nexports.sizeWidth = sizeWidth;\nvar sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transformValue: px\n});\nexports.sizeHeight = sizeHeight;\nvar size = compose(sizeHeight, sizeWidth);\nexports.size = size;\nvar ratioPadding = style({\n prop: 'ratio',\n cssProperty: 'paddingBottom',\n transformValue: function transformValue(n) {\n return n * 100 + '%';\n }\n});\nexports.ratioPadding = ratioPadding;\n\nvar ratio = function ratio(props) {\n return props.ratio ? (0, _extends3.default)({\n height: 0\n }, ratioPadding(props)) : null;\n};\n\nexports.ratio = ratio;\nratio.propTypes = (0, _extends3.default)({}, ratioPadding.propTypes);\nvar verticalAlign = style({\n prop: 'verticalAlign'\n}); // flexbox\n\nexports.verticalAlign = verticalAlign;\nvar alignItems = style({\n prop: 'alignItems'\n});\nexports.alignItems = alignItems;\nvar alignContent = style({\n prop: 'alignContent'\n});\nexports.alignContent = alignContent;\nvar justifyItems = style({\n prop: 'justifyItems'\n});\nexports.justifyItems = justifyItems;\nvar justifyContent = style({\n prop: 'justifyContent'\n});\nexports.justifyContent = justifyContent;\nvar flexWrap = style({\n prop: 'flexWrap'\n});\nexports.flexWrap = flexWrap;\nvar flexBasis = style({\n prop: 'flexBasis',\n transformValue: getWidth\n});\nexports.flexBasis = flexBasis;\nvar flexDirection = style({\n prop: 'flexDirection'\n});\nexports.flexDirection = flexDirection;\nvar flex = style({\n prop: 'flex'\n});\nexports.flex = flex;\nvar justifySelf = style({\n prop: 'justifySelf'\n});\nexports.justifySelf = justifySelf;\nvar alignSelf = style({\n prop: 'alignSelf'\n});\nexports.alignSelf = alignSelf;\nvar order = style({\n prop: 'order'\n}); // grid\n\nexports.order = order;\nvar gridGap = style({\n prop: 'gridGap',\n transformValue: px,\n key: 'space'\n});\nexports.gridGap = gridGap;\nvar gridColumnGap = style({\n prop: 'gridColumnGap',\n transformValue: px,\n key: 'space'\n});\nexports.gridColumnGap = gridColumnGap;\nvar gridRowGap = style({\n prop: 'gridRowGap',\n transformValue: px,\n key: 'space'\n});\nexports.gridRowGap = gridRowGap;\nvar gridColumn = style({\n prop: 'gridColumn'\n});\nexports.gridColumn = gridColumn;\nvar gridRow = style({\n prop: 'gridRow'\n});\nexports.gridRow = gridRow;\nvar gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexports.gridAutoFlow = gridAutoFlow;\nvar gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexports.gridAutoColumns = gridAutoColumns;\nvar gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexports.gridAutoRows = gridAutoRows;\nvar gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexports.gridTemplateColumns = gridTemplateColumns;\nvar gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexports.gridTemplateRows = gridTemplateRows;\nvar gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexports.gridTemplateAreas = gridTemplateAreas;\nvar gridArea = style({\n prop: 'gridArea'\n}); // borders\n\nexports.gridArea = gridArea;\n\nvar getBorder = function getBorder(n) {\n return num(n) && n > 0 ? n + 'px solid' : n;\n};\n\nvar border = style({\n prop: 'border',\n key: 'borders',\n transformValue: getBorder\n});\nexports.border = border;\nvar borderTop = style({\n prop: 'borderTop',\n key: 'borders',\n transformValue: getBorder\n});\nexports.borderTop = borderTop;\nvar borderRight = style({\n prop: 'borderRight',\n key: 'borders',\n transformValue: getBorder\n});\nexports.borderRight = borderRight;\nvar borderBottom = style({\n prop: 'borderBottom',\n key: 'borders',\n transformValue: getBorder\n});\nexports.borderBottom = borderBottom;\nvar borderLeft = style({\n prop: 'borderLeft',\n key: 'borders',\n transformValue: getBorder\n});\nexports.borderLeft = borderLeft;\nvar borders = compose(border, borderTop, borderRight, borderBottom, borderLeft);\nexports.borders = borders;\nvar borderColor = style({\n prop: 'borderColor',\n key: 'colors'\n});\nexports.borderColor = borderColor;\nvar borderRadius = style({\n prop: 'borderRadius',\n key: 'radii',\n transformValue: px\n});\nexports.borderRadius = borderRadius;\nvar boxShadow = style({\n prop: 'boxShadow',\n key: 'shadows'\n});\nexports.boxShadow = boxShadow;\nvar opacity = style({\n prop: 'opacity'\n});\nexports.opacity = opacity;\nvar overflow = style({\n prop: 'overflow'\n}); // backgrounds\n\nexports.overflow = overflow;\nvar background = style({\n prop: 'background'\n});\nexports.background = background;\nvar backgroundImage = style({\n prop: 'backgroundImage'\n});\nexports.backgroundImage = backgroundImage;\nvar backgroundSize = style({\n prop: 'backgroundSize'\n});\nexports.backgroundSize = backgroundSize;\nvar backgroundPosition = style({\n prop: 'backgroundPosition'\n});\nexports.backgroundPosition = backgroundPosition;\nvar backgroundRepeat = style({\n prop: 'backgroundRepeat'\n}); // position\n\nexports.backgroundRepeat = backgroundRepeat;\nvar position = style({\n prop: 'position'\n});\nexports.position = position;\nvar zIndex = style({\n prop: 'zIndex'\n});\nexports.zIndex = zIndex;\nvar top = style({\n prop: 'top',\n transformValue: px\n});\nexports.top = top;\nvar right = style({\n prop: 'right',\n transformValue: px\n});\nexports.right = right;\nvar bottom = style({\n prop: 'bottom',\n transformValue: px\n});\nexports.bottom = bottom;\nvar left = style({\n prop: 'left',\n transformValue: px\n});\nexports.left = left;\nvar textStyle = variant({\n prop: 'textStyle',\n key: 'textStyles'\n});\nexports.textStyle = textStyle;\nvar colorStyle = variant({\n prop: 'colors',\n key: 'colorStyles'\n});\nexports.colorStyle = colorStyle;\nvar buttonStyle = variant({\n key: 'buttons'\n});\nexports.buttonStyle = buttonStyle;\nvar styles = {\n space: space,\n width: width,\n fontSize: fontSize,\n textColor: textColor,\n bgColor: bgColor,\n color: color,\n fontFamily: fontFamily,\n textAlign: textAlign,\n lineHeight: lineHeight,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n letterSpacing: letterSpacing,\n display: display,\n maxWidth: maxWidth,\n minWidth: minWidth,\n height: height,\n maxHeight: maxHeight,\n minHeight: minHeight,\n sizeWidth: sizeWidth,\n sizeHeight: sizeHeight,\n size: size,\n ratioPadding: ratioPadding,\n ratio: ratio,\n verticalAlign: verticalAlign,\n alignItems: alignItems,\n alignContent: alignContent,\n justifyItems: justifyItems,\n justifyContent: justifyContent,\n flexWrap: flexWrap,\n flexBasis: flexBasis,\n flexDirection: flexDirection,\n flex: flex,\n justifySelf: justifySelf,\n alignSelf: alignSelf,\n order: order,\n gridGap: gridGap,\n gridColumnGap: gridColumnGap,\n gridRowGap: gridRowGap,\n gridColumn: gridColumn,\n gridRow: gridRow,\n gridAutoFlow: gridAutoFlow,\n gridAutoColumns: gridAutoColumns,\n gridAutoRows: gridAutoRows,\n gridTemplateColumns: gridTemplateColumns,\n gridTemplateRows: gridTemplateRows,\n gridTemplateAreas: gridTemplateAreas,\n gridArea: gridArea,\n // borders\n border: border,\n borderTop: borderTop,\n borderRight: borderRight,\n borderBottom: borderBottom,\n borderLeft: borderLeft,\n borders: borders,\n borderColor: borderColor,\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n opacity: opacity,\n overflow: overflow,\n background: background,\n backgroundImage: backgroundImage,\n backgroundPosition: backgroundPosition,\n backgroundRepeat: backgroundRepeat,\n backgroundSize: backgroundSize,\n position: position,\n zIndex: zIndex,\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n textStyle: textStyle,\n colorStyle: colorStyle,\n buttonStyle: buttonStyle // mixed\n\n};\nexports.styles = styles;\n\nvar omit = function omit(obj, blacklist) {\n var next = {};\n\n for (var key in obj) {\n if (blacklist.indexOf(key) > -1) continue;\n next[key] = obj[key];\n }\n\n return next;\n};\n\nvar funcs = Object.keys(styles).map(function (key) {\n return styles[key];\n}).filter(function (fn) {\n return typeof fn === 'function';\n});\nvar blacklist = funcs.reduce(function (a, fn) {\n return a.concat(Object.keys(fn.propTypes || {}));\n}, ['theme']);\n\nvar mixed = function mixed(props) {\n return funcs.map(function (fn) {\n return fn(props);\n }).reduce(merge, omit(props, blacklist));\n};\n\nexports.mixed = mixed;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Typography = require(\"./Typography\");\n\nObject.keys(_Typography).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Typography[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Display = exports.Serif = exports.Sans = exports.Text = exports.renderFontValue = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _primitives = require(\"../../platform/primitives\");\n\nvar _Theme = require(\"../../Theme\");\n\nvar _styledSystem = require(\"styled-system\");\n\nvar _determineFontSizes = require(\"./determineFontSizes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteral([\"\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar verticalAlign = (0, _styledSystem.style)({\n prop: \"verticalAlign\"\n});\n/** renderFontValue */\n\nvar renderFontValue = function renderFontValue(fontValue) {\n if (typeof fontValue === \"string\") {\n return \"font-family: \".concat(fontValue);\n } else {\n return [\"font-family: \".concat(fontValue.fontFamily)].concat(fontValue.fontStyle ? \"font-style: \".concat(fontValue.fontStyle) : []).concat(fontValue.fontWeight ? \"font-weight: \".concat(fontValue.fontWeight) : []).join(\";\\n\");\n }\n};\n\nexports.renderFontValue = renderFontValue;\n\n/** Base Text component for typography */\nvar Text = _primitives.styled.Text(_templateObject(), function (_ref) {\n var fontFamily = _ref.fontFamily;\n return fontFamily && renderFontValue(fontFamily);\n}, _styledSystem.fontSize, _styledSystem.lineHeight, _styledSystem.color, _styledSystem.display, _styledSystem.maxWidth, _styledSystem.space, _styledSystem.textAlign, verticalAlign);\n/**\n * The supported typefaces\n */\n\n\nexports.Text = Text;\n\n/**\n * Returns the weight, if given, otherwise it defaults to `regular` unless\n * explicitly given `null` in which case it returns undefined, meaning the\n * weight should be inherited from the component’s parent.\n *\n * @param weight\n */\nfunction _fontWeight(weight) {\n if (weight === null) {\n return undefined;\n }\n\n return weight || \"regular\";\n}\n\nfunction _selectFontFamilyType(weight, italic) {\n return italic ? \"italic\" : weight;\n}\n\n/**\n * Creates a wrapper around the generic `Text` component for a font type defined\n * in the palette’s theme (sans, serif, or display).\n *\n * The component’s props are specified with type parameter `P` and should hold\n * both the component’s specific props (size, weight, italic) as well as all of\n * the generic `Text` component’s props, although as optional.\n *\n * @param fontType\n * The font type that this text component represents.\n * @param selectFontFamilyType\n * An optional function that maps weight+italic to a font-family.\n */\nfunction createStyledText(fontType) {\n var selectFontFamilyType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _selectFontFamilyType;\n return (0, _primitives.styledWrapper)(function (_ref2) {\n var size = _ref2.size,\n weight = _ref2.weight,\n italic = _ref2.italic,\n element = _ref2.element,\n textProps = _objectWithoutProperties(_ref2, [\"size\", \"weight\", \"italic\", \"element\"]);\n\n var fontFamilyType = selectFontFamilyType(_fontWeight(weight), italic); // This is mostly to narrow the type of `fontFamilyType` to remove `null`.\n\n if (fontFamilyType === null) {\n throw new Error(\"Did not expect `fontType` to be `null`.\");\n }\n\n return _react.default.createElement(Text, _extends({\n fontFamily: fontFamilyType && _Theme.themeProps.fontFamily[fontType][fontFamilyType]\n }, (0, _determineFontSizes.determineFontSizes)(fontType, size), element ? {\n as: element\n } : {}, textProps));\n })(_templateObject2());\n}\n/**\n * Sans\n */\n\n\n/**\n * The Sans typeface is used for presenting objective dense information\n * (such as tables) and intervening communications (such as error feedback).\n *\n * @example\n *\n * Hi\n */\nvar Sans = createStyledText(\"sans\", function (weight, italic) {\n return italic && weight === \"medium\" ? \"mediumItalic\" : _selectFontFamilyType(weight, italic);\n});\n/**\n * Serif\n */\n\nexports.Sans = Sans;\n\n/**\n * The Serif typeface is used as the primary Artsy voice, guiding users through\n * flows, instruction, and communications.\n *\n * @example\n *\n * Hi\n */\nvar Serif = createStyledText(\"serif\", function (weight, italic) {\n if (italic && weight && weight !== \"regular\") {\n throw new Error(\"The serif font does not have an italic font with weight `\".concat(weight, \"`\"));\n }\n\n return _selectFontFamilyType(weight, italic);\n});\nexports.Serif = Serif;\n\n/**\n * The Display typeface has limited utility and is in the process of being\n * phased out in most places. Ask your friendly neighborhood design team member\n * if you're unsure if it should be used.\n *\n * @example\n *\n * Hi\n */\nvar Display = createStyledText(\"display\");\nexports.Display = Display;\nSans.displayName = \"Sans\";\nSerif.displayName = \"Serif\";\nDisplay.displayName = \"Display\";\n//# sourceMappingURL=Typography.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.determineFontSizes = determineFontSizes;\n\nvar _Theme = require(\"../../Theme\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\n/**\n * Determines which font sizes/line heights to use for typography.\n */\nfunction determineFontSizes(fontType, size) {\n if (!Array.isArray(size)) {\n var match = _Theme.themeProps.typeSizes[fontType][size];\n return {\n fontSize: \"\".concat(match.fontSize, \"px\"),\n lineHeight: \"\".concat(match.lineHeight, \"px\")\n };\n }\n\n return size.map(function (s) {\n return _Theme.themeProps.typeSizes[fontType][s];\n }).reduce(function (accumulator, current) {\n return {\n fontSize: [].concat(_toConsumableArray(accumulator.fontSize), [\"\".concat(current.fontSize, \"px\")]),\n lineHeight: [].concat(_toConsumableArray(accumulator.lineHeight), [\"\".concat(current.lineHeight, \"px\")])\n };\n }, {\n fontSize: [],\n lineHeight: []\n });\n}\n//# sourceMappingURL=determineFontSizes.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Banner = require(\"./Banner\");\n\nObject.keys(_Banner).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Banner[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Banner.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _BarChart = require(\"./BarChart\");\n\nObject.keys(_BarChart).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _BarChart[key];\n }\n });\n});\n\nvar _Bar = require(\"./Bar\");\n\nObject.keys(_Bar).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Bar[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=BarChart.ios.js.map","\"use strict\";\n//# sourceMappingURL=Bar.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _BorderBox = require(\"./BorderBox\");\n\nObject.keys(_BorderBox).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _BorderBox[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"BorderBox\", {\n enumerable: true,\n get: function get() {\n return _BorderBoxBase.BorderBoxBase;\n }\n});\n\nvar _BorderBoxBase = require(\"./BorderBoxBase\");\n//# sourceMappingURL=BorderBox.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BorderBoxBase = void 0;\n\nvar _helpers = require(\"../../helpers\");\n\nvar _primitives = require(\"../../platform/primitives\");\n\nvar _Flex = require(\"../Flex\");\n\nvar _styledSystem = require(\"styled-system\");\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n border: 1px solid \", \";\\n border-radius: 2px;\\n padding: \", \"px;\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n/**\n * A `View` or `div` (depending on the platform) that has a common border\n * and padding set by default\n */\nvar BorderBoxBase = (0, _primitives.styledWrapper)(_Flex.Flex)(_templateObject(), (0, _helpers.color)(\"black10\"), (0, _helpers.space)(2), _styledSystem.background, _styledSystem.height, _styledSystem.maxWidth, _styledSystem.space, _styledSystem.width);\nexports.BorderBoxBase = BorderBoxBase;\n//# sourceMappingURL=BorderBoxBase.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _color = require(\"./color\");\n\nObject.keys(_color).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _color[key];\n }\n });\n});\n\nvar _injectGlobalStyles = require(\"./injectGlobalStyles\");\n\nObject.keys(_injectGlobalStyles).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _injectGlobalStyles[key];\n }\n });\n});\n\nvar _media = require(\"./media\");\n\nObject.keys(_media).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _media[key];\n }\n });\n});\n\nvar _space = require(\"./space\");\n\nObject.keys(_space).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _space[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.injectGlobalStyles = injectGlobalStyles;\n\nvar _styledComponents = require(\"styled-components\");\n\nvar _Typography = require(\"../elements/Typography\");\n\nvar _color = require(\"./color\");\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n\\n *:focus {\\n outline: none;\\n }\\n\\n html {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -ms-overflow-style: scrollbar;\\n }\\n\\n *,\\n *::before,\\n *::after {\\n -webkit-box-sizing: inherit;\\n box-sizing: inherit;\\n }\\n\\n html,\\n body,\\n #root {\\n -webkit-tap-highlight-color: transparent;\\n height: 100%;\\n }\\n\\n body {\\n margin: 0;\\n padding: 0;\\n }\\n\\n html, body {\\n font-family: 'AGaramondPro-Regular';\\n font-size: 16px;\\n line-height: 24px;\\n -webkit-font-smoothing: antialiased;\\n text-rendering: optimizeLegibility;\\n }\\n\\n /* Default links */\\n\\n a {\\n cursor: pointer;\\n color: inherit;\\n transition: color 0.25s;\\n text-decoration: underline;\\n\\n &:hover {\\n color: \", \";\\n }\\n\\n &:active {\\n color: \", \";\\n }\\n\\n /* ts-styled-plugin erroniously parses this; see: */\\n /* https://github.com/Microsoft/typescript-styled-plugin/issues/54 */\\n &.noUnderline {\\n \", \";\\n }\\n\\n &.colorLink {\\n \", \";\\n \", \";\\n }\\n }\\n\\n /* links */\\n\\n \", \" {\\n a {\\n color: inherit;\\n &:hover {\\n color: \", \";\\n }\\n &:active {\\n color: \", \";\\n }\\n &.noUnderline {\\n \", \";\\n }\\n &.colorLink {\\n \", \";\\n \", \";\\n }\\n }\\n }\\n\\n /* links */\\n\\n \", \" {\\n a {\\n color: inherit;\\n &:hover {\\n color: \", \";\\n }\\n &:active {\\n color: \", \";\\n }\\n &.noUnderline {\\n \", \";\\n }\\n &.colorLink {\\n \", \";\\n \", \";\\n }\\n }\\n }\\n\\n /* links */\\n\\n \", \" {\\n a {\\n color: \", \";\\n &:hover {\\n text-decoration: underline;\\n }\\n }\\n }\\n\\n h1, h2, h3, h4, h5, h6 {\\n font-style: inherit;\\n font-family: inherit;\\n font-weight: inherit;\\n font-size: inherit;\\n margin: 0;\\n }\\n \\n \", \";\\n \"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n/**\n * Injects globally relevant styles, including helper classes for our Typography.\n * Apps that use palette should mount this component at the root of their tree.\n */\nfunction injectGlobalStyles(additionalStyles) {\n var GlobalStyles = (0, _styledComponents.createGlobalStyle)(_templateObject(), (0, _color.color)(\"black100\"), (0, _color.color)(\"black100\"), noUnderline, noUnderline, colorLink, _Typography.Sans, (0, _color.color)(\"black100\"), (0, _color.color)(\"black100\"), noUnderline, noUnderline, colorLink, _Typography.Serif, (0, _color.color)(\"black100\"), (0, _color.color)(\"black100\"), noUnderline, noUnderline, colorLink, _Typography.Display, (0, _color.color)(\"black100\"), additionalStyles);\n GlobalStyles.displayName = \"GlobalStyles\";\n return {\n GlobalStyles: GlobalStyles\n };\n} // Mixins\n\n\nvar noUnderline = (0, _styledComponents.css)([\"text-decoration:none;&:hover{text-decoration:underline;}\"]);\nvar colorLink = (0, _styledComponents.css)([\"color:\", \";\"], (0, _color.color)(\"purple100\"));\n//# sourceMappingURL=injectGlobalStyles.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.media = void 0;\n\nvar _styledComponents = require(\"styled-components\");\n\nvar _Theme = require(\"../Theme\");\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * A helper to construct media query strings for responsive style targeting.\n *\n * @example\n *\n * const Panel = styled.div`\n * ${media.sm`\n * width: 50%;\n * `}\n * ${media.lg`\n * width: 100%;\n * `}\n * `\n */\nvar media = Object.entries(_Theme.breakpoints).reduce(function (accumulator, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n label = _ref2[0],\n value = _ref2[1];\n\n return _objectSpread({}, accumulator, _defineProperty({}, label, function (strings) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return (0, _styledComponents.css)([\"@media (max-width:\", \"px){\", \";}\"], value, _styledComponents.css.apply(void 0, [strings].concat(args)));\n }));\n}, {});\nexports.media = media;\n//# sourceMappingURL=media.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.space = void 0;\n\nvar _Theme = require(\"../Theme\");\n\n/**\n * A helper to easily access space values when not in a styled-components or\n * styled-systems context.\n */\nvar space = function space(spaceKey) {\n return _Theme.themeProps.space[spaceKey];\n};\n\nexports.space = space;\n//# sourceMappingURL=space.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Box = require(\"./Box\");\n\nObject.keys(_Box).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Box[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Box = void 0;\n\nvar _primitives = require(\"../../platform/primitives\");\n\nvar _styledSystem = require(\"styled-system\");\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n \", \";\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n/**\n * Box is just a `View` or `div` (depending on the platform) with common styled-systems\n * hooks.\n */\nvar Box = _primitives.styled.View(_templateObject(), _styledSystem.background, _styledSystem.bottom, _styledSystem.display, _styledSystem.height, _styledSystem.left, _styledSystem.minWidth, _styledSystem.maxWidth, _styledSystem.minHeight, _styledSystem.maxHeight, _styledSystem.position, _styledSystem.right, _styledSystem.color, _styledSystem.space, _styledSystem.textAlign, _styledSystem.top, _styledSystem.width, _styledSystem.zIndex);\n\nexports.Box = Box;\nBox.displayName = \"Box\";\n//# sourceMappingURL=Box.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Button = require(\"./Button\");\n\nObject.keys(_Button).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Button[key];\n }\n });\n});\n\nvar _Button2 = require(\"./Button.shared\");\n\nObject.keys(_Button2).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Button2[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Button = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactNative = require(\"react-native\");\n\nvar _renderpropsNative = require(\"react-spring/renderprops-native.cjs\");\n\nvar _native = _interopRequireDefault(require(\"styled-components/native\"));\n\nvar _Theme = require(\"../../Theme\");\n\nvar _Box = require(\"../Box\");\n\nvar _Flex = require(\"../Flex\");\n\nvar _Spinner = require(\"../Spinner\");\n\nvar _Typography = require(\"../Typography\");\n\nvar _Button = require(\"./Button.shared\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar DisplayState;\n\n(function (DisplayState) {\n DisplayState[\"Enabled\"] = \"default\";\n DisplayState[\"Highlighted\"] = \"hover\";\n DisplayState[\"Disabled\"] = \"default\";\n})(DisplayState || (DisplayState = {}));\n\n/** A button with various size and color settings */\nvar Button =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Button, _Component);\n\n function Button() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Button);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Button)).call.apply(_getPrototypeOf2, [this].concat(_args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n previous: DisplayState.Enabled,\n current: DisplayState.Enabled\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPress\", function (args) {\n if (_this.props.onPress) {\n // Did someone tap really fast? Flick the highlighted state\n var current = _this.state.current;\n\n if (_this.state.current === DisplayState.Enabled) {\n _this.setState({\n previous: current,\n current: DisplayState.Highlighted\n });\n\n setTimeout(function () {\n return _this.setState({\n previous: current,\n current: DisplayState.Enabled\n });\n }, 0.3);\n } else {\n // Was already selected\n _this.setState({\n current: DisplayState.Enabled\n });\n }\n\n _this.props.onPress(args);\n }\n });\n\n return _this;\n }\n\n _createClass(Button, [{\n key: \"getSize\",\n value: function getSize() {\n var inline = this.props.inline;\n\n switch (this.props.size) {\n case \"small\":\n return {\n height: inline ? 17 : 26,\n size: \"2\",\n px: inline ? 0 : 1\n };\n\n case \"medium\":\n return {\n height: inline ? 21 : 41,\n size: \"3t\",\n px: inline ? 0 : 2\n };\n\n case \"large\":\n return {\n height: inline ? 21 : 50,\n size: \"3t\",\n px: inline ? 0 : 3\n };\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n children = _this$props.children,\n loading = _this$props.loading,\n disabled = _this$props.disabled,\n inline = _this$props.inline,\n longestText = _this$props.longestText,\n rest = _objectWithoutProperties(_this$props, [\"children\", \"loading\", \"disabled\", \"inline\", \"longestText\"]);\n\n var _this$getSize = this.getSize(),\n px = _this$getSize.px,\n size = _this$getSize.size,\n height = _this$getSize.height;\n\n var variantColors = (0, _Button.getColorsForVariant)(this.props.variant);\n var opacity = this.props.disabled ? 0.1 : 1.0;\n var _this$state = this.state,\n current = _this$state.current,\n previous = _this$state.previous;\n var from = variantColors[previous];\n var to = variantColors[current];\n return _react.default.createElement(_renderpropsNative.Spring, {\n native: true,\n from: from,\n to: to\n }, function (props) {\n return _react.default.createElement(_reactNative.TouchableWithoutFeedback, {\n onPress: _this2.onPress,\n onPressIn: function onPressIn() {\n _this2.setState({\n previous: DisplayState.Enabled,\n current: DisplayState.Highlighted\n });\n },\n onPressOut: function onPressOut() {\n _this2.setState({\n previous: DisplayState.Highlighted,\n current: DisplayState.Enabled\n });\n },\n disabled: disabled\n }, _react.default.createElement(_Flex.Flex, {\n flexDirection: \"row\"\n }, _react.default.createElement(AnimatedContainer, _extends({}, rest, {\n loading: loading,\n disabled: disabled,\n style: _objectSpread({}, props, _this2.loadingStyles, {\n height: height,\n opacity: opacity\n }),\n px: px\n }), _react.default.createElement(VisibleTextContainer, null, _react.default.createElement(_Typography.Sans, {\n weight: \"medium\",\n color: _this2.loadingStyles.color || to.color,\n size: size\n }, children)), _react.default.createElement(HiddenText, {\n role: \"presentation\",\n weight: \"medium\",\n size: size\n }, longestText ? longestText : children), loading && _react.default.createElement(_Spinner.Spinner, {\n size: _this2.props.size,\n color: _this2.spinnerColor\n }))));\n });\n }\n }, {\n key: \"loadingStyles\",\n get: function get() {\n var _this$props2 = this.props,\n inline = _this$props2.inline,\n loading = _this$props2.loading;\n\n if (!loading) {\n return {};\n }\n\n if (inline) {\n return {\n backgroundColor: \"rgba(0, 0, 0, 0)\",\n color: \"rgba(0, 0, 0, 0)\",\n borderWidth: 0\n };\n }\n\n var black100 = _Theme.themeProps.colors.black100;\n return {\n backgroundColor: black100,\n borderColor: black100,\n color: \"rgba(0, 0, 0, 0)\"\n };\n }\n }, {\n key: \"spinnerColor\",\n get: function get() {\n var _this$props3 = this.props,\n inline = _this$props3.inline,\n variant = _this$props3.variant;\n\n if (inline) {\n return variant === \"primaryWhite\" ? \"white100\" : \"black100\";\n }\n\n return \"white100\";\n }\n }]);\n\n return Button;\n}(_react.Component);\n\nexports.Button = Button;\n\n_defineProperty(Button, \"defaultProps\", {\n size: _Button.defaultSize,\n variant: _Button.defaultVariant,\n theme: _Theme.themeProps\n});\n\nButton.displayName = \"Button\";\n\n/** Base props that construct button */\nvar VisibleTextContainer = (0, _native.default)(_Box.Box).withConfig({\n displayName: \"Buttonios__VisibleTextContainer\",\n componentId: \"sc-1a2ktuk-0\"\n})([\"position:absolute;align-items:center;justify-content:center;display:flex;flex-direction:row;width:100%;height:100%;\"]);\nvar HiddenText = (0, _native.default)(_Typography.Sans).withConfig({\n displayName: \"Buttonios__HiddenText\",\n componentId: \"sc-1a2ktuk-1\"\n})([\"opacity:0;\"]);\nvar Container = (0, _native.default)(_Box.Box).withConfig({\n displayName: \"Buttonios__Container\",\n componentId: \"sc-1a2ktuk-2\"\n})([\"align-items:center;justify-content:center;position:relative;border-width:1;border-radius:3;width:\", \";\"], function (p) {\n return p.block ? \"100%\" : \"auto\";\n});\nvar AnimatedContainer = (0, _renderpropsNative.animated)(Container);\n//# sourceMappingURL=Button.ios.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _extends = _interopDefault(require('@babel/runtime/helpers/extends'));\nvar _assertThisInitialized = _interopDefault(require('@babel/runtime/helpers/assertThisInitialized'));\nvar _inheritsLoose = _interopDefault(require('@babel/runtime/helpers/inheritsLoose'));\nvar _objectWithoutPropertiesLoose = _interopDefault(require('@babel/runtime/helpers/objectWithoutPropertiesLoose'));\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar reactNative = require('react-native');\n\nvar bugfixes = undefined;\nvar applyAnimatedValues = undefined;\nvar colorNames = [];\nvar requestFrame = function requestFrame(cb) {\n return typeof window !== 'undefined' && window.requestAnimationFrame(cb);\n};\nvar cancelFrame = function cancelFrame(cb) {\n return typeof window !== 'undefined' && window.cancelAnimationFrame(cb);\n};\nvar interpolation = undefined;\nvar now = function now() {\n return Date.now();\n};\nvar defaultElement = undefined;\nvar createAnimatedStyle = undefined;\nvar injectApplyAnimatedValues = function injectApplyAnimatedValues(fn, transform) {\n return applyAnimatedValues = {\n fn: fn,\n transform: transform\n };\n};\nvar injectColorNames = function injectColorNames(names) {\n return colorNames = names;\n};\nvar injectBugfixes = function injectBugfixes(fn) {\n return bugfixes = fn;\n};\nvar injectInterpolation = function injectInterpolation(cls) {\n return interpolation = cls;\n};\nvar injectFrame = function injectFrame(raf, caf) {\n var _ref;\n\n return _ref = [raf, caf], requestFrame = _ref[0], cancelFrame = _ref[1], _ref;\n};\nvar injectNow = function injectNow(nowFn) {\n return now = nowFn;\n};\nvar injectDefaultElement = function injectDefaultElement(el) {\n return defaultElement = el;\n};\nvar injectCreateAnimatedStyle = function injectCreateAnimatedStyle(factory) {\n return createAnimatedStyle = factory;\n};\n\nvar Globals = /*#__PURE__*/Object.freeze({\n get bugfixes () { return bugfixes; },\n get applyAnimatedValues () { return applyAnimatedValues; },\n get colorNames () { return colorNames; },\n get requestFrame () { return requestFrame; },\n get cancelFrame () { return cancelFrame; },\n get interpolation () { return interpolation; },\n get now () { return now; },\n get defaultElement () { return defaultElement; },\n get createAnimatedStyle () { return createAnimatedStyle; },\n injectApplyAnimatedValues: injectApplyAnimatedValues,\n injectColorNames: injectColorNames,\n injectBugfixes: injectBugfixes,\n injectInterpolation: injectInterpolation,\n injectFrame: injectFrame,\n injectNow: injectNow,\n injectDefaultElement: injectDefaultElement,\n injectCreateAnimatedStyle: injectCreateAnimatedStyle\n});\n\nvar Animated =\n/*#__PURE__*/\nfunction () {\n function Animated() {}\n\n var _proto = Animated.prototype;\n\n _proto.attach = function attach() {};\n\n _proto.detach = function detach() {};\n\n _proto.getValue = function getValue() {};\n\n _proto.getAnimatedValue = function getAnimatedValue() {\n return this.getValue();\n };\n\n _proto.addChild = function addChild(child) {};\n\n _proto.removeChild = function removeChild(child) {};\n\n _proto.getChildren = function getChildren() {\n return [];\n };\n\n return Animated;\n}();\n\nvar getValues = function getValues(object) {\n return Object.keys(object).map(function (k) {\n return object[k];\n });\n};\n\nvar AnimatedWithChildren =\n/*#__PURE__*/\nfunction (_Animated) {\n _inheritsLoose(AnimatedWithChildren, _Animated);\n\n function AnimatedWithChildren() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Animated.call.apply(_Animated, [this].concat(args)) || this;\n _this.children = [];\n\n _this.getChildren = function () {\n return _this.children;\n };\n\n _this.getPayload = function (index) {\n if (index === void 0) {\n index = undefined;\n }\n\n return index !== void 0 && _this.payload ? _this.payload[index] : _this.payload || _assertThisInitialized(_this);\n };\n\n return _this;\n }\n\n var _proto = AnimatedWithChildren.prototype;\n\n _proto.addChild = function addChild(child) {\n if (this.children.length === 0) this.attach();\n this.children.push(child);\n };\n\n _proto.removeChild = function removeChild(child) {\n var index = this.children.indexOf(child);\n this.children.splice(index, 1);\n if (this.children.length === 0) this.detach();\n };\n\n return AnimatedWithChildren;\n}(Animated);\nvar AnimatedArrayWithChildren =\n/*#__PURE__*/\nfunction (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedArrayWithChildren, _AnimatedWithChildren);\n\n function AnimatedArrayWithChildren() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _AnimatedWithChildren.call.apply(_AnimatedWithChildren, [this].concat(args)) || this;\n _this2.payload = [];\n\n _this2.getAnimatedValue = function () {\n return _this2.getValue();\n };\n\n _this2.attach = function () {\n return _this2.payload.forEach(function (p) {\n return p instanceof Animated && p.addChild(_assertThisInitialized(_this2));\n });\n };\n\n _this2.detach = function () {\n return _this2.payload.forEach(function (p) {\n return p instanceof Animated && p.removeChild(_assertThisInitialized(_this2));\n });\n };\n\n return _this2;\n }\n\n return AnimatedArrayWithChildren;\n}(AnimatedWithChildren);\nvar AnimatedObjectWithChildren =\n/*#__PURE__*/\nfunction (_AnimatedWithChildren2) {\n _inheritsLoose(AnimatedObjectWithChildren, _AnimatedWithChildren2);\n\n function AnimatedObjectWithChildren() {\n var _this3;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n _this3 = _AnimatedWithChildren2.call.apply(_AnimatedWithChildren2, [this].concat(args)) || this;\n _this3.payload = {};\n\n _this3.getAnimatedValue = function () {\n return _this3.getValue(true);\n };\n\n _this3.attach = function () {\n return getValues(_this3.payload).forEach(function (s) {\n return s instanceof Animated && s.addChild(_assertThisInitialized(_this3));\n });\n };\n\n _this3.detach = function () {\n return getValues(_this3.payload).forEach(function (s) {\n return s instanceof Animated && s.removeChild(_assertThisInitialized(_this3));\n });\n };\n\n return _this3;\n }\n\n var _proto2 = AnimatedObjectWithChildren.prototype;\n\n _proto2.getValue = function getValue(animated) {\n if (animated === void 0) {\n animated = false;\n }\n\n var payload = {};\n\n for (var key in this.payload) {\n var value = this.payload[key];\n if (animated && !(value instanceof Animated)) continue;\n payload[key] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value;\n }\n\n return payload;\n };\n\n return AnimatedObjectWithChildren;\n}(AnimatedWithChildren);\n\nvar Interpolation =\n/*#__PURE__*/\nfunction () {\n function Interpolation() {}\n\n // Default config = config, args\n // Short config = range, output, extrapolate\n Interpolation.create = function create(config, output, extra) {\n if (typeof config === 'function') return config;else if (interpolation && config.output && typeof config.output[0] === 'string') return interpolation(config);else if (Array.isArray(config)) return Interpolation.create({\n range: config,\n output: output,\n extrapolate: extra || 'extend'\n });\n var outputRange = config.output;\n var inputRange = config.range || [0, 1];\n\n var easing = config.easing || function (t) {\n return t;\n };\n\n var extrapolateLeft = 'extend';\n var map = config.map;\n if (config.extrapolateLeft !== undefined) extrapolateLeft = config.extrapolateLeft;else if (config.extrapolate !== undefined) extrapolateLeft = config.extrapolate;\n var extrapolateRight = 'extend';\n if (config.extrapolateRight !== undefined) extrapolateRight = config.extrapolateRight;else if (config.extrapolate !== undefined) extrapolateRight = config.extrapolate;\n return function (input) {\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, map);\n };\n };\n\n return Interpolation;\n}();\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n var result = map ? map(input) : input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; // Input Range\n\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing\n\n result = easing(result); // Output Range\n\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) break;\n }\n\n return i - 1;\n}\n\nvar AnimatedInterpolation =\n/*#__PURE__*/\nfunction (_AnimatedArrayWithChi) {\n _inheritsLoose(AnimatedInterpolation, _AnimatedArrayWithChi);\n\n function AnimatedInterpolation(parents, _config, _arg) {\n var _this;\n\n _this = _AnimatedArrayWithChi.call(this) || this;\n\n _this.getValue = function () {\n var _this2;\n\n return (_this2 = _this).calc.apply(_this2, _this.payload.map(function (value) {\n return value.getValue();\n }));\n };\n\n _this.updateConfig = function (config, arg) {\n return _this.calc = Interpolation.create(config, arg);\n };\n\n _this.interpolate = function (config, arg) {\n return new AnimatedInterpolation(_assertThisInitialized(_this), config, arg);\n };\n\n _this.payload = // AnimatedArrays should unfold, except AnimatedInterpolation which is taken as is\n parents instanceof AnimatedArrayWithChildren && !parents.updateConfig ? parents.payload : Array.isArray(parents) ? parents : [parents];\n _this.calc = Interpolation.create(_config, _arg);\n return _this;\n }\n\n return AnimatedInterpolation;\n}(AnimatedArrayWithChildren);\nvar interpolate$1 = function interpolate(parents, config, arg) {\n return parents && new AnimatedInterpolation(parents, config, arg);\n};\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\n\nfunction findAnimatedStyles(node, styles) {\n if (typeof node.update === 'function') styles.add(node);else node.getChildren().forEach(function (child) {\n return findAnimatedStyles(child, styles);\n });\n}\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n */\n\n\nvar AnimatedValue =\n/*#__PURE__*/\nfunction (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValue, _AnimatedWithChildren);\n\n function AnimatedValue(_value) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n\n _this.setValue = function (value, flush) {\n if (flush === void 0) {\n flush = true;\n }\n\n _this.value = value;\n if (flush) _this.flush();\n };\n\n _this.getValue = function () {\n return _this.value;\n };\n\n _this.updateStyles = function () {\n return findAnimatedStyles(_assertThisInitialized(_this), _this.animatedStyles);\n };\n\n _this.updateValue = function (value) {\n return _this.flush(_this.value = value);\n };\n\n _this.interpolate = function (config, arg) {\n return new AnimatedInterpolation(_assertThisInitialized(_this), config, arg);\n };\n\n _this.value = _value;\n _this.animatedStyles = new Set();\n _this.done = false;\n _this.startPosition = _value;\n _this.lastPosition = _value;\n _this.lastVelocity = undefined;\n _this.lastTime = undefined;\n _this.controller = undefined;\n return _this;\n }\n\n var _proto = AnimatedValue.prototype;\n\n _proto.flush = function flush() {\n if (this.animatedStyles.size === 0) this.updateStyles();\n this.animatedStyles.forEach(function (animatedStyle) {\n return animatedStyle.update();\n });\n };\n\n _proto.prepare = function prepare(controller) {\n // Values stay loyal to their original controller, this is also a way to\n // detect trailing values originating from a foreign controller\n if (this.controller === undefined) this.controller = controller;\n\n if (this.controller === controller) {\n this.startPosition = this.value;\n this.lastPosition = this.value;\n this.lastVelocity = controller.isActive ? this.lastVelocity : undefined;\n this.lastTime = controller.isActive ? this.lastTime : undefined;\n this.done = false;\n this.animatedStyles.clear();\n }\n };\n\n return AnimatedValue;\n}(AnimatedWithChildren);\n\nvar AnimatedArray =\n/*#__PURE__*/\nfunction (_AnimatedArrayWithChi) {\n _inheritsLoose(AnimatedArray, _AnimatedArrayWithChi);\n\n function AnimatedArray(array) {\n var _this;\n\n _this = _AnimatedArrayWithChi.call(this) || this;\n\n _this.setValue = function (value, flush) {\n if (flush === void 0) {\n flush = true;\n }\n\n if (Array.isArray(value)) {\n if (value.length === _this.payload.length) value.forEach(function (v, i) {\n return _this.payload[i].setValue(v, flush);\n });\n } else _this.payload.forEach(function (v, i) {\n return _this.payload[i].setValue(value, flush);\n });\n };\n\n _this.getValue = function () {\n return _this.payload.map(function (v) {\n return v.getValue();\n });\n };\n\n _this.interpolate = function (config, arg) {\n return new AnimatedInterpolation(_assertThisInitialized(_this), config, arg);\n };\n\n _this.payload = array.map(function (n) {\n return new AnimatedValue(n);\n });\n return _this;\n }\n\n return AnimatedArray;\n}(AnimatedArrayWithChildren);\n\nvar active = false;\nvar controllers = new Set();\n\nvar frameLoop = function frameLoop() {\n var time = now();\n\n for (var _iterator = controllers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var controller = _ref;\n var isDone = true;\n var noChange = true;\n\n for (var configIdx = 0; configIdx < controller.configs.length; configIdx++) {\n var config = controller.configs[configIdx];\n var endOfAnimation = void 0,\n lastTime = void 0;\n\n for (var valIdx = 0; valIdx < config.animatedValues.length; valIdx++) {\n var animation = config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude\n\n if (animation.done) continue;\n var from = config.fromValues[valIdx];\n var to = config.toValues[valIdx];\n var position = animation.lastPosition;\n var isAnimated = to instanceof Animated;\n\n var _velocity = Array.isArray(config.initialVelocity) ? config.initialVelocity[valIdx] : config.initialVelocity;\n\n if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state\n\n if (config.immediate || !isAnimated && !config.decay && from === to) {\n animation.updateValue(to);\n animation.done = true;\n continue;\n } // Doing delay here instead of setTimeout is one async worry less\n\n\n if (config.delay && time - controller.startTime < config.delay) {\n isDone = false;\n continue;\n } // Flag change\n\n\n noChange = false; // Break animation when string values are involved\n\n if (typeof from === 'string' || typeof to === 'string') {\n animation.updateValue(to);\n animation.done = true;\n continue;\n }\n\n if (config.duration !== void 0) {\n /** Duration easing */\n position = from + config.easing((time - controller.startTime - config.delay) / config.duration) * (to - from);\n endOfAnimation = time >= controller.startTime + config.delay + config.duration;\n } else if (config.decay) {\n /** Decay easing */\n position = from + _velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - controller.startTime)));\n endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1;\n if (endOfAnimation) to = position;\n } else {\n /** Spring easing */\n lastTime = animation.lastTime !== void 0 ? animation.lastTime : time;\n _velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : config.initialVelocity; // If we lost a lot of frames just jump to the end.\n\n if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/\n\n var numSteps = Math.floor(time - lastTime);\n\n for (var i = 0; i < numSteps; ++i) {\n var force = -config.tension * (position - to);\n var damping = -config.friction * _velocity;\n var acceleration = (force + damping) / config.mass;\n _velocity = _velocity + acceleration * 1 / 1000;\n position = position + _velocity * 1 / 1000;\n } // Conditions for stopping the spring animation\n\n\n var isOvershooting = config.clamp && config.tension !== 0 ? from < to ? position > to : position < to : false;\n var isVelocity = Math.abs(_velocity) <= config.precision;\n var isDisplacement = config.tension !== 0 ? Math.abs(to - position) <= config.precision : true;\n endOfAnimation = isOvershooting || isVelocity && isDisplacement;\n animation.lastVelocity = _velocity;\n animation.lastTime = time;\n } // Trails aren't done until their parents conclude\n\n\n if (isAnimated && !config.toValues[valIdx].done) endOfAnimation = false;\n\n if (endOfAnimation) {\n // Ensure that we end up with a round value\n if (animation.value !== to) position = to;\n animation.done = true;\n } else isDone = false;\n\n animation.updateValue(position);\n animation.lastPosition = position;\n } // Keep track of updated values only when necessary\n\n\n if (controller.props.onFrame || !controller.props.native) controller.animatedProps[config.name] = config.interpolation.getValue();\n } // Update callbacks in the end of the frame\n\n\n if (controller.props.onFrame || !controller.props.native) {\n if (!controller.props.native && controller.onUpdate) controller.onUpdate();\n if (controller.props.onFrame) controller.props.onFrame(controller.animatedProps);\n } // Either call onEnd or next frame\n\n\n if (isDone) {\n controllers.delete(controller);\n controller.debouncedOnEnd({\n finished: true,\n noChange: noChange\n });\n }\n } // Loop over as long as there are controllers ...\n\n\n if (controllers.size) requestFrame(frameLoop);else active = false;\n};\n\nvar addController = function addController(controller) {\n if (!controllers.has(controller)) {\n controllers.add(controller);\n if (!active) requestFrame(frameLoop);\n active = true;\n }\n};\n\nvar removeController = function removeController(controller) {\n if (controllers.has(controller)) {\n controllers.delete(controller);\n }\n};\n\nfunction withDefault(value, defaultValue) {\n return value === undefined || value === null ? defaultValue : value;\n}\nfunction toArray(a) {\n return a !== void 0 ? Array.isArray(a) ? a : [a] : [];\n}\nfunction shallowEqual(a, b) {\n if (typeof a !== typeof b) return false;\n if (typeof a === 'string' || typeof a === 'number') return a === b;\n var i;\n\n for (i in a) {\n if (!(i in b)) return false;\n }\n\n for (i in b) {\n if (a[i] !== b[i]) return false;\n }\n\n return i === void 0 ? a === b : true;\n}\nfunction callProp(obj) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return typeof obj === 'function' ? obj.apply(void 0, args) : obj;\n}\nfunction getValues$1(object) {\n return Object.keys(object).map(function (k) {\n return object[k];\n });\n}\nfunction getForwardProps(props) {\n var to = props.to,\n from = props.from,\n config = props.config,\n native = props.native,\n onStart = props.onStart,\n onRest = props.onRest,\n onFrame = props.onFrame,\n children = props.children,\n reset = props.reset,\n reverse = props.reverse,\n force = props.force,\n immediate = props.immediate,\n impl = props.impl,\n inject = props.inject,\n delay = props.delay,\n attach = props.attach,\n destroyed = props.destroyed,\n interpolateTo = props.interpolateTo,\n autoStart = props.autoStart,\n ref = props.ref,\n forward = _objectWithoutPropertiesLoose(props, [\"to\", \"from\", \"config\", \"native\", \"onStart\", \"onRest\", \"onFrame\", \"children\", \"reset\", \"reverse\", \"force\", \"immediate\", \"impl\", \"inject\", \"delay\", \"attach\", \"destroyed\", \"interpolateTo\", \"autoStart\", \"ref\"]);\n\n return forward;\n}\nfunction interpolateTo(props) {\n var forward = getForwardProps(props);\n var rest = Object.keys(props).reduce(function (a, k) {\n var _extends2;\n\n return forward[k] !== void 0 ? a : _extends({}, a, (_extends2 = {}, _extends2[k] = props[k], _extends2));\n }, {});\n return _extends({\n to: forward\n }, rest);\n}\nfunction convertToAnimatedValue(acc, _ref) {\n var _extends3;\n\n var name = _ref[0],\n value = _ref[1];\n return _extends({}, acc, (_extends3 = {}, _extends3[name] = new (Array.isArray(value) ? AnimatedArray : AnimatedValue)(value), _extends3));\n}\nfunction convertValues(props) {\n var from = props.from,\n to = props.to,\n native = props.native;\n var allProps = Object.entries(_extends({}, from, to));\n return native ? allProps.reduce(convertToAnimatedValue, {}) : _extends({}, from, to);\n}\nfunction handleRef(ref, forward) {\n if (forward) {\n // If it's a function, assume it's a ref callback\n if (typeof forward === 'function') forward(ref);else if (typeof forward === 'object') {\n // If it's an object and has a 'current' property, assume it's a ref object\n forward.current = ref;\n }\n }\n\n return ref;\n}\n\nvar Controller =\n/*#__PURE__*/\nfunction () {\n function Controller(props, config) {\n var _this = this;\n\n if (config === void 0) {\n config = {\n native: true,\n interpolateTo: true,\n autoStart: true\n };\n }\n\n this.getValues = function () {\n return _this.props.native ? _this.interpolations : _this.animatedProps;\n };\n\n this.dependents = new Set();\n this.isActive = false;\n this.hasChanged = false;\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.animatedProps = {};\n this.configs = [];\n this.frame = undefined;\n this.startTime = undefined;\n this.lastTime = undefined;\n this.update(_extends({}, props, config));\n }\n\n var _proto = Controller.prototype;\n\n _proto.update = function update(props) {\n var _this2 = this;\n\n this.props = _extends({}, this.props, props);\n\n var _ref = this.props.interpolateTo ? interpolateTo(this.props) : this.props,\n _ref$from = _ref.from,\n from = _ref$from === void 0 ? {} : _ref$from,\n _ref$to = _ref.to,\n to = _ref$to === void 0 ? {} : _ref$to,\n _ref$config = _ref.config,\n config = _ref$config === void 0 ? {} : _ref$config,\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 0 : _ref$delay,\n reverse = _ref.reverse,\n attach = _ref.attach,\n reset = _ref.reset,\n immediate = _ref.immediate,\n autoStart = _ref.autoStart,\n ref = _ref.ref; // Reverse values when requested\n\n\n if (reverse) {\n var _ref2 = [to, from];\n from = _ref2[0];\n to = _ref2[1];\n }\n\n this.hasChanged = false; // Attachment handling, trailed springs can \"attach\" themselves to a previous spring\n\n var target = attach && attach(this); // Reset merged props when necessary\n\n var extra = reset ? {} : this.merged; // This will collect all props that were ever set\n\n this.merged = _extends({}, from, extra, to); // Reduces input { name: value } pairs into animated values\n\n this.animations = Object.entries(this.merged).reduce(function (acc, _ref3, i) {\n var name = _ref3[0],\n value = _ref3[1];\n // Issue cached entries, except on reset\n var entry = !reset && acc[name] || {}; // Figure out what the value is supposed to be\n\n var isNumber = typeof value === 'number';\n var isString = typeof value === 'string' && !value.startsWith('#') && !/\\d/.test(value) && !colorNames[value];\n var isArray = !isNumber && !isString && Array.isArray(value);\n var fromValue = from[name] !== undefined ? from[name] : value;\n var toValue = isNumber || isArray ? value : isString ? value : 1;\n var toConfig = callProp(config, name);\n if (target) toValue = target.animations[name].parent; // Detect changes, animated values will be checked in the raf-loop\n\n if (toConfig.decay !== void 0 || !shallowEqual(entry.changes, value)) {\n var _extends2;\n\n _this2.hasChanged = true;\n var parent, interpolation$$1;\n if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedArray(fromValue);else {\n var prev = entry.interpolation && entry.interpolation.calc(entry.parent.value);\n\n if (entry.parent) {\n parent = entry.parent;\n parent.setValue(0, false);\n } else parent = new AnimatedValue(0);\n\n var range = {\n output: [prev !== void 0 ? prev : fromValue, value]\n };\n\n if (entry.interpolation) {\n interpolation$$1 = entry.interpolation;\n entry.interpolation.updateConfig(range);\n } else interpolation$$1 = parent.interpolate(range);\n } // Set immediate values\n\n if (callProp(immediate, name)) parent.setValue(value, false); // Reset animated values\n\n var animatedValues = toArray(parent.getPayload());\n animatedValues.forEach(function (value) {\n return value.prepare(_this2);\n });\n return _extends({}, acc, (_extends2 = {}, _extends2[name] = _extends({}, entry, {\n name: name,\n parent: parent,\n interpolation: interpolation$$1,\n animatedValues: animatedValues,\n changes: value,\n fromValues: toArray(parent.getValue()),\n toValues: toArray(target ? toValue.getPayload() : toValue),\n immediate: callProp(immediate, name),\n delay: withDefault(toConfig.delay, delay || 0),\n initialVelocity: withDefault(toConfig.velocity, 0),\n clamp: withDefault(toConfig.clamp, false),\n precision: withDefault(toConfig.precision, 0.01),\n tension: withDefault(toConfig.tension, 170),\n friction: withDefault(toConfig.friction, 26),\n mass: withDefault(toConfig.mass, 1),\n duration: toConfig.duration,\n easing: withDefault(toConfig.easing, function (t) {\n return t;\n }),\n decay: toConfig.decay\n }), _extends2));\n } else return acc;\n }, this.animations);\n\n if (this.hasChanged) {\n this.configs = getValues$1(this.animations);\n this.animatedProps = {};\n this.interpolations = {};\n\n for (var key in this.animations) {\n this.interpolations[key] = this.animations[key].interpolation;\n this.animatedProps[key] = this.animations[key].interpolation.getValue();\n }\n } // TODO: clean up ref in controller\n\n\n for (var _len = arguments.length, start = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n start[_key - 1] = arguments[_key];\n }\n\n if (!ref && (autoStart || start.length)) this.start.apply(this, start);\n var onEnd = start[0],\n onUpdate = start[1];\n this.onEnd = typeof onEnd === 'function' && onEnd;\n this.onUpdate = onUpdate;\n return this.getValues();\n };\n\n _proto.start = function start(onEnd, onUpdate) {\n var _this3 = this;\n\n this.startTime = now();\n if (this.isActive) this.stop();\n this.isActive = true;\n this.onEnd = typeof onEnd === 'function' && onEnd;\n this.onUpdate = onUpdate;\n if (this.props.onStart) this.props.onStart();\n addController(this);\n return new Promise(function (res) {\n return _this3.resolve = res;\n });\n };\n\n _proto.stop = function stop(finished) {\n if (finished === void 0) {\n finished = false;\n }\n\n // Reset collected changes since the animation has been stopped cold turkey\n if (finished) getValues$1(this.animations).forEach(function (a) {\n return a.changes = undefined;\n });\n this.debouncedOnEnd({\n finished: finished\n });\n };\n\n _proto.destroy = function destroy() {\n removeController(this);\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.animatedProps = {};\n this.configs = [];\n };\n\n _proto.debouncedOnEnd = function debouncedOnEnd(result) {\n removeController(this);\n this.isActive = false;\n var onEnd = this.onEnd;\n this.onEnd = null;\n if (onEnd) onEnd(result);\n if (this.resolve) this.resolve();\n this.resolve = null;\n };\n\n return Controller;\n}();\n\nvar AnimatedProps =\n/*#__PURE__*/\nfunction (_AnimatedObjectWithCh) {\n _inheritsLoose(AnimatedProps, _AnimatedObjectWithCh);\n\n function AnimatedProps(props, callback) {\n var _this;\n\n _this = _AnimatedObjectWithCh.call(this) || this;\n if (props.style) props = _extends({}, props, {\n style: createAnimatedStyle(props.style)\n });\n _this.payload = props;\n _this.update = callback;\n\n _this.attach();\n\n return _this;\n }\n\n return AnimatedProps;\n}(AnimatedObjectWithChildren);\n\nfunction createAnimatedComponent(Component) {\n var AnimatedComponent =\n /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(AnimatedComponent, _React$Component);\n\n function AnimatedComponent(props) {\n var _this;\n\n _this = _React$Component.call(this) || this;\n\n _this.callback = function () {\n if (_this.node) {\n var didUpdate = applyAnimatedValues.fn(_this.node, _this.propsAnimated.getAnimatedValue(), _assertThisInitialized(_this));\n if (didUpdate === false) _this.forceUpdate();\n }\n };\n\n _this.attachProps(props);\n\n return _this;\n }\n\n var _proto = AnimatedComponent.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.propsAnimated && this.propsAnimated.detach();\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n var didUpdate = applyAnimatedValues.fn(this.node, props, this);\n if (didUpdate === false) this.forceUpdate();\n } // The system is best designed when setNativeProps is implemented. It is\n // able to avoid re-rendering and directly set the attributes that\n // changed. However, setNativeProps can only be implemented on leaf\n // native components. If you want to animate a composite component, you\n // need to re-render it. In this case, we have a fallback that uses\n // forceUpdate.\n ;\n\n _proto.attachProps = function attachProps(_ref) {\n var forwardRef = _ref.forwardRef,\n nextProps = _objectWithoutPropertiesLoose(_ref, [\"forwardRef\"]);\n\n var oldPropsAnimated = this.propsAnimated;\n this.propsAnimated = new AnimatedProps(nextProps, this.callback); // When you call detach, it removes the element from the parent list\n // of children. If it goes to 0, then the parent also detaches itself\n // and so on.\n // An optimization is to attach the new elements and THEN detach the old\n // ones instead of detaching and THEN attaching.\n // This way the intermediate state isn't to go to 0 and trigger\n // this expensive recursive detaching to then re-attach everything on\n // the very next operation.\n\n oldPropsAnimated && oldPropsAnimated.detach();\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n var style = props.style,\n nextProps = _objectWithoutPropertiesLoose(props, [\"style\"]);\n\n var _this$props = this.props,\n currentStyle = _this$props.style,\n currentProps = _objectWithoutPropertiesLoose(_this$props, [\"style\"]);\n\n if (!shallowEqual(currentProps, nextProps) || !shallowEqual(currentStyle, style)) {\n this.attachProps(props);\n return true;\n }\n\n return false;\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$propsAnimated$g = this.propsAnimated.getValue(),\n scrollTop = _this$propsAnimated$g.scrollTop,\n scrollLeft = _this$propsAnimated$g.scrollLeft,\n animatedProps = _objectWithoutPropertiesLoose(_this$propsAnimated$g, [\"scrollTop\", \"scrollLeft\"]);\n\n return React__default.createElement(Component, _extends({}, animatedProps, {\n ref: function ref(node) {\n return _this2.node = handleRef(node, _this2.props.forwardRef);\n }\n }));\n };\n\n return AnimatedComponent;\n }(React__default.Component);\n\n return React__default.forwardRef(function (props, ref) {\n return React__default.createElement(AnimatedComponent, _extends({}, props, {\n forwardRef: ref\n }));\n });\n}\n\nvar config = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\n\nvar AnimatedStyle =\n/*#__PURE__*/\nfunction (_AnimatedObjectWithCh) {\n _inheritsLoose(AnimatedStyle, _AnimatedObjectWithCh);\n\n function AnimatedStyle(style) {\n var _this;\n\n _this = _AnimatedObjectWithCh.call(this) || this;\n style = style || {};\n if (style.transform && !(style.transform instanceof Animated)) style = applyAnimatedValues.transform(style);\n _this.payload = style;\n return _this;\n }\n\n return AnimatedStyle;\n}(AnimatedObjectWithChildren);\n\nvar Spring =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Spring, _React$Component);\n\n function Spring() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n lastProps: {\n from: {},\n to: {}\n },\n propsChanged: false,\n internal: false\n };\n _this.controller = new Controller(null, null);\n _this.didUpdate = false;\n _this.didInject = false;\n _this.finished = true;\n\n _this.start = function () {\n _this.finished = false;\n var wasMounted = _this.mounted;\n\n _this.controller.start(function (props) {\n return _this.finish(_extends({}, props, {\n wasMounted: wasMounted\n }));\n }, _this.update);\n };\n\n _this.stop = function () {\n return _this.controller.stop(true);\n };\n\n _this.update = function () {\n return _this.mounted && _this.setState({\n internal: true\n });\n };\n\n _this.finish = function (_ref) {\n var finished = _ref.finished,\n noChange = _ref.noChange,\n wasMounted = _ref.wasMounted;\n _this.finished = true;\n\n if (_this.mounted && finished) {\n // Only call onRest if either we *were* mounted, or when there were changes\n if (_this.props.onRest && (wasMounted || !noChange)) _this.props.onRest(_this.controller.merged); // Restore end-state\n\n if (_this.mounted && _this.didInject) {\n _this.afterInject = convertValues(_this.props);\n\n _this.setState({\n internal: true\n });\n } // If we have an inject or values to apply after the animation we ping here\n\n\n if (_this.mounted && (_this.didInject || _this.props.after)) _this.setState({\n internal: true\n });\n _this.didInject = false;\n }\n };\n\n return _this;\n }\n\n var _proto = Spring.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n // componentDidUpdate isn't called on mount, we call it here to start animating\n this.componentDidUpdate();\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Stop all ongoing animtions\n this.mounted = false;\n this.stop();\n };\n\n Spring.getDerivedStateFromProps = function getDerivedStateFromProps(props, _ref2) {\n var internal = _ref2.internal,\n lastProps = _ref2.lastProps;\n // The following is a test against props that could alter the animation\n var from = props.from,\n to = props.to,\n reset = props.reset,\n force = props.force;\n var propsChanged = !shallowEqual(to, lastProps.to) || !shallowEqual(from, lastProps.from) || reset && !internal || force && !internal;\n return {\n propsChanged: propsChanged,\n lastProps: props,\n internal: false\n };\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var children = this.props.children;\n var propsChanged = this.state.propsChanged; // Inject phase -----------------------------------------------------------\n // Handle injected frames, for instance targets/web/fix-auto\n // An inject will return an intermediary React node which measures itself out\n // .. and returns a callback when the values sought after are ready, usually \"auto\".\n\n if (this.props.inject && propsChanged && !this.injectProps) {\n var frame = this.props.inject(this.props, function (injectProps) {\n // The inject frame has rendered, now let's update animations...\n _this2.injectProps = injectProps;\n\n _this2.setState({\n internal: true\n });\n }); // Render out injected frame\n\n if (frame) return frame;\n } // Update phase -----------------------------------------------------------\n\n\n if (this.injectProps || propsChanged) {\n // We can potentially cause setState, but we're inside render, the flag prevents that\n this.didInject = false; // Update animations, this turns from/to props into AnimatedValues\n // An update can occur on injected props, or when own-props have changed.\n\n if (this.injectProps) {\n this.controller.update(this.injectProps); // didInject is needed, because there will be a 3rd stage, where the original values\n // .. will be restored after the animation is finished. When someone animates towards\n // .. \"auto\", the end-result should be \"auto\", not \"1999px\", which would block nested\n // .. height/width changes.\n\n this.didInject = true;\n } else if (propsChanged) this.controller.update(this.props); // Flag an update that occured, componentDidUpdate will start the animation later on\n\n\n this.didUpdate = true;\n this.afterInject = undefined;\n this.injectProps = undefined;\n } // Render phase -----------------------------------------------------------\n // Render out raw values or AnimatedValues depending on \"native\"\n\n\n var values = _extends({}, this.controller.getValues(), this.afterInject);\n\n if (this.finished) values = _extends({}, values, this.props.after);\n return Object.keys(values).length ? children(values) : null;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n // The animation has to start *after* render, since at that point the scene\n // .. graph should be established, so we do it here. Unfortunatelly, non-native\n // .. animations as well as \"auto\"-injects call forceUpdate, so it's causing a loop.\n // .. didUpdate prevents that as it gets set only on prop changes.\n if (this.didUpdate) this.start();\n this.didUpdate = false;\n };\n\n return Spring;\n}(React__default.Component);\n\nSpring.defaultProps = {\n from: {},\n to: {},\n config: config.default,\n native: false,\n immediate: false,\n reset: false,\n force: false,\n inject: bugfixes\n};\n\nvar Trail =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inheritsLoose(Trail, _React$PureComponent);\n\n function Trail() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n _this.first = true;\n _this.instances = new Set();\n\n _this.hook = function (instance, index, length, reverse) {\n // Add instance to set\n _this.instances.add(instance); // Return undefined on the first index and from then on the previous instance\n\n\n if (reverse ? index === length - 1 : index === 0) return undefined;else return Array.from(_this.instances)[reverse ? index + 1 : index - 1];\n };\n\n return _this;\n }\n\n var _proto = Trail.prototype;\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n items = _this$props.items,\n _children = _this$props.children,\n _this$props$from = _this$props.from,\n from = _this$props$from === void 0 ? {} : _this$props$from,\n initial = _this$props.initial,\n reverse = _this$props.reverse,\n keys = _this$props.keys,\n delay = _this$props.delay,\n onRest = _this$props.onRest,\n props = _objectWithoutPropertiesLoose(_this$props, [\"items\", \"children\", \"from\", \"initial\", \"reverse\", \"keys\", \"delay\", \"onRest\"]);\n\n var array = toArray(items);\n return toArray(array).map(function (item, i) {\n return React__default.createElement(Spring, _extends({\n onRest: i === 0 ? onRest : null,\n key: typeof keys === 'function' ? keys(item) : toArray(keys)[i],\n from: _this2.first && initial !== void 0 ? initial || {} : from\n }, props, {\n delay: i === 0 && delay || undefined,\n attach: function attach(instance) {\n return _this2.hook(instance, i, array.length, reverse);\n },\n children: function children(props) {\n var child = _children(item, i);\n\n return child ? child(props) : null;\n }\n }));\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n this.first = false;\n if (prevProps.items !== this.props.items) this.instances.clear();\n };\n\n return Trail;\n}(React__default.PureComponent);\n\nTrail.defaultProps = {\n keys: function keys(item) {\n return item;\n }\n};\n\nvar DEFAULT = '__default';\n\nvar KeyframesImpl =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inheritsLoose(KeyframesImpl, _React$PureComponent);\n\n function KeyframesImpl() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n _this.guid = 0;\n _this.state = {\n props: {},\n resolve: function resolve() {\n return null;\n },\n last: true,\n index: 0\n };\n\n _this.next = function (props, last, index) {\n if (last === void 0) {\n last = true;\n }\n\n if (index === void 0) {\n index = 0;\n }\n\n _this.running = true;\n return new Promise(function (resolve) {\n _this.mounted && _this.setState(function (state) {\n return {\n props: props,\n resolve: resolve,\n last: last,\n index: index\n };\n }, function () {\n return _this.running = false;\n });\n });\n };\n\n return _this;\n }\n\n var _proto = KeyframesImpl.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.componentDidUpdate({});\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(previous) {\n var _this2 = this;\n\n var _this$props = this.props,\n states = _this$props.states,\n f = _this$props.filter,\n state = _this$props.state;\n\n if (previous.state !== this.props.state || this.props.reset && !this.running || !shallowEqual(states[state], previous.states[previous.state])) {\n if (states && state && states[state]) {\n (function () {\n var localId = ++_this2.guid;\n var slots = states[state];\n\n if (slots) {\n if (Array.isArray(slots)) {\n var q = Promise.resolve();\n\n var _loop = function _loop(i) {\n var index = i;\n var slot = slots[index];\n var last = index === slots.length - 1;\n q = q.then(function () {\n return localId === _this2.guid && _this2.next(f(slot), last, index);\n });\n };\n\n for (var i = 0; i < slots.length; i++) {\n _loop(i);\n }\n } else if (typeof slots === 'function') {\n var index = 0;\n slots( // next\n function (props, last) {\n if (last === void 0) {\n last = false;\n }\n\n return localId === _this2.guid && _this2.next(f(props), last, index++);\n }, // cancel\n function () {\n return requestFrame(function () {\n return _this2.instance && _this2.instance.stop();\n });\n }, // ownprops\n _this2.props);\n } else {\n _this2.next(f(states[state]));\n }\n }\n })();\n }\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$state = this.state,\n props = _this$state.props,\n resolve = _this$state.resolve,\n last = _this$state.last,\n index = _this$state.index;\n if (!props || Object.keys(props).length === 0) return null;\n\n var _this$props2 = this.props,\n state = _this$props2.state,\n filter = _this$props2.filter,\n states = _this$props2.states,\n config = _this$props2.config,\n Component = _this$props2.primitive,\n _onRest = _this$props2.onRest,\n forwardRef = _this$props2.forwardRef,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"state\", \"filter\", \"states\", \"config\", \"primitive\", \"onRest\", \"forwardRef\"]); // Arrayed configs need an index to process\n\n\n if (Array.isArray(config)) config = config[index];\n return React__default.createElement(Component, _extends({\n ref: function ref(_ref) {\n return _this3.instance = handleRef(_ref, forwardRef);\n },\n config: config\n }, rest, props, {\n onRest: function onRest(args) {\n resolve(args);\n if (_onRest && last) _onRest(args);\n }\n }));\n };\n\n return KeyframesImpl;\n}(React__default.PureComponent);\n\nKeyframesImpl.defaultProps = {\n state: DEFAULT\n};\nvar Keyframes = React__default.forwardRef(function (props, ref) {\n return React__default.createElement(KeyframesImpl, _extends({}, props, {\n forwardRef: ref\n }));\n});\n\nKeyframes.create = function (primitive) {\n return function (states, filter) {\n var _states;\n\n if (filter === void 0) {\n filter = function filter(states) {\n return states;\n };\n }\n\n if (typeof states === 'function' || Array.isArray(states)) states = (_states = {}, _states[DEFAULT] = states, _states);\n return function (props) {\n return React__default.createElement(KeyframesImpl, _extends({\n primitive: primitive,\n states: states,\n filter: filter\n }, props));\n };\n };\n};\n\nKeyframes.Spring = function (states) {\n return Keyframes.create(Spring)(states, interpolateTo);\n};\n\nKeyframes.Trail = function (states) {\n return Keyframes.create(Trail)(states, interpolateTo);\n};\n\nvar guid = 0;\n\nvar get = function get(props) {\n var items = props.items,\n keys = props.keys,\n rest = _objectWithoutPropertiesLoose(props, [\"items\", \"keys\"]);\n\n items = toArray(items !== void 0 ? items : null);\n keys = typeof keys === 'function' ? items.map(keys) : toArray(keys); // Make sure numeric keys are interpreted as Strings (5 !== \"5\")\n\n return _extends({\n items: items,\n keys: keys.map(function (key) {\n return String(key);\n })\n }, rest);\n};\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inheritsLoose(Transition, _React$PureComponent);\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n function Transition(prevProps) {\n var _this;\n\n _this = _React$PureComponent.call(this, prevProps) || this;\n\n _this.destroyItem = function (item, key, state) {\n return function (values) {\n var _this$props = _this.props,\n onRest = _this$props.onRest,\n onDestroyed = _this$props.onDestroyed;\n\n if (_this.mounted) {\n onDestroyed && onDestroyed(item);\n\n _this.setState(function (_ref) {\n var deleted = _ref.deleted;\n return {\n deleted: deleted.filter(function (t) {\n return t.key !== key;\n })\n };\n });\n\n onRest && onRest(item, state, values);\n }\n };\n };\n\n _this.state = {\n first: true,\n transitions: [],\n current: {},\n deleted: [],\n prevProps: prevProps\n };\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(props, _ref2) {\n var first = _ref2.first,\n prevProps = _ref2.prevProps,\n state = _objectWithoutPropertiesLoose(_ref2, [\"first\", \"prevProps\"]);\n\n var _get = get(props),\n items = _get.items,\n keys = _get.keys,\n initial = _get.initial,\n from = _get.from,\n enter = _get.enter,\n leave = _get.leave,\n update = _get.update,\n _get$trail = _get.trail,\n trail = _get$trail === void 0 ? 0 : _get$trail,\n unique = _get.unique,\n config = _get.config;\n\n var _get2 = get(prevProps),\n _keys = _get2.keys,\n _items = _get2.items;\n\n var current = _extends({}, state.current);\n\n var deleted = [].concat(state.deleted); // Compare next keys with current keys\n\n var currentKeys = Object.keys(current);\n var currentSet = new Set(currentKeys);\n var nextSet = new Set(keys);\n var added = keys.filter(function (item) {\n return !currentSet.has(item);\n });\n var removed = state.transitions.filter(function (item) {\n return !item.destroyed && !nextSet.has(item.originalKey);\n }).map(function (i) {\n return i.originalKey;\n });\n var updated = keys.filter(function (item) {\n return currentSet.has(item);\n });\n var delay = 0;\n added.forEach(function (key) {\n // In unique mode, remove fading out transitions if their key comes in again\n if (unique && deleted.find(function (d) {\n return d.originalKey === key;\n })) deleted = deleted.filter(function (t) {\n return t.originalKey !== key;\n });\n var keyIndex = keys.indexOf(key);\n var item = items[keyIndex];\n var state = 'enter';\n current[key] = {\n state: state,\n originalKey: key,\n key: unique ? String(key) : guid++,\n item: item,\n trail: delay = delay + trail,\n config: callProp(config, item, state),\n from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item),\n to: callProp(enter, item)\n };\n });\n removed.forEach(function (key) {\n var keyIndex = _keys.indexOf(key);\n\n var item = _items[keyIndex];\n var state = 'leave';\n deleted.push(_extends({}, current[key], {\n state: state,\n destroyed: true,\n left: _keys[Math.max(0, keyIndex - 1)],\n right: _keys[Math.min(_keys.length, keyIndex + 1)],\n trail: delay = delay + trail,\n config: callProp(config, item, state),\n to: callProp(leave, item)\n }));\n delete current[key];\n });\n updated.forEach(function (key) {\n var keyIndex = keys.indexOf(key);\n var item = items[keyIndex];\n var state = 'update';\n current[key] = _extends({}, current[key], {\n item: item,\n state: state,\n trail: delay = delay + trail,\n config: callProp(config, item, state),\n to: callProp(update, item)\n });\n }); // This tries to restore order for deleted items by finding their last known siblings\n\n var out = keys.map(function (key) {\n return current[key];\n });\n deleted.forEach(function (_ref3) {\n var left = _ref3.left,\n right = _ref3.right,\n transition = _objectWithoutPropertiesLoose(_ref3, [\"left\", \"right\"]);\n\n var pos; // Was it the element on the left, if yes, move there ...\n\n if ((pos = out.findIndex(function (t) {\n return t.originalKey === left;\n })) !== -1) pos += 1; // Or how about the element on the right ...\n\n if (pos === -1) pos = out.findIndex(function (t) {\n return t.originalKey === right;\n }); // Maybe we'll find it in the list of deleted items\n\n if (pos === -1) pos = deleted.findIndex(function (t) {\n return t.originalKey === left;\n }); // Checking right side as well\n\n if (pos === -1) pos = deleted.findIndex(function (t) {\n return t.originalKey === right;\n }); // And if nothing else helps, move it to the start ¯\\_(ツ)_/¯\n\n pos = Math.max(0, pos);\n out = [].concat(out.slice(0, pos), [transition], out.slice(pos));\n });\n return {\n first: first && added.length === 0,\n transitions: out,\n current: current,\n deleted: deleted,\n prevProps: props\n };\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n initial = _this$props2.initial,\n _this$props2$from = _this$props2.from,\n _this$props2$enter = _this$props2.enter,\n _this$props2$leave = _this$props2.leave,\n _this$props2$update = _this$props2.update,\n onDestroyed = _this$props2.onDestroyed,\n keys = _this$props2.keys,\n items = _this$props2.items,\n onFrame = _this$props2.onFrame,\n onRest = _this$props2.onRest,\n onStart = _this$props2.onStart,\n trail = _this$props2.trail,\n config = _this$props2.config,\n _children = _this$props2.children,\n unique = _this$props2.unique,\n reset = _this$props2.reset,\n extra = _objectWithoutPropertiesLoose(_this$props2, [\"initial\", \"from\", \"enter\", \"leave\", \"update\", \"onDestroyed\", \"keys\", \"items\", \"onFrame\", \"onRest\", \"onStart\", \"trail\", \"config\", \"children\", \"unique\", \"reset\"]);\n\n return this.state.transitions.map(function (_ref4, i) {\n var _ref5;\n\n var state = _ref4.state,\n key = _ref4.key,\n item = _ref4.item,\n from = _ref4.from,\n to = _ref4.to,\n trail = _ref4.trail,\n config = _ref4.config,\n destroyed = _ref4.destroyed;\n return React__default.createElement(Keyframes, _extends({\n reset: reset && state === 'enter',\n primitive: Spring,\n state: state,\n filter: interpolateTo,\n states: (_ref5 = {}, _ref5[state] = to, _ref5),\n key: key,\n onRest: destroyed ? _this2.destroyItem(item, key, state) : onRest && function (values) {\n return onRest(item, state, values);\n },\n onStart: onStart && function () {\n return onStart(item, state);\n },\n onFrame: onFrame && function (values) {\n return onFrame(item, state, values);\n },\n delay: trail,\n config: config\n }, extra, {\n from: from,\n children: function children(props) {\n var child = _children(item, state, i);\n\n return child ? child(props) : null;\n }\n }));\n });\n };\n\n return Transition;\n}(React__default.PureComponent);\n\nTransition.defaultProps = {\n keys: function keys(item) {\n return item;\n },\n unique: false,\n reset: false\n};\n\n// http://www.w3.org/TR/css3-color/#svg-color\nvar colors = {\n transparent: 0x00000000,\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\n// const INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction call() {\n return '\\\\(\\\\s*(' + Array.prototype.slice.call(arguments).join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nvar rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nvar hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nvar hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nvar hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex6 = /^#([0-9a-fA-F]{6})$/;\nvar hex8 = /^#([0-9a-fA-F]{8})$/;\n\n/*\nhttps://github.com/react-community/normalize-css-color\n\nBSD 3-Clause License\n\nCopyright (c) 2016, React Community\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n } // Ordered based on occurrences on Facebook codebase\n\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n if (colors.hasOwnProperty(color)) return colors[color];\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff) >>> // a\n 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4])) >>> // a\n 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16) >>> 0;\n } // https://drafts.csswg.org/css-color-4/#hex-notation\n\n\n if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = hex4.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | 0x000000ff) >>> // a\n 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | parse1(match[4])) >>> // a\n 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n var int = parseInt(str, 10);\n if (int < 0) return 0;\n if (int > 255) return 255;\n return int;\n}\n\nfunction parse360(str) {\n var int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n var num = parseFloat(str);\n if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n var int = parseFloat(str);\n if (int < 0) return 0;\n if (int > 100) return 1;\n return int / 100;\n}\n\nfunction colorToRgba(input) {\n var int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n var r = (int32Color & 0xff000000) >>> 24;\n var g = (int32Color & 0x00ff0000) >>> 16;\n var b = (int32Color & 0x0000ff00) >>> 8;\n var a = (int32Color & 0x000000ff) / 255;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n} // Problem: https://github.com/animatedjs/animated/pull/102\n// Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662\n\n\nvar stringShapeRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g; // Covers rgb, rgba, hsl, hsla\n// Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e\n\nvar colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi; // Covers color names (transparent, blue, etc.)\n\nvar colorNamesRegex = new RegExp(\"(\" + Object.keys(colors).join('|') + \")\", 'g');\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n * 0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows\n */\n\nfunction createInterpolation(config) {\n // Replace colors with rgba\n var outputRange = config.output.map(function (rangeValue) {\n return rangeValue.replace(colorRegex, colorToRgba);\n }).map(function (rangeValue) {\n return rangeValue.replace(colorNamesRegex, colorToRgba);\n }); // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n\n var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {\n return [];\n });\n outputRange.forEach(function (value) {\n value.match(stringShapeRegex).forEach(function (number, i) {\n return outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex).map(function (value, i) {\n return Interpolation.create(_extends({}, config, {\n output: outputRanges[i]\n }));\n });\n return function (input) {\n var i = 0;\n return outputRange[0] // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n .replace(stringShapeRegex, function () {\n return interpolations[i++](input);\n }) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n .replace(/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi, function (_, p1, p2, p3, p4) {\n return \"rgba(\" + Math.round(p1) + \", \" + Math.round(p2) + \", \" + Math.round(p3) + \", \" + p4 + \")\";\n });\n };\n}\n\nvar AnimatedTransform =\n/*#__PURE__*/\nfunction (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedTransform, _AnimatedWithChildren);\n\n function AnimatedTransform(transforms) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._transforms = transforms;\n return _this;\n }\n\n var _proto = AnimatedTransform.prototype;\n\n _proto.getValue = function getValue() {\n return this._transforms.map(function (transform) {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n result[key] = value instanceof Animated ? value.getValue() : value;\n }\n\n return result;\n });\n };\n\n _proto.getAnimatedValue = function getAnimatedValue() {\n return this._transforms.map(function (transform) {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n result[key] = value instanceof Animated ? value.getAnimatedValue() : value;\n }\n\n return result;\n });\n };\n\n _proto.attach = function attach() {\n var _this2 = this;\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof Animated) value.addChild(_this2);\n }\n });\n };\n\n _proto.detach = function detach() {\n var _this3 = this;\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof Animated) value.removeChild(_this3);\n }\n });\n };\n\n return AnimatedTransform;\n}(AnimatedWithChildren);\n\ninjectDefaultElement(reactNative.View);\ninjectInterpolation(createInterpolation);\ninjectColorNames(colors);\ninjectApplyAnimatedValues(function (instance, props) {\n return instance.setNativeProps ? instance.setNativeProps(props) : false;\n}, function (style) {\n return _extends({}, style, {\n transform: new AnimatedTransform(style.transform)\n });\n});\ninjectCreateAnimatedStyle(function (styles) {\n return new AnimatedStyle(reactNative.StyleSheet.flatten(styles));\n});\n\nexports.Spring = Spring;\nexports.Keyframes = Keyframes;\nexports.Transition = Transition;\nexports.Trail = Trail;\nexports.Controller = Controller;\nexports.config = config;\nexports.animated = createAnimatedComponent;\nexports.interpolate = interpolate$1;\nexports.Globals = Globals;\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Spinner = require(\"./Spinner\");\n\nObject.keys(_Spinner).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Spinner[key];\n }\n });\n});\n\nvar _Spinner2 = require(\"./Spinner.shared\");\n\nObject.keys(_Spinner2).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Spinner2[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Spinner = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactNative = require(\"react-native\");\n\nvar _native = _interopRequireDefault(require(\"styled-components/native\"));\n\nvar _helpers = require(\"../../helpers\");\n\nvar _Spinner = require(\"./Spinner.shared\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Spinner component for React Native\n */\nvar Spinner =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Spinner, _React$Component);\n\n function Spinner(props) {\n var _this;\n\n _classCallCheck(this, Spinner);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Spinner).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"rotation\", void 0);\n\n _this.rotation = new _reactNative.Animated.Value(0);\n return _this;\n }\n\n _createClass(Spinner, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startRotation();\n }\n }, {\n key: \"startRotation\",\n value: function startRotation() {\n var _this2 = this;\n\n this.rotation.setValue(0);\n\n _reactNative.Animated.timing(this.rotation, {\n toValue: 1,\n duration: 1000,\n easing: _reactNative.Easing.linear,\n useNativeDriver: true\n }).start(function () {\n return _this2.startRotation();\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var RotateData = this.rotation.interpolate({\n inputRange: [0, 1],\n outputRange: [\"0deg\", \"360deg\"]\n });\n return _react.default.createElement(Bar, _extends({\n as: _reactNative.Animated.View\n }, this.props, {\n style: {\n transform: [{\n rotate: RotateData\n }]\n }\n }));\n }\n }]);\n\n return Spinner;\n}(_react.default.Component);\n\nexports.Spinner = Spinner;\n\n_defineProperty(Spinner, \"defaultProps\", {\n size: \"medium\",\n color: \"black100\"\n});\n\nSpinner.displayName = \"Spinner\";\n\n/** Generic Spinner component */\nvar Bar = (0, _native.default)(_reactNative.View).withConfig({\n displayName: \"Spinnerios__Bar\",\n componentId: \"sc-1g0rf5m-0\"\n})([\"background:black;position:absolute;\", \";\"], function (props) {\n var _getSize = (0, _Spinner.getSize)(props),\n width = _getSize.width,\n height = _getSize.height;\n\n return \"\\n background: \".concat((0, _helpers.color)(props.color), \";\\n width: \").concat(width, \"px;\\n height: \").concat(height, \"px;\\n \");\n});\nBar.defaultProps = {\n width: 25,\n height: 6\n};\n//# sourceMappingURL=Spinner.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getSize = void 0;\n\n/**\n * Returns width and height of spinner based on size\n * @param props\n */\nvar getSize = function getSize(props) {\n var base = {\n width: 25,\n height: 6\n };\n\n switch (props.size) {\n case \"small\":\n return {\n width: base.width * 0.5,\n height: base.height * 0.5\n };\n\n case \"medium\":\n return {\n width: base.width * 0.8,\n height: base.height * 0.8\n };\n\n case \"large\":\n return {\n width: base.width,\n height: base.height\n };\n\n default:\n return {\n width: props.width,\n height: props.height\n };\n }\n};\n\nexports.getSize = getSize;\n//# sourceMappingURL=Spinner.shared.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getColorsForVariant = getColorsForVariant;\nexports.getStylesForVariant = exports.defaultSize = exports.defaultVariant = void 0;\n\nvar _styledComponents = require(\"styled-components\");\n\nvar _Theme = require(\"../../Theme\");\n\n/** Default button color variant */\nvar defaultVariant = \"primaryBlack\";\n/** The size of the button */\n\nexports.defaultVariant = defaultVariant;\n\n/** Default button size */\nvar defaultSize = \"medium\";\nexports.defaultSize = defaultSize;\n\n/**\n * Returns various colors for each state given a button variant\n * @param variant\n */\nfunction getColorsForVariant(variant) {\n var _themeProps$colors = _Theme.themeProps.colors,\n black100 = _themeProps$colors.black100,\n black10 = _themeProps$colors.black10,\n black30 = _themeProps$colors.black30,\n white100 = _themeProps$colors.white100,\n purple100 = _themeProps$colors.purple100;\n\n switch (variant) {\n case \"primaryBlack\":\n return {\n default: {\n backgroundColor: black100,\n borderColor: black100,\n color: white100\n },\n hover: {\n backgroundColor: purple100,\n borderColor: purple100,\n color: white100\n }\n };\n\n case \"primaryWhite\":\n return {\n default: {\n backgroundColor: white100,\n borderColor: white100,\n color: black100\n },\n hover: {\n backgroundColor: purple100,\n borderColor: purple100,\n color: white100\n }\n };\n\n case \"secondaryGray\":\n return {\n default: {\n backgroundColor: black10,\n borderColor: black10,\n color: black100\n },\n hover: {\n backgroundColor: black30,\n borderColor: black30,\n color: black100\n }\n };\n\n case \"secondaryOutline\":\n return {\n default: {\n backgroundColor: white100,\n borderColor: black10,\n color: black100\n },\n hover: {\n backgroundColor: white100,\n borderColor: black100,\n color: black100\n }\n };\n\n case \"noOutline\":\n return {\n default: {\n backgroundColor: \"rgba(0, 0, 0, 0)\",\n borderColor: \"rgba(0, 0, 0, 0)\",\n color: black100\n },\n hover: {\n backgroundColor: white100,\n borderColor: black100,\n color: black100\n }\n };\n\n default:\n }\n}\n/**\n * Returns css related to the passed in variant\n * @param variant\n */\n\n\nvar getStylesForVariant = function getStylesForVariant(variant) {\n var _getColorsForVariant = getColorsForVariant(variant),\n enabled = _getColorsForVariant.default,\n hover = _getColorsForVariant.hover;\n\n return (0, _styledComponents.css)([\"\", \";\"], function () {\n return \"\\n background-color: \".concat(enabled.backgroundColor, \";\\n border-color: \").concat(enabled.borderColor, \";\\n color: \").concat(enabled.color, \";\\n\\n @media \").concat(_Theme.themeProps.mediaQueries.hover, \" {\\n &:hover {\\n background-color: \").concat(hover.backgroundColor, \";\\n border-color: \").concat(hover.borderColor, \";\\n color: \").concat(hover.color, \";\\n }\\n }\\n \");\n });\n};\n\nexports.getStylesForVariant = getStylesForVariant;\n//# sourceMappingURL=Button.shared.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Checkbox = require(\"./Checkbox\");\n\nObject.keys(_Checkbox).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Checkbox[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Checkbox.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CleanTag = require(\"./CleanTag\");\n\nObject.keys(_CleanTag).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CleanTag[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CleanTag = exports.omit = exports.omitProps = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _styledSystem = require(\"styled-system\");\n\nvar _primitives = require(\"../../platform/primitives\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar allPropTypes = Object.keys(_styledSystem.styles).filter(function (key) {\n return typeof _styledSystem.styles[key] === \"function\";\n}).reduce(function (styleProps, key) {\n return _objectSpread({}, styleProps, _styledSystem.styles[key].propTypes);\n}, {});\n/**\n * The default set of props to remove from components rendered by styled-components\n */\n\nvar omitProps = [].concat(_toConsumableArray(Object.keys(allPropTypes)), [\"theme\"]);\n/**\n * Removes entries from an object based on a list of keys\n */\n\nexports.omitProps = omitProps;\n\nvar omit = function omit(obj, keys) {\n var next = {};\n\n for (var key in obj) {\n if (keys.indexOf(key) > -1) continue;\n next[key] = obj[key];\n }\n\n return next;\n};\n\nexports.omit = omit;\n\nvar tagName = function tagName(tag) {\n return typeof tag === \"string\" ? tag : tag.displayName || \"Tag\";\n};\n\nfunction tagBuilder() {\n var tag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _primitives.View;\n\n var TagComponent = _react.default.forwardRef(function (_ref, ref) {\n var _ref$is = _ref.is,\n BaseTag = _ref$is === void 0 ? tag : _ref$is,\n _ref$omitFromProps = _ref.omitFromProps,\n omitFromProps = _ref$omitFromProps === void 0 ? omitProps : _ref$omitFromProps,\n props = _objectWithoutProperties(_ref, [\"is\", \"omitFromProps\"]);\n\n return _react.default.createElement(BaseTag, _objectSpread({\n ref: ref\n }, omit(props, omitFromProps)));\n });\n\n TagComponent.displayName = \"Clean.\".concat(tagName(tag));\n return TagComponent;\n}\n\nvar DefaultTag = tagBuilder();\n/**\n * An element to be used to prevent unwanted props from passing through\n * styled-components to the DOM\n *\n * @example\n *\n * const Component = styled(Tag)`\n * ${borderRadius};\n * `\n *\n * const Component2 = styled(Tag.as('span'))`\n * ${background};\n * `\n */\n\nvar CleanTag = DefaultTag;\nexports.CleanTag = CleanTag;\nCleanTag.as = tagBuilder;\n//# sourceMappingURL=CleanTag.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Collapse = require(\"./Collapse\");\n\nObject.keys(_Collapse).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Collapse[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Collapse = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactNative = require(\"react-native\");\n\nvar _renderpropsNative = require(\"react-spring/renderprops-native.cjs\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar AnimatedView = (0, _renderpropsNative.animated)(_reactNative.View);\n\n/** Collapses content with animation when open is not true */\nvar Collapse =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Collapse, _React$Component);\n\n function Collapse() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Collapse);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Collapse)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"measureRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isMounted: false,\n isMeasuring: false,\n isAnimating: false,\n hasMeasured: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMeasureRef\", function (ref) {\n _this.measureRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"measureChildren\", function () {\n _this.setState({\n isMeasuring: true\n }, function () {\n requestAnimationFrame(function () {\n if (!_this.measureRef) {\n _this.setState({\n isMeasuring: false\n });\n\n return;\n } // @ts-ignore\n\n\n _this.measureRef.measure(function (x, y, width, height) {\n _this.setState({\n isMeasuring: false,\n hasMeasured: true,\n measuredHeight: height\n });\n });\n });\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleLayout\", function (ev) {\n var open = _this.props.open;\n var _this$state = _this.state,\n hasMeasured = _this$state.hasMeasured,\n isMeasuring = _this$state.isMeasuring,\n measuredHeight = _this$state.measuredHeight,\n isAnimating = _this$state.isAnimating;\n var height = ev.nativeEvent.layout.height;\n\n if (!hasMeasured || !open || isMeasuring || measuredHeight === height || isAnimating) {\n return;\n }\n\n _this.setState({\n measuredHeight: height\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleFrame\", function (animatedValue) {\n if (_this.props.onAnimationFrame) {\n _this.props.onAnimationFrame(animatedValue);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"measureView\", function () {\n return _react.default.createElement(_reactNative.View, {\n ref: _this.handleMeasureRef,\n style: {\n opacity: 0,\n position: \"absolute\"\n }\n }, _this.props.children);\n });\n\n return _this;\n }\n\n _createClass(Collapse, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n isMounted: true\n });\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var willExpand = nextProps.open && !this.props.open;\n\n if (nextProps.open !== this.props.open) {\n this.setState({\n isAnimating: true\n }, function () {\n if (willExpand && !_this2.measureRef && _this2.state.hasMeasured) {\n // We've previously measured children and can animate without further work.\n return;\n } else if (!_this2.state.hasMeasured) {\n // Children are ready to measure, measureRef might be mounted already.\n _this2.measureChildren();\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$state2 = this.state,\n isMeasuring = _this$state2.isMeasuring,\n isMounted = _this$state2.isMounted,\n measuredHeight = _this$state2.measuredHeight;\n var _this$props = this.props,\n open = _this$props.open,\n children = _this$props.children; // We must render children once in order to measure and derive a static height for animation.\n\n if (isMeasuring) {\n return this.measureView();\n }\n\n return _react.default.createElement(_renderpropsNative.Spring, {\n native: true,\n immediate: !isMounted,\n from: {\n height: 0\n },\n to: {\n height: open && measuredHeight ? measuredHeight : 0\n },\n onRest: function onRest() {\n _this3.setState({\n isAnimating: false\n });\n },\n onFrame: this.handleFrame\n }, function (props) {\n return _react.default.createElement(AnimatedView, {\n style: _objectSpread({}, props, {\n overflow: \"hidden\"\n }),\n onLayout: _this3.handleLayout\n }, children);\n });\n }\n }]);\n\n return Collapse;\n}(_react.default.Component);\n\nexports.Collapse = Collapse;\nCollapse.displayName = \"Collapse\";\n//# sourceMappingURL=Collapse.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Colors = require(\"./Colors\");\n\nObject.keys(_Colors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Colors[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Colors.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CSSGrid = require(\"./CSSGrid\");\n\nObject.keys(_CSSGrid).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CSSGrid[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","// No `display: grid` support in React Native yet:\n// https://github.com/facebook/yoga/issues/867\n\"use strict\";\n//# sourceMappingURL=CSSGrid.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Dialog = require(\"./Dialog\");\n\nObject.keys(_Dialog).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Dialog[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Dialog.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _DonutChart = require(\"./DonutChart\");\n\nObject.keys(_DonutChart).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _DonutChart[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=DonutChart.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _EntityHeader = require(\"./EntityHeader\");\n\nObject.keys(_EntityHeader).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _EntityHeader[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EntityHeader = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Avatar = require(\"../Avatar\");\n\nvar _Flex = require(\"../Flex\");\n\nvar _Typography = require(\"../Typography\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Component that is used as entity header that is paired with rich information about the entity.\n * Spec: zpl.io/aNoYM6d\n */\nvar EntityHeader = function EntityHeader(_ref) {\n var href = _ref.href,\n imageUrl = _ref.imageUrl,\n initials = _ref.initials,\n name = _ref.name,\n meta = _ref.meta,\n FollowButton = _ref.FollowButton,\n remainderProps = _objectWithoutProperties(_ref, [\"href\", \"imageUrl\", \"initials\", \"name\", \"meta\", \"FollowButton\"]);\n\n return _react.default.createElement(_Flex.Flex, _extends({\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n flexWrap: \"nowrap\"\n }, remainderProps), (imageUrl || initials) && _react.default.createElement(_Flex.Flex, {\n mr: 1,\n justifyContent: \"center\"\n }, _react.default.createElement(_Avatar.Avatar, {\n size: \"xs\",\n src: imageUrl,\n initials: initials\n })), _react.default.createElement(_Flex.Flex, {\n justifyContent: \"center\",\n width: 0,\n flexGrow: 1\n }, _react.default.createElement(_Typography.Serif, {\n ellipsizeMode: \"tail\",\n numberOfLines: 1,\n size: \"3t\",\n color: \"black100\"\n }, name), !!meta && _react.default.createElement(_Typography.Sans, {\n ellipsizeMode: \"tail\",\n numberOfLines: 1,\n size: \"2\",\n color: \"black60\"\n }, meta)), FollowButton && _react.default.createElement(_Flex.Flex, {\n ml: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-end\"\n }, FollowButton));\n};\n\nexports.EntityHeader = EntityHeader;\nEntityHeader.displayName = \"EntityHeader\";\nEntityHeader.displayName = \"EntityHeader\";\n//# sourceMappingURL=EntityHeader.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Grid = require(\"./Grid\");\n\nObject.keys(_Grid).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Grid[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Grid.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Image = require(\"./Image\");\n\nObject.keys(_Image).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Image[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ResponsiveImage = exports.Image = void 0;\n\nvar _Image = require(\"./Image.shared\");\n\n/** Image */\nvar Image = _Image.BaseImage;\nexports.Image = Image;\nImage.displayName = \"Image\";\n/** ResponsiveImage */\n\nvar ResponsiveImage = _Image.BaseResponsiveImage;\nexports.ResponsiveImage = ResponsiveImage;\nResponsiveImage.displayName = \"ResponsiveImage\";\n//# sourceMappingURL=Image.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BaseResponsiveImage = exports.BaseImage = void 0;\n\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\n\nvar _primitives = require(\"../../platform/primitives\");\n\nvar _CleanTag = require(\"../CleanTag\");\n\nvar _styledSystem = require(\"styled-system\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// @ts-ignore\n\n/**\n * Image component with space, width and height properties\n */\nvar BaseImage = (0, _styledComponents.default)(_CleanTag.CleanTag.as(_primitives.Image)).withConfig({\n displayName: \"Imageshared__BaseImage\",\n componentId: \"sc-1dymtq1-0\"\n})([\"\", \";\", \";\", \";\", \"\"], _styledSystem.space, _styledSystem.width, _styledSystem.height, _styledSystem.borderRadius);\nexports.BaseImage = BaseImage;\n\n/**\n * An Image component that responsively resizes within its environment\n */\nvar BaseResponsiveImage = (0, _styledComponents.default)(_CleanTag.CleanTag).withConfig({\n displayName: \"Imageshared__BaseResponsiveImage\",\n componentId: \"sc-1dymtq1-1\"\n})([\"background:url(\", \");background-size:contain;background-repeat:no-repeat;background-position:center;\", \";\", \";\", \";\", \";\"], function (props) {\n return props.src;\n}, _styledSystem.ratio, _styledSystem.space, _styledSystem.width, _styledSystem.maxWidth);\nexports.BaseResponsiveImage = BaseResponsiveImage;\nBaseResponsiveImage.defaultProps = {\n width: \"100%\",\n ratio: 1\n};\n//# sourceMappingURL=Image.shared.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Input = require(\"./Input\");\n\nObject.keys(_Input).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Input[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Input.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Join = require(\"./Join\");\n\nObject.keys(_Join).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Join[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Join = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * `Join` is a higher order component that renders a separator component\n * between each of `Join`'s direct children.\n *\n * @example\n *\n * }>\n * \n * \n * \n * \n *\n * which renders\n *\n * \n * \n * \n * \n * \n */\nvar Join = function Join(_ref) {\n var separator = _ref.separator,\n children = _ref.children;\n\n var childArray = _react.default.Children.toArray(children);\n\n return childArray.reduce(function (acc, curr, currentIndex) {\n acc.push(_react.default.cloneElement(curr, {\n key: \"join-\".concat(currentIndex)\n }));\n\n if (currentIndex !== childArray.length - 1) {\n acc.push(separator && _react.default.cloneElement(separator, {\n key: \"join-sep-\".concat(currentIndex)\n }));\n }\n\n return acc;\n }, []);\n};\n\nexports.Join = Join;\n//# sourceMappingURL=Join.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Menu = require(\"./Menu\");\n\nObject.keys(_Menu).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Menu[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Menu.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Message = require(\"./Message\");\n\nObject.keys(_Message).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Message[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Message = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _helpers = require(\"../../helpers\");\n\nvar _primitives = require(\"../../platform/primitives\");\n\nvar _Flex = require(\"../Flex\");\n\nvar _Typography = require(\"../Typography\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n background-color: \", \";\\n border-radius: 2px;\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar StyledFlex = (0, _primitives.styledWrapper)(_Flex.Flex)(_templateObject(), (0, _helpers.color)(\"black5\"));\n/**\n * A generic message window for displaying ZerStates, notices, errors, etc.\n *\n * Spec: zpl.io/2Zg4Rdq\n */\n\nvar Message = function Message(_ref) {\n var children = _ref.children,\n _ref$textSize = _ref.textSize,\n textSize = _ref$textSize === void 0 ? \"3t\" : _ref$textSize,\n others = _objectWithoutProperties(_ref, [\"children\", \"textSize\"]);\n\n return _react.default.createElement(StyledFlex, _extends({\n p: 2\n }, others), _react.default.createElement(_Typography.Sans, {\n size: textSize,\n color: (0, _helpers.color)(\"black60\"),\n weight: \"regular\"\n }, children));\n};\n\nexports.Message = Message;\nMessage.displayName = \"Message\";\n//# sourceMappingURL=Message.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./Modal\");\n\nObject.keys(_Modal).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Modal[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Modal.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Pagination = require(\"./Pagination\");\n\nObject.keys(_Pagination).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Pagination[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Pagination.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _LabeledRange = require(\"./LabeledRange\");\n\nObject.keys(_LabeledRange).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _LabeledRange[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=LabeledRange.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _LineChart = require(\"./LineChart\");\n\nObject.keys(_LineChart).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _LineChart[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=LineChart.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Link = require(\"./Link\");\n\nObject.keys(_Link).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Link[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Link.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _PageLoader = require(\"./PageLoader\");\n\nObject.keys(_PageLoader).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _PageLoader[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=PageLoader.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _PriceRange = require(\"./PriceRange\");\n\nObject.keys(_PriceRange).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _PriceRange[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=PriceRange.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ProgressBar = require(\"./ProgressBar\");\n\nObject.keys(_ProgressBar).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ProgressBar[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=ProgressBar.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ProgressBarTimer = require(\"./ProgressBarTimer\");\n\nObject.keys(_ProgressBarTimer).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ProgressBarTimer[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=ProgressBarTimer.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Radio = require(\"./Radio\");\n\nObject.keys(_Radio).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Radio[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Radio.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _RadioGroup = require(\"./RadioGroup\");\n\nObject.keys(_RadioGroup).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _RadioGroup[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=RadioGroup.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ReadMore = require(\"./ReadMore\");\n\nObject.keys(_ReadMore).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ReadMore[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=ReadMore.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Select = require(\"./Select\");\n\nObject.keys(_Select).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Select[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Select.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Separator = require(\"./Separator\");\n\nObject.keys(_Separator).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Separator[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Separator = void 0;\n\nvar _styledSystem = require(\"styled-system\");\n\nvar _helpers = require(\"../../helpers\");\n\nvar _primitives = require(\"../../platform/primitives\");\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n border: 1px solid \", \";\\n border-bottom-width: 0;\\n \", \";\\n \", \";\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n/**\n * A horizontal divider whose width and spacing can be adjusted\n */\nvar Separator = _primitives.styled.View(_templateObject(), (0, _helpers.color)(\"black10\"), _styledSystem.space, _styledSystem.width);\n\nexports.Separator = Separator;\nSeparator.defaultProps = {\n width: \"100%\"\n};\n//# sourceMappingURL=Separator.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Slider = require(\"./Slider\");\n\nObject.keys(_Slider).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Slider[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Slider.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Spacer = require(\"./Spacer\");\n\nObject.keys(_Spacer).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Spacer[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Spacer = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Box = require(\"../../elements/Box\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * A component used to inject space where it's needed\n */\nvar Spacer = function Spacer(props) {\n return _react.default.createElement(_Box.Box, props);\n};\n\nexports.Spacer = Spacer;\nSpacer.displayName = \"Spacer\";\nSpacer.displayName = \"Spacer\";\n//# sourceMappingURL=Spacer.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _StackableBorderBox = require(\"./StackableBorderBox\");\n\nObject.keys(_StackableBorderBox).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _StackableBorderBox[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=StackableBorderBox.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _StaticCountdownTimer = require(\"./StaticCountdownTimer\");\n\nObject.keys(_StaticCountdownTimer).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _StaticCountdownTimer[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=StaticCountdownTimer.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Stepper = require(\"./Stepper\");\n\nObject.keys(_Stepper).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Stepper[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Stepper.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Tabs = require(\"./Tabs\");\n\nObject.keys(_Tabs).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Tabs[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Tabs.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Tags = require(\"./Tags\");\n\nObject.keys(_Tags).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Tags[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Tags.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _TextArea = require(\"./TextArea\");\n\nObject.keys(_TextArea).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TextArea[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=TextArea.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _TimeRemaining = require(\"./TimeRemaining\");\n\nObject.keys(_TimeRemaining).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TimeRemaining[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TimeRemaining = void 0;\n\nvar _luxon = require(\"luxon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _ = require(\"../\");\n\nvar _useCurrentTime = require(\"../../utils/useCurrentTime\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction padWithZero(num) {\n return num.toString().padStart(2, \"0\");\n}\n/** TimeRemaining */\n\n\nvar TimeRemaining = function TimeRemaining(_ref) {\n var countdownEnd = _ref.countdownEnd,\n currentTime = _ref.currentTime,\n _ref$highlight = _ref.highlight,\n highlight = _ref$highlight === void 0 ? \"purple100\" : _ref$highlight,\n _ref$labelFontSize = _ref.labelFontSize,\n labelFontSize = _ref$labelFontSize === void 0 ? \"3\" : _ref$labelFontSize,\n labelWithoutTimeRemaining = _ref.labelWithoutTimeRemaining,\n labelWithTimeRemaining = _ref.labelWithTimeRemaining,\n timeEndedDisplayText = _ref.timeEndedDisplayText,\n _ref$timerFontSize = _ref.timerFontSize,\n timerFontSize = _ref$timerFontSize === void 0 ? \"3\" : _ref$timerFontSize,\n trailingText = _ref.trailingText;\n\n var duration = _luxon.Duration.fromISO(_luxon.DateTime.fromISO(countdownEnd).diff((0, _useCurrentTime.useCurrentTime)(currentTime)).toString());\n\n var hasEnded = Math.floor(duration.seconds) <= 0;\n var days = \"\".concat(padWithZero(Math.max(0, Math.floor(duration.as(\"days\")))), \"d \");\n var hours = \"\".concat(padWithZero(Math.max(0, Math.floor(duration.as(\"hours\") % 24))), \"h \");\n var minutes = \"\".concat(padWithZero(Math.max(0, Math.floor(duration.as(\"minutes\") % 60))), \"m \");\n var seconds = \"\".concat(padWithZero(Math.max(0, Math.floor(duration.as(\"seconds\") % 60))), \"s\");\n return _react.default.createElement(_.Flex, {\n flexDirection: \"column\",\n alignItems: \"center\"\n }, _react.default.createElement(_.Sans, {\n size: timerFontSize,\n color: highlight,\n weight: \"medium\"\n }, hasEnded && timeEndedDisplayText ? timeEndedDisplayText : _react.default.createElement(_react.default.Fragment, null, days, hours, minutes, seconds, trailingText && \" \".concat(trailingText))), (labelWithTimeRemaining || labelWithoutTimeRemaining) && _react.default.createElement(_.Sans, {\n size: labelFontSize,\n weight: \"medium\"\n }, hasEnded ? labelWithoutTimeRemaining : labelWithTimeRemaining));\n};\n\nexports.TimeRemaining = TimeRemaining;\nTimeRemaining.displayName = \"TimeRemaining\";\n//# sourceMappingURL=TimeRemaining.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\n// these aren't really private, but nor are they really useful to document\n\n/**\r\n * @private\r\n */\nvar LuxonError =\n/*#__PURE__*/\nfunction (_Error) {\n _inheritsLoose(LuxonError, _Error);\n\n function LuxonError() {\n return _Error.apply(this, arguments) || this;\n }\n\n return LuxonError;\n}(_wrapNativeSuper(Error));\n/**\r\n * @private\r\n */\n\n\nvar InvalidDateTimeError =\n/*#__PURE__*/\nfunction (_LuxonError) {\n _inheritsLoose(InvalidDateTimeError, _LuxonError);\n\n function InvalidDateTimeError(reason) {\n return _LuxonError.call(this, \"Invalid DateTime: \" + reason.toMessage()) || this;\n }\n\n return InvalidDateTimeError;\n}(LuxonError);\n/**\r\n * @private\r\n */\n\nvar InvalidIntervalError =\n/*#__PURE__*/\nfunction (_LuxonError2) {\n _inheritsLoose(InvalidIntervalError, _LuxonError2);\n\n function InvalidIntervalError(reason) {\n return _LuxonError2.call(this, \"Invalid Interval: \" + reason.toMessage()) || this;\n }\n\n return InvalidIntervalError;\n}(LuxonError);\n/**\r\n * @private\r\n */\n\nvar InvalidDurationError =\n/*#__PURE__*/\nfunction (_LuxonError3) {\n _inheritsLoose(InvalidDurationError, _LuxonError3);\n\n function InvalidDurationError(reason) {\n return _LuxonError3.call(this, \"Invalid Duration: \" + reason.toMessage()) || this;\n }\n\n return InvalidDurationError;\n}(LuxonError);\n/**\r\n * @private\r\n */\n\nvar ConflictingSpecificationError =\n/*#__PURE__*/\nfunction (_LuxonError4) {\n _inheritsLoose(ConflictingSpecificationError, _LuxonError4);\n\n function ConflictingSpecificationError() {\n return _LuxonError4.apply(this, arguments) || this;\n }\n\n return ConflictingSpecificationError;\n}(LuxonError);\n/**\r\n * @private\r\n */\n\nvar InvalidUnitError =\n/*#__PURE__*/\nfunction (_LuxonError5) {\n _inheritsLoose(InvalidUnitError, _LuxonError5);\n\n function InvalidUnitError(unit) {\n return _LuxonError5.call(this, \"Invalid unit \" + unit) || this;\n }\n\n return InvalidUnitError;\n}(LuxonError);\n/**\r\n * @private\r\n */\n\nvar InvalidArgumentError =\n/*#__PURE__*/\nfunction (_LuxonError6) {\n _inheritsLoose(InvalidArgumentError, _LuxonError6);\n\n function InvalidArgumentError() {\n return _LuxonError6.apply(this, arguments) || this;\n }\n\n return InvalidArgumentError;\n}(LuxonError);\n/**\r\n * @private\r\n */\n\nvar ZoneIsAbstractError =\n/*#__PURE__*/\nfunction (_LuxonError7) {\n _inheritsLoose(ZoneIsAbstractError, _LuxonError7);\n\n function ZoneIsAbstractError() {\n return _LuxonError7.call(this, \"Zone is an abstract class\") || this;\n }\n\n return ZoneIsAbstractError;\n}(LuxonError);\n\n/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n/**\n * @private\n */\n// TYPES\n\nfunction isUndefined(o) {\n return typeof o === \"undefined\";\n}\nfunction isNumber(o) {\n return typeof o === \"number\";\n}\nfunction isString(o) {\n return typeof o === \"string\";\n}\nfunction isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n} // CAPABILITIES\n\nfunction hasIntl() {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n}\nfunction hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\nfunction hasRelative() {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n} // OBJECTS AND ARRAYS\n\nfunction maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\nfunction bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n\n return arr.reduce(function (best, next) {\n var pair = [by(next), next];\n\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\nfunction pick(obj, keys) {\n return keys.reduce(function (a, k) {\n a[k] = obj[k];\n return a;\n }, {});\n} // NUMBERS AND STRINGS\n\nfunction numberBetween(thing, bottom, top) {\n return isNumber(thing) && thing >= bottom && thing <= top;\n} // x % n but takes the sign of n instead of x\n\nfunction floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\nfunction padStart(input, n) {\n if (n === void 0) {\n n = 2;\n }\n\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\nfunction parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\nfunction parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n var f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\nfunction roundTo(number, digits, towardZero) {\n if (towardZero === void 0) {\n towardZero = false;\n }\n\n var factor = Math.pow(10, digits),\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n} // DATE BASICS\n\nfunction isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\nfunction daysInMonth(year, month) {\n var modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n} // covert a calendar object to a local timestamp (epoch, but with the offset baked in)\n\nfunction objToLocalTS(obj) {\n var d = Date.UTC(obj.year, obj.month - 1, obj.day, obj.hour, obj.minute, obj.second, obj.millisecond); // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n\n return +d;\n}\nfunction weeksInWeekYear(weekYear) {\n var p1 = (weekYear + Math.floor(weekYear / 4) - Math.floor(weekYear / 100) + Math.floor(weekYear / 400)) % 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\nfunction untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n} // PARSING\n\nfunction parseZoneInfo(ts, offsetFormat, locale, timeZone) {\n if (timeZone === void 0) {\n timeZone = null;\n }\n\n var date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n var modified = Object.assign({\n timeZoneName: offsetFormat\n }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n var parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find(function (m) {\n return m.type.toLowerCase() === \"timezonename\";\n });\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n var without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n} // signedOffset('-5', '30') -> -330\n\nfunction signedOffset(offHourStr, offMinuteStr) {\n var offHour = parseInt(offHourStr, 10) || 0,\n offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n} // COERCION\n\nfunction asNumber(value) {\n var numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue)) throw new InvalidArgumentError(\"Invalid unit value \" + value);\n return numericValue;\n}\n\nfunction normalizeObject(obj, normalizer, nonUnitKeys) {\n var normalized = {};\n\n for (var u in obj) {\n if (obj.hasOwnProperty(u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n var v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n\n return normalized;\n}\nfunction formatOffset(offset, format) {\n var hours = Math.trunc(offset / 60),\n minutes = Math.abs(offset % 60),\n sign = hours >= 0 ? \"+\" : \"-\",\n base = \"\" + sign + Math.abs(hours);\n\n switch (format) {\n case \"short\":\n return \"\" + sign + padStart(Math.abs(hours), 2) + \":\" + padStart(minutes, 2);\n\n case \"narrow\":\n return minutes > 0 ? base + \":\" + minutes : base;\n\n case \"techie\":\n return \"\" + sign + padStart(Math.abs(hours), 2) + padStart(minutes, 2);\n\n default:\n throw new RangeError(\"Value format \" + format + \" is out of range for property format\");\n }\n}\nfunction timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\nvar ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n\n/**\r\n * @private\r\n */\nvar n = \"numeric\",\n s = \"short\",\n l = \"long\",\n d2 = \"2-digit\";\nvar DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\nvar DATE_MED = {\n year: n,\n month: s,\n day: n\n};\nvar DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\nvar DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\nvar TIME_SIMPLE = {\n hour: n,\n minute: d2\n};\nvar TIME_WITH_SECONDS = {\n hour: n,\n minute: d2,\n second: d2\n};\nvar TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: d2,\n second: d2,\n timeZoneName: s\n};\nvar TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: d2,\n second: d2,\n timeZoneName: l\n};\nvar TIME_24_SIMPLE = {\n hour: n,\n minute: d2,\n hour12: false\n};\n/**\r\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\r\n */\n\nvar TIME_24_WITH_SECONDS = {\n hour: n,\n minute: d2,\n second: d2,\n hour12: false\n};\n/**\r\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\r\n */\n\nvar TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: d2,\n second: d2,\n hour12: false,\n timeZoneName: s\n};\n/**\r\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\r\n */\n\nvar TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: d2,\n second: d2,\n hour12: false,\n timeZoneName: l\n};\n/**\r\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\r\n */\n\nvar DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: d2\n};\n/**\r\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\r\n */\n\nvar DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: d2,\n second: d2\n};\nvar DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: d2\n};\nvar DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: d2,\n second: d2\n};\nvar DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: d2,\n timeZoneName: s\n};\nvar DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: d2,\n second: d2,\n timeZoneName: s\n};\nvar DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: d2,\n timeZoneName: l\n};\nvar DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: d2,\n second: d2,\n timeZoneName: l\n};\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n/**\r\n * @private\r\n */\n\n\nvar monthsLong = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\nvar monthsShort = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nvar monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\nfunction months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n\n case \"short\":\n return monthsShort;\n\n case \"long\":\n return monthsLong;\n\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n\n default:\n return null;\n }\n}\nvar weekdaysLong = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"];\nvar weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\nvar weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\nfunction weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n\n case \"short\":\n return weekdaysShort;\n\n case \"long\":\n return weekdaysLong;\n\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n\n default:\n return null;\n }\n}\nvar meridiems = [\"AM\", \"PM\"];\nvar erasLong = [\"Before Christ\", \"Anno Domini\"];\nvar erasShort = [\"BC\", \"AD\"];\nvar erasNarrow = [\"B\", \"A\"];\nfunction eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n\n case \"short\":\n return erasShort;\n\n case \"long\":\n return erasLong;\n\n default:\n return null;\n }\n}\nfunction meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\nfunction weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\nfunction monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\nfunction eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\nfunction formatRelativeTime(unit, count, numeric, narrow) {\n if (numeric === void 0) {\n numeric = \"always\";\n }\n\n if (narrow === void 0) {\n narrow = false;\n }\n\n var units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarer\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n var lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n var isDay = unit === \"days\";\n\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : \"next \" + units[unit][0];\n\n case -1:\n return isDay ? \"yesterday\" : \"last \" + units[unit][0];\n\n case 0:\n return isDay ? \"today\" : \"this \" + units[unit][0];\n\n default: // fall through\n\n }\n }\n\n var isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n fmtUnit = narrow ? units[unit][1] : fmtValue === 1 ? units[unit][0] : unit;\n return isInPast ? fmtValue + \" \" + fmtUnit + \" ago\" : \"in \" + fmtValue + \" \" + fmtUnit;\n}\nfunction formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n var filtered = pick(knownFormat, [\"weekday\", \"era\", \"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"timeZoneName\", \"hour12\"]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n\n switch (key) {\n case stringify(DATE_SHORT):\n return \"M/d/yyyy\";\n\n case stringify(DATE_MED):\n return \"LLL d, yyyy\";\n\n case stringify(DATE_FULL):\n return \"LLLL d, yyyy\";\n\n case stringify(DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n\n case stringify(TIME_SIMPLE):\n return \"h:mm a\";\n\n case stringify(TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n\n case stringify(TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n\n case stringify(TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n\n case stringify(TIME_24_SIMPLE):\n return \"HH:mm\";\n\n case stringify(TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n\n case stringify(TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n\n case stringify(TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n\n case stringify(DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n\n case stringify(DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n\n case stringify(DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n\n case stringify(DATETIME_HUGE):\n return dateTimeHuge;\n\n case stringify(DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n\n case stringify(DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n\n case stringify(DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n\n case stringify(DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n\n default:\n return dateTimeHuge;\n }\n}\n\n/**\r\n * @interface\r\n */\n\nvar Zone =\n/*#__PURE__*/\nfunction () {\n function Zone() {}\n\n var _proto = Zone.prototype;\n\n /**\r\n * Returns the offset's common name (such as EST) at the specified timestamp\r\n * @abstract\r\n * @param {number} ts - Epoch milliseconds for which to get the name\r\n * @param {Object} opts - Options to affect the format\r\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\r\n * @param {string} opts.locale - What locale to return the offset name in.\r\n * @return {string}\r\n */\n _proto.offsetName = function offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n /**\r\n * Returns the offset's value as a string\r\n * @abstract\r\n * @param {number} ts - Epoch milliseconds for which to get the offset\r\n * @param {string} format - What style of offset to return.\r\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\r\n * @return {string}\r\n */\n ;\n\n _proto.formatOffset = function formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n /**\r\n * Return the offset in minutes for this zone at the specified timestamp.\r\n * @abstract\r\n * @param {number} ts - Epoch milliseconds for which to compute the offset\r\n * @return {number}\r\n */\n ;\n\n _proto.offset = function offset(ts) {\n throw new ZoneIsAbstractError();\n }\n /**\r\n * Return whether this Zone is equal to another zone\r\n * @abstract\r\n * @param {Zone} otherZone - the zone to compare\r\n * @return {boolean}\r\n */\n ;\n\n _proto.equals = function equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n /**\r\n * Return whether this Zone is valid.\r\n * @abstract\r\n * @type {boolean}\r\n */\n ;\n\n _createClass(Zone, [{\n key: \"type\",\n\n /**\r\n * The type of zone\r\n * @abstract\r\n * @type {string}\r\n */\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n /**\r\n * The name of this zone.\r\n * @abstract\r\n * @type {string}\r\n */\n\n }, {\n key: \"name\",\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n /**\r\n * Returns whether the offset is known to be fixed for the whole year.\r\n * @abstract\r\n * @type {boolean}\r\n */\n\n }, {\n key: \"universal\",\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n }, {\n key: \"isValid\",\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n }]);\n\n return Zone;\n}();\n\nvar singleton = null;\n/**\r\n * Represents the local zone for this Javascript environment.\r\n * @implements {Zone}\r\n */\n\nvar LocalZone =\n/*#__PURE__*/\nfunction (_Zone) {\n _inheritsLoose(LocalZone, _Zone);\n\n function LocalZone() {\n return _Zone.apply(this, arguments) || this;\n }\n\n var _proto = LocalZone.prototype;\n\n /** @override **/\n _proto.offsetName = function offsetName(ts, _ref) {\n var format = _ref.format,\n locale = _ref.locale;\n return parseZoneInfo(ts, format, locale);\n }\n /** @override **/\n ;\n\n _proto.formatOffset = function formatOffset$1(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n /** @override **/\n ;\n\n _proto.offset = function offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n /** @override **/\n ;\n\n _proto.equals = function equals(otherZone) {\n return otherZone.type === \"local\";\n }\n /** @override **/\n ;\n\n _createClass(LocalZone, [{\n key: \"type\",\n\n /** @override **/\n get: function get() {\n return \"local\";\n }\n /** @override **/\n\n }, {\n key: \"name\",\n get: function get() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n /** @override **/\n\n }, {\n key: \"universal\",\n get: function get() {\n return false;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return true;\n }\n }], [{\n key: \"instance\",\n\n /**\r\n * Get a singleton instance of the local zone\r\n * @return {LocalZone}\r\n */\n get: function get() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n\n return singleton;\n }\n }]);\n\n return LocalZone;\n}(Zone);\n\nvar matchingRegex = RegExp(\"^\" + ianaRegex.source + \"$\");\nvar dtfCache = {};\n\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n\n return dtfCache[zone];\n}\n\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n fMonth = parsed[1],\n fDay = parsed[2],\n fYear = parsed[3],\n fHour = parsed[4],\n fMinute = parsed[5],\n fSecond = parsed[6];\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n var formatted = dtf.formatToParts(date),\n filled = [];\n\n for (var i = 0; i < formatted.length; i++) {\n var _formatted$i = formatted[i],\n type = _formatted$i.type,\n value = _formatted$i.value,\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n\n return filled;\n}\n\nvar ianaZoneCache = {};\n/**\r\n * A zone identified by an IANA identifier, like America/New_York\r\n * @implements {Zone}\r\n */\n\nvar IANAZone =\n/*#__PURE__*/\nfunction (_Zone) {\n _inheritsLoose(IANAZone, _Zone);\n\n /**\r\n * @param {string} name - Zone name\r\n * @return {IANAZone}\r\n */\n IANAZone.create = function create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n\n return ianaZoneCache[name];\n }\n /**\r\n * Reset local caches. Should only be necessary in testing scenarios.\r\n * @return {void}\r\n */\n ;\n\n IANAZone.resetCache = function resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n /**\r\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\r\n * @param {string} s - The string to check validity on\r\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\r\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\r\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\r\n * @return {boolean}\r\n */\n ;\n\n IANAZone.isValidSpecifier = function isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n /**\r\n * Returns whether the provided string identifies a real zone\r\n * @param {string} zone - The string to check\r\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\r\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\r\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\r\n * @return {boolean}\r\n */\n ;\n\n IANAZone.isValidZone = function isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", {\n timeZone: zone\n }).format();\n return true;\n } catch (e) {\n return false;\n }\n } // Etc/GMT+8 -> -480\n\n /** @ignore */\n ;\n\n IANAZone.parseGMTOffset = function parseGMTOffset(specifier) {\n if (specifier) {\n var match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n\n return null;\n };\n\n function IANAZone(name) {\n var _this;\n\n _this = _Zone.call(this) || this;\n /** @private **/\n\n _this.zoneName = name;\n /** @private **/\n\n _this.valid = IANAZone.isValidZone(name);\n return _this;\n }\n /** @override **/\n\n\n var _proto = IANAZone.prototype;\n\n /** @override **/\n _proto.offsetName = function offsetName(ts, _ref) {\n var format = _ref.format,\n locale = _ref.locale;\n return parseZoneInfo(ts, format, locale, this.name);\n }\n /** @override **/\n ;\n\n _proto.formatOffset = function formatOffset$1(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n /** @override **/\n ;\n\n _proto.offset = function offset(ts) {\n var date = new Date(ts),\n dtf = makeDTF(this.name),\n _ref2 = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date),\n year = _ref2[0],\n month = _ref2[1],\n day = _ref2[2],\n hour = _ref2[3],\n minute = _ref2[4],\n second = _ref2[5];\n\n var asUTC = objToLocalTS({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n millisecond: 0\n });\n var asTS = date.valueOf();\n asTS -= asTS % 1000;\n return (asUTC - asTS) / (60 * 1000);\n }\n /** @override **/\n ;\n\n _proto.equals = function equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n /** @override **/\n ;\n\n _createClass(IANAZone, [{\n key: \"type\",\n get: function get() {\n return \"iana\";\n }\n /** @override **/\n\n }, {\n key: \"name\",\n get: function get() {\n return this.zoneName;\n }\n /** @override **/\n\n }, {\n key: \"universal\",\n get: function get() {\n return false;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return this.valid;\n }\n }]);\n\n return IANAZone;\n}(Zone);\n\nvar singleton$1 = null;\n/**\r\n * A zone with a fixed offset (i.e. no DST)\r\n * @implements {Zone}\r\n */\n\nvar FixedOffsetZone =\n/*#__PURE__*/\nfunction (_Zone) {\n _inheritsLoose(FixedOffsetZone, _Zone);\n\n /**\r\n * Get an instance with a specified offset\r\n * @param {number} offset - The offset in minutes\r\n * @return {FixedOffsetZone}\r\n */\n FixedOffsetZone.instance = function instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n /**\r\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\r\n * @param {string} s - The offset string to parse\r\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\r\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\r\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\r\n * @return {FixedOffsetZone}\r\n */\n ;\n\n FixedOffsetZone.parseSpecifier = function parseSpecifier(s) {\n if (s) {\n var r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n\n return null;\n };\n\n _createClass(FixedOffsetZone, null, [{\n key: \"utcInstance\",\n\n /**\r\n * Get a singleton instance of UTC\r\n * @return {FixedOffsetZone}\r\n */\n get: function get() {\n if (singleton$1 === null) {\n singleton$1 = new FixedOffsetZone(0);\n }\n\n return singleton$1;\n }\n }]);\n\n function FixedOffsetZone(offset) {\n var _this;\n\n _this = _Zone.call(this) || this;\n /** @private **/\n\n _this.fixed = offset;\n return _this;\n }\n /** @override **/\n\n\n var _proto = FixedOffsetZone.prototype;\n\n /** @override **/\n _proto.offsetName = function offsetName() {\n return this.name;\n }\n /** @override **/\n ;\n\n _proto.formatOffset = function formatOffset$1(ts, format) {\n return formatOffset(this.fixed, format);\n }\n /** @override **/\n ;\n\n /** @override **/\n _proto.offset = function offset() {\n return this.fixed;\n }\n /** @override **/\n ;\n\n _proto.equals = function equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n /** @override **/\n ;\n\n _createClass(FixedOffsetZone, [{\n key: \"type\",\n get: function get() {\n return \"fixed\";\n }\n /** @override **/\n\n }, {\n key: \"name\",\n get: function get() {\n return this.fixed === 0 ? \"UTC\" : \"UTC\" + formatOffset(this.fixed, \"narrow\");\n }\n }, {\n key: \"universal\",\n get: function get() {\n return true;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return true;\n }\n }]);\n\n return FixedOffsetZone;\n}(Zone);\n\n/**\r\n * A zone that failed to parse. You should never need to instantiate this.\r\n * @implements {Zone}\r\n */\n\nvar InvalidZone =\n/*#__PURE__*/\nfunction (_Zone) {\n _inheritsLoose(InvalidZone, _Zone);\n\n function InvalidZone(zoneName) {\n var _this;\n\n _this = _Zone.call(this) || this;\n /** @private */\n\n _this.zoneName = zoneName;\n return _this;\n }\n /** @override **/\n\n\n var _proto = InvalidZone.prototype;\n\n /** @override **/\n _proto.offsetName = function offsetName() {\n return null;\n }\n /** @override **/\n ;\n\n _proto.formatOffset = function formatOffset() {\n return \"\";\n }\n /** @override **/\n ;\n\n _proto.offset = function offset() {\n return NaN;\n }\n /** @override **/\n ;\n\n _proto.equals = function equals() {\n return false;\n }\n /** @override **/\n ;\n\n _createClass(InvalidZone, [{\n key: \"type\",\n get: function get() {\n return \"invalid\";\n }\n /** @override **/\n\n }, {\n key: \"name\",\n get: function get() {\n return this.zoneName;\n }\n /** @override **/\n\n }, {\n key: \"universal\",\n get: function get() {\n return false;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return false;\n }\n }]);\n\n return InvalidZone;\n}(Zone);\n\n/**\r\n * @private\r\n */\nfunction normalizeZone(input, defaultZone) {\n var offset;\n\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n var lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n\nvar now = function now() {\n return Date.now();\n},\n defaultZone = null,\n // not setting this directly to LocalZone.instance bc loading order issues\ndefaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n/**\r\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\r\n */\n\n\nvar Settings =\n/*#__PURE__*/\nfunction () {\n function Settings() {}\n\n /**\r\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\r\n * @return {void}\r\n */\n Settings.resetCaches = function resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n };\n\n _createClass(Settings, null, [{\n key: \"now\",\n\n /**\r\n * Get the callback for returning the current timestamp.\r\n * @type {function}\r\n */\n get: function get() {\n return now;\n }\n /**\r\n * Set the callback for returning the current timestamp.\r\n * The function should return a number, which will be interpreted as an Epoch millisecond count\r\n * @type {function}\r\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\r\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\r\n */\n ,\n set: function set(n) {\n now = n;\n }\n /**\r\n * Get the default time zone to create DateTimes in.\r\n * @type {string}\r\n */\n\n }, {\n key: \"defaultZoneName\",\n get: function get() {\n return Settings.defaultZone.name;\n }\n /**\r\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\r\n * @type {string}\r\n */\n ,\n set: function set(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n /**\r\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\r\n * @type {Zone}\r\n */\n\n }, {\n key: \"defaultZone\",\n get: function get() {\n return defaultZone || LocalZone.instance;\n }\n /**\r\n * Get the default locale to create DateTimes with. Does not affect existing instances.\r\n * @type {string}\r\n */\n\n }, {\n key: \"defaultLocale\",\n get: function get() {\n return defaultLocale;\n }\n /**\r\n * Set the default locale to create DateTimes with. Does not affect existing instances.\r\n * @type {string}\r\n */\n ,\n set: function set(locale) {\n defaultLocale = locale;\n }\n /**\r\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\r\n * @type {string}\r\n */\n\n }, {\n key: \"defaultNumberingSystem\",\n get: function get() {\n return defaultNumberingSystem;\n }\n /**\r\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\r\n * @type {string}\r\n */\n ,\n set: function set(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n /**\r\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\r\n * @type {string}\r\n */\n\n }, {\n key: \"defaultOutputCalendar\",\n get: function get() {\n return defaultOutputCalendar;\n }\n /**\r\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\r\n * @type {string}\r\n */\n ,\n set: function set(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n /**\r\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\r\n * @type {boolean}\r\n */\n\n }, {\n key: \"throwOnInvalid\",\n get: function get() {\n return throwOnInvalid;\n }\n /**\r\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\r\n * @type {boolean}\r\n */\n ,\n set: function set(t) {\n throwOnInvalid = t;\n }\n }]);\n\n return Settings;\n}();\n\nfunction stringifyTokens(splits, tokenToString) {\n var s = \"\";\n\n for (var _iterator = splits, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var token = _ref;\n\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n\n return s;\n}\n\nvar tokenToObject = {\n D: DATE_SHORT,\n DD: DATE_MED,\n DDD: DATE_FULL,\n DDDD: DATE_HUGE,\n t: TIME_SIMPLE,\n tt: TIME_WITH_SECONDS,\n ttt: TIME_WITH_SHORT_OFFSET,\n tttt: TIME_WITH_LONG_OFFSET,\n T: TIME_24_SIMPLE,\n TT: TIME_24_WITH_SECONDS,\n TTT: TIME_24_WITH_SHORT_OFFSET,\n TTTT: TIME_24_WITH_LONG_OFFSET,\n f: DATETIME_SHORT,\n ff: DATETIME_MED,\n fff: DATETIME_FULL,\n ffff: DATETIME_HUGE,\n F: DATETIME_SHORT_WITH_SECONDS,\n FF: DATETIME_MED_WITH_SECONDS,\n FFF: DATETIME_FULL_WITH_SECONDS,\n FFFF: DATETIME_HUGE_WITH_SECONDS\n};\n/**\n * @private\n */\n\nvar Formatter =\n/*#__PURE__*/\nfunction () {\n Formatter.create = function create(locale, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n return new Formatter(locale, opts);\n };\n\n Formatter.parseFormat = function parseFormat(fmt) {\n var current = null,\n currentFull = \"\",\n bracketed = false;\n var splits = [];\n\n for (var i = 0; i < fmt.length; i++) {\n var c = fmt.charAt(i);\n\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({\n literal: bracketed,\n val: currentFull\n });\n }\n\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({\n literal: false,\n val: currentFull\n });\n }\n\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({\n literal: bracketed,\n val: currentFull\n });\n }\n\n return splits;\n };\n\n function Formatter(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n var _proto = Formatter.prototype;\n\n _proto.formatWithSystemDefault = function formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n\n var df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n };\n\n _proto.formatDateTime = function formatDateTime(dt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n };\n\n _proto.formatDateTimeParts = function formatDateTimeParts(dt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n };\n\n _proto.resolvedOptions = function resolvedOptions(dt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n };\n\n _proto.num = function num(n, p) {\n if (p === void 0) {\n p = 0;\n }\n\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n var opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n };\n\n _proto.formatDateTimeFromString = function formatDateTimeFromString(dt, fmt) {\n var _this = this;\n\n var knownEnglish = this.loc.listingMode() === \"en\";\n\n var string = function string(opts, extract) {\n return _this.loc.extract(dt, opts, extract);\n },\n formatOffset = function formatOffset(opts) {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = function meridiem() {\n return knownEnglish ? meridiemForDateTime(dt) : string({\n hour: \"numeric\",\n hour12: true\n }, \"dayperiod\");\n },\n month = function month(length, standalone) {\n return knownEnglish ? monthForDateTime(dt, length) : string(standalone ? {\n month: length\n } : {\n month: length,\n day: \"numeric\"\n }, \"month\");\n },\n weekday = function weekday(length, standalone) {\n return knownEnglish ? weekdayForDateTime(dt, length) : string(standalone ? {\n weekday: length\n } : {\n weekday: length,\n month: \"long\",\n day: \"numeric\"\n }, \"weekday\");\n },\n maybeMacro = function maybeMacro(token) {\n var macro = tokenToObject[token];\n\n if (macro) {\n return _this.formatWithSystemDefault(dt, macro);\n } else {\n return token;\n }\n },\n era = function era(length) {\n return knownEnglish ? eraForDateTime(dt, length) : string({\n era: length\n }, \"era\");\n },\n tokenToString = function tokenToString(token) {\n var outputCal = _this.loc.outputCalendar; // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n\n switch (token) {\n // ms\n case \"S\":\n return _this.num(dt.millisecond);\n\n case \"u\": // falls through\n\n case \"SSS\":\n return _this.num(dt.millisecond, 3);\n // seconds\n\n case \"s\":\n return _this.num(dt.second);\n\n case \"ss\":\n return _this.num(dt.second, 2);\n // minutes\n\n case \"m\":\n return _this.num(dt.minute);\n\n case \"mm\":\n return _this.num(dt.minute, 2);\n // hours\n\n case \"h\":\n return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n\n case \"hh\":\n return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n\n case \"H\":\n return _this.num(dt.hour);\n\n case \"HH\":\n return _this.num(dt.hour, 2);\n // offset\n\n case \"Z\":\n // like +6\n return formatOffset({\n format: \"narrow\",\n allowZ: _this.opts.allowZ\n });\n\n case \"ZZ\":\n // like +06:00\n return formatOffset({\n format: \"short\",\n allowZ: _this.opts.allowZ\n });\n\n case \"ZZZ\":\n // like +0600\n return formatOffset({\n format: \"techie\",\n allowZ: false\n });\n\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, {\n format: \"short\",\n locale: _this.loc.locale\n });\n\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, {\n format: \"long\",\n locale: _this.loc.locale\n });\n // zone\n\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n\n case \"a\":\n return meridiem();\n // dates\n\n case \"d\":\n return outputCal ? string({\n day: \"numeric\"\n }, \"day\") : _this.num(dt.day);\n\n case \"dd\":\n return outputCal ? string({\n day: \"2-digit\"\n }, \"day\") : _this.num(dt.day, 2);\n // weekdays - standalone\n\n case \"c\":\n // like 1\n return _this.num(dt.weekday);\n\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n\n case \"E\":\n // like 1\n return _this.num(dt.weekday);\n\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n\n case \"L\":\n // like 1\n return outputCal ? string({\n month: \"numeric\",\n day: \"numeric\"\n }, \"month\") : _this.num(dt.month);\n\n case \"LL\":\n // like 01, doesn't seem to work\n return outputCal ? string({\n month: \"2-digit\",\n day: \"numeric\"\n }, \"month\") : _this.num(dt.month, 2);\n\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n\n case \"M\":\n // like 1\n return outputCal ? string({\n month: \"numeric\"\n }, \"month\") : _this.num(dt.month);\n\n case \"MM\":\n // like 01\n return outputCal ? string({\n month: \"2-digit\"\n }, \"month\") : _this.num(dt.month, 2);\n\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n\n case \"y\":\n // like 2014\n return outputCal ? string({\n year: \"numeric\"\n }, \"year\") : _this.num(dt.year);\n\n case \"yy\":\n // like 14\n return outputCal ? string({\n year: \"2-digit\"\n }, \"year\") : _this.num(dt.year.toString().slice(-2), 2);\n\n case \"yyyy\":\n // like 0012\n return outputCal ? string({\n year: \"numeric\"\n }, \"year\") : _this.num(dt.year, 4);\n\n case \"yyyyyy\":\n // like 000012\n return outputCal ? string({\n year: \"numeric\"\n }, \"year\") : _this.num(dt.year, 6);\n // eras\n\n case \"G\":\n // like AD\n return era(\"short\");\n\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n\n case \"GGGGG\":\n return era(\"narrow\");\n\n case \"kk\":\n return _this.num(dt.weekYear.toString().slice(-2), 2);\n\n case \"kkkk\":\n return _this.num(dt.weekYear, 4);\n\n case \"W\":\n return _this.num(dt.weekNumber);\n\n case \"WW\":\n return _this.num(dt.weekNumber, 2);\n\n case \"o\":\n return _this.num(dt.ordinal);\n\n case \"ooo\":\n return _this.num(dt.ordinal, 3);\n\n case \"q\":\n // like 1\n return _this.num(dt.quarter);\n\n case \"qq\":\n // like 01\n return _this.num(dt.quarter, 2);\n\n case \"X\":\n return _this.num(Math.floor(dt.ts / 1000));\n\n case \"x\":\n return _this.num(dt.ts);\n\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n };\n\n _proto.formatDurationFromString = function formatDurationFromString(dur, fmt) {\n var _this2 = this;\n\n var tokenToField = function tokenToField(token) {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n\n case \"s\":\n return \"second\";\n\n case \"m\":\n return \"minute\";\n\n case \"h\":\n return \"hour\";\n\n case \"d\":\n return \"day\";\n\n case \"M\":\n return \"month\";\n\n case \"y\":\n return \"year\";\n\n default:\n return null;\n }\n },\n tokenToString = function tokenToString(lildur) {\n return function (token) {\n var mapped = tokenToField(token);\n\n if (mapped) {\n return _this2.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n };\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(function (found, _ref2) {\n var literal = _ref2.literal,\n val = _ref2.val;\n return literal ? found : found.concat(val);\n }, []),\n collapsed = dur.shiftTo.apply(dur, realTokens.map(tokenToField).filter(function (t) {\n return t;\n }));\n\n return stringifyTokens(tokens, tokenToString(collapsed));\n };\n\n return Formatter;\n}();\n\nvar intlDTCache = {};\n\nfunction getCachedDTF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var key = JSON.stringify([locString, opts]);\n var dtf = intlDTCache[key];\n\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n\n return dtf;\n}\n\nvar intlNumCache = {};\n\nfunction getCachendINF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var key = JSON.stringify([locString, opts]);\n var inf = intlNumCache[key];\n\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n\n return inf;\n}\n\nvar intlRelCache = {};\n\nfunction getCachendRTF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var key = JSON.stringify([locString, opts]);\n var inf = intlRelCache[key];\n\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n\n return inf;\n}\n\nvar sysLocaleCache = null;\n\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n var computedSys = new Intl.DateTimeFormat().resolvedOptions().locale; // node sometimes defaults to \"und\". Override that because that is dumb\n\n sysLocaleCache = computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n var uIndex = localeStr.indexOf(\"-u-\");\n\n if (uIndex === -1) {\n return [localeStr];\n } else {\n var options;\n var smaller = localeStr.substring(0, uIndex);\n\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n var _options = options,\n numberingSystem = _options.numberingSystem,\n calendar = _options.calendar; // return the smaller one so that we can append the calendar and numbering overrides to it\n\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += \"-ca-\" + outputCalendar;\n }\n\n if (numberingSystem) {\n localeStr += \"-nu-\" + numberingSystem;\n }\n\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n var ms = [];\n\n for (var i = 1; i <= 12; i++) {\n var dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n\n return ms;\n}\n\nfunction mapWeekdays(f) {\n var ms = [];\n\n for (var i = 1; i <= 7; i++) {\n var dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n var mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return loc.numberingSystem === \"latn\" || !loc.locale || loc.locale.startsWith(\"en\") || hasIntl() && Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\";\n }\n}\n/**\n * @private\n */\n\n\nvar PolyNumberFormatter =\n/*#__PURE__*/\nfunction () {\n function PolyNumberFormatter(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n var intlOpts = {\n useGrouping: false\n };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachendINF(intl, intlOpts);\n }\n }\n\n var _proto = PolyNumberFormatter.prototype;\n\n _proto.format = function format(i) {\n if (this.inf) {\n var fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n var _fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n\n return padStart(_fixed, this.padTo);\n }\n };\n\n return PolyNumberFormatter;\n}();\n/**\n * @private\n */\n\n\nvar PolyDateFormatter =\n/*#__PURE__*/\nfunction () {\n function PolyDateFormatter(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n var z;\n\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n var intlOpts = Object.assign({}, this.opts);\n\n if (z) {\n intlOpts.timeZone = z;\n }\n\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n var _proto2 = PolyDateFormatter.prototype;\n\n _proto2.format = function format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n var tokenFormat = formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n };\n\n _proto2.formatToParts = function formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n };\n\n _proto2.resolvedOptions = function resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n };\n\n return PolyDateFormatter;\n}();\n/**\n * @private\n */\n\n\nvar PolyRelFormatter =\n/*#__PURE__*/\nfunction () {\n function PolyRelFormatter(intl, isEnglish, opts) {\n this.opts = Object.assign({\n style: \"long\"\n }, opts);\n\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachendRTF(intl, opts);\n }\n }\n\n var _proto3 = PolyRelFormatter.prototype;\n\n _proto3.format = function format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n };\n\n _proto3.formatToParts = function formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n };\n\n return PolyRelFormatter;\n}();\n/**\n * @private\n */\n\n\nvar Locale =\n/*#__PURE__*/\nfunction () {\n Locale.fromOpts = function fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n };\n\n Locale.create = function create(locale, numberingSystem, outputCalendar, defaultToEN) {\n if (defaultToEN === void 0) {\n defaultToEN = false;\n }\n\n var specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n };\n\n Locale.resetCache = function resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n };\n\n Locale.fromObject = function fromObject(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n locale = _ref.locale,\n numberingSystem = _ref.numberingSystem,\n outputCalendar = _ref.outputCalendar;\n\n return Locale.create(locale, numberingSystem, outputCalendar);\n };\n\n function Locale(locale, numbering, outputCalendar, specifiedLocale) {\n var _parseLocaleString = parseLocaleString(locale),\n parsedLocale = _parseLocaleString[0],\n parsedNumberingSystem = _parseLocaleString[1],\n parsedOutputCalendar = _parseLocaleString[2];\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n this.weekdaysCache = {\n format: {},\n standalone: {}\n };\n this.monthsCache = {\n format: {},\n standalone: {}\n };\n this.meridiemCache = null;\n this.eraCache = {};\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n var _proto4 = Locale.prototype;\n\n _proto4.listingMode = function listingMode(defaultOK) {\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n\n var intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness = (this.numberingSystem === null || this.numberingSystem === \"latn\") && (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || isActuallyEn && hasNoWeirdness) {\n return \"en\";\n } else {\n return \"intl\";\n }\n };\n\n _proto4.clone = function clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(alts.locale || this.specifiedLocale, alts.numberingSystem || this.numberingSystem, alts.outputCalendar || this.outputCalendar, alts.defaultToEN || false);\n }\n };\n\n _proto4.redefaultToEN = function redefaultToEN(alts) {\n if (alts === void 0) {\n alts = {};\n }\n\n return this.clone(Object.assign({}, alts, {\n defaultToEN: true\n }));\n };\n\n _proto4.redefaultToSystem = function redefaultToSystem(alts) {\n if (alts === void 0) {\n alts = {};\n }\n\n return this.clone(Object.assign({}, alts, {\n defaultToEN: false\n }));\n };\n\n _proto4.months = function months$1(length, format, defaultOK) {\n var _this = this;\n\n if (format === void 0) {\n format = false;\n }\n\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n\n return listStuff(this, length, defaultOK, months, function () {\n var intl = format ? {\n month: length,\n day: \"numeric\"\n } : {\n month: length\n },\n formatStr = format ? \"format\" : \"standalone\";\n\n if (!_this.monthsCache[formatStr][length]) {\n _this.monthsCache[formatStr][length] = mapMonths(function (dt) {\n return _this.extract(dt, intl, \"month\");\n });\n }\n\n return _this.monthsCache[formatStr][length];\n });\n };\n\n _proto4.weekdays = function weekdays$1(length, format, defaultOK) {\n var _this2 = this;\n\n if (format === void 0) {\n format = false;\n }\n\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n\n return listStuff(this, length, defaultOK, weekdays, function () {\n var intl = format ? {\n weekday: length,\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n } : {\n weekday: length\n },\n formatStr = format ? \"format\" : \"standalone\";\n\n if (!_this2.weekdaysCache[formatStr][length]) {\n _this2.weekdaysCache[formatStr][length] = mapWeekdays(function (dt) {\n return _this2.extract(dt, intl, \"weekday\");\n });\n }\n\n return _this2.weekdaysCache[formatStr][length];\n });\n };\n\n _proto4.meridiems = function meridiems$1(defaultOK) {\n var _this3 = this;\n\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n\n return listStuff(this, undefined, defaultOK, function () {\n return meridiems;\n }, function () {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!_this3.meridiemCache) {\n var intl = {\n hour: \"numeric\",\n hour12: true\n };\n _this3.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(function (dt) {\n return _this3.extract(dt, intl, \"dayperiod\");\n });\n }\n\n return _this3.meridiemCache;\n });\n };\n\n _proto4.eras = function eras$1(length, defaultOK) {\n var _this4 = this;\n\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n\n return listStuff(this, length, defaultOK, eras, function () {\n var intl = {\n era: length\n }; // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n\n if (!_this4.eraCache[length]) {\n _this4.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(function (dt) {\n return _this4.extract(dt, intl, \"era\");\n });\n }\n\n return _this4.eraCache[length];\n });\n };\n\n _proto4.extract = function extract(dt, intlOpts, field) {\n var df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(function (m) {\n return m.type.toLowerCase() === field;\n });\n return matching ? matching.value : null;\n };\n\n _proto4.numberFormatter = function numberFormatter(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n };\n\n _proto4.dtFormatter = function dtFormatter(dt, intlOpts) {\n if (intlOpts === void 0) {\n intlOpts = {};\n }\n\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n };\n\n _proto4.relFormatter = function relFormatter(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n };\n\n _proto4.isEnglish = function isEnglish() {\n return this.locale === \"en\" || this.locale.toLowerCase() === \"en-us\" || hasIntl() && Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\");\n };\n\n _proto4.equals = function equals(other) {\n return this.locale === other.locale && this.numberingSystem === other.numberingSystem && this.outputCalendar === other.outputCalendar;\n };\n\n _createClass(Locale, [{\n key: \"fastNumbers\",\n get: function get() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n }]);\n\n return Locale;\n}();\n\n/*\r\n * This file handles parsing for well-specified formats. Here's how it works:\r\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\r\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\r\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\r\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\r\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\r\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\r\n */\n\nfunction combineRegexes() {\n for (var _len = arguments.length, regexes = new Array(_len), _key = 0; _key < _len; _key++) {\n regexes[_key] = arguments[_key];\n }\n\n var full = regexes.reduce(function (f, r) {\n return f + r.source;\n }, \"\");\n return RegExp(\"^\" + full + \"$\");\n}\n\nfunction combineExtractors() {\n for (var _len2 = arguments.length, extractors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n extractors[_key2] = arguments[_key2];\n }\n\n return function (m) {\n return extractors.reduce(function (_ref, ex) {\n var mergedVals = _ref[0],\n mergedZone = _ref[1],\n cursor = _ref[2];\n\n var _ex = ex(m, cursor),\n val = _ex[0],\n zone = _ex[1],\n next = _ex[2];\n\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n }, [{}, null, 1]).slice(0, 2);\n };\n}\n\nfunction parse(s) {\n if (s == null) {\n return [null, null];\n }\n\n for (var _len3 = arguments.length, patterns = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n patterns[_key3 - 1] = arguments[_key3];\n }\n\n for (var _i = 0, _patterns = patterns; _i < _patterns.length; _i++) {\n var _patterns$_i = _patterns[_i],\n regex = _patterns$_i[0],\n extractor = _patterns$_i[1];\n var m = regex.exec(s);\n\n if (m) {\n return extractor(m);\n }\n }\n\n return [null, null];\n}\n\nfunction simpleParse() {\n for (var _len4 = arguments.length, keys = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n keys[_key4] = arguments[_key4];\n }\n\n return function (match, cursor) {\n var ret = {};\n var i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n\n return [ret, null, cursor + i];\n };\n} // ISO and SQL parsing\n\n\nvar offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,9}))?)?)?/,\n isoTimeRegex = RegExp(\"\" + isoTimeBaseRegex.source + offsetRegex.source + \"?\"),\n isoTimeExtensionRegex = RegExp(\"(?:T\" + isoTimeRegex.source + \")?\"),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/,\n // dumbed-down version of the ISO one\nsqlTimeRegex = RegExp(isoTimeBaseRegex.source + \" ?(?:\" + offsetRegex.source + \"|(\" + ianaRegex.source + \"))?\"),\n sqlTimeExtensionRegex = RegExp(\"(?: \" + sqlTimeRegex.source + \")?\");\n\nfunction extractISOYmd(match, cursor) {\n var item = {\n year: parseInteger(match[cursor]),\n month: parseInteger(match[cursor + 1]) || 1,\n day: parseInteger(match[cursor + 2]) || 1\n };\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n var item = {\n hour: parseInteger(match[cursor]) || 0,\n minute: parseInteger(match[cursor + 1]) || 0,\n second: parseInteger(match[cursor + 2]) || 0,\n millisecond: parseMillis(match[cursor + 3])\n };\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n var local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n var zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n} // ISO duration parsing\n\n\nvar isoDuration = /^P(?:(?:(-?\\d{1,9})Y)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,9})W)?(?:(-?\\d{1,9})D)?(?:T(?:(-?\\d{1,9})H)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,9})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n var yearStr = match[1],\n monthStr = match[2],\n weekStr = match[3],\n dayStr = match[4],\n hourStr = match[5],\n minuteStr = match[6],\n secondStr = match[7],\n millisecondsStr = match[8];\n return [{\n years: parseInteger(yearStr),\n months: parseInteger(monthStr),\n weeks: parseInteger(weekStr),\n days: parseInteger(dayStr),\n hours: parseInteger(hourStr),\n minutes: parseInteger(minuteStr),\n seconds: parseInteger(secondStr),\n milliseconds: parseMillis(millisecondsStr)\n }];\n} // These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\n\n\nvar obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n if (secondStr) result.second = parseInteger(secondStr);\n\n if (weekdayStr) {\n result.weekday = weekdayStr.length > 3 ? weekdaysLong.indexOf(weekdayStr) + 1 : weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n} // RFC 2822/5322\n\n\nvar rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n var weekdayStr = match[1],\n dayStr = match[2],\n monthStr = match[3],\n yearStr = match[4],\n hourStr = match[5],\n minuteStr = match[6],\n secondStr = match[7],\n obsOffset = match[8],\n milOffset = match[9],\n offHourStr = match[10],\n offMinuteStr = match[11],\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n var offset;\n\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, \" \").replace(/(\\s\\s+)/g, \" \").trim();\n} // http date\n\n\nvar rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 = /^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n var weekdayStr = match[1],\n dayStr = match[2],\n monthStr = match[3],\n yearStr = match[4],\n hourStr = match[5],\n minuteStr = match[6],\n secondStr = match[7],\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n var weekdayStr = match[1],\n monthStr = match[2],\n dayStr = match[3],\n hourStr = match[4],\n minuteStr = match[5],\n secondStr = match[6],\n yearStr = match[7],\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nvar isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nvar isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nvar isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nvar isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\nvar extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset);\nvar extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset);\nvar extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nvar extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n/**\r\n * @private\r\n */\n\nfunction parseISODate(s) {\n return parse(s, [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime], [isoTimeCombinedRegex, extractISOTimeAndOffset]);\n}\nfunction parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\nfunction parseHTTPDate(s) {\n return parse(s, [rfc1123, extractRFC1123Or850], [rfc850, extractRFC1123Or850], [ascii, extractASCII]);\n}\nfunction parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\nvar sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nvar sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\nvar extractISOYmdTimeOffsetAndIANAZone = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone);\nvar extractISOTimeOffsetAndIANAZone = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone);\nfunction parseSQL(s) {\n return parse(s, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]);\n}\n\nvar Invalid =\n/*#__PURE__*/\nfunction () {\n function Invalid(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n var _proto = Invalid.prototype;\n\n _proto.toMessage = function toMessage() {\n if (this.explanation) {\n return this.reason + \": \" + this.explanation;\n } else {\n return this.reason;\n }\n };\n\n return Invalid;\n}();\n\nvar INVALID = \"Invalid Duration\"; // unit conversion constants\n\nvar lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: {\n minutes: 60,\n seconds: 60 * 60,\n milliseconds: 60 * 60 * 1000\n },\n minutes: {\n seconds: 60,\n milliseconds: 60 * 1000\n },\n seconds: {\n milliseconds: 1000\n }\n},\n casualMatrix = Object.assign({\n years: {\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n}, lowOrderMatrix),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign({\n years: {\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: daysInYearAccurate * 24 / 4,\n minutes: daysInYearAccurate * 24 * 60 / 4,\n seconds: daysInYearAccurate * 24 * 60 * 60 / 4,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000 / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n}, lowOrderMatrix); // units ordered by size\n\nvar orderedUnits = [\"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\nvar reverseUnits = orderedUnits.slice(0).reverse(); // clone really means \"create another instance just like this one, but with these changes\"\n\nfunction clone(dur, alts, clear) {\n if (clear === void 0) {\n clear = false;\n }\n\n // deep merge for vals\n var conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n} // NB: mutates parameters\n\n\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n var conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added = !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n} // NB: mutates parameters\n\n\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce(function (previous, current) {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n/**\r\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\r\n *\r\n * Here is a brief overview of commonly used methods and getters in Duration:\r\n *\r\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\r\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\r\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\r\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\r\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\r\n *\r\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\r\n */\n\n\nvar Duration =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @private\r\n */\n function Duration(config) {\n var accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\r\n * @access private\r\n */\n\n this.values = config.values;\n /**\r\n * @access private\r\n */\n\n this.loc = config.loc || Locale.create();\n /**\r\n * @access private\r\n */\n\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\r\n * @access private\r\n */\n\n this.invalid = config.invalid || null;\n /**\r\n * @access private\r\n */\n\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\r\n * @access private\r\n */\n\n this.isLuxonDuration = true;\n }\n /**\r\n * Create Duration from a number of milliseconds.\r\n * @param {number} count of milliseconds\r\n * @param {Object} opts - options for parsing\r\n * @param {string} [opts.locale='en-US'] - the locale to use\r\n * @param {string} opts.numberingSystem - the numbering system to use\r\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\r\n * @return {Duration}\r\n */\n\n\n Duration.fromMillis = function fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({\n milliseconds: count\n }, opts));\n }\n /**\r\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\r\n * If this object is empty then a zero milliseconds duration is returned.\r\n * @param {Object} obj - the object to create the DateTime from\r\n * @param {number} obj.years\r\n * @param {number} obj.quarters\r\n * @param {number} obj.months\r\n * @param {number} obj.weeks\r\n * @param {number} obj.days\r\n * @param {number} obj.hours\r\n * @param {number} obj.minutes\r\n * @param {number} obj.seconds\r\n * @param {number} obj.milliseconds\r\n * @param {string} [obj.locale='en-US'] - the locale to use\r\n * @param {string} obj.numberingSystem - the numbering system to use\r\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\r\n * @return {Duration}\r\n */\n ;\n\n Duration.fromObject = function fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\"Duration.fromObject: argument expected to be an object, got \" + (obj === null ? \"null\" : typeof obj));\n }\n\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\"locale\", \"numberingSystem\", \"conversionAccuracy\", \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n /**\r\n * Create a Duration from an ISO 8601 duration string.\r\n * @param {string} text - text to parse\r\n * @param {Object} opts - options for parsing\r\n * @param {string} [opts.locale='en-US'] - the locale to use\r\n * @param {string} opts.numberingSystem - the numbering system to use\r\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\r\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\r\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\r\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\r\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\r\n * @return {Duration}\r\n */\n ;\n\n Duration.fromISO = function fromISO(text, opts) {\n var _parseISODuration = parseISODuration(text),\n parsed = _parseISODuration[0];\n\n if (parsed) {\n var obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as ISO 8601\");\n }\n }\n /**\r\n * Create an invalid Duration.\r\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\r\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\r\n * @return {Duration}\r\n */\n ;\n\n Duration.invalid = function invalid(reason, explanation) {\n if (explanation === void 0) {\n explanation = null;\n }\n\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n var invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({\n invalid: invalid\n });\n }\n }\n /**\r\n * @private\r\n */\n ;\n\n Duration.normalizeUnit = function normalizeUnit(unit) {\n var normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n if (!normalized) throw new InvalidUnitError(unit);\n return normalized;\n }\n /**\r\n * Check if an object is a Duration. Works across context boundaries\r\n * @param {object} o\r\n * @return {boolean}\r\n */\n ;\n\n Duration.isDuration = function isDuration(o) {\n return o && o.isLuxonDuration || false;\n }\n /**\r\n * Get the locale of a Duration, such 'en-GB'\r\n * @type {string}\r\n */\n ;\n\n var _proto = Duration.prototype;\n\n /**\r\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\r\n * * `S` for milliseconds\r\n * * `s` for seconds\r\n * * `m` for minutes\r\n * * `h` for hours\r\n * * `d` for days\r\n * * `M` for months\r\n * * `y` for years\r\n * Notes:\r\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\r\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\r\n * @param {string} fmt - the format string\r\n * @param {Object} opts - options\r\n * @param {boolean} [opts.floor=true] - floor numerical values\r\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\r\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\r\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\r\n * @return {string}\r\n */\n _proto.toFormat = function toFormat(fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n var fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) : INVALID;\n }\n /**\r\n * Returns a Javascript object with this Duration's values.\r\n * @param opts - options for generating the object\r\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\r\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\r\n * @return {Object}\r\n */\n ;\n\n _proto.toObject = function toObject(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n if (!this.isValid) return {};\n var base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n\n return base;\n }\n /**\r\n * Returns an ISO 8601-compliant string representation of this Duration.\r\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\r\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\r\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\r\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\r\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\r\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\r\n * @return {string}\r\n */\n ;\n\n _proto.toISO = function toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n var s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0) s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0) s += this.seconds + this.milliseconds / 1000 + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n /**\r\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\r\n * @return {string}\r\n */\n ;\n\n _proto.toJSON = function toJSON() {\n return this.toISO();\n }\n /**\r\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\r\n * @return {string}\r\n */\n ;\n\n _proto.toString = function toString() {\n return this.toISO();\n }\n /**\r\n * Returns an milliseconds value of this Duration.\r\n * @return {number}\r\n */\n ;\n\n _proto.valueOf = function valueOf() {\n return this.as(\"milliseconds\");\n }\n /**\r\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\r\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\r\n * @return {Duration}\r\n */\n ;\n\n _proto.plus = function plus(duration) {\n if (!this.isValid) return this;\n var dur = friendlyDuration(duration),\n result = {};\n\n for (var _i = 0, _orderedUnits = orderedUnits; _i < _orderedUnits.length; _i++) {\n var k = _orderedUnits[_i];\n\n if (dur.values.hasOwnProperty(k) || this.values.hasOwnProperty(k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, {\n values: result\n }, true);\n }\n /**\r\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\r\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\r\n * @return {Duration}\r\n */\n ;\n\n _proto.minus = function minus(duration) {\n if (!this.isValid) return this;\n var dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n /**\r\n * Get the value of unit.\r\n * @param {string} unit - a unit such as 'minute' or 'day'\r\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\r\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\r\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\r\n * @return {number}\r\n */\n ;\n\n _proto.get = function get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n /**\r\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\r\n * @param {Object} values - a mapping of units to numbers\r\n * @example dur.set({ years: 2017 })\r\n * @example dur.set({ hours: 8, minutes: 30 })\r\n * @return {Duration}\r\n */\n ;\n\n _proto.set = function set(values) {\n if (!this.isValid) return this;\n var mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, {\n values: mixed\n });\n }\n /**\r\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\r\n * @example dur.reconfigure({ locale: 'en-GB' })\r\n * @return {Duration}\r\n */\n ;\n\n _proto.reconfigure = function reconfigure(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n locale = _ref.locale,\n numberingSystem = _ref.numberingSystem,\n conversionAccuracy = _ref.conversionAccuracy;\n\n var loc = this.loc.clone({\n locale: locale,\n numberingSystem: numberingSystem\n }),\n opts = {\n loc: loc\n };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n /**\r\n * Return the length of the duration in the specified unit.\r\n * @param {string} unit - a unit such as 'minutes' or 'days'\r\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\r\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\r\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\r\n * @return {number}\r\n */\n ;\n\n _proto.as = function as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n /**\r\n * Reduce this Duration to its canonical representation in its current units.\r\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\r\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\r\n * @return {Duration}\r\n */\n ;\n\n _proto.normalize = function normalize() {\n if (!this.isValid) return this;\n var vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return Duration.fromObject(vals);\n }\n /**\r\n * Convert this Duration into its representation in a different set of units.\r\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\r\n * @return {Duration}\r\n */\n ;\n\n _proto.shiftTo = function shiftTo() {\n for (var _len = arguments.length, units = new Array(_len), _key = 0; _key < _len; _key++) {\n units[_key] = arguments[_key];\n }\n\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(function (u) {\n return Duration.normalizeUnit(u);\n });\n var built = {},\n accumulated = {},\n vals = this.toObject();\n var lastUnit;\n normalizeValues(this.matrix, vals);\n\n for (var _i2 = 0, _orderedUnits2 = orderedUnits; _i2 < _orderedUnits2.length; _i2++) {\n var k = _orderedUnits2[_i2];\n\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n var own = 0; // anything we haven't boiled down yet should get boiled to this unit\n\n for (var ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n } // plus anything that's already in this unit\n\n\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n var i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n // plus anything further down the chain that should be rolled up in to this\n\n for (var down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n } // otherwise, keep it in the wings to boil it later\n\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n } // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n\n\n for (var key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] += key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, {\n values: built\n }, true);\n }\n /**\r\n * Return the negative of this Duration.\r\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\r\n * @return {Duration}\r\n */\n ;\n\n _proto.negate = function negate() {\n if (!this.isValid) return this;\n var negated = {};\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.values); _i3 < _Object$keys.length; _i3++) {\n var k = _Object$keys[_i3];\n negated[k] = -this.values[k];\n }\n\n return clone(this, {\n values: negated\n }, true);\n }\n /**\r\n * Get the years.\r\n * @type {number}\r\n */\n ;\n\n /**\r\n * Equality check\r\n * Two Durations are equal iff they have the same units and the same values for each unit.\r\n * @param {Duration} other\r\n * @return {boolean}\r\n */\n _proto.equals = function equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (var _i4 = 0, _orderedUnits3 = orderedUnits; _i4 < _orderedUnits3.length; _i4++) {\n var u = _orderedUnits3[_i4];\n\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n\n return true;\n };\n\n _createClass(Duration, [{\n key: \"locale\",\n get: function get() {\n return this.isValid ? this.loc.locale : null;\n }\n /**\r\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\r\n *\r\n * @type {string}\r\n */\n\n }, {\n key: \"numberingSystem\",\n get: function get() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n }, {\n key: \"years\",\n get: function get() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n /**\r\n * Get the quarters.\r\n * @type {number}\r\n */\n\n }, {\n key: \"quarters\",\n get: function get() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n /**\r\n * Get the months.\r\n * @type {number}\r\n */\n\n }, {\n key: \"months\",\n get: function get() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n /**\r\n * Get the weeks\r\n * @type {number}\r\n */\n\n }, {\n key: \"weeks\",\n get: function get() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n /**\r\n * Get the days.\r\n * @type {number}\r\n */\n\n }, {\n key: \"days\",\n get: function get() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n /**\r\n * Get the hours.\r\n * @type {number}\r\n */\n\n }, {\n key: \"hours\",\n get: function get() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n /**\r\n * Get the minutes.\r\n * @type {number}\r\n */\n\n }, {\n key: \"minutes\",\n get: function get() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n /**\r\n * Get the seconds.\r\n * @return {number}\r\n */\n\n }, {\n key: \"seconds\",\n get: function get() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n /**\r\n * Get the milliseconds.\r\n * @return {number}\r\n */\n\n }, {\n key: \"milliseconds\",\n get: function get() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n /**\r\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\r\n * on invalid DateTimes or Intervals.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isValid\",\n get: function get() {\n return this.invalid === null;\n }\n /**\r\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\r\n * @return {string}\r\n */\n\n }, {\n key: \"invalidReason\",\n get: function get() {\n return this.invalid ? this.invalid.reason : null;\n }\n /**\r\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\r\n * @type {string}\r\n */\n\n }, {\n key: \"invalidExplanation\",\n get: function get() {\n return this.invalid ? this.invalid.explanation : null;\n }\n }]);\n\n return Duration;\n}();\nfunction friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\"Unknown duration argument \" + durationish + \" of type \" + typeof durationish);\n }\n}\n\nvar INVALID$1 = \"Invalid Interval\"; // checks if the start is equal to or before the end\n\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return new Invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return new Invalid(\"missing or invalid end\");\n } else if (end < start) {\n return new Invalid(\"end before start\", \"The end of an interval must be after its start, but you had start=\" + start.toISO() + \" and end=\" + end.toISO());\n } else {\n return null;\n }\n}\n/**\r\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\r\n *\r\n * Here is a brief overview of the most commonly used methods and getters in Interval:\r\n *\r\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\r\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\r\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\r\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\r\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}\r\n * * **Output*** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toFormat}, and {@link toDuration}.\r\n */\n\n\nvar Interval =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @private\r\n */\n function Interval(config) {\n /**\r\n * @access private\r\n */\n this.s = config.start;\n /**\r\n * @access private\r\n */\n\n this.e = config.end;\n /**\r\n * @access private\r\n */\n\n this.invalid = config.invalid || null;\n /**\r\n * @access private\r\n */\n\n this.isLuxonInterval = true;\n }\n /**\r\n * Create an invalid Interval.\r\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\r\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\r\n * @return {Interval}\r\n */\n\n\n Interval.invalid = function invalid(reason, explanation) {\n if (explanation === void 0) {\n explanation = null;\n }\n\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n var invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({\n invalid: invalid\n });\n }\n }\n /**\r\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\r\n * @param {DateTime|Date|Object} start\r\n * @param {DateTime|Date|Object} end\r\n * @return {Interval}\r\n */\n ;\n\n Interval.fromDateTimes = function fromDateTimes(start, end) {\n var builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n return new Interval({\n start: builtStart,\n end: builtEnd,\n invalid: validateStartEnd(builtStart, builtEnd)\n });\n }\n /**\r\n * Create an Interval from a start DateTime and a Duration to extend to.\r\n * @param {DateTime|Date|Object} start\r\n * @param {Duration|Object|number} duration - the length of the Interval.\r\n * @return {Interval}\r\n */\n ;\n\n Interval.after = function after(start, duration) {\n var dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n /**\r\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\r\n * @param {DateTime|Date|Object} end\r\n * @param {Duration|Object|number} duration - the length of the Interval.\r\n * @return {Interval}\r\n */\n ;\n\n Interval.before = function before(end, duration) {\n var dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n /**\r\n * Create an Interval from an ISO 8601 string.\r\n * Accepts `/`, `/`, and `/` formats.\r\n * @param {string} text - the ISO string to parse\r\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\r\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\r\n * @return {Interval}\r\n */\n ;\n\n Interval.fromISO = function fromISO(text, opts) {\n var _split = (text || \"\").split(\"/\", 2),\n s = _split[0],\n e = _split[1];\n\n if (s && e) {\n var start = DateTime.fromISO(s, opts),\n end = DateTime.fromISO(e, opts);\n\n if (start.isValid && end.isValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (start.isValid) {\n var dur = Duration.fromISO(e, opts);\n\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (end.isValid) {\n var _dur = Duration.fromISO(s, opts);\n\n if (_dur.isValid) {\n return Interval.before(end, _dur);\n }\n }\n }\n\n return Interval.invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed asISO 8601\");\n }\n /**\r\n * Check if an object is an Interval. Works across context boundaries\r\n * @param {object} o\r\n * @return {boolean}\r\n */\n ;\n\n Interval.isInterval = function isInterval(o) {\n return o && o.isLuxonInterval || false;\n }\n /**\r\n * Returns the start of the Interval\r\n * @type {DateTime}\r\n */\n ;\n\n var _proto = Interval.prototype;\n\n /**\r\n * Returns the length of the Interval in the specified unit.\r\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\r\n * @return {number}\r\n */\n _proto.length = function length(unit) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n\n return this.isValid ? this.toDuration.apply(this, [unit]).get(unit) : NaN;\n }\n /**\r\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\r\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\r\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\r\n * @param {string} [unit='milliseconds'] - the unit of time to count.\r\n * @return {number}\r\n */\n ;\n\n _proto.count = function count(unit) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n\n if (!this.isValid) return NaN;\n var start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n /**\r\n * Returns whether this Interval's start and end are both in the same unit of time\r\n * @param {string} unit - the unit of time to check sameness on\r\n * @return {boolean}\r\n */\n ;\n\n _proto.hasSame = function hasSame(unit) {\n return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false;\n }\n /**\r\n * Return whether this Interval has the same start and end DateTimes.\r\n * @return {boolean}\r\n */\n ;\n\n _proto.isEmpty = function isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n /**\r\n * Return whether this Interval's start is after the specified DateTime.\r\n * @param {DateTime} dateTime\r\n * @return {boolean}\r\n */\n ;\n\n _proto.isAfter = function isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n /**\r\n * Return whether this Interval's end is before the specified DateTime.\r\n * @param {DateTime} dateTime\r\n * @return {boolean}\r\n */\n ;\n\n _proto.isBefore = function isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n /**\r\n * Return whether this Interval contains the specified DateTime.\r\n * @param {DateTime} dateTime\r\n * @return {boolean}\r\n */\n ;\n\n _proto.contains = function contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n /**\r\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\r\n * @param {Object} values - the values to set\r\n * @param {DateTime} values.start - the starting DateTime\r\n * @param {DateTime} values.end - the ending DateTime\r\n * @return {Interval}\r\n */\n ;\n\n _proto.set = function set(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n start = _ref.start,\n end = _ref.end;\n\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n /**\r\n * Split this Interval at each of the specified DateTimes\r\n * @param {...[DateTime]} dateTimes - the unit of time to count.\r\n * @return {[Interval]}\r\n */\n ;\n\n _proto.splitAt = function splitAt() {\n if (!this.isValid) return [];\n\n for (var _len = arguments.length, dateTimes = new Array(_len), _key = 0; _key < _len; _key++) {\n dateTimes[_key] = arguments[_key];\n }\n\n var sorted = dateTimes.map(friendlyDateTime).sort(),\n results = [];\n var s = this.s,\n i = 0;\n\n while (s < this.e) {\n var added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n /**\r\n * Split this Interval into smaller Intervals, each of the specified length.\r\n * Left over time is grouped into a smaller interval\r\n * @param {Duration|Object|number} duration - The length of each resulting interval.\r\n * @return {[Interval]}\r\n */\n ;\n\n _proto.splitBy = function splitBy(duration) {\n var dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n var s = this.s,\n added,\n next;\n var results = [];\n\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n /**\r\n * Split this Interval into the specified number of smaller intervals.\r\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\r\n * @return {[Interval]}\r\n */\n ;\n\n _proto.divideEqually = function divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n /**\r\n * Return whether this Interval overlaps with the specified Interval\r\n * @param {Interval} other\r\n * @return {boolean}\r\n */\n ;\n\n _proto.overlaps = function overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n /**\r\n * Return whether this Interval's end is adjacent to the specified Interval's start.\r\n * @param {Interval} other\r\n * @return {boolean}\r\n */\n ;\n\n _proto.abutsStart = function abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n /**\r\n * Return whether this Interval's start is adjacent to the specified Interval's end.\r\n * @param {Interval} other\r\n * @return {boolean}\r\n */\n ;\n\n _proto.abutsEnd = function abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n /**\r\n * Return whether this Interval engulfs the start and end of the specified Interval.\r\n * @param {Interval} other\r\n * @return {boolean}\r\n */\n ;\n\n _proto.engulfs = function engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n /**\r\n * Return whether this Interval has the same start and end as the specified Interval.\r\n * @param {Interval} other\r\n * @return {boolean}\r\n */\n ;\n\n _proto.equals = function equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n /**\r\n * Return an Interval representing the intersection of this Interval and the specified Interval.\r\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\r\n * Returns null if the intersection is empty, i.e., the intervals don't intersect.\r\n * @param {Interval} other\r\n * @return {Interval}\r\n */\n ;\n\n _proto.intersection = function intersection(other) {\n if (!this.isValid) return this;\n var s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n /**\r\n * Return an Interval representing the union of this Interval and the specified Interval.\r\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\r\n * @param {Interval} other\r\n * @return {Interval}\r\n */\n ;\n\n _proto.union = function union(other) {\n if (!this.isValid) return this;\n var s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n /**\r\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\r\n * Combines overlapping and adjacent Intervals.\r\n * @param {[Interval]} intervals\r\n * @return {[Interval]}\r\n */\n ;\n\n Interval.merge = function merge(intervals) {\n var _intervals$sort$reduc = intervals.sort(function (a, b) {\n return a.s - b.s;\n }).reduce(function (_ref2, item) {\n var sofar = _ref2[0],\n current = _ref2[1];\n\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n }, [[], null]),\n found = _intervals$sort$reduc[0],\n final = _intervals$sort$reduc[1];\n\n if (final) {\n found.push(final);\n }\n\n return found;\n }\n /**\r\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\r\n * @param {[Interval]} intervals\r\n * @return {[Interval]}\r\n */\n ;\n\n Interval.xor = function xor(intervals) {\n var _Array$prototype;\n\n var start = null,\n currentCount = 0;\n\n var results = [],\n ends = intervals.map(function (i) {\n return [{\n time: i.s,\n type: \"s\"\n }, {\n time: i.e,\n type: \"e\"\n }];\n }),\n flattened = (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, ends),\n arr = flattened.sort(function (a, b) {\n return a.time - b.time;\n });\n\n for (var _iterator = arr, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref3;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref3 = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref3 = _i.value;\n }\n\n var i = _ref3;\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n /**\r\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\r\n * @param {...Interval} intervals\r\n * @return {[Interval]}\r\n */\n ;\n\n _proto.difference = function difference() {\n var _this = this;\n\n for (var _len2 = arguments.length, intervals = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n intervals[_key2] = arguments[_key2];\n }\n\n return Interval.xor([this].concat(intervals)).map(function (i) {\n return _this.intersection(i);\n }).filter(function (i) {\n return i && !i.isEmpty();\n });\n }\n /**\r\n * Returns a string representation of this Interval appropriate for debugging.\r\n * @return {string}\r\n */\n ;\n\n _proto.toString = function toString() {\n if (!this.isValid) return INVALID$1;\n return \"[\" + this.s.toISO() + \" \\u2013 \" + this.e.toISO() + \")\";\n }\n /**\r\n * Returns an ISO 8601-compliant string representation of this Interval.\r\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\r\n * @param {Object} opts - The same options as {@link DateTime.toISO}\r\n * @return {string}\r\n */\n ;\n\n _proto.toISO = function toISO(opts) {\n if (!this.isValid) return INVALID$1;\n return this.s.toISO(opts) + \"/\" + this.e.toISO(opts);\n }\n /**\r\n * Returns a string representation of this Interval formatted according to the specified format string.\r\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\r\n * @param {Object} opts - options\r\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\r\n * @return {string}\r\n */\n ;\n\n _proto.toFormat = function toFormat(dateFormat, _temp2) {\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n _ref4$separator = _ref4.separator,\n separator = _ref4$separator === void 0 ? \" – \" : _ref4$separator;\n\n if (!this.isValid) return INVALID$1;\n return \"\" + this.s.toFormat(dateFormat) + separator + this.e.toFormat(dateFormat);\n }\n /**\r\n * Return a Duration representing the time spanned by this interval.\r\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\r\n * @param {Object} opts - options that affect the creation of the Duration\r\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\r\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\r\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\r\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\r\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\r\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\r\n * @return {Duration}\r\n */\n ;\n\n _proto.toDuration = function toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n\n return this.e.diff(this.s, unit, opts);\n }\n /**\r\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\r\n * @param {function} mapFn\r\n * @return {Interval}\r\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\r\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\r\n */\n ;\n\n _proto.mapEndpoints = function mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n };\n\n _createClass(Interval, [{\n key: \"start\",\n get: function get() {\n return this.isValid ? this.s : null;\n }\n /**\r\n * Returns the end of the Interval\r\n * @type {DateTime}\r\n */\n\n }, {\n key: \"end\",\n get: function get() {\n return this.isValid ? this.e : null;\n }\n /**\r\n * Returns whether this Interval's end is at least its start, i.e. that the Interval isn't 'backwards'.\r\n * @type {boolean}\r\n */\n\n }, {\n key: \"isValid\",\n get: function get() {\n return this.invalidReason === null;\n }\n /**\r\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\r\n * @type {string}\r\n */\n\n }, {\n key: \"invalidReason\",\n get: function get() {\n return this.invalid ? this.invalid.reason : null;\n }\n /**\r\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\r\n * @type {string}\r\n */\n\n }, {\n key: \"invalidExplanation\",\n get: function get() {\n return this.invalid ? this.invalid.explanation : null;\n }\n }]);\n\n return Interval;\n}();\n\n/**\r\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\r\n */\n\nvar Info =\n/*#__PURE__*/\nfunction () {\n function Info() {}\n\n /**\r\n * Return whether the specified zone contains a DST.\r\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\r\n * @return {boolean}\r\n */\n Info.hasDST = function hasDST(zone) {\n if (zone === void 0) {\n zone = Settings.defaultZone;\n }\n\n var proto = DateTime.local().setZone(zone).set({\n month: 12\n });\n return !zone.universal && proto.offset !== proto.set({\n month: 6\n }).offset;\n }\n /**\r\n * Return whether the specified zone is a valid IANA specifier.\r\n * @param {string} zone - Zone to check\r\n * @return {boolean}\r\n */\n ;\n\n Info.isValidIANAZone = function isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n /**\r\n * Converts the input into a {@link Zone} instance.\r\n *\r\n * * If `input` is already a Zone instance, it is returned unchanged.\r\n * * If `input` is a string containing a valid time zone name, a Zone instance\r\n * with that name is returned.\r\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\r\n * instance with {@link Zone.isValid} == false is returned.\r\n * * If `input is a number, a Zone instance with the specified fixed offset\r\n * in minutes is returned.\r\n * * If `input` is `null` or `undefined`, the default zone is returned.\r\n * @param {string|Zone|number} [input] - the value to be converted\r\n * @return {Zone}\r\n */\n ;\n\n Info.normalizeZone = function normalizeZone$1(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n /**\r\n * Return an array of standalone month names.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\r\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\r\n * @param {Object} opts - options\r\n * @param {string} [opts.locale] - the locale code\r\n * @param {string} [opts.numberingSystem=null] - the numbering system\r\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\r\n * @example Info.months()[0] //=> 'January'\r\n * @example Info.months('short')[0] //=> 'Jan'\r\n * @example Info.months('numeric')[0] //=> '1'\r\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\r\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> 'Ù¡'\r\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'RabiÊ» I'\r\n * @return {[string]}\r\n */\n ;\n\n Info.months = function months(length, _temp) {\n if (length === void 0) {\n length = \"long\";\n }\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? null : _ref$locale,\n _ref$numberingSystem = _ref.numberingSystem,\n numberingSystem = _ref$numberingSystem === void 0 ? null : _ref$numberingSystem,\n _ref$outputCalendar = _ref.outputCalendar,\n outputCalendar = _ref$outputCalendar === void 0 ? \"gregory\" : _ref$outputCalendar;\n\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n /**\r\n * Return an array of format month names.\r\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\r\n * changes the string.\r\n * See {@link months}\r\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\r\n * @param {Object} opts - options\r\n * @param {string} [opts.locale] - the locale code\r\n * @param {string} [opts.numberingSystem=null] - the numbering system\r\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\r\n * @return {[string]}\r\n */\n ;\n\n Info.monthsFormat = function monthsFormat(length, _temp2) {\n if (length === void 0) {\n length = \"long\";\n }\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$locale = _ref2.locale,\n locale = _ref2$locale === void 0 ? null : _ref2$locale,\n _ref2$numberingSystem = _ref2.numberingSystem,\n numberingSystem = _ref2$numberingSystem === void 0 ? null : _ref2$numberingSystem,\n _ref2$outputCalendar = _ref2.outputCalendar,\n outputCalendar = _ref2$outputCalendar === void 0 ? \"gregory\" : _ref2$outputCalendar;\n\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n /**\r\n * Return an array of standalone week names.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\r\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\r\n * @param {Object} opts - options\r\n * @param {string} [opts.locale] - the locale code\r\n * @param {string} [opts.numberingSystem=null] - the numbering system\r\n * @example Info.weekdays()[0] //=> 'Monday'\r\n * @example Info.weekdays('short')[0] //=> 'Mon'\r\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\r\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\r\n * @return {[string]}\r\n */\n ;\n\n Info.weekdays = function weekdays(length, _temp3) {\n if (length === void 0) {\n length = \"long\";\n }\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$locale = _ref3.locale,\n locale = _ref3$locale === void 0 ? null : _ref3$locale,\n _ref3$numberingSystem = _ref3.numberingSystem,\n numberingSystem = _ref3$numberingSystem === void 0 ? null : _ref3$numberingSystem;\n\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n /**\r\n * Return an array of format week names.\r\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\r\n * changes the string.\r\n * See {@link weekdays}\r\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\r\n * @param {Object} opts - options\r\n * @param {string} [opts.locale=null] - the locale code\r\n * @param {string} [opts.numberingSystem=null] - the numbering system\r\n * @return {[string]}\r\n */\n ;\n\n Info.weekdaysFormat = function weekdaysFormat(length, _temp4) {\n if (length === void 0) {\n length = \"long\";\n }\n\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n _ref4$locale = _ref4.locale,\n locale = _ref4$locale === void 0 ? null : _ref4$locale,\n _ref4$numberingSystem = _ref4.numberingSystem,\n numberingSystem = _ref4$numberingSystem === void 0 ? null : _ref4$numberingSystem;\n\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n /**\r\n * Return an array of meridiems.\r\n * @param {Object} opts - options\r\n * @param {string} [opts.locale] - the locale code\r\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\r\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\r\n * @return {[string]}\r\n */\n ;\n\n Info.meridiems = function meridiems(_temp5) {\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$locale = _ref5.locale,\n locale = _ref5$locale === void 0 ? null : _ref5$locale;\n\n return Locale.create(locale).meridiems();\n }\n /**\r\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\r\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\r\n * @param {Object} opts - options\r\n * @param {string} [opts.locale] - the locale code\r\n * @example Info.eras() //=> [ 'BC', 'AD' ]\r\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\r\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\r\n * @return {[string]}\r\n */\n ;\n\n Info.eras = function eras(length, _temp6) {\n if (length === void 0) {\n length = \"short\";\n }\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$locale = _ref6.locale,\n locale = _ref6$locale === void 0 ? null : _ref6$locale;\n\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n /**\r\n * Return the set of available features in this environment.\r\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\r\n * Keys:\r\n * * `zones`: whether this environment supports IANA timezones\r\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\r\n * * `intl`: whether this environment supports general internationalization\r\n * * `relative`: whether this environment supports relative time formatting\r\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\r\n * @return {Object}\r\n */\n ;\n\n Info.features = function features() {\n var intl = false,\n intlTokens = false,\n zones = false,\n relative = hasRelative();\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n\n try {\n zones = new Intl.DateTimeFormat(\"en\", {\n timeZone: \"America/New_York\"\n }).resolvedOptions().timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return {\n intl: intl,\n intlTokens: intlTokens,\n zones: zones,\n relative: relative\n };\n };\n\n return Info;\n}();\n\nfunction dayDiff(earlier, later) {\n var utcDayStart = function utcDayStart(dt) {\n return dt.toUTC(0, {\n keepLocalTime: true\n }).startOf(\"day\").valueOf();\n },\n ms = utcDayStart(later) - utcDayStart(earlier);\n\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n var differs = [[\"years\", function (a, b) {\n return b.year - a.year;\n }], [\"months\", function (a, b) {\n return b.month - a.month + (b.year - a.year) * 12;\n }], [\"weeks\", function (a, b) {\n var days = dayDiff(a, b);\n return (days - days % 7) / 7;\n }], [\"days\", dayDiff]];\n var results = {};\n var lowestOrder, highWater;\n\n for (var _i = 0, _differs = differs; _i < _differs.length; _i++) {\n var _differs$_i = _differs[_i],\n unit = _differs$_i[0],\n differ = _differs$_i[1];\n\n if (units.indexOf(unit) >= 0) {\n var _cursor$plus;\n\n lowestOrder = unit;\n var delta = differ(cursor, later);\n highWater = cursor.plus((_cursor$plus = {}, _cursor$plus[unit] = delta, _cursor$plus));\n\n if (highWater > later) {\n var _cursor$plus2;\n\n cursor = cursor.plus((_cursor$plus2 = {}, _cursor$plus2[unit] = delta - 1, _cursor$plus2));\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nfunction _diff (earlier, later, units, opts) {\n var _highOrderDiffs = highOrderDiffs(earlier, later, units),\n cursor = _highOrderDiffs[0],\n results = _highOrderDiffs[1],\n highWater = _highOrderDiffs[2],\n lowestOrder = _highOrderDiffs[3];\n\n var remainingMillis = later - cursor;\n var lowerOrderUnits = units.filter(function (u) {\n return [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0;\n });\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n var _cursor$plus3;\n\n highWater = cursor.plus((_cursor$plus3 = {}, _cursor$plus3[lowestOrder] = 1, _cursor$plus3));\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n var duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n var _Duration$fromMillis;\n\n return (_Duration$fromMillis = Duration.fromMillis(remainingMillis, opts)).shiftTo.apply(_Duration$fromMillis, lowerOrderUnits).plus(duration);\n } else {\n return duration;\n }\n}\n\nvar numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|å››|五|å…­|七|å…«|ä¹]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\nvar numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n}; // eslint-disable-next-line\n\nvar hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\nfunction parseDigits(str) {\n var value = parseInt(str, 10);\n\n if (isNaN(value)) {\n value = \"\";\n\n for (var i = 0; i < str.length; i++) {\n var code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (var key in numberingSystemsUTF16) {\n var _numberingSystemsUTF = numberingSystemsUTF16[key],\n min = _numberingSystemsUTF[0],\n max = _numberingSystemsUTF[1];\n\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\nfunction digitRegex(_ref, append) {\n var numberingSystem = _ref.numberingSystem;\n\n if (append === void 0) {\n append = \"\";\n }\n\n return new RegExp(\"\" + numberingSystems[numberingSystem || \"latn\"] + append);\n}\n\nvar MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post) {\n if (post === void 0) {\n post = function post(i) {\n return i;\n };\n }\n\n return {\n regex: regex,\n deser: function deser(_ref) {\n var s = _ref[0];\n return post(parseDigits(s));\n }\n };\n}\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n return s.replace(/\\./, \"\\\\.?\");\n}\n\nfunction stripInsensitivities(s) {\n return s.replace(/\\./, \"\").toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: function deser(_ref2) {\n var s = _ref2[0];\n return strings.findIndex(function (i) {\n return stripInsensitivities(s) === stripInsensitivities(i);\n }) + startIndex;\n }\n };\n }\n}\n\nfunction offset(regex, groups) {\n return {\n regex: regex,\n deser: function deser(_ref3) {\n var h = _ref3[1],\n m = _ref3[2];\n return signedOffset(h, m);\n },\n groups: groups\n };\n}\n\nfunction simple(regex) {\n return {\n regex: regex,\n deser: function deser(_ref4) {\n var s = _ref4[0];\n return s;\n }\n };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n var one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = function literal(t) {\n return {\n regex: RegExp(escapeToken(t.val)),\n deser: function deser(_ref5) {\n var s = _ref5[0];\n return s;\n },\n literal: true\n };\n },\n unitate = function unitate(t) {\n if (token.literal) {\n return literal(t);\n }\n\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n\n case \"y\":\n return intUnit(oneToSix);\n\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n\n case \"yyyy\":\n return intUnit(four);\n\n case \"yyyyy\":\n return intUnit(fourToSix);\n\n case \"yyyyyy\":\n return intUnit(six);\n // months\n\n case \"M\":\n return intUnit(oneOrTwo);\n\n case \"MM\":\n return intUnit(two);\n\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n\n case \"L\":\n return intUnit(oneOrTwo);\n\n case \"LL\":\n return intUnit(two);\n\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n\n case \"d\":\n return intUnit(oneOrTwo);\n\n case \"dd\":\n return intUnit(two);\n // ordinals\n\n case \"o\":\n return intUnit(oneToThree);\n\n case \"ooo\":\n return intUnit(three);\n // time\n\n case \"HH\":\n return intUnit(two);\n\n case \"H\":\n return intUnit(oneOrTwo);\n\n case \"hh\":\n return intUnit(two);\n\n case \"h\":\n return intUnit(oneOrTwo);\n\n case \"mm\":\n return intUnit(two);\n\n case \"m\":\n return intUnit(oneOrTwo);\n\n case \"s\":\n return intUnit(oneOrTwo);\n\n case \"ss\":\n return intUnit(two);\n\n case \"S\":\n return intUnit(oneToThree);\n\n case \"SSS\":\n return intUnit(three);\n\n case \"u\":\n return simple(oneToNine);\n // meridiem\n\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n\n case \"kkkk\":\n return intUnit(four);\n\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n\n case \"W\":\n return intUnit(oneOrTwo);\n\n case \"WW\":\n return intUnit(two);\n // weekdays\n\n case \"E\":\n case \"c\":\n return intUnit(one);\n\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(\"([+-]\" + oneOrTwo.source + \")(?::(\" + two.source + \"))?\"), 2);\n\n case \"ZZZ\":\n return offset(new RegExp(\"([+-]\" + oneOrTwo.source + \")(\" + two.source + \")?\"), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n\n default:\n return literal(t);\n }\n };\n\n var unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n unit.token = token;\n return unit;\n}\n\nfunction buildRegex(units) {\n var re = units.map(function (u) {\n return u.regex;\n }).reduce(function (f, r) {\n return f + \"(\" + r.source + \")\";\n }, \"\");\n return [\"^\" + re + \"$\", units];\n}\n\nfunction match(input, regex, handlers) {\n var matches = input.match(regex);\n\n if (matches) {\n var all = {};\n var matchIndex = 1;\n\n for (var i in handlers) {\n if (handlers.hasOwnProperty(i)) {\n var h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n\n matchIndex += groups;\n }\n }\n\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n var toField = function toField(token) {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n\n case \"s\":\n return \"second\";\n\n case \"m\":\n return \"minute\";\n\n case \"h\":\n case \"H\":\n return \"hour\";\n\n case \"d\":\n return \"day\";\n\n case \"o\":\n return \"ordinal\";\n\n case \"L\":\n case \"M\":\n return \"month\";\n\n case \"y\":\n return \"year\";\n\n case \"E\":\n case \"c\":\n return \"weekday\";\n\n case \"W\":\n return \"weekNumber\";\n\n case \"k\":\n return \"weekYear\";\n\n default:\n return null;\n }\n };\n\n var zone;\n\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n var vals = Object.keys(matches).reduce(function (r, k) {\n var f = toField(k);\n\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n return [vals, zone];\n}\n/**\r\n * @private\r\n */\n\n\nfunction explainFromTokens(locale, input, format) {\n var tokens = Formatter.parseFormat(format),\n units = tokens.map(function (t) {\n return unitForToken(t, locale);\n }),\n disqualifyingUnit = units.find(function (t) {\n return t.invalidReason;\n });\n\n if (disqualifyingUnit) {\n return {\n input: input,\n tokens: tokens,\n invalidReason: disqualifyingUnit.invalidReason\n };\n } else {\n var _buildRegex = buildRegex(units),\n regexString = _buildRegex[0],\n handlers = _buildRegex[1],\n regex = RegExp(regexString, \"i\"),\n _match = match(input, regex, handlers),\n rawMatches = _match[0],\n matches = _match[1],\n _ref6 = matches ? dateTimeFromMatches(matches) : [null, null],\n result = _ref6[0],\n zone = _ref6[1];\n\n return {\n input: input,\n tokens: tokens,\n regex: regex,\n rawMatches: rawMatches,\n matches: matches,\n result: result,\n zone: zone\n };\n }\n}\nfunction parseFromTokens(locale, input, format) {\n var _explainFromTokens = explainFromTokens(locale, input, format),\n result = _explainFromTokens.result,\n zone = _explainFromTokens.zone,\n invalidReason = _explainFromTokens.invalidReason;\n\n return [result, zone, invalidReason];\n}\n\nvar nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\"unit out of range\", \"you specified \" + value + \" (of type \" + typeof value + \") as a \" + unit + \", which is invalid\");\n}\n\nfunction dayOfWeek(year, month, day) {\n var js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n var table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(function (i) {\n return i < ordinal;\n }),\n day = ordinal - table[month0];\n return {\n month: month0 + 1,\n day: day\n };\n}\n/**\r\n * @private\r\n */\n\n\nfunction gregorianToWeek(gregObj) {\n var year = gregObj.year,\n month = gregObj.month,\n day = gregObj.day,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n var weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({\n weekYear: weekYear,\n weekNumber: weekNumber,\n weekday: weekday\n }, timeObject(gregObj));\n}\nfunction weekToGregorian(weekData) {\n var weekYear = weekData.weekYear,\n weekNumber = weekData.weekNumber,\n weekday = weekData.weekday,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n var ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n var _uncomputeOrdinal = uncomputeOrdinal(year, ordinal),\n month = _uncomputeOrdinal.month,\n day = _uncomputeOrdinal.day;\n\n return Object.assign({\n year: year,\n month: month,\n day: day\n }, timeObject(weekData));\n}\nfunction gregorianToOrdinal(gregData) {\n var year = gregData.year,\n month = gregData.month,\n day = gregData.day,\n ordinal = computeOrdinal(year, month, day);\n return Object.assign({\n year: year,\n ordinal: ordinal\n }, timeObject(gregData));\n}\nfunction ordinalToGregorian(ordinalData) {\n var year = ordinalData.year,\n ordinal = ordinalData.ordinal,\n _uncomputeOrdinal2 = uncomputeOrdinal(year, ordinal),\n month = _uncomputeOrdinal2.month,\n day = _uncomputeOrdinal2.day;\n\n return Object.assign({\n year: year,\n month: month,\n day: day\n }, timeObject(ordinalData));\n}\nfunction hasInvalidWeekData(obj) {\n var validYear = isNumber(obj.weekYear),\n validWeek = numberBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = numberBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\nfunction hasInvalidOrdinalData(obj) {\n var validYear = isNumber(obj.year),\n validOrdinal = numberBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\nfunction hasInvalidGregorianData(obj) {\n var validYear = isNumber(obj.year),\n validMonth = numberBetween(obj.month, 1, 12),\n validDay = numberBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\nfunction hasInvalidTimeData(obj) {\n var hour = obj.hour,\n minute = obj.minute,\n second = obj.second,\n millisecond = obj.millisecond;\n var validHour = numberBetween(hour, 0, 23) || hour === 24 && minute === 0 && second === 0 && millisecond === 0,\n validMinute = numberBetween(minute, 0, 59),\n validSecond = numberBetween(second, 0, 59),\n validMillisecond = numberBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n\nvar INVALID$2 = \"Invalid DateTime\";\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", \"the zone \\\"\" + zone.name + \"\\\" is not supported\");\n} // we cache week data on the DT object and this intermediates the cache\n\n\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n\n return dt.weekData;\n} // clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\n\n\nfunction clone$1(inst, alts) {\n var current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, {\n old: current\n }));\n} // find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\n\n\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n var utcGuess = localTS - o * 60 * 1000; // Test whether the zone matches the offset for this ts\n\n var o2 = tz.offset(utcGuess); // If so, offset didn't change and we're done\n\n if (o === o2) {\n return [utcGuess, o];\n } // If not, change the ts by the difference in the offset\n\n\n utcGuess -= (o2 - o) * 60 * 1000; // If that gives us the local time we want, we're done\n\n var o3 = tz.offset(utcGuess);\n\n if (o2 === o3) {\n return [utcGuess, o2];\n } // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n\n\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n} // convert an epoch timestamp into a calendar object with the given offset\n\n\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n var d = new Date(ts);\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n} // convert a calendar object to a epoch timestamp\n\n\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n} // create a new DT instance by adding a duration, adjusting for DSTs\n\n\nfunction adjustTime(inst, dur) {\n var oPre = inst.o,\n year = inst.c.year + dur.years,\n month = inst.c.month + dur.months + dur.quarters * 3,\n c = Object.assign({}, inst.c, {\n year: year,\n month: month,\n day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7\n }),\n millisToAdd = Duration.fromObject({\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n var _fixOffset = fixOffset(localTS, oPre, inst.zone),\n ts = _fixOffset[0],\n o = _fixOffset[1];\n\n if (millisToAdd !== 0) {\n ts += millisToAdd; // that could have changed the offset by going over a DST, but we want to keep the ts the same\n\n o = inst.zone.offset(ts);\n }\n\n return {\n ts: ts,\n o: o\n };\n} // helper useful in turning the results of parsing into real dates\n// by handling the zone options\n\n\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n var setZone = opts.setZone,\n zone = opts.zone;\n\n if (parsed && Object.keys(parsed).length !== 0) {\n var interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n }));\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(new Invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as \" + format));\n }\n} // if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\n\n\nfunction toTechFormat(dt, format) {\n return dt.isValid ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ: true,\n forceSimple: true\n }).formatDateTimeFromString(dt, format) : null;\n} // technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\n\n\nfunction toTechTimeFormat(dt, _ref) {\n var _ref$suppressSeconds = _ref.suppressSeconds,\n suppressSeconds = _ref$suppressSeconds === void 0 ? false : _ref$suppressSeconds,\n _ref$suppressMillisec = _ref.suppressMilliseconds,\n suppressMilliseconds = _ref$suppressMillisec === void 0 ? false : _ref$suppressMillisec,\n includeOffset = _ref.includeOffset,\n _ref$includeZone = _ref.includeZone,\n includeZone = _ref$includeZone === void 0 ? false : _ref$includeZone,\n _ref$spaceZone = _ref.spaceZone,\n spaceZone = _ref$spaceZone === void 0 ? false : _ref$spaceZone;\n var fmt = \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += \":ss\";\n\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n} // defaults for unspecified units in the supported calendars\n\n\nvar defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n},\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n},\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n}; // Units in the supported calendars, sorted by bigness\n\nvar orderedUnits$1 = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\"weekYear\", \"weekNumber\", \"weekday\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"]; // standardize case and plurality in units\n\nfunction normalizeUnit(unit) {\n var normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n if (!normalized) throw new InvalidUnitError(unit);\n return normalized;\n} // this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\n\n\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (var _i = 0, _orderedUnits = orderedUnits$1; _i < _orderedUnits.length; _i++) {\n var u = _orderedUnits[_i];\n\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n var invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n var tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n _objToTS = objToTS(obj, offsetProvis, zone),\n ts = _objToTS[0],\n o = _objToTS[1];\n\n return new DateTime({\n ts: ts,\n zone: zone,\n o: o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n var round = isUndefined(opts.round) ? true : opts.round,\n format = function format(c, unit) {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n var formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = function differ(unit) {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (var _iterator = opts.units, _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref2;\n\n if (_isArray) {\n if (_i2 >= _iterator.length) break;\n _ref2 = _iterator[_i2++];\n } else {\n _i2 = _iterator.next();\n if (_i2.done) break;\n _ref2 = _i2.value;\n }\n\n var unit = _ref2;\n var count = differ(unit);\n\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n\n return format(0, opts.units[opts.units.length - 1]);\n}\n/**\r\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\r\n *\r\n * A DateTime comprises of:\r\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\r\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\r\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\r\n *\r\n * Here is a brief overview of the most commonly used functionality it provides:\r\n *\r\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\r\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\r\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\r\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\r\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\r\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\r\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\r\n *\r\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\r\n */\n\n\nvar DateTime =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @access private\r\n */\n function DateTime(config) {\n var zone = config.zone || Settings.defaultZone,\n invalid = config.invalid || (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) || (!zone.isValid ? unsupportedZone(zone) : null);\n /**\r\n * @access private\r\n */\n\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n var c = null,\n o = null;\n\n if (!invalid) {\n var unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n c = unchanged ? config.old.c : tsToObj(this.ts, zone.offset(this.ts));\n o = unchanged ? config.old.o : zone.offset(this.ts);\n }\n /**\r\n * @access private\r\n */\n\n\n this._zone = zone;\n /**\r\n * @access private\r\n */\n\n this.loc = config.loc || Locale.create();\n /**\r\n * @access private\r\n */\n\n this.invalid = invalid;\n /**\r\n * @access private\r\n */\n\n this.weekData = null;\n /**\r\n * @access private\r\n */\n\n this.c = c;\n /**\r\n * @access private\r\n */\n\n this.o = o;\n /**\r\n * @access private\r\n */\n\n this.isLuxonDateTime = true;\n } // CONSTRUCT\n\n /**\r\n * Create a local DateTime\r\n * @param {number} year - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\r\n * @param {number} [month=1] - The month, 1-indexed\r\n * @param {number} [day=1] - The day of the month\r\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\r\n * @param {number} [minute=0] - The minute of the hour, i.e. a number between 0 and 59\r\n * @param {number} [second=0] - The second of the minute, i.e. a number between 0 and 59\r\n * @param {number} [millisecond=0] - The millisecond of the second, i.e. a number between 0 and 999\r\n * @example DateTime.local() //~> now\r\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\r\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\r\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\r\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\r\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\r\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\r\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\r\n * @return {DateTime}\r\n */\n\n\n DateTime.local = function local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now()\n });\n } else {\n return quickDT({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n millisecond: millisecond\n }, Settings.defaultZone);\n }\n }\n /**\r\n * Create a DateTime in UTC\r\n * @param {number} year - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\r\n * @param {number} [month=1] - The month, 1-indexed\r\n * @param {number} [day=1] - The day of the month\r\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\r\n * @param {number} [minute=0] - The minute of the hour, i.e. a number between 0 and 59\r\n * @param {number} [second=0] - The second of the minute, i.e. a number between 0 and 59\r\n * @param {number} [millisecond=0] - The millisecond of the second, i.e. a number between 0 and 999\r\n * @example DateTime.utc() //~> now\r\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\r\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\r\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\r\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\r\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\r\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\r\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.utc = function utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n millisecond: millisecond\n }, FixedOffsetZone.utcInstance);\n }\n }\n /**\r\n * Create a DateTime from a Javascript Date object. Uses the default zone.\r\n * @param {Date} date - a Javascript Date object\r\n * @param {Object} options - configuration options for the DateTime\r\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.fromJSDate = function fromJSDate(date, options) {\n if (options === void 0) {\n options = {};\n }\n\n var ts = isDate(date) ? date.valueOf() : NaN;\n\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n var zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n /**\r\n * Create a DateTime from a number of milliseconds since the epoch (i.e. since 1 January 1970 00:00:00 UTC). Uses the default zone.\r\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\r\n * @param {Object} options - configuration options for the DateTime\r\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\r\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\r\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\r\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.fromMillis = function fromMillis(milliseconds, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\"fromMillis requires a numerical input\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n /**\r\n * Create a DateTime from a number of seconds since the epoch (i.e. since 1 January 1970 00:00:00 UTC). Uses the default zone.\r\n * @param {number} seconds - a number of seconds since 1970 UTC\r\n * @param {Object} options - configuration options for the DateTime\r\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\r\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\r\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\r\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.fromSeconds = function fromSeconds(seconds, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n /**\r\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\r\n * @param {Object} obj - the object to create the DateTime from\r\n * @param {number} obj.year - a year, such as 1987\r\n * @param {number} obj.month - a month, 1-12\r\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\r\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\r\n * @param {number} obj.weekYear - an ISO week year\r\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\r\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\r\n * @param {number} obj.hour - hour of the day, 0-23\r\n * @param {number} obj.minute - minute of the hour, 0-59\r\n * @param {number} obj.second - second of the minute, 0-59\r\n * @param {number} obj.millisecond - millisecond of the second, 0-999\r\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\r\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\r\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\r\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\r\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\r\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\r\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\r\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\r\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\r\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\r\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.fromObject = function fromObject(obj) {\n var zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n var tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\"zone\", \"locale\", \"outputCalendar\", \"numberingSystem\"]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj); // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\"Can't mix weekYear/weekNumber units with year/month/day or ordinals\");\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n var useWeekData = definiteWeekDef || normalized.weekday && !containsGregor; // configure ourselves to deal with gregorian dates or week stuff\n\n var units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits$1;\n defaultValues = defaultUnitValues;\n } // set default values for missing stuff\n\n\n var foundFirst = false;\n\n for (var _iterator2 = units, _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {\n var _ref3;\n\n if (_isArray2) {\n if (_i3 >= _iterator2.length) break;\n _ref3 = _iterator2[_i3++];\n } else {\n _i3 = _iterator2.next();\n if (_i3.done) break;\n _ref3 = _i3.value;\n }\n\n var u = _ref3;\n var v = normalized[u];\n\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n } // make sure the values we have are in range\n\n\n var higherOrderInvalid = useWeekData ? hasInvalidWeekData(normalized) : containsOrdinal ? hasInvalidOrdinalData(normalized) : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n } // compute the actual time\n\n\n var gregorian = useWeekData ? weekToGregorian(normalized) : containsOrdinal ? ordinalToGregorian(normalized) : normalized,\n _objToTS2 = objToTS(gregorian, offsetProvis, zoneToUse),\n tsFinal = _objToTS2[0],\n offsetFinal = _objToTS2[1],\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc: loc\n }); // gregorian data + weekday serves only to validate\n\n\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\"mismatched weekday\", \"you can't specify both a weekday of \" + normalized.weekday + \" and a date of \" + inst.toISO());\n }\n\n return inst;\n }\n /**\r\n * Create a DateTime from an ISO 8601 string\r\n * @param {string} text - the ISO string\r\n * @param {Object} opts - options to affect the creation\r\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\r\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\r\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\r\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\r\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\r\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\r\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\r\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\r\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\r\n * @example DateTime.fromISO('2016-W05-4')\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.fromISO = function fromISO(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var _parseISODate = parseISODate(text),\n vals = _parseISODate[0],\n parsedZone = _parseISODate[1];\n\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n /**\r\n * Create a DateTime from an RFC 2822 string\r\n * @param {string} text - the RFC 2822 string\r\n * @param {Object} opts - options to affect the creation\r\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\r\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\r\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\r\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\r\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\r\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\r\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\r\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.fromRFC2822 = function fromRFC2822(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var _parseRFC2822Date = parseRFC2822Date(text),\n vals = _parseRFC2822Date[0],\n parsedZone = _parseRFC2822Date[1];\n\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n /**\r\n * Create a DateTime from an HTTP header date\r\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\r\n * @param {string} text - the HTTP header date\r\n * @param {Object} opts - options to affect the creation\r\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\r\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\r\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\r\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\r\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\r\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\r\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\r\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.fromHTTP = function fromHTTP(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var _parseHTTPDate = parseHTTPDate(text),\n vals = _parseHTTPDate[0],\n parsedZone = _parseHTTPDate[1];\n\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n /**\r\n * Create a DateTime from an input string and format string.\r\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\r\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\r\n * @param {string} text - the string to parse\r\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\r\n * @param {Object} opts - options to affect the creation\r\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\r\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\r\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\r\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\r\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.fromFormat = function fromFormat(text, fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n var _opts = opts,\n _opts$locale = _opts.locale,\n locale = _opts$locale === void 0 ? null : _opts$locale,\n _opts$numberingSystem = _opts.numberingSystem,\n numberingSystem = _opts$numberingSystem === void 0 ? null : _opts$numberingSystem,\n localeToUse = Locale.fromOpts({\n locale: locale,\n numberingSystem: numberingSystem,\n defaultToEN: true\n }),\n _parseFromTokens = parseFromTokens(localeToUse, text, fmt),\n vals = _parseFromTokens[0],\n parsedZone = _parseFromTokens[1],\n invalid = _parseFromTokens[2];\n\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, \"format \" + fmt, text);\n }\n }\n /**\r\n * @deprecated use fromFormat instead\r\n */\n ;\n\n DateTime.fromString = function fromString(text, fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n return DateTime.fromFormat(text, fmt, opts);\n }\n /**\r\n * Create a DateTime from a SQL date, time, or datetime\r\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\r\n * @param {string} text - the string to parse\r\n * @param {Object} opts - options to affect the creation\r\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\r\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\r\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\r\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\r\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\r\n * @example DateTime.fromSQL('2017-05-15')\r\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\r\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\r\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\r\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\r\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\r\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\r\n * @example DateTime.fromSQL('09:12:34.342')\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.fromSQL = function fromSQL(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var _parseSQL = parseSQL(text),\n vals = _parseSQL[0],\n parsedZone = _parseSQL[1];\n\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n /**\r\n * Create an invalid DateTime.\r\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\r\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\r\n * @return {DateTime}\r\n */\n ;\n\n DateTime.invalid = function invalid(reason, explanation) {\n if (explanation === void 0) {\n explanation = null;\n }\n\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n var invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({\n invalid: invalid\n });\n }\n }\n /**\r\n * Check if an object is a DateTime. Works across context boundaries\r\n * @param {object} o\r\n * @return {boolean}\r\n */\n ;\n\n DateTime.isDateTime = function isDateTime(o) {\n return o && o.isLuxonDateTime || false;\n } // INFO\n\n /**\r\n * Get the value of unit.\r\n * @param {string} unit - a unit such as 'minute' or 'day'\r\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\r\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\r\n * @return {number}\r\n */\n ;\n\n var _proto = DateTime.prototype;\n\n _proto.get = function get(unit) {\n return this[unit];\n }\n /**\r\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\r\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\r\n * * The DateTime was created by an operation on another invalid date\r\n * @type {boolean}\r\n */\n ;\n\n /**\r\n * Returns the resolved Intl options for this DateTime.\r\n * This is useful in understanding the behavior of formatting methods\r\n * @param {Object} opts - the same options as toLocaleString\r\n * @return {Object}\r\n */\n _proto.resolvedLocaleOpts = function resolvedLocaleOpts(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var _Formatter$create$res = Formatter.create(this.loc.clone(opts), opts).resolvedOptions(this),\n locale = _Formatter$create$res.locale,\n numberingSystem = _Formatter$create$res.numberingSystem,\n calendar = _Formatter$create$res.calendar;\n\n return {\n locale: locale,\n numberingSystem: numberingSystem,\n outputCalendar: calendar\n };\n } // TRANSFORM\n\n /**\r\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\r\n *\r\n * Equivalent to {@link setZone}('utc')\r\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\r\n * @param {Object} [opts={}] - options to pass to `setZone()`\r\n * @return {DateTime}\r\n */\n ;\n\n _proto.toUTC = function toUTC(offset, opts) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (opts === void 0) {\n opts = {};\n }\n\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n /**\r\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\r\n *\r\n * Equivalent to `setZone('local')`\r\n * @return {DateTime}\r\n */\n ;\n\n _proto.toLocal = function toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n /**\r\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\r\n *\r\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\r\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\r\n * @param {Object} opts - options\r\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\r\n * @return {DateTime}\r\n */\n ;\n\n _proto.setZone = function setZone(zone, _temp) {\n var _ref4 = _temp === void 0 ? {} : _temp,\n _ref4$keepLocalTime = _ref4.keepLocalTime,\n keepLocalTime = _ref4$keepLocalTime === void 0 ? false : _ref4$keepLocalTime,\n _ref4$keepCalendarTim = _ref4.keepCalendarTime,\n keepCalendarTime = _ref4$keepCalendarTim === void 0 ? false : _ref4$keepCalendarTim;\n\n zone = normalizeZone(zone, Settings.defaultZone);\n\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n var newTS = this.ts;\n\n if (keepLocalTime || keepCalendarTime) {\n var offsetGuess = this.o - zone.offset(this.ts);\n var asObj = this.toObject();\n\n var _objToTS3 = objToTS(asObj, offsetGuess, zone);\n\n newTS = _objToTS3[0];\n }\n\n return clone$1(this, {\n ts: newTS,\n zone: zone\n });\n }\n }\n /**\r\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\r\n * @param {Object} properties - the properties to set\r\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\r\n * @return {DateTime}\r\n */\n ;\n\n _proto.reconfigure = function reconfigure(_temp2) {\n var _ref5 = _temp2 === void 0 ? {} : _temp2,\n locale = _ref5.locale,\n numberingSystem = _ref5.numberingSystem,\n outputCalendar = _ref5.outputCalendar;\n\n var loc = this.loc.clone({\n locale: locale,\n numberingSystem: numberingSystem,\n outputCalendar: outputCalendar\n });\n return clone$1(this, {\n loc: loc\n });\n }\n /**\r\n * \"Set\" the locale. Returns a newly-constructed DateTime.\r\n * Just a convenient alias for reconfigure({ locale })\r\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\r\n * @return {DateTime}\r\n */\n ;\n\n _proto.setLocale = function setLocale(locale) {\n return this.reconfigure({\n locale: locale\n });\n }\n /**\r\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\r\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\r\n * @param {Object} values - a mapping of units to numbers\r\n * @example dt.set({ year: 2017 })\r\n * @example dt.set({ hour: 8, minute: 30 })\r\n * @example dt.set({ weekday: 5 })\r\n * @example dt.set({ year: 2005, ordinal: 234 })\r\n * @return {DateTime}\r\n */\n ;\n\n _proto.set = function set(values) {\n if (!this.isValid) return this;\n var normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff = !isUndefined(normalized.weekYear) || !isUndefined(normalized.weekNumber) || !isUndefined(normalized.weekday);\n var mixed;\n\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized); // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n var _objToTS4 = objToTS(mixed, this.o, this.zone),\n ts = _objToTS4[0],\n o = _objToTS4[1];\n\n return clone$1(this, {\n ts: ts,\n o: o\n });\n }\n /**\r\n * Add a period of time to this DateTime and return the resulting DateTime\r\n *\r\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\r\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\r\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\r\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\r\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\r\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\r\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\r\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\r\n * @return {DateTime}\r\n */\n ;\n\n _proto.plus = function plus(duration) {\n if (!this.isValid) return this;\n var dur = friendlyDuration(duration);\n return clone$1(this, adjustTime(this, dur));\n }\n /**\r\n * Subtract a period of time to this DateTime and return the resulting DateTime\r\n * See {@link plus}\r\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\r\n @return {DateTime}\r\n */\n ;\n\n _proto.minus = function minus(duration) {\n if (!this.isValid) return this;\n var dur = friendlyDuration(duration).negate();\n return clone$1(this, adjustTime(this, dur));\n }\n /**\r\n * \"Set\" this DateTime to the beginning of a unit of time.\r\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\r\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\r\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\r\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\r\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\r\n * @return {DateTime}\r\n */\n ;\n\n _proto.startOf = function startOf(unit) {\n if (!this.isValid) return this;\n var o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n\n case \"hours\":\n o.minute = 0;\n // falls through\n\n case \"minutes\":\n o.second = 0;\n // falls through\n\n case \"seconds\":\n o.millisecond = 0;\n break;\n\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n var q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n /**\r\n * \"Set\" this DateTime to the end (i.e. the last millisecond) of a unit of time\r\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\r\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\r\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\r\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\r\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\r\n * @return {DateTime}\r\n */\n ;\n\n _proto.endOf = function endOf(unit) {\n var _this$plus;\n\n return this.isValid ? this.plus((_this$plus = {}, _this$plus[unit] = 1, _this$plus)).startOf(unit).minus(1) : this;\n } // OUTPUT\n\n /**\r\n * Returns a string representation of this DateTime formatted according to the specified format string.\r\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\r\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\r\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\r\n * @param {string} fmt - the format string\r\n * @param {Object} opts - opts to override the configuration options\r\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\r\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\r\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\r\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\r\n * @return {string}\r\n */\n ;\n\n _proto.toFormat = function toFormat(fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n return this.isValid ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) : INVALID$2;\n }\n /**\r\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\r\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\r\n * of the DateTime in the assigned locale.\r\n * Defaults to the system's locale if no locale has been specified\r\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\r\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\r\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\r\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\r\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\r\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\r\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\r\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\r\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\r\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\r\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\r\n * @return {string}\r\n */\n ;\n\n _proto.toLocaleString = function toLocaleString(opts) {\n if (opts === void 0) {\n opts = DATE_SHORT;\n }\n\n return this.isValid ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this) : INVALID$2;\n }\n /**\r\n * Returns an array of format \"parts\", i.e. individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\r\n * Defaults to the system's locale if no locale has been specified\r\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\r\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\r\n * @example DateTime.local().toLocaleString(); //=> [\r\n * //=> { type: 'day', value: '25' },\r\n * //=> { type: 'literal', value: '/' },\r\n * //=> { type: 'month', value: '05' },\r\n * //=> { type: 'literal', value: '/' },\r\n * //=> { type: 'year', value: '1982' }\r\n * //=> ]\r\n */\n ;\n\n _proto.toLocaleParts = function toLocaleParts(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n return this.isValid ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this) : [];\n }\n /**\r\n * Returns an ISO 8601-compliant string representation of this DateTime\r\n * @param {Object} opts - options\r\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\r\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\r\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\r\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\r\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\r\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\r\n * @return {string}\r\n */\n ;\n\n _proto.toISO = function toISO(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n if (!this.isValid) {\n return null;\n }\n\n return this.toISODate() + \"T\" + this.toISOTime(opts);\n }\n /**\r\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\r\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\r\n * @return {string}\r\n */\n ;\n\n _proto.toISODate = function toISODate() {\n var format = \"yyyy-MM-dd\";\n\n if (this.year > 9999) {\n format = \"+\" + format;\n }\n\n return toTechFormat(this, format);\n }\n /**\r\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\r\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\r\n * @return {string}\r\n */\n ;\n\n _proto.toISOWeekDate = function toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n /**\r\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\r\n * @param {Object} opts - options\r\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\r\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\r\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\r\n * @example DateTime.utc().hour(7).minute(34).toISOTime() //=> '07:34:19.361Z'\r\n * @example DateTime.utc().hour(7).minute(34).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\r\n * @return {string}\r\n */\n ;\n\n _proto.toISOTime = function toISOTime(_temp3) {\n var _ref6 = _temp3 === void 0 ? {} : _temp3,\n _ref6$suppressMillise = _ref6.suppressMilliseconds,\n suppressMilliseconds = _ref6$suppressMillise === void 0 ? false : _ref6$suppressMillise,\n _ref6$suppressSeconds = _ref6.suppressSeconds,\n suppressSeconds = _ref6$suppressSeconds === void 0 ? false : _ref6$suppressSeconds,\n _ref6$includeOffset = _ref6.includeOffset,\n includeOffset = _ref6$includeOffset === void 0 ? true : _ref6$includeOffset;\n\n return toTechTimeFormat(this, {\n suppressSeconds: suppressSeconds,\n suppressMilliseconds: suppressMilliseconds,\n includeOffset: includeOffset\n });\n }\n /**\r\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\r\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\r\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\r\n * @return {string}\r\n */\n ;\n\n _proto.toRFC2822 = function toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\");\n }\n /**\r\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\r\n * Specifically, the string conforms to RFC 1123.\r\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\r\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\r\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\r\n * @return {string}\r\n */\n ;\n\n _proto.toHTTP = function toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n /**\r\n * Returns a string representation of this DateTime appropriate for use in SQL Date\r\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\r\n * @return {string}\r\n */\n ;\n\n _proto.toSQLDate = function toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n /**\r\n * Returns a string representation of this DateTime appropriate for use in SQL Time\r\n * @param {Object} opts - options\r\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\r\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\r\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\r\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\r\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\r\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\r\n * @return {string}\r\n */\n ;\n\n _proto.toSQLTime = function toSQLTime(_temp4) {\n var _ref7 = _temp4 === void 0 ? {} : _temp4,\n _ref7$includeOffset = _ref7.includeOffset,\n includeOffset = _ref7$includeOffset === void 0 ? true : _ref7$includeOffset,\n _ref7$includeZone = _ref7.includeZone,\n includeZone = _ref7$includeZone === void 0 ? false : _ref7$includeZone;\n\n return toTechTimeFormat(this, {\n includeOffset: includeOffset,\n includeZone: includeZone,\n spaceZone: true\n });\n }\n /**\r\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\r\n * @param {Object} opts - options\r\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\r\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\r\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\r\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\r\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\r\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\r\n * @return {string}\r\n */\n ;\n\n _proto.toSQL = function toSQL(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n if (!this.isValid) {\n return null;\n }\n\n return this.toSQLDate() + \" \" + this.toSQLTime(opts);\n }\n /**\r\n * Returns a string representation of this DateTime appropriate for debugging\r\n * @return {string}\r\n */\n ;\n\n _proto.toString = function toString() {\n return this.isValid ? this.toISO() : INVALID$2;\n }\n /**\r\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\r\n * @return {number}\r\n */\n ;\n\n _proto.valueOf = function valueOf() {\n return this.toMillis();\n }\n /**\r\n * Returns the epoch milliseconds of this DateTime.\r\n * @return {number}\r\n */\n ;\n\n _proto.toMillis = function toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n /**\r\n * Returns the epoch seconds of this DateTime.\r\n * @return {number}\r\n */\n ;\n\n _proto.toSeconds = function toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n /**\r\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\r\n * @return {string}\r\n */\n ;\n\n _proto.toJSON = function toJSON() {\n return this.toISO();\n }\n /**\r\n * Returns a BSON serializable equivalent to this DateTime.\r\n * @return {Date}\r\n */\n ;\n\n _proto.toBSON = function toBSON() {\n return this.toJSDate();\n }\n /**\r\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\r\n * @param opts - options for generating the object\r\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\r\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\r\n * @return {Object}\r\n */\n ;\n\n _proto.toObject = function toObject(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n if (!this.isValid) return {};\n var base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n\n return base;\n }\n /**\r\n * Returns a Javascript Date equivalent to this DateTime.\r\n * @return {Date}\r\n */\n ;\n\n _proto.toJSDate = function toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n } // COMPARE\n\n /**\r\n * Return the difference between two DateTimes as a Duration.\r\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\r\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\r\n * @param {Object} opts - options that affect the creation of the Duration\r\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\r\n * @example\r\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\r\n * i2 = DateTime.fromISO('1983-10-14T10:30');\r\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\r\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\r\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\r\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\r\n * @return {Duration}\r\n */\n ;\n\n _proto.diff = function diff(otherDateTime, unit, opts) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n\n if (opts === void 0) {\n opts = {};\n }\n\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(this.invalid || otherDateTime.invalid, \"created by diffing an invalid DateTime\");\n }\n\n var durOpts = Object.assign({\n locale: this.locale,\n numberingSystem: this.numberingSystem\n }, opts);\n\n var units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = _diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n /**\r\n * Return the difference between this DateTime and right now.\r\n * See {@link diff}\r\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\r\n * @param {Object} opts - options that affect the creation of the Duration\r\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\r\n * @return {Duration}\r\n */\n ;\n\n _proto.diffNow = function diffNow(unit, opts) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n\n if (opts === void 0) {\n opts = {};\n }\n\n return this.diff(DateTime.local(), unit, opts);\n }\n /**\r\n * Return an Interval spanning between this DateTime and another DateTime\r\n * @param {DateTime} otherDateTime - the other end point of the Interval\r\n * @return {Interval}\r\n */\n ;\n\n _proto.until = function until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n /**\r\n * Return whether this DateTime is in the same unit of time as another DateTime\r\n * @param {DateTime} otherDateTime - the other DateTime\r\n * @param {string} unit - the unit of time to check sameness on\r\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\r\n * @return {boolean}\r\n */\n ;\n\n _proto.hasSame = function hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n var inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n /**\r\n * Equality check\r\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\r\n * To compare just the millisecond values, use `+dt1 === ~dt2`.\r\n * @param {DateTime} other - the other DateTime\r\n * @return {boolean}\r\n */\n ;\n\n _proto.equals = function equals(other) {\n return this.isValid && other.isValid && this.valueOf() === other.valueOf() && this.zone.equals(other.zone) && this.loc.equals(other.loc);\n }\n /**\r\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\r\n * platform supports Intl.RelativeDateFormat, **which it probably doesn't yet!** (As of this writing, only Chrome supports that). Rounds down by default.\r\n * @param {Object} options - options that affect the output\r\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\r\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\r\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"year\", \"quarter\", \"month\", \"week\", \"day\", \"hour\", \"minute\", or \"second\"\r\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\r\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\r\n * @param {string} options.locale - override the locale of this DateTime\r\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\r\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\r\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\r\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\r\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\r\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\r\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\r\n */\n ;\n\n _proto.toRelative = function toRelative(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!this.isValid) return null;\n var base = options.base || DateTime.fromObject({\n zone: this.zone\n }),\n padding = options.padding ? this < base ? -options.padding : options.padding : 0;\n return diffRelative(base, this.plus(padding), Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n }));\n }\n /**\r\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\"\r\n * platform supports Intl.RelativeDateFormat.\r\n * @param {Object} options - options that affect the output\r\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\r\n * @param {string} options.locale - override the locale of this DateTime\r\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"year\", \"quarter\", \"month\", \"week\", or \"day\"\r\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\r\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\r\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\r\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\r\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\r\n */\n ;\n\n _proto.toRelativeCalendar = function toRelativeCalendar(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!this.isValid) return null;\n return diffRelative(options.base || DateTime.fromObject({\n zone: this.zone\n }), this, Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n }));\n }\n /**\r\n * Return the min of several date times\r\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\r\n * @return {DateTime} the min DateTime, or undefined if called with no argument\r\n */\n ;\n\n DateTime.min = function min() {\n for (var _len = arguments.length, dateTimes = new Array(_len), _key = 0; _key < _len; _key++) {\n dateTimes[_key] = arguments[_key];\n }\n\n return bestBy(dateTimes, function (i) {\n return i.valueOf();\n }, Math.min);\n }\n /**\r\n * Return the max of several date times\r\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\r\n * @return {DateTime} the max DateTime, or undefined if called with no argument\r\n */\n ;\n\n DateTime.max = function max() {\n for (var _len2 = arguments.length, dateTimes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n dateTimes[_key2] = arguments[_key2];\n }\n\n return bestBy(dateTimes, function (i) {\n return i.valueOf();\n }, Math.max);\n } // MISC\n\n /**\r\n * Explain how a string would be parsed by fromFormat()\r\n * @param {string} text - the string to parse\r\n * @param {string} fmt - the format the string is expected to be in (see description)\r\n * @param {Object} options - options taken by fromFormat()\r\n * @return {Object}\r\n */\n ;\n\n DateTime.fromFormatExplain = function fromFormatExplain(text, fmt, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$locale = _options.locale,\n locale = _options$locale === void 0 ? null : _options$locale,\n _options$numberingSys = _options.numberingSystem,\n numberingSystem = _options$numberingSys === void 0 ? null : _options$numberingSys,\n localeToUse = Locale.fromOpts({\n locale: locale,\n numberingSystem: numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n /**\r\n * @deprecated use fromFormatExplain instead\r\n */\n ;\n\n DateTime.fromStringExplain = function fromStringExplain(text, fmt, options) {\n if (options === void 0) {\n options = {};\n }\n\n return DateTime.fromFormatExplain(text, fmt, options);\n } // FORMAT PRESETS\n\n /**\r\n * {@link toLocaleString} format like 10/14/1983\r\n * @type {Object}\r\n */\n ;\n\n _createClass(DateTime, [{\n key: \"isValid\",\n get: function get() {\n return this.invalid === null;\n }\n /**\r\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\r\n * @type {string}\r\n */\n\n }, {\n key: \"invalidReason\",\n get: function get() {\n return this.invalid ? this.invalid.reason : null;\n }\n /**\r\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\r\n * @type {string}\r\n */\n\n }, {\n key: \"invalidExplanation\",\n get: function get() {\n return this.invalid ? this.invalid.explanation : null;\n }\n /**\r\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\r\n *\r\n * @type {string}\r\n */\n\n }, {\n key: \"locale\",\n get: function get() {\n return this.isValid ? this.loc.locale : null;\n }\n /**\r\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\r\n *\r\n * @type {string}\r\n */\n\n }, {\n key: \"numberingSystem\",\n get: function get() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n /**\r\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\r\n *\r\n * @type {string}\r\n */\n\n }, {\n key: \"outputCalendar\",\n get: function get() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n /**\r\n * Get the time zone associated with this DateTime.\r\n * @type {Zone}\r\n */\n\n }, {\n key: \"zone\",\n get: function get() {\n return this._zone;\n }\n /**\r\n * Get the name of the time zone.\r\n * @type {string}\r\n */\n\n }, {\n key: \"zoneName\",\n get: function get() {\n return this.isValid ? this.zone.name : null;\n }\n /**\r\n * Get the year\r\n * @example DateTime.local(2017, 5, 25).year //=> 2017\r\n * @type {number}\r\n */\n\n }, {\n key: \"year\",\n get: function get() {\n return this.isValid ? this.c.year : NaN;\n }\n /**\r\n * Get the quarter\r\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\r\n * @type {number}\r\n */\n\n }, {\n key: \"quarter\",\n get: function get() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n /**\r\n * Get the month (1-12).\r\n * @example DateTime.local(2017, 5, 25).month //=> 5\r\n * @type {number}\r\n */\n\n }, {\n key: \"month\",\n get: function get() {\n return this.isValid ? this.c.month : NaN;\n }\n /**\r\n * Get the day of the month (1-30ish).\r\n * @example DateTime.local(2017, 5, 25).day //=> 25\r\n * @type {number}\r\n */\n\n }, {\n key: \"day\",\n get: function get() {\n return this.isValid ? this.c.day : NaN;\n }\n /**\r\n * Get the hour of the day (0-23).\r\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\r\n * @type {number}\r\n */\n\n }, {\n key: \"hour\",\n get: function get() {\n return this.isValid ? this.c.hour : NaN;\n }\n /**\r\n * Get the minute of the hour (0-59).\r\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\r\n * @type {number}\r\n */\n\n }, {\n key: \"minute\",\n get: function get() {\n return this.isValid ? this.c.minute : NaN;\n }\n /**\r\n * Get the second of the minute (0-59).\r\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\r\n * @type {number}\r\n */\n\n }, {\n key: \"second\",\n get: function get() {\n return this.isValid ? this.c.second : NaN;\n }\n /**\r\n * Get the millisecond of the second (0-999).\r\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\r\n * @type {number}\r\n */\n\n }, {\n key: \"millisecond\",\n get: function get() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n /**\r\n * Get the week year\r\n * @see https://en.wikipedia.org/wiki/ISO_week_date\r\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\r\n * @type {number}\r\n */\n\n }, {\n key: \"weekYear\",\n get: function get() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n /**\r\n * Get the week number of the week year (1-52ish).\r\n * @see https://en.wikipedia.org/wiki/ISO_week_date\r\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\r\n * @type {number}\r\n */\n\n }, {\n key: \"weekNumber\",\n get: function get() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n /**\r\n * Get the day of the week.\r\n * 1 is Monday and 7 is Sunday\r\n * @see https://en.wikipedia.org/wiki/ISO_week_date\r\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\r\n * @type {number}\r\n */\n\n }, {\n key: \"weekday\",\n get: function get() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n /**\r\n * Get the ordinal (i.e. the day of the year)\r\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\r\n * @type {number|DateTime}\r\n */\n\n }, {\n key: \"ordinal\",\n get: function get() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n /**\r\n * Get the human readable short month name, such as 'Oct'.\r\n * Defaults to the system's locale if no locale has been specified\r\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\r\n * @type {string}\r\n */\n\n }, {\n key: \"monthShort\",\n get: function get() {\n return this.isValid ? Info.months(\"short\", {\n locale: this.locale\n })[this.month - 1] : null;\n }\n /**\r\n * Get the human readable long month name, such as 'October'.\r\n * Defaults to the system's locale if no locale has been specified\r\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\r\n * @type {string}\r\n */\n\n }, {\n key: \"monthLong\",\n get: function get() {\n return this.isValid ? Info.months(\"long\", {\n locale: this.locale\n })[this.month - 1] : null;\n }\n /**\r\n * Get the human readable short weekday, such as 'Mon'.\r\n * Defaults to the system's locale if no locale has been specified\r\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\r\n * @type {string}\r\n */\n\n }, {\n key: \"weekdayShort\",\n get: function get() {\n return this.isValid ? Info.weekdays(\"short\", {\n locale: this.locale\n })[this.weekday - 1] : null;\n }\n /**\r\n * Get the human readable long weekday, such as 'Monday'.\r\n * Defaults to the system's locale if no locale has been specified\r\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\r\n * @type {string}\r\n */\n\n }, {\n key: \"weekdayLong\",\n get: function get() {\n return this.isValid ? Info.weekdays(\"long\", {\n locale: this.locale\n })[this.weekday - 1] : null;\n }\n /**\r\n * Get the UTC offset of this DateTime in minutes\r\n * @example DateTime.local().offset //=> -240\r\n * @example DateTime.utc().offset //=> 0\r\n * @type {number}\r\n */\n\n }, {\n key: \"offset\",\n get: function get() {\n return this.isValid ? this.zone.offset(this.ts) : NaN;\n }\n /**\r\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\r\n * Defaults to the system's locale if no locale has been specified\r\n * @type {string}\r\n */\n\n }, {\n key: \"offsetNameShort\",\n get: function get() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n /**\r\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\r\n * Defaults to the system's locale if no locale has been specified\r\n * @type {string}\r\n */\n\n }, {\n key: \"offsetNameLong\",\n get: function get() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n /**\r\n * Get whether this zone's offset ever changes, as in a DST.\r\n * @type {boolean}\r\n */\n\n }, {\n key: \"isOffsetFixed\",\n get: function get() {\n return this.isValid ? this.zone.universal : null;\n }\n /**\r\n * Get whether the DateTime is in a DST.\r\n * @type {boolean}\r\n */\n\n }, {\n key: \"isInDST\",\n get: function get() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return this.offset > this.set({\n month: 1\n }).offset || this.offset > this.set({\n month: 5\n }).offset;\n }\n }\n /**\r\n * Returns true if this DateTime is in a leap year, false otherwise\r\n * @example DateTime.local(2016).isInLeapYear //=> true\r\n * @example DateTime.local(2013).isInLeapYear //=> false\r\n * @type {boolean}\r\n */\n\n }, {\n key: \"isInLeapYear\",\n get: function get() {\n return isLeapYear(this.year);\n }\n /**\r\n * Returns the number of days in this DateTime's month\r\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\r\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\r\n * @type {number}\r\n */\n\n }, {\n key: \"daysInMonth\",\n get: function get() {\n return daysInMonth(this.year, this.month);\n }\n /**\r\n * Returns the number of days in this DateTime's year\r\n * @example DateTime.local(2016).daysInYear //=> 366\r\n * @example DateTime.local(2013).daysInYear //=> 365\r\n * @type {number}\r\n */\n\n }, {\n key: \"daysInYear\",\n get: function get() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n /**\r\n * Returns the number of weeks in this DateTime's year\r\n * @see https://en.wikipedia.org/wiki/ISO_week_date\r\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\r\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\r\n * @type {number}\r\n */\n\n }, {\n key: \"weeksInWeekYear\",\n get: function get() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n }], [{\n key: \"DATE_SHORT\",\n get: function get() {\n return DATE_SHORT;\n }\n /**\r\n * {@link toLocaleString} format like 'Oct 14, 1983'\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATE_MED\",\n get: function get() {\n return DATE_MED;\n }\n /**\r\n * {@link toLocaleString} format like 'October 14, 1983'\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATE_FULL\",\n get: function get() {\n return DATE_FULL;\n }\n /**\r\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATE_HUGE\",\n get: function get() {\n return DATE_HUGE;\n }\n /**\r\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"TIME_SIMPLE\",\n get: function get() {\n return TIME_SIMPLE;\n }\n /**\r\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"TIME_WITH_SECONDS\",\n get: function get() {\n return TIME_WITH_SECONDS;\n }\n /**\r\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"TIME_WITH_SHORT_OFFSET\",\n get: function get() {\n return TIME_WITH_SHORT_OFFSET;\n }\n /**\r\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"TIME_WITH_LONG_OFFSET\",\n get: function get() {\n return TIME_WITH_LONG_OFFSET;\n }\n /**\r\n * {@link toLocaleString} format like '09:30', always 24-hour.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"TIME_24_SIMPLE\",\n get: function get() {\n return TIME_24_SIMPLE;\n }\n /**\r\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"TIME_24_WITH_SECONDS\",\n get: function get() {\n return TIME_24_WITH_SECONDS;\n }\n /**\r\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"TIME_24_WITH_SHORT_OFFSET\",\n get: function get() {\n return TIME_24_WITH_SHORT_OFFSET;\n }\n /**\r\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"TIME_24_WITH_LONG_OFFSET\",\n get: function get() {\n return TIME_24_WITH_LONG_OFFSET;\n }\n /**\r\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATETIME_SHORT\",\n get: function get() {\n return DATETIME_SHORT;\n }\n /**\r\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATETIME_SHORT_WITH_SECONDS\",\n get: function get() {\n return DATETIME_SHORT_WITH_SECONDS;\n }\n /**\r\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATETIME_MED\",\n get: function get() {\n return DATETIME_MED;\n }\n /**\r\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATETIME_MED_WITH_SECONDS\",\n get: function get() {\n return DATETIME_MED_WITH_SECONDS;\n }\n /**\r\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATETIME_FULL\",\n get: function get() {\n return DATETIME_FULL;\n }\n /**\r\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATETIME_FULL_WITH_SECONDS\",\n get: function get() {\n return DATETIME_FULL_WITH_SECONDS;\n }\n /**\r\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATETIME_HUGE\",\n get: function get() {\n return DATETIME_HUGE;\n }\n /**\r\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\r\n * @type {Object}\r\n */\n\n }, {\n key: \"DATETIME_HUGE_WITH_SECONDS\",\n get: function get() {\n return DATETIME_HUGE_WITH_SECONDS;\n }\n }]);\n\n return DateTime;\n}();\nfunction friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\"Unknown datetime argument: \" + dateTimeish + \", of type \" + typeof dateTimeish);\n }\n}\n\nexports.DateTime = DateTime;\nexports.Duration = Duration;\nexports.FixedOffsetZone = FixedOffsetZone;\nexports.IANAZone = IANAZone;\nexports.Info = Info;\nexports.Interval = Interval;\nexports.InvalidZone = InvalidZone;\nexports.LocalZone = LocalZone;\nexports.Settings = Settings;\nexports.Zone = Zone;\n//# sourceMappingURL=luxon.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useCurrentTime = useCurrentTime;\n\nvar _luxon = require(\"luxon\");\n\nvar _react = require(\"react\");\n\nvar _useInterval = require(\"./useInterval\");\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * useCurrentTime\n */\nfunction useCurrentTime(currentTime) {\n var _useState = (0, _react.useState)(currentTime ? _luxon.DateTime.fromISO(currentTime.toString()) : _luxon.DateTime.local()),\n _useState2 = _slicedToArray(_useState, 2),\n now = _useState2[0],\n setNow = _useState2[1];\n\n (0, _useInterval.useInterval)(function () {\n setNow(currentTime ? _luxon.DateTime.fromISO(currentTime.toString()) : _luxon.DateTime.local());\n }, 1000);\n return now;\n}\n//# sourceMappingURL=useCurrentTime.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useInterval = useInterval;\n\nvar _react = require(\"react\");\n\n/** useInterval */\nfunction useInterval(callback, delay) {\n var savedCallback = (0, _react.useRef)(null); // Remember the latest callback.\n\n (0, _react.useEffect)(function () {\n savedCallback.current = callback;\n }, [callback]); // Set up the interval.\n\n (0, _react.useEffect)(function () {\n function tick() {\n savedCallback.current();\n }\n\n if (delay !== null) {\n var id = setInterval(tick, delay);\n return function () {\n return clearInterval(id);\n };\n }\n }, [delay]);\n}\n//# sourceMappingURL=useInterval.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Toggle = require(\"./Toggle\");\n\nObject.keys(_Toggle).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Toggle[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Toggle.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Tooltip = require(\"./Tooltip\");\n\nObject.keys(_Tooltip).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Tooltip[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n//# sourceMappingURL=Tooltip.ios.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AddCircleFillIcon = require(\"./AddCircleFillIcon\");\n\nObject.keys(_AddCircleFillIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _AddCircleFillIcon[key];\n }\n });\n});\n\nvar _AddCircleIcon = require(\"./AddCircleIcon\");\n\nObject.keys(_AddCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _AddCircleIcon[key];\n }\n });\n});\n\nvar _AddIcon = require(\"./AddIcon\");\n\nObject.keys(_AddIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _AddIcon[key];\n }\n });\n});\n\nvar _AlertIcon = require(\"./AlertIcon\");\n\nObject.keys(_AlertIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _AlertIcon[key];\n }\n });\n});\n\nvar _ArrowDownCircleIcon = require(\"./ArrowDownCircleIcon\");\n\nObject.keys(_ArrowDownCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArrowDownCircleIcon[key];\n }\n });\n});\n\nvar _ArrowDownIcon = require(\"./ArrowDownIcon\");\n\nObject.keys(_ArrowDownIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArrowDownIcon[key];\n }\n });\n});\n\nvar _ArrowLeftCircleIcon = require(\"./ArrowLeftCircleIcon\");\n\nObject.keys(_ArrowLeftCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArrowLeftCircleIcon[key];\n }\n });\n});\n\nvar _ArrowLeftIcon = require(\"./ArrowLeftIcon\");\n\nObject.keys(_ArrowLeftIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArrowLeftIcon[key];\n }\n });\n});\n\nvar _ArrowRightCircleIcon = require(\"./ArrowRightCircleIcon\");\n\nObject.keys(_ArrowRightCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArrowRightCircleIcon[key];\n }\n });\n});\n\nvar _ArrowRightIcon = require(\"./ArrowRightIcon\");\n\nObject.keys(_ArrowRightIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArrowRightIcon[key];\n }\n });\n});\n\nvar _ArrowUpCircleIcon = require(\"./ArrowUpCircleIcon\");\n\nObject.keys(_ArrowUpCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArrowUpCircleIcon[key];\n }\n });\n});\n\nvar _ArrowUpIcon = require(\"./ArrowUpIcon\");\n\nObject.keys(_ArrowUpIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArrowUpIcon[key];\n }\n });\n});\n\nvar _ArtsyLogoBlackIcon = require(\"./ArtsyLogoBlackIcon\");\n\nObject.keys(_ArtsyLogoBlackIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArtsyLogoBlackIcon[key];\n }\n });\n});\n\nvar _ArtsyLogoWhiteIcon = require(\"./ArtsyLogoWhiteIcon\");\n\nObject.keys(_ArtsyLogoWhiteIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArtsyLogoWhiteIcon[key];\n }\n });\n});\n\nvar _ArtsyMarkBlackIcon = require(\"./ArtsyMarkBlackIcon\");\n\nObject.keys(_ArtsyMarkBlackIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArtsyMarkBlackIcon[key];\n }\n });\n});\n\nvar _ArtsyMarkWhiteIcon = require(\"./ArtsyMarkWhiteIcon\");\n\nObject.keys(_ArtsyMarkWhiteIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArtsyMarkWhiteIcon[key];\n }\n });\n});\n\nvar _ArtworkIcon = require(\"./ArtworkIcon\");\n\nObject.keys(_ArtworkIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ArtworkIcon[key];\n }\n });\n});\n\nvar _AuctionIcon = require(\"./AuctionIcon\");\n\nObject.keys(_AuctionIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _AuctionIcon[key];\n }\n });\n});\n\nvar _BellFillIcon = require(\"./BellFillIcon\");\n\nObject.keys(_BellFillIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _BellFillIcon[key];\n }\n });\n});\n\nvar _BellIcon = require(\"./BellIcon\");\n\nObject.keys(_BellIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _BellIcon[key];\n }\n });\n});\n\nvar _BlueChipIcon = require(\"./BlueChipIcon\");\n\nObject.keys(_BlueChipIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _BlueChipIcon[key];\n }\n });\n});\n\nvar _CertificateIcon = require(\"./CertificateIcon\");\n\nObject.keys(_CertificateIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CertificateIcon[key];\n }\n });\n});\n\nvar _CheckCircleFillIcon = require(\"./CheckCircleFillIcon\");\n\nObject.keys(_CheckCircleFillIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CheckCircleFillIcon[key];\n }\n });\n});\n\nvar _CheckCircleIcon = require(\"./CheckCircleIcon\");\n\nObject.keys(_CheckCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CheckCircleIcon[key];\n }\n });\n});\n\nvar _CheckIcon = require(\"./CheckIcon\");\n\nObject.keys(_CheckIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CheckIcon[key];\n }\n });\n});\n\nvar _ChevronIcon = require(\"./ChevronIcon\");\n\nObject.keys(_ChevronIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ChevronIcon[key];\n }\n });\n});\n\nvar _CloseCircleIcon = require(\"./CloseCircleIcon\");\n\nObject.keys(_CloseCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CloseCircleIcon[key];\n }\n });\n});\n\nvar _CloseIcon = require(\"./CloseIcon\");\n\nObject.keys(_CloseIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CloseIcon[key];\n }\n });\n});\n\nvar _CollapseIcon = require(\"./CollapseIcon\");\n\nObject.keys(_CollapseIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CollapseIcon[key];\n }\n });\n});\n\nvar _CreditCardIcon = require(\"./CreditCardIcon\");\n\nObject.keys(_CreditCardIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CreditCardIcon[key];\n }\n });\n});\n\nvar _DocumentIcon = require(\"./DocumentIcon\");\n\nObject.keys(_DocumentIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _DocumentIcon[key];\n }\n });\n});\n\nvar _DownloadIcon = require(\"./DownloadIcon\");\n\nObject.keys(_DownloadIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _DownloadIcon[key];\n }\n });\n});\n\nvar _EditIcon = require(\"./EditIcon\");\n\nObject.keys(_EditIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _EditIcon[key];\n }\n });\n});\n\nvar _EnterIcon = require(\"./EnterIcon\");\n\nObject.keys(_EnterIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _EnterIcon[key];\n }\n });\n});\n\nvar _EnvelopeIcon = require(\"./EnvelopeIcon\");\n\nObject.keys(_EnvelopeIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _EnvelopeIcon[key];\n }\n });\n});\n\nvar _EstablishedIcon = require(\"./EstablishedIcon\");\n\nObject.keys(_EstablishedIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _EstablishedIcon[key];\n }\n });\n});\n\nvar _ExpandIcon = require(\"./ExpandIcon\");\n\nObject.keys(_ExpandIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ExpandIcon[key];\n }\n });\n});\n\nvar _EyeClosedIcon = require(\"./EyeClosedIcon\");\n\nObject.keys(_EyeClosedIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _EyeClosedIcon[key];\n }\n });\n});\n\nvar _EyeOpenedIcon = require(\"./EyeOpenedIcon\");\n\nObject.keys(_EyeOpenedIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _EyeOpenedIcon[key];\n }\n });\n});\n\nvar _FacebookIcon = require(\"./FacebookIcon\");\n\nObject.keys(_FacebookIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _FacebookIcon[key];\n }\n });\n});\n\nvar _FairIcon = require(\"./FairIcon\");\n\nObject.keys(_FairIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _FairIcon[key];\n }\n });\n});\n\nvar _FilterIcon = require(\"./FilterIcon\");\n\nObject.keys(_FilterIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _FilterIcon[key];\n }\n });\n});\n\nvar _GenomeIcon = require(\"./GenomeIcon\");\n\nObject.keys(_GenomeIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _GenomeIcon[key];\n }\n });\n});\n\nvar _GraphIcon = require(\"./GraphIcon\");\n\nObject.keys(_GraphIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _GraphIcon[key];\n }\n });\n});\n\nvar _HeartFillIcon = require(\"./HeartFillIcon\");\n\nObject.keys(_HeartFillIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _HeartFillIcon[key];\n }\n });\n});\n\nvar _HeartIcon = require(\"./HeartIcon\");\n\nObject.keys(_HeartIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _HeartIcon[key];\n }\n });\n});\n\nvar _HomeIcon = require(\"./HomeIcon\");\n\nObject.keys(_HomeIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _HomeIcon[key];\n }\n });\n});\n\nvar _Icon = require(\"./Icon\");\n\nObject.keys(_Icon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Icon[key];\n }\n });\n});\n\nvar _InfoCircleIcon = require(\"./InfoCircleIcon\");\n\nObject.keys(_InfoCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _InfoCircleIcon[key];\n }\n });\n});\n\nvar _InstagramIcon = require(\"./InstagramIcon\");\n\nObject.keys(_InstagramIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _InstagramIcon[key];\n }\n });\n});\n\nvar _InstitutionIcon = require(\"./InstitutionIcon\");\n\nObject.keys(_InstitutionIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _InstitutionIcon[key];\n }\n });\n});\n\nvar _LoaderIcon = require(\"./LoaderIcon\");\n\nObject.keys(_LoaderIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _LoaderIcon[key];\n }\n });\n});\n\nvar _LockIcon = require(\"./LockIcon\");\n\nObject.keys(_LockIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _LockIcon[key];\n }\n });\n});\n\nvar _LogoutIcon = require(\"./LogoutIcon\");\n\nObject.keys(_LogoutIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _LogoutIcon[key];\n }\n });\n});\n\nvar _MagnifyingGlassIcon = require(\"./MagnifyingGlassIcon\");\n\nObject.keys(_MagnifyingGlassIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _MagnifyingGlassIcon[key];\n }\n });\n});\n\nvar _MapPinIcon = require(\"./MapPinIcon\");\n\nObject.keys(_MapPinIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _MapPinIcon[key];\n }\n });\n});\n\nvar _MenuIcon = require(\"./MenuIcon\");\n\nObject.keys(_MenuIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _MenuIcon[key];\n }\n });\n});\n\nvar _MessageIcon = require(\"./MessageIcon\");\n\nObject.keys(_MessageIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _MessageIcon[key];\n }\n });\n});\n\nvar _MoreIcon = require(\"./MoreIcon\");\n\nObject.keys(_MoreIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _MoreIcon[key];\n }\n });\n});\n\nvar _NoImageIcon = require(\"./NoImageIcon\");\n\nObject.keys(_NoImageIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _NoImageIcon[key];\n }\n });\n});\n\nvar _PageIcon = require(\"./PageIcon\");\n\nObject.keys(_PageIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _PageIcon[key];\n }\n });\n});\n\nvar _PublicationIcon = require(\"./PublicationIcon\");\n\nObject.keys(_PublicationIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _PublicationIcon[key];\n }\n });\n});\n\nvar _QuestionCircleIcon = require(\"./QuestionCircleIcon\");\n\nObject.keys(_QuestionCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _QuestionCircleIcon[key];\n }\n });\n});\n\nvar _ReloadIcon = require(\"./ReloadIcon\");\n\nObject.keys(_ReloadIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ReloadIcon[key];\n }\n });\n});\n\nvar _SettingsIcon = require(\"./SettingsIcon\");\n\nObject.keys(_SettingsIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _SettingsIcon[key];\n }\n });\n});\n\nvar _ShareIcon = require(\"./ShareIcon\");\n\nObject.keys(_ShareIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ShareIcon[key];\n }\n });\n});\n\nvar _TagIcon = require(\"./TagIcon\");\n\nObject.keys(_TagIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TagIcon[key];\n }\n });\n});\n\nvar _TimerIcon = require(\"./TimerIcon\");\n\nObject.keys(_TimerIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TimerIcon[key];\n }\n });\n});\n\nvar _TopEmergingIcon = require(\"./TopEmergingIcon\");\n\nObject.keys(_TopEmergingIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TopEmergingIcon[key];\n }\n });\n});\n\nvar _TrashIcon = require(\"./TrashIcon\");\n\nObject.keys(_TrashIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TrashIcon[key];\n }\n });\n});\n\nvar _TwitterIcon = require(\"./TwitterIcon\");\n\nObject.keys(_TwitterIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TwitterIcon[key];\n }\n });\n});\n\nvar _UserMultiIcon = require(\"./UserMultiIcon\");\n\nObject.keys(_UserMultiIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _UserMultiIcon[key];\n }\n });\n});\n\nvar _UserSingleIcon = require(\"./UserSingleIcon\");\n\nObject.keys(_UserSingleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _UserSingleIcon[key];\n }\n });\n});\n\nvar _VerifiedIcon = require(\"./VerifiedIcon\");\n\nObject.keys(_VerifiedIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _VerifiedIcon[key];\n }\n });\n});\n\nvar _WeChatIcon = require(\"./WeChatIcon\");\n\nObject.keys(_WeChatIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _WeChatIcon[key];\n }\n });\n});\n\nvar _XCircleIcon = require(\"./XCircleIcon\");\n\nObject.keys(_XCircleIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _XCircleIcon[key];\n }\n });\n});\n\nvar _PageViewsIcon = require(\"./PageViewsIcon\");\n\nObject.keys(_PageViewsIcon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _PageViewsIcon[key];\n }\n });\n});\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PlusIcon = exports.AddCircleFillIcon = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _helpers = require(\"../helpers\");\n\nvar _Icon = require(\"./Icon\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/** AddCircleFillIcon */\nvar AddCircleFillIcon = function AddCircleFillIcon(props) {\n return _react.default.createElement(_Icon.Icon, _extends({}, props, {\n viewBox: \"0 0 18 18\"\n }), _react.default.createElement(_Icon.Title, null, \"unfollow\"), _react.default.createElement(_Icon.Path, {\n d: \"M9 1a8 8 0 1 0 0 16A8 8 0 0 0 9 1zm.551 7.449H13V9.55H9.551V13H8.45V9.551H5V8.45h3.449V5H9.55v3.449z\",\n fill: (0, _helpers.color)(props.fill),\n fillRule: \"nonzero\"\n }));\n};\n\nexports.AddCircleFillIcon = AddCircleFillIcon;\nAddCircleFillIcon.displayName = \"AddCircleFillIcon\";\n// TODO: remove this alias once clients have been updated\n\n/** PlusIcon */\nvar PlusIcon = AddCircleFillIcon;\nexports.PlusIcon = PlusIcon;\n//# sourceMappingURL=AddCircleFillIcon.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Path\", {\n enumerable: true,\n get: function get() {\n return _reactNativeSvg.Path;\n }\n});\nObject.defineProperty(exports, \"G\", {\n enumerable: true,\n get: function get() {\n return _reactNativeSvg.G;\n }\n});\nObject.defineProperty(exports, \"Circle\", {\n enumerable: true,\n get: function get() {\n return _reactNativeSvg.Circle;\n }\n});\nObject.defineProperty(exports, \"Rect\", {\n enumerable: true,\n get: function get() {\n return _reactNativeSvg.Rect;\n }\n});\nexports.Title = exports.Icon = void 0;\n\nvar _reactNativeSvg = _interopRequireWildcard(require(\"react-native-svg\"));\n\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\n\nvar _styledSystem = require(\"styled-system\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n// @ts-ignore\n\n/** Wrapper for icons to include space */\nvar Icon = (0, _styledComponents.default)(_reactNativeSvg.default).withConfig({\n displayName: \"Iconios__Icon\",\n componentId: \"z4d8jr-0\"\n})([\"position:relative;\", \";\", \";\", \";\", \";\", \";\"], _styledSystem.space, _styledSystem.top, _styledSystem.right, _styledSystem.left, _styledSystem.position);\nexports.Icon = Icon;\nIcon.defaultProps = {\n fill: \"black100\",\n height: \"18px\",\n width: \"18px\"\n /** No-op component that exists to maintain api parity with web */\n\n};\n\nvar Title = function Title() {\n return false;\n};\n\nexports.Title = Title;\n//# sourceMappingURL=Icon.ios.js.map","export * from './ReactNativeSVG';\n\nexport { default } from './ReactNativeSVG';\n","function _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nmodule.exports = _interopRequireWildcard;","import Shape from './elements/Shape';\nimport Rect, { RNSVGRect } from './elements/Rect';\nimport Circle, { RNSVGCircle } from './elements/Circle';\nimport Ellipse, { RNSVGEllipse } from './elements/Ellipse';\nimport Polygon from './elements/Polygon';\nimport Polyline from './elements/Polyline';\nimport Line, { RNSVGLine } from './elements/Line';\nimport Svg, { RNSVGSvg } from './elements/Svg';\nimport Path, { RNSVGPath } from './elements/Path';\nimport G, { RNSVGGroup } from './elements/G';\nimport Text, { RNSVGText } from './elements/Text';\nimport TSpan, { RNSVGTSpan } from './elements/TSpan';\nimport TextPath, { RNSVGTextPath } from './elements/TextPath';\nimport Use, { RNSVGUse } from './elements/Use';\nimport Image, { RNSVGImage } from './elements/Image';\nimport Symbol, { RNSVGSymbol } from './elements/Symbol';\nimport Defs, { RNSVGDefs } from './elements/Defs';\nimport LinearGradient, { RNSVGLinearGradient } from './elements/LinearGradient';\nimport RadialGradient, { RNSVGRadialGradient } from './elements/RadialGradient';\nimport Stop from './elements/Stop';\nimport ClipPath, { RNSVGClipPath } from './elements/ClipPath';\nimport Pattern, { RNSVGPattern } from './elements/Pattern';\nimport Mask, { RNSVGMask } from './elements/Mask';\nimport Marker, { RNSVGMarker } from './elements/Marker';\nimport { parse, SvgAst, SvgFromUri, SvgFromXml, SvgUri, SvgXml } from './xml';\nimport {\n SvgCss,\n SvgCssUri,\n SvgWithCss,\n SvgWithCssUri,\n inlineStyles,\n} from './css';\n\nexport {\n Svg,\n Circle,\n Ellipse,\n G,\n Text,\n TSpan,\n TextPath,\n Path,\n Polygon,\n Polyline,\n Line,\n Rect,\n Use,\n Image,\n Symbol,\n Defs,\n LinearGradient,\n RadialGradient,\n Stop,\n ClipPath,\n Pattern,\n Mask,\n Marker,\n parse,\n SvgAst,\n SvgFromUri,\n SvgFromXml,\n SvgUri,\n SvgXml,\n SvgCss,\n SvgCssUri,\n SvgWithCss,\n SvgWithCssUri,\n inlineStyles,\n Shape,\n RNSVGMarker,\n RNSVGMask,\n RNSVGPattern,\n RNSVGClipPath,\n RNSVGRadialGradient,\n RNSVGLinearGradient,\n RNSVGDefs,\n RNSVGSymbol,\n RNSVGImage,\n RNSVGUse,\n RNSVGTextPath,\n RNSVGTSpan,\n RNSVGText,\n RNSVGGroup,\n RNSVGPath,\n RNSVGLine,\n RNSVGEllipse,\n RNSVGCircle,\n RNSVGRect,\n RNSVGSvg,\n};\n\nexport default Svg;\n","import { Component } from 'react';\nimport SvgTouchableMixin from '../lib/SvgTouchableMixin';\nimport {\n NativeModules,\n findNodeHandle,\n NativeMethodsMixinStatic,\n} from 'react-native';\nimport { TransformProps } from '../lib/extract/types';\n\nconst RNSVGRenderableManager = NativeModules.RNSVGRenderableManager;\nconst { touchableGetInitialState } = SvgTouchableMixin;\nconst touchKeys = Object.keys(SvgTouchableMixin);\nconst touchVals = touchKeys.map(key => SvgTouchableMixin[key]);\nconst numTouchKeys = touchKeys.length;\n\nexport interface SVGBoundingBoxOptions {\n fill?: boolean;\n stroke?: boolean;\n markers?: boolean;\n clipped?: boolean;\n}\n\nexport interface DOMPointInit {\n x?: number;\n y?: number;\n z?: number;\n w?: number;\n}\n\nexport interface Point {\n x: number;\n y: number;\n}\n\nexport interface SVGPoint extends Point {\n constructor(point?: Point): SVGPoint;\n matrixTransform(matrix: Matrix): SVGPoint;\n}\n\nexport interface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\nexport interface SVGRect extends Rect {}\n\nexport interface Matrix {\n a: number;\n b: number;\n c: number;\n d: number;\n e: number;\n f: number;\n}\n\nexport interface SVGMatrix extends Matrix {\n constructor(matrix?: Matrix): SVGMatrix;\n multiply(secondMatrix: Matrix): SVGMatrix;\n inverse(): SVGMatrix;\n translate(x: number, y: number): SVGMatrix;\n scale(scaleFactor: number): SVGMatrix;\n scaleNonUniform(scaleFactorX: number, scaleFactorY: number): SVGMatrix;\n rotate(angle: number): SVGMatrix;\n rotateFromVector(x: number, y: number): SVGMatrix;\n flipX(): SVGMatrix;\n flipY(): SVGMatrix;\n skewX(angle: number): SVGMatrix;\n skewY(angle: number): SVGMatrix;\n}\n\nexport function multiply_matrices(l: Matrix, r: Matrix): Matrix {\n const { a: al, b: bl, c: cl, d: dl, e: el, f: fl } = l;\n const { a: ar, b: br, c: cr, d: dr, e: er, f: fr } = r;\n\n const a = al * ar + cl * br;\n const c = al * cr + cl * dr;\n const e = al * er + cl * fr + el;\n const b = bl * ar + dl * br;\n const d = bl * cr + dl * dr;\n const f = bl * er + dl * fr + fl;\n\n return { a, c, e, b, d, f };\n}\n\nexport function invert({ a, b, c, d, e, f }: Matrix): Matrix {\n const n = a * d - b * c;\n return {\n a: d / n,\n b: -b / n,\n c: -c / n,\n d: a / n,\n e: (c * f - d * e) / n,\n f: -(a * f - b * e) / n,\n };\n}\n\nconst deg2rad = Math.PI / 180;\n\nexport class SVGMatrix implements SVGMatrix {\n constructor(matrix?: Matrix) {\n if (matrix) {\n const { a, b, c, d, e, f } = matrix;\n this.a = a;\n this.b = b;\n this.c = c;\n this.d = d;\n this.e = e;\n this.f = f;\n } else {\n this.a = 1;\n this.b = 0;\n this.c = 0;\n this.d = 1;\n this.e = 0;\n this.f = 0;\n }\n }\n multiply(secondMatrix: Matrix): SVGMatrix {\n return new SVGMatrix(multiply_matrices(this, secondMatrix));\n }\n inverse(): SVGMatrix {\n return new SVGMatrix(invert(this));\n }\n translate(x: number, y: number): SVGMatrix {\n return new SVGMatrix(\n multiply_matrices(this, { a: 1, b: 0, c: 0, d: 1, e: x, f: y }),\n );\n }\n scale(scaleFactor: number): SVGMatrix {\n return new SVGMatrix(\n multiply_matrices(this, {\n a: scaleFactor,\n b: 0,\n c: 0,\n d: scaleFactor,\n e: 0,\n f: 0,\n }),\n );\n }\n scaleNonUniform(scaleFactorX: number, scaleFactorY: number): SVGMatrix {\n return new SVGMatrix(\n multiply_matrices(this, {\n a: scaleFactorX,\n b: 0,\n c: 0,\n d: scaleFactorY,\n e: 0,\n f: 0,\n }),\n );\n }\n rotate(angle: number): SVGMatrix {\n const cos = Math.cos(deg2rad * angle);\n const sin = Math.sin(deg2rad * angle);\n return new SVGMatrix(\n multiply_matrices(this, { a: cos, b: sin, c: -sin, d: cos, e: 0, f: 0 }),\n );\n }\n rotateFromVector(x: number, y: number): SVGMatrix {\n const angle = Math.atan2(y, x);\n const cos = Math.cos(deg2rad * angle);\n const sin = Math.sin(deg2rad * angle);\n return new SVGMatrix(\n multiply_matrices(this, { a: cos, b: sin, c: -sin, d: cos, e: 0, f: 0 }),\n );\n }\n flipX(): SVGMatrix {\n return new SVGMatrix(\n multiply_matrices(this, { a: -1, b: 0, c: 0, d: 1, e: 0, f: 0 }),\n );\n }\n flipY(): SVGMatrix {\n return new SVGMatrix(\n multiply_matrices(this, { a: 1, b: 0, c: 0, d: -1, e: 0, f: 0 }),\n );\n }\n skewX(angle: number): SVGMatrix {\n return new SVGMatrix(\n multiply_matrices(this, {\n a: 1,\n b: 0,\n c: Math.tan(deg2rad * angle),\n d: 1,\n e: 0,\n f: 0,\n }),\n );\n }\n skewY(angle: number): SVGMatrix {\n return new SVGMatrix(\n multiply_matrices(this, {\n a: 1,\n b: Math.tan(deg2rad * angle),\n c: 0,\n d: 1,\n e: 0,\n f: 0,\n }),\n );\n }\n}\n\nexport function matrixTransform(matrix: Matrix, point: Point): Point {\n const { a, b, c, d, e, f } = matrix;\n const { x, y } = point;\n return {\n x: a * x + c * y + e,\n y: b * x + d * y + f,\n };\n}\n\nexport class SVGPoint implements SVGPoint {\n constructor(point?: Point) {\n if (point) {\n const { x, y } = point;\n this.x = x;\n this.y = y;\n } else {\n this.x = 0;\n this.y = 0;\n }\n }\n matrixTransform(matrix: Matrix): SVGPoint {\n return new SVGPoint(matrixTransform(matrix, this));\n }\n}\n\nexport const ownerSVGElement = {\n createSVGPoint(): SVGPoint {\n return new SVGPoint();\n },\n createSVGMatrix(): SVGMatrix {\n return new SVGMatrix();\n },\n};\n\nexport default class Shape

extends Component

{\n [x: string]: unknown;\n root: (Shape

& NativeMethodsMixinStatic) | null = null;\n constructor(props: P, context: {}) {\n super(props, context);\n for (let i = 0; i < numTouchKeys; i++) {\n const key = touchKeys[i];\n const val = touchVals[i];\n if (typeof val === 'function') {\n this[key] = val.bind(this);\n } else {\n this[key] = val;\n }\n }\n this.state = touchableGetInitialState();\n }\n refMethod: (\n instance: (Shape

& NativeMethodsMixinStatic) | null,\n ) => void = (instance: (Shape

& NativeMethodsMixinStatic) | null) => {\n this.root = instance;\n };\n setNativeProps = (\n props: Object & {\n matrix?: [number, number, number, number, number, number];\n } & TransformProps,\n ) => {\n this.root && this.root.setNativeProps(props);\n };\n /*\n * The following native methods are experimental and likely broken in some\n * ways. If you have a use case for these, please open an issue with a\n * representative example / reproduction.\n * */\n getBBox = (options?: SVGBoundingBoxOptions): SVGRect => {\n const { fill = true, stroke = true, markers = true, clipped = true } =\n options || {};\n const handle = findNodeHandle(this.root as Component);\n return RNSVGRenderableManager.getBBox(handle, {\n fill,\n stroke,\n markers,\n clipped,\n });\n };\n getCTM = (): SVGMatrix => {\n const handle = findNodeHandle(this.root as Component);\n return new SVGMatrix(RNSVGRenderableManager.getCTM(handle));\n };\n getScreenCTM = (): SVGMatrix => {\n const handle = findNodeHandle(this.root as Component);\n return new SVGMatrix(RNSVGRenderableManager.getScreenCTM(handle));\n };\n isPointInFill = (options: DOMPointInit): boolean => {\n const handle = findNodeHandle(this.root as Component);\n return RNSVGRenderableManager.isPointInFill(handle, options);\n };\n isPointInStroke = (options: DOMPointInit): boolean => {\n const handle = findNodeHandle(this.root as Component);\n return RNSVGRenderableManager.isPointInStroke(handle, options);\n };\n getTotalLength = (): number => {\n const handle = findNodeHandle(this.root as Component);\n return RNSVGRenderableManager.getTotalLength(handle);\n };\n getPointAtLength = (length: number): SVGPoint => {\n const handle = findNodeHandle(this.root as Component);\n return new SVGPoint(\n RNSVGRenderableManager.getPointAtLength(handle, { length }),\n );\n };\n}\nShape.prototype.ownerSVGElement = ownerSVGElement;\n","// @ts-ignore\nimport { Touchable, GestureResponderEvent } from 'react-native';\nconst PRESS_RETENTION_OFFSET = { top: 20, left: 20, right: 20, bottom: 30 };\n// @ts-ignore\nconst { Mixin } = Touchable;\nconst {\n touchableHandleStartShouldSetResponder,\n touchableHandleResponderTerminationRequest,\n touchableHandleResponderGrant,\n touchableHandleResponderMove,\n touchableHandleResponderRelease,\n touchableHandleResponderTerminate,\n} = Mixin;\n\nexport default {\n ...Mixin,\n\n touchableHandleStartShouldSetResponder(e: GestureResponderEvent) {\n const { onStartShouldSetResponder } = this.props;\n if (onStartShouldSetResponder) {\n return onStartShouldSetResponder(e);\n } else {\n return touchableHandleStartShouldSetResponder.call(this, e);\n }\n },\n\n touchableHandleResponderTerminationRequest(e: GestureResponderEvent) {\n const { onResponderTerminationRequest } = this.props;\n if (onResponderTerminationRequest) {\n return onResponderTerminationRequest(e);\n } else {\n return touchableHandleResponderTerminationRequest.call(this, e);\n }\n },\n\n touchableHandleResponderGrant(e: GestureResponderEvent) {\n const { onResponderGrant } = this.props;\n if (onResponderGrant) {\n return onResponderGrant(e);\n } else {\n return touchableHandleResponderGrant.call(this, e);\n }\n },\n\n touchableHandleResponderMove(e: GestureResponderEvent) {\n const { onResponderMove } = this.props;\n if (onResponderMove) {\n return onResponderMove(e);\n } else {\n return touchableHandleResponderMove.call(this, e);\n }\n },\n\n touchableHandleResponderRelease(e: GestureResponderEvent) {\n const { onResponderRelease } = this.props;\n if (onResponderRelease) {\n return onResponderRelease(e);\n } else {\n return touchableHandleResponderRelease.call(this, e);\n }\n },\n\n touchableHandleResponderTerminate(e: GestureResponderEvent) {\n const { onResponderTerminate } = this.props;\n if (onResponderTerminate) {\n return onResponderTerminate(e);\n } else {\n return touchableHandleResponderTerminate.call(this, e);\n }\n },\n\n touchableHandlePress(e: GestureResponderEvent) {\n const { onPress } = this.props;\n onPress && onPress(e);\n },\n\n touchableHandleActivePressIn(e: GestureResponderEvent) {\n const { onPressIn } = this.props;\n onPressIn && onPressIn(e);\n },\n\n touchableHandleActivePressOut(e: GestureResponderEvent) {\n const { onPressOut } = this.props;\n onPressOut && onPressOut(e);\n },\n\n touchableHandleLongPress(e: GestureResponderEvent) {\n const { onLongPress } = this.props;\n onLongPress && onLongPress(e);\n },\n\n touchableGetPressRectOffset() {\n const { pressRetentionOffset } = this.props;\n return pressRetentionOffset || PRESS_RETENTION_OFFSET;\n },\n\n touchableGetHitSlop() {\n const { hitSlop } = this.props;\n return hitSlop;\n },\n\n touchableGetHighlightDelayMS() {\n const { delayPressIn } = this.props;\n return delayPressIn || 0;\n },\n\n touchableGetLongPressDelayMS() {\n const { delayLongPress } = this.props;\n return delayLongPress === 0 ? 0 : delayLongPress || 500;\n },\n\n touchableGetPressOutDelayMS() {\n const { delayPressOut } = this.props;\n return delayPressOut || 0;\n },\n};\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport { NumberProp } from '../lib/extract/types';\nimport Shape from './Shape';\n\nexport default class Rect extends Shape<{\n x?: NumberProp;\n y?: NumberProp;\n width?: NumberProp;\n height?: NumberProp;\n rx?: NumberProp;\n ry?: NumberProp;\n}> {\n static displayName = 'Rect';\n\n static defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n\n render() {\n const { props } = this;\n const { x, y, width, height, rx, ry } = props;\n return (\n \n );\n }\n}\n\nexport const RNSVGRect = requireNativeComponent('RNSVGRect');\n","import extractFill from './extractFill';\nimport extractStroke from './extractStroke';\nimport { transformToMatrix, props2transform } from './extractTransform';\nimport extractResponder from './extractResponder';\nimport extractOpacity from './extractOpacity';\nimport { idPattern } from '../util';\nimport {\n ClipProps,\n FillProps,\n NumberProp,\n ResponderProps,\n StrokeProps,\n TransformProps,\n} from './types';\nimport { Component } from 'react';\n\nconst clipRules: { evenodd: number; nonzero: number } = {\n evenodd: 0,\n nonzero: 1,\n};\n\nexport function propsAndStyles(props: Object & { style?: [] | {} }) {\n const { style } = props;\n return !style\n ? props\n : {\n ...(Array.isArray(style) ? Object.assign({}, ...style) : style),\n ...props,\n };\n}\n\nfunction getMarker(marker?: string) {\n if (!marker) {\n return undefined;\n }\n const matched = marker.match(idPattern);\n return matched ? matched[1] : undefined;\n}\n\nexport default function extractProps(\n props: {\n id?: string;\n mask?: string;\n marker?: string;\n markerStart?: string;\n markerMid?: string;\n markerEnd?: string;\n clipPath?: string;\n opacity?: NumberProp;\n onLayout?: () => void;\n transform?: number[] | string | TransformProps;\n } & TransformProps &\n ResponderProps &\n StrokeProps &\n FillProps &\n ClipProps,\n ref: Object,\n) {\n const {\n opacity,\n onLayout,\n id,\n clipPath,\n clipRule,\n mask,\n marker,\n markerStart = marker,\n markerMid = marker,\n markerEnd = marker,\n transform,\n } = props;\n const styleProperties: string[] = [];\n const transformProps = props2transform(props);\n const matrix = transformToMatrix(transformProps, transform);\n const extracted: {\n name?: string;\n mask?: string;\n opacity: number;\n matrix: number[];\n propList: string[];\n onLayout?: () => void;\n ref?: (instance: Component | null) => void;\n markerStart?: string;\n markerMid?: string;\n markerEnd?: string;\n clipPath?: string;\n clipRule?: number;\n } = {\n matrix,\n ...transformProps,\n propList: styleProperties,\n opacity: extractOpacity(opacity),\n ...extractResponder(props, ref),\n ...extractFill(props, styleProperties),\n ...extractStroke(props, styleProperties),\n };\n\n if (onLayout) {\n extracted.onLayout = onLayout;\n }\n\n if (markerStart) {\n extracted.markerStart = getMarker(markerStart);\n }\n if (markerMid) {\n extracted.markerMid = getMarker(markerMid);\n }\n if (markerEnd) {\n extracted.markerEnd = getMarker(markerEnd);\n }\n\n if (id) {\n extracted.name = String(id);\n }\n\n if (clipPath) {\n if (clipRule) {\n extracted.clipRule = clipRules[clipRule] === 0 ? 0 : 1;\n }\n\n if (clipPath) {\n const matched = clipPath.match(idPattern);\n\n if (matched) {\n extracted.clipPath = matched[1];\n } else {\n console.warn(\n 'Invalid `clipPath` prop, expected a clipPath like \"#id\", but got: \"' +\n clipPath +\n '\"',\n );\n }\n }\n }\n\n if (mask) {\n const matched = mask.match(idPattern);\n\n if (matched) {\n extracted.mask = matched[1];\n } else {\n console.warn(\n 'Invalid `mask` prop, expected a mask like \"#id\", but got: \"' +\n mask +\n '\"',\n );\n }\n }\n\n return extracted;\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","import extractBrush from './extractBrush';\nimport extractOpacity from './extractOpacity';\nimport { colorNames, integerColor } from './extractColor';\nimport { FillProps } from './types';\n\nconst fillRules: { evenodd: number; nonzero: number } = {\n evenodd: 0,\n nonzero: 1,\n};\n\n// default fill is black\nconst black = colorNames.black;\nconst defaultFill = [0, integerColor(black as number)];\n\nexport default function extractFill(\n props: FillProps,\n styleProperties: string[],\n) {\n const { fill, fillRule, fillOpacity } = props;\n\n if (fill != null) {\n styleProperties.push('fill');\n }\n if (fillOpacity != null) {\n styleProperties.push('fillOpacity');\n }\n if (fillRule != null) {\n styleProperties.push('fillRule');\n }\n\n return {\n fill: !fill && typeof fill !== 'number' ? defaultFill : extractBrush(fill),\n fillRule: fillRule && fillRules[fillRule] === 0 ? 0 : 1,\n fillOpacity: extractOpacity(fillOpacity),\n };\n}\n","import extractColor, { integerColor } from './extractColor';\nimport { Color } from './types';\n\nconst urlIdPattern = /^url\\(#(.+)\\)$/;\n\nconst currentColorBrush = [2];\nconst contextFillBrush = [3];\nconst contextStrokeBrush = [4];\n\nexport default function extractBrush(color?: Color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return [0, integerColor(color)];\n }\n }\n\n if (!color || color === 'none') {\n return null;\n }\n\n if (color === 'currentColor') {\n return currentColorBrush;\n }\n\n if (color === 'context-fill') {\n return contextFillBrush;\n }\n\n if (color === 'context-stroke') {\n return contextStrokeBrush;\n }\n\n const brush = typeof color === 'string' && color.match(urlIdPattern);\n if (brush) {\n return [1, brush[1]];\n }\n\n const int32ARGBColor = extractColor(color);\n if (typeof int32ARGBColor === 'number') {\n return [0, int32ARGBColor];\n }\n\n console.warn(`\"${color}\" is not a valid color or brush`);\n return null;\n}\n","import { Platform } from 'react-native';\nimport { Color } from './types';\n\nexport const colors: { [colorname: string]: number[] } = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50],\n};\nexport const colorNames: { [colorname: string]: number | void } = {};\nfor (const name in colors) {\n if (colors.hasOwnProperty(name)) {\n const color: number[] = colors[name];\n const r = color[0];\n const g = color[1];\n const b = color[2];\n colorNames[name] = (0xff000000 | (r << 16) | (g << 8) | b) >>> 0;\n }\n}\nObject.freeze(colorNames);\n\nfunction hslToRgb(_h: number, _s: number, _l: number, a: number) {\n const h = _h / 360;\n const s = _s / 100;\n const l = _l / 100;\n let t1;\n let t2;\n let t3;\n let rgb;\n let val;\n\n if (s === 0) {\n val = l;\n return [val, val, val, a];\n }\n\n if (l < 0.5) {\n t2 = l * (1 + s);\n } else {\n t2 = l + s - l * s;\n }\n\n t1 = 2 * l - t2;\n\n rgb = [0, 0, 0, a];\n for (let i = 0; i < 3; i++) {\n t3 = h + (1 / 3) * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n val = t2;\n } else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n val = t1;\n }\n\n rgb[i] = val;\n }\n\n return rgb;\n}\n\nfunction hwbToRgb(_h: number, _w: number, _b: number, a: number) {\n const h = _h / 360;\n let wh = _w / 100;\n let bl = _b / 100;\n const ratio = wh + bl;\n let i;\n let v;\n let f;\n let n;\n\n // wh + bl cant be > 1\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n\n if ((i & 0x01) !== 0) {\n f = 1 - f;\n }\n\n n = wh + f * (v - wh); // linear interpolation\n\n let r;\n let g;\n let b;\n switch (i) {\n default:\n case 6:\n case 0:\n r = v;\n g = n;\n b = wh;\n break;\n case 1:\n r = n;\n g = v;\n b = wh;\n break;\n case 2:\n r = wh;\n g = v;\n b = n;\n break;\n case 3:\n r = wh;\n g = n;\n b = v;\n break;\n case 4:\n r = n;\n g = wh;\n b = v;\n break;\n case 5:\n r = v;\n g = wh;\n b = n;\n break;\n }\n\n return [r, g, b, a];\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(min, num), max);\n}\n\nconst abbr = /^#([a-f0-9]{3,4})$/i;\nconst hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\nconst rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\nconst per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\nconst keyword = /(\\D+)/;\n\nfunction rgbFromString(string: string) {\n let rgb = [0, 0, 0, 1];\n let match;\n let i;\n let hexAlpha;\n\n if ((match = string.match(hex))) {\n hexAlpha = match[2];\n match = match[1];\n\n for (i = 0; i < 3; i++) {\n // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n const i2 = i * 2;\n rgb[i] = parseInt(match.slice(i2, i2 + 2), 16) / 255;\n }\n\n if (hexAlpha) {\n rgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n } else if ((match = string.match(abbr))) {\n match = match[1];\n hexAlpha = match[3];\n\n for (i = 0; i < 3; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16) / 255;\n }\n\n if (hexAlpha) {\n rgb[3] =\n Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n } else if ((match = string.match(rgba))) {\n for (i = 0; i < 3; i++) {\n rgb[i] = parseInt(match[i + 1], 0) / 255;\n }\n\n if (match[4]) {\n rgb[3] = parseFloat(match[4]);\n }\n } else if ((match = string.match(per))) {\n for (i = 0; i < 3; i++) {\n rgb[i] = parseFloat(match[i + 1]) / 100;\n }\n\n if (match[4]) {\n rgb[3] = parseFloat(match[4]);\n }\n } else if ((match = string.match(keyword))) {\n if (match[1] === 'transparent') {\n return [0, 0, 0, 0];\n }\n\n let color = colorNames[match[1]];\n\n if (!(typeof color === 'number')) {\n return null;\n }\n\n return integerColor(color);\n } else {\n return null;\n }\n\n for (i = 0; i < 4; i++) {\n rgb[i] = clamp(rgb[i], 0, 1);\n }\n\n return rgb;\n}\n\nconst hslRegEx = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n\nfunction rgbFromHslString(string: string) {\n const match = string.match(hslRegEx);\n if (!match) {\n return null;\n }\n\n const alpha = parseFloat(match[4]);\n const h = (parseFloat(match[1]) + 360) % 360;\n const s = clamp(parseFloat(match[2]), 0, 100);\n const l = clamp(parseFloat(match[3]), 0, 100);\n const a = isNaN(alpha) ? 1 : clamp(alpha, 0, 1);\n return hslToRgb(h, s, l, a);\n}\n\nconst hwbRegEx = /^hwb\\(\\s*([+-]?\\d*[.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n\nfunction rgbFromHwbString(string: string) {\n const match = string.match(hwbRegEx);\n if (!match) {\n return null;\n }\n\n const alpha = parseFloat(match[4]);\n const h = ((parseFloat(match[1]) % 360) + 360) % 360;\n const w = clamp(parseFloat(match[2]), 0, 100);\n const b = clamp(parseFloat(match[3]), 0, 100);\n const a = isNaN(alpha) ? 1 : clamp(alpha, 0, 1);\n return hwbToRgb(h, w, b, a);\n}\n\nfunction colorFromString(string: string) {\n const prefix = string.substring(0, 3).toLowerCase();\n\n switch (prefix) {\n case 'hsl':\n return rgbFromHslString(string);\n case 'hwb':\n return rgbFromHwbString(string);\n default:\n return rgbFromString(string);\n }\n}\n\nconst identity = (x: number) => x;\n\nconst toSignedInt32 = (x: number) => x | 0x0;\n\n// Android use 32 bit *signed* integer to represent the color\n// We utilize the fact that bitwise operations in JS also operates on\n// signed 32 bit integers, so that we can use those to convert from\n// *unsigned* to *signed* 32bit in that way.\nexport const integerColor =\n Platform.OS === 'android' ? toSignedInt32 : identity;\n\n// Returns 0xaarrggbb or null\nexport default function extractColor(color: Color | void) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return integerColor(color);\n }\n return null;\n }\n\n const parsedColor =\n typeof color === 'string' ? colorFromString(color) : color;\n if (!Array.isArray(parsedColor)) {\n return parsedColor;\n }\n\n const r = parsedColor[0];\n const g = parsedColor[1];\n const b = parsedColor[2];\n const a = parsedColor[3];\n\n const int32Color =\n ((a === undefined ? 0xff000000 : Math.round(a * 255) << 24) |\n (Math.round(r * 255) << 16) |\n (Math.round(g * 255) << 8) |\n Math.round(b * 255)) >>>\n 0;\n\n return integerColor(int32Color);\n}\n","import { NumberProp } from './types';\n\nexport default function extractOpacity(opacity: NumberProp | void) {\n const value = +opacity;\n return isNaN(value) ? 1 : value;\n}\n","import extractBrush from './extractBrush';\nimport extractOpacity from './extractOpacity';\nimport extractLengthList from './extractLengthList';\nimport { StrokeProps } from './types';\n\nconst caps = {\n butt: 0,\n square: 2,\n round: 1,\n};\n\nconst joins = {\n miter: 0,\n bevel: 2,\n round: 1,\n};\n\nconst vectorEffects = {\n none: 0,\n default: 0,\n nonScalingStroke: 1,\n 'non-scaling-stroke': 1,\n inherit: 2,\n uri: 3,\n};\n\nexport default function extractStroke(\n props: StrokeProps,\n styleProperties: string[],\n) {\n const {\n stroke,\n strokeOpacity,\n strokeLinecap,\n strokeLinejoin,\n strokeDasharray,\n strokeWidth,\n strokeDashoffset,\n strokeMiterlimit,\n vectorEffect,\n } = props;\n\n if (stroke != null) {\n styleProperties.push('stroke');\n }\n if (strokeWidth != null) {\n styleProperties.push('strokeWidth');\n }\n if (strokeOpacity != null) {\n styleProperties.push('strokeOpacity');\n }\n if (strokeDasharray != null) {\n styleProperties.push('strokeDasharray');\n }\n if (strokeDashoffset != null) {\n styleProperties.push('strokeDashoffset');\n }\n if (strokeLinecap != null) {\n styleProperties.push('strokeLinecap');\n }\n if (strokeLinejoin != null) {\n styleProperties.push('strokeLinejoin');\n }\n if (strokeMiterlimit != null) {\n styleProperties.push('strokeMiterlimit');\n }\n\n const strokeDash =\n !strokeDasharray || strokeDasharray === 'none'\n ? null\n : extractLengthList(strokeDasharray);\n\n return {\n stroke: extractBrush(stroke),\n strokeOpacity: extractOpacity(strokeOpacity),\n strokeLinecap: (strokeLinecap && caps[strokeLinecap]) || 0,\n strokeLinejoin: (strokeLinejoin && joins[strokeLinejoin]) || 0,\n strokeDasharray:\n strokeDash && strokeDash.length % 2 === 1\n ? strokeDash.concat(strokeDash)\n : strokeDash,\n strokeWidth: strokeWidth != null ? strokeWidth : 1,\n strokeDashoffset:\n strokeDasharray && strokeDashoffset ? +strokeDashoffset || 0 : null,\n strokeMiterlimit:\n (strokeMiterlimit && typeof strokeMiterlimit !== 'number'\n ? parseFloat(strokeMiterlimit)\n : strokeMiterlimit) || 4,\n vectorEffect: (vectorEffect && vectorEffects[vectorEffect]) || 0,\n };\n}\n","import { NumberProp } from './types';\n\nconst spaceReg = /\\s+/;\nconst commaReg = /,/g;\n\nexport default function extractLengthList(\n lengthList?: (NumberProp)[] | NumberProp,\n): (NumberProp)[] {\n if (Array.isArray(lengthList)) {\n return lengthList;\n } else if (typeof lengthList === 'number') {\n return [lengthList];\n } else if (typeof lengthList === 'string') {\n return lengthList\n .trim()\n .replace(commaReg, ' ')\n .split(spaceReg);\n } else {\n return [];\n }\n}\n","import { append, appendTransform, identity, reset, toArray } from '../Matrix2D';\nimport { parse } from './transform';\nimport { NumberProp, TransformedProps, TransformProps } from './types';\n\nfunction appendTransformProps(props: TransformedProps) {\n const {\n x,\n y,\n originX,\n originY,\n scaleX,\n scaleY,\n rotation,\n skewX,\n skewY,\n } = props;\n appendTransform(\n x + originX,\n y + originY,\n scaleX,\n scaleY,\n rotation,\n skewX,\n skewY,\n originX,\n originY,\n );\n}\n\nfunction universal2axis(\n universal: NumberProp | (NumberProp)[] | undefined,\n axisX: NumberProp | void,\n axisY: NumberProp | void,\n defaultValue?: number,\n): [number, number] {\n let x;\n let y;\n if (typeof universal === 'number') {\n x = y = universal;\n } else if (typeof universal === 'string') {\n const coords = universal.split(/\\s*,\\s*/);\n if (coords.length === 2) {\n x = +coords[0];\n y = +coords[1];\n } else if (coords.length === 1) {\n x = y = +coords[0];\n }\n } else if (Array.isArray(universal)) {\n if (universal.length === 2) {\n x = +universal[0];\n y = +universal[1];\n } else if (universal.length === 1) {\n x = y = +universal[0];\n }\n }\n\n axisX = +axisX;\n if (!isNaN(axisX)) {\n x = axisX;\n }\n\n axisY = +axisY;\n if (!isNaN(axisY)) {\n y = axisY;\n }\n\n return [x || defaultValue || 0, y || defaultValue || 0];\n}\n\nexport function props2transform(props: TransformProps): TransformedProps {\n const {\n rotation = 0,\n translate,\n translateX,\n translateY,\n origin,\n originX,\n originY,\n scale,\n scaleX,\n scaleY,\n skew,\n skewX,\n skewY,\n x,\n y,\n } = props;\n\n if (Array.isArray(x) || Array.isArray(y)) {\n console.warn(\n 'Passing SvgLengthList to x or y attribute where SvgLength expected',\n );\n }\n const tr = universal2axis(\n translate,\n translateX || (Array.isArray(x) ? x[0] : x),\n translateY || (Array.isArray(y) ? y[0] : y),\n );\n const or = universal2axis(origin, originX, originY);\n const sc = universal2axis(scale, scaleX, scaleY, 1);\n const sk = universal2axis(skew, skewX, skewY);\n\n return {\n rotation: +rotation || 0,\n originX: or[0],\n originY: or[1],\n scaleX: sc[0],\n scaleY: sc[1],\n skewX: sk[0],\n skewY: sk[1],\n x: tr[0],\n y: tr[1],\n };\n}\n\nexport function transformToMatrix(\n props: TransformedProps,\n transform: number[] | string | TransformProps | void | undefined,\n): [number, number, number, number, number, number] {\n reset();\n appendTransformProps(props);\n\n if (transform) {\n if (Array.isArray(transform)) {\n if (typeof transform[0] === 'number') {\n append(\n transform[0],\n transform[1],\n transform[2],\n transform[3],\n transform[4],\n transform[5],\n );\n }\n // noop for react-native transform arrays, let animated handle them\n } else if (typeof transform === 'string') {\n try {\n const t = parse(transform);\n append(t[0], t[3], t[1], t[4], t[2], t[5]);\n } catch (e) {\n console.error(e);\n }\n } else {\n appendTransformProps(props2transform(transform));\n }\n }\n\n return toArray();\n}\n\nexport default function extractTransform(\n props: number[] | string | TransformProps,\n) {\n if (Array.isArray(props)) {\n return props;\n }\n if (typeof props === 'string') {\n try {\n const t = parse(props);\n return [t[0], t[3], t[1], t[4], t[2], t[5]];\n } catch (e) {\n console.error(e);\n return identity;\n }\n }\n return transformToMatrix(props2transform(props), props.transform);\n}\n","/**\n * based on\n * https://github.com/CreateJS/EaselJS/blob/631cdffb85eff9413dab43b4676f059b4232d291/src/easeljs/geom/Matrix2D.js\n */\nconst DEG_TO_RAD = Math.PI / 180;\n\nexport const identity: [number, number, number, number, number, number] = [\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n];\n\nlet a = 1;\nlet b = 0;\nlet c = 0;\nlet d = 1;\nlet tx = 0;\nlet ty = 0;\nlet hasInitialState = true;\n\n/**\n * Represents an affine transformation matrix, and provides tools for concatenating transforms.\n *\n * This matrix can be visualized as:\n *\n * \t[ a c tx\n * \t b d ty\n * \t 0 0 1 ]\n *\n * Note the locations of b and c.\n **/\n\n/**\n * Reset current matrix to an identity matrix.\n * @method reset\n **/\nexport function reset() {\n if (hasInitialState) {\n return;\n }\n a = d = 1;\n b = c = tx = ty = 0;\n hasInitialState = true;\n}\n\n/**\n * Returns an array with current matrix values.\n * @method toArray\n * @return {Array} an array with current matrix values.\n **/\nexport function toArray(): [number, number, number, number, number, number] {\n if (hasInitialState) {\n return identity;\n }\n return [a, b, c, d, tx, ty];\n}\n\n/**\n * Appends the specified matrix properties to this matrix. All parameters are required.\n * This is the equivalent of multiplying `(this matrix) * (specified matrix)`.\n * @method append\n * @param {Number} a2\n * @param {Number} b2\n * @param {Number} c2\n * @param {Number} d2\n * @param {Number} tx2\n * @param {Number} ty2\n **/\nexport function append(\n a2: number,\n b2: number,\n c2: number,\n d2: number,\n tx2: number,\n ty2: number,\n) {\n const change = a2 !== 1 || b2 !== 0 || c2 !== 0 || d2 !== 1;\n const translate = tx2 !== 0 || ty2 !== 0;\n if (!change && !translate) {\n return;\n }\n if (hasInitialState) {\n hasInitialState = false;\n a = a2;\n b = b2;\n c = c2;\n d = d2;\n tx = tx2;\n ty = ty2;\n return;\n }\n const a1 = a;\n const b1 = b;\n const c1 = c;\n const d1 = d;\n if (change) {\n a = a1 * a2 + c1 * b2;\n b = b1 * a2 + d1 * b2;\n c = a1 * c2 + c1 * d2;\n d = b1 * c2 + d1 * d2;\n }\n if (translate) {\n tx = a1 * tx2 + c1 * ty2 + tx;\n ty = b1 * tx2 + d1 * ty2 + ty;\n }\n}\n\n/**\n * Generates matrix properties from the specified display object transform properties, and appends them to this matrix.\n * For example, you can use this to generate a matrix representing the transformations of a display object:\n *\n * \treset();\n * \tappendTransform(o.x, o.y, o.scaleX, o.scaleY, o.rotation);\n * \tvar matrix = toArray()\n *\n * @method appendTransform\n * @param {Number} x\n * @param {Number} y\n * @param {Number} scaleX\n * @param {Number} scaleY\n * @param {Number} rotation\n * @param {Number} skewX\n * @param {Number} skewY\n * @param {Number} regX Optional.\n * @param {Number} regY Optional.\n **/\nexport function appendTransform(\n x: number,\n y: number,\n scaleX: number,\n scaleY: number,\n rotation: number,\n skewX: number,\n skewY: number,\n regX: number,\n regY: number,\n) {\n if (\n x === 0 &&\n y === 0 &&\n scaleX === 1 &&\n scaleY === 1 &&\n rotation === 0 &&\n skewX === 0 &&\n skewY === 0 &&\n regX === 0 &&\n regY === 0\n ) {\n return;\n }\n let cos, sin;\n if (rotation % 360) {\n const r = rotation * DEG_TO_RAD;\n cos = Math.cos(r);\n sin = Math.sin(r);\n } else {\n cos = 1;\n sin = 0;\n }\n\n const a2 = cos * scaleX;\n const b2 = sin * scaleX;\n const c2 = -sin * scaleY;\n const d2 = cos * scaleY;\n\n if (skewX || skewY) {\n const b1 = Math.tan(skewY * DEG_TO_RAD);\n const c1 = Math.tan(skewX * DEG_TO_RAD);\n append(a2 + c1 * b2, b1 * a2 + b2, c2 + c1 * d2, b1 * c2 + d2, x, y);\n } else {\n append(a2, b2, c2, d2, x, y);\n }\n\n if (regX || regY) {\n // append the registration offset:\n tx -= regX * a + regY * c;\n ty -= regX * b + regY * d;\n hasInitialState = false;\n }\n}\n","/*\n * Generated by PEG.js 0.10.0.\n *\n * http://pegjs.org/\n */\n\n\"use strict\";\n\nfunction peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n}\n\nfunction peg$SyntaxError(message, expected, found, location) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = \"SyntaxError\";\n\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, peg$SyntaxError);\n }\n}\n\npeg$subclass(peg$SyntaxError, Error);\n\npeg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n },\n\n \"class\": function(expectation) {\n var escapedParts = \"\",\n i;\n\n for (i = 0; i < expectation.parts.length; i++) {\n escapedParts += expectation.parts[i] instanceof Array\n ? classEscape(expectation.parts[i][0]) + \"-\" + classEscape(expectation.parts[i][1])\n : classEscape(expectation.parts[i]);\n }\n\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n },\n\n any: function(expectation) {\n return \"any character\";\n },\n\n end: function(expectation) {\n return \"end of input\";\n },\n\n other: function(expectation) {\n return expectation.description;\n }\n };\n\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\0/g, '\\\\0')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x' + hex(ch); });\n }\n\n function classEscape(s) {\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\]/g, '\\\\]')\n .replace(/\\^/g, '\\\\^')\n .replace(/-/g, '\\\\-')\n .replace(/\\0/g, '\\\\0')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x' + hex(ch); });\n }\n\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n\n function describeExpected(expected) {\n var descriptions = new Array(expected.length),\n i, j;\n\n for (i = 0; i < expected.length; i++) {\n descriptions[i] = describeExpectation(expected[i]);\n }\n\n descriptions.sort();\n\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n\n function describeFound(found) {\n return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n }\n\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n};\n\nfunction peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n\n var peg$FAILED = {},\n\n peg$startRuleFunctions = { transformList: peg$parsetransformList },\n peg$startRuleFunction = peg$parsetransformList,\n\n peg$c0 = function(ts) { return ts; },\n peg$c1 = function(t, ts) {\n return multiply_matrices(t, ts);\n },\n peg$c2 = \"matrix\",\n peg$c3 = peg$literalExpectation(\"matrix\", false),\n peg$c4 = \"(\",\n peg$c5 = peg$literalExpectation(\"(\", false),\n peg$c6 = \")\",\n peg$c7 = peg$literalExpectation(\")\", false),\n peg$c8 = function(a, b, c, d, e, f) {\n return [\n a, c, e,\n b, d, f\n ];\n },\n peg$c9 = \"translate\",\n peg$c10 = peg$literalExpectation(\"translate\", false),\n peg$c11 = function(tx, ty) {\n return [\n 1, 0, tx,\n 0, 1, ty || 0\n ];\n },\n peg$c12 = \"scale\",\n peg$c13 = peg$literalExpectation(\"scale\", false),\n peg$c14 = function(sx, sy) {\n return [\n sx, 0, 0,\n 0, sy === null ? sx : sy, 0\n ];\n },\n peg$c15 = \"rotate\",\n peg$c16 = peg$literalExpectation(\"rotate\", false),\n peg$c17 = function(angle, c) {\n var cos = Math.cos(deg2rad * angle);\n var sin = Math.sin(deg2rad * angle);\n if (c !== null) {\n var x = c[0];\n var y = c[1];\n return [\n cos, -sin, cos * -x + -sin * -y + x,\n sin, cos, sin * -x + cos * -y + y\n ];\n }\n return [\n cos, -sin, 0,\n sin, cos, 0\n ];\n },\n peg$c18 = \"skewX\",\n peg$c19 = peg$literalExpectation(\"skewX\", false),\n peg$c20 = function(angle) {\n return [\n 1, Math.tan(deg2rad * angle), 0,\n 0, 1, 0\n ];\n },\n peg$c21 = \"skewY\",\n peg$c22 = peg$literalExpectation(\"skewY\", false),\n peg$c23 = function(angle) {\n return [\n 1, 0, 0,\n Math.tan(deg2rad * angle), 1, 0\n ];\n },\n peg$c24 = function(f) { return parseFloat(f.join(\"\")); },\n peg$c25 = function(i) { return parseInt(i.join(\"\")); },\n peg$c26 = function(n) { return n; },\n peg$c27 = function(n1, n2) { return [n1, n2]; },\n peg$c28 = \",\",\n peg$c29 = peg$literalExpectation(\",\", false),\n peg$c30 = function(ds) { return ds.join(\"\"); },\n peg$c31 = function(f) { return f.join(\"\"); },\n peg$c32 = function(d) { return d.join(\"\"); },\n peg$c33 = peg$otherExpectation(\"fractionalConstant\"),\n peg$c34 = \".\",\n peg$c35 = peg$literalExpectation(\".\", false),\n peg$c36 = function(d1, d2) { return [d1 ? d1.join(\"\") : null, \".\", d2.join(\"\")].join(\"\"); },\n peg$c37 = /^[eE]/,\n peg$c38 = peg$classExpectation([\"e\", \"E\"], false, false),\n peg$c39 = function(e) { return [e[0], e[1], e[2].join(\"\")].join(\"\"); },\n peg$c40 = /^[+\\-]/,\n peg$c41 = peg$classExpectation([\"+\", \"-\"], false, false),\n peg$c42 = /^[0-9]/,\n peg$c43 = peg$classExpectation([[\"0\", \"9\"]], false, false),\n peg$c44 = /^[ \\t\\r\\n]/,\n peg$c45 = peg$classExpectation([\" \", \"\\t\", \"\\r\", \"\\n\"], false, false),\n\n peg$currPos = 0,\n peg$savedPos = 0,\n peg$posDetailsCache = [{ line: 1, column: 1 }],\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location\n );\n }\n\n function error(message, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildSimpleError(message, location);\n }\n\n function peg$literalExpectation(text, ignoreCase) {\n return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n }\n\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos], p;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n } else {\n details.column++;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos),\n endPosDetails = peg$computePosDetails(endPos);\n\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildSimpleError(message, location) {\n return new peg$SyntaxError(message, null, null, location);\n }\n\n function peg$buildStructuredError(expected, found, location) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected, found),\n expected,\n found,\n location\n );\n }\n\n function peg$parsetransformList() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewsp();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewsp();\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsetransforms();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsewsp();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsewsp();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsetransforms() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parsetransform();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsecommaWsp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsecommaWsp();\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsetransforms();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parsetransform();\n }\n\n return s0;\n }\n\n function peg$parsetransform() {\n var s0;\n\n s0 = peg$parsematrix();\n if (s0 === peg$FAILED) {\n s0 = peg$parsetranslate();\n if (s0 === peg$FAILED) {\n s0 = peg$parsescale();\n if (s0 === peg$FAILED) {\n s0 = peg$parserotate();\n if (s0 === peg$FAILED) {\n s0 = peg$parseskewX();\n if (s0 === peg$FAILED) {\n s0 = peg$parseskewY();\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsematrix() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c2) {\n s1 = peg$c2;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsewsp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsewsp();\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s3 = peg$c4;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsewsp();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsewsp();\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsenumber();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsecommaWsp();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsenumber();\n if (s7 !== peg$FAILED) {\n s8 = peg$parsecommaWsp();\n if (s8 !== peg$FAILED) {\n s9 = peg$parsenumber();\n if (s9 !== peg$FAILED) {\n s10 = peg$parsecommaWsp();\n if (s10 !== peg$FAILED) {\n s11 = peg$parsenumber();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsecommaWsp();\n if (s12 !== peg$FAILED) {\n s13 = peg$parsenumber();\n if (s13 !== peg$FAILED) {\n s14 = peg$parsecommaWsp();\n if (s14 !== peg$FAILED) {\n s15 = peg$parsenumber();\n if (s15 !== peg$FAILED) {\n s16 = [];\n s17 = peg$parsewsp();\n while (s17 !== peg$FAILED) {\n s16.push(s17);\n s17 = peg$parsewsp();\n }\n if (s16 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s17 = peg$c6;\n peg$currPos++;\n } else {\n s17 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s17 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c8(s5, s7, s9, s11, s13, s15);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsetranslate() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 9) === peg$c9) {\n s1 = peg$c9;\n peg$currPos += 9;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c10); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsewsp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsewsp();\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s3 = peg$c4;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsewsp();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsewsp();\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsenumber();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsecommaWspNumber();\n if (s6 === peg$FAILED) {\n s6 = null;\n }\n if (s6 !== peg$FAILED) {\n s7 = [];\n s8 = peg$parsewsp();\n while (s8 !== peg$FAILED) {\n s7.push(s8);\n s8 = peg$parsewsp();\n }\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s8 = peg$c6;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(s5, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsescale() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c12) {\n s1 = peg$c12;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsewsp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsewsp();\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s3 = peg$c4;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsewsp();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsewsp();\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsenumber();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsecommaWspNumber();\n if (s6 === peg$FAILED) {\n s6 = null;\n }\n if (s6 !== peg$FAILED) {\n s7 = [];\n s8 = peg$parsewsp();\n while (s8 !== peg$FAILED) {\n s7.push(s8);\n s8 = peg$parsewsp();\n }\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s8 = peg$c6;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c14(s5, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parserotate() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsewsp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsewsp();\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s3 = peg$c4;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsewsp();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsewsp();\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsenumber();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsecommaWspTwoNumbers();\n if (s6 === peg$FAILED) {\n s6 = null;\n }\n if (s6 !== peg$FAILED) {\n s7 = [];\n s8 = peg$parsewsp();\n while (s8 !== peg$FAILED) {\n s7.push(s8);\n s8 = peg$parsewsp();\n }\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s8 = peg$c6;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c17(s5, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseskewX() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c18) {\n s1 = peg$c18;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c19); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsewsp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsewsp();\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s3 = peg$c4;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsewsp();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsewsp();\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsenumber();\n if (s5 !== peg$FAILED) {\n s6 = [];\n s7 = peg$parsewsp();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parsewsp();\n }\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s7 = peg$c6;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseskewY() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c21) {\n s1 = peg$c21;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsewsp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsewsp();\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s3 = peg$c4;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsewsp();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsewsp();\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsenumber();\n if (s5 !== peg$FAILED) {\n s6 = [];\n s7 = peg$parsewsp();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parsewsp();\n }\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s7 = peg$c6;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c23(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parsesign();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsefloatingPointConstant();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parsesign();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseintegerConstant();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c25(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsecommaWspNumber() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = peg$parsecommaWsp();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsecommaWspTwoNumbers() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parsecommaWsp();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsecommaWsp();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsenumber();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c27(s2, s4);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsecommaWsp() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewsp();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewsp();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsecomma();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsewsp();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsewsp();\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsecomma();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsewsp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsewsp();\n }\n if (s2 !== peg$FAILED) {\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parsecomma() {\n var s0;\n\n if (input.charCodeAt(peg$currPos) === 44) {\n s0 = peg$c28;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n\n return s0;\n }\n\n function peg$parseintegerConstant() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsedigitSequence();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c30(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsefloatingPointConstant() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parsefractionalConstant();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseexponent();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parsedigitSequence();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseexponent();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c32(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsefractionalConstant() {\n var s0, s1, s2, s3;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsedigitSequence();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s2 = peg$c34;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsedigitSequence();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c36(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsedigitSequence();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s2 = peg$c34;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c32(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c33); }\n }\n\n return s0;\n }\n\n function peg$parseexponent() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c37.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsesign();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parsedigitSequence();\n if (s4 !== peg$FAILED) {\n s2 = [s2, s3, s4];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsesign() {\n var s0;\n\n if (peg$c40.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigitSequence() {\n var s0, s1;\n\n s0 = [];\n s1 = peg$parsedigit();\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsedigit();\n }\n } else {\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsewsp() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n\n var deg2rad = Math.PI / 180;\n\n /*\n ╔╠â•â•— ╔╠â•â•— ╔╠â•â•—\n â•‘ al cl el â•‘ â•‘ ar cr er â•‘ â•‘ a c e â•‘\n â•‘ bl dl fl â•‘ * â•‘ br dr fr â•‘ = â•‘ b d f â•‘\n â•‘ 0 0 1 â•‘ â•‘ 0 0 1 â•‘ â•‘ 0 0 1 â•‘\n â•šâ• â•â• â•šâ• â•â• â•šâ• â•â•\n */\n function multiply_matrices(l, r) {\n var al = l[0];\n var cl = l[1];\n var el = l[2];\n var bl = l[3];\n var dl = l[4];\n var fl = l[5];\n\n var ar = r[0];\n var cr = r[1];\n var er = r[2];\n var br = r[3];\n var dr = r[4];\n var fr = r[5];\n\n var a = al * ar + cl * br;\n var c = al * cr + cl * dr;\n var e = al * er + cl * fr + el;\n var b = bl * ar + dl * br;\n var d = bl * cr + dl * dr;\n var f = bl * er + dl * fr + fl;\n\n return [a, c, e, b, d, f];\n }\n\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n}\n\nmodule.exports = {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n};\n","import { PanResponder } from 'react-native';\nimport { ResponderInstanceProps, ResponderProps } from './types';\n\nconst responderKeys = Object.keys(PanResponder.create({}).panHandlers);\nconst numResponderKeys = responderKeys.length;\n\nexport default function extractResponder(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: { [x: string]: any } & ResponderProps,\n ref: ResponderInstanceProps,\n) {\n const {\n onPress,\n disabled,\n onPressIn,\n onPressOut,\n onLongPress,\n delayPressIn,\n delayPressOut,\n delayLongPress,\n pointerEvents,\n } = props;\n const o: {\n [touchableProperty: string]: unknown;\n } = {};\n\n let responsible = false;\n for (let i = 0; i < numResponderKeys; i++) {\n const key = responderKeys[i];\n const value = props[key];\n if (value) {\n responsible = true;\n o[key] = value;\n }\n }\n\n if (pointerEvents) {\n o.pointerEvents = pointerEvents;\n }\n\n const hasTouchableProperty =\n disabled != null ||\n onPress ||\n onPressIn ||\n onPressOut ||\n onLongPress ||\n delayPressIn ||\n delayPressOut ||\n delayLongPress;\n\n if (hasTouchableProperty) {\n responsible = true;\n o.onResponderMove = ref.touchableHandleResponderMove;\n o.onResponderGrant = ref.touchableHandleResponderGrant;\n o.onResponderRelease = ref.touchableHandleResponderRelease;\n o.onResponderTerminate = ref.touchableHandleResponderTerminate;\n o.onStartShouldSetResponder = ref.touchableHandleStartShouldSetResponder;\n o.onResponderTerminationRequest =\n ref.touchableHandleResponderTerminationRequest;\n }\n\n if (responsible) {\n o.responsible = true;\n }\n\n return o;\n}\n","export function pickNotNil(object: { [prop: string]: unknown }) {\n const result: { [prop: string]: unknown } = {};\n for (const key in object) {\n if (object.hasOwnProperty(key)) {\n const value = object[key];\n if (value !== undefined && value !== null) {\n result[key] = value;\n }\n }\n }\n return result;\n}\n\nexport const idPattern = /#([^)]+)\\)?$/;\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport { NumberProp } from '../lib/extract/types';\nimport Shape from './Shape';\n\nexport default class Circle extends Shape<{\n cx?: NumberProp;\n cy?: NumberProp;\n r?: NumberProp;\n}> {\n static displayName = 'Circle';\n\n static defaultProps = {\n cx: 0,\n cy: 0,\n r: 0,\n };\n\n render() {\n const { props } = this;\n const { cx, cy, r } = props;\n return (\n \n );\n }\n}\n\nexport const RNSVGCircle = requireNativeComponent('RNSVGCircle');\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport { NumberProp } from '../lib/extract/types';\nimport Shape from './Shape';\n\nexport default class Ellipse extends Shape<{\n cx?: NumberProp;\n cy?: NumberProp;\n rx?: NumberProp;\n ry?: NumberProp;\n}> {\n static displayName = 'Ellipse';\n\n static defaultProps = {\n cx: 0,\n cy: 0,\n rx: 0,\n ry: 0,\n };\n\n render() {\n const { props } = this;\n const { cx, cy, rx, ry } = props;\n return (\n \n );\n }\n}\n\nexport const RNSVGEllipse = requireNativeComponent('RNSVGEllipse');\n","import React from 'react';\nimport Path from './Path';\nimport Shape from './Shape';\nimport { NumberProp } from '../lib/extract/types';\nimport extractPolyPoints from '../lib/extract/extractPolyPoints';\n\nexport default class Polygon extends Shape<{ points?: number[] }> {\n static displayName = 'Polygon';\n\n static defaultProps = {\n points: '',\n };\n\n setNativeProps = (\n props: Object & {\n points?: string | (NumberProp)[];\n d?: string;\n },\n ) => {\n const { points } = props;\n if (points) {\n props.d = `M${extractPolyPoints(points)}z`;\n }\n this.root && this.root.setNativeProps(props);\n };\n\n render() {\n const { props } = this;\n const { points } = props;\n return (\n void)}\n d={points && `M${extractPolyPoints(points)}z`}\n {...props}\n />\n );\n }\n}\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport Shape from './Shape';\n\nexport default class Path extends Shape<{\n d?: string;\n}> {\n static displayName = 'Path';\n\n render() {\n const { props } = this;\n return (\n \n );\n }\n}\n\nexport const RNSVGPath = requireNativeComponent('RNSVGPath');\n","import { NumberProp } from './types';\n\nexport default function extractPolyPoints(points: string | (NumberProp)[]) {\n const polyPoints = Array.isArray(points) ? points.join(',') : points;\n return polyPoints\n .replace(/[^e]-/, ' -')\n .split(/(?:\\s+|\\s*,\\s*)/g)\n .join(' ');\n}\n","import React from 'react';\nimport Path from './Path';\nimport Shape from './Shape';\nimport { NumberProp } from '../lib/extract/types';\nimport extractPolyPoints from '../lib/extract/extractPolyPoints';\n\nexport default class Polyline extends Shape<{ points?: number[] }> {\n static displayName = 'Polyline';\n\n static defaultProps = {\n points: '',\n };\n\n setNativeProps = (\n props: Object & {\n points?: string | (NumberProp)[];\n d?: string;\n },\n ) => {\n const { points } = props;\n if (points) {\n props.d = `M${extractPolyPoints(points)}`;\n }\n this.root && this.root.setNativeProps(props);\n };\n\n render() {\n const { props } = this;\n const { points } = props;\n return (\n void)}\n d={points && `M${extractPolyPoints(points)}`}\n {...props}\n />\n );\n }\n}\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport { NumberProp } from '../lib/extract/types';\nimport Shape from './Shape';\n\nexport default class Line extends Shape<{\n x1?: NumberProp;\n y1?: NumberProp;\n x2?: NumberProp;\n y2?: NumberProp;\n}> {\n static displayName = 'Line';\n\n static defaultProps = {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n };\n\n render() {\n const { props } = this;\n const { x1, y1, x2, y2 } = props;\n return (\n \n );\n }\n}\n\nexport const RNSVGLine = requireNativeComponent('RNSVGLine');\n","import React, { Component } from 'react';\nimport {\n requireNativeComponent,\n StyleSheet,\n findNodeHandle,\n NativeModules,\n MeasureOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureInWindowOnSuccessCallback,\n} from 'react-native';\nimport {\n Color,\n ClipProps,\n FillProps,\n NumberProp,\n StrokeProps,\n ResponderProps,\n TransformProps,\n ResponderInstanceProps,\n} from '../lib/extract/types';\nimport extractResponder from '../lib/extract/extractResponder';\nimport extractViewBox from '../lib/extract/extractViewBox';\nimport extractColor from '../lib/extract/extractColor';\nimport Shape from './Shape';\nimport G from './G';\n\nconst RNSVGSvgViewManager = NativeModules.RNSVGSvgViewManager;\n\nconst styles = StyleSheet.create({\n svg: {\n backgroundColor: 'transparent',\n borderWidth: 0,\n },\n});\n\nexport default class Svg extends Shape<\n {\n color?: Color;\n style?: [] | {};\n viewBox?: string;\n opacity?: NumberProp;\n onLayout?: () => void;\n preserveAspectRatio?: string;\n } & TransformProps &\n ResponderProps &\n StrokeProps &\n FillProps &\n ClipProps\n> {\n static displayName = 'Svg';\n\n static defaultProps = {\n preserveAspectRatio: 'xMidYMid meet',\n };\n\n measureInWindow = (callback: MeasureInWindowOnSuccessCallback) => {\n this.root && this.root.measureInWindow(callback);\n };\n\n measure = (callback: MeasureOnSuccessCallback) => {\n this.root && this.root.measure(callback);\n };\n\n measureLayout = (\n relativeToNativeNode: number,\n onSuccess: MeasureLayoutOnSuccessCallback,\n onFail: () => void /* currently unused */,\n ) => {\n this.root &&\n this.root.measureLayout(relativeToNativeNode, onSuccess, onFail);\n };\n\n setNativeProps = (\n props: Object & {\n width?: NumberProp;\n height?: NumberProp;\n bbWidth?: NumberProp;\n bbHeight?: NumberProp;\n },\n ) => {\n const { width, height } = props;\n if (width) {\n props.bbWidth = width;\n }\n if (height) {\n props.bbHeight = height;\n }\n this.root && this.root.setNativeProps(props);\n };\n\n toDataURL = (callback: () => void, options?: Object) => {\n if (!callback) {\n return;\n }\n const handle = findNodeHandle(this.root as Component);\n RNSVGSvgViewManager.toDataURL(handle, options, callback);\n };\n\n render() {\n const {\n opacity = 1,\n viewBox,\n preserveAspectRatio,\n style,\n children,\n onLayout,\n ...props\n } = this.props;\n const stylesAndProps = {\n ...(Array.isArray(style) ? Object.assign({}, ...style) : style),\n ...props,\n };\n const {\n color,\n width,\n height,\n focusable,\n\n // Inherited G properties\n font,\n transform,\n fill,\n fillOpacity,\n fillRule,\n stroke,\n strokeWidth,\n strokeOpacity,\n strokeDasharray,\n strokeDashoffset,\n strokeLinecap,\n strokeLinejoin,\n strokeMiterlimit,\n } = stylesAndProps;\n\n const w = parseInt(width, 10);\n const h = parseInt(height, 10);\n const doNotParseWidth = isNaN(w) || width[width.length - 1] === '%';\n const doNotParseHeight = isNaN(h) || height[height.length - 1] === '%';\n const dimensions =\n width && height\n ? {\n width: doNotParseWidth ? width : w,\n height: doNotParseHeight ? height : h,\n flex: 0,\n }\n : null;\n\n const o = +opacity;\n const opacityStyle = !isNaN(o)\n ? {\n opacity: o,\n }\n : null;\n\n const tint = extractColor(color);\n return (\n \n \n \n );\n }\n}\n\nexport const RNSVGSvg = requireNativeComponent('RNSVGSvgView');\n","import { NumberProp } from './types';\n\nexport const meetOrSliceTypes: {\n [meetOrSlice: string]: number;\n} = {\n meet: 0,\n slice: 1,\n none: 2,\n};\n\nexport const alignEnum: { [align: string]: string } = [\n 'xMinYMin',\n 'xMidYMin',\n 'xMaxYMin',\n 'xMinYMid',\n 'xMidYMid',\n 'xMaxYMid',\n 'xMinYMax',\n 'xMidYMax',\n 'xMaxYMax',\n 'none',\n].reduce((prev: { [align: string]: string }, name) => {\n prev[name] = name;\n return prev;\n}, {});\n\nconst spacesRegExp = /\\s+/;\n\nexport default function extractViewBox(props: {\n viewBox?: string | (NumberProp)[];\n preserveAspectRatio?: string;\n}) {\n const { viewBox, preserveAspectRatio } = props;\n\n if (!viewBox) {\n return null;\n }\n\n const params = (Array.isArray(viewBox)\n ? viewBox\n : viewBox.trim().split(spacesRegExp)\n ).map(Number);\n\n if (params.length !== 4 || params.some(isNaN)) {\n console.warn('Invalid `viewBox` prop:' + viewBox);\n return null;\n }\n\n const modes = preserveAspectRatio\n ? preserveAspectRatio.trim().split(spacesRegExp)\n : [];\n const align = modes[0];\n const meetOrSlice = modes[1];\n\n return {\n minX: params[0],\n minY: params[1],\n vbWidth: params[2],\n vbHeight: params[3],\n align: alignEnum[align] || 'xMidYMid',\n meetOrSlice: meetOrSliceTypes[meetOrSlice] || 0,\n };\n}\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport { extractFont } from '../lib/extract/extractText';\nimport extractTransform from '../lib/extract/extractTransform';\nimport { TransformProps } from '../lib/extract/types';\nimport Shape from './Shape';\n\nexport default class G extends Shape<{}> {\n static displayName = 'G';\n\n setNativeProps = (\n props: Object & {\n matrix?: number[];\n } & TransformProps,\n ) => {\n const matrix = !props.matrix && extractTransform(props);\n if (matrix) {\n props.matrix = matrix;\n }\n this.root && this.root.setNativeProps(props);\n };\n\n render() {\n const { props } = this;\n const prop = propsAndStyles(props);\n return (\n \n {props.children}\n \n );\n }\n}\n\nexport const RNSVGGroup = requireNativeComponent('RNSVGGroup');\n","import React, { Children, ComponentType } from 'react';\nimport extractLengthList from './extractLengthList';\nimport { pickNotNil } from '../util';\nimport { NumberArray, NumberProp } from './types';\n\nconst fontRegExp = /^\\s*((?:(?:normal|bold|italic)\\s+)*)(?:(\\d+(?:\\.\\d+)?(?:%|px|em|pt|pc|mm|cm|in]))*(?:\\s*\\/.*?)?\\s+)?\\s*\"?([^\"]*)/i;\nconst fontFamilyPrefix = /^[\\s\"']*/;\nconst fontFamilySuffix = /[\\s\"']*$/;\nconst commaReg = /\\s*,\\s*/g;\n\nconst cachedFontObjectsFromString: {\n [font: string]: {\n fontStyle: string;\n fontSize: NumberProp;\n fontWeight: NumberProp;\n fontFamily: string | null;\n } | null;\n} = {};\n\nfunction extractSingleFontFamily(fontFamilyString?: string) {\n // SVG on the web allows for multiple font-families to be specified.\n // For compatibility, we extract the first font-family, hoping\n // we'll get a match.\n return fontFamilyString\n ? fontFamilyString\n .split(commaReg)[0]\n .replace(fontFamilyPrefix, '')\n .replace(fontFamilySuffix, '')\n : null;\n}\n\nfunction parseFontString(font: string) {\n if (cachedFontObjectsFromString.hasOwnProperty(font)) {\n return cachedFontObjectsFromString[font];\n }\n const match = fontRegExp.exec(font);\n if (!match) {\n cachedFontObjectsFromString[font] = null;\n return null;\n }\n const isBold = /bold/.exec(match[1]);\n const isItalic = /italic/.exec(match[1]);\n cachedFontObjectsFromString[font] = {\n fontSize: match[2] || 12,\n fontWeight: isBold ? 'bold' : 'normal',\n fontStyle: isItalic ? 'italic' : 'normal',\n fontFamily: extractSingleFontFamily(match[3]),\n };\n return cachedFontObjectsFromString[font];\n}\n\ninterface fontProps {\n fontData?: unknown;\n fontStyle?: string;\n fontVariant?: string;\n fontWeight?: NumberProp;\n fontStretch?: string;\n fontSize?: NumberProp;\n fontFamily?: string;\n textAnchor?: string;\n textDecoration?: string;\n letterSpacing?: NumberProp;\n wordSpacing?: NumberProp;\n kerning?: NumberProp;\n fontFeatureSettings?: string;\n fontVariantLigatures?: string;\n fontVariationSettings?: string;\n font?: string;\n}\n\nexport function extractFont(props: fontProps) {\n const {\n fontData,\n fontStyle,\n fontVariant,\n fontWeight,\n fontStretch,\n fontSize,\n fontFamily,\n textAnchor,\n textDecoration,\n letterSpacing,\n wordSpacing,\n kerning,\n fontFeatureSettings,\n fontVariantLigatures,\n fontVariationSettings,\n font,\n } = props;\n\n const ownedFont = pickNotNil({\n fontData,\n fontStyle,\n fontVariant,\n fontWeight,\n fontStretch,\n fontSize,\n fontFamily: extractSingleFontFamily(fontFamily),\n textAnchor,\n textDecoration,\n letterSpacing,\n wordSpacing,\n kerning,\n fontFeatureSettings,\n fontVariantLigatures,\n fontVariationSettings,\n });\n\n const baseFont = typeof font === 'string' ? parseFontString(font) : font;\n\n return { ...baseFont, ...ownedFont };\n}\n\nlet TSpan: ComponentType;\n\nexport function setTSpan(TSpanImplementation: ComponentType) {\n TSpan = TSpanImplementation;\n}\n\nfunction getChild(child: undefined | string | number | ComponentType) {\n if (typeof child === 'string' || typeof child === 'number') {\n return {String(child)};\n } else {\n return child;\n }\n}\n\nexport type TextProps = {\n x?: NumberArray;\n y?: NumberArray;\n dx?: NumberArray;\n dy?: NumberArray;\n rotate?: NumberArray;\n children?: string | number | (string | number | ComponentType)[];\n inlineSize?: NumberProp;\n baselineShift?: NumberProp;\n verticalAlign?: NumberProp;\n alignmentBaseline?: string;\n} & fontProps;\n\nexport default function extractText(props: TextProps, container: boolean) {\n const {\n x,\n y,\n dx,\n dy,\n rotate,\n children,\n inlineSize,\n baselineShift,\n verticalAlign,\n alignmentBaseline,\n } = props;\n\n const textChildren =\n typeof children === 'string' || typeof children === 'number' ? (\n container ? (\n {String(children)}\n ) : null\n ) : Children.count(children) > 1 || Array.isArray(children) ? (\n Children.map(children, getChild)\n ) : (\n children\n );\n\n return {\n content: textChildren === null ? String(children) : null,\n children: textChildren,\n inlineSize,\n baselineShift,\n verticalAlign,\n alignmentBaseline,\n font: extractFont(props),\n x: extractLengthList(x),\n y: extractLengthList(y),\n dx: extractLengthList(dx),\n dy: extractLengthList(dy),\n rotate: extractLengthList(rotate),\n };\n}\n","import React, { Component } from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractText from '../lib/extract/extractText';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport extractTransform from '../lib/extract/extractTransform';\nimport { TransformProps } from '../lib/extract/types';\nimport { pickNotNil } from '../lib/util';\nimport Shape from './Shape';\nimport './TSpan';\n\nexport default class Text extends Shape<{}> {\n static displayName = 'Text';\n\n setNativeProps = (\n props: Object & {\n matrix?: number[];\n style?: [] | {};\n } & TransformProps,\n ) => {\n const matrix = props && !props.matrix && extractTransform(props);\n if (matrix) {\n props.matrix = matrix;\n }\n const prop = propsAndStyles(props);\n Object.assign(prop, pickNotNil(extractText(prop, true)));\n this.root && this.root.setNativeProps(prop);\n };\n\n render() {\n const prop = propsAndStyles(this.props);\n const props = extractProps(\n {\n ...prop,\n x: null,\n y: null,\n },\n this,\n );\n Object.assign(props, extractText(prop, true));\n props.ref = this.refMethod as (instance: Component | null) => void;\n return ;\n }\n}\n\nexport const RNSVGText = requireNativeComponent('RNSVGText');\n","import React, { Component } from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport extractTransform from '../lib/extract/extractTransform';\nimport extractText, { setTSpan } from '../lib/extract/extractText';\nimport { pickNotNil } from '../lib/util';\nimport Shape from './Shape';\nimport { TransformProps } from '../lib/extract/types';\n\nexport default class TSpan extends Shape<{}> {\n static displayName = 'TSpan';\n\n setNativeProps = (\n props: Object & {\n matrix?: number[];\n style?: [] | {};\n } & TransformProps,\n ) => {\n const matrix = !props.matrix && extractTransform(props);\n if (matrix) {\n props.matrix = matrix;\n }\n const prop = propsAndStyles(props);\n Object.assign(prop, pickNotNil(extractText(prop, false)));\n this.root && this.root.setNativeProps(prop);\n };\n\n render() {\n const prop = propsAndStyles(this.props);\n const props = extractProps(\n {\n ...prop,\n x: null,\n y: null,\n },\n this,\n );\n Object.assign(props, extractText(prop, false));\n props.ref = this.refMethod as (instance: Component | null) => void;\n return ;\n }\n}\n\nsetTSpan(TSpan);\n\nexport const RNSVGTSpan = requireNativeComponent('RNSVGTSpan');\n","import React, { Component } from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractTransform from '../lib/extract/extractTransform';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport { NumberProp, TransformProps } from '../lib/extract/types';\nimport extractText from '../lib/extract/extractText';\nimport { idPattern, pickNotNil } from '../lib/util';\nimport Shape from './Shape';\nimport TSpan from './TSpan';\n\nexport default class TextPath extends Shape<{\n children?: NumberProp | [NumberProp | React.ComponentType];\n alignmentBaseline?: string;\n startOffset?: NumberProp;\n xlinkHref?: string;\n midLine?: string;\n spacing?: string;\n method?: string;\n href?: string;\n side?: string;\n}> {\n static displayName = 'TextPath';\n\n setNativeProps = (\n props: Object & {\n matrix?: number[];\n style?: [] | {};\n } & TransformProps,\n ) => {\n const matrix = !props.matrix && extractTransform(props);\n if (matrix) {\n props.matrix = matrix;\n }\n Object.assign(props, pickNotNil(extractText(props, true)));\n this.root && this.root.setNativeProps(props);\n };\n\n render() {\n const {\n children,\n xlinkHref,\n href = xlinkHref,\n startOffset = 0,\n method,\n spacing,\n side,\n alignmentBaseline,\n midLine,\n ...prop\n } = this.props;\n const matched = href && href.match(idPattern);\n const match = matched && matched[1];\n if (match) {\n const props = extractProps(\n {\n ...propsAndStyles(prop),\n x: null,\n y: null,\n },\n this,\n );\n Object.assign(\n props,\n extractText(\n {\n children,\n },\n true,\n ),\n {\n href: match,\n startOffset,\n method,\n spacing,\n side,\n alignmentBaseline,\n midLine,\n },\n );\n props.ref = this.refMethod as (instance: Component | null) => void;\n return ;\n }\n\n console.warn(\n 'Invalid `href` prop for `TextPath` element, expected a href like \"#id\", but got: \"' +\n href +\n '\"',\n );\n return (\n void}>\n {children}\n \n );\n }\n}\n\nexport const RNSVGTextPath = requireNativeComponent('RNSVGTextPath');\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport { NumberProp } from '../lib/extract/types';\nimport { idPattern } from '../lib/util';\nimport Shape from './Shape';\n\nexport default class Use extends Shape<{\n x?: NumberProp;\n y?: NumberProp;\n width?: NumberProp;\n height?: NumberProp;\n xlinkHref?: string;\n href?: string;\n}> {\n static displayName = 'Use';\n\n static defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n\n render() {\n const { props } = this;\n const {\n children,\n x,\n y,\n width,\n height,\n xlinkHref,\n href = xlinkHref,\n } = props;\n\n const matched = href && href.match(idPattern);\n const match = matched && matched[1];\n\n if (!match) {\n console.warn(\n 'Invalid `href` prop for `Use` element, expected a href like \"#id\", but got: \"' +\n href +\n '\"',\n );\n }\n\n return (\n \n {children}\n \n );\n }\n}\n\nexport const RNSVGUse = requireNativeComponent('RNSVGUse');\n","import React from 'react';\nimport {\n Image,\n ImageSourcePropType,\n requireNativeComponent,\n} from 'react-native';\nimport { meetOrSliceTypes, alignEnum } from '../lib/extract/extractViewBox';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport { NumberProp } from '../lib/extract/types';\nimport Shape from './Shape';\n\nconst spacesRegExp = /\\s+/;\n\nexport default class SvgImage extends Shape<{\n preserveAspectRatio?: string;\n x?: NumberProp;\n y?: NumberProp;\n width?: NumberProp;\n height?: NumberProp;\n xlinkHref?: string | number | ImageSourcePropType;\n href?: string | number | ImageSourcePropType;\n}> {\n static displayName = 'Image';\n\n static defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n preserveAspectRatio: 'xMidYMid meet',\n };\n\n render() {\n const { props } = this;\n const {\n preserveAspectRatio,\n x,\n y,\n width,\n height,\n xlinkHref,\n href = xlinkHref,\n } = props;\n const modes = preserveAspectRatio\n ? preserveAspectRatio.trim().split(spacesRegExp)\n : [];\n const align = modes[0];\n const meetOrSlice: 'meet' | 'slice' | 'none' | string | undefined =\n modes[1];\n return (\n \n );\n }\n}\n\nexport const RNSVGImage = requireNativeComponent('RNSVGImage');\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractViewBox from '../lib/extract/extractViewBox';\nimport Shape from './Shape';\n\nexport default class Symbol extends Shape<{\n id?: string;\n viewBox?: string;\n preserveAspectRatio?: string;\n}> {\n static displayName = 'Symbol';\n\n render() {\n const { props } = this;\n const { id, children } = props;\n return (\n \n {children}\n \n );\n }\n}\n\nexport const RNSVGSymbol = requireNativeComponent('RNSVGSymbol');\n","import React, { Component } from 'react';\nimport { requireNativeComponent } from 'react-native';\n\nexport default class Defs extends Component {\n static displayName = 'Defs';\n\n render() {\n return {this.props.children};\n }\n}\n\nexport const RNSVGDefs = requireNativeComponent('RNSVGDefs');\n","import React, { ReactElement } from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractGradient from '../lib/extract/extractGradient';\nimport { NumberProp, TransformProps } from '../lib/extract/types';\nimport Shape from './Shape';\n\nexport default class LinearGradient extends Shape<{\n id?: string;\n x1?: NumberProp;\n y1?: NumberProp;\n x2?: NumberProp;\n y2?: NumberProp;\n children?: ReactElement[];\n transform?: number[] | string | TransformProps;\n gradientTransform?: number[] | string | TransformProps;\n gradientUnits?: 'objectBoundingBox' | 'userSpaceOnUse';\n}> {\n static displayName = 'LinearGradient';\n\n static defaultProps = {\n x1: '0%',\n y1: '0%',\n x2: '100%',\n y2: '0%',\n };\n\n render() {\n const { props } = this;\n const { x1, y1, x2, y2 } = props;\n return (\n \n );\n }\n}\n\nexport const RNSVGLinearGradient = requireNativeComponent(\n 'RNSVGLinearGradient',\n);\n","import React, { Children, ReactElement } from 'react';\n\nimport extractColor from './extractColor';\nimport extractOpacity from './extractOpacity';\nimport extractTransform from './extractTransform';\nimport { TransformProps } from './types';\nimport units from '../units';\n\nconst percentReg = /^([+\\-]?\\d+(?:\\.\\d+)?(?:[eE][+\\-]?\\d+)?)(%?)$/;\n\nfunction percentToFloat(\n percent:\n | number\n | string\n | {\n __getAnimatedValue: () => number;\n },\n): number {\n if (typeof percent === 'number') {\n return percent;\n }\n if (\n typeof percent === 'object' &&\n typeof percent.__getAnimatedValue === 'function'\n ) {\n return percent.__getAnimatedValue();\n }\n const matched = typeof percent === 'string' && percent.match(percentReg);\n if (!matched) {\n console.warn(`\"${percent}\" is not a valid number or percentage string.`);\n return 0;\n }\n\n return matched[2] ? +matched[1] / 100 : +matched[1];\n}\n\nconst offsetComparator = (object: number[], other: number[]) =>\n object[0] - other[0];\n\nexport default function extractGradient(\n props: {\n id?: string;\n children?: ReactElement[];\n transform?: number[] | string | TransformProps;\n gradientTransform?: number[] | string | TransformProps;\n gradientUnits?: 'objectBoundingBox' | 'userSpaceOnUse';\n } & TransformProps,\n parent: {},\n) {\n const { id, children, gradientTransform, transform, gradientUnits } = props;\n if (!id) {\n return null;\n }\n\n const stops = [];\n const childArray = children\n ? Children.map(children, child =>\n React.cloneElement(child, {\n parent,\n }),\n )\n : [];\n const l = childArray.length;\n for (let i = 0; i < l; i++) {\n const {\n props: {\n style,\n offset = style && style.offset,\n stopColor = (style && style.stopColor) || '#000',\n stopOpacity = style && style.stopOpacity,\n },\n } = childArray[i];\n const offsetNumber = percentToFloat(offset || 0);\n const color = stopColor && extractColor(stopColor);\n if (typeof color !== 'number' || isNaN(offsetNumber)) {\n console.warn(\n `\"${stopColor}\" is not a valid color or \"${offset}\" is not a valid offset`,\n );\n continue;\n }\n const alpha = Math.round(extractOpacity(stopOpacity) * 255);\n stops.push([offsetNumber, (color & 0x00ffffff) | (alpha << 24)]);\n }\n stops.sort(offsetComparator);\n\n const gradient = [];\n const k = stops.length;\n for (let j = 0; j < k; j++) {\n const s = stops[j];\n gradient.push(s[0], s[1]);\n }\n\n return {\n name: id,\n gradient,\n children: childArray,\n gradientUnits: (gradientUnits && units[gradientUnits]) || 0,\n gradientTransform: extractTransform(\n gradientTransform || transform || props,\n ),\n };\n}\n","export const units: { objectBoundingBox: number; userSpaceOnUse: number } = {\n objectBoundingBox: 0,\n userSpaceOnUse: 1,\n};\nexport default units;\n","import React, { ReactElement } from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractGradient from '../lib/extract/extractGradient';\nimport { NumberProp, TransformProps } from '../lib/extract/types';\nimport Shape from './Shape';\n\nexport default class RadialGradient extends Shape<{\n fx?: NumberProp;\n fy?: NumberProp;\n rx?: NumberProp;\n ry?: NumberProp;\n r?: NumberProp;\n cx?: NumberProp;\n cy?: NumberProp;\n id?: string;\n children?: ReactElement[];\n transform?: number[] | string | TransformProps;\n gradientTransform?: number[] | string | TransformProps;\n gradientUnits?: 'objectBoundingBox' | 'userSpaceOnUse';\n}> {\n static displayName = 'RadialGradient';\n\n static defaultProps = {\n cx: '50%',\n cy: '50%',\n r: '50%',\n };\n\n render() {\n const { props } = this;\n const { rx, ry, r, cx, cy, fx = cx, fy = cy } = props;\n return (\n \n );\n }\n}\n\nexport const RNSVGRadialGradient = requireNativeComponent(\n 'RNSVGRadialGradient',\n);\n","import { Component } from 'react';\n\ntype StopProps = {\n parent?: Component;\n};\n\nexport default class Stop extends Component {\n props!: StopProps;\n static displayName = 'Stop';\n\n setNativeProps = () => {\n const { parent } = this.props;\n if (parent) {\n parent.forceUpdate();\n }\n };\n\n render() {\n return null;\n }\n}\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport Shape from './Shape';\n\nexport default class ClipPath extends Shape<{}> {\n static displayName = 'ClipPath';\n\n render() {\n const { props } = this;\n return (\n \n {props.children}\n \n );\n }\n}\n\nexport const RNSVGClipPath = requireNativeComponent('RNSVGClipPath');\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractTransform from '../lib/extract/extractTransform';\nimport extractViewBox from '../lib/extract/extractViewBox';\nimport { NumberProp, TransformProps } from '../lib/extract/types';\nimport units from '../lib/units';\nimport Shape from './Shape';\n\nexport default class Pattern extends Shape<{\n id?: string;\n x?: NumberProp;\n y?: NumberProp;\n width?: NumberProp;\n height?: NumberProp;\n viewBox?: string;\n preserveAspectRatio?: string;\n transform?: number[] | string | TransformProps;\n patternTransform?: number[] | string | TransformProps;\n patternUnits?: 'objectBoundingBox' | 'userSpaceOnUse';\n patternContentUnits?: 'objectBoundingBox' | 'userSpaceOnUse';\n}> {\n static displayName = 'Pattern';\n\n static defaultProps = {\n x: '0%',\n y: '0%',\n width: '100%',\n height: '100%',\n };\n\n render() {\n const { props } = this;\n const {\n patternTransform,\n transform,\n id,\n x,\n y,\n width,\n height,\n patternUnits,\n patternContentUnits,\n children,\n viewBox,\n preserveAspectRatio,\n } = props;\n const matrix = extractTransform(patternTransform || transform || props);\n return (\n \n {children}\n \n );\n }\n}\n\nexport const RNSVGPattern = requireNativeComponent('RNSVGPattern');\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractTransform from '../lib/extract/extractTransform';\nimport extractProps, { propsAndStyles } from '../lib/extract/extractProps';\nimport { NumberProp, TransformProps } from '../lib/extract/types';\nimport units from '../lib/units';\nimport Shape from './Shape';\n\nexport default class Mask extends Shape<{\n x?: NumberProp;\n y?: NumberProp;\n width?: NumberProp;\n height?: NumberProp;\n transform?: number[] | string | TransformProps;\n maskTransform?: number[] | string | TransformProps;\n maskUnits?: 'objectBoundingBox' | 'userSpaceOnUse';\n maskContentUnits?: 'objectBoundingBox' | 'userSpaceOnUse';\n}> {\n static displayName = 'Mask';\n\n static defaultProps = {\n x: '0%',\n y: '0%',\n width: '100%',\n height: '100%',\n };\n\n render() {\n const { props } = this;\n const {\n maskTransform,\n transform,\n x,\n y,\n width,\n height,\n maskUnits,\n maskContentUnits,\n children,\n } = props;\n return (\n \n {children}\n \n );\n }\n}\n\nexport const RNSVGMask = requireNativeComponent('RNSVGMask');\n","import React from 'react';\nimport { requireNativeComponent } from 'react-native';\nimport extractViewBox from '../lib/extract/extractViewBox';\nimport { NumberProp } from '../lib/extract/types';\nimport Shape from './Shape';\n\nexport default class Marker extends Shape<{\n id?: string;\n viewBox?: string;\n preserveAspectRatio?: string;\n refX?: NumberProp;\n refY?: NumberProp;\n markerWidth?: NumberProp;\n markerHeight?: NumberProp;\n markerUnits?: 'strokeWidth' | 'userSpaceOnUse';\n orient?: 'auto' | 'auto-start-reverse' | NumberProp;\n}> {\n static displayName = 'Marker';\n\n static defaultProps = {\n refX: 0,\n refY: 0,\n orient: '0',\n markerWidth: 3,\n markerHeight: 3,\n markerUnits: 'strokeWidth',\n };\n\n render() {\n const { props } = this;\n const {\n id,\n viewBox,\n preserveAspectRatio,\n refX,\n refY,\n markerUnits,\n orient,\n markerWidth,\n markerHeight,\n children,\n } = props;\n return (\n \n {children}\n \n );\n }\n}\n\nexport const RNSVGMarker = requireNativeComponent('RNSVGMarker');\n","import React, {\n Component,\n ComponentType,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport Rect from './elements/Rect';\nimport Circle from './elements/Circle';\nimport Ellipse from './elements/Ellipse';\nimport Polygon from './elements/Polygon';\nimport Polyline from './elements/Polyline';\nimport Line from './elements/Line';\nimport Svg from './elements/Svg';\nimport Path from './elements/Path';\nimport G from './elements/G';\nimport Text from './elements/Text';\nimport TSpan from './elements/TSpan';\nimport TextPath from './elements/TextPath';\nimport Use from './elements/Use';\nimport Image from './elements/Image';\nimport Symbol from './elements/Symbol';\nimport Defs from './elements/Defs';\nimport LinearGradient from './elements/LinearGradient';\nimport RadialGradient from './elements/RadialGradient';\nimport Stop from './elements/Stop';\nimport ClipPath from './elements/ClipPath';\nimport Pattern from './elements/Pattern';\nimport Mask from './elements/Mask';\nimport Marker from './elements/Marker';\n\nexport const tags: { [tag: string]: ComponentType } = {\n svg: Svg,\n circle: Circle,\n ellipse: Ellipse,\n g: G,\n text: Text,\n tspan: TSpan,\n textPath: TextPath,\n path: Path,\n polygon: Polygon,\n polyline: Polyline,\n line: Line,\n rect: Rect,\n use: Use,\n image: Image,\n symbol: Symbol,\n defs: Defs,\n linearGradient: LinearGradient,\n radialGradient: RadialGradient,\n stop: Stop,\n clipPath: ClipPath,\n pattern: Pattern,\n mask: Mask,\n marker: Marker,\n};\n\nfunction missingTag() {\n return null;\n}\n\nexport interface AST {\n tag: string;\n style?: Styles;\n styles?: string;\n priority?: Map;\n parent: AST | null;\n children: (AST | string)[] | (JSX.Element | string)[];\n props: {\n [prop: string]: Styles | string | undefined;\n };\n Tag: ComponentType;\n}\n\nexport interface XmlAST extends AST {\n children: (XmlAST | string)[];\n parent: XmlAST | null;\n}\n\nexport interface JsxAST extends AST {\n children: (JSX.Element | string)[];\n}\n\nexport type UriProps = { uri: string | null; override?: Object };\nexport type UriState = { xml: string | null };\n\nexport type XmlProps = { xml: string | null; override?: Object };\nexport type XmlState = { ast: JsxAST | null };\n\nexport type AstProps = { ast: JsxAST | null; override?: Object };\n\nexport function SvgAst({ ast, override }: AstProps) {\n if (!ast) {\n return null;\n }\n const { props, children } = ast;\n return (\n \n {children}\n \n );\n}\n\nexport function SvgXml(props: XmlProps) {\n const { xml, override } = props;\n const ast = useMemo(() => (xml !== null ? parse(xml) : null), [\n xml,\n ]);\n return ;\n}\n\nexport async function fetchText(uri: string) {\n const response = await fetch(uri);\n return await response.text();\n}\n\nexport const err = console.error.bind(console);\n\nexport function SvgUri(props: UriProps) {\n const { uri } = props;\n const [xml, setXml] = useState(null);\n useEffect(() => {\n uri\n ? fetchText(uri)\n .then(setXml)\n .catch(err)\n : setXml(null);\n }, [uri]);\n return ;\n}\n\n// Extending Component is required for Animated support.\n\nexport class SvgFromXml extends Component {\n state = { ast: null };\n componentDidMount() {\n this.parse(this.props.xml);\n }\n componentDidUpdate(prevProps: { xml: string | null }) {\n const { xml } = this.props;\n if (xml !== prevProps.xml) {\n this.parse(xml);\n }\n }\n parse(xml: string | null) {\n try {\n this.setState({ ast: xml ? parse(xml) : null });\n } catch (e) {\n console.error(e);\n }\n }\n render() {\n const {\n props,\n state: { ast },\n } = this;\n return ;\n }\n}\n\nexport class SvgFromUri extends Component {\n state = { xml: null };\n componentDidMount() {\n this.fetch(this.props.uri);\n }\n componentDidUpdate(prevProps: { uri: string | null }) {\n const { uri } = this.props;\n if (uri !== prevProps.uri) {\n this.fetch(uri);\n }\n }\n async fetch(uri: string | null) {\n try {\n this.setState({ xml: uri ? await fetchText(uri) : null });\n } catch (e) {\n console.error(e);\n }\n }\n render() {\n const {\n props,\n state: { xml },\n } = this;\n return ;\n }\n}\n\nconst upperCase = (_match: string, letter: string) => letter.toUpperCase();\n\nexport const camelCase = (phrase: string) =>\n phrase.replace(/[:\\-]([a-z])/g, upperCase);\n\nexport type Styles = { [property: string]: string };\n\nexport function getStyle(string: string): Styles {\n const style: Styles = {};\n const declarations = string.split(';');\n const { length } = declarations;\n for (let i = 0; i < length; i++) {\n const declaration = declarations[i];\n if (declaration.length !== 0) {\n const split = declaration.split(':');\n const property = split[0];\n const value = split[1];\n style[camelCase(property.trim())] = value.trim();\n }\n }\n return style;\n}\n\nexport function astToReact(\n value: AST | string,\n index: number,\n): JSX.Element | string {\n if (typeof value === 'object') {\n const { Tag, props, children } = value;\n return (\n \n {(children as (AST | string)[]).map(astToReact)}\n \n );\n }\n return value;\n}\n\n// slimmed down parser based on https://github.com/Rich-Harris/svg-parser\n\nfunction repeat(str: string, i: number) {\n let result = '';\n while (i--) {\n result += str;\n }\n return result;\n}\n\nconst toSpaces = (tabs: string) => repeat(' ', tabs.length);\n\nfunction locate(source: string, i: number) {\n const lines = source.split('\\n');\n const nLines = lines.length;\n let column = i;\n let line = 0;\n for (; line < nLines; line++) {\n const { length } = lines[line];\n if (column >= length) {\n column -= length;\n } else {\n break;\n }\n }\n const before = source.slice(0, i).replace(/^\\t+/, toSpaces);\n const beforeExec = /(^|\\n).*$/.exec(before);\n const beforeLine = (beforeExec && beforeExec[0]) || '';\n const after = source.slice(i);\n const afterExec = /.*(\\n|$)/.exec(after);\n const afterLine = afterExec && afterExec[0];\n const pad = repeat(' ', beforeLine.length);\n const snippet = `${beforeLine}${afterLine}\\n${pad}^`;\n return { line, column, snippet };\n}\n\nconst validNameCharacters = /[a-zA-Z0-9:_-]/;\nconst whitespace = /[\\s\\t\\r\\n]/;\nconst quotemarks = /['\"]/;\n\nexport type Middleware = (ast: XmlAST) => XmlAST;\n\nexport function parse(source: string, middleware?: Middleware): JsxAST | null {\n const length = source.length;\n let currentElement: XmlAST | null = null;\n let state = metadata;\n let children = null;\n let root: XmlAST | undefined;\n let stack: XmlAST[] = [];\n\n function error(message: string) {\n const { line, column, snippet } = locate(source, i);\n throw new Error(\n `${message} (${line}:${column}). If this is valid SVG, it's probably a bug. Please raise an issue\\n\\n${snippet}`,\n );\n }\n\n function metadata() {\n while (\n i + 1 < length &&\n (source[i] !== '<' || !validNameCharacters.test(source[i + 1]))\n ) {\n i++;\n }\n\n return neutral();\n }\n\n function neutral() {\n let text = '';\n let char;\n while (i < length && (char = source[i]) !== '<') {\n text += char;\n i += 1;\n }\n\n if (/\\S/.test(text)) {\n children.push(text);\n }\n\n if (source[i] === '<') {\n return openingTag;\n }\n\n return neutral;\n }\n\n function openingTag() {\n const char = source[i];\n\n if (char === '?') {\n return neutral;\n } // ') {\n error('Expected >');\n }\n\n if (!selfClosing) {\n currentElement = element;\n ({ children } = element);\n stack.push(element);\n }\n\n return neutral;\n }\n\n function comment() {\n const index = source.indexOf('-->', i);\n if (!~index) {\n error('expected -->');\n }\n\n i = index + 2;\n return neutral;\n }\n\n function cdata() {\n const index = source.indexOf(']]>', i);\n if (!~index) {\n error('expected ]]>');\n }\n\n children.push(source.slice(i + 7, index));\n\n i = index + 2;\n return neutral;\n }\n\n function closingTag() {\n const tag = getName();\n\n if (!tag) {\n error('Expected tag name');\n }\n\n if (currentElement && tag !== currentElement.tag) {\n error(\n `Expected closing tag to match opening tag <${currentElement.tag}>`,\n );\n }\n\n if (source[i] !== '>') {\n error('Expected >');\n }\n\n stack.pop();\n currentElement = stack[stack.length - 1];\n if (currentElement) {\n ({ children } = currentElement);\n }\n\n return neutral;\n }\n\n function getName() {\n let name = '';\n let char;\n while (i < length && validNameCharacters.test((char = source[i]))) {\n name += char;\n i += 1;\n }\n\n return name;\n }\n\n function getAttributes(props: {\n [x: string]: Styles | string | number | boolean | undefined;\n style?: string | Styles | undefined;\n }) {\n while (i < length) {\n if (!whitespace.test(source[i])) {\n return;\n }\n allowSpaces();\n\n const name = getName();\n if (!name) {\n return;\n }\n\n let value: boolean | number | string = true;\n\n allowSpaces();\n if (source[i] === '=') {\n i += 1;\n allowSpaces();\n\n value = getAttributeValue();\n if (!isNaN(+value) && value.trim() !== '') {\n value = +value;\n }\n }\n\n props[camelCase(name)] = value;\n }\n }\n\n function getAttributeValue(): string {\n return quotemarks.test(source[i])\n ? getQuotedAttributeValue()\n : getUnquotedAttributeValue();\n }\n\n function getUnquotedAttributeValue() {\n let value = '';\n do {\n const char = source[i];\n if (char === ' ' || char === '>' || char === '/') {\n return value;\n }\n\n value += char;\n i += 1;\n } while (i < length);\n\n return value;\n }\n\n function getQuotedAttributeValue() {\n const quotemark = source[i++];\n\n let value = '';\n let escaped = false;\n\n while (i < length) {\n const char = source[i++];\n if (char === quotemark && !escaped) {\n return value;\n }\n\n if (char === '\\\\' && !escaped) {\n escaped = true;\n }\n\n value += escaped ? `\\\\${char}` : char;\n escaped = false;\n }\n\n return value;\n }\n\n function allowSpaces() {\n while (i < length && whitespace.test(source[i])) {\n i += 1;\n }\n }\n\n let i = 0;\n while (i < length) {\n if (!state) {\n error('Unexpected character');\n }\n state = state();\n i += 1;\n }\n\n if (state !== neutral) {\n error('Unexpected end of input');\n }\n\n if (root) {\n const xml: XmlAST = (middleware ? middleware(root) : root) || root;\n const ast: (JSX.Element | string)[] = xml.children.map(astToReact);\n const jsx: JsxAST = xml as JsxAST;\n jsx.children = ast;\n return jsx;\n }\n\n return null;\n}\n","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","import React, { Component, useEffect, useMemo, useState } from 'react';\nimport {\n camelCase,\n err,\n fetchText,\n JsxAST,\n Middleware,\n parse,\n Styles,\n SvgAst,\n UriProps,\n UriState,\n XmlAST,\n XmlProps,\n XmlState,\n} from './xml';\nimport csstree, {\n Atrule,\n AtrulePrelude,\n CssNode,\n Declaration,\n DeclarationList,\n List,\n ListItem,\n PseudoClassSelector,\n Rule,\n Selector,\n SelectorList,\n} from 'css-tree';\nimport cssSelect, { Adapter, Options, Predicate, Query } from 'css-select';\n\n/*\n * Style element inlining experiment based on SVGO\n * https://github.com/svg/svgo/blob/11f9c797411a8de966aacc4cb83dbb3e471757bc/plugins/inlineStyles.js\n * */\n\n/**\n * DOMUtils API for rnsvg AST (used by css-select)\n */\n// is the node a tag?\n// isTag: ( node:Node ) => isTag:Boolean\nfunction isTag(node: XmlAST | string): node is XmlAST {\n return typeof node === 'object';\n}\n\n// get the parent of the node\n// getParent: ( node:Node ) => parentNode:Node\n// returns null when no parent exists\nfunction getParent(node: XmlAST | string): XmlAST {\n return ((typeof node === 'object' && node.parent) || null) as XmlAST;\n}\n\n// get the node's children\n// getChildren: ( node:Node ) => children:[Node]\nfunction getChildren(node: XmlAST | string): Array {\n return (typeof node === 'object' && node.children) || [];\n}\n\n// get the name of the tag'\n// getName: ( elem:ElementNode ) => tagName:String\nfunction getName(elem: XmlAST): string {\n return elem.tag;\n}\n\n// get the text content of the node, and its children if it has any\n// getText: ( node:Node ) => text:String\n// returns empty string when there is no text\nfunction getText(_node: XmlAST | string): string {\n return '';\n}\n\n// get the attribute value\n// getAttributeValue: ( elem:ElementNode, name:String ) => value:String\n// returns null when attribute doesn't exist\nfunction getAttributeValue(elem: XmlAST, name: string): string {\n return (elem.props[name] || null) as string;\n}\n\n// takes an array of nodes, and removes any duplicates, as well as any nodes\n// whose ancestors are also in the array\nfunction removeSubsets(nodes: Array): Array {\n let idx = nodes.length,\n node,\n ancestor,\n replace;\n\n // Check if each node (or one of its ancestors) is already contained in the\n // array.\n while (--idx > -1) {\n node = ancestor = nodes[idx];\n\n // Temporarily remove the node under consideration\n delete nodes[idx];\n replace = true;\n\n while (ancestor) {\n if (nodes.includes(ancestor)) {\n replace = false;\n nodes.splice(idx, 1);\n break;\n }\n ancestor = (typeof ancestor === 'object' && ancestor.parent) || null;\n }\n\n // If the node has been found to be unique, re-insert it.\n if (replace) {\n nodes[idx] = node;\n }\n }\n\n return nodes;\n}\n\n// does at least one of passed element nodes pass the test predicate?\nfunction existsOne(\n predicate: Predicate,\n elems: Array,\n): boolean {\n return elems.some(\n elem =>\n typeof elem === 'object' &&\n (predicate(elem) || existsOne(predicate, elem.children)),\n );\n}\n\n/*\n get the siblings of the node. Note that unlike jQuery's `siblings` method,\n this is expected to include the current node as well\n*/\nfunction getSiblings(node: XmlAST | string): Array {\n const parent = typeof node === 'object' && node.parent;\n return (parent && parent.children) || [];\n}\n\n// does the element have the named attribute?\nfunction hasAttrib(elem: XmlAST, name: string): boolean {\n return elem.props.hasOwnProperty(name);\n}\n\n// finds the first node in the array that matches the test predicate, or one\n// of its children\nfunction findOne(\n predicate: Predicate,\n elems: Array,\n): XmlAST | undefined {\n let elem: XmlAST | undefined;\n\n for (let i = 0, l = elems.length; i < l && !elem; i++) {\n const node = elems[i];\n if (typeof node === 'string') {\n } else if (predicate(node)) {\n elem = node;\n } else {\n const { children } = node;\n if (children.length !== 0) {\n elem = findOne(predicate, children);\n }\n }\n }\n\n return elem;\n}\n\n// finds all of the element nodes in the array that match the test predicate,\n// as well as any of their children that match it\nfunction findAll(\n predicate: Predicate,\n nodes: Array,\n result: Array = [],\n): Array {\n for (let i = 0, j = nodes.length; i < j; i++) {\n const node = nodes[i];\n if (typeof node !== 'object') {\n continue;\n }\n if (predicate(node)) {\n result.push(node);\n }\n const { children } = node;\n if (children.length !== 0) {\n findAll(predicate, children, result);\n }\n }\n\n return result;\n}\n\nconst adapter: Adapter = {\n removeSubsets,\n existsOne,\n getSiblings,\n hasAttrib,\n findOne,\n findAll,\n isTag,\n getParent,\n getChildren,\n getName,\n getText,\n getAttributeValue,\n};\n\nconst cssSelectOpts: Options = {\n xmlMode: true,\n adapter,\n};\n\n/**\n * Evaluate a string of CSS selectors against the element and returns matched elements.\n *\n * @param {Query} query can be either a CSS selector string or a compiled query function.\n * @param {Array | XmlAST} elems Elements to query. If it is an element, its children will be queried.\n * @return {Array} All matching elements.\n */\nfunction querySelectorAll(query: Query, elems: XmlAST | XmlAST[]): XmlAST[] {\n return cssSelect(query, elems, cssSelectOpts);\n}\n\ntype FlatPseudoSelector = {\n item: ListItem;\n list: List;\n};\ntype FlatPseudoSelectorList = FlatPseudoSelector[];\ntype FlatSelector = {\n item: ListItem;\n atrule: Atrule | null;\n rule: CssNode;\n pseudos: FlatPseudoSelectorList;\n};\ntype FlatSelectorList = FlatSelector[];\n\n/**\n * Flatten a CSS AST to a selectors list.\n *\n * @param {Object} cssAst css-tree AST to flatten\n * @param {Array} selectors\n */\nfunction flattenToSelectors(cssAst: CssNode, selectors: FlatSelectorList) {\n csstree.walk(cssAst, {\n visit: 'Rule',\n enter(rule: CssNode) {\n const { type, prelude } = rule as Rule;\n if (type !== 'Rule') {\n return;\n }\n const atrule = this.atrule;\n (prelude as SelectorList).children.each((node, item) => {\n const { children } = node as Selector;\n const pseudos: FlatPseudoSelectorList = [];\n selectors.push({\n item,\n atrule,\n rule,\n pseudos,\n });\n children.each(({ type: childType }, pseudoItem, list) => {\n if (\n childType === 'PseudoClassSelector' ||\n childType === 'PseudoElementSelector'\n ) {\n pseudos.push({\n item: pseudoItem,\n list,\n });\n }\n });\n });\n },\n });\n}\n\n/**\n * Filter selectors by Media Query.\n *\n * @param {Array} selectors to filter\n * @return {Array} Filtered selectors that match the passed media queries\n */\nfunction filterByMqs(selectors: FlatSelectorList) {\n return selectors.filter(({ atrule }) => {\n if (atrule === null) {\n return true;\n }\n const { name, prelude } = atrule;\n const atPrelude = prelude as AtrulePrelude;\n const first = atPrelude && atPrelude.children.first();\n const mq = first && first.type === 'MediaQueryList';\n const query = mq ? csstree.generate(atPrelude) : name;\n return useMqs.includes(query);\n });\n}\n// useMqs Array with strings of media queries that should pass ( )\nconst useMqs = ['', 'screen'];\n\n/**\n * Filter selectors by the pseudo-elements and/or -classes they contain.\n *\n * @param {Array} selectors to filter\n * @return {Array} Filtered selectors that match the passed pseudo-elements and/or -classes\n */\nfunction filterByPseudos(selectors: FlatSelectorList) {\n return selectors.filter(({ pseudos }) =>\n usePseudos.includes(\n csstree.generate({\n type: 'Selector',\n children: new List().fromArray(\n pseudos.map(pseudo => pseudo.item.data),\n ),\n }),\n ),\n );\n}\n// usePseudos Array with strings of single or sequence of pseudo-elements and/or -classes that should pass\nconst usePseudos = [''];\n\n/**\n * Remove pseudo-elements and/or -classes from the selectors for proper matching.\n *\n * @param {Array} selectors to clean\n * @return {Array} Selectors without pseudo-elements and/or -classes\n */\nfunction cleanPseudos(selectors: FlatSelectorList) {\n selectors.forEach(({ pseudos }) =>\n pseudos.forEach(pseudo => pseudo.list.remove(pseudo.item)),\n );\n}\n\ntype Specificity = [number, number, number];\nfunction specificity(selector: Selector): Specificity {\n let A = 0;\n let B = 0;\n let C = 0;\n\n selector.children.each(function walk(node: CssNode) {\n switch (node.type) {\n case 'SelectorList':\n case 'Selector':\n node.children.each(walk);\n break;\n\n case 'IdSelector':\n A++;\n break;\n\n case 'ClassSelector':\n case 'AttributeSelector':\n B++;\n break;\n\n case 'PseudoClassSelector':\n switch (node.name.toLowerCase()) {\n case 'not':\n const children = (node as PseudoClassSelector).children;\n children && children.each(walk);\n break;\n\n case 'before':\n case 'after':\n case 'first-line':\n case 'first-letter':\n C++;\n break;\n\n // TODO: support for :nth-*(.. of ), :matches(), :has()\n\n default:\n B++;\n }\n break;\n\n case 'PseudoElementSelector':\n C++;\n break;\n\n case 'TypeSelector':\n // ignore universal selector\n const { name } = node;\n if (name.charAt(name.length - 1) !== '*') {\n C++;\n }\n break;\n }\n });\n\n return [A, B, C];\n}\n\n/**\n * Compares two selector specificities.\n * extracted from https://github.com/keeganstreet/specificity/blob/master/specificity.js#L211\n *\n * @param {Array} aSpecificity Specificity of selector A\n * @param {Array} bSpecificity Specificity of selector B\n * @return {Number} Score of selector specificity A compared to selector specificity B\n */\nfunction compareSpecificity(\n aSpecificity: Specificity,\n bSpecificity: Specificity,\n): number {\n for (let i = 0; i < 4; i += 1) {\n if (aSpecificity[i] < bSpecificity[i]) {\n return -1;\n } else if (aSpecificity[i] > bSpecificity[i]) {\n return 1;\n }\n }\n return 0;\n}\n\ntype Spec = {\n selector: FlatSelector;\n specificity: Specificity;\n};\nfunction selectorWithSpecificity(selector: FlatSelector): Spec {\n return {\n selector,\n specificity: specificity(selector.item.data as Selector),\n };\n}\n\n/**\n * Compare two simple selectors.\n *\n * @param {Object} a Simple selector A\n * @param {Object} b Simple selector B\n * @return {Number} Score of selector A compared to selector B\n */\nfunction bySelectorSpecificity(a: Spec, b: Spec): number {\n return compareSpecificity(a.specificity, b.specificity);\n}\n\n// Run a single pass with the given chunk size.\nfunction pass(arr: Spec[], len: number, chk: number, result: Spec[]) {\n // Step size / double chunk size.\n const dbl = chk * 2;\n // Bounds of the left and right chunks.\n let l, r, e;\n // Iterators over the left and right chunk.\n let li, ri;\n\n // Iterate over pairs of chunks.\n let i = 0;\n for (l = 0; l < len; l += dbl) {\n r = l + chk;\n e = r + chk;\n if (r > len) {\n r = len;\n }\n if (e > len) {\n e = len;\n }\n\n // Iterate both chunks in parallel.\n li = l;\n ri = r;\n while (true) {\n // Compare the chunks.\n if (li < r && ri < e) {\n // This works for a regular `sort()` compatible comparator,\n // but also for a simple comparator like: `a > b`\n if (bySelectorSpecificity(arr[li], arr[ri]) <= 0) {\n result[i++] = arr[li++];\n } else {\n result[i++] = arr[ri++];\n }\n }\n // Nothing to compare, just flush what's left.\n else if (li < r) {\n result[i++] = arr[li++];\n } else if (ri < e) {\n result[i++] = arr[ri++];\n }\n // Both iterators are at the chunk ends.\n else {\n break;\n }\n }\n }\n}\n\n// Execute the sort using the input array and a second buffer as work space.\n// Returns one of those two, containing the final result.\nfunction exec(arr: Spec[], len: number): Spec[] {\n // Rather than dividing input, simply iterate chunks of 1, 2, 4, 8, etc.\n // Chunks are the size of the left or right hand in merge sort.\n // Stop when the left-hand covers all of the array.\n let buffer = new Array(len);\n for (let chk = 1; chk < len; chk *= 2) {\n pass(arr, len, chk, buffer);\n const tmp = arr;\n arr = buffer;\n buffer = tmp;\n }\n return arr;\n}\n\n/**\n * Sort selectors stably by their specificity.\n *\n * @param {Array} selectors to be sorted\n * @return {Array} Stable sorted selectors\n */\nfunction sortSelectors(selectors: FlatSelectorList) {\n // Short-circuit when there's nothing to sort.\n const len = selectors.length;\n if (len <= 1) {\n return selectors;\n }\n const specs = selectors.map(selectorWithSpecificity);\n return exec(specs, len).map(s => s.selector);\n}\n\nconst declarationParseProps = {\n context: 'declarationList',\n parseValue: false,\n};\nfunction CSSStyleDeclaration(ast: XmlAST) {\n const { props, styles } = ast;\n if (!props.style) {\n props.style = {};\n }\n const style = props.style as Styles;\n const priority = new Map();\n ast.style = style;\n ast.priority = priority;\n if (!styles || styles.length === 0) {\n return;\n }\n try {\n const declarations = csstree.parse(\n styles,\n declarationParseProps,\n ) as DeclarationList;\n declarations.children.each(node => {\n try {\n const { property, value, important } = node as Declaration;\n const name = property.trim();\n priority.set(name, important);\n style[camelCase(name)] = csstree.generate(value).trim();\n } catch (styleError) {\n if (styleError.message !== 'Unknown node type: undefined') {\n console.warn(\n \"Warning: Parse error when parsing inline styles, style properties of this element cannot be used. The raw styles can still be get/set using .attr('style').value. Error details: \" +\n styleError,\n );\n }\n }\n });\n } catch (parseError) {\n console.warn(\n \"Warning: Parse error when parsing inline styles, style properties of this element cannot be used. The raw styles can still be get/set using .attr('style').value. Error details: \" +\n parseError,\n );\n }\n}\n\ninterface StyledAST extends XmlAST {\n style: Styles;\n priority: Map;\n}\nfunction initStyle(selectedEl: XmlAST): StyledAST {\n if (!selectedEl.style) {\n CSSStyleDeclaration(selectedEl);\n }\n return selectedEl as StyledAST;\n}\n\n/**\n * Find the closest ancestor of the current element.\n * @param node\n * @param elemName\n * @return {?Object}\n */\nfunction closestElem(node: XmlAST, elemName: string) {\n let elem: XmlAST | null = node;\n while ((elem = elem.parent) && elem.tag !== elemName) {}\n return elem;\n}\n\nconst parseProps = {\n parseValue: false,\n parseCustomProperty: false,\n};\n\n/**\n * Moves + merges styles from style elements to element styles\n *\n * Options\n * useMqs (default: ['', 'screen'])\n * what media queries to be used\n * empty string element for styles outside media queries\n *\n * usePseudos (default: [''])\n * what pseudo-classes/-elements to be used\n * empty string element for all non-pseudo-classes and/or -elements\n *\n * @param {Object} document document element\n *\n * @author strarsis \n * @author modified by: msand \n */\nexport const inlineStyles: Middleware = function inlineStyles(\n document: XmlAST,\n) {\n // collect

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 diff --git a/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png deleted file mode 100644 index fef8ab1ccb47f03b15bcda309d85d2298d34f066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8078 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 diff --git a/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png b/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png deleted file mode 100644 index c68437f43566c78aa1717f2f8debbfd7610a3325..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4130 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 diff --git a/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png b/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png deleted file mode 100644 index e6c3eb0da85f4f8266dc05fd2b284f413699007c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2623 zcmV-F3c&S=P)TRV|^1BTU?D&oAx|;$BVwI|2=_CA<#pF+?XYTpwxx4Ci-O^0eeYwlW^1yl&i&=hfoJfmm0*b8h{?ad zKXzZQF1hW6Sr2pjl?P{v(X0NA8-%%44_nv1xp9A%C0(plT|-j(S=Y(eYfElxe$HKK z?1#e>8Kny^IjrteSznA&-q#BZ6lQf%$)Ba33)PDIW_?vlmE5uz{*SJd2lKQ3jQ(EI z>vWq=!gjSv(5fPsgwe8zGg~rfDIObE2af)DjJ}SfR;yqJFg#s1Td5?{DtShM@#m8( zMw7`|Jcbk4VPiIKV{zN&PCv&eaUC@<)V z@}KtKdCU9u;?iyEO#V)1ll!yCRM;7XXr#4TueopTuK8W(6v7ZHy;7TTtxm@qr6L(L z+=VjAA~4nI39IX+{B(KI{X=Stp`v~vn5v{-WGcOv>av8_5RBmlQi81`i`$To`{m-i@0s?;*2uz->h}^2i>8O#+A)&2FRsThaou2$ z=DaNLljfYasxb^3@m7w)LHo*g+ng9?TzwS$u>L|-*A|4KIbAKB**MW()76scjzMy( zC%$fO_=X~aJ!8>cCDs@EZFK1LTsjMtC=}W)$q{W`U%R7r#~UFc36_j$YZp=WJfk9z z$2iZ$B!;Oe2H)#U9?EGjBUrpV6JNLZg-Y&3kLi_K%`MN&_^aft9EmlxV`&yiN8xAm zv~%ql3zBSmX}*?6M4Pwiyo?l2IWm54QK>LSA-W|d-(Oz2jk%f}`m(z_S9hoKhSuaQ zt;#dvrNUX|`q`6O^L{NRl`O)LKYHC9?xl!th!La*Q}dOoyQe1_%QtlJN=e%&;iGvC-lB!Ev}RsqUR! z$jN7PH16T+#_&cjeSsc!L}%2vwvz5_ipS!57A{~TKEyi|m4s3c{}>v>Y^!=GW$CYhH<2|r?)3p zh(+RgdlKsW@#NH9=w9WzfeAL?`Dsfb(3Y<=pS}l*>7Hmaa1+@OTa$6CPb#ypw5OIR z$j2q5!*v3&7#38K#Lb8S+7RznzX*b zQD$LjPt9nIXjq*y$Njh|h9Dl~kO|{3zy~GTF%c;n8b}fbi-urS1n^X#29}l$qBx-~(kWJ&p zkmkC7p;UUzFrPV`O|!t(M`;P>c*?;Lr7>#~2X}DxZN}s>ODpX@Mkk}_hk%$PNt5e< zb7p5VhRQA)k5T6zHHg@+*6Y5cO+wnA>AbT^dx=%{1GoJ7zZhjrTsGd9^HQ@>Od%yU zflR$GC6juDL`Vo~b5@_rf#}$M)i-(iMi2k=QvxI>3P~R7VU2U12x2H2r1U}?LNdwq~$C!>$j3|*5v#w%V=0w#O47<3MHQe z!(EDj3hJE_Odp=pww#G(Rc>Q%UV6s2^p73S^wm6e_H7M;`($lO%M4h*m#8)Tj0iBE zU}K>SVUl-}!WPm@24i^Y-ja%^TDhVy%B;`SvCCmj@RFz_y8XJF9Iy;{HVF0K%1h7%HSV_9h?{UB#g!rtsWK$2-7;! z+>=ksE)%CsjiJp8=phD|5Em~HMt_P&nkwT{_bSUb)ImJ`u#3{3bzL_|HI=@tnJsNC z>(?V1&?AXj5UKxgvv4*;_)A3(@MnWG24QRt=y`4-g;8suk{BUl(&i2;F-k~&Sz7c= zQnhca!(fN?rC)lWY)nE4P(uvN6YcDbn1;}4l6?f826h}wMMC*P|L^cO{iDYhOU6jo-iiv-eEg=UuyA~z)+8WH68(^RWX`0(mp61-XFuTMeDkg(Jp)W zOyJQEm-cV2{r@mb1uP(*Wh{&;f6N5Kwpr8A;UyaH*tkg^?zdnchwKB6A(V{6@Bvr< hfJ-5uPl8eQ^jDD@;}DJ-RbBu9002ovPDHLkV1i6#9HamM diff --git a/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png b/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png deleted file mode 100644 index e6c3eb0da85f4f8266dc05fd2b284f413699007c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2623 zcmV-F3c&S=P)TRV|^1BTU?D&oAx|;$BVwI|2=_CA<#pF+?XYTpwxx4Ci-O^0eeYwlW^1yl&i&=hfoJfmm0*b8h{?ad zKXzZQF1hW6Sr2pjl?P{v(X0NA8-%%44_nv1xp9A%C0(plT|-j(S=Y(eYfElxe$HKK z?1#e>8Kny^IjrteSznA&-q#BZ6lQf%$)Ba33)PDIW_?vlmE5uz{*SJd2lKQ3jQ(EI z>vWq=!gjSv(5fPsgwe8zGg~rfDIObE2af)DjJ}SfR;yqJFg#s1Td5?{DtShM@#m8( zMw7`|Jcbk4VPiIKV{zN&PCv&eaUC@<)V z@}KtKdCU9u;?iyEO#V)1ll!yCRM;7XXr#4TueopTuK8W(6v7ZHy;7TTtxm@qr6L(L z+=VjAA~4nI39IX+{B(KI{X=Stp`v~vn5v{-WGcOv>av8_5RBmlQi81`i`$To`{m-i@0s?;*2uz->h}^2i>8O#+A)&2FRsThaou2$ z=DaNLljfYasxb^3@m7w)LHo*g+ng9?TzwS$u>L|-*A|4KIbAKB**MW()76scjzMy( zC%$fO_=X~aJ!8>cCDs@EZFK1LTsjMtC=}W)$q{W`U%R7r#~UFc36_j$YZp=WJfk9z z$2iZ$B!;Oe2H)#U9?EGjBUrpV6JNLZg-Y&3kLi_K%`MN&_^aft9EmlxV`&yiN8xAm zv~%ql3zBSmX}*?6M4Pwiyo?l2IWm54QK>LSA-W|d-(Oz2jk%f}`m(z_S9hoKhSuaQ zt;#dvrNUX|`q`6O^L{NRl`O)LKYHC9?xl!th!La*Q}dOoyQe1_%QtlJN=e%&;iGvC-lB!Ev}RsqUR! z$jN7PH16T+#_&cjeSsc!L}%2vwvz5_ipS!57A{~TKEyi|m4s3c{}>v>Y^!=GW$CYhH<2|r?)3p zh(+RgdlKsW@#NH9=w9WzfeAL?`Dsfb(3Y<=pS}l*>7Hmaa1+@OTa$6CPb#ypw5OIR z$j2q5!*v3&7#38K#Lb8S+7RznzX*b zQD$LjPt9nIXjq*y$Njh|h9Dl~kO|{3zy~GTF%c;n8b}fbi-urS1n^X#29}l$qBx-~(kWJ&p zkmkC7p;UUzFrPV`O|!t(M`;P>c*?;Lr7>#~2X}DxZN}s>ODpX@Mkk}_hk%$PNt5e< zb7p5VhRQA)k5T6zHHg@+*6Y5cO+wnA>AbT^dx=%{1GoJ7zZhjrTsGd9^HQ@>Od%yU zflR$GC6juDL`Vo~b5@_rf#}$M)i-(iMi2k=QvxI>3P~R7VU2U12x2H2r1U}?LNdwq~$C!>$j3|*5v#w%V=0w#O47<3MHQe z!(EDj3hJE_Odp=pww#G(Rc>Q%UV6s2^p73S^wm6e_H7M;`($lO%M4h*m#8)Tj0iBE zU}K>SVUl-}!WPm@24i^Y-ja%^TDhVy%B;`SvCCmj@RFz_y8XJF9Iy;{HVF0K%1h7%HSV_9h?{UB#g!rtsWK$2-7;! z+>=ksE)%CsjiJp8=phD|5Em~HMt_P&nkwT{_bSUb)ImJ`u#3{3bzL_|HI=@tnJsNC z>(?V1&?AXj5UKxgvv4*;_)A3(@MnWG24QRt=y`4-g;8suk{BUl(&i2;F-k~&Sz7c= zQnhca!(fN?rC)lWY)nE4P(uvN6YcDbn1;}4l6?f826h}wMMC*P|L^cO{iDYhOU6jo-iiv-eEg=UuyA~z)+8WH68(^RWX`0(mp61-XFuTMeDkg(Jp)W zOyJQEm-cV2{r@mb1uP(*Wh{&;f6N5Kwpr8A;UyaH*tkg^?zdnchwKB6A(V{6@Bvr< hfJ-5uPl8eQ^jDD@;}DJ-RbBu9002ovPDHLkV1i6#9HamM diff --git a/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/ipad_app_76@1x.png b/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/ipad_app_76@1x.png deleted file mode 100644 index f705165fa02dc5f2423016526035da13f0845db0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3936 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 IM6N<$f~iiMT>t<8 diff --git a/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/iphone_app_60@3x.png b/emission/Example/Emission/Assets.xcassets/AppIcon.appiconset/iphone_app_60@3x.png deleted file mode 100644 index 02cd206f575d5d03593adc637caac56825049668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18998 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 FzW|pHBuM}O diff --git a/emission/Example/Emission/AuthenticationManager.h b/emission/Example/Emission/AuthenticationManager.h deleted file mode 100644 index 2cfc3346f46..00000000000 --- a/emission/Example/Emission/AuthenticationManager.h +++ /dev/null @@ -1,25 +0,0 @@ -#import -#import - -/// Handles Keychain communication, and setup for -/// the user authentication details - -@interface AuthenticationManager : NSObject - -- (instancetype)initWithService:(NSString *)scheme; - -- (void)presentAuthenticationPromptOnViewController:(UIViewController *)viewController completion:(dispatch_block_t)completion; - -- (void)logOut; - -/// Is there a userID & token? -@property (readonly) BOOL isAuthenticated; - -/// User's unique UUID -@property (readonly) NSString *userID; -/// Auth token -@property (readonly) NSString *token; -/// The scheme used by the current authentication route -@property (readonly) NSString *service; - -@end diff --git a/emission/Example/Emission/AuthenticationManager.m b/emission/Example/Emission/AuthenticationManager.m deleted file mode 100644 index 2b57c5980f4..00000000000 --- a/emission/Example/Emission/AuthenticationManager.m +++ /dev/null @@ -1,136 +0,0 @@ -#import "AuthenticationManager.h" -#import "ARDefaults.h" -#import "AppSetup.h" - -#import -#import - -#import -#import -#import -#import - -@interface AuthenticationManager() -@property (nonatomic, strong) UIViewController *viewController; -@end - -@implementation AuthenticationManager - -- (instancetype)initWithService:(NSString *)service -{ - if ((self = [super init])) { - _service = service; - [self updateFromStoredCredentials]; - }; - return self; -} - -- (void)updateFromStoredCredentials -{ - - _userID = [SAMKeychain accountsForService:self.service][0][kSAMKeychainAccountKey]; - _token = [SAMKeychain passwordForService:self.service account:_userID]; - _isAuthenticated = _userID && _token; -} - -- (void)presentAuthenticationPromptOnViewController:(UIViewController *)viewController completion:(dispatch_block_t)completion -{ - self.viewController = viewController; - [self showAuthenticationToArtsy:nil completion:completion]; -} - -/// Create an alert view to type in your user credentials - -- (void)showAuthenticationToArtsy:(NSString *)errorMessage completion:(dispatch_block_t)completion -{ - AppSetup *setup = [AppSetup ambientSetup]; - NSString *prodOrStaging = setup.inStaging ? @"staging" : @"production"; - NSString *message = errorMessage ? errorMessage : [NSString stringWithFormat:@"Enter your %@ Artsy credentials", prodOrStaging]; - UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Authentication" - message:message - preferredStyle:UIAlertControllerStyleAlert]; - - [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { - textField.placeholder = @"Email"; - }]; - - [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { - textField.placeholder = @"Password"; - textField.secureTextEntry = YES; - }]; - - __weak UIAlertController *weakAlert = alert; - [alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { - [self authenticateWithEmail:weakAlert.textFields[0].text - password:weakAlert.textFields[1].text - keychainService:self.service - completion:completion]; - }]]; - - [self.viewController presentViewController:alert animated:YES completion:nil]; -} - -/// Attempt to log in with creds, if it fails, set up the alert view again - -- (void)authenticateWithEmail:(NSString *)email password:(NSString *)password keychainService:(NSString *)service completion:(dispatch_block_t)completion; -{ - EmissionKeys *keys = [[EmissionKeys alloc] init]; - - if(![keys artsyAPIClientKey] || ![keys artsyAPIClientSecret]) { - @throw @"You need to set up your CocoaPods Keys, you may have to run `bundle exec pod install` in the Example dir."; - } - [keys stripePublishableKey]; - - ArtsyAuthentication *auth = [[ArtsyAuthentication alloc] initWithClientID:[keys artsyAPIClientKey] - clientSecret:[keys artsyAPIClientSecret]]; - - BOOL useStaging = [[NSUserDefaults standardUserDefaults] boolForKey:ARUseStagingDefault]; - auth.router.staging = useStaging; - - [auth getWeekLongXAppTrialToken:^(ArtsyToken *token, NSError *error) { - if (error) { - NSLog(@"%@", error); - [self showAuthenticationToArtsy:nil completion:completion]; - } else { - [auth logInAndFetchUserDetailsWithEmail:email - password:password - completion:^(ArtsyToken *token, NSDictionary *userDetails, NSError *error) { - (void)auth; // keep a strong reference for as long as needed - dispatch_async(dispatch_get_main_queue(), ^{ - if (error) { - NSLog(@"%@", error); - [self showAuthenticationToArtsy:error.localizedFailureReason completion:completion]; - - } else { - NSString *userID = userDetails[@"_id"]; - NSString *accessToken = token.token; - NSParameterAssert(userID); - NSParameterAssert(accessToken); - - NSError *error = nil; - [SAMKeychain setPassword:accessToken forService:service account:userID error:&error]; - if (error) { - NSLog(@"%@", error); - } - - [self.viewController dismissViewControllerAnimated:YES completion:nil]; - [self updateFromStoredCredentials]; - completion(); - } - }); - }]; - } - }]; -} - -- (void)logOut -{ - NSString *userID = [SAMKeychain accountsForService:self.service][0][kSAMKeychainAccountKey]; - NSError *error = nil; - [SAMKeychain deletePasswordForService:self.service account:userID error:&error]; - if(error) { - NSLog(@"Error: %@", error.localizedDescription); - } -} - -@end diff --git a/emission/Example/Emission/Back.png b/emission/Example/Emission/Back.png deleted file mode 100644 index 222f6acffb1532d6b4f0a09a8b0a3cf4fdf7c814..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)?Z1&#p$K0qZ5Fd7wnyT-r>qA%-$%sM4CwMn&Jz}I4?@YRd2M4K?xqX4dy z)Z%0y{RfCslM9MU7#J8+fNbURk^&IB1IQLB0y+xFo&#d1L)aTY>?8>L2v|)>kTZ~d z1ISiL&PW8B!T1Bn)=5GVPe)=y?F9jDm(1dVoWx3n0Am8KB?FYCR+NBf=lp`oqRjM+ z5(P(KD5WZR<|XUtC>R+Snlmtf!W^Rdb09b@8O6>Z#G3CjFxc+@|NsAPgqYWU28NA5 zom@K+Vj30<41(MY3@3ILBo-xtg_wbuDJ_kG;nQ*k2Hr>p2H^`pJ<-K!#ztUyMjj^y z2G)E3|9@6vU|^rj!0>m%|Np-i{r~@WF;Mdz28IK902Lu+?ls5J`v3p{%1J~)R45gN zlD!TAK@^1vA`*#0sKgs+R0>gP@J>pdPA6VOqEK$B(MX7_)&n4ZzLVJI&YkQ@zRb=! zb7y8}rdWt;L-dHnGlDN9-hc+?4W7{R2COkvJ@>-#KRnP@?0`DP1zym%q53P()C+a2 zMi?JBLe+*fj1#33+WH6jVko<_yXqu0000< KMNUMnLSTZt2nkUD diff --git a/emission/Example/Emission/Back@2x.png b/emission/Example/Emission/Back@2x.png deleted file mode 100644 index 83b34d9b917a7d037fe53abd19445d63c70e5f02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 847 zcmV-V1F-ywP)?Z1&#p$K0qZ5Fd7wnyT-r>qA%-$%sM4CwMn&Jz}I4?@YRd2M4K?xqX4dy z)Z%0y{RfCslM9MU7#J8+fNbURk^&IB1IQLB0y+xFo&#d1L)aTY>?8>L2v|)>kTZ~d z1ISiL&PW8B!T1Bn)=5GVPe)=y?F9jDm(1dVoWx3n0Am8KB?FYCR+NBf=lp`oqRjM+ z5(P(KD5WZR<|XUtC>R+Snlmtf!W^Rdb09b@8O6>Z#G3CjFxc+@|NsAPgqYWU28NA5 zom@K+Vj30<41(MY3@3ILBo-xtg_wbuDJ_kG;nQ*k2Hr>p2H^`pJ<-K!#ztUyMjj^y z2G)E3|9@6vU|^rj!0>m%|Np-i{r~@WF;Mdz28IK902Lu+?ls5J`v3p|sYygZR7ee_ zmMusGQ51#8A9P{SU=R!z!x}6KVlr*jWYgp(Eo#!FNs}gRCP9-nLC|C}h(U|R4O#^S zK?D(h&w;se8D`+z-3OOxShTv4`l4+mmD$rr$J9qJXM16LJ>; zlp(&)045@Uos4-uVjhS1#{nLZ_o#ppgsjyb9Q!HNOx+g3n-3%AF^In$;0bxJ3h03F z)|okrY1K^K2EtGMIAR`w_|pMikoT#8b_j2rnX{Nh$ZZWuKlM}D3E>dp!vS8A_amg% z2Gte9k3J_kQ_)Jse2(8ODqs-8cL#VwKA@UgA-r&AmawRrsiWA}O&Fnat3zo3mQj(N z5Qau70x#f(&47KlguI8iR5V)Ab=KYR-)PWfB)*i;i$qA?t2}RXwQuTUvO!jn_)^a7 zhT7*XC^gk=x?v;@FKGr@N8(EfEvkg%E$cHzSNrV7@(iQAvDhG+NPH?Z1&#p$K0qZ5Fd7wnyT-r>qA%-$%sM4CwMn&Jz}I4?@YRd2M4K?xqX4dy z)Z%0y{RfCslM9MU7#J8+fNbURk^&IB1IQLB0y+xFo&#d1L)aTY>?8>L2v|)>kTZ~d z1ISiL&PW8B!T1Bn)=5GVPe)=y?F9jDm(1dVoWx3n0Am8KB?FYCR+NBf=lp`oqRjM+ z5(P(KD5WZR<|XUtC>R+Snlmtf!W^Rdb09b@8O6>Z#G3CjFxc+@|NsAPgqYWU28NA5 zom@K+Vj30<41(MY3@3ILBo-xtg_wbuDJ_kG;nQ*k2Hr>p2H^`pJ<-K!#ztUyMjj^y z2G)E3|9@6vU|^rj!0>m%|Np-i{r~@WF;Mdz28IK902Lu+?ls5J`v3p}t4TybR9FeM zm`{j}Q5eRD@n?)uin6en%`}lnO=x1n%F3*a4J+A*B$`5sC=&~@Vl`ImtXRoHP02Jh zk%$=!ikc~O`p_ z-~{^H&?w~wlomH36?iG1X3_fq{Wc6HGYmR_yfxtJ#mNkVAqPG}ereR87r?w>Fhi~< z3SR->l>yh#oQ=X&|1v7GrMY}TzFj9oVjGp`P%~KHf1)iY6w9bRhHAKuFNDaA%I6*U zIQivKgUtYD4TE3gwnyQb)6WgKhUQ8XuKH(?HSVv;uha>V=%(@yR2%3b(=9p_OQ`(} z)o>kO50M*{PdM;*dddT=cuC8h994L-mP#_<0}$#Uo^y++FxJ;iJ_v zd0zs50dbU1s~0J&iqc4LU39yg5G}g^cq_X-QFy6;oG;c;rL0Y5(rR^mqqHJgdiw*t zp9t>{O5;xR#Tu%V9ga*|?a{85Rz%B90A^9$layU%Y1}!(K!z#%WSO+u>0i_d8L<_} z9IA&ZN{L=5^Qbn_Vy-8}0mwDOK!zho*G@P( zAiP0!FLZn=Om6`CD0N?|O(s+RZNOR(XzjEMHHR*~wCIF1fl4nlU9}8KjUCYbd;9(m XGeLKO!JR_z00000NkvXXu0mjfoeBB9 diff --git a/emission/Example/Emission/BackArrow@2x.png b/emission/Example/Emission/BackArrow@2x.png deleted file mode 100644 index 45db8e2ebdb1d1e68e969554a9bdf84331d85cbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15172 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 U^4+`ip?#iB42{I+A0IpTH!4AQK>z>% diff --git a/emission/Example/Emission/BackArrow_Highlighted@2x.png b/emission/Example/Emission/BackArrow_Highlighted@2x.png deleted file mode 100644 index 454a9b1dcdfc4a3003b8356c450de4288120cfbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14766 zcmeI3U2GIp6vu}IkghaH(Ns{Aaas#D?9S|0yF1z4QoDsVy0s}q+QdYrGk3R>?#`?; z({|hNKp+rF#85Rxh%u>8-~$>(UI0Z69~vO&lVXh!iA3Wkif97CJG0x})9scEhR3^U zchBDYKj+-}opbNb%k1p#T378_;bIu3y0atRgFhSbf5W1M`2D?kRV@Cf%69ad40G=? z`+pv@_l*Y`CbUZJ?X&t4Pl>Xg@kok3fIPWO7ONR1(vr(c@({Av0hCg;DEHgpk2qFU zqTI${LP%uW(4g8eZlLw!UA^-7kQ`RHmY6G&6LEkHvLrT_No%Hx@dks<&A!#FPw)nK!OMI7Zf{r&1Vlk#3okC_ z!dApkl44JMZ6O{07Uc#lD=YH+=;)|t)bG)a6z>g(!@S_*eLgoqYTn46Z?59`eg@oOE(AgIZ_s<=S+-il1LPDS6puedUZV= z%XeA#G(xtm&FLz3RYHrR;`kT2;DOTK1F2?>fK=OHE%(0x|uxGoRd`=t)FeOBnF4HchtQW|LN)!%7~ z3SnlY>QGJGp<|$PasN7}*?RQ+%+cwIwCbEnS;;Vwz2~Cb^rkBwW5rX-_Hp*ED9QGD z7L)BQfs_b8W3;raqG!QP{l5jw#|Q3n=NKJC+O0NJK9r-HJBX<#tx?H9tts3Sx3}B# zac4S~Cy4O&FF;zIS&IDV%nCUhANTC+ibm{%O~l=RS0*`C@J9GqW2MY_eV<*`^su9E z_6hjKd+qmvE1WKO?Z34voGy1Qd2Y~DE9NU?D;ox0_UW5H7}nz(1r%!v2K~VZUp`#! z(XHlCx-YKc9c-!R~N6~1`0GPB6V zt#Fr((iPq1z%U$50%;I!ii?N{3Mei}gJ@G+L_|q$sK>@`DX%KCSi--sc zC@x5YXj5E7L{LC+K^jDx;vyn~0*VXLAleic5fKznT#yFQrnrcRpn&3nG>A6EMMMMz z6c?mHv?(qkA}FA^APu5TaS;(g0mTJr5N(Q!hzJTOE=YrDQ(QzuP(X1(8bq7oA|iqU ziVM;p+PB2zDn0&(H2lopD1Nw)yYhVPE*8jef4> zgQ`QPU%YhsgTPM%wIX<+bvV`-pf&*EKc8(JUO-7?vDs()XN zQSmwNY+?k5*qUYb6+@Y+A^2Wm4n-oF@Rc5MD|+ody8Eat{^ws*x3Jh5r(e-XVI AI{*Lx diff --git a/emission/Example/Emission/Base.lproj/LaunchScreen.xib b/emission/Example/Emission/Base.lproj/LaunchScreen.xib deleted file mode 100644 index 90496311cb0..00000000000 --- a/emission/Example/Emission/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/emission/Example/Emission/EigenLikeAdminViewController.h b/emission/Example/Emission/EigenLikeAdminViewController.h deleted file mode 100644 index 2ee034ef115..00000000000 --- a/emission/Example/Emission/EigenLikeAdminViewController.h +++ /dev/null @@ -1,44 +0,0 @@ -#import -#import - -/// Tickable cells -extern NSString *const AROptionCell; -/// Cells with a subtitle -extern NSString *const ARSubtitledLabOptionCell; -/// Cells with a preload button -extern NSString *const ARPreloadOptionCell; -/// Normal cells -extern NSString *const ARLabOptionCell; - -@class ARGraphQLQuery; - -typedef NSArray *(^ARAdminVCPreloadBlock)(void); - -/// Provides some setup + extra functions on ARGenericTableViewController -/// that are extra useful for admin tooling - -@interface EigenLikeAdminViewController : ARGenericTableViewController - -/// Adds an Artsy styled header to the section -- (void)setupSection:(ARSectionData *)section withTitle:(NSString *)title; - -/// Show a "Are you sure?" with a cancel that doesn't run the closure -- (void)showAlertViewWithTitle:(NSString *)title message:(NSString *)message actionTitle:(NSString *)actionTitle actionHandler:(void (^)(void))handler; - -/// Easy NSUserDefault toggle -- (ARCellData *)editableTextCellDataWithName:(NSString *)name defaultKey:(NSString *)key; - -/// Metadata about the app version etc -- (NSString *)titleForApp; - -/// Simple cell that has a title and a click handler -- (ARCellData *)tappableCellDataWithTitle:(NSString *)title selection:(dispatch_block_t)selection; - -/// Simple cell that shows info -- (ARCellData *)informationCellDataWithTitle:(NSString *)title; - -- (ARCellData *)viewControllerCellDataWithTitle:(NSString *)title - selection:(dispatch_block_t)selection - preload:(ARAdminVCPreloadBlock)preload; - -@end diff --git a/emission/Example/Emission/EigenLikeAdminViewController.m b/emission/Example/Emission/EigenLikeAdminViewController.m deleted file mode 100644 index 4bc05b41bcb..00000000000 --- a/emission/Example/Emission/EigenLikeAdminViewController.m +++ /dev/null @@ -1,155 +0,0 @@ -#import "EigenLikeAdminViewController.h" -#import "ARAdminPreloadTableViewCell.h" - -#import -#import -#import -#import - -NSString *const AROptionCell = @"OptionCell"; -NSString *const ARLabOptionCell = @"LabOptionCell"; -NSString *const ARSubtitledLabOptionCell = @"SubtitledLabOptionCell"; -NSString *const ARPreloadOptionCell = @"PreloadOptionCell"; - -@implementation EigenLikeAdminViewController - -- (ARCellData *)tappableCellDataWithTitle:(NSString *)title selection:(dispatch_block_t)selection configuration:(CellConfigurationBlock_t)configuration; -{ - return [self tappableCellDataWithTitle:title selection:selection identifier:AROptionCell configuration:configuration]; -} - -- (ARCellData *)tappableCellDataWithTitle:(NSString *)title selection:(dispatch_block_t)selection identifier:(NSString *)identifier configuration:(CellConfigurationBlock_t)configuration; -{ - ARCellData *cellData = [[ARCellData alloc] initWithIdentifier:identifier]; - [cellData setCellConfigurationBlock:^(UITableViewCell *cell) { - cell.textLabel.text = title; - if (configuration) { - configuration(cell); - } - }]; - - [cellData setCellSelectionBlock:^(UITableView *tableView, NSIndexPath *indexPath) { - selection(); - }]; - return cellData; -} - -- (ARCellData *)tappableCellDataWithTitle:(NSString *)title selection:(dispatch_block_t)selection -{ - return [self tappableCellDataWithTitle:title selection:selection configuration:nil]; -} - -- (ARCellData *)viewControllerCellDataWithTitle:(NSString *)title - selection:(dispatch_block_t)selection - preload:(ARAdminVCPreloadBlock)preload; -{ - return [self tappableCellDataWithTitle:title - selection:selection - identifier:ARPreloadOptionCell - configuration:^(ARAdminPreloadTableViewCell *cell) { - cell.preloadBlock = ^{ - NSLog(@"Preload: %@", title); - [[[AREmission sharedInstance] graphQLQueryPreloaderModule] preloadQueries:preload()]; - }; - }]; -} - -- (ARCellData *)informationCellDataWithTitle:(NSString *)title - { - ARCellData *cell = [[ARCellData alloc] initWithIdentifier:AROptionCell]; - [cell setCellConfigurationBlock:^(UITableViewCell *cell) { - cell.textLabel.text = title; - cell.textLabel.textColor = [UIColor grayColor]; - }]; - - return cell; - } - -- (NSString *)titleForApp -{ - NSDictionary *metadata = [[NSBundle mainBundle] infoDictionary]; - NSString *build = [metadata objectForKey:@"CFBundleVersion"]; - return [NSString stringWithFormat:@"Emission build %@", build]; -} - -- (void)setupSection:(ARSectionData *)section withTitle:(NSString *)title -{ - UIView *wrapper = [UIView new]; - wrapper.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1]; - - UILabel *label = [UILabel new]; - label.font = [UIFont sansSerifFontWithSize:14]; - label.text = title.uppercaseString; - label.frame = CGRectMake(15, 4, 400, 20); - - [wrapper addSubview:label]; - - section.headerView = wrapper; - section.headerHeight = 28; -} - -- (void)showAlertViewWithTitle:(NSString *)title message:(NSString *)message actionTitle:(NSString *)actionTitle actionHandler:(void (^)(void))handler -{ - UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]; - - UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:actionTitle style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) { - handler(); - }]; - - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; - - [alert addAction:defaultAction]; - [alert addAction:cancelAction]; - [self presentViewController:alert animated:YES completion:nil]; -} - -- (ARCellData *)editableTextCellDataWithName:(NSString *)name defaultKey:(NSString *)key -{ - ARCellData *cell = [[ARCellData alloc] initWithIdentifier:ARSubtitledLabOptionCell]; - cell.height = 60; - - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - NSString *value = [defaults stringForKey:key]; - - [cell setCellConfigurationBlock:^(UITableViewCell *tableViewCell) { - tableViewCell.textLabel.text = [NSString stringWithFormat:@"%@:", name]; - tableViewCell.detailTextLabel.text = value; - }]; - - [cell setCellSelectionBlock:^(UITableView *tableView, NSIndexPath *indexPath) { - UIAlertController *controller = [UIAlertController alertControllerWithTitle:name message:@"" preferredStyle:UIAlertControllerStyleAlert]; - - [controller addAction:[UIAlertAction actionWithTitle:@"Save + Restart" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { - UITextField *theTextField = [controller textFields].firstObject; - [defaults setObject:theTextField.text forKey:key]; - [defaults synchronize]; - exit(0); - }]]; - - [controller addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { - [controller.presentingViewController dismissViewControllerAnimated:YES completion:nil]; - }]]; - - [controller addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { - textField.text = value; - }]; - - [self presentViewController:controller animated:YES completion:nil]; - }]; - return cell; -} - -- (void)viewWillAppear:(BOOL)animated -{ - [super viewWillAppear:animated]; - - // http://stackoverflow.com/questions/18924589/uitableviewcell-separator-disappearing-in-ios7 - - // Due to a weird apple bug we need to do something to - // trigger the lines between cells. - UIView *emptyView_ = [[UIView alloc] initWithFrame:CGRectZero]; - emptyView_.backgroundColor = [UIColor clearColor]; - [self.tableView setTableFooterView:emptyView_]; -} - -@end diff --git a/emission/Example/Emission/EigenLikeNavigationController.h b/emission/Example/Emission/EigenLikeNavigationController.h deleted file mode 100644 index 5a8793c30d7..00000000000 --- a/emission/Example/Emission/EigenLikeNavigationController.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -// A very simple reimplmentation of Eigen's ARNavigationViewController - -@interface EigenLikeNavigationController : UINavigationController - -@property (readonly, nonatomic, strong) UIButton *backButton; -@property (nonatomic, assign) BOOL showBackButtonOnRoot; - -@end diff --git a/emission/Example/Emission/EigenLikeNavigationController.m b/emission/Example/Emission/EigenLikeNavigationController.m deleted file mode 100644 index 45af082080d..00000000000 --- a/emission/Example/Emission/EigenLikeNavigationController.m +++ /dev/null @@ -1,83 +0,0 @@ -#import "EigenLikeNavigationController.h" -#import - -@interface EigenLikeNavigationController() - -@end - -@implementation EigenLikeNavigationController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - self.navigationBarHidden = YES; - self.delegate = self; - - UIButton *backButton = [self createBackButton]; - [self.view addSubview:backButton]; - [backButton constrainTopSpaceToView:self.topLayoutGuide predicate:@"20"]; - [backButton alignLeadingEdgeWithView:self.view predicate:@"3"]; - [backButton constrainWidth:@"40" height:@"40"]; - _backButton = backButton; - - UIKeyCommand *command = [UIKeyCommand keyCommandWithInput:@"|" modifierFlags:UIKeyModifierControl action:@selector(toggleNav)]; - [self addKeyCommand: command]; -} - -- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated -{ - [UIView animateWithDuration:0.15 animations:^{ - self.backButton.alpha = (navigationController.viewControllers.count != 1) || self.showBackButtonOnRoot; - }]; -} - -- (void)pop -{ - if (self.presentingViewController) { - [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; - return; - } - // Support popping inside NavigatorIOS before falling back to our navigation VC - UINavigationController *targetNav = self; - for (UIViewController *controller in self.topViewController.childViewControllers) { - if ([controller isKindOfClass:UINavigationController.class]) { - if (controller.childViewControllers.count > 1) { targetNav = (id)controller; } - } - } - [targetNav popViewControllerAnimated:YES]; -} - -- (UIButton *)createBackButton -{ - UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [backButton setImage:[UIImage imageNamed:@"Back"] forState:UIControlStateNormal]; - [backButton addTarget:self action:@selector(pop) forControlEvents:UIControlEventTouchUpInside]; - backButton.adjustsImageWhenDisabled = NO; - - backButton.alpha = self.showBackButtonOnRoot ? 1 : 0; - backButton.layer.cornerRadius = 20; - backButton.layer.backgroundColor = [UIColor whiteColor].CGColor; - - return backButton; -} - -- (BOOL)shouldAutorotate; -{ - return self.topViewController.shouldAutorotate; -} - -- (UIInterfaceOrientationMask)supportedInterfaceOrientations; -{ - return self.topViewController.supportedInterfaceOrientations; -} - -- (void)toggleNav -{ - [UIView animateWithDuration:0.1 animations:^{ - CGFloat alpha = [self.backButton alpha]; - [self.backButton setAlpha:!alpha]; - }]; -} - -@end diff --git a/emission/Example/Emission/Emission-Bridging-Header.h b/emission/Example/Emission/Emission-Bridging-Header.h deleted file mode 100644 index 1b2cb5d6d09..00000000000 --- a/emission/Example/Emission/Emission-Bridging-Header.h +++ /dev/null @@ -1,4 +0,0 @@ -// -// Use this file to import your target's public headers that you would like to expose to Swift. -// - diff --git a/emission/Example/Emission/Emission.entitlements b/emission/Example/Emission/Emission.entitlements deleted file mode 100644 index f10171f7825..00000000000 --- a/emission/Example/Emission/Emission.entitlements +++ /dev/null @@ -1,17 +0,0 @@ - - - - - com.apple.developer.associated-domains - - webcredentials:artsy.net - webcredentials:www.artsy.net - webcredentials:staging.artsy.net - webcredentials:m.artsy.net - - keychain-access-groups - - $(AppIdentifierPrefix)net.artsy.Emission - - - diff --git a/emission/Example/Emission/Info.plist b/emission/Example/Emission/Info.plist deleted file mode 100644 index 5eae8bb9037..00000000000 --- a/emission/Example/Emission/Info.plist +++ /dev/null @@ -1,65 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.1.0 - CFBundleSignature - ???? - CFBundleVersion - 2017.09.22.12 - ITSAppUsesNonExemptEncryption - - LSApplicationQueriesSchemes - - comgooglemaps - comgooglemaps-x-callback - - LSRequiresIPhoneOS - - MGLMapboxMetricsEnabledSettingShownInApp - YES - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - NSCameraUsageDescription - Using Camera to take photos for Consignments - NSLocationAlwaysAndWhenInUseUsageDescription - Using User Location to display nearby shows - NSLocationWhenInUseUsageDescription - Using User Location to display nearby shows - NSPhotoLibraryUsageDescription - Using Camera Roll for Consignments Photos - UIBackgroundModes - - location - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - UIInterfaceOrientationPortraitUpsideDown - - - diff --git a/emission/Example/Emission/InternalWebViewController.h b/emission/Example/Emission/InternalWebViewController.h deleted file mode 100644 index 5184ea4a434..00000000000 --- a/emission/Example/Emission/InternalWebViewController.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface InternalWebViewController : UIViewController -- (instancetype)initWithURL:(NSURL *)url; -@end diff --git a/emission/Example/Emission/InternalWebViewController.m b/emission/Example/Emission/InternalWebViewController.m deleted file mode 100644 index 33d24af5b7f..00000000000 --- a/emission/Example/Emission/InternalWebViewController.m +++ /dev/null @@ -1,42 +0,0 @@ -#import "InternalWebViewController.h" -#import -#import - -#import - -@interface InternalWebViewController () -@property (nonatomic, readonly, strong) NSURL *initialURL; -@end - -@implementation InternalWebViewController - -- (instancetype)initWithURL:(NSURL *)url -{ - self = [super init]; - if (!self) { - return nil; - } - - _initialURL = url; - self.automaticallyAdjustsScrollViewInsets = NO; - - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; - WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:config]; - [self.view addSubview:webView]; - - [webView constrainTopSpaceToView:self.flk_topLayoutGuide predicate:@"0"]; - [webView alignLeading:@"0" trailing:@"0" toView:self.view]; - [webView alignBottomEdgeWithView:self.view predicate:@"0"]; - - NSURLRequest *initialRequest = [NSURLRequest requestWithURL:self.initialURL]; - [webView loadRequest:initialRequest]; -} - -@end diff --git a/emission/Example/Emission/LoadingSpinner.h b/emission/Example/Emission/LoadingSpinner.h deleted file mode 100644 index 797b7df8d03..00000000000 --- a/emission/Example/Emission/LoadingSpinner.h +++ /dev/null @@ -1,8 +0,0 @@ -#import -#import - -@interface LoadingSpinner : NSObject - -- (void)presentSpinnerOnViewController:(UIViewController *)viewController title:(NSString *)title subtitle:(NSString *)subtitle completion:(dispatch_block_t)completion; - -@end diff --git a/emission/Example/Emission/LoadingSpinner.m b/emission/Example/Emission/LoadingSpinner.m deleted file mode 100644 index a18cab52a3f..00000000000 --- a/emission/Example/Emission/LoadingSpinner.m +++ /dev/null @@ -1,52 +0,0 @@ -#import "LoadingSpinner.h" -#import -#import -#import - -@interface LoadingSpinner() -@property (nonatomic, strong) UIViewController *spinnerController; -@end - - -@implementation LoadingSpinner - -- (void)presentSpinnerOnViewController:(UIViewController *)viewController title:(NSString *)title subtitle:(NSString *)subtitle completion:(dispatch_block_t)completion; -{ - if (self.spinnerController == nil) { - - self.spinnerController = [UIViewController new]; - UIView *spinnerView = self.spinnerController.view; - ARSpinner *spinner = [ARSpinner new]; - [spinnerView addSubview:spinner]; - [spinner alignCenterWithView:spinnerView]; - - if (title) { - UILabel *titleLabel = [[UILabel alloc] init]; - titleLabel.text = title; - titleLabel.font = [UIFont serifFontWithSize:24]; - titleLabel.textAlignment = NSTextAlignmentCenter; - [spinnerView addSubview:titleLabel]; - [titleLabel alignLeading:@"0" trailing:@"0" toView:spinnerView]; - [titleLabel alignCenterYWithView:spinnerView predicate:@"-160"]; - } - - if (subtitle) { - UILabel *subtitleLabel = [[UILabel alloc] init]; - subtitleLabel.text = subtitle; - subtitleLabel.font = [UIFont serifFontWithSize:18]; - subtitleLabel.textAlignment = NSTextAlignmentCenter; - [spinnerView addSubview:subtitleLabel]; - [subtitleLabel alignLeading:@"0" trailing:@"0" toView:spinnerView]; - [subtitleLabel alignCenterYWithView:spinnerView predicate:@"-100"]; - } - - [viewController presentViewController:self.spinnerController animated:NO completion:^{ - [spinner startAnimating]; - if (completion) { - completion(); - } - }]; - } -} - -@end diff --git a/emission/Example/Emission/NSDateFormatter+TimeAgo.h b/emission/Example/Emission/NSDateFormatter+TimeAgo.h deleted file mode 100644 index 12ae8047742..00000000000 --- a/emission/Example/Emission/NSDateFormatter+TimeAgo.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -// Based on an implmentation in -// http://stackoverflow.com/questions/902950/iphone-convert-date-string-to-a-relative-time-stamp - -@interface NSDateFormatter (Extras) - -+ (NSString *)timeAgoFromDate:(NSDate *)date; - -@end diff --git a/emission/Example/Emission/NSDateFormatter+TimeAgo.m b/emission/Example/Emission/NSDateFormatter+TimeAgo.m deleted file mode 100644 index 899fd02c77a..00000000000 --- a/emission/Example/Emission/NSDateFormatter+TimeAgo.m +++ /dev/null @@ -1,45 +0,0 @@ -#import "NSDateFormatter+TimeAgo.h" - -@implementation NSDateFormatter (Extras) - -+ (NSString *)timeAgoFromDate:(NSDate *)date -{ - NSDate *now = [NSDate date]; - - NSTimeInterval time = [date timeIntervalSinceDate:now]; - time *= -1; - - if(time < 1) { - return @"-"; - - } else if (time < 60) { - return @"less than a minute ago"; - - } else if (time < 3600) { - NSInteger diff = round(time / 60); - if (diff == 1) return @"1 minute ago"; - - return [NSString stringWithFormat:@"%@ minutes ago", @(diff)]; - - } else if (time < 86400) { - NSInteger diff = round(time / 60 / 60); - if (diff == 1) return @"1 hour ago"; - - return [NSString stringWithFormat:@"%@ hours ago", @(diff)]; - - } else if (time < 604800) { - NSInteger diff = round(time / 60 / 60 / 24); - if (diff == 1) return @"yesterday"; - if (diff == 7) return @"last week"; - - return [NSString stringWithFormat:@"%@ days ago", @(diff)]; - - } else { - NSInteger diff = round(time / 60 / 60 / 24 / 7); - if (diff == 1) return @"last week"; - - return [NSString stringWithFormat:@"%@ weeks ago", @(diff)]; - } -} - -@end diff --git a/emission/Example/Emission/Placeholder.swift b/emission/Example/Emission/Placeholder.swift deleted file mode 100644 index 5b3eef56104..00000000000 --- a/emission/Example/Emission/Placeholder.swift +++ /dev/null @@ -1,4 +0,0 @@ -import Foundation - -// Dummy swift file -// This is necessary to fix this issue: https://stackoverflow.com/a/52939037 diff --git a/emission/Example/Emission/UnroutedViewController.h b/emission/Example/Emission/UnroutedViewController.h deleted file mode 100644 index 40664b33695..00000000000 --- a/emission/Example/Emission/UnroutedViewController.h +++ /dev/null @@ -1,7 +0,0 @@ -#import - -@interface UnroutedViewController : UIViewController - -- (instancetype)initWithRoute:(NSString *)title; - -@end diff --git a/emission/Example/Emission/UnroutedViewController.m b/emission/Example/Emission/UnroutedViewController.m deleted file mode 100644 index 86172457389..00000000000 --- a/emission/Example/Emission/UnroutedViewController.m +++ /dev/null @@ -1,110 +0,0 @@ -#import "UnroutedViewController.h" -#import -#import -#import -#import - -#import "ARDefaults.h" - -@import WebKit; - -@interface UnroutedViewController() -@property (readonly, nonatomic, strong) WKWebView *webView; -@property (nonatomic, readonly, strong) NSURL *initialURL; -@end - -@implementation UnroutedViewController - -- (instancetype)initWithRoute:(NSString *)route -{ - if ((self = [super init])) { - _initialURL = [self urlForRoute:route]; - self.automaticallyAdjustsScrollViewInsets = NO; - } - - return self; -} - -- (NSURL *)urlForRoute:(NSString *)route -{ - if ([route hasPrefix:@"http"]) { - NSURL *url = [NSURL URLWithString:route]; - if ([url.scheme isEqualToString:@"http"]) { - NSLog(@"WARNING: Using a non-SSL URL, which is probably not what we want in production: %@", route); - } - return url; - } - - BOOL useStaging = [[NSUserDefaults standardUserDefaults] boolForKey:ARUseStagingDefault]; - NSURL *baseUrl = [NSURL URLWithString: useStaging ? @"https://staging.artsy.net" : @"https://artsy.net"]; - return [[NSURL URLWithString:route relativeToURL:baseUrl] absoluteURL]; -} - -- (void)loadURL:(NSURL *)URL; -{ - AREmission *emission = [AREmission sharedInstance]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; - NSString *agentString = [NSString stringWithFormat:@"Mozilla/5.0 Artsy-Mobile/3.3.0 Eigen/2017.07.07.13/3.3.0 (iPhone; iOS 9.0; Scale/2.00) AppleWebKit/601.1.46 (KHTML, like Gecko) Emission/1.x"]; - - [request addValue:agentString forHTTPHeaderField:@"UserAgent"]; - [request addValue:emission.configurationModule.userID forHTTPHeaderField:@"X-User-ID"]; - [request addValue:emission.configurationModule.authenticationToken forHTTPHeaderField:@"X-Access-Token"]; - - [self.webView loadRequest:request]; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; - - CGRect deviceBounds = [UIScreen mainScreen].bounds; - WKWebView *webView = [[WKWebView alloc] initWithFrame:deviceBounds configuration:config]; - - webView.frame = self.view.bounds; - webView.navigationDelegate = self; - [self.view addSubview:webView]; - - _webView = webView; - - [self loadURL:self.initialURL]; -} - -- (UIStatusBarStyle)preferredStatusBarStyle -{ - return UIStatusBarStyleLightContent; -} - -- (void)viewWillLayoutSubviews -{ - [self.webView constrainTopSpaceToView:self.flk_topLayoutGuide predicate:@"0"]; - [self.webView alignLeading:@"0" trailing:@"0" toView:self.view]; - [self.webView alignBottomEdgeWithView:self.view predicate:@"0"]; -} - -- (UIStatusBarStyle)statusBarStyle -{ - return self.statusBarStyle; -} - - -#pragma mark - Properties - -#pragma mark WKWebViewDelegate - -- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler; -{ - decisionHandler([self shouldLoadNavigationAction:navigationAction]); -} - -- (WKNavigationActionPolicy)shouldLoadNavigationAction:(WKNavigationAction *)navigationAction; -{ - if (navigationAction.navigationType == WKNavigationTypeLinkActivated) { - NSString *route = navigationAction.request.URL.absoluteString; - AREmission.sharedInstance.switchBoardModule.presentNavigationViewController(self, route); - } - return WKNavigationActionPolicyAllow; -} - - -@end diff --git a/emission/Example/Emission/index.ios.js b/emission/Example/Emission/index.ios.js deleted file mode 100644 index 5a8f2ff38e0..00000000000 --- a/emission/Example/Emission/index.ios.js +++ /dev/null @@ -1,4 +0,0 @@ -import "./index.storybooks" -import "../../src/lib/Components/Storybooks" - -import "../../index.ios" diff --git a/emission/Example/Emission/index.storybooks.js b/emission/Example/Emission/index.storybooks.js deleted file mode 100644 index 66a6faf21a9..00000000000 --- a/emission/Example/Emission/index.storybooks.js +++ /dev/null @@ -1,14 +0,0 @@ -import { AppRegistry } from "react-native" -import { getStorybookUI, configure, addDecorator } from "@storybook/react-native" -import React from "react" -import { Theme } from "@artsy/palette" -import { loadStories } from "../../storybook/storyLoader" - -// import your stories -configure(() => { - addDecorator(storyFn => {storyFn()}) - loadStories() -}, module) - -const StorybookUI = getStorybookUI({ port: 9001, host: "localhost" }) -AppRegistry.registerComponent("Storybook", () => StorybookUI) diff --git a/emission/Example/Emission/index.tests.ios.js b/emission/Example/Emission/index.tests.ios.js deleted file mode 100644 index 4813e96f680..00000000000 --- a/emission/Example/Emission/index.tests.ios.js +++ /dev/null @@ -1 +0,0 @@ -import "../../index.tests.ios" diff --git a/emission/Example/Emission/logo@2x.png b/emission/Example/Emission/logo@2x.png deleted file mode 100644 index 50fc9b70d54b2a1f705f0a8247e00ee7fd89a237..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46105 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 zij - -int main(int argc, char * argv[]) { - @autoreleasepool { - NSString *delegate = @"AppDelegate"; -#ifdef DEBUG - if (NSClassFromString(@"XCTestCase")) { - delegate = @"TestHelper"; - if (NSClassFromString(delegate) == nil) { - NSString *testBundlePath = [[NSProcessInfo processInfo] environment][@"XCInjectBundle"]; - NSCParameterAssert(testBundlePath); - NSCParameterAssert([[NSBundle bundleWithPath:testBundlePath] load]); - } - } -#endif - return UIApplicationMain(argc, argv, nil, delegate); - } -} diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/01a367ce1ba17e6231654c254d3877f2.jpg&width=240&height=240&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/01a367ce1ba17e6231654c254d3877f2.jpg&width=240&height=240&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 77a2fcd2e26c2f0496e8c34a32f880e10510e156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29819 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 diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/19e6af653c1bd8d817d6039941edbd64.jpg&width=240&height=318&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/19e6af653c1bd8d817d6039941edbd64.jpg&width=240&height=318&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 76aad09089948646c6fa06354b1d62050a9492ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24154 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 diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/2965e15f16bf3b910644df310c638617.jpg&width=240&height=158&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/2965e15f16bf3b910644df310c638617.jpg&width=240&height=158&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index c9ce79a33ca101d26d4fa434f0e166b741463cbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18876 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%0A~&6wCwy9Exm(4`CjS6C79>ub zbg}`G4;&tzLHc7%;@m5@iSS`Eah0m<{GbXV)fH(X)szH|17P5e$4|3-dzopn+a4s6 z-6a%tqABHh2vSSq?u-xh<4W2?4xT(Oz@l(6SK@D7$_cRD6n zY(G)VJBsmjuZ^w3K?MAQ;0}@02|4ul=hH;58oJwVWIf=GiOV!Q&Yj?;fvZGJ(S(ho zPuU+<&RKwUt%ZbZN~>SXhL z*Eku+Cr5xIej#djnvO#iIqEnCa&v>OgdS#W(v_}QCY{fize zDZIAreYPW0H<;is>Sp#mj;W7wT6#UgUt3l?5GR{e1V!U)AOU$Dv{<~wB11L7SIrTw zan$FwptlhvM$b}1OJb#^-Em6N^a$z^`a$IU!~Hb9j>e|`A(N{|^Cd97O*Zej3i4x) zs$$gb7$c#09R8Zl=Dx_9B$d3dmW6`4il%|f)_IvvEg4vh{JgQ_oa;8)f};~eVPPL=GDBHCnvA`T^UL&u)z{}qa7skoadf+){Mh3v)^{0G$44C`DO+x(X&*gKr{-*DB>Rl>1#mvJ_6;T1|az|Ev;0$s49W6^1J;t&KMBm)2trr?OrJ9km=B$jQ z$BsheDEfM9(6X>i_?Qay^6@10>grfxkIbW$CMpT*$8y8#_5S)w%Iqhj8e6MT;yb9^ zRPYb8tHz~g3h|%jImaJE@1U9-p5ewy9}(0yyIhxlvDMTVJnCY~!7>LtB_`$E-D5R5cK z0b~Sc^~d9>YVB3l#HYNxwnWwU6|#aKw!I^T80lX(45PQV&}vqfC(NL=cpjl@Eyri5 zs1i}pDL@LTnq1|*a7S+4wML=WV{*df=z%u3U0PTCh}YL2B$EeC2$ zeL;MrlBQp>(jtb2M_?w#NWmOq*#7`s2iYJEn8I2Pz!5sT_uA=|>1k=2DI~%UjQD0#id9s2xm;h8$qvYuOR8sp7%ZlT}*euCpxDN*l~a#&etx_11A_TeUP&v1L1v z+C7#^>GnPDie*1)roqPn+y4Obu3VL2;#lJ{pEFF1ht(bO4D(;VOdoOUGYzyhXJ0t_)7;&EFM zm<9;I5;$&=>~s>Gkce*$xjln$+ihVL>1KA05Ceh%IX~=wrn0@F!(h!aMSe!%Hs7*P ztaYf2M@oVWYmivuzJFh)p)1+qWb!IGNiDwfcM;R1_5Dpyr5+&}3Px}bR&u8u@$0Pj zL=1F1O>}#-5VQk6_O82c6t=)jYf03Ze4etSB%BfH{dC9StFIV2`-4o|+bGq(gmWU* z+^Hw6GxV&3sbb`*Vad*U{SJfhO8^2i!R$xme1GyVrmz}%NiH>YB2Ot=PJ~Q)k^PV3 zriI(P+tf%>5}$H1rronsT$w20Xz&om!cIXM9P!B07F4Xe{bJPG!OWG~4E0sg#T_(D ziN{GY6O4j!+mW4QGL>CM%58+j+WT=vNU9Pd82`Jg0{L~#*iotD0E+v;nR#X*) zU!HtnYNul&fCfEy*7GkazlrD5xBg^;zO;1JbamiF#RhN``{_aSVY!hrBxLe5gAo$5RLxPO_gwlp4=-!yE9dl!x6_)=l%8BCyj)D()3me z1N}n>b}a?cG>VI@WS%xq@7pX_9=ctZl5&Ph%GgvN5N(fgT^8$0Qy)UK^yCl;z{XVm zxY0DFOp2<0YIo#r9HG8_g55``lqQRc&tCmYwDQ d04((k=?FOKA-@lx(+HtoxT~=>@jf@X|JfpRO$`75 diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/2cd5f0adfd98ac6f2fd3e2f8e63df1ba.jpg&width=239&height=199&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/2cd5f0adfd98ac6f2fd3e2f8e63df1ba.jpg&width=239&height=199&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 5560d227400e570fca17daa89346fc5c65a98656..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16251 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 diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/3c831b9f93087295a3e4b6269e5ce668.jpg&width=240&height=180&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/3c831b9f93087295a3e4b6269e5ce668.jpg&width=240&height=180&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 1e3c916622315d9ff9f7dc01c701ef9f4fc4f0c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20939 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 diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/7cb9d36428889d59118016d52e70dad3.jpg&width=239&height=180&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/7cb9d36428889d59118016d52e70dad3.jpg&width=239&height=180&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 87dc036620f92e9549500ace5d7679ab2d99d339..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18610 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 F|Jj{;2l4;_ diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/903b4eafaaf05976c5015aef40b316ea.jpg&width=240&height=318&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/903b4eafaaf05976c5015aef40b316ea.jpg&width=240&height=318&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 57b710677e489783033cf7c08869e67019123de0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30965 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 diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/93feeadf4429ce1f3731d43b83c6848f.jpg&width=240&height=295&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/93feeadf4429ce1f3731d43b83c6848f.jpg&width=240&height=295&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 663391238f47afb4781e60aa2f11314e02a3ad25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18793 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 diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/a3700a7727563905267e527708eb11b3.jpg&width=240&height=306&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/a3700a7727563905267e527708eb11b3.jpg&width=240&height=306&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 13b209429bd1d70b80e4816745c94733c08c3860..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26254 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ð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 M2OQv4Y7STb*>hy=?f?J) diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/a93cb0f97d5783297fca0404c04f4f7b.jpg&width=240&height=267&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/a93cb0f97d5783297fca0404c04f4f7b.jpg&width=240&height=267&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 61d2af0dc9a959cd90aadc37dd3a685884687e97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20996 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 diff --git a/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/dcef487c075507708c5e85554d1e4653.jpg&width=240&height=175&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 b/emission/Example/EmissionTests/Fixtures/com.hackemist.SDWebImageCache.test-fixtures/dcef487c075507708c5e85554d1e4653.jpg&width=240&height=175&key=a1f82558d8134f6cbebceb9e67d04980&quality=95 deleted file mode 100644 index 02ec752b7a263fbb85e562ce99ac715d4f832aa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19878 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