{"version":3,"sources":["webpack:///javascripts/main-257c10c0995a4d25fa59.min.js","webpack:///webpack/bootstrap 257c10c0995a4d25fa59","webpack:///./app/assets/stylesheets/contest-landing/video-improve-steps.less","webpack:///./app/assets/stylesheets/special-upgrade.less","webpack:///./app/assets/stylesheets/comments.less","webpack:///./app/assets/javascripts/directives/tabsDirective.ts","webpack:///./app/assets/images/avatars/female/20.svg","webpack:///./app/assets/i18n/es.json","webpack:///./app/assets/stylesheets/mobile/wave/m-wave-landing.less","webpack:///./app/assets/javascripts/routes/RouteUtils.ts","webpack:///./app/assets/stylesheets/delete-account.less","webpack:///./app/assets/stylesheets/_fonts.less","webpack:///./app/assets/javascripts/directives/project/CommentsDirective.ts","webpack:///./app/assets/stylesheets/wave/wave-landing-smmw.less","webpack:///./app/assets/stylesheets/contest-landing/participate-steps.less","webpack:///./app/assets/stylesheets/thumbnail-picker.less","webpack:///./app/assets/html/user-page.html","webpack:///./app/assets/images/avatars/female/19.png","webpack:///./app/assets/stylesheets/mobile/mobile.less","webpack:///./app/assets/javascripts/services/HttpSvc.ts","webpack:///./app/assets/stylesheets/modal.less","webpack:///./app/assets/images/landing/light ^\\.\\/.*$","webpack:///./app/assets/stylesheets/wave/wave-projects.less","webpack:///./app/assets/html/education ^\\.\\/.*\\.html$","webpack:///./app/assets/html/studio-header.html","webpack:///./app/assets/stylesheets/studio-responsiveness.less","webpack:///./app/assets/html/top-layout.html","webpack:///./app/assets/javascripts/MediumLandingPages.ts","webpack:///./app/assets/i18n/ru.json","webpack:///./app/assets/images/avatars/male/8.svg","webpack:///./app/assets/images/landing/banner/help-img-8.png","webpack:///./app/assets/images/avatars/male/6.svg","webpack:///./app/assets/javascripts/directives/project/editableDirective.ts","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-logo-video-sign-up.less","webpack:///./app/assets/javascripts/services/HttpProjectSvc.ts","webpack:///./app/assets/stylesheets/landing/landing-new.less","webpack:///./app/assets/stylesheets/main.less","webpack:///./public/javascripts/ocLazyLoad.js","webpack:///./app/assets/javascripts/services/AnalyticSvc.ts","webpack:///./app/assets/javascripts/directives/pickPreviewImageDirective.ts","webpack:///./app/assets/javascripts/directives/OpenEditor.ts","webpack:///./app/assets/stylesheets/contest-landing/challenges-list.less","webpack:///./app/assets/stylesheets/tabs.less","webpack:///./app/assets/images/avatars/female/10.png","webpack:///./app/assets/javascripts/directives/loadingSpinnerDirective.ts","webpack:///./app/assets/stylesheets/settings/subscription/subscription-billing-info-form.less","webpack:///./app/assets/images/avatars/female/12.svg","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-video-statistics.less","webpack:///./app/assets/stylesheets/landing-template/components/icon-text-list.less","webpack:///./app/assets/stylesheets/contest-landing/contest-days-top-section.less","webpack:///./app/assets/stylesheets/f_bsh-button.less","webpack:///./app/assets/stylesheets/landing-template/components/title-block.less","webpack:///./app/assets/javascripts/directives/filters.ts","webpack:///./app/assets/stylesheets/feedback-slider.less","webpack:///./app/assets/images/avatars/male/11.svg","webpack:///./app/assets/javascripts/directives/headroomDirective.ts","webpack:///./app/assets/images/spin.png","webpack:///./app/assets/stylesheets/contest-landing/countdown-section.less","webpack:///./app/assets/images/favicon-wave.ico","webpack:///./app/assets/javascripts/directives/studioHeader.ts","webpack:///./app/assets/html/explore.html","webpack:///./app/assets/stylesheets/company.less","webpack:///./app/assets/html/education/week3.html","webpack:///./app/assets/javascripts/services/TranslateSvc.ts","webpack:///./app/assets/stylesheets/editor-redirect.less","webpack:///./app/assets/javascripts/services/AnimatronSvc.ts","webpack:///./app/assets/javascripts/services/EventSvc.ts","webpack:///./app/assets/stylesheets/wave/tutorial/wave-tutorials-list.less","webpack:///./app/assets/stylesheets/_slider.less","webpack:///./app/assets/javascripts/services/RescaleSvc.ts","webpack:///./app/assets/images/avatars/male/6.png","webpack:///./app/assets/stylesheets/_checkbox.less","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-company-quote.less","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-bitmap.less","webpack:///./app/assets/html/privacy.html","webpack:///./app/assets/stylesheets/analytics.less","webpack:///./app/assets/images/avatars/male/9.svg","webpack:///./app/assets/html/project/publish/multi-share.html","webpack:///./app/assets/javascripts/directives/waveHeader.ts","webpack:///./app/assets/javascripts/services/AnimatronUsersSvc.ts","webpack:///./app/assets/stylesheets/le-share-button.less","webpack:///./app/assets/images/avatars/female/8.svg","webpack:///./app/assets/javascripts/TemplateLandingPages.ts","webpack:///./app/assets/stylesheets/settings/subscription/containers/subscription-payment-details-container.less","webpack:///./app/assets/javascripts/directives/documentNoScroll.ts","webpack:///./app/assets/stylesheets/landing/landing-top-common.less","webpack:///./app/assets/images/landing/banner/help-img-3b.png","webpack:///./app/assets/stylesheets/popup.less","webpack:///./public/javascripts/loading-bar.js","webpack:///./app/assets/javascripts/directives/smoothScrollDirective.ts","webpack:///./app/assets/stylesheets/contest-landing/judge-item.less","webpack:///./app/assets/stylesheets/ng-tags-input.less","webpack:///./app/assets/javascripts/directives/stripeValidatorsDirectives.ts","webpack:///./app/assets/stylesheets/settings/subscription/containers/subscription-invoice-history-container.less","webpack:///./app/assets/stylesheets/mobile/m-medium-landing.less","webpack:///./app/assets/stylesheets/pricing.less","webpack:///./app/assets/stylesheets/settings/subscription/containers/subscription-router-modals-container.less","webpack:///./app/assets/stylesheets/mobile/wave/m-wave-typography.less","webpack:///./app/assets/stylesheets/dropdown-menu.less","webpack:///./app/assets/stylesheets/landing/any-landing.less","webpack:///./app/assets/stylesheets/_checkbox-tab.less","webpack:///./app/assets/javascripts/directives/keypressDirective.ts","webpack:///./app/assets/stylesheets/wave/tutorial/wave-tutorial-page.less","webpack:///./app/assets/images/avatars/female/16.svg","webpack:///./app/assets/html/education/week1.html","webpack:///./app/assets/javascripts/directives/masonryDirectives.ts","webpack:///./app/assets/images/avatars/female/1.svg","webpack:///./app/assets/stylesheets/wave/folder/video-folder-bottom.less","webpack:///./app/assets/stylesheets/settings/subscription/payment-details/subscription-payment-details-enter-card.less","webpack:///./app/assets/images/avatars/male/11.png","webpack:///./app/assets/images/avatars/female/6.svg","webpack:///./app/assets/images/avatars/female/3.svg","webpack:///./app/assets/html/education/week2.html","webpack:///./app/assets/stylesheets/contest-landing/pre-register.less","webpack:///./app/assets/images/avatars/female/13.svg","webpack:///./app/assets/stylesheets/settings/random-fact.less","webpack:///./app/assets/stylesheets/mobile/m-landing-common.less","webpack:///./app/assets/javascripts/directives/Logo.ts","webpack:///./app/assets/stylesheets/contest-landing/countdown.less","webpack:///./app/assets/images/avatars/female/17.png","webpack:///./app/assets/images/landing/banner/help-img-9.png","webpack:///./app/assets/javascripts/directives/project/projectPageCanvasDirective.ts","webpack:///./app/assets/stylesheets/contest-landing/pre-register-section.less","webpack:///./app/assets/javascripts/LandingPages.ts","webpack:///./app/assets/html/video-banner.html","webpack:///./app/assets/images/avatars/female/21.png","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-template-pages-list.less","webpack:///./app/assets/javascripts/directives/userAvatarDirective.ts","webpack:///./app/assets/images/avatars/female/5.svg","webpack:///./app/assets/javascripts/directives/validatorDirectives.ts","webpack:///./app/assets/images/avatars/female/19.svg","webpack:///./app/assets/javascripts/directives/AdBanner.ts","webpack:///./app/assets/html/landing/light/light-landing.html","webpack:///./app/assets/javascripts/directives/landing/LandingPage.ts","webpack:///./app/assets/javascripts/services/AdminSvc.ts","webpack:///./app/assets/javascripts/directives/oauthSignInButtons.ts","webpack:///./app/assets/stylesheets/wave/wave-user-page.less","webpack:///./app/assets/html/tabs.html","webpack:///./app/assets/javascripts/directives/FixedTabs.ts","webpack:///./app/assets/html/project/editable.html","webpack:///./app/assets/javascripts/services/UserChangeWatcherSvc.ts","webpack:///./app/assets/stylesheets/user-section.less","webpack:///./app/assets/html/search.html","webpack:///./app/assets/images/landing/light/creativity.png","webpack:///./app/assets/html/project/project.html","webpack:///./app/assets/stylesheets/settings/subscription/subscription-page.less","webpack:///./app/assets/stylesheets/go-share-button.less","webpack:///./app/assets/images/landing/banner/business.png","webpack:///./app/assets/stylesheets/user-info-form.less","webpack:///./app/assets/javascripts/directives/uploadProject.ts","webpack:///./app/assets/html/landing/banner.html","webpack:///./app/assets/javascripts/directives/pauseHiddenPlayer.ts","webpack:///./app/assets/stylesheets/landing-template/components/different-devices.less","webpack:///./app/assets/stylesheets/scroll-button.less","webpack:///./app/assets/stylesheets/settings/subscription/subscription-alert.less","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-horizontal-image-text.less","webpack:///./app/assets/stylesheets/settings/subscription/subscription-invoice-history-table.less","webpack:///./app/assets/stylesheets/mobile/m-search-page.less","webpack:///./app/assets/images/landing/banner/social.png","webpack:///./app/assets/images/avatars/female/6.png","webpack:///./app/assets/images/landing/banner/help-img-7.png","webpack:///./app/assets/stylesheets/contest-landing/media-sponsors-section.less","webpack:///./app/assets/javascripts/services/TagsSvc.ts","webpack:///./app/assets/stylesheets/video-slider.less","webpack:///./app/assets/javascripts/directives/isOnScreenDirective.ts","webpack:///./app/assets/stylesheets/wave/tutorial/wave-tutorial-workshops.less","webpack:///./app/assets/images/landing/banner/help-img-6.png","webpack:///./app/assets/images/landing/light/light-presentation-image.png","webpack:///./app/assets/stylesheets/landing/video-gallery.less","webpack:///./app/assets/images/avatars/female/5.png","webpack:///./app/assets/stylesheets/contest-landing/title-shadow-block.less","webpack:///./app/assets/images/landing/banner ^\\.\\/.*\\.png$","webpack:///./app/assets/stylesheets/landing/landing-new-bottom.less","webpack:///./app/assets/images/avatars/female/18.png","webpack:///./app/assets/stylesheets/aff-modal.less","webpack:///./app/assets/images/avatars/female/1.png","webpack:///./app/assets/html/user-info.html","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-different-devices.less","webpack:///./app/assets/javascripts/services/AffiliateSvc.ts","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-vertical-text-video.less","webpack:///./app/assets/stylesheets/landing-video-preview.less","webpack:///./app/assets/javascripts/services/StopPlaySvc.ts","webpack:///./app/assets/javascripts/app.ts","webpack:///./app/assets/stylesheets/_lang.less","webpack:///./public/javascripts/angular-cookie.js","webpack:///./app/assets/stylesheets/settings.less","webpack:///./app/assets/stylesheets/_mixins.less","webpack:///./app/assets/images/avatars/female/21.svg","webpack:///./app/assets/stylesheets/wistia-player.less","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-video-gallery.less","webpack:///./app/assets/javascripts/main.ts","webpack:///./app/assets/stylesheets/wave/folder/masonry/video-folder-masonry.less","webpack:///./app/assets/images/avatars/male/10.png","webpack:///./app/assets/images/avatars/male/10.svg","webpack:///./app/assets/html/project/project-summary.html","webpack:///./app/assets/stylesheets/wave/folder/video-folder-tree-item.less","webpack:///./app/assets/javascripts/services/SmoothScroll.ts","webpack:///./app/assets/images/avatars/male/5.svg","webpack:///./app/assets/stylesheets/wave/folder/video-folder-breadcrumb.less","webpack:///./app/assets/javascripts/directives/moreTextDirective.ts","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-text-aside.less","webpack:///./app/assets/html/education/week6.html","webpack:///./app/assets/stylesheets/contest/contest.less","webpack:///./app/assets/images/avatars/female/16.png","webpack:///./app/assets/javascripts/intercom.ts","webpack:///./app/assets/javascripts/services/AnimatronProjectsSvc.ts","webpack:///./app/assets/images/avatars/female/7.svg","webpack:///./app/assets/javascripts/directives/landing/LandingComparisonPage.ts","webpack:///./app/assets/stylesheets/activate.less","webpack:///./app/assets/stylesheets/contest-landing/contest-days.less","webpack:///./app/assets/javascripts/routes/routes.ts","webpack:///./app/assets/javascripts/services/landingTemplateSvc.ts","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-feedback.less","webpack:///./app/assets/stylesheets/mobile/wave/m-wave-landing-smmw.less","webpack:///./app/assets/images/avatars ^\\.\\/.*$","webpack:///./app/assets/stylesheets/404-page.less","webpack:///./app/assets/stylesheets/contest-landing/contact-us-section.less","webpack:///./app/assets/javascripts/underscore-extensions.ts","webpack:///./app/assets/stylesheets/contest-landing/contest-landing.less","webpack:///./app/assets/stylesheets/landing-template/components/template-pages-list.less","webpack:///./app/assets/javascripts/LightLandingPages.ts","webpack:///./app/assets/javascripts/directives/Footer.ts","webpack:///./app/assets/javascripts/services/ProjectModalSvc.ts","webpack:///./app/assets/html/modal-template.html","webpack:///./app/assets/stylesheets/landing/political-landing.less","webpack:///./app/assets/stylesheets/contest-landing/contest-text-video-section.less","webpack:///./app/assets/stylesheets/mobile/m-header.less","webpack:///./app/assets/stylesheets/mobile/m-landing-banner.less","webpack:///./app/assets/javascripts/services/LocalStorageSvc.ts","webpack:///./app/assets/images/avatars/female/17.svg","webpack:///./app/assets/stylesheets/contest-landing/win-prizes-section.less","webpack:///./app/assets/images/landing/light/video-maker.png","webpack:///./app/assets/javascripts/directives/newsDirective.ts","webpack:///./app/assets/stylesheets/auth.less","webpack:///./app/assets/html/footer.html","webpack:///./app/assets/html/press-twitter-gallery.html","webpack:///./app/assets/javascripts/directives/project/ShareSocial.ts","webpack:///./app/assets/images/avatars/male/2.svg","webpack:///./app/assets/javascripts/directives/modalVideo.ts","webpack:///./app/assets/stylesheets/edu.less","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./app/assets/stylesheets/discount-dialog.less","webpack:///./app/assets/i18n ^\\.\\/.*\\.json$","webpack:///./app/assets/stylesheets/settings/subscription/messages/subscription-messages.less","webpack:///./app/assets/html/settings/settings.html","webpack:///./app/assets/stylesheets/library.less","webpack:///./app/assets/javascripts/directives/toggleProjectModalDirective.ts","webpack:///./public/javascripts/ng-infinite-scroll.js","webpack:///./app/assets/images/avatars/male ^\\.\\/.*\\.svg$","webpack:///./app/assets/images/avatars/male/12.svg","webpack:///./app/assets/images/avatars/female/4.svg","webpack:///./app/assets/stylesheets/wave/folder/video-folder-item.less","webpack:///./app/assets/images/avatars/male/13.png","webpack:///./app/assets/stylesheets/landing-template/components/double-circle-progress.less","webpack:///./app/assets/html/education/week4.html","webpack:///./app/assets/javascripts/services/AdSvc.ts","webpack:///./app/assets/html/education/week7.html","webpack:///./app/assets/images/avatars/male/13.svg","webpack:///./app/assets/javascripts/directives/project/ProjectPage.ts","webpack:///./app/assets/stylesheets/settings/subscription/subscription-credit-info.less","webpack:///./app/assets/javascripts/directives/LightLanding.ts","webpack:///./app/assets/stylesheets/pagination.less","webpack:///./app/assets/javascripts/directives/SearchText.ts","webpack:///./app/assets/javascripts/directives/scrollToDirective.ts","webpack:///./app/assets/javascripts/directives/affiliatePopup.ts","webpack:///./app/assets/images/avatars/male/2.png","webpack:///./app/assets/stylesheets/landing-template/components/template-pages-list-item.less","webpack:///./app/assets/images/avatars/male/7.png","webpack:///./app/assets/images/avatars/female/11.svg","webpack:///./app/assets/javascripts/services/ProjectAugmenter.ts","webpack:///./app/assets/html/landing/comparison.html","webpack:///./app/assets/javascripts/directives/RelatedPagesSwipable.ts","webpack:///./app/assets/javascripts/directives/modalDialogDirective.ts","webpack:///./app/assets/i18n/ko.json","webpack:///./app/assets/javascripts/directives/smallDirectives.ts","webpack:///./app/assets/javascripts/directives/anmHeader.ts","webpack:///./app/assets/images/avatars/female/13.png","webpack:///./app/assets/stylesheets/wave/wave-template-item.less","webpack:///./app/assets/i18n/en.json","webpack:///./app/assets/stylesheets/project-upgrade.less","webpack:///./app/assets/stylesheets/mobile/m-any-landing.less","webpack:///./app/assets/images/landing/banner/blog.png","webpack:///./app/assets/images/avatars/male/3.svg","webpack:///./app/assets/javascripts/services/AuthenticationSvc.ts","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-company-info.less","webpack:///./app/assets/stylesheets/newsWebsite.less","webpack:///./app/assets/javascripts/directives/ContentEditable.ts","webpack:///./app/assets/html/projects.html","webpack:///./app/assets/images/avatars/male/4.svg","webpack:///./app/assets/javascripts/lazy_modules.ts","webpack:///./app/assets/javascripts/services/OAuthCallbackSvc.ts","webpack:///./app/assets/images/avatars/male/4.png","webpack:///./app/assets/html/news.html","webpack:///./app/assets/stylesheets/wave/tutorial/wave-tutorials-item.less","webpack:///./app/assets/stylesheets/contest-landing/sponsor-contact-us.less","webpack:///./app/assets/html/user-popup.html","webpack:///./app/assets/html/more-text.html","webpack:///./app/assets/stylesheets/landing/comparison.less","webpack:///./app/assets/stylesheets/projects.less","webpack:///./app/assets/javascripts/directives/project/LikeDirective.ts","webpack:///./app/assets/stylesheets/landing-template/landing-template.less","webpack:///./app/assets/stylesheets/mobile/m-company.less","webpack:///./app/assets/stylesheets/settings/subscription/subscription-current-plan.less","webpack:///./app/assets/stylesheets/landing-template/components/text-block.less","webpack:///./app/assets/javascripts/services/index.ts","webpack:///./app/assets/javascripts/routes/commonLinks.ts","webpack:///./app/assets/html/education/week8.html","webpack:///./app/assets/html/wave-header.html","webpack:///./app/assets/stylesheets/mobile/m-landing-comparison.less","webpack:///./app/assets/stylesheets/wave/wave-webinar.less","webpack:///./app/assets/stylesheets/video-steps.less","webpack:///./app/assets/images/avatars/female/2.png","webpack:///./app/assets/javascripts/services/ExceptionHandler.ts","webpack:///./app/assets/html/like.html","webpack:///./app/assets/stylesheets/footer.less","webpack:///./app/assets/images/avatars/male/5.png","webpack:///./app/assets/stylesheets/landing/medium-landing.less","webpack:///./app/assets/stylesheets/wave/wave-pricing.less","webpack:///./app/assets/stylesheets/fonts/font-ko.less","webpack:///./app/assets/javascripts/Strings.ts","webpack:///./app/assets/stylesheets/subscription.less","webpack:///./app/assets/javascripts/directives/Login.ts","webpack:///./app/assets/html/landing/landing-new-bottom.html","webpack:///./app/assets/html/education/education.html","webpack:///./app/assets/images/landing/light/card-maker.png","webpack:///./app/assets/stylesheets/search.less","webpack:///./app/assets/images/avatars/male/3.png","webpack:///./app/assets/stylesheets/wave/wave-my-projects.less","webpack:///./app/assets/stylesheets/landing-template/components/relation-list.less","webpack:///./app/assets/stylesheets/mobile/wave/m-wave-pricing.less","webpack:///./app/assets/images/avatars/female/7.png","webpack:///./app/assets/javascripts/directives/module.ts","webpack:///./app/assets/stylesheets/settings/subscription/subscription-title.less","webpack:///./app/assets/stylesheets/landing/light-landing.less","webpack:///./app/assets/javascripts/services/WistiaSvc.ts","webpack:///./app/assets/javascripts/directives/AutoplayVideo.ts","webpack:///./app/assets/stylesheets/wave/folder/video-folder-move-modal.less","webpack:///./app/assets/images/avatars/male/9.png","webpack:///./app/assets/stylesheets/bg-video.less","webpack:///./app/assets/stylesheets/signup.less","webpack:///./app/assets/javascripts/services/ObjectId.ts","webpack:///./app/assets/stylesheets/header.less","webpack:///./app/assets/stylesheets/publish.less","webpack:///./app/assets/javascripts/services/module.ts","webpack:///./app/assets/stylesheets/wave/wave-project-item.less","webpack:///./app/assets/images/avatars/female/11.png","webpack:///./app/assets/stylesheets/contest-landing/challenges-list-section.less","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-video-steps.less","webpack:///./app/assets/stylesheets/landing-template/components/background.less","webpack:///./app/assets/stylesheets/mobile/wave/m-webinar.less","webpack:///./app/assets/html/landing/related-pages.html","webpack:///./app/assets/html/landing/political-landing.html","webpack:///./app/assets/stylesheets/ask-popup.less","webpack:///./app/assets/html/press-swipable.html","webpack:///./app/assets/images/avatars/male/1.png","webpack:///./app/assets/html/terms-of-service.html","webpack:///./app/assets/stylesheets/mobile/m-landing-bottom.less","webpack:///./app/assets/javascripts/services/NewsSvc.ts","webpack:///./app/assets/html/modal-video.html","webpack:///./app/assets/stylesheets/animations.less","webpack:///./app/assets/images/avatars/female/15.svg","webpack:///./app/assets/javascripts/directives/index.ts","webpack:///./app/assets/stylesheets/drag-drop/drag-item.less","webpack:///./app/assets/javascripts/services/AnimatronPreviewsSvc.ts","webpack:///./app/assets/stylesheets/search-page.less","webpack:///./app/assets/images/avatars/male/8.png","webpack:///./app/assets/html/404.html","webpack:///./app/assets/javascripts/services/PlayerSvc.ts","webpack:///./app/assets/javascripts/directives/ExplorePage.ts","webpack:///./app/assets/stylesheets/settings/subscription/payment-details/subscription-payment-details-with-card.less","webpack:///./app/assets/html/landing/landing-new.html","webpack:///./app/assets/stylesheets/landing/banner-bottom.less","webpack:///./app/assets/stylesheets/buttons.less","webpack:///./app/assets/images/landing/light/pattern-light-landing-bottom.svg","webpack:///./app/assets/stylesheets/contest-landing/win-prizes-list.less","webpack:///./app/assets/stylesheets/settings/subscription/subscription-total-price.less","webpack:///./app/assets/javascripts/services/MyFollowings.ts","webpack:///./app/assets/stylesheets/settings/subscription/containers/subscription-current-plan-container.less","webpack:///./app/assets/javascripts/directives/ProjectItem.ts","webpack:///./app/assets/javascripts/directives/UserPopup.ts","webpack:///./app/assets/javascripts/services/videoFolderSvc.ts","webpack:///./app/assets/stylesheets/wave/wave-trail.less","webpack:///./app/assets/html/education/week5.html","webpack:///./app/assets/javascripts/services/BackendSvc.ts","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-video-sign-up.less","webpack:///./app/assets/javascripts/services/SpinnerSvc.ts","webpack:///./app/assets/javascripts/directives/blurMeDirective.ts","webpack:///./app/assets/stylesheets/video-player.less","webpack:///./app/assets/javascripts/directives/formAutofillFixDirective.ts","webpack:///./app/assets/html/search-page.html","webpack:///./app/assets/images/landing/light/banner-video-preview_x2.jpg","webpack:///./app/assets/html/project/project-access.html","webpack:///./app/assets/images/favicon.ico","webpack:///./app/assets/stylesheets/wave/wave-landing.less","webpack:///./app/assets/images/avatars/female/4.png","webpack:///./app/assets/images/avatars/female/10.svg","webpack:///./app/assets/stylesheets/contest-landing/spread-in.less","webpack:///./app/assets/javascripts/directives/AppearAnimation.ts","webpack:///./app/assets/stylesheets/open-editor.less","webpack:///./app/assets/images/avatars/female/15.png","webpack:///./app/assets/html/affiliate-popup.html","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-video-time.less","webpack:///./app/assets/javascripts/services/PaymentHelpers.ts","webpack:///./app/assets/images/landing/banner/help-img-2.png","webpack:///./app/assets/stylesheets/fonts/fonts-basic.less","webpack:///./app/assets/stylesheets/landing/masonry-wrapper.less","webpack:///./app/assets/html/open-editor.html","webpack:///./app/assets/stylesheets/spinners.less","webpack:///./app/assets/images/avatars/female/9.svg","webpack:///./app/assets/javascripts/directives/searchDirective.ts","webpack:///./app/assets/images/landing/banner/help-img-4.png","webpack:///./app/assets/html/studio/pricing.html","webpack:///./app/assets/images/avatars/female/8.png","webpack:///./app/assets/html/project-item.html","webpack:///./app/assets/html/landing/explainer.html","webpack:///./app/assets/javascripts/directives/commonLink.ts","webpack:///./app/assets/javascripts/notification.ts","webpack:///./app/assets/html/project/project-buttons.html","webpack:///./app/assets/images/landing/banner/help-img-1.png","webpack:///./app/assets/images/avatars/female/2.svg","webpack:///./app/assets/html/header.html","webpack:///./app/assets/stylesheets/landing/both-landings-common.less","webpack:///./app/assets/images/avatars/female/9.png","webpack:///./app/assets/javascripts/directives/PressSwipable.ts","webpack:///./app/assets/stylesheets/logo.less","webpack:///./app/assets/javascripts/services/ViewPortSvc.ts","webpack:///./app/assets/stylesheets/wave/_typography.less","webpack:///./app/assets/html/project/comments/comments.html","webpack:///./app/assets/images/landing/banner/help-img-5.png","webpack:///./app/assets/images/avatars/male/12.png","webpack:///./app/assets/stylesheets/settings/address.less","webpack:///./app/assets/images/landing/banner/help-img-3.png","webpack:///./app/assets/stylesheets/contractors.less","webpack:///./app/assets/images/avatars/female/3.png","webpack:///./app/assets/images/avatars/female/20.png","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-horizontal-text-video.less","webpack:///./app/assets/javascripts/services/CookieSettings.ts","webpack:///./app/assets/stylesheets/notifications.less","webpack:///./app/assets/images/avatars/female/12.png","webpack:///./app/assets/stylesheets/global.less","webpack:///./app/assets/images/avatars/male/1.svg","webpack:///./app/assets/javascripts/directives/project/projectAccessDirective.ts","webpack:///./app/assets/stylesheets/wave/wave-section-how-work.less","webpack:///./app/assets/stylesheets/tutorial.less","webpack:///./app/assets/stylesheets/login-modal.less","webpack:///./app/assets/stylesheets/sign-up-block.less","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-background-text.less","webpack:///./app/assets/images/avatars/female/14.svg","webpack:///./app/assets/html/signup/sign-up.html","webpack:///./app/assets/stylesheets/settings/info-app-sumo.less","webpack:///./app/assets/stylesheets/user-popup.less","webpack:///./app/assets/stylesheets/modal-video-player.less","webpack:///./app/assets/images/avatars/female/14.png","webpack:///./app/assets/stylesheets/contest-landing/video-improve-steps-section.less","webpack:///./app/assets/images/avatars/male/7.svg","webpack:///./app/assets/stylesheets/landing-template/components/sections/section-sign-up.less","webpack:///./app/assets/images/avatars/female/18.svg","webpack:///./app/assets/stylesheets ^\\.\\/.*\\.less$","webpack:///./app/assets/html/modals/login.html"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","151","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","setTimeout","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","s","+G96","+K6/","+goU","+hc0","value","tslib_1","module_1","underscore_extensions_1","TabsCtrl","$rootScope","$scope","$location","$state","$timeout","$element","$q","_this","this","_","isUndefined","firstRun","isMobileMode","path","current","configureTabs","defaultTab","tabs","changeTab","angular","noop","reloadOnChange","onTabChange","currentTab","disableBorder","Utils","scopedEvent","throttle","setCss","destroy","$on","bind","$inject","$onChanges","onChangesObj","activateTab","tab","isActive","getTabsProperties","cached","tabsProperties","computeTabsProperties","getCurrent","then","w","indexOf","map","querySelectorAll","width","offsetWidth","x","offsetLeft","force","cssSet","tabProps","hr","querySelector","marginProp","prop","style","transitionSet","rAF","transition","contains","enableAnimation","config","filter","t","TabsSubPathCtrl","_super","parent","$current","self","childStates","startsWith","stripParent","hash","addParent","replace","go","params","$watch","__extends","$postLink","each","el","href","id","reload","setTitle","substring","separator","directivesMap","tabsSubPath","keys","forEach","default","component","controller","controllerAs","bindings","labels","transclude","templateUrl","+kS6","+lAx","+m0I","+sRS","title","event","trackVisit","analyticSvc","visitPage","stateStudioRedirect","$stateProvider","stateName","assign","url","test","newStateName","newUrl","state","redirect","extendState","_i","arguments","pop","apply","setWrapper","headerShown","enableFooter","display","wrapper","product","getProductByState","wrapperClass","loadModule","mod","applyOr","f","or","isFunction","$ocLazyLoad","applied","isArray","load","flatten","files","isEmpty","condition","callback","redirectResolve","redirectForLogin","options","user","anonymous","currentUrl","getProduct","location","pathname","toLowerCase","redirectUrl","encodeURIComponent","nullToEmptyString","str","/78k","/Rep","/pFW","CommentsCtrl","HttpSvc","AuthenticationSvc","$filter","MaxLength","$onInit","ProjectPageCtrl","projectPromise","project","comments","sort","a","b","created_at","update","comment","newText","updating","comment_id","securePut","finally","text","edit","post","sending","Form","$setValidity","$valid","securePost","projectId","r","data","response","isApiError","errorMessage","isNaN","delete","deleting","secureDelete","canDelete","rolez","Admin","myComment","owner","username","canEdit","isMyLast","enterEditMode","last","deleted","require","/r0m","03GZ","07M5","0MDI","html","injector","element","put","run","0eTi","0nYI","0ts5","HttpSvcFactory","$http","concat","Strings_1","headers","methods","methodsWithData","join","apiDomain","createRegularMethods","createSecureMethods","setApiUrl","chain","withData","setHeaders","method","_a","_b","extend","request","newMethod","Strings","capitalize","isBlank","trace","methodName","retry","catch","reason","status","service","0wzA","0zt+","webpackContext","req","webpackContextResolve","./banner-video-preview_x2.jpg","./card-maker.png","./creativity.png","./light-presentation-image.png","./pattern-light-landing-bottom.svg","./video-maker.png","15vf","1S0N","./education.html","./week1.html","./week2.html","./week3.html","./week4.html","./week5.html","./week6.html","./week7.html","./week8.html","1aEF","1uG8","23em","28+3","description","preview","topVideoListSection","list","modalVideo","playerUrl","alt","barListSection","btnUrl","content","btn","verticalListSection","icon","relatedLandings","youtubeId","imageUrl","videoSamples","textSections","order","bgColor","bgVideoSection","videoUrl","editorRedirect","horizontalListSection","videoSlider","2MCb","2wJH","2wXK","390S","3H1O","EditableCtrl","$compile","onChange","maxlength","editorEnabled","isEditable","enableEditor","textareaE","textEl","innerHTML","tag","unEdit","$event","notAllowEmpty","editModel","model","copy","prevModel","classList","remove","preventDefault","blur","unEditNoSave","add","focus","select","setSelectionRange","defaultMsg","3PSy","3Rv0","HttpProjectSvc","removeProject","stopDefaultConfirm","showSuccessMessage","productWord","confirm","notification","showSuccess","$emit","getRenderedVideo","res","errorCode","3Sex","3ksy","3qhd","getRequires","requires","requireModule","regModules","moduleExists","moduleName","message","getModule","invokeQueue","providers","queue","reconfig","len","args","provider","isNew","registerInvokeList","isDefined","callInvoke","fct","invoked","regConfigs","j","jlen","register","registerModules","k","moduleFn","tempRunBlocks","getModuleName","justLoaded","newModule","_runBlocks","runBlocks","rerun","_invokeQueue","_configBlocks","broadcast","instanceInjector","getInstanceInjector","fn","invoke","invokeList","newInvoke","regInvokes","onInvoke","invokeName","isString","isObject","init","initModules","elements","names","NG_APP_CLASS_REGEXP","append","elm","getElementById","className","match","exec","attributes","attr","addReg","mainModule","ocLazyLoad","$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider","jsLoader","cssLoader","templatesLoader","anchor","debug","events","$get","$log","$templateCache","$rootElement","$cacheFactory","$interval","filesCache","useCssLoadPatch","eventName","$broadcast","info","buildElement","loaded","deferred","defer","cacheBuster","dc","Date","getTime","rel","cache","serie","insertBeforeElem","lastChild","insertBefore","ua","navigator","userAgent","platform","v","iOSVersion","parseFloat","parseInt","androidVersion","slice","safariVersion","tries","interval","sheet","cssRules","cancel","paths","promises","all","ocLazyLoadLoader","filesLoader","cssFiles","templatesFiles","jsFiles","cachePromise","pushFile","cssDeferred","templatesDeferred","jsDeferred","getModuleConfig","setModuleConfig","moduleConfig","getModules","isLoaded","modulesNames","errText","moduleCache","deferredList","template","Array","localParams","loadDependencies","loadedModule","diff","promisesList","when","requireEntry","warn","asyncLoader","directive","$animate","$parse","restrict","terminal","priority","compile","attrs","$attr","enter","bootstrap","44/O","AnalyticSvc","landingTemplateSvc","ipCookie","LocalStorageSvc","mixpanelEnabled","forceVisitTracking","activateKeyName","getGaHeader","anm-mkt-ga","registerCommonProperties","upgradeShown","action","plan","getDefaultPlan","opt","registerUserProperties","trackMixpanel","changeBillingPeriod","oldPeriod","newPeriod","__assign","getPlan","Old Period","New Period","changeSubscription","oldPlan","toPlan","toPeriod","chargedAmount","coupon","mpChangeSubscription","fbqChangeSubscription","addTransaction","price","subscriptionName","transactionId","userId","now","gaAddTransaction","fbqAddTransaction","ga","revenue","quantity","planName","fbq","currency","signUpSubmit","getMixPanel","mixpanel","track","Provider","signUpActivate","currentHash","set","signUpComplete","fbPixelSignUpComplete","trackSignUp","signUpProfileComplete","signUpSocialSubmit","signUpSocialComplete","login","trackLoginMixpanel","logout","mixpanelLogout","pageName","additionalParams","Product","changePage","subscriptionDetails","wave","studio","WAVE Plan","displayName","STUDIO Plan","selectProduct","mpSelectProduct","arg","meta","industry","goals","occupation","new_plan","old_plan","period","Period","toString","people","track_charge","gaChangeSubscription","isFree","includes","performance","navigation","Source","getSource","register_once","set_once","first_params","campaignParams","landingInfoParams","getTrackInfo","identify","userIdAsString","getQueryParam","param","regexS","regex","RegExp","results","decodeURIComponent","index","campaign_keywords","split","kw","URL","referrer","search","reset","func","props","Place","$name","Username","email","userInfoMixpanel","idx","$first_name","$last_name","Industry","Occupation","Goals","opts","isAllowedMethod","alias","$created","toISOString","gaSetUserId","gaSignUpEvent","gaProductSignUpEvent","4HmH","RescaleSvc_1","AnimatronPreviews","scope","$ctrl","$eval","pickPreviewImage","rescale","getBoundingClientRect","dim","RescaleSvc","resizeWithAspectRatio","height","pickPreview","images","preview_metadata","image","color","addClass","4NXJ","AnimatronProjectsSvc_1","OpenEditor","AnimatronProjects","clickHandler","createNew","openVideoTemplates","duplicate","goUpgrade","isUpgradeDialog","canOpen","open","waveEditorDomain","query","toParams","setVideosCount","canCreate","offset","limit","animatronProjects","nextPage","videosCount","count","handHeld","details","videosLimit","features","PrivateUnlistedProjects","numProjects","4Y92","4eYb","4jE+","4sGx","loading","onClick","minDelay","btnClass","link","FormCtrl","timeoutHideSpinner","timeOn","loadingShow","delay","click","$setSubmitted","4uz1","4zkA","57HE","5G1g","5MIU","5TC1","5W2z","5hi/","items","filterOn","unique","item","TranslateSvc","visibilities","public","unlisted","private","visibility","$sce","trustAsHtml","encodeUsername","num","removeUrlProtocol","cards","american express","diners club","conventionalDate","reverse","input","stripTags","LINKY_URL_REGEXP","MAILTO_REGEXP","target","addText","raw","substr","5j0l","5l58","5uTM","header","isTop","lastKnownScrollY","addEventListener","documentElement","scrollY","pageYOffset","$apply","headerNotTop","5zD6","67wm","6JEJ","6M8O","StudioHeader","handlerClickLogin","toggleLoginModal","6XG8","6bdG","6cC1","6cdR","CookieSettings_1","initialized","domainToLang","kr","supportedLangs","pairs","en","ko","productionLangs","key","fetchTranslations","once","currentLang","changeLocale","has","formattedKey","reduce","langChange","lang","cookieName","CookieSettings","body","cursor","newProps","extendUser","langProps","foundLang","langFromTLD","find","defaultLang","freeze","merge","hostname","trustAs","tHtml","6gbB","6w4i","AnimatronSvc","secure","api","retries","retriesMax","pages","busy","currentPage","totalPages","shownAll","seoPage","$stateParams","page","setSecure","modifyQuery","onCreate","addSeoPagination","decorate","httpGet","makeHttpSvc","foreignAccess","getResultsOnPage","pageNum","shuffle","loadPage","result","lastPage","reorderPages","prevIndex","pageNumber","itemsList","getTotalPages","changeLimit","resultsOnPage","pgNm","flattenResults","noCount","apiUnavaliable","showError","Math","abs","ceil","flatResults","prj","uniqueId","timeoutId_1","mkLink_1","source","70FE","EventSvc","toState","fromState","hasTemplate","isStateLogout","is","animatronProducts","some","listeners_1","$$listeners","lastIndexOf","listener","74nn","7JoK","7T+Z","h","maxWidth","maxHeight","round","upscale","ratio","newDimension","7UG8","7c9p","7f+t","7s+J","7zPr","8Acd","8IAX","8ReI","8dlX","WaveHeader","8gLI","AnimatronUsersSvcFactory","AnimatronUsersSvc","AnimatronSvc_1","keyword","factory","8gmB","9+MG","9/76","settings","isHeader","footer","sections","isScrollButton","buttons","timeSteps","time","video","isMobile","wistiaId","mobileWistiaId","steps","isShadow","videos","button","keywords","logo","background","matchCondition","title2","logoUrl","logoAlt","iconClass","iconName","relationList","avatar","statistics","circleProgress","bigVal","smallVal","val","brandLogo","sbTitle","9IMG","9UtH","DocumentNoScroll","documentEl","disableScroll","isDisabled","scrollTop","top","enableScroll","scrollTo","documentNoScroll","currentValue","previousValue","$onDestroy","bindToController","9VVx","9uog","9uvP","AbyD","$httpProvider","interceptor","cfpLoadingBar","setComplete","startTimeout","complete","reqsCompleted","reqsTotal","isCached","defaultCache","defaults","latencyThreshold","ignoreLoadingBar","start","responseError","rejection","interceptors","autoIncrement","includeSpinner","includeBar","startSize","parentSelector","spinnerTemplate","loadingBarTemplate","$document","_start","$parent","$parentSelector","eq","completeTimeout","started","loadingBarContainer","spinner","_set","pct","loadingBar","css","incTimeout","_inc","_status","rnd","stat","random","_completeAnimation","_complete","leave","inc","AgC3","SmoothScroll_1","smoothOffset","scrollSvc","SmoothScroll","on","smoothScroll","scroll","Ao4C","Argd","B6ri","EMAIL_REGEXP","createFormatter","formatterName","PaymentHelpers","createBlurValidator","validatorName","validate","parserCallback","ctrl","isValid","parser","viewValue","removeClass","$parsers","unshift","$viewValue","triggerHandler","cardExpiry","cardExpiryVal","card_exp_month","month","card_exp_year","year","trim","BCWO","BGDY","BH+f","BJa0","BTge","Bdsd","BjM0","Bkei","C4lS","keysByCode","8","9","13","27","32","33","34","35","36","37","38","39","40","45","46","capitaliseFirstLetter","string","charAt","toUpperCase","mode","combinations","combination","expression","variation","altPressed","metaKey","altKey","ctrlPressed","ctrlKey","shiftPressed","shiftKey","keyCode","mainKeyPressed","altRequired","ctrlRequired","shiftRequired","actions","directiveName","keypressHelper","CDOh","CFmk","CM5t","CRNW","lazy_modules_1","MasonryCtrl","anmDefered","anmSvcPromise","container","columnWidth","loadScripts","masonryLib","Masonry","computedWidth","msnry","itemSelector","gutter","fitWidth","containerStyle","stagger","initLayout","transitionDuration","isIE","destroyMsnry","layout","bindResize","pid","PROJECT_ADD","appended","reloadItems","ExploreCtrl","onTabChangeFromCtrl_1","msnryPromise","masonryCtrl","$last","ClZ7","Cw72","CxL4","D9F/","DDR7","DFGL","DHQn","DMU6","Dc98","Dg8K","DhCa","Dmwp","Logo","islogoClickable","isLink","logoHandler","openInNewWindow","origin","logoStyle","additionalLogo","Du2S","DuQD","EHgq","EXaJ","SpinnerSvc_1","ProjectPageCanvasCtrl","Player","OldPlayer","canvas","firstChild","resize","player","calculate","setSize","playerSelector","parentElement","projectModalSelector","twoPlayers","minWidth","fullscreen","createPlayer","toggleFullscreen","toggle","projectWidth","innerWidth","getHeightMargin","offsetHeight","max","bodyDimension","windowWidth","windowHeight","heightMargin","widthMargin","windowHeightScaled","windowWidthScaled","displayedProjectHeight","displayedProjectWidth","old","suffix","thumbnail","img","svc","isPhantom","stopPlay","autoPlay","removeChild","hide","players","play","sizes","projectSize","newWidth","resetPlayer","EepZ","EsqY","shortTitle","Exe7","F3zo","F6N9","FD1p","UserAvatar","$attrs","avatarCode","code","charCodeAt","imgElement","setDefaultAvatar","getSizedUrl","isNumber","size","ConversionUrl","matchAvatarApi","setUrl","watchObject","watcher","watch","$destroy","avatars","FHxu","FUIZ","usernameAvailChecker","$asyncValidators","apiSvc","emailAvailChecker","elem","$validate","$validators","modelValue","$pristine","resetField","Fa/p","FdTb","AdBanner","ad","FnqE","FoMv","LandingPage","videoOptions","volume","tabChange","animationActiveClz","G1du","AdminSvcFactory","TagsSvc","BackendSvc","AdminSvc","exportActions","roles","staffPickTag","duplicating","exportProject","getServerUrl","exportUrl","doctor","doctorUrl","staffLike","show","staffPicked","saveTag","tags","errorFunction","staffDislike","tagRemoved","duplicateProject","folderId","copySuffix","folderParam","Content-Type","projectServerMapping","newName","duplicateUrl","duplicateProjectId","requestWrapper","duplicateRequest","getProjectRequest","secureGet","log","G8ZG","OAuthCallbackSvc","originProduct","makeCallback","buildOAuthUrl","endpoint","apiKey","google","social","googleApiKey","facebook","facebookApiKey","twitter","dribbbleApiKey","oauthCallback","newValue","removeEventListener","value_1","JSON","parse","doLogin","stateParams","GIoJ","GOYa","GWJA","fixedTab","offsetTop","atBottom","GgDZ","HAK0","UserChangeWatcherSvc","userTracker","token","animatronCookieName","inProgress","loggedIn","logoutAndGoRoot","updateUser","isCookieEnabled","getUser","setAnonymous","HCXh","HGeo","HN/J","Hgg4","Hh+C","HmW0","HnXD","IFnZ","IGC9","uploadProject","onchange","fd","getFormData","upload","getFileTag","file","FormData","getProjectUrl","transformRequest","identity","transformResponse","rawResponse","uploadingProject","IU0M","IXUN","PlayerSvc","removeAttr","safePause","isPlaying","pause","safePlay","findPlayer","getPlayer","should","Ir05","J0yb","J6t3","JAU9","JDnY","JE8O","JfO/","JiAo","Jqsy","Jrnx","K3aT","tagsCache","restTags","loadTags","canCreateSuper","mapTagsCache","fuzzySearch","tagAdded","canCreateSuperTags","tagsInput","tagsLibLoaded","KApX","KBdS","ViewPortSvc","centred","isOnScreen","subscribe","checker","unsubscribe","KLH/","KLLA","KV5y","KvyJ","KxLd","L2qt","LCXO","./blog.png","./business.png","./help-img-1.png","./help-img-2.png","./help-img-3.png","./help-img-3b.png","./help-img-4.png","./help-img-5.png","./help-img-6.png","./help-img-7.png","./help-img-8.png","./help-img-9.png","./social.png","LT3T","LT8D","LUYn","LaVb","Ldjh","LxjB","Lxjv","AffiliateSvc","tapId","storageName","getReferralRequest","isAffiliate","tap_a","cjevent","isTapAffiliate","detectTap","setAffiliateInfo","getAffiliateUser","affiliateInfo","getAffiliateHeader","storage","headerName","loadLib","tapfiliateLib","tap","create","detectClick","MJwn","MLEj","MT/e","StopPlaySvcFactory","handlerPlay","scrollCentredOn","StopPlaySvc","pauseCount","modalShowOff","modalCloseOff","onScreenOff","notOnScreenOff","windowOnFocusHandler","windowOnBlurHandler","windowControl","modalControl","scrollControl","deactivate","getPlayHandler","centredOn","Mzq4","Raven","$anchorScrollProvider","$qProvider","$logProvider","$sceDelegateProvider","$ocLazyLoadProvider","loadedModules","errorOnUnhandledRejections","debugEnabled","debugInfoEnabled","preAssignBindingsEnabled","commentDirectivesEnabled","cssClassDirectivesEnabled","disableAutoScrolling","resourceUrlWhitelist","useApplyAsync","onResponseError","httpConfig","waitBetweenErrors","$urlRouter","ProjectModalSvc","affiliateSvc","stateChangeSuccess","apiProd","apiTest","authSvc","projectModalSvc","pendingUserEmail","affiliateRouteEventOff","ev","sync","prerenederStatus","robots","animatronProduct","isWave","isStudio","httpStatus","noindex","urlTags","retina","productL","defaultTitleKey","defaultTitle","suffix_1","N3N4","NFSG","cookieFun","cookies","cookie","pos","hasCookies","expiresFor","stringify","String","expires","expirationUnit","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setDate","getDate","toUTCString","domain","hasCookie","NGqW","NItV","NNCM","NTYq","NZ2j","NaY7","getMainView","showErrorPage","oReq","XMLHttpRequest","responseText","send","msg","lineNumber","column","setTagsContext","build","buildNumber","originalError_1","originalConsole_1","level","logger","extra","captureException","captureMessage","Function","searchString","position","writable","persist","createScriptEl","node","requirejs","onreadystatechange","silentFail","failedId","requireModules","parentNode","Nlhm","NnQa","Nzyx","O3cu","OAh3","OSKg","toElement","duration","startTime","scrollTopDocument","elementOffset","getOffsetTop","deltaY","scrollEasing","pow","animateFrame","timestamp","progress","percent","offsetParent","OdJD","OjHm","Om8q","MoreTextCtrl","filterLinky","safeText","filterBlank","showAll","smallText","toggleShow","OmPd","Oquy","Otff","OzWi","P28g","intercom","Intercom","boot","userData","app_id","user_data","setUser","user_id","unreadCountChange","cb","P9JW","sortOrder","sortBy","withTags","withCollaborators","withBackendUrl","withDuplicatesCount","withComments","withLikes","previewWidth","ForeignProjectPermissions","addProject","currentCount","computedHeight","computeHeight","ProjectAugmenter","PAlv","PXh8","ComparisonCtrl","products","stateTab","change","tb","transitionTo","notify","PZhr","PpkO","Pv2I","AdSvc_1","LightLandingPages_1","MediumLandingPages_1","TemplateLandingPages_1","RouteUtils_1","Routes","$urlRouterProvider","$locationProvider","$urlMatcherFactoryProvider","caseInsensitive","rule","tutorialResolve","animatronTutorial","projectsModules","getLandingParams","onEnter","loginRedirect","animatronLandingNewBottom","SMMWParams","SMMWPages","html5Mode","hashPrefix","otherwise","ENCODED_QUESTIONMARK","regexp","eventPath","squash","$window","article","mariSmithTutorials","Name","salmaWebinars","utm_source","utm_medium","utm_campaign","isSMMW","SMMWPage","waveMain","waveUserPage","enableContests","animatronContest","animatronUserPage","reloadOnSearch","animatronSearchPage","tag_type","findKey","omit","AdSvc","adify","animatron","waveTutorialPage","animatronEdu","week","number","animatronCompany","animatronEditorRedirect","animatronContractors","mainLanding","checkRedirect","showModal","return_to","loginModalShown","animatronBannerBottom","animatronSpecialUpgrade","animatronExplainerBottom","baseUrl","trustAsResourceUrl","imgUrl","editorParams","animatronPrivacy","onCallback","animatronTermsServices","animatronProjectAnalytics","animatronContestLanding","animatronContestDays","animatronPublish","modal","alwaysShowFaq","wavePricing","animatronPricing","folderPath","waveMyProjects","waveLandingSMMW","animatronComparisonBottom","isSubscription","subscriptionState","animatronSubscriptionPage","cardDetails","animatronSubscriptionSvc","subscriptionSvc","readyLoadedData","cardDetailsCashed","cardDetailsErrorMessage","getCardDetails","defaultState","animatronRecovery","animatronRecoveryReset","animatronSettings","animatronProject","animatronActivate","animatronSignup","toCamelCase","landingGenerator","kind","resolveParams","landing","footerWrapper","hideHeader","landingWrapper","animatronLandingTemplate","animatronMediumLanding","Q9ed","LandingTemplateSvc","randomize","Landing Page","Test Variant","QAC1","QHsv","QI9i","./female/1.png","./female/1.svg","./female/10.png","./female/10.svg","./female/11.png","./female/11.svg","./female/12.png","./female/12.svg","./female/13.png","./female/13.svg","./female/14.png","./female/14.svg","./female/15.png","./female/15.svg","./female/16.png","./female/16.svg","./female/17.png","./female/17.svg","./female/18.png","./female/18.svg","./female/19.png","./female/19.svg","./female/2.png","./female/2.svg","./female/20.png","./female/20.svg","./female/21.png","./female/21.svg","./female/3.png","./female/3.svg","./female/4.png","./female/4.svg","./female/5.png","./female/5.svg","./female/6.png","./female/6.svg","./female/7.png","./female/7.svg","./female/8.png","./female/8.svg","./female/9.png","./female/9.svg","./male/1.png","./male/1.svg","./male/10.png","./male/10.svg","./male/11.png","./male/11.svg","./male/12.png","./male/12.svg","./male/13.png","./male/13.svg","./male/2.png","./male/2.svg","./male/3.png","./male/3.svg","./male/4.png","./male/4.svg","./male/5.png","./male/5.svg","./male/6.png","./male/6.svg","./male/7.png","./male/7.svg","./male/8.png","./male/8.svg","./male/9.png","./male/9.svg","QQt/","QqRC","R0iF","calcTime","floor","hrs","mins","secs","ret","toHyphenCase","letter","letterLowerCase","useCapture","getBrowserName","browsers","findIndex","browser","oneTimeEvent","oneTime","currentProduct","isProduct","isUser","shouldReplace","paramsStr","newLoc","safe","waitFor","check","getMonthDaysCount","getFullYear","getMonth","curry","classes","child","isSecureUser","encryptedToken","userProfile","sequence","array","acc","obj","matchesSelector","selector","ElementPrototype","Element","matches","webkitMatchesSelector","msMatchesSelector","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","currTime","timeToCall","mixin","R8gk","R8wy","RDpK","h1","h2","editor","descriptionTitle","linkName","RIrZ","FooterCtrl","isLangMenuHide","affUrl","socials","followStates","innerHeight","RJzm","prevState","prevParams","projectModalShown","modalHide","isEqual","changeUrl","onModalClose","history","back","modalShow","toggleProjectModal","stopPropagation","Rium","Rpkd","RySD","S6Z6","SDKh","SFnc","isSupported","supported","localStorage","setItem","getItem","removeItem","onError","safeOperation","unsafeFunc","SHV6","SW67","SXt6","Sct3","News","NewsSvc","delayShowNews","newsList","setCurrentNews","stopRepeatNews","currentNewsItem","currentIndex","deleteNews","Skyp","Sm4n","SzCq","T1Il","shareSocialSvc","networks","google+","tumblr","ShareSocialButton","ShareSocialWindow","absUrl","author","showOnPause","anm","C","S_PAUSE","repeats","S_COMPLETE","repeat","repeating","anim","S_PLAY","network","T2uR","T3B4","ModalVideoComponent","onModalShown","modalShown","canModalShow","youtubeUrl","wistiaUrl","isModalShown","shown","playerWidth","playerHeight","controlsEnabled","previewUrl","hideBorder","TBjL","TToO","__webpack_exports__","__","constructor","extendStatics","__rest","getOwnPropertySymbols","__decorate","decorators","desc","getOwnPropertyDescriptor","Reflect","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","rejected","done","__generator","verb","op","TypeError","y","label","ops","trys","g","sent","throw","return","Symbol","iterator","__exportStar","__values","__read","ar","__spread","__await","__asyncGenerator","q","resume","settle","fulfill","asyncIterator","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","setPrototypeOf","__proto__","TnCe","U56v","./en.json","./es.json","./ko.json","./ru.json","UAPN","UTMY","UVgn","UYjX","Us82","THROTTLE_MILLISECONDS","infiniteScroll","infiniteScrollContainer","infiniteScrollDistance","infiniteScrollDisabled","infiniteScrollUseDocumentBottom","changeContainer","checkWhenEnabled","handleInfiniteScrollContainer","handleInfiniteScrollDisabled","handleInfiniteScrollDistance","handleInfiniteScrollUseDocumentBottom","handler","immediateCheck","scrollDistance","scrollEnabled","increment","useDocumentBottom","originalHandler","containerBottom","elementBottom","remaining","containerHeight","$$phase","off","newContainer","infiniteScrollParent","infiniteScrollImmediateCheck","V16h","./1.svg","./10.svg","./11.svg","./12.svg","./13.svg","./2.svg","./3.svg","./4.svg","./5.svg","./6.svg","./7.svg","./8.svg","./9.svg","V3H0","V5IG","Vc67","WHLm","WgFx","Wmao","X7JN","ObjectId_1","enabled","ProjectInfoHeight","banners","chooseBanners","currentIdx","videoUrls","wrapProject","newRes","insertBanner","getWidth","getBanner","projects","banner","ObjectId","splice","mobileWidth","SignupBanners","UpgradeBanners","XKv6","XMqc","XaSg","httpProjectSvc","animatronProjectPreviewPicker","animatronUpgrade","animatronHtml5Offline","projectDeferred","editTagsMode","projectExist","staffUrl","staff","staffButtons","isProduction","tagPattern","handleProject","projectLoaded","errorMsg","canEditTags","isOwner","tagsSvc","projectSizes","uniq","adminSvc","projId","foundProject","showAddTagsBtn","toggleEditMode","updateRequest","field","newVal","serverUrl","u","setupFieldWatch","sanitized","projSelector","nameSelector","restore","Xo4n","XrJM","LightLanding","Xy+x","Y8iI","SearchText","hideClassName","searchText","isFirstChange","toLocaleLowerCase","searchElement","isElements","hideEl","innerText","matched","isHide","YAt/","YeFr","modalDialogDirective_1","AffiliatePopup","discount","signupUrl","canShow","delayHandlerScroll","showPopups","to","closeBigPopup","bigModalShown","affModalShow","closeBottomPopup","affModalBottomShow","handlerScroll","scrollHeight","isBottom","removeHtmlClass","debounce","Z9aV","ZSj8","ZawD","Zkh2","Zou0","hasTag","foreignRead","read","accountTypes","STUDIO","likes","collaborators","isCollaborator","editorReadAccess","hallOfFame","contest","Zx9N","a+yw","LandingPages_1","RelatedPagesSwipable","pagesList","flicktyPromise","flickityLib","Flickity","cellSelector","prevNextButtons","wrapAround","cellAlign","adaptiveHeight","setGallerySize","pageDots","getImageUrl","a8RW","isScroll","outside","dialogTitle","onClose","onClickOutside","modalUrl","additionalClasses","disableClickOutside","togglePlayers","modalOpened","instances","_pauseBecauseOfModal","modalEl","directiveScope","$new","modalTemplate","firstElementChild","appendModal","close","animationClose","stateChangeSuccessOff","closeButton","animatedEl","onceExecuted","includeLoaded","hideModal","isInput_1","activeElement","getAttribute","tagName","which","oldVal","compiled","a8i3","aLLS","toggleClass","handlerClickOutside","handlerClickOnElement","plainClick","$templateRequest","staticInclude","contents","initScope","exp","intervalId","ngModel","textTransform","$formatters","unwatch","lazyIf","onShown","btnName","enable","queryParam","unFocusMe","modelChange","typer","changeText","letters","longText","longTextCb","aOC8","commonLinks_1","Header","links","aRaM","aTCW","aY29","acIy","aiHC","akEf","anIN","awAO","intercom_1","USER_LOGOUT","USER_UPDATE_SUCCESS","signupRedirectPropName","loginRedirectMessage","signupModalShown","lastUpdated","closeModals","setUserGlobals","WAVE","isStripe","hasStripeSubscription","hasStripeUser","stripeKey","zoneCode","stripePubKeyKr","stripePubKey","Animatron-Security-Token","onUserChanged","setSubscription","setUserContext","subscription","notifyUserChange","userCookieIsPresent","cachedUser","clearCookies","secureUser","loginType","thirdPartyRedirect","shouldRedirect","redirectAfterLogin","loginWithCookie","loginOAuth","authToken","oauthService","productUpper","@class","removeAll","openSignUpPage","activateEmailRedirect","openLogin","noRedirect","b+CF","b/cW","b1d7","ContentEditable","$setViewValue","$render","execCommand","clipboardData","getData","$evalAsync","b6Iv","bPu8","bUzP","getCss","queryParams","compact","version","pVer","host","min","dev","salt","pSalt","pMin","pDev","pUrl","SimpleMDEUrl","jqueryPaymentLib","twitterWidgetLib","fbSDKlib","linkedinLib","googleLib","angularMessages","lib","datePicker","animatronDragDropSvc","animatronDropZone","animatronDragItem","animatronSubscriptionCouponMessagesSvc","animatronSubscriptionMessagesSvc","animatronSubscriptionMessages","animatronSubscriptionPredictPrice","animatronSubscriptionTotalPrice","animatronSubscriptionCreditInfo","animatronSubscriptionAlert","animatronSubscriptionBillingInfoForm","animatronSubscriptionCurrentPlan","animatronSubscriptionInvoiceHistoryTable","animatronSubscriptionTitle","animatronSubscriptionPaymentDetailsEnterCard","animatronSubscriptionPaymentDetailsWithCard","animatronSubscriptionRouterModalsContainer","animatronSubscriptionCurrentPlanContainer","animatronSubscriptionPaymentDetailsContainer","animatronSubscriptionInvoiceHistoryContainer","animatronVideoFolderMasonrySvc","animatronVideoFolderMasonryItem","animatronVideoFolderMasonry","animatronVideoFolderItem","animatronVideoFolderBottom","animatronVideoFolderName","animatronVideoFolderControls","animatronVideoFolderCreateNew","animatronVideoFolderMoveModalSvc","animatronVideoFolderMoveModal","animatronVideoFolderTreeItem","animatronVideoFolderBreadcrumb","animatronTitleBlock","animatronRelationList","animatronButtonStart","animatronBackground","animatronIconTextList","animatronContestLandingSvc","animatronChallengesList","wistiaPlayer","animatronContestGoChallengeButton","animatronJudgeItem","animatronCountdown","animatronPreRegister","animatronSpreadInSocial","animatronTwitterShareButton","animatronFacebookShareButton","animatronLinkedinShareButton","animatronGoogleShareButton","animatronSponsorContactUs","animatronTitleShadowBlock","animatronParticipateSteps","animatronVideoImproveSteps","animatronWinPrizesList","animatronWinPrizesSection","animatronCountdownSection","animatronContestDaysTopSection","animatronContactUsSection","animatronPreRegisterSection","animatronMediaSponsorsSection","animatronChallengesListSection","animatronContestTextVideoSection","animatronVideoImproveStepsSection","animatronDifferentDevices","animatronTemplatePagesListItem","animatronTemplatePagesList","animatronSectionTemplatePagesList","animatronSectionBackgroundText","animatronSectionBitmap","animatronSectionFeedback","animatronFeedback","animatronSectionHorizontalTextVideo","animatronSectionHorizontalImageText","animatronTextBlock","animatronSectionVerticalTextVideo","animatronSectionDifferentDevices","animatronSectionCompanyInfo","animatronSectionVideoStatistics","animatronDoubleCircleProgress","animatronSectionCompanyQuote","animatronSectionTextAside","animatronSectionSignUp","animatronSignUpBlock","animatronSectionLogoVideoSignUp","animatronSectionVideoSignUp","scrollButton","animatronSectionVideoTime","animatronSectionVideoGallery","animatronVideoGallery","animatronSectionVideoSteps","videoSteps","userInfoForm","bgVideoSlider","bgVideo","modalVideoPlayer","videoPlayer","scrollFixedElement","waveProjects","ytPlayer","ticker","animatronRandomNumber","animatronCanvas","animatronExplainerGallery","introduceVideo","animatronTwitterFollowButton","waveSectionHowWork","waveProject","waveTutorialWorkshops","waveTutorialsItem","waveTutorialsList","waveTemplate","animatronThumbnailPicker","bXOc","getToken","access_token","homeUrl","secret","secret_token","endsWith","opener","arr","brzu","c5FE","cZf6","cmQJ","cq6s","d1XY","dLJ7","dQ5J","dwQs","LikeCtrl","MyFollowings","changes","followersSvc","liked_at","http","changeLike","isLiker","unlike","like","dy9G","dz0q","e3be","eCEw","eDeh","eE93","getCommonLinks","pricing","instagram","youtube","github","eWSb","eXN9","egLR","ekLA","f+kA","f37r","f3NB","isSpecialError","exception","isError","blackList","cause","f86U","fAML","fSNa","fUJ1","fUhQ","fbuv","fxc3","titleCase","txt","UsernameRegex","sameUser","Tags","CommentTags","g108","ghOg","LoginCtrl","password","requiredFields","redirectMsg","isRedirectMsgVisible","invalidLogin","unknownError","loginSubmit","correctForm","openSignUp","every","gkLk","gsWG","h+vD","hACO","hB9q","hQA3","hVBH","hYS4","hflI","hfrq","hqAA","hqwK","i57k","WistiaSvc","baseParams","api_password","wistiaApiKey","getWistiaPlayer","Wistia","waitForPlayer_1","ready","_wq","videoFoam","onReady","getMedia","iKnz","AutoplayVideo","withRetina","iOS","videoStart","stop","withWebm","iLwr","ifp+","isPM","j+wj","j1Q3","j8J/","jPQQ","jYQ6","jmbb","juL4","jwTf","k4sW","kfHS","kglB","kmnB","kvRk","kvam","l0GU","l8ep","lGv7","lSTx","lcdN","delayUpdateNews","deferRun","deferRunTimer","httpNews","isEqualUsers","copyUser","auth","currentUser","getNews","getTimezoneOffset","getWhiteList","stopUpdateNews","NewsList","deletedNewsList","newsItem","addDeletedItemId","deleteId","findWhere","without","ldoD","lu/X","luA4","lvE2","lwEL","mADV","previews","picked","mIzu","mQW2","mWZi","mYqq","gwtPlayer","isGwt","fps","playerPromise","invalidate","detach","release","Cache","getProjectId","getProjectBackendUrl","getProjectBackend","memoize","cdnContentUrl","cdnVersion","needsRepublish","isCdnUrl","anmPromise","isPaused","isStopped","decoratePlayer","animatronImporter","importers","getAnm","resetPlayerById","canvasId","values","getJson","forceAnonymous","jsonUrl","needAuth","httpOpts","filteredUrl","divId","callback2","jsonObj","loadPlayer","handleEvents","infiniteDuration","wrappedCallback","setDebug","checkAspectRatio","dimension","gwt","originalWidth","originalHeight","originalAspectRatio","newAspectRatio","toFixed","happens","constants","STOPPED","PLAYING","PAUSED","_resize","mqJy","contestType","TabParams","most-plays","minViews","minVersion","DefMinVersion","staff-picks","contest-submissions","recently-added","my-projects","tabsConfig","trackerFunction","unbind","confirmationSent","isStaffPicks","getNewProjectService","ownProjects","tabParams","cdnUrlCondition","CdnUrl","n4af","nAeZ","nCcs","nKgT","nNID","nSa/","o4OY","oJMd","odw/","oeUM","showVisibility","oeVo","UserPopup","userCache","fetchAndCacheInfo","hideTimer","pickPosition","showTimer","topLeft","pageX","PopupWidth","topRight","pageY","PopupHeight","disableBottom","usr","projectsCount","avatarOnly","ogFo","isFolder","folder","slug","FOLDER_DATA_CHANGED","TREE_ITEM_SELECTED","FOLDER_TREE_DATA_CHANGED","VideoFolderSvc","baseRequestParams","httpCache","newFolder","emitDataChanged","emitTreeItemSelected","emitTreeDataChanged","isChild","getTreeById","sortByCreatedDate","folders","created","isNewFolder","setNewCreatedFolder","clearNewCreatedFolder","createParams","getParams","onFolderUpdate","makeRequest","getByPath","getRoot","getFolderTree","rootFolder","moveProject","moveParams","withSpinner","moveFolder","deleteFolder","deleteParams","renameFolder","renameFolderParams","findInTree","parentFolder","childFolder","getTreeByPath","slugs","currentSlug","removeFolderFromTree","folderTree","excludeFolder","parentId","requestErrorHandler","omcN","ovcP","p5KT","formatUrl","pLX0","pPBV","SpinnerSvc","pVk+","pbA1","q3WU","ngSubmit","qffX","rJ0m","rNCV","rU96","rd/d","rkOV","rrSb","sCFP","sJU7","appearAnimation","shouldDisponse","initialName_1","dispose_1","toRemove","sM/Y","sNLF","svkI","t/nL","tOiF","jq","$","noConflict","payment","validateCardNumber","validateCardCvc","cvc","validateCardCVC","restrictNumeric","formatCardCvc","formatCardExpiry","formatCardNumber","validateCardExpiry","tV+N","tWLz","tjWj","tp6s","u8E4","uaFb","udNi","SearchCtrl","solr","myProjects","startSearch","onStart","ukZe","v+R/","v+uJ","v/Ys","v09R","v1FL","CommonLink","getByUrl","getByName","vcaf","AnimatronNotification","showMessage","hideInstantly","_timeout","dismiss_btn","vhpm","vjsU","vlSI","vuk9","vzSK","w2og","w9R6","PressSwipable","initFlickty","PressSwipableTwitter","twitterPromise","children","childElementCount","rendered","twttr","wCd9","wFE4","emmiter","ScrollObserver","IntersectionObserver","Observer","onInit","whenOnScreen","whenNotOnScreen","observables","staticWindowHeight","bottom","topVisible","botVisible","onScreen","windowPlace","wasOnScreen","wasOutOfScreen","IntersctObserver","observer","intersectionRatio","observe","unobserve","HTMLElement","oldGetBoundingClientRect","left","right","wJnc","wTNS","wWYA","wX/j","we/J","whPB","wmF7","wpGM","wuZI","wwNa","wz+r","cookieSettings","x+OW","x0FM","x7Q4","xD0M","xNor","ProjectAccessCtrl","access","PUBLIC","PRIVATE","UNLISTED","userRolez","isAdmin","canOnlyRead","isShowAccess","canChangePermissions","ProjectPermissions","canWrite","countPrivateUnlistedProjects","countProjectCreated","privateProjects","unlistedProjects","changeVisibility","accessType","changeAccess","data_1","writeAccess","readAccess","oldVisibility_1","openSubscription","xU9L","xXoS","xlID","xpHJ","y+GP","yCid","yEiy","yQlI","yRMd","yiF7","z7A8","zH1h","zJEW","zdW0","zpKr","zwf9","./404-page.less","./_checkbox-tab.less","./_checkbox.less","./_fonts.less","./_lang.less","./_mixins.less","./_slider.less","./activate.less","./aff-modal.less","./analytics.less","./animations.less","./ask-popup.less","./auth.less","./bg-video.less","./buttons.less","./comments.less","./company.less","./contest-landing/challenges-list-section.less","./contest-landing/challenges-list.less","./contest-landing/contact-us-section.less","./contest-landing/contest-days-top-section.less","./contest-landing/contest-days.less","./contest-landing/contest-landing.less","./contest-landing/contest-text-video-section.less","./contest-landing/countdown-section.less","./contest-landing/countdown.less","./contest-landing/judge-item.less","./contest-landing/media-sponsors-section.less","./contest-landing/participate-steps.less","./contest-landing/pre-register-section.less","./contest-landing/pre-register.less","./contest-landing/sponsor-contact-us.less","./contest-landing/spread-in.less","./contest-landing/title-shadow-block.less","./contest-landing/video-improve-steps-section.less","./contest-landing/video-improve-steps.less","./contest-landing/win-prizes-list.less","./contest-landing/win-prizes-section.less","./contest/contest.less","./contractors.less","./delete-account.less","./discount-dialog.less","./drag-drop/drag-item.less","./dropdown-menu.less","./editor-redirect.less","./edu.less","./f_bsh-button.less","./feedback-slider.less","./fonts/font-ko.less","./fonts/fonts-basic.less","./footer.less","./global.less","./go-share-button.less","./header.less","./landing-template/components/background.less","./landing-template/components/different-devices.less","./landing-template/components/double-circle-progress.less","./landing-template/components/icon-text-list.less","./landing-template/components/relation-list.less","./landing-template/components/sections/section-background-text.less","./landing-template/components/sections/section-bitmap.less","./landing-template/components/sections/section-company-info.less","./landing-template/components/sections/section-company-quote.less","./landing-template/components/sections/section-different-devices.less","./landing-template/components/sections/section-feedback.less","./landing-template/components/sections/section-horizontal-image-text.less","./landing-template/components/sections/section-horizontal-text-video.less","./landing-template/components/sections/section-logo-video-sign-up.less","./landing-template/components/sections/section-sign-up.less","./landing-template/components/sections/section-template-pages-list.less","./landing-template/components/sections/section-text-aside.less","./landing-template/components/sections/section-vertical-text-video.less","./landing-template/components/sections/section-video-gallery.less","./landing-template/components/sections/section-video-sign-up.less","./landing-template/components/sections/section-video-statistics.less","./landing-template/components/sections/section-video-steps.less","./landing-template/components/sections/section-video-time.less","./landing-template/components/template-pages-list-item.less","./landing-template/components/template-pages-list.less","./landing-template/components/text-block.less","./landing-template/components/title-block.less","./landing-template/landing-template.less","./landing-video-preview.less","./landing/any-landing.less","./landing/banner-bottom.less","./landing/both-landings-common.less","./landing/comparison.less","./landing/landing-new-bottom.less","./landing/landing-new.less","./landing/landing-top-common.less","./landing/light-landing.less","./landing/masonry-wrapper.less","./landing/medium-landing.less","./landing/political-landing.less","./landing/video-gallery.less","./le-share-button.less","./library.less","./login-modal.less","./logo.less","./main.less","./mobile/m-any-landing.less","./mobile/m-company.less","./mobile/m-header.less","./mobile/m-landing-banner.less","./mobile/m-landing-bottom.less","./mobile/m-landing-common.less","./mobile/m-landing-comparison.less","./mobile/m-medium-landing.less","./mobile/m-search-page.less","./mobile/mobile.less","./mobile/wave/m-wave-landing-smmw.less","./mobile/wave/m-wave-landing.less","./mobile/wave/m-wave-pricing.less","./mobile/wave/m-wave-typography.less","./mobile/wave/m-webinar.less","./modal-video-player.less","./modal.less","./newsWebsite.less","./ng-tags-input.less","./notifications.less","./open-editor.less","./pagination.less","./popup.less","./pricing.less","./project-upgrade.less","./projects.less","./publish.less","./scroll-button.less","./search-page.less","./search.less","./settings.less","./settings/address.less","./settings/info-app-sumo.less","./settings/random-fact.less","./settings/subscription/containers/subscription-current-plan-container.less","./settings/subscription/containers/subscription-invoice-history-container.less","./settings/subscription/containers/subscription-payment-details-container.less","./settings/subscription/containers/subscription-router-modals-container.less","./settings/subscription/messages/subscription-messages.less","./settings/subscription/payment-details/subscription-payment-details-enter-card.less","./settings/subscription/payment-details/subscription-payment-details-with-card.less","./settings/subscription/subscription-alert.less","./settings/subscription/subscription-billing-info-form.less","./settings/subscription/subscription-credit-info.less","./settings/subscription/subscription-current-plan.less","./settings/subscription/subscription-invoice-history-table.less","./settings/subscription/subscription-page.less","./settings/subscription/subscription-title.less","./settings/subscription/subscription-total-price.less","./sign-up-block.less","./signup.less","./special-upgrade.less","./spinners.less","./studio-responsiveness.less","./subscription.less","./tabs.less","./thumbnail-picker.less","./tutorial.less","./user-info-form.less","./user-popup.less","./user-section.less","./video-player.less","./video-slider.less","./video-steps.less","./wave/_typography.less","./wave/folder/masonry/video-folder-masonry.less","./wave/folder/video-folder-bottom.less","./wave/folder/video-folder-breadcrumb.less","./wave/folder/video-folder-item.less","./wave/folder/video-folder-move-modal.less","./wave/folder/video-folder-tree-item.less","./wave/tutorial/wave-tutorial-page.less","./wave/tutorial/wave-tutorial-workshops.less","./wave/tutorial/wave-tutorials-item.less","./wave/tutorial/wave-tutorials-list.less","./wave/wave-landing-smmw.less","./wave/wave-landing.less","./wave/wave-my-projects.less","./wave/wave-pricing.less","./wave/wave-project-item.less","./wave/wave-projects.less","./wave/wave-section-how-work.less","./wave/wave-template-item.less","./wave/wave-trail.less","./wave/wave-user-page.less","./wave/wave-webinar.less","./wistia-player.less","zyTD"],"mappings":"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","file":"javascripts/main-257c10c0995a4d25fa59.min.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t151: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"javascripts/\" + ({}[chunkId]||chunkId) + \"-\" + \"257c10c0995a4d25fa59\" + \".min.js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"https://assets.animatron.com/\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"NaY7\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"+G96\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-improve-steps_434e922beb0d0c4958c42c135b8cd366.css\";\n\n/***/ }),\n\n/***/ \"+K6/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/special-upgrade_14bc07aaeeff819141fcc3c46f7bd009.css\";\n\n/***/ }),\n\n/***/ \"+goU\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/comments_617675bfb2cd10445614323cb480cfa3.css\";\n\n/***/ }),\n\n/***/ \"+hc0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar TabsCtrl = (function () {\r\n /*@ngInject*/\r\n TabsCtrl.$inject = [\"$rootScope\", \"$scope\", \"$location\", \"$state\", \"$timeout\", \"$element\", \"$q\"];\r\n function TabsCtrl($rootScope, $scope, $location, $state, $timeout, $element, $q) {\r\n var _this = this;\r\n this.$rootScope = $rootScope;\r\n this.$scope = $scope;\r\n this.$location = $location;\r\n this.$state = $state;\r\n this.$timeout = $timeout;\r\n this.$element = $element;\r\n this.$q = $q;\r\n if (_.isUndefined(this.firstRun))\r\n this.firstRun = true;\r\n if (_.isUndefined(this.isMobileMode))\r\n this.isMobileMode = true;\r\n this.path = this.$state.current.name;\r\n this.configureTabs();\r\n if (!this.defaultTab && this.tabs && this.tabs.length > 0) {\r\n this.defaultTab = this.tabs[0];\r\n }\r\n this.changeTab = this.changeTab || angular.noop;\r\n this.reloadOnChange = this.reloadOnChange || false;\r\n if (this.firstRun) {\r\n this.defaultTab && this.onTabChange(this.defaultTab);\r\n }\r\n else {\r\n this.currentTab = this.defaultTab;\r\n }\r\n if (!this.disableBorder) {\r\n underscore_extensions_1.Utils.scopedEvent('resize', this.$scope, _.throttle(function () { return _this.setCss(true); }, 500));\r\n }\r\n var destroy = $rootScope.$on('user:login', this.configureTabs.bind(this));\r\n $scope.$on('$destroy', function () { return destroy(); });\r\n }\r\n TabsCtrl.prototype.$onChanges = function (onChangesObj) {\r\n this.setCss(true);\r\n };\r\n TabsCtrl.prototype.activateTab = function (tab) {\r\n this.onTabChange(tab);\r\n };\r\n TabsCtrl.prototype.isActive = function (tab) {\r\n return tab === this.currentTab;\r\n };\r\n TabsCtrl.prototype.getTabsProperties = function (cached) {\r\n if (cached === void 0) { cached = true; }\r\n return cached && this.tabsProperties || this.computeTabsProperties();\r\n };\r\n TabsCtrl.prototype.getCurrent = function (cached) {\r\n var _this = this;\r\n if (cached === void 0) { cached = true; }\r\n return this.getTabsProperties(cached)\r\n .then(function (w) { return w[_this.tabs.indexOf(_this.currentTab)]; });\r\n };\r\n TabsCtrl.prototype.computeTabsProperties = function () {\r\n var _this = this;\r\n this.tabsProperties = this.$q(function (resolve) { return _this.$timeout(function () {\r\n resolve(_.map(_this.$element[0].querySelectorAll(\".tab\"), function (s) { return ({ width: s.offsetWidth, x: s.offsetLeft }); }));\r\n }); });\r\n return this.tabsProperties;\r\n };\r\n TabsCtrl.prototype.setCss = function (force) {\r\n var _this = this;\r\n if (force === void 0) { force = false; }\r\n this.cssSet = true;\r\n this.getCurrent(!force).then(function (tabProps) {\r\n if (!tabProps)\r\n return; //if tab is hidden\r\n var hr = _this.$element[0].querySelector(\".hr\");\r\n if (!hr)\r\n return;\r\n var marginProp = \"translateX(\" + tabProps.x + \"px)\";\r\n ['mozTransform', 'webkitTransform', 'transform'].map(function (prop) { return hr.style[prop] = marginProp; });\r\n hr.style.width = tabProps.width + 'px';\r\n if (!_this.transitionSet && !_this.reloadOnChange) {\r\n _this.transitionSet = true;\r\n _this.$timeout(function () { return underscore_extensions_1.Utils.rAF(function () {\r\n return hr.style.transition = 'transform .3s, width .3s ease-in-out';\r\n }); });\r\n }\r\n });\r\n };\r\n TabsCtrl.prototype.onTabChange = function (currentTab) {\r\n if (_.contains(this.tabs, currentTab) && (!this.isActive(currentTab) || !this.cssSet)) {\r\n this.enableAnimation = !!this.currentTab;\r\n this.currentTab = currentTab;\r\n this.changeTab({ currentTab: currentTab });\r\n if (!this.disableBorder) {\r\n this.setCss();\r\n }\r\n }\r\n };\r\n TabsCtrl.prototype.configureTabs = function () {\r\n var _this = this;\r\n if (this.config && this.tabs) {\r\n this.tabs = this.tabs.filter(function (t) { return _this.config[t] !== true; });\r\n }\r\n };\r\n return TabsCtrl;\r\n}());\r\nvar TabsSubPathCtrl = (function (_super) {\r\n TabsSubPathCtrl.$inject = [\"$rootScope\", \"$scope\", \"$location\", \"$state\", \"$timeout\", \"$element\", \"$q\"];\r\n tslib_1.__extends(TabsSubPathCtrl, _super);\r\n /*@ngInject*/\r\n function TabsSubPathCtrl($rootScope, $scope, $location, $state, $timeout, $element, $q) {\r\n var _this = _super.call(this, $rootScope, $scope, $location, $state, $timeout, $element, $q) || this;\r\n _this.$rootScope = $rootScope;\r\n _this.$scope = $scope;\r\n _this.$location = $location;\r\n _this.$state = $state;\r\n _this.$timeout = $timeout;\r\n _this.$element = $element;\r\n _this.$q = $q;\r\n _this.parent = $state.$current.parent.self.name || $state.current.name;\r\n var childStates = $state.get().map(function (s) { return s.name; }).filter(function (s) { return s.startsWith(_this.parent) && s.indexOf('.') > 0; });\r\n _this.tabs = childStates.map(function (s) { return _this.stripParent(s); });\r\n _this.configureTabs();\r\n _this.defaultTab = _this.defaultTab || _this.tabs[0];\r\n var hash = $location.hash();\r\n if (_.contains(_this.tabs, hash)) {\r\n $location.path(_this.addParent(hash, '/'));\r\n $location.hash('').replace();\r\n }\r\n else if (!_.contains(_this.tabs, _this.stripParent($state.current.name))) {\r\n $state.go(_this.addParent(_this.defaultTab), $state.params);\r\n }\r\n _this.$scope.$watch(function () { return _this.stripParent($state.current.name); }, _this.onTabChange.bind(_this));\r\n return _this;\r\n }\r\n TabsSubPathCtrl.prototype.$postLink = function () {\r\n var _this = this;\r\n this.$timeout(function () {\r\n _.each(_this.$element[0].querySelectorAll('a'), function (el) {\r\n el.href = _this.$state.href(_this.addParent(el.id), _this.$state.params);\r\n });\r\n });\r\n };\r\n TabsSubPathCtrl.prototype.activateTab = function (tab) {\r\n this.$state.go(this.addParent(tab), this.$state.params, { reload: this.reloadOnChange });\r\n };\r\n TabsSubPathCtrl.prototype.onTabChange = function (currentTab) {\r\n if (this.parent && this.tabs.indexOf(this.stripParent(this.$state.current.name)) !== -1) {\r\n this.$rootScope.setTitle(this.$state.current.name + '.title');\r\n _super.prototype.onTabChange.call(this, currentTab);\r\n }\r\n };\r\n TabsSubPathCtrl.prototype.stripParent = function (tab) {\r\n return tab.substring(this.parent.length + 1, tab.length);\r\n };\r\n TabsSubPathCtrl.prototype.addParent = function (tab, separator) {\r\n if (separator === void 0) { separator = '.'; }\r\n return this.parent + separator + tab;\r\n };\r\n return TabsSubPathCtrl;\r\n}(TabsCtrl));\r\nvar directivesMap = { 'tabs': TabsCtrl, 'tabsSubPath': TabsSubPathCtrl };\r\nObject.keys(directivesMap).forEach(function (name) {\r\n module_1.default.component(name, {\r\n controller: directivesMap[name],\r\n controllerAs: 'Tabs',\r\n bindings: {\r\n changeTab: '&',\r\n defaultTab: '@',\r\n tabs: '=?',\r\n reloadOnChange: '=?',\r\n currentTab: '=?',\r\n disableBorder: '=?',\r\n firstRun: '=?',\r\n config: ' this.MaxLength)\r\n return;\r\n this.updating = true;\r\n this.HttpSvc('comments', comment.comment_id).securePut(newText)\r\n .finally(function () { return _this.updating = false; });\r\n comment.text = newText;\r\n comment.edit = false;\r\n };\r\n CommentsCtrl.prototype.post = function (post) {\r\n var _this = this;\r\n if (this.sending)\r\n return;\r\n this.sending = true;\r\n post.text = this.$filter('stripTags')(post.text);\r\n this.Form.$setValidity('flood', true);\r\n this.Form.$setValidity('empty', post.text.length > 0);\r\n this.Form.$setValidity('maxlength', post.text.length <= this.MaxLength);\r\n this.$timeout(function () {\r\n if (_this.Form.$valid) {\r\n _this.HttpSvc('comments')\r\n .securePost({ projectId: _this.project.id, text: post.text })\r\n .then(function (r) { return r.data; }).then(function (response) {\r\n if (underscore_extensions_1.Utils.isApiError(response)) {\r\n _this.Form.$setValidity('flood', response.errorMessage !== 'Too many comments');\r\n console.error(\"Cannot add comment\", response);\r\n }\r\n else if (+response !== 0 && !_.isNaN(+response)) {\r\n _this.project.comments.push({ comment_id: response, user: options.user, text: post.text });\r\n post.text = '';\r\n }\r\n })\r\n .finally(function () { return _this.sending = false; });\r\n }\r\n else {\r\n _this.sending = false;\r\n }\r\n });\r\n };\r\n CommentsCtrl.prototype.delete = function (id) {\r\n var _this = this;\r\n this.deleting = true;\r\n this.HttpSvc('comments', id).secureDelete().then(function () {\r\n return _this.project.comments = _this.project.comments.filter(function (c) { return c.comment_id !== id; });\r\n }).finally(function () { return _this.deleting = false; });\r\n };\r\n CommentsCtrl.prototype.canDelete = function (comment) {\r\n return options.user.rolez.Admin ||\r\n this.myComment(comment) ||\r\n this.project.owner.username === options.user.username;\r\n };\r\n CommentsCtrl.prototype.canEdit = function (comment) {\r\n return this.myComment(comment) && this.isMyLast(comment);\r\n };\r\n CommentsCtrl.prototype.enterEditMode = function (comment) {\r\n this.project.comments.map(function (c) { return c.edit = false; });\r\n comment.edit = true;\r\n };\r\n CommentsCtrl.prototype.isMyLast = function (comment) {\r\n var _this = this;\r\n var last = _.last(this.project.comments.filter(function (c) { return !c.deleted && !_this.myComment(c); }));\r\n return (last && last.comment_id || 0) < comment.comment_id;\r\n };\r\n CommentsCtrl.prototype.myComment = function (comment) {\r\n return comment.user.username === options.user.username;\r\n };\r\n return CommentsCtrl;\r\n}());\r\nmodule_1.default.component('comments', {\r\n controller: CommentsCtrl,\r\n require: { ProjectPageCtrl: '^projectPage' },\r\n templateUrl: __webpack_require__(\"wTNS\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"/r0m\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-landing-smmw_6ee5865eaccee2d6de583046c5c1f7b7.css\";\n\n/***/ }),\n\n/***/ \"03GZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/participate-steps_61bcf94abd74e1acd6ab43b8f35d3600.css\";\n\n/***/ }),\n\n/***/ \"07M5\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/thumbnail-picker_516cd78a8c3e7fccbc3eb4d9fb57c06e.css\";\n\n/***/ }),\n\n/***/ \"0MDI\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = 'https://assets.animatron.com/html/user-page.html';\nvar html = \"
{{::$root.t('search.' + (sameUser ? 'your' : 'user') + '.projects')}}
{{::$root.t('project.you.empty')}} {{::animatron.projectsAuthor.displayName.split(' ')[0]}} {{::$root.t('projects.user.empty')}}
{{::$root.t('projects.create')}}
{{::$root.t('projects.user.notfound')}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"0eTi\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/19.png\";\n\n/***/ }),\n\n/***/ \"0nYI\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/mobile_33ce5d0a3252748875cb0ddcfa6058c8.css\";\n\n/***/ }),\n\n/***/ \"0ts5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nHttpSvcFactory.$inject = [\"$http\"];\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar HttpSvc = (function () {\r\n function HttpSvc($http) {\r\n var path = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n path[_i - 1] = arguments[_i];\r\n }\r\n this.$http = $http;\r\n this.headers = {};\r\n this.methods = ['get', 'post', 'put', 'delete'];\r\n this.methodsWithData = ['post', 'put'];\r\n this.path = path.join('/');\r\n this.url = options.apiDomain + '/' + this.path;\r\n this.createRegularMethods();\r\n this.createSecureMethods();\r\n }\r\n HttpSvc.prototype.setApiUrl = function (url) {\r\n this.url = url + '/' + this.path;\r\n return this;\r\n };\r\n HttpSvc.prototype.chain = function (path) {\r\n return new HttpSvc(this.$http, this.path, path);\r\n };\r\n HttpSvc.prototype.withData = function (m) {\r\n return _.contains(this.methodsWithData, m);\r\n };\r\n HttpSvc.prototype.setHeaders = function (method, headers, params) {\r\n var _a = params[0], data = _a === void 0 ? {} : _a, _b = params[1], config = _b === void 0 ? {} : _b;\r\n if (!this.withData(method)) {\r\n config = data;\r\n }\r\n config.headers = _.extend(config.headers || {}, headers);\r\n return this.withData(method) ? [data, config] : [config];\r\n };\r\n HttpSvc.prototype.createRegularMethods = function () {\r\n var _this = this;\r\n _.each(this.methods, function (method) {\r\n _this[method] = function () {\r\n var params = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n params[_i] = arguments[_i];\r\n }\r\n params = _this.setHeaders(method, _this.headers, params);\r\n return _this.request(method, params);\r\n };\r\n });\r\n };\r\n HttpSvc.prototype.createSecureMethods = function () {\r\n var _this = this;\r\n _.each(this.methods, function (method) {\r\n var newMethod = 'secure' + Strings_1.Strings.capitalize(method);\r\n _this[newMethod] = function () {\r\n var params = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n params[_i] = arguments[_i];\r\n }\r\n if (Strings_1.Strings.isBlank(options.headers['Animatron-Security-Token'])) {\r\n if (console.trace)\r\n console.trace();\r\n throw new Error('Empty cookie');\r\n }\r\n params = _this.setHeaders(method, options.headers, params);\r\n return _this[method].apply(_this, params);\r\n };\r\n });\r\n };\r\n HttpSvc.prototype.request = function (methodName, params, retry) {\r\n var _this = this;\r\n if (retry === void 0) { retry = true; }\r\n return (_a = this.$http)[methodName].apply(_a, [this.url].concat(params)).catch(function (reason) {\r\n return reason.status === -1 && retry ?\r\n _this.request(methodName, params, false) : Promise.reject(reason);\r\n });\r\n var _a;\r\n };\r\n return HttpSvc;\r\n}());\r\nexports.HttpSvc = HttpSvc;\r\nfunction HttpSvcFactory($http) {\r\n return function () {\r\n var url = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n url[_i] = arguments[_i];\r\n }\r\n return new (HttpSvc.bind.apply(HttpSvc, [void 0, $http].concat(url)))();\r\n };\r\n}\r\nmodule_1.default.service('HttpSvc', HttpSvcFactory);\r\n\n\n/***/ }),\n\n/***/ \"0wzA\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/modal_00989dd4b47de8bc5c22825dcd8d5ebc.css\";\n\n/***/ }),\n\n/***/ \"0zt+\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./banner-video-preview_x2.jpg\": \"rJ0m\",\n\t\"./card-maker.png\": \"h+vD\",\n\t\"./creativity.png\": \"HN/J\",\n\t\"./light-presentation-image.png\": \"KV5y\",\n\t\"./pattern-light-landing-bottom.svg\": \"nNID\",\n\t\"./video-maker.png\": \"SXt6\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"0zt+\";\n\n/***/ }),\n\n/***/ \"15vf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-projects_54184c5f320836a52d9763a4bf662678.css\";\n\n/***/ }),\n\n/***/ \"1S0N\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./education.html\": \"gsWG\",\n\t\"./week1.html\": \"CM5t\",\n\t\"./week2.html\": \"DHQn\",\n\t\"./week3.html\": \"6cC1\",\n\t\"./week4.html\": \"Wmao\",\n\t\"./week5.html\": \"ovcP\",\n\t\"./week6.html\": \"Oquy\",\n\t\"./week7.html\": \"XKv6\",\n\t\"./week8.html\": \"eWSb\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"1S0N\";\n\n/***/ }),\n\n/***/ \"1aEF\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/studio-header_4ed2ce1bb9ae112e2578755cbc5a8e80.html\";\n\n/***/ }),\n\n/***/ \"1uG8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/studio-responsiveness_0d63adb360b437e94760fa672954909d.css\";\n\n/***/ }),\n\n/***/ \"23em\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/top-layout_9b95e61e5c017537657e059804636bd9.html\";\n\n/***/ }),\n\n/***/ \"28+3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\r\n * To add new page, create new json object with the same structure as the ones below.\r\n * Most values should be key references to i18n files. So translations should also be written in app/assets/i18n/m_*.properties files\r\n * It is essential that all properties are present and have correct names.\r\n * Images are stored in app/assets/images/landing/medium folder, but here should only be filename.\r\n */\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = ([\r\n {\r\n url: 'studio/presentation-maker',\r\n title: 'medium.presentation.title',\r\n description: 'medium.presentation.description',\r\n preview: 'medium-presentation1.jpg',\r\n topVideoListSection: {\r\n title: 'medium.presentation.h1',\r\n description: 'medium.presentation.h2',\r\n list: [\r\n 'medium.top-list1',\r\n 'medium.top-list2',\r\n 'medium.top-list3',\r\n 'medium.top-list4',\r\n 'medium.top-list5'\r\n ],\r\n modalVideo: {\r\n preview: 'medium-presentation1.jpg',\r\n playerUrl: 'https://publish.animatron.io/583d7b49e15b4493339e49d3.json',\r\n alt: 'medium.presentation.alt1'\r\n }\r\n },\r\n barListSection: {\r\n title: 'medium.make-presentation-title',\r\n btnUrl: 'https://editor.animatron.com',\r\n list: [\r\n {\r\n title: 'medium.make-presentation-title1',\r\n content: 'medium.make-presentation-content1'\r\n },\r\n {\r\n title: 'medium.make-presentation-title2',\r\n content: 'medium.make-presentation-content2'\r\n },\r\n {\r\n title: 'medium.make-presentation-title3',\r\n content: 'medium.make-presentation-content3'\r\n },\r\n {\r\n title: 'medium.make-presentation-title4',\r\n content: 'medium.make-presentation-content4'\r\n }\r\n ],\r\n btn: 'medium.make-presentation-button'\r\n },\r\n verticalListSection: {\r\n title: 'medium.animated-presentation-title',\r\n description: 'medium.animated-presentation-description',\r\n list: [\r\n {\r\n title: 'medium.animated-presentation-title1',\r\n content: 'medium.animated-presentation-content1',\r\n icon: 'animated-presentation/img1.svg',\r\n alt: 'medium.animated-presentation-title1'\r\n },\r\n {\r\n title: 'medium.animated-presentation-title2',\r\n content: 'medium.animated-presentation-content2',\r\n icon: 'animated-presentation/img2.svg'\r\n },\r\n {\r\n title: 'medium.animated-presentation-title3',\r\n content: 'medium.animated-presentation-content3',\r\n icon: 'animated-presentation/img3.svg'\r\n },\r\n {\r\n title: 'medium.animated-presentation-title4',\r\n content: 'medium.animated-presentation-content4',\r\n icon: 'animated-presentation/img4.svg'\r\n }\r\n ],\r\n btn: 'medium.animated-presentation-button',\r\n btnUrl: 'https://editor.animatron.com'\r\n },\r\n relatedLandings: {}\r\n },\r\n {\r\n url: 'studio/whiteboard-animation-software',\r\n title: 'medium.whiteboard.title',\r\n description: 'medium.whiteboard.description',\r\n preview: 'whiteboard/medium-whiteboard-image.jpg',\r\n topVideoListSection: {\r\n title: 'medium.whiteboard.h1',\r\n description: 'medium.whiteboard.h2',\r\n list: [\r\n 'medium.whiteboard-list1',\r\n 'medium.whiteboard-list2',\r\n 'medium.whiteboard-list3',\r\n 'medium.whiteboard-list4',\r\n 'medium.whiteboard-list5'\r\n ],\r\n modalVideo: {\r\n preview: 'whiteboard/medium-whiteboard-image.jpg',\r\n youtubeId: 'NU-0qpoD7Yk',\r\n alt: 'medium.whiteboard.description'\r\n }\r\n },\r\n barListSection: {\r\n title: 'medium.make-whiteboard-title',\r\n list: [\r\n {\r\n title: 'medium.make-whiteboard-title1',\r\n content: 'medium.make-whiteboard-content1'\r\n },\r\n {\r\n title: 'medium.make-whiteboard-title2',\r\n content: 'medium.make-whiteboard-content2'\r\n },\r\n {\r\n title: 'medium.make-whiteboard-title3',\r\n content: 'medium.make-whiteboard-content3'\r\n },\r\n {\r\n title: 'medium.make-whiteboard-title4',\r\n content: 'medium.make-whiteboard-content4'\r\n }\r\n ],\r\n btnUrl: 'https://editor.animatron.com',\r\n btn: 'medium.make-whiteboard-button'\r\n },\r\n verticalListSection: {\r\n title: 'medium.whiteboard-video-title',\r\n description: 'medium.whiteboard-video-description',\r\n list: [\r\n {\r\n title: 'medium.whiteboard-video-title1',\r\n content: 'medium.whiteboard-video-content1',\r\n icon: 'whiteboard/icon1.svg'\r\n },\r\n {\r\n title: 'medium.whiteboard-video-title2',\r\n content: 'medium.whiteboard-video-content2',\r\n icon: 'whiteboard/icon2.svg'\r\n },\r\n {\r\n title: 'medium.whiteboard-video-title3',\r\n content: 'medium.whiteboard-video-content3',\r\n icon: 'whiteboard/icon3.svg'\r\n },\r\n {\r\n title: 'medium.whiteboard-video-title4',\r\n content: 'medium.whiteboard-video-content4',\r\n icon: 'whiteboard/icon4.svg'\r\n }\r\n ],\r\n btnUrl: 'https://editor.animatron.com',\r\n btn: 'medium.whiteboard-video-button'\r\n },\r\n relatedLandings: {}\r\n },\r\n {\r\n url: 'studio/lite-mode',\r\n title: 'medium.litemode.title',\r\n description: 'medium.litemode.description',\r\n preview: 'litemode/1.png',\r\n topVideoListSection: {\r\n title: 'medium.litemode.h1',\r\n description: 'medium.litemode.h2',\r\n list: [\r\n 'medium.litemode-list1',\r\n 'medium.litemode-list2',\r\n 'medium.litemode-list3',\r\n 'medium.litemode-list4',\r\n 'medium.litemode-list5'\r\n ],\r\n modalVideo: {\r\n preview: 'litemode/1.png',\r\n youtubeId: 'StEBsxh0I6s',\r\n alt: 'medium.litemode-alt1'\r\n }\r\n },\r\n barListSection: {\r\n title: 'medium.why-litemode-title',\r\n list: [\r\n {\r\n title: 'medium.why-litemode-title1',\r\n content: 'medium.why-litemode-content1'\r\n },\r\n {\r\n title: 'medium.why-litemode-title2',\r\n content: 'medium.why-litemode-content2'\r\n },\r\n {\r\n title: 'medium.why-litemode-title3',\r\n content: 'medium.why-litemode-content3'\r\n },\r\n {\r\n title: 'medium.why-litemode-title4',\r\n content: 'medium.why-litemode-content4'\r\n }\r\n ],\r\n btnUrl: 'https://editor.animatron.com',\r\n btn: 'medium.why-litemode-button'\r\n },\r\n verticalListSection: {\r\n title: 'medium.more-litemode-title',\r\n description: 'medium.more-litemode-description',\r\n list: [\r\n {\r\n title: 'medium.more-litemode-title1',\r\n content: 'medium.more-litemode-content1',\r\n imageUrl: 'litemode/img1.gif',\r\n alt: 'medium.litemode-alt2'\r\n },\r\n {\r\n title: 'medium.more-litemode-title2',\r\n content: 'medium.more-litemode-content2',\r\n imageUrl: 'litemode/img2.gif',\r\n alt: 'medium.litemode-alt3'\r\n },\r\n {\r\n title: 'medium.more-litemode-title3',\r\n content: 'medium.more-litemode-content3',\r\n imageUrl: 'litemode/img3.gif',\r\n alt: 'medium.litemode-alt4'\r\n },\r\n {\r\n title: 'medium.more-litemode-title4',\r\n content: 'medium.more-litemode-content4',\r\n imageUrl: 'litemode/img4.gif',\r\n alt: 'medium.litemode-alt5'\r\n }\r\n ],\r\n btnUrl: 'http://www.animatron.com/blog/whats-new-in-animatron-lite-mode-whiteboard-animation-and-more/',\r\n btn: 'medium.more-litemode-button'\r\n },\r\n videoSamples: {\r\n title: 'medium.litemode-samples.title',\r\n description: 'medium.litemode-samples.description',\r\n list: [\r\n 'NU-0qpoD7Yk',\r\n '13mGg5gmPL4',\r\n 'TxyPmfybDlw'\r\n ]\r\n },\r\n relatedLandings: {}\r\n },\r\n {\r\n url: 'studio/animation-for-agencies',\r\n title: 'medium.agencies.title',\r\n description: 'medium.agencies.description',\r\n preview: 'agencies/1.png',\r\n topVideoListSection: {\r\n title: 'medium.agencies.h1',\r\n description: 'medium.agencies.h2',\r\n list: [\r\n 'medium.agencies-list1',\r\n 'medium.agencies-list2',\r\n 'medium.agencies-list3',\r\n 'medium.agencies-list4',\r\n 'medium.agencies-list5'\r\n ],\r\n modalVideo: {\r\n preview: 'agencies/1.png',\r\n youtubeId: 'StEBsxh0I6s',\r\n alt: 'medium.agencies-alt1'\r\n }\r\n },\r\n textSections: {\r\n order: 1,\r\n bgColor: true,\r\n list: [\r\n {\r\n title: 'medium.agencies.text-section-1.title',\r\n content: 'medium.agencies.text-section-1.content',\r\n btnUrl: 'https://editor.animatron.com'\r\n }\r\n ]\r\n },\r\n barListSection: {\r\n order: 3,\r\n bgColor: true,\r\n title: 'medium.agencies-title',\r\n btnUrl: 'https://editor.animatron.com',\r\n list: [\r\n {\r\n title: 'medium.agencies-title1',\r\n content: 'medium.agencies-content1'\r\n },\r\n {\r\n title: 'medium.agencies-title2',\r\n content: 'medium.agencies-content2'\r\n },\r\n {\r\n title: 'medium.agencies-title3',\r\n content: 'medium.agencies-content3'\r\n },\r\n {\r\n title: 'medium.agencies-title4',\r\n content: 'medium.agencies-content4'\r\n }\r\n ],\r\n btn: 'medium.agencies-button'\r\n },\r\n verticalListSection: {\r\n order: 4,\r\n title: 'medium.why-agencies-title',\r\n btnUrl: 'https://editor.animatron.com',\r\n description: 'medium.why-agencies-description',\r\n list: [\r\n {\r\n title: 'medium.why-agencies-title1',\r\n content: 'medium.why-agencies-content1',\r\n icon: 'agencies/AGENCIES_1.svg'\r\n },\r\n {\r\n title: 'medium.why-agencies-title2',\r\n content: 'medium.why-agencies-content2',\r\n icon: 'agencies/AGENCIES_2.svg'\r\n },\r\n {\r\n title: 'medium.why-agencies-title3',\r\n content: 'medium.why-agencies-content3',\r\n icon: 'agencies/AGENCIES_3.svg'\r\n },\r\n {\r\n title: 'medium.why-agencies-title4',\r\n content: 'medium.why-agencies-content4',\r\n icon: 'agencies/AGENCIES_4.svg'\r\n }\r\n ],\r\n btn: 'medium.why-agencies-button'\r\n },\r\n videoSamples: {\r\n order: 2,\r\n title: 'medium.agencies-samples.title',\r\n description: 'medium.agencies-samples.description',\r\n list: [\r\n '4ZNaLnVaGj8',\r\n 'NU-0qpoD7Yk',\r\n 'UjmaE78NyB4',\r\n 'h0iARjYhbHY',\r\n 'LhyXWD-Ua-w',\r\n '8Rq75fMP8v8'\r\n ]\r\n },\r\n relatedLandings: {\r\n order: 5,\r\n bgColor: true\r\n }\r\n },\r\n {\r\n url: 'studio/animation-for-designers',\r\n title: 'medium.designers.title',\r\n description: 'medium.designers.description',\r\n preview: 'designers/1.png',\r\n topVideoListSection: {\r\n title: 'medium.designers.h1',\r\n description: 'medium.designers.h2',\r\n list: [\r\n 'medium.designers-list1',\r\n 'medium.designers-list2',\r\n 'medium.designers-list3',\r\n 'medium.designers-list4',\r\n 'medium.designers-list5'\r\n ],\r\n modalVideo: {\r\n preview: 'designers/1.png',\r\n youtubeId: 'C7QXCTcQvCA',\r\n alt: 'medium.designers-alt1'\r\n }\r\n },\r\n textSections: {\r\n order: 1,\r\n list: [\r\n {\r\n title: 'medium.designers.text-section-1.title',\r\n content: 'medium.designers.text-section-1.content'\r\n }\r\n ]\r\n },\r\n barListSection: {\r\n order: 3,\r\n bgColor: true,\r\n title: 'medium.designers-title',\r\n btnUrl: 'https://editor.animatron.com',\r\n list: [\r\n {\r\n title: 'medium.designers-title1',\r\n content: 'medium.designers-content1'\r\n },\r\n {\r\n title: 'medium.designers-title2',\r\n content: 'medium.designers-content2'\r\n },\r\n {\r\n title: 'medium.designers-title3',\r\n content: 'medium.designers-content3'\r\n },\r\n {\r\n title: 'medium.designers-title4',\r\n content: 'medium.designers-content4'\r\n }\r\n ],\r\n btn: 'medium.designers-button'\r\n },\r\n videoSamples: {\r\n order: 2,\r\n description: 'medium.designers-samples.description',\r\n list: [\r\n '5lmn5G2SM1Q',\r\n 'nL8KXi-Ebpg',\r\n 'Hsb8Hnxnyyw'\r\n ]\r\n },\r\n verticalListSection: {\r\n order: 4,\r\n title: 'medium.why-designers-title',\r\n btnUrl: 'https://editor.animatron.com',\r\n description: 'medium.why-designers-description',\r\n list: [\r\n {\r\n title: 'medium.why-designers-title1',\r\n content: 'medium.why-designers-content1',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n title: 'medium.why-designers-title2',\r\n content: 'medium.why-designers-content2',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n title: 'medium.why-designers-title3',\r\n content: 'medium.why-designers-content3',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n title: 'medium.why-designers-title4',\r\n content: 'medium.why-designers-content4',\r\n icon: 'wave/wave-heart.svg'\r\n }\r\n ],\r\n btn: 'medium.why-designers-button'\r\n },\r\n relatedLandings: {\r\n order: 5,\r\n bgColor: true\r\n }\r\n },\r\n {\r\n url: 'studio/stock-footage',\r\n title: 'medium.stock.title',\r\n description: 'medium.stock.description',\r\n preview: 'stock/preview.png',\r\n bgVideoSection: {\r\n title: 'medium.stock.h1',\r\n videoUrl: 'stock/videostock_720p',\r\n btnUrl: 'https://www.animatron.com/',\r\n btn: 'medium.stock.button'\r\n },\r\n textSections: {\r\n order: 1,\r\n list: [\r\n {\r\n title: 'medium.stock.header-content.title',\r\n content: 'medium.stock.header-content.content'\r\n }\r\n ]\r\n },\r\n verticalListSection: {\r\n order: 3,\r\n title: 'medium.stock.vertical-list.title',\r\n bgColor: true,\r\n list: [\r\n {\r\n title: 'medium.why-stock-title1',\r\n content: 'medium.stock.vertical-list.content-1',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n title: 'medium.why-stock-title2',\r\n content: 'medium.stock.vertical-list.content-2',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n title: 'medium.why-stock-title3',\r\n content: 'medium.stock.vertical-list.content-3',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n title: 'medium.why-stock-title4',\r\n content: 'medium.stock.vertical-list.content-4',\r\n icon: 'wave/wave-heart.svg'\r\n }\r\n ],\r\n btnUrl: 'https://www.animatron.com/',\r\n btn: 'medium.stock.vertical-list.btn'\r\n },\r\n videoSamples: {\r\n order: 2,\r\n title: 'medium.stock-samples.title',\r\n description: 'medium.stock-samples.description',\r\n list: [\r\n '5lmn5G2SM1Q',\r\n 'Vm_W4CX72rw',\r\n 'Hsb8Hnxnyyw'\r\n ]\r\n },\r\n relatedLandings: {\r\n order: 4\r\n }\r\n },\r\n {\r\n url: 'wave/social-video-maker',\r\n title: 'wv.social.video.title',\r\n description: 'wv.social.video.description',\r\n preview: 'wave/preview.png',\r\n bgVideoSection: {\r\n title: 'wv.social.video.h1',\r\n videoUrl: 'wave/social',\r\n btnUrl: '/wave/signup',\r\n editorRedirect: true,\r\n btn: 'medium.social.video.btn-try-now'\r\n },\r\n textSections: {\r\n order: 1,\r\n list: [\r\n {\r\n title: 'medium.social.video.header-content.title',\r\n content: 'medium.social.video.header-content.content'\r\n }\r\n ]\r\n },\r\n horizontalListSection: {\r\n order: 2,\r\n bgColor: true,\r\n title: 'medium.social.video.horizontal-list.title',\r\n list: [\r\n {\r\n content: 'medium.social.video.horizontal-list.content1'\r\n },\r\n {\r\n content: 'medium.social.video.horizontal-list.content2'\r\n },\r\n {\r\n content: 'medium.social.video.horizontal-list.content3'\r\n }\r\n ]\r\n },\r\n verticalListSection: {\r\n order: 4,\r\n title: 'medium.social.video.vertical-list.title',\r\n list: [\r\n {\r\n content: 'medium.social.video.vertical-list.content-1',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n content: 'medium.social.video.vertical-list.content-2',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n content: 'medium.social.video.vertical-list.content-3',\r\n icon: 'wave/wave-heart.svg'\r\n }\r\n ],\r\n btnUrl: '/wave/signup',\r\n editorRedirect: true,\r\n btn: 'medium.wave.vertical-list.btn'\r\n },\r\n videoSlider: {\r\n order: 3,\r\n title: 'medium.wave.video-slider.title',\r\n description: 'medium.wave.video-slider.description',\r\n list: [\r\n {\r\n preview: 'wave/swimsuit_square.png',\r\n url: 'wave/swimsuit_square'\r\n },\r\n {\r\n preview: 'wave/swimsuit_mobile.png',\r\n url: 'wave/swimsuit_mobile'\r\n },\r\n {\r\n preview: 'wave/swimsuit_desktop.png',\r\n url: 'wave/swimsuit_desktop'\r\n }\r\n ],\r\n editorRedirect: true,\r\n btn: 'medium.wave.video-slider.btn',\r\n btnUrl: '/wave/signup'\r\n }\r\n },\r\n {\r\n url: 'wave/small-business-video',\r\n title: 'wv.business.video.title',\r\n description: 'wv.business.video.description',\r\n preview: 'wave/business_preview.png',\r\n bgVideoSection: {\r\n title: 'wv.business.video.h1',\r\n videoUrl: 'wave/small_business',\r\n btnUrl: '/wave/signup',\r\n editorRedirect: true,\r\n btn: 'medium.social.video.btn-try-now'\r\n },\r\n textSections: {\r\n order: 1,\r\n list: [\r\n {\r\n title: 'medium.business.video.header-content.title',\r\n content: 'medium.business.video.header-content.content'\r\n }\r\n ]\r\n },\r\n horizontalListSection: {\r\n order: 4,\r\n title: 'medium.business.video.horizontal-list.title',\r\n list: [\r\n {\r\n content: 'medium.business.video.horizontal-list.content1'\r\n },\r\n {\r\n content: 'medium.business.video.horizontal-list.content2'\r\n },\r\n {\r\n content: 'medium.business.video.horizontal-list.content3'\r\n }\r\n ]\r\n },\r\n verticalListSection: {\r\n order: 3,\r\n bgColor: true,\r\n title: 'medium.business.video.vertical-list.title',\r\n list: [\r\n {\r\n content: 'medium.business.video.vertical-list.content-1',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n content: 'medium.business.video.vertical-list.content-2',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n content: 'medium.business.video.vertical-list.content-3',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n content: 'medium.business.video.vertical-list.content-4',\r\n icon: 'wave/wave-heart.svg'\r\n }\r\n ],\r\n btnUrl: '/wave/signup',\r\n editorRedirect: true,\r\n btn: 'medium.wave.vertical-list.btn'\r\n },\r\n videoSamples: {\r\n order: 2,\r\n title: 'medium.business-samples.title',\r\n description: 'medium.business-samples.description',\r\n list: [\r\n '8Rq75fMP8v8',\r\n 'Vm_W4CX72rw',\r\n 'LhyXWD-Ua-w'\r\n ],\r\n editorRedirect: true,\r\n btn: 'medium.wave.video-slider.btn',\r\n btnUrl: '/wave/signup'\r\n }\r\n },\r\n {\r\n url: 'wave/blog-video',\r\n title: 'wv.blog.video.title',\r\n description: 'wv.blog.video.description',\r\n preview: 'wave/blog.png',\r\n bgVideoSection: {\r\n title: 'wv.blog.video.h1',\r\n videoUrl: 'wave/blog',\r\n btnUrl: '/wave/signup',\r\n editorRedirect: true,\r\n btn: 'medium.social.video.btn-try-now'\r\n },\r\n textSections: {\r\n order: 1,\r\n list: [\r\n {\r\n title: 'medium.blog.header-content.title',\r\n content: 'medium.blog.header-content.content'\r\n }\r\n ]\r\n },\r\n horizontalListSection: {\r\n order: 3,\r\n bgColor: true,\r\n title: 'medium.blog.horizontal-list.title',\r\n list: [\r\n {\r\n content: 'medium.blog.horizontal-list.content1'\r\n },\r\n {\r\n content: 'medium.blog.horizontal-list.content2'\r\n },\r\n {\r\n content: 'medium.blog.horizontal-list.content3'\r\n }\r\n ]\r\n },\r\n verticalListSection: {\r\n order: 4,\r\n title: 'medium.blog.vertical-list.title',\r\n list: [\r\n {\r\n content: 'medium.blog.vertical-list.content-1',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n content: 'medium.social.video.vertical-list.content-2',\r\n icon: 'wave/wave-heart.svg'\r\n },\r\n {\r\n content: 'medium.social.video.vertical-list.content-3',\r\n icon: 'wave/wave-heart.svg'\r\n }\r\n ],\r\n btnUrl: '/wave/signup',\r\n editorRedirect: true,\r\n btn: 'medium.wave.vertical-list.btn'\r\n },\r\n videoSlider: {\r\n order: 2,\r\n title: 'medium.blog.video-slider.title',\r\n description: 'medium.blog.video-slider.description',\r\n list: [\r\n {\r\n preview: 'wave/skiing_square.png',\r\n alt: 'medium.blog-video.alt1',\r\n url: 'wave/skiing_square'\r\n },\r\n {\r\n preview: 'wave/skiing_mobile.png',\r\n alt: 'medium.blog-video.alt2',\r\n url: 'wave/skiing_mobile'\r\n },\r\n {\r\n preview: 'wave/skiing_desktop.png',\r\n alt: 'medium.blog-video.alt3',\r\n url: 'wave/skiing_desktop'\r\n }\r\n ],\r\n editorRedirect: true,\r\n btn: 'medium.wave.video-slider.btn',\r\n btnUrl: '/wave/signup'\r\n }\r\n }\r\n]);\r\n\n\n/***/ }),\n\n/***/ \"2MCb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"i18n/ru_a9ddfd9dc72fecdca78eef7a14a4b2b0.json\";\n\n/***/ }),\n\n/***/ \"2wJH\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/8.svg\";\n\n/***/ }),\n\n/***/ \"2wXK\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-8.png\";\n\n/***/ }),\n\n/***/ \"390S\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/6.svg\";\n\n/***/ }),\n\n/***/ \"3H1O\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar EditableCtrl = (function () {\r\n EditableCtrl.$inject = [\"$scope\", \"$element\", \"$filter\", \"$timeout\", \"$compile\"];\r\n function EditableCtrl($scope, $element, $filter, $timeout, $compile) {\r\n this.$scope = $scope;\r\n this.$element = $element;\r\n this.$filter = $filter;\r\n this.$timeout = $timeout;\r\n this.$compile = $compile;\r\n this.onChange = this.onChange || angular.noop;\r\n this.maxlength = this.maxlength || 500;\r\n this.editorEnabled = false;\r\n if (this.isEditable) {\r\n this.enableEditor();\r\n }\r\n }\r\n EditableCtrl.prototype.$postLink = function () {\r\n this.textareaE = this.$element[0].querySelector('.textarea');\r\n var textEl = this.$element[0].querySelector('#text-el');\r\n textEl.innerHTML = textEl.innerHTML.replace(/div/, this.tag);\r\n this.$compile(textEl)(this.$scope);\r\n };\r\n EditableCtrl.prototype.unEdit = function ($event) {\r\n var _this = this;\r\n this.editorEnabled = false;\r\n if (this.notAllowEmpty && this.editModel === '') {\r\n this.editModel = this.model;\r\n }\r\n else {\r\n this.model = this.$filter('stripTags')(angular.copy(this.editModel));\r\n }\r\n if (this.model === this.prevModel) {\r\n this.prevModel = '';\r\n return;\r\n }\r\n this.prevModel = this.model;\r\n this.$element[0].classList.remove('editing');\r\n if ($event != null)\r\n $event.preventDefault();\r\n this.onChange({ $event: this.model });\r\n underscore_extensions_1.Utils.rAF(function () { return _this.textareaE.blur(); });\r\n };\r\n EditableCtrl.prototype.unEditNoSave = function ($event) {\r\n this.editorEnabled = false;\r\n this.$element[0].classList.remove('editing');\r\n this.editModel = this.model;\r\n if ($event != null)\r\n $event.preventDefault();\r\n };\r\n EditableCtrl.prototype.enableEditor = function () {\r\n var _this = this;\r\n if (!this.owner)\r\n return;\r\n this.editModel = angular.copy(this.model);\r\n this.editorEnabled = true;\r\n this.$element[0].classList.add('editing');\r\n underscore_extensions_1.Utils.rAF(function () {\r\n _this.textareaE.focus();\r\n _this.textareaE.select();\r\n _this.textareaE.setSelectionRange(0, 9999); // fix for IOS\r\n });\r\n };\r\n return EditableCtrl;\r\n}());\r\nmodule_1.default.component('editable', {\r\n bindings: {\r\n 'model': '=model',\r\n 'owner': '=',\r\n 'defaultMsg': '@',\r\n 'tag': '@',\r\n isEditable: '\n */\n(function() {\n 'use strict';\n var regModules = ['ng'],\n initModules = [],\n regInvokes = {},\n regConfigs = [],\n justLoaded = [],\n runBlocks = {},\n ocLazyLoad = angular.module('oc.lazyLoad', ['ng']),\n broadcast = angular.noop;\n\n ocLazyLoad.provider('$ocLazyLoad', ['$controllerProvider', '$provide', '$compileProvider', '$filterProvider', '$injector', '$animateProvider',\n function($controllerProvider, $provide, $compileProvider, $filterProvider, $injector, $animateProvider) {\n var modules = {},\n providers = {\n $controllerProvider: $controllerProvider,\n $compileProvider: $compileProvider,\n $filterProvider: $filterProvider,\n $provide: $provide, // other things\n $injector: $injector,\n $animateProvider: $animateProvider\n },\n anchor = document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0],\n jsLoader, cssLoader, templatesLoader,\n debug = false,\n events = false;\n\n // Let's get the list of loaded modules & components\n init(angular.element(window.document));\n\n this.$get = ['$log', '$q', '$templateCache', '$http', '$rootElement', '$rootScope', '$cacheFactory', '$interval', function($log, $q, $templateCache, $http, $rootElement, $rootScope, $cacheFactory, $interval) {\n var instanceInjector,\n filesCache = $cacheFactory('ocLazyLoad'),\n uaCssChecked = false,\n useCssLoadPatch = false;\n\n if(!debug) {\n $log = {};\n $log['error'] = angular.noop;\n $log['warn'] = angular.noop;\n $log['info'] = angular.noop;\n }\n\n // Make this lazy because at the moment that $get() is called the instance injector hasn't been assigned to the rootElement yet\n providers.getInstanceInjector = function() {\n return (instanceInjector) ? instanceInjector : (instanceInjector = ($rootElement.data('$injector') || angular.injector()));\n };\n\n broadcast = function broadcast(eventName, params) {\n if(events) {\n $rootScope.$broadcast(eventName, params);\n }\n if(debug) {\n $log.info(eventName, params);\n }\n }\n\n /**\n * Load a js/css file\n * @param type\n * @param path\n * @returns promise\n */\n var buildElement = function buildElement(type, path, params) {\n var deferred = $q.defer(),\n el, loaded,\n cacheBuster = function cacheBuster(url) {\n var dc = new Date().getTime();\n if(url.indexOf('?') >= 0) {\n if(url.substring(0, url.length - 1) === '&') {\n return url + '_dc=' + dc;\n }\n return url + '&_dc=' + dc;\n } else {\n return url + '?_dc=' + dc;\n }\n };\n\n // Store the promise early so the file load can be detected by other parallel lazy loads\n // (ie: multiple routes on one page) a 'true' value isn't sufficient\n // as it causes false positive load results.\n if(angular.isUndefined(filesCache.get(path))) {\n filesCache.put(path, deferred.promise);\n }\n\n // Switch in case more content types are added later\n switch(type) {\n case 'css':\n el = document.createElement('link');\n el.type = 'text/css';\n el.rel = 'stylesheet';\n el.href = params.cache === false ? cacheBuster(path) : path;\n break;\n case 'js':\n el = document.createElement('script');\n el.src = params.cache === false ? cacheBuster(path) : path;\n break;\n default:\n deferred.reject(new Error('Requested type \"' + type + '\" is not known. Could not inject \"' + path + '\"'));\n break;\n }\n el.onload = el['onreadystatechange'] = function(e) {\n if((el['readyState'] && !(/^c|loade/.test(el['readyState']))) || loaded) return;\n el.onload = el['onreadystatechange'] = null\n loaded = 1;\n broadcast('ocLazyLoad.fileLoaded', path);\n deferred.resolve();\n }\n el.onerror = function(e) {\n deferred.reject(new Error('Unable to load ' + path));\n }\n el.async = params.serie ? 0 : 1;\n\n var insertBeforeElem = anchor.lastChild;\n if(params.insertBefore) {\n var element = angular.element(params.insertBefore);\n if(element && element.length > 0) {\n insertBeforeElem = element[0];\n }\n }\n anchor.insertBefore(el, insertBeforeElem);\n\n /*\n The event load or readystatechange doesn't fire in:\n - iOS < 6 (default mobile browser)\n - Android < 4.4 (default mobile browser)\n - Safari < 6 (desktop browser)\n */\n if(type == 'css') {\n if(!uaCssChecked) {\n var ua = navigator.userAgent.toLowerCase();\n\n // iOS < 6\n if(/iP(hone|od|ad)/.test(navigator.platform)) {\n var v = (navigator.appVersion).match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var iOSVersion = parseFloat([parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)].join('.'));\n useCssLoadPatch = iOSVersion < 6;\n } else if(ua.indexOf(\"android\") > -1) { // Android < 4.4\n var androidVersion = parseFloat(ua.slice(ua.indexOf(\"android\") + 8));\n useCssLoadPatch = androidVersion < 4.4;\n } else if(ua.indexOf('safari') > -1 && ua.indexOf('chrome') == -1 && ua.indexOf('phantomjs') == -1) {\n var safariVersion = parseFloat(ua.match(/version\\/([\\.\\d]+)/i)[1]);\n useCssLoadPatch = safariVersion < 6;\n }\n }\n\n if(useCssLoadPatch) {\n var tries = 1000; // * 20 = 20000 miliseconds\n var interval = $interval(function() {\n try {\n el.sheet.cssRules;\n $interval.cancel(interval);\n el.onload();\n } catch(e) {\n if(--tries <= 0) {\n el.onerror();\n }\n }\n }, 20);\n }\n }\n\n return deferred.promise;\n }\n\n if(angular.isUndefined(jsLoader)) {\n /**\n * jsLoader function\n * @type Function\n * @param paths array list of js files to load\n * @param callback to call when everything is loaded. We use a callback and not a promise\n * @param params object config parameters\n * because the user can overwrite jsLoader and it will probably not use promises :(\n */\n jsLoader = function(paths, callback, params) {\n var promises = [];\n angular.forEach(paths, function loading(path) {\n promises.push(buildElement('js', path, params));\n });\n $q.all(promises).then(function success() {\n callback();\n }, function error(err) {\n callback(err);\n });\n }\n jsLoader.ocLazyLoadLoader = true;\n }\n\n if(angular.isUndefined(cssLoader)) {\n /**\n * cssLoader function\n * @type Function\n * @param paths array list of css files to load\n * @param callback to call when everything is loaded. We use a callback and not a promise\n * @param params object config parameters\n * because the user can overwrite cssLoader and it will probably not use promises :(\n */\n cssLoader = function(paths, callback, params) {\n var promises = [];\n angular.forEach(paths, function loading(path) {\n promises.push(buildElement('css', path, params));\n });\n $q.all(promises).then(function success() {\n callback();\n }, function error(err) {\n callback(err);\n });\n }\n cssLoader.ocLazyLoadLoader = true;\n }\n\n if(angular.isUndefined(templatesLoader)) {\n /**\n * templatesLoader function\n * @type Function\n * @param paths array list of css files to load\n * @param callback to call when everything is loaded. We use a callback and not a promise\n * @param params object config parameters for $http\n * because the user can overwrite templatesLoader and it will probably not use promises :(\n */\n templatesLoader = function(paths, callback, params) {\n var promises = [];\n angular.forEach(paths, function(url) {\n var deferred = $q.defer();\n promises.push(deferred.promise);\n $http.get(url, params).then(function(response) {\n return response.data;\n }).then(function (data) {\n if (angular.isString(data) && data.length > 0) {\n $templateCache.put(url, data);\n }\n if (angular.isUndefined(filesCache.get(url))) {\n filesCache.put(url, true);\n }\n deferred.resolve();\n }).catch(function (err) {\n deferred.reject(new Error('Unable to load template file \"' + url + '\": ' + err));\n });\n });\n return $q.all(promises).then(function success() {\n callback();\n }, function error(err) {\n callback(err);\n });\n }\n templatesLoader.ocLazyLoadLoader = true;\n }\n\n var filesLoader = function(config, params) {\n var cssFiles = [],\n templatesFiles = [],\n jsFiles = [],\n promises = [],\n cachePromise = null;\n\n angular.extend(params || {}, config);\n\n var pushFile = function(path) {\n cachePromise = filesCache.get(path);\n if(angular.isUndefined(cachePromise) || params.cache === false) {\n if(/\\.(css|less)[^\\.]*$/.test(path) && cssFiles.indexOf(path) === -1) {\n cssFiles.push(path);\n } else if(/\\.(htm|html)[^\\.]*$/.test(path) && templatesFiles.indexOf(path) === -1) {\n templatesFiles.push(path);\n } else if(jsFiles.indexOf(path) === -1) {\n jsFiles.push(path);\n }\n } else if(cachePromise) {\n promises.push(cachePromise);\n }\n }\n\n if(params.serie) {\n pushFile(params.files.shift());\n } else {\n angular.forEach(params.files, function(path) {\n pushFile(path);\n });\n }\n\n if(cssFiles.length > 0) {\n var cssDeferred = $q.defer();\n cssLoader(cssFiles, function(err) {\n if(angular.isDefined(err) && cssLoader.hasOwnProperty('ocLazyLoadLoader')) {\n $log.error(err);\n cssDeferred.reject(err);\n } else {\n cssDeferred.resolve();\n }\n }, params);\n promises.push(cssDeferred.promise);\n }\n\n if(templatesFiles.length > 0) {\n var templatesDeferred = $q.defer();\n templatesLoader(templatesFiles, function(err) {\n if(angular.isDefined(err) && templatesLoader.hasOwnProperty('ocLazyLoadLoader')) {\n $log.error(err);\n templatesDeferred.reject(err);\n } else {\n templatesDeferred.resolve();\n }\n }, params);\n promises.push(templatesDeferred.promise);\n }\n\n if(jsFiles.length > 0) {\n var jsDeferred = $q.defer();\n jsLoader(jsFiles, function(err) {\n if(angular.isDefined(err) && jsLoader.hasOwnProperty('ocLazyLoadLoader')) {\n $log.error(err);\n jsDeferred.reject(err);\n } else {\n jsDeferred.resolve();\n }\n }, params);\n promises.push(jsDeferred.promise);\n }\n\n if(params.serie && params.files.length > 0) {\n return $q.all(promises).then(function success() {\n return filesLoader(config, params);\n });\n } else {\n return $q.all(promises);\n }\n }\n\n return {\n /**\n * Let you get a module config object\n * @param moduleName String the name of the module\n * @returns {*}\n */\n getModuleConfig: function(moduleName) {\n if(!angular.isString(moduleName)) {\n throw new Error('You need to give the name of the module to get');\n }\n if(!modules[moduleName]) {\n return null;\n }\n return modules[moduleName];\n },\n\n /**\n * Let you define a module config object\n * @param moduleConfig Object the module config object\n * @returns {*}\n */\n setModuleConfig: function(moduleConfig) {\n if(!angular.isObject(moduleConfig)) {\n throw new Error('You need to give the module config object to set');\n }\n modules[moduleConfig.name] = moduleConfig;\n return moduleConfig;\n },\n\n /**\n * Returns the list of loaded modules\n * @returns {string[]}\n */\n getModules: function() {\n return regModules;\n },\n\n /**\n * Let you check if a module has been loaded into Angular or not\n * @param modulesNames String/Object a module name, or a list of module names\n * @returns {boolean}\n */\n isLoaded: function(modulesNames) {\n var moduleLoaded = function(module) {\n var isLoaded = regModules.indexOf(module) > -1;\n if(!isLoaded) {\n isLoaded = !!moduleExists(module);\n }\n return isLoaded;\n }\n if(angular.isString(modulesNames)) {\n modulesNames = [modulesNames];\n }\n if(angular.isArray(modulesNames)) {\n var i, len;\n for(i = 0, len = modulesNames.length; i < len; i++) {\n if(!moduleLoaded(modulesNames[i])) {\n return false;\n }\n }\n return true;\n } else {\n throw new Error('You need to define the module(s) name(s)');\n }\n },\n\n /**\n * Load a module or a list of modules into Angular\n * @param module Mixed the name of a predefined module config object, or a module config object, or an array of either\n * @param params Object optional parameters\n * @returns promise\n */\n load: function(module, params) {\n var self = this,\n config = null,\n moduleCache = [],\n deferredList = [],\n deferred = $q.defer(),\n moduleName,\n errText;\n\n if(angular.isUndefined(params)) {\n params = {};\n }\n\n // If module is an array, break it down\n if(angular.isArray(module)) {\n // Resubmit each entry as a single module\n angular.forEach(module, function(m) {\n if(m) {\n deferredList.push(self.load(m, params));\n }\n });\n\n // Resolve the promise once everything has loaded\n $q.all(deferredList).then(function success() {\n deferred.resolve(module);\n }, function error(err) {\n deferred.reject(err);\n });\n\n return deferred.promise;\n }\n\n moduleName = getModuleName(module);\n\n // Get or Set a configuration depending on what was passed in\n if(typeof module === 'string') {\n config = self.getModuleConfig(module);\n if(!config) {\n config = {\n files: [module]\n };\n moduleName = null;\n }\n } else if(typeof module === 'object') {\n config = self.setModuleConfig(module);\n }\n\n if(config === null) {\n errText = 'Module \"' + moduleName + '\" is not configured, cannot load.';\n $log.error(errText);\n deferred.reject(new Error(errText));\n } else {\n // deprecated\n if(angular.isDefined(config.template)) {\n if(angular.isUndefined(config.files)) {\n config.files = [];\n }\n if(angular.isString(config.template)) {\n config.files.push(config.template);\n } else if(angular.isArray(config.template)) {\n config.files.concat(config.template);\n }\n }\n }\n\n moduleCache.push = function(value) {\n if(this.indexOf(value) === -1) {\n Array.prototype.push.apply(this, arguments);\n }\n };\n\n // If this module has been loaded before, re-use it.\n if(angular.isDefined(moduleName) && moduleExists(moduleName) && regModules.indexOf(moduleName) !== -1) {\n moduleCache.push(moduleName);\n\n // if we don't want to load new files, resolve here\n if(angular.isUndefined(config.files)) {\n deferred.resolve();\n return deferred.promise;\n }\n }\n\n var localParams = {};\n angular.extend(localParams, params, config);\n\n var loadDependencies = function loadDependencies(module) {\n var moduleName,\n loadedModule,\n requires,\n diff,\n promisesList = [];\n\n moduleName = getModuleName(module);\n if(moduleName === null) {\n return $q.when();\n } else {\n try {\n loadedModule = getModule(moduleName);\n } catch(e) {\n var deferred = $q.defer();\n $log.error(e.message);\n deferred.reject(e);\n return deferred.promise;\n }\n requires = getRequires(loadedModule);\n }\n\n angular.forEach(requires, function(requireEntry) {\n // If no configuration is provided, try and find one from a previous load.\n // If there isn't one, bail and let the normal flow run\n if(typeof requireEntry === 'string') {\n var config = self.getModuleConfig(requireEntry);\n if(config === null) {\n moduleCache.push(requireEntry); // We don't know about this module, but something else might, so push it anyway.\n return;\n }\n requireEntry = config;\n }\n\n // Check if this dependency has been loaded previously\n if(moduleExists(requireEntry.name)) {\n if(typeof module !== 'string') {\n // compare against the already loaded module to see if the new definition adds any new files\n diff = requireEntry.files.filter(function(n) {\n return self.getModuleConfig(requireEntry.name).files.indexOf(n) < 0;\n });\n\n // If the module was redefined, advise via the console\n if(diff.length !== 0) {\n $log.warn('Module \"', moduleName, '\" attempted to redefine configuration for dependency. \"', requireEntry.name, '\"\\n Additional Files Loaded:', diff);\n }\n\n // Push everything to the file loader, it will weed out the duplicates.\n promisesList.push(filesLoader(requireEntry.files, localParams).then(function() {\n return loadDependencies(requireEntry);\n }));\n }\n return;\n } else if(typeof requireEntry === 'object') {\n if(requireEntry.hasOwnProperty('name') && requireEntry['name']) {\n // The dependency doesn't exist in the module cache and is a new configuration, so store and push it.\n self.setModuleConfig(requireEntry);\n moduleCache.push(requireEntry['name']);\n }\n\n // CSS Loading Handler\n if(requireEntry.hasOwnProperty('css') && requireEntry['css'].length !== 0) {\n // Locate the document insertion point\n angular.forEach(requireEntry['css'], function(path) {\n buildElement('css', path, localParams);\n });\n }\n // CSS End.\n }\n\n // Check if the dependency has any files that need to be loaded. If there are, push a new promise to the promise list.\n if(requireEntry.hasOwnProperty('files') && requireEntry.files.length !== 0) {\n if(requireEntry.files) {\n promisesList.push(filesLoader(requireEntry, localParams).then(function() {\n return loadDependencies(requireEntry);\n }));\n }\n }\n });\n\n // Create a wrapper promise to watch the promise list and resolve it once everything is done.\n return $q.all(promisesList);\n }\n\n filesLoader(config, localParams).then(function success() {\n if(moduleName === null) {\n deferred.resolve(module);\n } else {\n moduleCache.push(moduleName);\n loadDependencies(moduleName).then(function success() {\n try {\n justLoaded = [];\n register(providers, moduleCache, localParams);\n } catch(e) {\n $log.error(e.message);\n deferred.reject(e);\n return;\n }\n deferred.resolve(module);\n }, function error(err) {\n deferred.reject(err);\n });\n }\n }, function error(err) {\n deferred.reject(err);\n });\n\n return deferred.promise;\n }\n };\n }];\n\n this.config = function(config) {\n if(angular.isDefined(config.jsLoader) || angular.isDefined(config.asyncLoader)) {\n if(!angular.isFunction(config.jsLoader || config.asyncLoader)) {\n throw('The js loader needs to be a function');\n }\n jsLoader = config.jsLoader || config.asyncLoader;\n }\n\n if(angular.isDefined(config.cssLoader)) {\n if(!angular.isFunction(config.cssLoader)) {\n throw('The css loader needs to be a function');\n }\n cssLoader = config.cssLoader;\n }\n\n if(angular.isDefined(config.templatesLoader)) {\n if(!angular.isFunction(config.templatesLoader)) {\n throw('The template loader needs to be a function');\n }\n templatesLoader = config.templatesLoader;\n }\n\n // If we want to define modules configs\n if(angular.isDefined(config.modules)) {\n if(angular.isArray(config.modules)) {\n angular.forEach(config.modules, function(moduleConfig) {\n modules[moduleConfig.name] = moduleConfig;\n });\n } else {\n modules[config.modules.name] = config.modules;\n }\n }\n\n if(angular.isDefined(config.debug)) {\n debug = config.debug;\n }\n\n if(angular.isDefined(config.events)) {\n events = config.events;\n }\n };\n }]);\n\n ocLazyLoad.directive('ocLazyLoad', ['$ocLazyLoad', '$compile', '$animate', '$parse',\n function($ocLazyLoad, $compile, $animate, $parse) {\n return {\n restrict: 'A',\n terminal: true,\n priority: 1000,\n compile: function(element, attrs) {\n // we store the content and remove it before compilation\n var content = element[0].innerHTML;\n element.html('');\n\n return function($scope, $element, $attr) {\n var model = $parse($attr.ocLazyLoad);\n $scope.$watch(function() {\n // it can be a module name (string), an object, an array, or a scope reference to any of this\n return model($scope) || $attr.ocLazyLoad;\n }, function(moduleName) {\n if(angular.isDefined(moduleName)) {\n $ocLazyLoad.load(moduleName).then(function success(moduleConfig) {\n $animate.enter($compile(content)($scope), null, $element);\n });\n }\n }, true);\n };\n }\n };\n }]);\n\n /**\n * Get the list of required modules/services/... for this module\n * @param module\n * @returns {Array}\n */\n function getRequires(module) {\n var requires = [];\n angular.forEach(module.requires, function(requireModule) {\n if(regModules.indexOf(requireModule) === -1) {\n requires.push(requireModule);\n }\n });\n return requires;\n }\n\n /**\n * Check if a module exists and returns it if it does\n * @param moduleName\n * @returns {boolean}\n */\n function moduleExists(moduleName) {\n try {\n return angular.module(moduleName);\n } catch(e) {\n if(/No module/.test(e) || (e.message.indexOf('$injector:nomod') > -1)) {\n return false;\n }\n }\n }\n\n function getModule(moduleName) {\n try {\n return angular.module(moduleName);\n } catch(e) {\n // this error message really suxx\n if(/No module/.test(e) || (e.message.indexOf('$injector:nomod') > -1)) {\n e.message = 'The module \"' + moduleName + '\" that you are trying to load does not exist. ' + e.message\n }\n throw e;\n }\n }\n\n function invokeQueue(providers, queue, moduleName, reconfig) {\n if(!queue) {\n return;\n }\n\n var i, len, args, provider;\n for(i = 0, len = queue.length; i < len; i++) {\n args = queue[i];\n if(angular.isArray(args)) {\n if(providers !== null) {\n if(providers.hasOwnProperty(args[0])) {\n provider = providers[args[0]];\n } else {\n throw new Error('unsupported provider ' + args[0]);\n }\n }\n var isNew = registerInvokeList(args, moduleName);\n if(args[1] !== 'invoke') {\n if(isNew && angular.isDefined(provider)) {\n provider[args[1]].apply(provider, args[2]);\n }\n } else { // config block\n var callInvoke = function(fct) {\n var invoked = regConfigs.indexOf(moduleName + '-' + fct);\n if(invoked === -1 || reconfig) {\n if(invoked === -1) {\n regConfigs.push(moduleName + '-' + fct);\n }\n if(angular.isDefined(provider)) {\n provider[args[1]].apply(provider, args[2]);\n }\n }\n }\n if(angular.isFunction(args[2][0])) {\n callInvoke(args[2][0]);\n } else if(angular.isArray(args[2][0])) {\n for(var j = 0, jlen = args[2][0].length; j < jlen; j++) {\n if(angular.isFunction(args[2][0][j])) {\n callInvoke(args[2][0][j]);\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Register a new module and load it\n * @param providers\n * @param registerModules\n * @returns {*}\n */\n function register(providers, registerModules, params) {\n if(registerModules) {\n var k, r, moduleName, moduleFn, tempRunBlocks = [];\n for(k = registerModules.length - 1; k >= 0; k--) {\n moduleName = registerModules[k];\n if(typeof moduleName !== 'string') {\n moduleName = getModuleName(moduleName);\n }\n if(!moduleName || justLoaded.indexOf(moduleName) !== -1) {\n continue;\n }\n var newModule = regModules.indexOf(moduleName) === -1;\n moduleFn = angular.module(moduleName);\n if(newModule) { // new module\n regModules.push(moduleName);\n register(providers, moduleFn.requires, params);\n }\n if(moduleFn._runBlocks.length > 0) {\n // new run blocks detected! Replace the old ones (if existing)\n runBlocks[moduleName] = [];\n while(moduleFn._runBlocks.length > 0) {\n runBlocks[moduleName].push(moduleFn._runBlocks.shift());\n }\n }\n if(angular.isDefined(runBlocks[moduleName]) && (newModule || params.rerun)) {\n tempRunBlocks = tempRunBlocks.concat(runBlocks[moduleName]);\n }\n invokeQueue(providers, moduleFn._invokeQueue, moduleName, params.reconfig);\n invokeQueue(providers, moduleFn._configBlocks, moduleName, params.reconfig); // angular 1.3+\n broadcast(newModule ? 'ocLazyLoad.moduleLoaded' : 'ocLazyLoad.moduleReloaded', moduleName);\n registerModules.pop();\n justLoaded.push(moduleName);\n }\n // execute the run blocks at the end\n var instanceInjector = providers.getInstanceInjector();\n angular.forEach(tempRunBlocks, function(fn) {\n instanceInjector.invoke(fn);\n });\n }\n }\n\n /**\n * Register an invoke\n * @param args\n * @returns {*}\n */\n function registerInvokeList(args, moduleName) {\n var invokeList = args[2][0],\n type = args[1],\n newInvoke = false;\n if(angular.isUndefined(regInvokes[moduleName])) {\n regInvokes[moduleName] = {};\n }\n if(angular.isUndefined(regInvokes[moduleName][type])) {\n regInvokes[moduleName][type] = [];\n }\n var onInvoke = function(invokeName) {\n newInvoke = true;\n regInvokes[moduleName][type].push(invokeName);\n broadcast('ocLazyLoad.componentLoaded', [moduleName, type, invokeName]);\n }\n if(angular.isString(invokeList) && regInvokes[moduleName][type].indexOf(invokeList) === -1) {\n onInvoke(invokeList);\n } else if(angular.isObject(invokeList)) {\n angular.forEach(invokeList, function(invoke) {\n if(angular.isString(invoke) && regInvokes[moduleName][type].indexOf(invoke) === -1) {\n onInvoke(invoke);\n }\n });\n } else {\n return false;\n }\n return newInvoke;\n }\n\n function getModuleName(module) {\n var moduleName = null;\n if(angular.isString(module)) {\n moduleName = module;\n } else if(angular.isObject(module) && module.hasOwnProperty('name') && angular.isString(module.name)) {\n moduleName = module.name;\n }\n return moduleName;\n }\n\n /**\n * Get the list of existing registered modules\n * @param element\n */\n function init(element) {\n if(initModules.length === 0) {\n var elements = [element],\n names = ['ng:app', 'ng-app', 'x-ng-app', 'data-ng-app'],\n NG_APP_CLASS_REGEXP = /\\sng[:\\-]app(:\\s*([\\w\\d_]+);?)?\\s/,\n append = function append(elm) {\n return (elm && elements.push(elm));\n };\n\n angular.forEach(names, function(name) {\n names[name] = true;\n append(document.getElementById(name));\n name = name.replace(':', '\\\\:');\n if(element[0].querySelectorAll) {\n angular.forEach(element[0].querySelectorAll('.' + name), append);\n angular.forEach(element[0].querySelectorAll('.' + name + '\\\\:'), append);\n angular.forEach(element[0].querySelectorAll('[' + name + ']'), append);\n }\n });\n\n angular.forEach(elements, function(elm) {\n if(initModules.length === 0) {\n var className = ' ' + element.className + ' ';\n var match = NG_APP_CLASS_REGEXP.exec(className);\n if(match) {\n initModules.push((match[2] || '').replace(/\\s+/g, ','));\n } else {\n angular.forEach(elm.attributes, function(attr) {\n if(initModules.length === 0 && names[attr.name]) {\n initModules.push(attr.value);\n }\n });\n }\n }\n });\n }\n if(initModules.length === 0) {\n throw 'No module found during bootstrap, unable to init ocLazyLoad';\n }\n\n var addReg = function addReg(moduleName) {\n if(regModules.indexOf(moduleName) === -1) {\n // register existing modules\n regModules.push(moduleName);\n var mainModule = angular.module(moduleName);\n\n // register existing components (directives, services, ...)\n invokeQueue(null, mainModule._invokeQueue, moduleName);\n invokeQueue(null, mainModule._configBlocks, moduleName); // angular 1.3+\n\n angular.forEach(mainModule.requires, addReg);\n }\n };\n\n angular.forEach(initModules, function(moduleName) {\n addReg(moduleName);\n });\n }\n\n var bootstrap = angular.bootstrap;\n angular.bootstrap = function(element, modules, config) {\n initModules = modules.slice(); // make a clean copy\n return bootstrap(element, modules, config);\n };\n})();\n\n\n/***/ }),\n\n/***/ \"44/O\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar AnalyticSvc = (function () {\r\n AnalyticSvc.$inject = [\"$location\", \"$state\", \"$rootScope\", \"$log\", \"landingTemplateSvc\", \"ipCookie\", \"LocalStorageSvc\"];\r\n function AnalyticSvc($location, $state, $rootScope, $log, landingTemplateSvc, ipCookie, LocalStorageSvc) {\r\n var _this = this;\r\n this.$location = $location;\r\n this.$state = $state;\r\n this.$rootScope = $rootScope;\r\n this.$log = $log;\r\n this.landingTemplateSvc = landingTemplateSvc;\r\n this.ipCookie = ipCookie;\r\n this.LocalStorageSvc = LocalStorageSvc;\r\n this.mixpanelEnabled = !false;\r\n this.forceVisitTracking = true;\r\n this.activateKeyName = 'analytic_track_activate_page_';\r\n this.getGaHeader = function () { return ({\r\n 'anm-mkt-ga': _this.ipCookie('_ga')\r\n }); };\r\n $rootScope.$on('$stateChangeSuccess', function () {\r\n _this.registerCommonProperties();\r\n _this.trackVisit();\r\n });\r\n }\r\n AnalyticSvc.prototype.upgradeShown = function (action, plan) {\r\n if (plan === void 0) { plan = this.getDefaultPlan(); }\r\n var opt = (_a = {},\r\n _a[this.getProduct() + \" Plan\"] = plan,\r\n _a);\r\n this.registerUserProperties();\r\n this.trackMixpanel(Strings_1.Strings.capitalize(action) + \" Shown\", opt);\r\n var _a;\r\n };\r\n AnalyticSvc.prototype.changeBillingPeriod = function (oldPeriod, newPeriod) {\r\n var opt = tslib_1.__assign({}, this.getPlan(), { 'Old Period': oldPeriod, 'New Period': newPeriod });\r\n this.registerUserProperties();\r\n this.trackMixpanel('Change Billing Period', opt);\r\n };\r\n AnalyticSvc.prototype.changeSubscription = function (action, oldPlan, oldPeriod, toPlan, toPeriod, chargedAmount, coupon) {\r\n // this.gaChangeSubscription(action, toPlan);\r\n if (toPlan === void 0) { toPlan = this.getDefaultPlan(); }\r\n this.mpChangeSubscription(action, oldPlan, oldPeriod, toPlan, toPeriod, chargedAmount, coupon);\r\n this.fbqChangeSubscription(oldPlan, toPlan, toPeriod);\r\n };\r\n AnalyticSvc.prototype.addTransaction = function (price, subscriptionName) {\r\n var transactionId = options.user.userId + \" - \" + Date.now();\r\n this.gaAddTransaction(transactionId, price, subscriptionName);\r\n this.fbqAddTransaction(transactionId, price, subscriptionName);\r\n };\r\n AnalyticSvc.prototype.gaAddTransaction = function (id, price, name) {\r\n this.ga('ecommerce:addTransaction', {\r\n id: id,\r\n revenue: price\r\n });\r\n this.ga('ecommerce:addItem', {\r\n id: id,\r\n name: name,\r\n price: price,\r\n quantity: 1\r\n });\r\n this.ga('ecommerce:send');\r\n };\r\n AnalyticSvc.prototype.fbqAddTransaction = function (id, price, planName) {\r\n this.fbq('track', 'Purchase', {\r\n id: id,\r\n planName: planName,\r\n value: price,\r\n currency: 'USD'\r\n });\r\n };\r\n AnalyticSvc.prototype.signUpSubmit = function () {\r\n var _this = this;\r\n // this.gaSignUpEvent('Submit');\r\n // this.gaProductSignUpEvent();\r\n this.getMixPanel(function (mixpanel) {\r\n _this.registerUserProperties();\r\n mixpanel.track('Sign Up Submit', { Provider: 'EMAIL' });\r\n });\r\n };\r\n AnalyticSvc.prototype.signUpActivate = function (hash) {\r\n var _this = this;\r\n var currentHash = this.LocalStorageSvc.get(this.activateKeyName);\r\n if (hash && hash !== currentHash) {\r\n // this.gaSignUpEvent('Activate');\r\n this.getMixPanel(function (mixpanel) {\r\n _this.registerUserProperties();\r\n mixpanel.track('Sign Up Activation', { Provider: 'EMAIL' });\r\n });\r\n this.LocalStorageSvc.set(this.activateKeyName, hash);\r\n }\r\n };\r\n AnalyticSvc.prototype.signUpComplete = function () {\r\n // this.gaSignUpEvent('Complete');\r\n this.fbPixelSignUpComplete();\r\n this.trackSignUp('Email');\r\n };\r\n AnalyticSvc.prototype.signUpProfileComplete = function (provider) {\r\n // this.gaSignUpEvent('ProfileComplete', provider);\r\n };\r\n AnalyticSvc.prototype.signUpSocialSubmit = function (provider) {\r\n // this.gaSignUpEvent('Submit', provider);\r\n };\r\n AnalyticSvc.prototype.signUpSocialComplete = function (provider) {\r\n // this.gaSignUpEvent('Complete', provider);\r\n this.fbPixelSignUpComplete();\r\n this.trackSignUp(provider);\r\n };\r\n AnalyticSvc.prototype.login = function (user) {\r\n // this.gaSetUserId(user.userId); // TODO maybe need in the future\r\n this.trackLoginMixpanel();\r\n };\r\n AnalyticSvc.prototype.logout = function () {\r\n // this.gaSetUserId(null);// TODO maybe need in the future\r\n this.mixpanelLogout();\r\n };\r\n AnalyticSvc.prototype.visitPage = function (pageName, additionalParams) {\r\n if (additionalParams === void 0) { additionalParams = {}; }\r\n var params = tslib_1.__assign({ Product: this.getProduct() }, additionalParams);\r\n this.trackMixpanel(\"Visit \" + pageName, params);\r\n };\r\n AnalyticSvc.prototype.changePage = function () {\r\n if (!window.ga)\r\n return;\r\n this.ga('set', 'page', this.$location.url());\r\n this.ga('send', 'pageview');\r\n };\r\n AnalyticSvc.prototype.getPlan = function () {\r\n var _a = options.user.subscriptionDetails, wave = _a.wave, studio = _a.studio;\r\n return {\r\n 'WAVE Plan': wave.displayName,\r\n 'STUDIO Plan': studio.displayName\r\n };\r\n };\r\n AnalyticSvc.prototype.selectProduct = function (product) {\r\n this.mpSelectProduct(product);\r\n };\r\n AnalyticSvc.prototype.fbq = function () {\r\n var arg = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arg[_i] = arguments[_i];\r\n }\r\n return window.fbq && window.fbq.apply(window, arg);\r\n };\r\n AnalyticSvc.prototype.ga = function () {\r\n var arg = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arg[_i] = arguments[_i];\r\n }\r\n return window.ga && window.ga.apply(window, arg);\r\n };\r\n AnalyticSvc.prototype.mpSelectProduct = function (product) {\r\n return this.getMixPanel(function (mixpanel) {\r\n mixpanel.track('Selected Product', { 'Product': product });\r\n });\r\n };\r\n AnalyticSvc.prototype.fbPixelSignUpComplete = function () {\r\n var _a = options.user.meta, industry = _a.industry, goals = _a.goals, occupation = _a.occupation;\r\n var params = {\r\n product: this.getProduct(),\r\n industry: industry,\r\n goals: goals\r\n };\r\n if (occupation) {\r\n params['occupation'] = occupation;\r\n }\r\n this.fbq('trackCustom', 'CompleteRegistration', params);\r\n };\r\n AnalyticSvc.prototype.fbqChangeSubscription = function (oldPlan, toPlan, toPeriod) {\r\n if (toPlan === void 0) { toPlan = this.getDefaultPlan(); }\r\n this.fbq('trackCustom', 'ChangePlan', {\r\n product: this.getProduct(),\r\n new_plan: toPlan,\r\n old_plan: oldPlan,\r\n period: toPeriod\r\n });\r\n };\r\n AnalyticSvc.prototype.mpChangeSubscription = function (action, oldPlan, oldPeriod, toPlan, toPeriod, chargedAmount, coupon) {\r\n var _this = this;\r\n if (toPlan === void 0) { toPlan = this.getDefaultPlan(); }\r\n this.getMixPanel(function (mixpanel) {\r\n var params = (_a = {},\r\n _a[_this.getProduct() + \" Plan\"] = toPlan,\r\n _a[_this.getProduct() + \" Old Plan\"] = oldPlan,\r\n _a['Old Period'] = oldPeriod,\r\n _a.Period = toPeriod,\r\n _a);\r\n if (chargedAmount && action === 'upgrade') {\r\n params['Charged'] = chargedAmount.toString();\r\n mixpanel.people.track_charge(chargedAmount);\r\n }\r\n if (coupon)\r\n params['Coupon'] = coupon;\r\n var eventName = Strings_1.Strings.capitalize(action) + 'd';\r\n _this.registerUserProperties();\r\n _this.trackMixpanel(eventName, params);\r\n var _a;\r\n });\r\n };\r\n AnalyticSvc.prototype.gaChangeSubscription = function (action, toPlan) {\r\n var isFree = ['WaveFree', 'Free'].includes(toPlan);\r\n if (action === 'upgrade' || isFree) {\r\n var eventName = Strings_1.Strings.capitalize(action);\r\n this.ga('send', 'event', this.getProduct(), eventName);\r\n }\r\n };\r\n AnalyticSvc.prototype.trackVisit = function () {\r\n var _this = this;\r\n return this.getMixPanel(function (mixpanel) {\r\n if (!_this.forceVisitTracking)\r\n return;\r\n var canVisit = !_this.$state.current.name.includes('activate') &&\r\n window.performance.navigation.type === 0;\r\n if (!canVisit)\r\n return;\r\n _this.forceVisitTracking = false;\r\n var params = { Source: _this.getSource() };\r\n mixpanel.register_once(params);\r\n mixpanel.people.set_once(params);\r\n if (options.user.anonymous) {\r\n var first_params = AnalyticSvc.campaignParams();\r\n var landingInfoParams = _this.landingTemplateSvc.getTrackInfo();\r\n mixpanel.people.set_once(first_params);\r\n mixpanel.track('Guest Visit', tslib_1.__assign({}, landingInfoParams, first_params));\r\n }\r\n else {\r\n mixpanel.identify(options.user.userIdAsString);\r\n mixpanel.track('Visit', {});\r\n }\r\n });\r\n };\r\n AnalyticSvc.getQueryParam = function (url, param) {\r\n // Expects a raw URL\r\n param = param.replace(/[[]/, \"\\[\").replace(/[]]/, \"\\]\");\r\n var regexS = \"[\\?&]\" + param + \"=([^&#]*)\", regex = new RegExp(regexS), results = regex.exec(url);\r\n if (results === null || (results && typeof (results[1]) !== 'string' && results[1].length)) {\r\n return '';\r\n }\r\n else {\r\n return decodeURIComponent(results[1]).replace(/\\W/gi, ' ');\r\n }\r\n };\r\n ;\r\n AnalyticSvc.campaignParams = function () {\r\n var campaign_keywords = 'utm_source utm_medium utm_campaign utm_content utm_term'.split(' '), kw = '', first_params = {};\r\n var index;\r\n for (index = 0; index < campaign_keywords.length; ++index) {\r\n kw = AnalyticSvc.getQueryParam(document.URL, campaign_keywords[index]);\r\n if (kw.length) {\r\n first_params[campaign_keywords[index] + ' [first touch]'] = kw;\r\n }\r\n }\r\n return first_params;\r\n };\r\n AnalyticSvc.prototype.getSource = function () {\r\n var referrer = document.referrer;\r\n if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\r\n return 'Google';\r\n }\r\n else if (referrer.search('https?://(.*)bing.([^/?]*)') === 0) {\r\n return 'Bing';\r\n }\r\n else if (referrer.search('https?://(.*)quora.([^/?]*)') === 0) {\r\n return 'Quora';\r\n }\r\n else if (referrer.search('https?://(.*)facebook.([^/?]*)') === 0) {\r\n return 'Facebook';\r\n }\r\n else if (referrer.search('https?://(.*)twitter.([^/?]*)') === 0) {\r\n return 'Twitter';\r\n }\r\n else if (referrer.search('https?://(.*)animatron.([^/?]*)') === 0) {\r\n return 'Animatron';\r\n }\r\n else if (referrer.search('https?://(.*)youtube.([^/?]*)') === 0) {\r\n return 'Youtube';\r\n }\r\n else if (referrer.search('https?://(.*)yahoo.([^/?]*)') === 0) {\r\n return 'Yahoo';\r\n }\r\n else if (referrer.search('https?://(.*)naver.([^/?]*)') === 0) {\r\n return 'Naver';\r\n }\r\n else {\r\n return referrer;\r\n }\r\n };\r\n AnalyticSvc.prototype.mixpanelLogout = function () {\r\n var _this = this;\r\n return this.getMixPanel(function (mixpanel) {\r\n mixpanel.reset();\r\n _this.forceVisitTracking = true;\r\n });\r\n };\r\n AnalyticSvc.prototype.getMixPanel = function (func) {\r\n return this.mixpanelEnabled && window.mixpanel && func(window.mixpanel);\r\n };\r\n AnalyticSvc.prototype.registerCommonProperties = function () {\r\n var props = {\r\n Place: 'Website'\r\n };\r\n if (this.getProduct() !== 'ANY') {\r\n props['Product'] = this.getProduct();\r\n }\r\n return this.getMixPanel(function (mixpanel) { return mixpanel.register(props); });\r\n };\r\n AnalyticSvc.prototype.registerUserProperties = function () {\r\n var _this = this;\r\n this.getMixPanel(function (mixpanel) {\r\n var props = tslib_1.__assign({}, _this.getPlan(), { '$name': options.user.displayName, Username: options.user.username, Product: _this.getProduct() });\r\n if (options.user.email) {\r\n props['$email'] = options.user.email;\r\n }\r\n mixpanel.register(props);\r\n });\r\n };\r\n AnalyticSvc.prototype.userInfoMixpanel = function () {\r\n var displayName = options.user.displayName, idx = displayName.indexOf(' ');\r\n var props = tslib_1.__assign({}, this.getPlan(), { '$name': displayName, '$first_name': idx >= 0 ? displayName.substring(0, idx) : displayName, '$last_name': idx >= 0 ? displayName.substring(idx + 1) : '', userId: options.user.userIdAsString, Username: options.user.username, Industry: options.user.meta.industry, Occupation: options.user.meta.occupation, Goals: options.user.meta.goals });\r\n if (options.user.email) {\r\n props['$email'] = options.user.email;\r\n }\r\n return props;\r\n };\r\n AnalyticSvc.prototype.trackMixpanel = function (eventName, opts) {\r\n var _this = this;\r\n return this.getMixPanel(function (m) {\r\n // the setTimeout fix some problem with browser request canceled\r\n setTimeout(function () {\r\n m.track(eventName, opts);\r\n (_a = _this.$log).debug.apply(_a, ['Mixpanel track: '].concat(m[0]));\r\n var _a;\r\n }, 100);\r\n return m;\r\n });\r\n };\r\n AnalyticSvc.prototype.trackLoginMixpanel = function () {\r\n var _this = this;\r\n return this.getMixPanel(function (mixpanel) {\r\n _this.forceVisitTracking = true;\r\n _this.registerUserProperties();\r\n _this.trackVisit();\r\n mixpanel.people.set(_this.userInfoMixpanel());\r\n });\r\n };\r\n AnalyticSvc.prototype.isAllowedMethod = function (provider) {\r\n return !_.isUndefined(provider) &&\r\n ['google', 'facebook', 'email', 'twitter'].indexOf(provider.toLowerCase()) !== 1;\r\n };\r\n AnalyticSvc.prototype.trackSignUp = function (provider) {\r\n var _this = this;\r\n if (this.isAllowedMethod(provider)) {\r\n this.getMixPanel(function (mixpanel) {\r\n mixpanel.alias(options.user.userIdAsString);\r\n mixpanel.people.set(_.extend({\r\n '$created': new Date().toISOString(),\r\n Provider: provider,\r\n Place: 'Website',\r\n Product: options.user.meta.product\r\n }, _this.userInfoMixpanel()));\r\n _this.registerUserProperties();\r\n mixpanel.track('Sign Up', { Provider: Strings_1.Strings.capitalize(provider) });\r\n });\r\n }\r\n };\r\n AnalyticSvc.prototype.getDefaultPlan = function () {\r\n return this.getProduct() === 'WAVE' ? 'WaveFree' : 'Free';\r\n };\r\n AnalyticSvc.prototype.getProduct = function () {\r\n return underscore_extensions_1.Utils.getProduct();\r\n };\r\n AnalyticSvc.prototype.gaSetUserId = function (userId) {\r\n this.ga('set', 'userId', userId);\r\n };\r\n AnalyticSvc.prototype.gaSignUpEvent = function (eventName, provider) {\r\n if (provider === void 0) { provider = 'Email'; }\r\n this.ga('send', 'event', 'SignUp', eventName, Strings_1.Strings.capitalize(provider.toLowerCase()));\r\n };\r\n AnalyticSvc.prototype.gaProductSignUpEvent = function () {\r\n this.ga('send', 'event', this.getProduct(), 'Sign Up');\r\n };\r\n return AnalyticSvc;\r\n}());\r\nexports.AnalyticSvc = AnalyticSvc;\r\nmodule_1.default.service('analyticSvc', AnalyticSvc);\r\n\n\n/***/ }),\n\n/***/ \"4HmH\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar RescaleSvc_1 = __webpack_require__(\"7T+Z\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nmodule_1.default.directive('pickPreviewImage', [\"AnimatronPreviews\", function (AnimatronPreviews) {\r\n return function (scope, element, attrs) {\r\n var project = scope.project || (scope.$ctrl && scope.$ctrl.project);\r\n var opts = scope.$eval(attrs.pickPreviewImage) || {};\r\n var width = opts.width || 720;\r\n if (opts.rescale) {\r\n underscore_extensions_1.Utils.rAF(function () {\r\n var w = element[0].getBoundingClientRect().width - 20;\r\n var dim = RescaleSvc_1.RescaleSvc.resizeWithAspectRatio(project.width * 9999, project.height * 9999, w, opts.rescale.height);\r\n element[0].style.width = dim.width + 'px';\r\n element[0].style.height = dim.height + 'px';\r\n });\r\n }\r\n var preview = AnimatronPreviews\r\n .pickPreview(opts.images || project.preview_metadata, width)\r\n .replace(/(http:|https:)/, '');\r\n var image = document.createElement('img');\r\n image.classList.add('preview');\r\n image.src = preview;\r\n if (project) {\r\n image.style.color = 'transparent';\r\n image.alt = project.name;\r\n }\r\n element[0].appendChild(image);\r\n image.onerror = function () {\r\n element.addClass('animatron-hero-background');\r\n image.style.display = 'none';\r\n };\r\n // image.onload = () => element[0].appendChild(image);\r\n };\r\n}]);\r\n\n\n/***/ }),\n\n/***/ \"4NXJ\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar AnimatronProjectsSvc_1 = __webpack_require__(\"P9JW\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar OpenEditor = (function () {\r\n OpenEditor.$inject = [\"$state\", \"AnimatronProjects\"];\r\n function OpenEditor($state, AnimatronProjects) {\r\n this.$state = $state;\r\n this.AnimatronProjects = AnimatronProjects;\r\n this.action = this.action || 'openVideoTemplates';\r\n }\r\n OpenEditor.prototype.clickHandler = function () {\r\n switch (this.action) {\r\n case 'create':\r\n this.createNew();\r\n break;\r\n case 'openVideoTemplates':\r\n this.openVideoTemplates();\r\n break;\r\n case 'edit':\r\n this.edit();\r\n break;\r\n case 'duplicate':\r\n this.duplicate();\r\n break;\r\n }\r\n };\r\n OpenEditor.prototype.goUpgrade = function () {\r\n var _this = this;\r\n this.$state.go('wave-pricing').then(function () { return _this.isUpgradeDialog = false; });\r\n };\r\n OpenEditor.prototype.edit = function () {\r\n if (this.canOpen && this.projectId) {\r\n window.open(options.waveEditorDomain + \"#p=\" + this.projectId, '_blank');\r\n }\r\n };\r\n OpenEditor.prototype.duplicate = function () {\r\n if (this.canOpen && this.projectId) {\r\n window.open(options.waveEditorDomain + \"#d=\" + this.projectId, '_blank');\r\n }\r\n };\r\n OpenEditor.prototype.createNew = function () {\r\n var _this = this;\r\n var query = '';\r\n if (this.params) {\r\n query = underscore_extensions_1.Utils.toParams(this.params);\r\n query = \"&\" + query;\r\n }\r\n this.setVideosCount().then(function () {\r\n if (_this.canCreate) {\r\n if (_this.canOpen) {\r\n window.open(options.waveEditorDomain + \"#new=1\" + query, '_self');\r\n }\r\n }\r\n else {\r\n _this.isUpgradeDialog = true;\r\n }\r\n });\r\n };\r\n OpenEditor.prototype.openVideoTemplates = function () {\r\n this.$state.go('video-templates');\r\n };\r\n OpenEditor.prototype.setVideosCount = function () {\r\n var _this = this;\r\n var params = {\r\n product: 'WAVE',\r\n offset: 0,\r\n limit: 0\r\n };\r\n var animatronProjects = new AnimatronProjectsSvc_1.AnimatronProjects(params, true);\r\n return animatronProjects.nextPage().then(function () { return _this.videosCount = animatronProjects.count; });\r\n };\r\n Object.defineProperty(OpenEditor.prototype, \"canOpen\", {\r\n get: function () {\r\n if (options.handHeld) {\r\n this.$state.go('editor-redirect');\r\n return false;\r\n }\r\n return true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(OpenEditor.prototype, \"canCreate\", {\r\n get: function () {\r\n return this.details.name !== 'WaveFree' || this.videosCount < this.videosLimit;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(OpenEditor.prototype, \"details\", {\r\n get: function () {\r\n return options.user.subscriptionDetails.wave;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(OpenEditor.prototype, \"videosLimit\", {\r\n get: function () {\r\n return this.details.features.rolez.PrivateUnlistedProjects.numProjects;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return OpenEditor;\r\n}());\r\nexports.OpenEditor = OpenEditor;\r\nmodule_1.default.component('openEditor', {\r\n bindings: {\r\n className: '@',\r\n action: '@?',\r\n params: '<',\r\n projectId: '\\n \\n \\n \",\r\n compile: function (el, attrs) {\r\n if (_.isString(attrs.btnClass)) {\r\n var classes = attrs.btnClass.split(' ');\r\n classes.forEach(function (v) { return el[0].querySelector('.button').classList.add(v); });\r\n }\r\n return this.link;\r\n },\r\n link: function (scope, element, attrs, FormCtrl) {\r\n scope.minDelay = scope.minDelay || 800;\r\n var timeOn = 0;\r\n var timeoutHideSpinner;\r\n // animation for appear loader - add padding-right and CSS3 will animate\r\n scope.$watch('loading', function (loading) {\r\n if (loading) {\r\n scope.loadingShow = true; // show spinner\r\n timeOn = _.now(); // get current date\r\n }\r\n else {\r\n var delay = _.now() - timeOn; //show - how much time passed after spinner was started\r\n timeoutHideSpinner = $timeout(function () {\r\n scope.loadingShow = false; // hide spinner\r\n }, delay > scope.minDelay ? 0 : scope.minDelay - delay); // spinner must work 800 more\r\n }\r\n });\r\n scope.click = function () {\r\n if (scope.type === 'submit' && FormCtrl)\r\n FormCtrl.$setSubmitted();\r\n scope.onClick();\r\n };\r\n scope.$on('$destroy', function () { return $timeout.cancel(timeoutHideSpinner); });\r\n }\r\n}); }]);\r\n\n\n/***/ }),\n\n/***/ \"4uz1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-billing-info-form_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n/***/ }),\n\n/***/ \"4zkA\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/12.svg\";\n\n/***/ }),\n\n/***/ \"57HE\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-video-statistics_92c24a88b8034bde76441db81bb6e76d.css\";\n\n/***/ }),\n\n/***/ \"5G1g\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/icon-text-list_e503683656aa9b351ad23d6a1733c12a.css\";\n\n/***/ }),\n\n/***/ \"5MIU\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/contest-days-top-section_a351dd78454d42385c4e42ae3ba62c57.css\";\n\n/***/ }),\n\n/***/ \"5TC1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/f_bsh-button_e9d9078c1eb087f46811f3ddb485d0b8.css\";\n\n/***/ }),\n\n/***/ \"5W2z\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/title-block_2a4adc6506cca5788081e149c97ecbee.css\";\n\n/***/ }),\n\n/***/ \"5hi/\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nmodule_1.default.filter('uniqueFilter', function () { return function (items, filterOn) {\r\n return _.unique(items, false, function (item) { return item[filterOn]; });\r\n}; });\r\nmodule_1.default.filter('prependHttp', function () { return function (url) {\r\n if (Strings_1.Strings.isBlank(url))\r\n return '';\r\n var withHttp = url.indexOf('http://') === 0 || url.indexOf('https://') === 0;\r\n return withHttp ? url : 'http://' + url;\r\n}; });\r\nmodule_1.default.filter('visibilityExplanation', [\"TranslateSvc\", function (TranslateSvc) {\r\n var visibilities = {\r\n 'public': TranslateSvc.get('visibility.public'),\r\n 'unlisted': TranslateSvc.get('visibility.unlisted'),\r\n 'private': TranslateSvc.get('visibility.private')\r\n };\r\n return function (visibility) { return visibilities[(visibility || 'public').toLowerCase()]; };\r\n}]);\r\nmodule_1.default.filter('encodeUrl', function () { return function (url) { return encodeURIComponent(url); }; });\r\nmodule_1.default.filter('trust', [\"$sce\", function ($sce) { return function (html) { return $sce.trustAsHtml(html); }; }]);\r\nmodule_1.default.filter('encodeUsername', function () { return function (username) { return Strings_1.Strings.encodeUsername(username); }; });\r\nmodule_1.default.filter('formatNumbers', function () {\r\n return function (num) {\r\n num = num.toString();\r\n if (num.length >= 5) {\r\n return num.replace(/(\\d)(?=(\\d{3})+$)/g, '$1 ');\r\n }\r\n return num;\r\n };\r\n});\r\nmodule_1.default.filter('removeUrlProtocol', function () { return function (url) { return Strings_1.Strings.removeUrlProtocol(url); }; });\r\nmodule_1.default.filter('toCardId', function () {\r\n var cards = {\r\n 'american express': 'amex',\r\n 'diners club': 'diners'\r\n };\r\n return function (str) {\r\n return angular.isString(str) ? cards[str] || str : '';\r\n };\r\n});\r\nmodule_1.default.filter('parseDate', function () {\r\n return function (str) {\r\n if (_.isString(str)) {\r\n var conventionalDate = str.split('/').reverse().join('/');\r\n return new Date(conventionalDate).getTime().toString();\r\n }\r\n else {\r\n return '';\r\n }\r\n };\r\n});\r\nmodule_1.default.filter('stripTags', function () { return function (input) { return Strings_1.Strings.stripTags(input); }; });\r\nmodule_1.default.filter('linky', [\"$sce\", function ($sce) {\r\n var LINKY_URL_REGEXP = /((ftp|https?):\\/\\/|(www\\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\\S*[^\\s.;,(){}<>\"”’]/, MAILTO_REGEXP = /^mailto:/;\r\n return function (text, target) {\r\n if (!text)\r\n return text;\r\n var match;\r\n var raw = text;\r\n var html = [];\r\n var url;\r\n var i;\r\n while ((match = raw.match(LINKY_URL_REGEXP))) {\r\n // We can not end in these as they are sometimes found at the end of the sentence\r\n url = match[0];\r\n // if we did not match ftp/http/www/mailto then assume mailto\r\n if (!match[2] && !match[4]) {\r\n url = (match[3] ? 'http://' : 'mailto:') + url;\r\n }\r\n i = match.index;\r\n addText(raw.substr(0, i));\r\n addLink(url, match[0].replace(MAILTO_REGEXP, ''));\r\n raw = raw.substring(i + match[0].length);\r\n }\r\n addText(raw);\r\n return $sce.trustAsHtml(html.join(''));\r\n function addText(text) {\r\n if (text) {\r\n html.push(text);\r\n }\r\n }\r\n function addLink(url, text) {\r\n html.push('');\r\n addText(text);\r\n html.push('');\r\n }\r\n };\r\n}]);\r\n\n\n/***/ }),\n\n/***/ \"5j0l\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/feedback-slider_0b4e221d2e9a21b636c237b4ae2f198d.css\";\n\n/***/ }),\n\n/***/ \"5l58\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/11.svg\";\n\n/***/ }),\n\n/***/ \"5uTM\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nmodule_1.default.directive('headroom', [\"$rootScope\", \"$state\", \"LocalStorageSvc\", function ($rootScope, $state, LocalStorageSvc) {\r\n return function (scope, element) {\r\n var header = element[0];\r\n var headerHeight = 72; // just hardcode, can be even null, but this should be better\r\n var isTop = true;\r\n var lastKnownScrollY = 0;\r\n window.addEventListener('scroll', _.throttle(function () { return underscore_extensions_1.Utils.rAF(function () {\r\n if (document.documentElement.classList.contains('noscroll')) {\r\n return;\r\n }\r\n var scrollY = window.scrollY || window.pageYOffset;\r\n if (scrollY >= headerHeight && isTop) {\r\n isTop = false;\r\n header.classList.add('not-top');\r\n if (!LocalStorageSvc.get('banner-shown')) {\r\n $rootScope.$apply(function () {\r\n $rootScope.headerNotTop = true;\r\n LocalStorageSvc.set('banner-shown', true);\r\n });\r\n }\r\n }\r\n else if (scrollY < headerHeight && !isTop) {\r\n isTop = true;\r\n header.classList.remove('not-top');\r\n }\r\n if (scrollY < lastKnownScrollY) {\r\n header.classList.add('scrolled-up');\r\n }\r\n else if (scrollY > lastKnownScrollY) {\r\n header.classList.remove('scrolled-up');\r\n }\r\n lastKnownScrollY = scrollY;\r\n }); }, 50));\r\n };\r\n}]);\r\n\n\n/***/ }),\n\n/***/ \"5zD6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/spin.png\";\n\n/***/ }),\n\n/***/ \"67wm\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/countdown-section_6cec200ba43d472947cfe678c2734922.css\";\n\n/***/ }),\n\n/***/ \"6JEJ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/favicon-wave.ico\";\n\n/***/ }),\n\n/***/ \"6M8O\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar StudioHeader = (function () {\r\n StudioHeader.$inject = [\"$state\", \"AuthenticationSvc\"];\r\n function StudioHeader($state, AuthenticationSvc) {\r\n this.$state = $state;\r\n this.AuthenticationSvc = AuthenticationSvc;\r\n }\r\n StudioHeader.prototype.handlerClickLogin = function () {\r\n options.handHeld ? this.$state.go('studio-login') : this.AuthenticationSvc.toggleLoginModal();\r\n };\r\n return StudioHeader;\r\n}());\r\nmodule_1.default.component('studioHeader', {\r\n controller: StudioHeader,\r\n templateUrl: __webpack_require__(\"1aEF\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"6XG8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = 'https://assets.animatron.com/html/explore.html';\nvar html = \"
{{::$root.t('project.you.empty')}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"6bdG\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/company_45fcda67dabbe14c31e58d89a42c1a00.css\";\n\n/***/ }),\n\n/***/ \"6cC1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/week3_df0f716fff2548446c827d7199219752.html\";\n\n/***/ }),\n\n/***/ \"6cdR\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar CookieSettings_1 = __webpack_require__(\"wz+r\");\r\nvar TranslateSvc = (function () {\r\n TranslateSvc.$inject = [\"$http\", \"$log\", \"$ocLazyLoad\", \"$q\", \"ipCookie\", \"AuthenticationSvc\", \"HttpSvc\"];\r\n function TranslateSvc($http, $log, $ocLazyLoad, $q, ipCookie, AuthenticationSvc, HttpSvc) {\r\n var _this = this;\r\n this.$http = $http;\r\n this.$log = $log;\r\n this.$ocLazyLoad = $ocLazyLoad;\r\n this.$q = $q;\r\n this.ipCookie = ipCookie;\r\n this.AuthenticationSvc = AuthenticationSvc;\r\n this.HttpSvc = HttpSvc;\r\n this.map = {};\r\n this.initialized = false;\r\n this.domainToLang = {\r\n kr: 'ko'\r\n };\r\n this.supportedLangs = _.object(_.pairs({\r\n en: 'English',\r\n ko: '한국어'\r\n }).filter(function (l) { return !true || TranslateSvc.productionLangs.includes(l[0]); }));\r\n this.async = function (key) { return _this.fetchTranslations().then(function () { return _this.get(key); }); };\r\n this.fetchTranslations = _.once(function () { return _this.$q(function (resolve) {\r\n var current = _this.currentLang();\r\n _this.changeLocale(current);\r\n var url = __webpack_require__(\"U56v\")(\"./\" + current + \".json\");\r\n return _this.$http.get(url).then(function (r) { return _this.set(r.data, current, resolve); });\r\n }); });\r\n }\r\n TranslateSvc.prototype.has = function (key) {\r\n return !!this.map[this.formattedKey(key)];\r\n };\r\n TranslateSvc.prototype.get = function (key) {\r\n var params = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n params[_i - 1] = arguments[_i];\r\n }\r\n var k = this.formattedKey(key);\r\n if (k && this.initialized && !this.map[k]) {\r\n if (false) {\r\n this.$log.error(\"missing translation for '\" + k + \"'\");\r\n _.notification.showError(\"missing translation for '\" + k + \"'\");\r\n }\r\n return k;\r\n }\r\n if (key && !_.isString(key))\r\n this.$log.error(\"wrong key used for translation: '\" + key + \"'\");\r\n return this.map[k] ? params.reduce(function (str, param) { return str.replace(/{\\d}/, param); }, this.map[k]) : undefined;\r\n };\r\n ;\r\n TranslateSvc.prototype.langChange = function (lang) {\r\n if (!(lang in this.supportedLangs))\r\n throw new Error(\"how come? \" + lang);\r\n if (lang === this.lang)\r\n return;\r\n this.ipCookie(TranslateSvc.cookieName, lang, CookieSettings_1.CookieSettings.get());\r\n new Promise(function () { return document.body.style.cursor = 'progress'; });\r\n if (!options.user.anonymous) {\r\n var newProps = { meta: { lang: lang } };\r\n this.AuthenticationSvc.extendUser(newProps);\r\n this.HttpSvc('profile').securePut(newProps).then(function () { return location.reload(); });\r\n }\r\n else {\r\n location.reload();\r\n }\r\n };\r\n ;\r\n TranslateSvc.prototype.currentLang = function () {\r\n var langProps = ['language', 'browserLanguage', 'systemLanguage', 'userLanguage'];\r\n try {\r\n var foundLang = (options.user.meta && options.user.meta.lang) ||\r\n this.ipCookie(TranslateSvc.cookieName) ||\r\n this.langFromTLD() ||\r\n navigator[_.find(langProps, function (l) { return l in navigator; })].split('_')[0].split('-')[0].toLowerCase();\r\n return foundLang in this.supportedLangs ? foundLang : TranslateSvc.defaultLang;\r\n }\r\n catch (e) {\r\n this.$log.error(e);\r\n return TranslateSvc.defaultLang;\r\n }\r\n };\r\n ;\r\n TranslateSvc.prototype.set = function (map, current, resolve) {\r\n this.lang = current;\r\n this.map = map;\r\n Object.freeze(this.map);\r\n this.initialized = true;\r\n this.ipCookie(TranslateSvc.cookieName, this.lang, CookieSettings_1.CookieSettings.get());\r\n document.documentElement.lang = this.lang;\r\n Object.freeze(this);\r\n resolve(this.map);\r\n };\r\n TranslateSvc.prototype.changeLocale = function (lang) {\r\n if (lang === 'en')\r\n return;\r\n this.$ocLazyLoad.load({\r\n name: 'ngLocale',\r\n files: [\"https://cdnjs.cloudflare.com/ajax/libs/angular-i18n/1.6.7/angular-locale_\" + lang + \".min.js\"]\r\n }).then(function () {\r\n try {\r\n angular.merge(angular.element(document).injector().get('$locale'), angular.injector(['ngLocale']).get('$locale'));\r\n }\r\n catch (e) {\r\n console.error('error chaning $locale', e);\r\n }\r\n });\r\n };\r\n TranslateSvc.prototype.langFromTLD = function () {\r\n return this.domainToLang[location.hostname.split('.').pop()];\r\n };\r\n TranslateSvc.prototype.formattedKey = function (key) {\r\n return (_.isString(key) && key.replace(/\\s+/g, '.')) || null;\r\n };\r\n return TranslateSvc;\r\n}());\r\nTranslateSvc.cookieName = '_animatron_lang';\r\nTranslateSvc.defaultLang = 'en';\r\nTranslateSvc.productionLangs = ['en', 'ko'];\r\nexports.TranslateSvc = TranslateSvc;\r\nmodule_1.default\r\n .service('TranslateSvc', TranslateSvc)\r\n .directive('tHtml', [\"$sce\", \"TranslateSvc\", function ($sce, TranslateSvc) { return ({\r\n scope: false,\r\n restrict: 'A',\r\n link: function (scope, element, attrs) {\r\n element.html($sce.trustAs('html', TranslateSvc.get(attrs.tHtml)));\r\n }\r\n}); }]);\r\n\n\n/***/ }),\n\n/***/ \"6gbB\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/editor-redirect_bbe3d07ad3c6be2564d9d9be71acb767.css\";\n\n/***/ }),\n\n/***/ \"6w4i\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar AnimatronSvc = (function () {\r\n function AnimatronSvc(query, secure, api, callback) {\r\n if (query === void 0) { query = {}; }\r\n if (secure === void 0) { secure = false; }\r\n if (api === void 0) { api = ''; }\r\n if (callback === void 0) { callback = angular.noop; }\r\n this.callback = callback;\r\n this.retries = 0;\r\n this.retriesMax = 120;\r\n this.results = [];\r\n this.pages = [];\r\n this.busy = false;\r\n this.currentPage = 0;\r\n this.count = 0;\r\n this.totalPages = 0;\r\n this.shownAll = false;\r\n this.loaded = false;\r\n this.seoPage = +this.$stateParams.page;\r\n this.query = {\r\n product: 'STUDIO',\r\n offset: 0,\r\n limit: 10\r\n };\r\n this.setSecure(secure, api);\r\n this.modifyQuery(query);\r\n if (this.onCreate)\r\n this.onCreate();\r\n this.addSeoPagination();\r\n }\r\n /*abstract*/\r\n AnimatronSvc.prototype.onCreate = function () {\r\n };\r\n /*abstract*/\r\n AnimatronSvc.prototype.decorate = function (results) {\r\n };\r\n AnimatronSvc.prototype.setSecure = function (secure, api) {\r\n if (api === void 0) { api = ''; }\r\n if (secure && Strings_1.Strings.isBlank(options.headers['Animatron-Security-Token'])) {\r\n if (console.trace)\r\n console.trace();\r\n throw new Error('Empty cookie');\r\n }\r\n this.owner = secure;\r\n this.httpGet = this.makeHttpSvc(secure, api);\r\n };\r\n AnimatronSvc.prototype.modifyQuery = function (query) {\r\n if (!_.isObject(query))\r\n throw new Error('incorrect query');\r\n if (!this.owner && this.foreignAccess)\r\n this.query.scope = 'FOREIGN';\r\n _.extend(this.query, query);\r\n };\r\n AnimatronSvc.prototype.reset = function () {\r\n this.busy = this.shownAll = false;\r\n this.currentPage = this.count = 0;\r\n };\r\n AnimatronSvc.prototype.getResultsOnPage = function (pageNum) {\r\n if (pageNum === void 0) { pageNum = this.currentPage; }\r\n return this.pages[pageNum];\r\n };\r\n AnimatronSvc.prototype.nextPage = function (shuffle) {\r\n var _this = this;\r\n if (shuffle === void 0) { shuffle = false; }\r\n if (this.busy || this.shownAll || (this.seoPage && this.results.length > 0))\r\n return this.$q.reject();\r\n return this.loadPage(++this.currentPage).then(function (result) {\r\n if (shuffle)\r\n _this.results = _.shuffle(_this.results);\r\n var lastPage = _.last(_this.pages);\r\n if (lastPage && lastPage.length > 0)\r\n _this.callback(lastPage);\r\n return result;\r\n });\r\n };\r\n AnimatronSvc.prototype.reorderPages = function () {\r\n var _this = this;\r\n if (this.pages.length === 0)\r\n return;\r\n var prevIndex;\r\n var pageNumber = 1;\r\n var pages = [];\r\n var itemsList = [];\r\n this.pages.forEach(function (items, index) {\r\n if (!prevIndex) {\r\n prevIndex = index;\r\n }\r\n if (!_.isEmpty(items) && prevIndex++ === index) {\r\n itemsList.push.apply(itemsList, items);\r\n }\r\n });\r\n itemsList.forEach(function (item) {\r\n if (pages[pageNumber] && pages[pageNumber].length >= _this.query.limit) {\r\n pageNumber++;\r\n }\r\n if (!pages[pageNumber]) {\r\n pages[pageNumber] = [];\r\n }\r\n pages[pageNumber].push(item);\r\n });\r\n var lastPageList = pages[pages.length - 1];\r\n if (lastPageList.length !== this.query.limit && !this.shownAll) {\r\n pages.pop();\r\n }\r\n this.totalPages = this.getTotalPages();\r\n this.pages = pages;\r\n };\r\n AnimatronSvc.prototype.changeLimit = function (limit) {\r\n this.query.limit = limit;\r\n this.reorderPages();\r\n };\r\n AnimatronSvc.prototype.loadPage = function (pageNum) {\r\n var _this = this;\r\n if (pageNum === void 0) { pageNum = this.currentPage; }\r\n if (!this.httpGet)\r\n return this.$q.reject('no httpGet');\r\n var resultsOnPage = this.getResultsOnPage(pageNum);\r\n if (resultsOnPage) {\r\n this.busy = false;\r\n return this.$q.resolve({ count: this.count, results: resultsOnPage });\r\n }\r\n this.busy = true;\r\n var pgNm = this.results.length === 0 ? this.seoPage || pageNum : pageNum;\r\n var params = _.extend({}, this.query, {\r\n offset: (pgNm - 1) * this.query.limit || 0\r\n });\r\n return this.httpGet({\r\n params: params,\r\n headers: this.headers\r\n }).then(function (r) { return r.data; }).then(function (data) {\r\n _this.loaded = true;\r\n if (_this.decorate)\r\n _this.decorate(data.results);\r\n _this.pages[pageNum] = data.results;\r\n _this.flattenResults();\r\n _this.count = data.count || _this.results.length;\r\n _this.totalPages = _this.getTotalPages();\r\n _this.shownAll = (!_this.query.noCount && _this.count <= _this.results.length) || data.results.length === 0;\r\n if (_this.shownAll) {\r\n _this.$rootScope.$emit('$projects:shownAll', _this);\r\n }\r\n _this.apiUnavaliable = _this.busy = false;\r\n return data;\r\n }, function (response) {\r\n var data = response.data, status = response.status;\r\n _this.loaded = true;\r\n if (status <= 0) {\r\n _this.apiUnavaliable = true;\r\n _this.$log.error('Error occurred getting results: ' + data + ',status: ' + status);\r\n return _this.retry(pageNum);\r\n }\r\n else {\r\n var message = data.message || 'Something went completely wrong';\r\n _.notification.showError(message);\r\n return Promise.reject(message);\r\n }\r\n });\r\n };\r\n AnimatronSvc.prototype.getTotalPages = function () {\r\n return Math.abs(Math.ceil(this.count / this.query.limit));\r\n };\r\n AnimatronSvc.prototype.flattenResults = function () {\r\n var _this = this;\r\n var flatResults = [];\r\n for (var i = 1; i < this.pages.length; i++) {\r\n var page = this.pages[i];\r\n if (!page)\r\n break;\r\n page.forEach(function (prj) { return flatResults.push(prj); });\r\n }\r\n if (this.uniqueId) {\r\n this.results = _.unique(flatResults, false, function (item) { return item[_this.uniqueId]; });\r\n }\r\n else {\r\n this.results = flatResults;\r\n }\r\n };\r\n AnimatronSvc.prototype.retry = function (pageNum) {\r\n var _this = this;\r\n var deferred = this.$q.defer();\r\n if (this.retries < this.retriesMax) {\r\n var timeoutId_1 = this.$timeout(function () {\r\n _this.$log.debug(_this.retries + \" retry out of \" + _this.retriesMax);\r\n _this.retries += 1;\r\n _this.busy = false;\r\n deferred.resolve(_this.loadPage(pageNum));\r\n }, 1000);\r\n this.$rootScope.$on('$stateChangeStart', function () { return _this.$timeout.cancel(timeoutId_1); });\r\n }\r\n else {\r\n var message = \"retry was called over \" + this.retriesMax;\r\n this.$log.warn(message);\r\n deferred.reject(message);\r\n }\r\n return deferred.promise;\r\n };\r\n AnimatronSvc.prototype.addSeoPagination = function () {\r\n if (this.$stateParams.hasOwnProperty('page')) {\r\n var mkLink_1 = function (rel) {\r\n return document.head.querySelector(\"[rel=\" + rel + \"]\") ||\r\n document.head.appendChild(document.createElement('link'));\r\n };\r\n var pageNum = this.seoPage || 1;\r\n [['prev', pageNum - 1], ['next', pageNum + 1]]\r\n .filter(function (_a) {\r\n var _ = _a[0], n = _a[1];\r\n return n > 0;\r\n })\r\n .forEach(function (_a) {\r\n var rel = _a[0], n = _a[1];\r\n var source = { rel: rel, href: location.pathname + \"?page=\" + n };\r\n var target = mkLink_1(rel);\r\n Object.assign(target, source);\r\n });\r\n }\r\n };\r\n return AnimatronSvc;\r\n}());\r\nexports.AnimatronSvc = AnimatronSvc;\r\n\n\n/***/ }),\n\n/***/ \"70FE\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar EventSvc = (function () {\r\n EventSvc.$inject = [\"$rootScope\", \"$state\", \"$log\"];\r\n function EventSvc($rootScope, $state, $log) {\r\n this.$rootScope = $rootScope;\r\n this.$state = $state;\r\n this.$log = $log;\r\n }\r\n EventSvc.prototype.init = function () {\r\n var _this = this;\r\n this.$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState) {\r\n //remove all listeners on page change. Can be dangerous, watch out!\r\n var hasTemplate = fromState.templateUrl\r\n || fromState.template\r\n || toState.templateUrl\r\n || toState.template;\r\n var isStateProject = function () {\r\n return options.animatronProducts.some(function (product) {\r\n return _this.$state.is(product.toLowerCase() + \"-project\");\r\n });\r\n };\r\n var isStateLogout = function () { return _this.$state.is('logout'); };\r\n if (!isStateProject() && hasTemplate && !isStateLogout) {\r\n var listeners_1 = _this.$rootScope.$$listeners;\r\n Object.keys(listeners_1)\r\n .filter(function (l) { return l.lastIndexOf('$', 0) !== 0 && listeners_1[l].length > 0; })\r\n .forEach(function (listener) {\r\n _this.$log.debug('Removing listener', listener);\r\n listeners_1[listener] = [];\r\n });\r\n }\r\n });\r\n };\r\n return EventSvc;\r\n}());\r\nexports.EventSvc = EventSvc;\r\nmodule_1.default.service('EventSvc', EventSvc);\r\n\n\n/***/ }),\n\n/***/ \"74nn\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-tutorials-list_91660c45f5caf31f576954095680b815.css\";\n\n/***/ }),\n\n/***/ \"7JoK\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/_slider_795fc02fb686f021c4c87e86580ad452.css\";\n\n/***/ }),\n\n/***/ \"7T+Z\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar RescaleSvc = (function () {\r\n function RescaleSvc() {\r\n }\r\n RescaleSvc.resizeWithAspectRatio = function (w, h, maxWidth, maxHeight, round, upscale) {\r\n if (round === void 0) { round = true; }\r\n if (upscale === void 0) { upscale = false; }\r\n var ratio, width = w, height = h, newDimension = {\r\n width: w,\r\n height: h\r\n };\r\n if (upscale) {\r\n width = width * 9999;\r\n height = height * 9999;\r\n }\r\n if (width > maxWidth) {\r\n ratio = maxWidth / width;\r\n newDimension.width = maxWidth;\r\n newDimension.height = height * ratio;\r\n height = height * ratio;\r\n width = width * ratio;\r\n }\r\n if (height > maxHeight) {\r\n ratio = maxHeight / height;\r\n newDimension.height = maxHeight;\r\n newDimension.width = width * ratio;\r\n }\r\n if (round) {\r\n Object.keys(newDimension).forEach(function (k) { return newDimension[k] = Math.round(newDimension[k]); });\r\n }\r\n return newDimension;\r\n };\r\n return RescaleSvc;\r\n}());\r\nexports.RescaleSvc = RescaleSvc;\r\n\n\n/***/ }),\n\n/***/ \"7UG8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/6.png\";\n\n/***/ }),\n\n/***/ \"7c9p\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/_checkbox_be1160f9b5847427b2dc1cad1e0a2dbc.css\";\n\n/***/ }),\n\n/***/ \"7f+t\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-company-quote_c3058a7abffcc0071f36f4e6ccc8f55e.css\";\n\n/***/ }),\n\n/***/ \"7s+J\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-bitmap_88b11cfb92b21fc2f06214ea40b84f7f.css\";\n\n/***/ }),\n\n/***/ \"7zPr\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/privacy_4b324e662dcfee78a76a75663c189aae.html\";\n\n/***/ }),\n\n/***/ \"8Acd\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/analytics_6744ac07d00ac27c141443f7cbed0893.css\";\n\n/***/ }),\n\n/***/ \"8IAX\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/9.svg\";\n\n/***/ }),\n\n/***/ \"8ReI\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/multi-share_05ce42ebf563f400b84c8f61e4027e04.html\";\n\n/***/ }),\n\n/***/ \"8dlX\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar WaveHeader = (function () {\r\n WaveHeader.$inject = [\"$state\", \"AuthenticationSvc\"];\r\n function WaveHeader($state, AuthenticationSvc) {\r\n this.$state = $state;\r\n this.AuthenticationSvc = AuthenticationSvc;\r\n }\r\n WaveHeader.prototype.handlerClickLogin = function () {\r\n options.handHeld ? this.$state.go('wave-login') : this.AuthenticationSvc.toggleLoginModal();\r\n };\r\n return WaveHeader;\r\n}());\r\nmodule_1.default.component('waveHeader', {\r\n controller: WaveHeader,\r\n templateUrl: __webpack_require__(\"eXN9\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"8gLI\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nAnimatronUsersSvcFactory.$inject = [\"$rootScope\", \"$log\", \"$timeout\", \"$q\", \"$stateParams\", \"HttpSvc\"];\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar AnimatronSvc_1 = __webpack_require__(\"6w4i\");\r\nvar AnimatronUsersSvc = (function (_super) {\r\n tslib_1.__extends(AnimatronUsersSvc, _super);\r\n function AnimatronUsersSvc(keyword, query, secure) {\r\n if (query === void 0) { query = {}; }\r\n if (secure === void 0) { secure = false; }\r\n var _this = _super.call(this, query, secure) || this;\r\n _this.keyword = encodeURIComponent(keyword);\r\n _this.setSecure(secure);\r\n return _this;\r\n }\r\n AnimatronUsersSvc.prototype.makeHttpSvc = function () {\r\n return this.HttpSvc('profile', 'search', this.keyword).get;\r\n };\r\n return AnimatronUsersSvc;\r\n}(AnimatronSvc_1.AnimatronSvc));\r\nexports.AnimatronUsersSvc = AnimatronUsersSvc;\r\nfunction AnimatronUsersSvcFactory($rootScope, $log, $timeout, $q, $stateParams, HttpSvc) {\r\n _.extend(AnimatronUsersSvc.prototype, {\r\n $rootScope: $rootScope, $log: $log, $timeout: $timeout, $q: $q, $stateParams: $stateParams, HttpSvc: HttpSvc\r\n });\r\n return AnimatronUsersSvc;\r\n}\r\nmodule_1.default.factory('AnimatronUsers', AnimatronUsersSvcFactory);\r\n\n\n/***/ }),\n\n/***/ \"8gmB\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/le-share-button_6603000fba95f99339d40540bf251d27.css\";\n\n/***/ }),\n\n/***/ \"9+MG\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/8.svg\";\n\n/***/ }),\n\n/***/ \"9/76\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = ([\r\n {\r\n url: 'wave',\r\n title: 'wv.landing.title',\r\n description: 'head.wave.description',\r\n preview: 'https://assets.animatron.com/images/landing/wavevideo_mainpage_preview.jpg',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'video-time',\r\n title: 'wave.main.video-time.title',\r\n description: 'wave.main.video-time.description',\r\n isScrollButton: true,\r\n buttons: true,\r\n timeSteps: [\r\n {\r\n isActive: true,\r\n title: 'wave.main.video-time.time-step-1.tile',\r\n time: 1\r\n },\r\n {\r\n title: 'wave.main.video-time.time-step-2.tile',\r\n time: 13.7\r\n },\r\n {\r\n title: 'wave.main.video-time.time-step-3.tile',\r\n time: 25.2\r\n },\r\n {\r\n title: 'wave.main.video-time.time-step-4.tile',\r\n time: 31.7\r\n }\r\n ],\r\n video: {\r\n isMobile: true,\r\n wistiaId: 'bmq75gd0v6',\r\n mobileWistiaId: 'bmq75gd0v6'\r\n }\r\n },\r\n {\r\n name: 'different-devices',\r\n buttons: true\r\n },\r\n {\r\n name: 'bitmap',\r\n title: 'wave.main.bitmap.title',\r\n description: 'wave.main.bitmap.description'\r\n },\r\n {\r\n name: 'horizontal-text-video',\r\n title: 'wave.main.horizontal-text-video.title',\r\n description: 'wave.main.horizontal-text-video.description',\r\n buttons: true,\r\n video: {\r\n wistiaId: 's7su99epyz',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/upload.jpg'\r\n }\r\n },\r\n {\r\n name: 'vertical-text-video',\r\n title: 'wave.main.vertical-text-video.title',\r\n description: 'wave.main.vertical-text-video.description',\r\n buttons: true,\r\n video: {\r\n wistiaId: 'lg67y8tmvu',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/effects_2.jpg'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n steps: [\r\n {\r\n title: 'wave.main.video-step1.title',\r\n content: 'wave.main.video-step1.description',\r\n buttons: true,\r\n video: {\r\n isMobile: false,\r\n isShadow: false,\r\n wistiaId: 'bqzdooz0uw',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/several_clips.jpg'\r\n }\r\n },\r\n {\r\n title: 'wave.main.video-step2.title',\r\n content: 'wave.main.video-step2.description',\r\n buttons: true,\r\n video: {\r\n isMobile: false,\r\n isShadow: false,\r\n wistiaId: 'y5qrr37gmx',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/music.jpg'\r\n }\r\n },\r\n {\r\n title: 'wave.main.video-step3.title',\r\n content: 'wave.main.video-step3.description',\r\n buttons: true,\r\n video: {\r\n isMobile: false,\r\n isShadow: false,\r\n wistiaId: 'w69rszq49x',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/cta.jpg'\r\n }\r\n }\r\n ],\r\n reverse: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.main.examples.title',\r\n description: 'wave.main.examples.description',\r\n videos: ['pu5q1q8os1', 'w6dlbyzpek', 'twoktydxrp']\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/text-on-video',\r\n title: 'wave.text-on-video.title',\r\n description: 'wave.text-on-video.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/page-previews/add_text.jpg',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.text-on-video.video-sign-up.title',\r\n description: 'wave.text-on-video.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.1',\r\n video: {\r\n isShadow: true,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/preview-top-video.png',\r\n alt: 'wv.landing.text-on-video.alt'\r\n }\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.text-on-video.video-gallery.title',\r\n description: 'wave.text-on-video.video-gallery.description',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/app-to-add-text-on-video',\r\n title: 'wave.app-to-add-text-on-video.title',\r\n description: 'wave.app-to-add-text-on-video.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/page-previews/add_text.jpg',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.app-to-add-text-on-video.video-sign-up.title',\r\n description: 'wave.app-to-add-text-on-video.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.1',\r\n video: {\r\n isShadow: true,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/preview-top-video.png',\r\n alt: 'wv.landing.app-text-on-video.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.app-to-add-text-on-video.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.app-to-add-text-on-video.content.block1.title',\r\n content: 'wv.app-to-add-text-on-video.content.block1.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'w57pc408i9'\r\n }\r\n },\r\n {\r\n title: 'wv.app-to-add-text-on-video.content.block2.title',\r\n content: 'wv.app-to-add-text-on-video.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'ky7rhf536t'\r\n }\r\n },\r\n {\r\n title: 'wv.app-to-add-text-on-video.content.block3.title',\r\n content: 'wv.app-to-add-text-on-video.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'jgsith3l13'\r\n }\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.text-on-video.video-gallery.title',\r\n description: 'wave.app-to-add-text-on-video.video-gallery.description',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/animated-text',\r\n title: 'wave.animated-text.title',\r\n description: 'wave.animated-text.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/animated-text/animated_text.png',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.animated-text.video-sign-up.title',\r\n description: 'wave.animated-text.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.1',\r\n video: {\r\n isShadow: true,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/preview-top-video.png',\r\n alt: 'wv.landing.animated-text.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.animated-text.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.animated-text.content.block1.title',\r\n content: 'wv.animated-text.content.block1.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '8g73wb2uvy'\r\n }\r\n },\r\n {\r\n title: 'wv.animated-text.content.block2.title',\r\n content: 'wv.animated-text.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'ky7rhf536t'\r\n }\r\n },\r\n {\r\n title: 'wv.animated-text.content.block3.title',\r\n content: 'wv.animated-text.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'sfpvf5w9ie'\r\n }\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.animated-text1.video-gallery.title',\r\n description: 'wave.app-to-add-text-on-video.video-gallery.description',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/make-facebook-video',\r\n title: 'wave.make-facebook-video.title',\r\n description: 'wave.make-facebook-video.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/make-facebook-video/screen.jpg',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.make-facebook-video.video-sign-up.title',\r\n description: 'wave.make-facebook-video.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.3',\r\n video: {\r\n isShadow: true,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/make-facebook-video/facebook_cover.jpg',\r\n alt: 'wv.landing.make-facebook-video.alt'\r\n }\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.make-facebook-video.video-gallery.title',\r\n description: 'wave.make-facebook-video.video-gallery.description',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/how-to-make-facebook-video',\r\n title: 'wave.how-facebook.title',\r\n description: 'wave.how-facebook.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/make-facebook-video/make_fb_videos.png',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.how-facebook.video-sign-up.title',\r\n description: 'wave.how-facebook.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.2',\r\n video: {\r\n isShadow: true,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/make-facebook-video/facebook_cover.jpg',\r\n alt: 'wv.landing.how-facebook-video.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.how-facebook.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.how-facebook.content.block1.title',\r\n content: 'wv.how-facebook.content.block1.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-fb/library.jpg',\r\n alt: 'wave.how-facebook.video-sign-up.title'\r\n },\r\n {\r\n title: 'wv.how-facebook.content.block2.title',\r\n content: 'wv.how-facebook.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '3tw9smphnd'\r\n }\r\n },\r\n {\r\n title: 'wv.how-facebook.content.block3.title',\r\n content: 'wv.how-facebook.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '3rv17y4i47'\r\n }\r\n },\r\n {\r\n title: 'wv.facebook-cover.content.block4.title',\r\n content: 'wv.how-facebook.content.block4.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/facebook-cover-video/download.png',\r\n alt: 'wave.how-facebook.video-sign-up.title'\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.how-facebook1.video-gallery.title',\r\n description: 'wave.how-facebook1.video-gallery.description',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/instagram-video-editor',\r\n title: 'wave.instagram-video.title',\r\n description: 'wave.instagram-video.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/instagram-video-editor/make_ig_video.png',\r\n keywords: 'head.wave.keywords.test',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.instagram-video.video-sign-up.title',\r\n description: 'wave.instagram-video.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.4',\r\n video: {\r\n isShadow: true,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/instagram-video-editor/ig_video_editor.jpg',\r\n alt: 'wv.landing.instagram-video-editor.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.instagram-video.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.instagram-video.content.block1.title',\r\n content: 'wv.instagram-video.content.block1.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-fb/library_collection.jpg',\r\n alt: 'wave.instagram-video.video-sign-up.title'\r\n },\r\n {\r\n title: 'wv.instagram-video.content.block2.title',\r\n content: 'wv.instagram-video.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '3tw9smphnd'\r\n }\r\n },\r\n {\r\n title: 'wv.how-facebook.content.block3.title',\r\n content: 'wv.instagram-video.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '3rv17y4i47'\r\n }\r\n },\r\n {\r\n title: 'wv.instagram-video.content.block4.title',\r\n content: 'wv.instagram-video.content.block4.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-fb/publish.jpg',\r\n alt: 'wave.instagram-video.video-sign-up.title'\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wv.instagram-video.video-gallery.title',\r\n description: 'wave.instagram-video.video-gallery.description',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/make-instagram-video',\r\n title: 'wave.make-instagram-video.title',\r\n description: 'wave.make-instagram-video.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/instagram-video-editor/ig_preview.png',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.make-instagram-video.video-sign-up.title',\r\n description: 'wave.make-instagram-video.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.4',\r\n video: {\r\n isShadow: true,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/instagram-video-editor/ig_video_editor.jpg',\r\n alt: 'wv.landing.make-instagram-videos.alt'\r\n }\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wv.instagram-video.video-gallery.title',\r\n description: 'wave.instagram-video.video-gallery.description',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/online-video-editor',\r\n title: 'wave.video-editor.title',\r\n description: 'wave.video-editor.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/online-video-editor/video_editor.jpg',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n logo: false,\r\n title: 'wave.video-editor.video-sign-up.title',\r\n description: 'wave.video-editor.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.1',\r\n video: {\r\n isShadow: true,\r\n wistiaId: 't3rvoc1lwn',\r\n preview: 'https://assets.animatron.com/images/landing/template/online-video-editor/online_video_editor_cover.jpg',\r\n alt: 'wv.landing.online-video-editor.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.video-editor.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.video-editor.content.block1.title',\r\n content: 'wv.video-editor.content.block1.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'rajf0u25q2'\r\n }\r\n },\r\n {\r\n title: 'wv.video-editor.content.block2.title',\r\n content: 'wv.video-editor.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'go1mecdxla'\r\n }\r\n },\r\n {\r\n title: 'wv.video-editor.content.block3.title',\r\n content: 'wv.video-editor.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'ap4d6rqm11'\r\n }\r\n },\r\n {\r\n title: 'wv.video-editor.content.block4.title',\r\n content: 'wv.video-editor.content.block4.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'w4vau9mem1'\r\n }\r\n },\r\n {\r\n title: 'wv.video-editor.content.block5.title',\r\n content: 'wv.video-editor.content.block5.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'mt53cvnpk3'\r\n }\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wv.video-editor.video-gallery.title',\r\n description: 'wave.video-editor.video-gallery.description',\r\n videos: ['fk2bckaos0', 'u8u54wr4gp', 'xe1mo9knog'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/combine-media',\r\n title: 'wave.combine-media.title',\r\n description: 'wave.combine-media.description',\r\n preview: 'https://assets.animatron.com/images/landing/video-previews/landing_combine_media_top.png',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n logo: true,\r\n title: 'wave.landing.combine-media.top.title',\r\n description: 'wave.landing.combine-media.top.desc',\r\n button: 'wv.landing.no-signup.button.1',\r\n video: {\r\n isShadow: false,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/video-previews/landing_combine_media_top.png',\r\n alt: 'wv.landing.combine-media.alt'\r\n },\r\n isScrollButton: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.landing.combine-media.video-slider.title',\r\n description: 'wave.landing.combine-media.description',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\r\n buttons: true\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wv.landing.content.block2.title',\r\n steps: [\r\n {\r\n title: 'wv.landing.content.block2.import-files.title',\r\n content: 'wv.landing.content.block2.import-files.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '6vbj1v1hq4'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block2.choose-video-2.title',\r\n content: 'wv.landing.content.block2.choose-video-2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'nk1irybap8'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block2.customize-video.title',\r\n content: 'wv.landing.content.block2.customize-video.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'w9pcneinkv'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block2.preview-results.title',\r\n content: 'wv.landing.content.block2.preview-results.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'rj6o2v8dus'\r\n }\r\n }\r\n ],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/facebook-cover-video',\r\n title: 'wave.facebook-cover.title',\r\n description: 'wave.facebook-cover.description',\r\n button: 'wv.landing.no-signup.button.2',\r\n preview: 'https://assets.animatron.com/images/landing/template/facebook-cover-video/make.png',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n logo: false,\r\n title: 'wave.facebook-cover.video-sign-up.title',\r\n description: 'wave.facebook-cover.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.1',\r\n video: {\r\n isShadow: true,\r\n wistiaId: 'judgtrwj03',\r\n preview: 'https://assets.animatron.com/images/landing/template/facebook-cover-video/facebook-cover-video.jpg',\r\n alt: 'wv.landing.facebook-cover-video.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.facebook-cover.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.facebook-cover.content.block1.title',\r\n content: 'wv.facebook-cover.content.block1.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'nk1irybap8'\r\n }\r\n },\r\n {\r\n title: 'wv.facebook-cover.content.block2.title',\r\n content: 'wv.facebook-cover.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'lirnbs1689'\r\n }\r\n },\r\n {\r\n title: 'wv.facebook-cover.content.block3.title',\r\n content: 'wv.facebook-cover.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'rj6o2v8dus'\r\n }\r\n },\r\n {\r\n title: 'wv.facebook-cover.content.block4.title',\r\n content: 'wv.facebook-cover.content.block4.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/facebook-cover-video/download.png',\r\n alt: 'wv.landing.facebook-cover-video.alt1'\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/how-to-make-instagram-videos',\r\n title: 'wave.how-to-instagram.title',\r\n description: 'wave.how-to-instagram.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-instagram-videos/how-ig-cover.png',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.how-to-instagram.video-sign-up.title',\r\n description: 'wave.how-to-instagram.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.4',\r\n video: {\r\n isShadow: true,\r\n wistiaId: 'i4fl562kt3',\r\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-instagram-videos/ig-cover-new.jpg',\r\n alt: 'wv.landing.how-to-instagram.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.how-to-instagram.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.how-facebook.content.block1.title',\r\n content: 'wv.how-facebook.content.block1.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-fb/library_collection.jpg',\r\n alt: 'wv.landing.how-to-instagram.alt1'\r\n },\r\n {\r\n title: 'wv.how-to-instagram.content.block2.title',\r\n content: 'wv.how-to-instagram.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '3tw9smphnd'\r\n }\r\n },\r\n {\r\n title: 'wv.how-facebook.content.block3.title',\r\n content: 'wv.instagram-video.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '3rv17y4i47'\r\n }\r\n },\r\n {\r\n title: 'wv.instagram-video.content.block4.title',\r\n content: 'wv.how-to-instagram.content.block4.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-make-instagram-videos/ig-download.jpg',\r\n alt: 'wv.landing.how-to-instagram.alt2'\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wv.instagram-video.video-gallery.title',\r\n description: 'wave.instagram-video.video-gallery.description',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/how-to-make-youtube-videos',\r\n title: 'wave.how-to-youtube.title',\r\n description: 'wave.how-to-youtube.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-youtube-videos/youtube-videos.jpg',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.how-to-youtube.video-sign-up.title',\r\n description: 'wave.how-to-youtube.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.5',\r\n video: {\r\n isShadow: true,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-youtube-videos/2.jpg',\r\n alt: 'wv.landing.how-to-youtube-video.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.how-to-youtube.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.how-facebook.content.block1.title',\r\n content: 'wv.how-facebook.content.block1.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'nk1irybap8'\r\n }\r\n },\r\n {\r\n title: 'wv.how-to-youtube.content.block2.title',\r\n content: 'wv.how-to-youtube.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '3rv17y4i47'\r\n }\r\n },\r\n {\r\n title: 'wv.how-to-youtube.content.block3.title',\r\n content: 'wv.how-to-youtube.content.block3.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-make-youtube-videos/how-to-youtube.png',\r\n alt: 'wv.landing.how-to-youtube-video.alt1'\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/real-estate-video',\r\n title: 'wave.real-estate.title',\r\n description: 'wave.real-estate.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/real-estate-video/landing_laptop_img.png',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.landing.real-estate.top.title',\r\n description: 'wave.landing.real-estate.top.desc',\r\n button: 'wv.landing.no-signup.button.6',\r\n video: {\r\n isShadow: false,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/real-estate-video/landing_laptop_img.png',\r\n alt: 'wv.landing.real-estate.alt'\r\n },\r\n isScrollButton: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.landing.real-estate.video-slider.title',\r\n videos: ['trppod8rcb', 'isujvqsudd', '3ci2sswcd4'],\r\n buttons: true\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wv.landing.content.block2.title',\r\n steps: [\r\n {\r\n title: 'wv.landing.content.block2.import-files.title',\r\n content: 'wv.landing.content.block2.import-files.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '6vbj1v1hq4'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block2.real-estate2.title',\r\n content: 'wv.landing.content.block2.choose-video-2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'nk1irybap8'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block2.customize-video.title',\r\n content: 'wv.landing.content.block2.customize-video.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'vdtw7vgixo'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block2.real-estate4.title',\r\n content: 'wv.landing.content.block2.real-estate4.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'rj6o2v8dus'\r\n }\r\n }\r\n ],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/how-to-make-video-ads',\r\n title: 'wave.how-to-video-ad.title',\r\n description: 'wave.how-to-video-ad.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-video-ads/5.jpg',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.how-to-video-ad.video-sign-up.title',\r\n description: 'wave.how-to-video-ad.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.7',\r\n video: {\r\n isShadow: true,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-video-ads/5.jpg',\r\n alt: 'wv.landing.how-to-video-ad.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.how-to-video-ad.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.how-facebook.content.block1.title',\r\n content: 'wv.how-facebook.content.block1.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'nk1irybap8'\r\n }\r\n },\r\n {\r\n title: 'wv.how-to-video-ad.content.block2.title',\r\n content: 'wv.how-to-video-ad.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '3tw9smphnd'\r\n }\r\n },\r\n {\r\n title: 'wv.how-to-video-ad.content.block3.title',\r\n content: 'wv.how-to-video-ad.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '3rv17y4i47'\r\n }\r\n },\r\n {\r\n title: 'wv.how-to-video-ad.content.block4.title',\r\n content: 'wv.how-to-video-ad.content.block4.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-make-video-ads/4.jpg',\r\n alt: 'wv.landing.how-to-video-ad.alt1'\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/make-video-for-blog',\r\n title: 'wave.blog-video.title',\r\n description: 'wave.blog-video.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/make-video-for-blog/make_video_for_blogpost.jpg',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.landing.blog-video.top.title',\r\n description: 'wave.landing.blog-video.top.desc',\r\n button: 'wv.landing.no-signup.button.8',\r\n video: {\r\n isShadow: false,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/make-video-for-blog/make-blog-videos-cover.png',\r\n alt: 'wv.landing.make-video-for-blog.alt'\r\n },\r\n isScrollButton: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.landing.blog-video.video-slider.title',\r\n description: 'wave.landing.blog-video.description',\r\n videos: ['yrg8tmhc1o', '6nuk3l0wnk', '3ci2sswcd4'],\r\n buttons: true\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wv.landing.content.block2.title',\r\n steps: [\r\n {\r\n title: 'wv.landing.content.block1.blog-video.title',\r\n content: 'wv.landing.content.block1.blog-video.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'dj1r7aia3k'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block2.blog-video.title',\r\n content: 'wv.landing.content.block2.blog-video.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'nk1irybap8'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block3.blog-video.title',\r\n content: 'wv.landing.content.block3.blog-video.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'ky7rhf536t'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block4.blog-video.title',\r\n content: 'wv.landing.content.block4.blog-video.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'rj6o2v8dus'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block5.blog-video.title',\r\n content: 'wv.landing.content.block5.blog-video.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-make-video-ads/4.jpg',\r\n alt: 'wv.landing.make-video-for-blog.alt1'\r\n }\r\n ],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/video-email',\r\n title: 'wave.video-email.title',\r\n description: 'wave.video-email.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-email/laptop_email_img.png',\r\n settings: {\r\n isHeader: false,\r\n footer: 'small'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n title: 'wave.landing.video-email.top.title',\r\n description: 'wave.landing.video-email.top.desc',\r\n button: 'wv.landing.no-signup.button.9',\r\n video: {\r\n isShadow: false,\r\n wistiaId: '9s5vbyut5r',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-email/laptop_email_img.png',\r\n alt: 'wv.landing.video-email.alt'\r\n },\r\n isScrollButton: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.landing.video-email.video-slider.title',\r\n description: 'wave.landing.video-email.description',\r\n videos: ['3ci2sswcd4', '6nuk3l0wnk', 'yrg8tmhc1o'],\r\n buttons: true\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wv.landing.content.block2.title',\r\n steps: [\r\n {\r\n title: 'wv.landing.content.block2.import-files.title',\r\n content: 'wv.landing.content.block2.video-email.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: '6vbj1v1hq4'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block2.real-estate2.title',\r\n content: 'wv.landing.content.block2.choose-video-2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'nk1irybap8'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block2.customize-video.title',\r\n content: 'wv.landing.content.block3.video-email.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'ky7rhf536t'\r\n }\r\n },\r\n {\r\n title: 'wv.landing.content.block4.video-email.title',\r\n content: 'wv.landing.content.block4.video-email.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'nk38l9atrd'\r\n }\r\n }\r\n ],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/success-stories',\r\n title: 'wv.ss.list.title',\r\n description: 'wv.ss.list.description',\r\n preview: 'https://assets.animatron.com/images/landing/success_stories/homestars_upd_logo.jpg',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'background-text',\r\n title: 'wv.ss.list.title',\r\n description: 'wv.ss.list.description',\r\n background: {\r\n style: 'horizontal-blue-gradient'\r\n }\r\n },\r\n {\r\n name: 'template-pages-list',\r\n matchCondition: '/success-stories/'\r\n },\r\n {\r\n name: 'horizontal-image-text',\r\n title: 'wv.pricing.call-to-action.title',\r\n text: 'wv.pricing.call-to-action.text',\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\r\n alt: 'wv.landing.success-stories.alt',\r\n buttons: true\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/integrations',\r\n title: 'wv.integrations.list.title',\r\n description: 'wv.integrations.list.description',\r\n preview: 'https://assets.animatron.com/images/landing/success_stories/homestars_upd_logo.jpg',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'background-text',\r\n title: 'wv.integrations.list.title',\r\n description: 'wv.integrations.list.description',\r\n background: {\r\n style: 'horizontal-blue-gradient'\r\n }\r\n },\r\n {\r\n name: 'template-pages-list',\r\n matchCondition: '/integrations/'\r\n },\r\n {\r\n name: 'horizontal-image-text',\r\n title: 'wv.pricing.call-to-action.title',\r\n text: 'wv.pricing.call-to-action.text',\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\r\n alt: 'wv.integrations.cta.title',\r\n buttons: true\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/success-stories/981-media',\r\n title: 'wv.981-media.title',\r\n description: 'wv.981-media.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-email/laptop_email_img.png',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'company-info',\r\n title: 'wv.ss1.title',\r\n title2: 'wv.ss1.title1',\r\n description: 'wv.ss1.description',\r\n background: {\r\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/981-media/header_img.jpg',\r\n alt: 'wv.981-media.alt.title'\r\n },\r\n logoUrl: '/assets/images/landing/success_stories/981_logo2.jpg',\r\n logoAlt: 'wv.ss1.title',\r\n list: [\r\n {\r\n iconClass: 'location',\r\n iconName: 'wv.ss.location',\r\n text: 'wv.ss1.location'\r\n },\r\n {\r\n iconClass: 'industry',\r\n iconName: 'wv.ss.industry',\r\n text: 'wv.ss1.industry'\r\n },\r\n {\r\n iconClass: 'use_cases',\r\n iconName: 'wv.ss.use_cases',\r\n list: ['wv.ss1.use_cases1', 'wv.ss1.use_cases2']\r\n },\r\n {\r\n iconClass: 'site',\r\n iconName: 'wv.ss.website',\r\n link: {\r\n url: 'https://www.981media.com/',\r\n title: 'wv.ss1.website'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n name: 'text-aside',\r\n title: 'wv.ss1.text-aside.text.title',\r\n text: 'wv.ss1.text-aside.text.content',\r\n relationList: [\r\n 'edit-social-video-5-steps'\r\n ]\r\n },\r\n {\r\n name: 'company-quote',\r\n username: 'wv.ss1.quote.author',\r\n description: 'wv.ss1.quote.author.position',\r\n avatar: 'https://assets.animatron.com/images/landing/success_stories/succes_story_avatar_981.png',\r\n alt: 'wv.ss1.quote.author',\r\n text: 'wv.ss1.quote'\r\n },\r\n {\r\n name: 'text-aside',\r\n title: 'wv.ss1.text-aside2.text.title',\r\n text: 'wv.ss1.text-aside2.text.content',\r\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/mobile.png',\r\n alt: 'wv.981-media.alt.title1'\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wv.ss1.videos.title',\r\n videos: ['139fa2vsci', 'h5zebqa72w', 'a5sb1vfe2e']\r\n },\r\n {\r\n name: 'text-aside',\r\n title: 'wv.ss1.text-aside3.text.title',\r\n text: 'wv.ss1.text-aside3.text.content',\r\n relationList: [\r\n 'make-video-never-done-before'\r\n ]\r\n },\r\n {\r\n name: 'horizontal-image-text',\r\n title: 'wv.ss.call-to-action.title',\r\n text: 'wv.ss.call-to-action.text',\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\r\n alt: 'wv.981-media.alt.title3',\r\n buttons: true\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/success-stories/be-brilliant',\r\n title: 'wv.be-brilliant.title',\r\n description: 'wv.be-brilliant.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-email/laptop_email_img.png',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'company-info',\r\n title: 'wv.ss2.title',\r\n title2: 'wv.ss2.title1',\r\n description: 'wv.ss2.description',\r\n background: {\r\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/be-brilliant/header_img.jpg',\r\n alt: 'wv.be-brilliant.title'\r\n },\r\n logoUrl: '/assets/images/landing/success_stories/be_brilliant_logo2.jpg',\r\n list: [\r\n {\r\n iconClass: 'location',\r\n iconName: 'wv.ss.location',\r\n text: 'wv.ss2.location'\r\n },\r\n {\r\n iconClass: 'industry',\r\n iconName: 'wv.ss.industry',\r\n text: 'wv.ss2.industry'\r\n },\r\n {\r\n iconClass: 'use_cases',\r\n iconName: 'wv.ss.use_cases',\r\n list: ['wv.ss2.use_cases1', 'wv.ss2.use_cases2', 'wv.ss2.use_cases3', 'wv.ss2.use_cases4', 'wv.ss2.use_cases5']\r\n },\r\n {\r\n iconClass: 'site',\r\n iconName: 'wv.ss.website',\r\n link: {\r\n url: 'https://www.bebrilliant.com/',\r\n title: 'wv.ss2.website'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n name: 'company-quote',\r\n username: 'wv.ss2.quote.author',\r\n description: 'wv.ss2.quote.author.position',\r\n avatar: 'https://assets.animatron.com/images/landing/success_stories/success_story_avatar_be_brilliant.png',\r\n alt: 'wv.ss2.quote.author',\r\n text: 'wv.ss2.quote'\r\n },\r\n {\r\n name: 'text-aside',\r\n title: 'wv.ss2.text-aside.text.title',\r\n text: 'wv.ss2.text-aside.text.content'\r\n },\r\n {\r\n name: 'text-aside',\r\n title: 'wv.ss2.text-aside2.text.title',\r\n text: 'wv.ss2.text-aside2.text.content',\r\n relationList: [\r\n 'mari1'\r\n ]\r\n },\r\n {\r\n name: 'text-aside',\r\n text: 'wv.ss2.text-aside2.text2.content',\r\n relationList: [\r\n 'fb-cover'\r\n ]\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wv.be-brilliant.video-gallery.title',\r\n videos: ['m6f026jfzb']\r\n },\r\n {\r\n name: 'text-aside',\r\n title: 'wv.ss2.text-aside3.text.title',\r\n text: 'wv.ss2.text-aside3.text.content',\r\n relationList: [\r\n 'edit-social-video-5-steps'\r\n ]\r\n },\r\n {\r\n name: 'horizontal-image-text',\r\n title: 'wv.be-brilliant.call-to-action.title',\r\n text: 'wv.be-brilliant.call-to-action.text',\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\r\n alt: 'wv.be-brilliant.img.alt',\r\n buttons: true\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/success-stories/homestars',\r\n title: 'wv.homestars.title',\r\n description: 'wv.homestars.description',\r\n preview: 'https://assets.animatron.com/images/landing/success_stories/homestars_upd_logo.jpg',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'company-info',\r\n title: 'wv.ss.homestars.title',\r\n title2: 'wv.ss.homestars.title2',\r\n description: 'wv.ss.homestars.description',\r\n background: {\r\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/homestars/header_img.jpg',\r\n alt: 'wv.homestars.img.alt'\r\n },\r\n logoUrl: '/assets/images/landing/success_stories/homestars_logo.jpg',\r\n list: [\r\n {\r\n iconClass: 'location',\r\n iconName: 'wv.ss.location',\r\n text: 'wv.homestars.location'\r\n },\r\n {\r\n iconClass: 'industry',\r\n iconName: 'wv.ss.industry',\r\n text: 'wv.homestars.industry'\r\n },\r\n {\r\n iconClass: 'use_cases',\r\n iconName: 'wv.ss.use_cases',\r\n list: ['wv.homestars.use_cases']\r\n },\r\n {\r\n iconClass: 'site',\r\n iconName: 'wv.ss.website',\r\n link: {\r\n url: 'https://homestars.com/ ',\r\n title: 'wv.homestars.website'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n name: 'text-aside',\r\n title: 'wv.ss1.text-aside.text.title',\r\n text: 'wv.homestars.challenge.text.content',\r\n relationList: [\r\n 'what-is-video-marketing'\r\n ]\r\n },\r\n {\r\n name: 'company-quote',\r\n username: 'wv.homestars.quote.author',\r\n description: 'wv.homestars.quote.author.position',\r\n avatar: 'https://assets.animatron.com/images/landing/success_stories/homestars_author.png',\r\n text: 'wv.homestars.quote'\r\n },\r\n {\r\n name: 'text-aside',\r\n title: 'wv.ss1.text-aside2.text.title',\r\n text: 'wv.homestars.solution',\r\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/homestars_mob.png',\r\n alt: 'wv.homestars.img.alt1'\r\n },\r\n {\r\n name: 'video-statistics',\r\n title: 'wv.ss.homestars.video-statistics.title',\r\n statistics: [\r\n {\r\n title: 'wv.ss.homestars.video-statistics-1.title',\r\n description: 'wv.ss.homestars.video-statistics-1.description',\r\n circleProgress: [\r\n {\r\n icon: 'https://assets.animatron.com/images/landing/template/homestars/circle-progress-yellow.svg',\r\n title: 'wv.ss.homestars.video-statistics-1.progress-1.title',\r\n bigVal: '3,996',\r\n smallVal: 895,\r\n val: 346\r\n },\r\n {\r\n icon: 'https://assets.animatron.com/images/landing/success_stories/circle-progress-blue.svg',\r\n title: 'wv.ss.homestars.video-statistics-1.progress-2.title',\r\n bigVal: '1,294',\r\n smallVal: 47,\r\n val: '2,653'\r\n },\r\n {\r\n icon: 'https://assets.animatron.com/images/landing/success_stories/circle-progress-green.svg',\r\n title: 'wv.ss.homestars.video-statistics-1.progress-3.title',\r\n bigVal: '19',\r\n smallVal: 6,\r\n val: 217\r\n }\r\n ],\r\n video: {\r\n isMobile: true,\r\n wistiaId: 'oeagpgadm7',\r\n mobileWistiaId: 'oeagpgadm7',\r\n preview: 'https://assets.animatron.com/images/landing/template/homestars/video-statistic-1.png',\r\n alt: 'wv.homestars.img.alt4'\r\n }\r\n },\r\n {\r\n title: 'wv.ss.homestars.video-statistics-2.title',\r\n description: 'wv.ss.homestars.video-statistics-1.description',\r\n reverse: true,\r\n circleProgress: [\r\n {\r\n icon: 'https://assets.animatron.com/images/landing/template/homestars/circle-progress-yellow.svg',\r\n title: 'wv.ss.homestars.video-statistics-1.progress-1.title',\r\n bigVal: '5,568',\r\n smallVal: '1,107',\r\n val: 403\r\n },\r\n {\r\n icon: 'https://assets.animatron.com/images/landing/success_stories/circle-progress-blue-2.svg',\r\n title: 'wv.ss.homestars.video-statistics-1.progress-2.title',\r\n bigVal: '1,959',\r\n smallVal: 19,\r\n val: '10,211'\r\n },\r\n {\r\n icon: 'https://assets.animatron.com/images/landing/success_stories/circle-progress-green-2.svg',\r\n title: 'wv.ss.homestars.video-statistics-1.progress-3.title',\r\n bigVal: '15',\r\n smallVal: 6,\r\n val: 150\r\n }\r\n ],\r\n video: {\r\n isMobile: true,\r\n wistiaId: 'kpjr3jxatx',\r\n mobileWistiaId: 'kpjr3jxatx',\r\n preview: 'https://assets.animatron.com/images/landing/template/homestars/video-statistic-2.png',\r\n alt: 'wv.homestars.img.alt3'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n name: 'text-aside',\r\n title: 'wv.ss2.text-aside3.text.title',\r\n text: 'wv.homestars.results.description1',\r\n relationList: [\r\n 'mari1'\r\n ]\r\n },\r\n {\r\n name: 'text-aside',\r\n text: 'wv.homestars.results.description2',\r\n relationList: [\r\n 'sm-cheat-sheet'\r\n ]\r\n },\r\n {\r\n name: 'horizontal-image-text',\r\n title: 'wv.homestars.call-to-action.title',\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\r\n alt: 'wv.homestars.img.alt2',\r\n buttons: true\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/integrations/hubspot',\r\n title: 'wave.integrations.hubspot.title',\r\n description: 'wave.integrations.hubspot.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_cover.jpg',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'background-text',\r\n title: 'wave.integration-hubspot.video-sign-up.title',\r\n description: 'wave.integration-hubspot.video-sign-up.description',\r\n logoUrl: '/assets/images/landing/template/integration-hubspot/hubspot-logo.png',\r\n background: {\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_bkg1.jpg',\r\n alt: 'wave.integrations.hubspot.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.hubspot-integration.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.hubspot-integration.content.block1.title',\r\n content: 'wv.hubspot-integrationcontent.block1.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'pcte5apcav'\r\n }\r\n },\r\n {\r\n title: 'wv.hubspot-integration.content.block2.title',\r\n content: 'wv.hubspot-integration.content.block2.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_screen2.jpg',\r\n alt: 'wave.integrations.hubspot.alt1'\r\n },\r\n {\r\n title: 'wv.hubspot-integration.content.block3.title',\r\n content: 'wv.hubspot-integration.content.block3.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_screen3.jpg',\r\n alt: 'wave.integrations.hubspot.alt2'\r\n },\r\n {\r\n title: 'wv.hubspot-integration.content.block4.title',\r\n content: 'wv.hubspot-integration.content.block4.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_screen4.jpg',\r\n alt: 'wave.integrations.hubspot.alt3'\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/integrations/wistia',\r\n title: 'wave.integrations.wistia.title',\r\n description: 'wave.integrations.wistia.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/integration-wistia/wistia_cover.jpg',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'background-text',\r\n title: 'wave.wistia-integration.video-sign-up.title',\r\n description: 'wave.wistia-integration.video-sign-up.description',\r\n logoUrl: '/assets/images/landing/template/integration-wistia/wistia-logo.png',\r\n background: {\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-wistia/wistiaintegration_bkg1.jpg',\r\n alt: 'wv.landing.wistia.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.wistia-integration.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.wistia-integration.content.block1.title',\r\n content: 'wv.wistia-integration.content.block1.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'pcte5apcav'\r\n }\r\n },\r\n {\r\n title: 'wv.wistia-integration.content.block2.title',\r\n content: 'wv.wistia-integration.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: true,\r\n wistiaId: 'n95b2k3sl1'\r\n }\r\n },\r\n {\r\n title: 'wv.wistia-integration.content.block3.title',\r\n content: 'wv.wistia-integration.content.block3.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-wistia/video_stats.png',\r\n alt: 'wv.wistia-integration.video-stats.alt'\r\n },\r\n {\r\n title: 'wv.wistia-integration.content.block4.title',\r\n content: 'wv.wistia-integration.content.block4.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-wistia/wistia_signup.png',\r\n alt: 'wv.wistia-integration.video-stats.alt1'\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'horizontal-image-text',\r\n title: 'wv.wistia-integration.call-to-action.title',\r\n text: 'wv.wistia-integration.call-to-action.text',\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\r\n alt: 'wv.landing.wistia.alt1',\r\n buttons: true\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/integrations/vimeo',\r\n title: 'wave.integrations.vimeo.title',\r\n description: 'wave.integrations.vimeo.description',\r\n preview: '/assets/images/landing/template/integration-vimeo/vimeo_preview.png',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'background-text',\r\n title: 'wave.vimeo-integration.video-sign-up.title',\r\n description: 'wave.vimeo-integration.video-sign-up.description',\r\n logoUrl: '/assets/images/landing/template/integration-vimeo/vimeo-logo.png',\r\n background: {\r\n imageUrl: '/assets/images/landing/template/integration-vimeo/vimeo_bkg.png',\r\n alt: 'wave.integrations.vimeo.alt'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.vimeo-integration.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.vimeo-integration.content.block1.title',\r\n content: 'wv.vimeo-integration.content.block1.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'lg67y8tmvu'\r\n }\r\n },\r\n {\r\n title: 'wv.vimeo-integration.content.block2.title',\r\n content: 'wv.vimeo-integration.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: true,\r\n wistiaId: 'pcte5apcav'\r\n }\r\n },\r\n {\r\n title: 'wv.vimeo-integration.content.block3.title',\r\n content: 'wv.vimeo-integration.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: true,\r\n wistiaId: '25i2e73cbh'\r\n }\r\n },\r\n {\r\n title: 'wv.vimeo-integration.content.block4.title',\r\n content: 'wv.vimeo-integration.content.block4.content',\r\n buttons: false,\r\n imageUrl: '/assets/images/landing/template/integration-vimeo/vimeo_integration.png',\r\n alt: 'wave.integrations.vimeo.alt1'\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'horizontal-image-text',\r\n title: 'wv.vimeo-integration.call-to-action.title',\r\n text: 'wv.vimeo-integration.call-to-action.text',\r\n imageUrl: '/assets/images/pricing/cta_block.png',\r\n alt: 'wave.integrations.vimeo.alt2',\r\n buttons: true\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/DMlab',\r\n title: 'wv.dmlab.title',\r\n description: 'wv.dmlab.description',\r\n preview: 'https://assets.animatron.com/images/landing/wavevideo_mainpage_preview.jpg',\r\n settings: {\r\n isHeader: false,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'logo-video-sign-up',\r\n logo: true,\r\n brandLogo: 'https://assets.animatron.com/images/landing/dm_Certified_partner.png',\r\n title: 'wv.dmlab.title',\r\n sbTitle: 'wv.dmlab.signup.title',\r\n description: 'wv.dmlab.description',\r\n video: {\r\n wistiaId: 'bmq75gd0v6',\r\n preview: 'https://s3.amazonaws.com/assets.animatron.com/images/landing/fs.png',\r\n alt: 'wv.landing.dmlab.alt'\r\n }\r\n },\r\n {\r\n name: 'different-devices',\r\n buttons: true\r\n },\r\n {\r\n name: 'bitmap',\r\n title: 'wave.main.bitmap.title',\r\n description: 'wave.main.bitmap.description'\r\n },\r\n {\r\n name: 'horizontal-text-video',\r\n title: 'wave.main.horizontal-text-video.title',\r\n description: 'wave.main.horizontal-text-video.description',\r\n buttons: true,\r\n video: {\r\n wistiaId: 's7su99epyz',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/upload.jpg'\r\n }\r\n },\r\n {\r\n name: 'vertical-text-video',\r\n title: 'wave.main.vertical-text-video.title',\r\n description: 'wave.main.vertical-text-video.description',\r\n buttons: true,\r\n video: {\r\n wistiaId: 'lg67y8tmvu',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/effects_2.jpg',\r\n alt: 'wv.landing.dmlab.alt1'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n steps: [\r\n {\r\n title: 'wave.main.video-step1.title',\r\n content: 'wave.main.video-step1.description',\r\n buttons: true,\r\n video: {\r\n isMobile: false,\r\n isShadow: false,\r\n wistiaId: 'bqzdooz0uw',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/several_clips.jpg',\r\n alt: 'wv.landing.dmlab.alt2'\r\n }\r\n },\r\n {\r\n title: 'wave.main.video-step2.title',\r\n content: 'wave.main.video-step2.description',\r\n buttons: true,\r\n video: {\r\n isMobile: false,\r\n isShadow: false,\r\n wistiaId: 'y5qrr37gmx',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/music.jpg',\r\n alt: 'wv.landing.dmlab.alt3'\r\n }\r\n },\r\n {\r\n title: 'wave.main.video-step3.title',\r\n content: 'wave.main.video-step3.description',\r\n buttons: true,\r\n video: {\r\n isMobile: false,\r\n isShadow: false,\r\n wistiaId: 'w69rszq49x',\r\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/cta.jpg',\r\n alt: 'wv.landing.dmlab.alt4'\r\n }\r\n }\r\n ],\r\n reverse: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wave.main.examples.title',\r\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp']\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n },\r\n {\r\n url: 'wave/online-video-maker',\r\n title: 'wave.video-maker.title',\r\n description: 'wave.video-maker.description',\r\n preview: 'https://assets.animatron.com/images/landing/template/online-video-maker/online-video-maker.jpg',\r\n settings: {\r\n isHeader: true,\r\n footer: 'big'\r\n },\r\n sections: [\r\n {\r\n name: 'video-sign-up',\r\n logo: false,\r\n title: 'wave.video-maker.video-sign-up.title',\r\n description: 'wave.video-maker.video-sign-up.description',\r\n button: 'wv.landing.no-signup.button.1',\r\n video: {\r\n isShadow: true,\r\n wistiaId: 't3rvoc1lwn',\r\n preview: 'https://assets.animatron.com/images/landing/template/online-video-maker/online-video-maker.jpg',\r\n alt: 'wave.video-maker.title'\r\n }\r\n },\r\n {\r\n name: 'video-steps',\r\n title: 'wave.video-maker.video-gallery.title',\r\n steps: [\r\n {\r\n title: 'wv.video-maker.content.block1.title',\r\n content: 'wv.video-maker.content.block1.content',\r\n buttons: false,\r\n imageUrl: 'https://assets.animatron.com/images/landing/template/online-video-maker/beautiful_videos.png',\r\n alt: 'wv.landing.online-video-maker.alt1'\r\n },\r\n {\r\n title: 'wv.video-maker.content.block2.title',\r\n content: 'wv.video-maker.content.block2.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'go1mecdxla'\r\n }\r\n },\r\n {\r\n title: 'wv.video-maker.content.block3.title',\r\n content: 'wv.video-maker.content.block3.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'tc98w68e4f'\r\n }\r\n },\r\n {\r\n title: 'wv.video-maker.content.block4.title',\r\n content: 'wv.video-maker.content.block4.content',\r\n buttons: false,\r\n video: {\r\n isShadow: false,\r\n wistiaId: 'pdk5pn14jr'\r\n }\r\n }\r\n ],\r\n reverse: true,\r\n buttons: true\r\n },\r\n {\r\n name: 'video-gallery',\r\n title: 'wv.video-maker.video-gallery.title',\r\n description: 'wave.video-editor.video-gallery.description',\r\n videos: ['fk2bckaos0', 'u8u54wr4gp', 'xe1mo9knog'],\r\n buttons: true\r\n },\r\n {\r\n name: 'feedback',\r\n title: 'wave.text-on-video.feedback.title',\r\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\r\n },\r\n {\r\n name: 'sign-up'\r\n }\r\n ]\r\n }\r\n]);\r\n\n\n/***/ }),\n\n/***/ \"9IMG\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-payment-details-container_949027a0f96e5c564506a0f35bed3fc3.css\";\n\n/***/ }),\n\n/***/ \"9UtH\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar DocumentNoScroll = (function () {\r\n function DocumentNoScroll() {\r\n this.documentEl = document.documentElement;\r\n this.className = 'noscroll';\r\n }\r\n DocumentNoScroll.prototype.disableScroll = function () {\r\n if (DocumentNoScroll.isDisabled) {\r\n return;\r\n }\r\n DocumentNoScroll.isDisabled = true;\r\n var scrollTop = window.scrollY || window.pageYOffset;\r\n this.documentEl.classList.add(this.className);\r\n document.body.style.top = \"-\" + scrollTop + \"px\";\r\n };\r\n ;\r\n DocumentNoScroll.prototype.enableScroll = function () {\r\n if (!DocumentNoScroll.isDisabled) {\r\n return;\r\n }\r\n DocumentNoScroll.isDisabled = false;\r\n var scrollTop = document.body.style.top ? parseInt(document.body.style.top, 10) : 0;\r\n document.body.style.top = '';\r\n this.documentEl.classList.remove(this.className);\r\n window.scrollTo(0, Math.abs(scrollTop));\r\n };\r\n ;\r\n DocumentNoScroll.prototype.$onChanges = function (onChangesObj) {\r\n var _this = this;\r\n var _a = onChangesObj.documentNoScroll, currentValue = _a.currentValue, previousValue = _a.previousValue;\r\n underscore_extensions_1.Utils.rAF(function () {\r\n if (currentValue) {\r\n _this.disableScroll();\r\n }\r\n else if (!currentValue && previousValue) {\r\n _this.enableScroll();\r\n }\r\n });\r\n };\r\n DocumentNoScroll.prototype.$onDestroy = function () {\r\n this.enableScroll();\r\n };\r\n return DocumentNoScroll;\r\n}());\r\nDocumentNoScroll.isDisabled = false;\r\nmodule_1.default.directive('documentNoScroll', function () { return ({\r\n controller: DocumentNoScroll,\r\n bindToController: {\r\n documentNoScroll: '<'\r\n }\r\n}); });\r\n\n\n/***/ }),\n\n/***/ \"9VVx\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/landing-top-common_e29e65561b5526af24857c5ba78b62d1.css\";\n\n/***/ }),\n\n/***/ \"9uog\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-3b.png\";\n\n/***/ }),\n\n/***/ \"9uvP\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/popup_c031c4399970141579ccae37440337d6.css\";\n\n/***/ }),\n\n/***/ \"AbyD\":\n/***/ (function(module, exports) {\n\n/*! \n * angular-loading-bar v0.8.0\n * https://chieffancypants.github.io/angular-loading-bar\n * Copyright (c) 2015 Wes Cruver\n * License: MIT\n */\n/*\n * angular-loading-bar\n *\n * intercepts XHR requests and creates a loading bar.\n * Based on the excellent nprogress work by rstacruz (more info in readme)\n *\n * (c) 2013 Wes Cruver\n * License: MIT\n */\n\n\n(function() {\n\n'use strict';\n\n// Alias the loading bar for various backwards compatibilities since the project has matured:\nangular.module('angular-loading-bar', ['cfp.loadingBarInterceptor']);\nangular.module('chieffancypants.loadingBar', ['cfp.loadingBarInterceptor']);\n\n\n/**\n * loadingBarInterceptor service\n *\n * Registers itself as an Angular interceptor and listens for XHR requests.\n */\nangular.module('cfp.loadingBarInterceptor', ['cfp.loadingBar'])\n .config(['$httpProvider', function ($httpProvider) {\n\n var interceptor = ['$q', '$cacheFactory', '$timeout', '$rootScope', '$log', 'cfpLoadingBar', function ($q, $cacheFactory, $timeout, $rootScope, $log, cfpLoadingBar) {\n\n /**\n * The total number of requests made\n */\n var reqsTotal = 0;\n\n /**\n * The number of requests completed (either successfully or not)\n */\n var reqsCompleted = 0;\n\n /**\n * The amount of time spent fetching before showing the loading bar\n */\n var latencyThreshold = cfpLoadingBar.latencyThreshold;\n\n /**\n * $timeout handle for latencyThreshold\n */\n var startTimeout;\n\n\n /**\n * calls cfpLoadingBar.complete() which removes the\n * loading bar from the DOM.\n */\n function setComplete() {\n $timeout.cancel(startTimeout);\n cfpLoadingBar.complete();\n reqsCompleted = 0;\n reqsTotal = 0;\n }\n\n /**\n * Determine if the response has already been cached\n * @param {Object} config the config option from the request\n * @return {Boolean} retrns true if cached, otherwise false\n */\n function isCached(config) {\n var cache;\n var defaultCache = $cacheFactory.get('$http');\n var defaults = $httpProvider.defaults;\n\n // Choose the proper cache source. Borrowed from angular: $http service\n if ((config.cache || defaults.cache) && config.cache !== false &&\n (config.method === 'GET' || config.method === 'JSONP')) {\n cache = angular.isObject(config.cache) ? config.cache\n : angular.isObject(defaults.cache) ? defaults.cache\n : defaultCache;\n }\n\n var cached = cache !== undefined ?\n cache.get(config.url) !== undefined : false;\n\n if (config.cached !== undefined && cached !== config.cached) {\n return config.cached;\n }\n config.cached = cached;\n return cached;\n }\n\n\n return {\n 'request': function(config) {\n // Check to make sure this request hasn't already been cached and that\n // the requester didn't explicitly ask us to ignore this request:\n if (!config.ignoreLoadingBar && !isCached(config)) {\n $rootScope.$broadcast('cfpLoadingBar:loading', {url: config.url});\n if (reqsTotal === 0) {\n startTimeout = $timeout(function() {\n cfpLoadingBar.start();\n }, latencyThreshold);\n }\n reqsTotal++;\n cfpLoadingBar.set(reqsCompleted / reqsTotal);\n }\n return config;\n },\n\n 'response': function(response) {\n if (!response || !response.config) {\n $log.error('Broken interceptor detected: Config object not supplied in response:\\n https://github.com/chieffancypants/angular-loading-bar/pull/50');\n return response;\n }\n\n if (!response.config.ignoreLoadingBar && !isCached(response.config)) {\n reqsCompleted++;\n $rootScope.$broadcast('cfpLoadingBar:loaded', {url: response.config.url, result: response});\n if (reqsCompleted >= reqsTotal) {\n setComplete();\n } else {\n cfpLoadingBar.set(reqsCompleted / reqsTotal);\n }\n }\n return response;\n },\n\n 'responseError': function(rejection) {\n if (!rejection || !rejection.config) {\n $log.error('Broken interceptor detected: Config object not supplied in rejection:\\n https://github.com/chieffancypants/angular-loading-bar/pull/50');\n return $q.reject(rejection);\n }\n\n if (!rejection.config.ignoreLoadingBar && !isCached(rejection.config)) {\n reqsCompleted++;\n $rootScope.$broadcast('cfpLoadingBar:loaded', {url: rejection.config.url, result: rejection});\n if (reqsCompleted >= reqsTotal) {\n setComplete();\n } else {\n cfpLoadingBar.set(reqsCompleted / reqsTotal);\n }\n }\n return $q.reject(rejection);\n }\n };\n }];\n\n $httpProvider.interceptors.push(interceptor);\n }]);\n\n\n/**\n * Loading Bar\n *\n * This service handles adding and removing the actual element in the DOM.\n * Generally, best practices for DOM manipulation is to take place in a\n * directive, but because the element itself is injected in the DOM only upon\n * XHR requests, and it's likely needed on every view, the best option is to\n * use a service.\n */\nangular.module('cfp.loadingBar', [])\n .provider('cfpLoadingBar', function() {\n\n this.autoIncrement = true;\n this.includeSpinner = true;\n this.includeBar = true;\n this.latencyThreshold = 100;\n this.startSize = 0.02;\n this.parentSelector = 'body';\n this.spinnerTemplate = '
';\n this.loadingBarTemplate = '
';\n\n this.$get = ['$injector', '$document', '$timeout', '$rootScope', function ($injector, $document, $timeout, $rootScope) {\n var $animate;\n var $parentSelector = this.parentSelector,\n loadingBarContainer = angular.element(this.loadingBarTemplate),\n loadingBar = loadingBarContainer.find('div').eq(0),\n spinner = angular.element(this.spinnerTemplate);\n\n var incTimeout,\n completeTimeout,\n started = false,\n status = 0;\n\n var autoIncrement = this.autoIncrement;\n var includeSpinner = this.includeSpinner;\n var includeBar = this.includeBar;\n var startSize = this.startSize;\n\n /**\n * Inserts the loading bar element into the dom, and sets it to 2%\n */\n function _start() {\n if (!$animate) {\n $animate = $injector.get('$animate');\n }\n\n var $parent = $document.find($parentSelector).eq(0);\n $timeout.cancel(completeTimeout);\n\n // do not continually broadcast the started event:\n if (started) {\n return;\n }\n\n $rootScope.$broadcast('cfpLoadingBar:started');\n started = true;\n\n if (includeBar) {\n $animate.enter(loadingBarContainer, $parent, angular.element($parent[0].lastChild));\n }\n\n if (includeSpinner) {\n $animate.enter(spinner, $parent, angular.element($parent[0].lastChild));\n }\n\n _set(startSize);\n }\n\n /**\n * Set the loading bar's width to a certain percent.\n *\n * @param n any value between 0 and 1\n */\n function _set(n) {\n if (!started) {\n return;\n }\n var pct = (n * 100) + '%';\n loadingBar.css('width', pct);\n status = n;\n\n // increment loadingbar to give the illusion that there is always\n // progress but make sure to cancel the previous timeouts so we don't\n // have multiple incs running at the same time.\n if (autoIncrement) {\n $timeout.cancel(incTimeout);\n incTimeout = $timeout(function() {\n _inc();\n }, 250);\n }\n }\n\n /**\n * Increments the loading bar by a random amount\n * but slows down as it progresses\n */\n function _inc() {\n if (_status() >= 1) {\n return;\n }\n\n var rnd = 0;\n\n // TODO: do this mathmatically instead of through conditions\n\n var stat = _status();\n if (stat >= 0 && stat < 0.25) {\n // Start out between 3 - 6% increments\n rnd = (Math.random() * (5 - 3 + 1) + 3) / 100;\n } else if (stat >= 0.25 && stat < 0.65) {\n // increment between 0 - 3%\n rnd = (Math.random() * 3) / 100;\n } else if (stat >= 0.65 && stat < 0.9) {\n // increment between 0 - 2%\n rnd = (Math.random() * 2) / 100;\n } else if (stat >= 0.9 && stat < 0.99) {\n // finally, increment it .5 %\n rnd = 0.005;\n } else {\n // after 99%, don't increment:\n rnd = 0;\n }\n\n var pct = _status() + rnd;\n _set(pct);\n }\n\n function _status() {\n return status;\n }\n\n function _completeAnimation() {\n status = 0;\n started = false;\n }\n\n function _complete() {\n if (!$animate) {\n $animate = $injector.get('$animate');\n }\n\n $rootScope.$broadcast('cfpLoadingBar:completed');\n _set(1);\n\n $timeout.cancel(completeTimeout);\n\n // Attempt to aggregate any start/complete calls within 500ms:\n completeTimeout = $timeout(function() {\n var promise = $animate.leave(loadingBarContainer, _completeAnimation);\n if (promise && promise.then) {\n promise.then(_completeAnimation);\n }\n $animate.leave(spinner);\n }, 500);\n }\n\n return {\n start : _start,\n set : _set,\n status : _status,\n inc : _inc,\n complete : _complete,\n autoIncrement : this.autoIncrement,\n includeSpinner : this.includeSpinner,\n latencyThreshold : this.latencyThreshold,\n parentSelector : this.parentSelector,\n startSize : this.startSize\n };\n\n\n }]; //\n }); // wtf javascript. srsly\n})(); //\n\n\n/***/ }),\n\n/***/ \"AgC3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar SmoothScroll_1 = __webpack_require__(\"OSKg\");\r\nmodule_1.default.directive('smoothScroll', function () { return function (scope, element, attr) {\r\n var offset = parseInt(attr.smoothOffset, 10) || 0;\r\n var scrollSvc = new SmoothScroll_1.SmoothScroll(element[0], offset);\r\n element.on('click', function () { return (attr.smoothScroll !== '' && scope[attr.smoothScroll]) && scrollSvc.scroll(); });\r\n}; });\r\n\n\n/***/ }),\n\n/***/ \"Ao4C\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/judge-item_e7ff0f2e037025e2d772b2af67aeb787.css\";\n\n/***/ }),\n\n/***/ \"Argd\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/ng-tags-input_fe8b4c708dc49b84c9c095cc9fc3e5d7.css\";\n\n/***/ }),\n\n/***/ \"B6ri\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;\r\nvar createFormatter = function (formatterName) {\r\n module_1.default.directive(formatterName, ['PaymentHelpers', function (PaymentHelpers) {\r\n return {\r\n scope: false,\r\n restrict: 'A',\r\n link: function (scope, element) { return PaymentHelpers[formatterName](element); }\r\n };\r\n }]);\r\n};\r\ncreateFormatter('formatCardNumber');\r\ncreateFormatter('formatCardExpiry');\r\ncreateFormatter('formatCardCvc');\r\ncreateFormatter('restrictNumeric');\r\nvar createBlurValidator = function (validatorName, validate, parserCallback) {\r\n return module_1.default.directive(validatorName, ['$timeout', 'PaymentHelpers', function ($timeout, PaymentHelpers) {\r\n if (PaymentHelpers[validatorName]) {\r\n validate = PaymentHelpers[validatorName];\r\n }\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, ctrl) {\r\n var isValid = true;\r\n var parser = function (viewValue) {\r\n if (parserCallback)\r\n parserCallback(scope, viewValue, PaymentHelpers);\r\n isValid = validate(viewValue);\r\n if (isValid) {\r\n ctrl.$setValidity(validatorName, true);\r\n if (ctrl.isValid)\r\n element.addClass('is-valid');\r\n }\r\n else {\r\n element.removeClass('is-valid');\r\n }\r\n ctrl.isValid = ctrl.$valid && isValid;\r\n return viewValue;\r\n };\r\n ctrl.$parsers.unshift(parser);\r\n element.on('blur', function () {\r\n if (!isValid) {\r\n scope.$apply(function () {\r\n return ctrl.$setValidity(validatorName, false);\r\n });\r\n }\r\n });\r\n if (attrs[validatorName] === 'onStart') {\r\n $timeout(function () {\r\n if (ctrl.$viewValue) {\r\n parser(ctrl.$viewValue);\r\n element.triggerHandler('blur');\r\n }\r\n });\r\n }\r\n }\r\n };\r\n }]);\r\n};\r\ncreateBlurValidator('validateName', function (str) {\r\n return !angular.isString(str) || str.length < 30 && /^[A-Z.'\\- ]*$/.test(str);\r\n});\r\ncreateBlurValidator('validateCardNumber');\r\ncreateBlurValidator('validateCardExpiry', angular.noop(), function (scope, viewValue, PaymentHelpers) {\r\n var cardExpiry = PaymentHelpers.cardExpiryVal(viewValue || '');\r\n scope.card_exp_month = cardExpiry.month;\r\n scope.card_exp_year = cardExpiry.year;\r\n});\r\ncreateBlurValidator('validateCardCvc');\r\ncreateBlurValidator('validateZip', function (value) {\r\n return !value || value.length === 0 || /^\\d{5}(-\\d{4})?$/.test(value.trim());\r\n});\r\ncreateBlurValidator('validateEmailOnblur', function (s) { return !Strings_1.Strings.isBlank(s) && EMAIL_REGEXP.test(s); });\r\ncreateBlurValidator('requiredOnblur', function (s) { return !Strings_1.Strings.isBlank(s); });\r\n\n\n/***/ }),\n\n/***/ \"BCWO\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-invoice-history-container_90a939514f0abab315c34ba136a09c50.css\";\n\n/***/ }),\n\n/***/ \"BGDY\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-medium-landing_9d28a6855a0274832dc4bbd0ad8ebced.css\";\n\n/***/ }),\n\n/***/ \"BH+f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/pricing_4d8a34564c802442a420f92180b223bc.css\";\n\n/***/ }),\n\n/***/ \"BJa0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-router-modals-container_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n/***/ }),\n\n/***/ \"BTge\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-wave-typography_ec4c1dc356d024bccb9509b4fbe756f7.css\";\n\n/***/ }),\n\n/***/ \"Bdsd\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/dropdown-menu_6bfb9de2952ff8942beade2f63ee086c.css\";\n\n/***/ }),\n\n/***/ \"BjM0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/any-landing_1ddf41ee0ef4e7cdb072de27b25f6c20.css\";\n\n/***/ }),\n\n/***/ \"Bkei\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/_checkbox-tab_51ea558bff237cdf7084d128a9e406eb.css\";\n\n/***/ }),\n\n/***/ \"C4lS\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nmodule_1.default.factory('keypressHelper', [\"$parse\", function ($parse) {\r\n var keysByCode = {\r\n 8: 'backspace',\r\n 9: 'tab',\r\n 13: 'enter',\r\n 27: 'esc',\r\n 32: 'space',\r\n 33: 'pageup',\r\n 34: 'pagedown',\r\n 35: 'end',\r\n 36: 'home',\r\n 37: 'left',\r\n 38: 'up',\r\n 39: 'right',\r\n 40: 'down',\r\n 45: 'insert',\r\n 46: 'delete'\r\n };\r\n var capitaliseFirstLetter = function (string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n };\r\n return function (mode, scope, elm, attrs) {\r\n var params;\r\n var combinations = [];\r\n params = scope.$eval(attrs['ui' + capitaliseFirstLetter(mode)]);\r\n // Prepare combinations for simple checking\r\n angular.forEach(params, function (v, k) {\r\n var combination;\r\n var expression;\r\n expression = $parse(v);\r\n angular.forEach(k.split(' '), function (variation) {\r\n combination = {\r\n expression: expression,\r\n keys: {}\r\n };\r\n angular.forEach(variation.split('-'), function (value) {\r\n combination.keys[value] = true;\r\n });\r\n combinations.push(combination);\r\n });\r\n });\r\n // Check only matching of pressed keys one of the conditions\r\n elm.bind(mode, function (event) {\r\n // No need to do that inside the cycle\r\n var altPressed = event.metaKey || event.altKey;\r\n var ctrlPressed = event.ctrlKey;\r\n var shiftPressed = event.shiftKey;\r\n var keyCode = event.keyCode;\r\n // normalize keycodes\r\n if (mode === 'keypress' && !shiftPressed && keyCode >= 97 && keyCode <= 122) {\r\n keyCode = keyCode - 32;\r\n }\r\n // Iterate over prepared combinations\r\n angular.forEach(combinations, function (combination) {\r\n var mainKeyPressed = (combination.keys[keysByCode[event.keyCode]] || combination.keys[event.keyCode.toString()]) || false;\r\n var altRequired = combination.keys.alt || false;\r\n var ctrlRequired = combination.keys.ctrl || false;\r\n var shiftRequired = combination.keys.shift || false;\r\n if (mainKeyPressed &&\r\n (altRequired == altPressed) &&\r\n (ctrlRequired == ctrlPressed) &&\r\n (shiftRequired == shiftPressed)) {\r\n // Run the function\r\n scope.$apply(function () {\r\n combination.expression(scope, { '$event': event });\r\n });\r\n }\r\n });\r\n });\r\n };\r\n}]);\r\n/**\r\n * Bind one or more handlers to particular keys or their combination\r\n * @param hash {mixed} keyBindings Can be an object or string where keybinding expression of keys or keys combinations and AngularJS Exspressions are set. Object syntax: \"{ keys1: expression1 [, keys2: expression2 [ , ... ]]}\". String syntax: \"\"expression1 on keys1 [ and expression2 on keys2 [ and ... ]]\"\". Expression is an AngularJS Expression, and key(s) are dash-separated combinations of keys and modifiers (one or many, if any. Order does not matter). Supported modifiers are 'ctrl', 'shift', 'alt' and key can be used either via its keyCode (13 for Return) or name. Named keys are 'backspace', 'tab', 'enter', 'esc', 'space', 'pageup', 'pagedown', 'end', 'home', 'left', 'up', 'right', 'down', 'insert', 'delete'.\r\n * @example \r\n **/\r\nvar actions = ['down', 'press', 'up'];\r\nangular.forEach(actions, function (action) {\r\n var event = 'key' + action;\r\n var directiveName = 'ui' + Strings_1.Strings.capitalize(event);\r\n module_1.default.directive(directiveName, ['keypressHelper', function (keypressHelper) {\r\n return function (scope, elm, attrs) {\r\n return keypressHelper(event, scope, elm, attrs);\r\n };\r\n }]);\r\n});\r\n\n\n/***/ }),\n\n/***/ \"CDOh\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-tutorial-page_b94b8d864aaeb6f81b9bb896ce9148fe.css\";\n\n/***/ }),\n\n/***/ \"CFmk\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/16.svg\";\n\n/***/ }),\n\n/***/ \"CM5t\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/week1_2b0e67ae8ee824687a6011ff84556633.html\";\n\n/***/ }),\n\n/***/ \"CRNW\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\");\r\nvar AnimatronProjectsSvc_1 = __webpack_require__(\"P9JW\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar MasonryCtrl = (function () {\r\n MasonryCtrl.$inject = [\"$scope\", \"$rootScope\", \"$element\", \"$q\"];\r\n function MasonryCtrl($scope, $rootScope, $element, $q) {\r\n var _this = this;\r\n this.$onInit = function () { return underscore_extensions_1.Utils.rAF(function () {\r\n var anmDefered = $q.defer();\r\n var destroy = $scope.$watch('animatron', function (a) {\r\n if (_.isObject(a)) {\r\n anmDefered.resolve(a);\r\n destroy();\r\n }\r\n });\r\n _this.anmSvcPromise = anmDefered.promise;\r\n var container = $element[0];\r\n var columnWidth = container.querySelector('.projects-column-width').offsetWidth;\r\n var deferred = $q.defer();\r\n _this.cache = [];\r\n loadScripts([lazy_modules_1.masonryLib], function () {\r\n var Masonry = window.Masonry;\r\n _this.anmSvcPromise.then(function (a) { return a.computedWidth = columnWidth; });\r\n var msnry = new Masonry(container, {\r\n itemSelector: 'masonry-brick',\r\n gutter: container.querySelector('.projects-gutter'),\r\n columnWidth: columnWidth,\r\n fitWidth: true,\r\n containerStyle: null,\r\n stagger: 30,\r\n initLayout: true,\r\n transitionDuration: (options.isIE ? '0' : '0.4s')\r\n });\r\n _this.anmSvcPromise.then(function (a) { return a.nextPage(); });\r\n var destroyMsnry = function () {\r\n msnry.items = [];\r\n msnry.destroy();\r\n msnry.layout();\r\n msnry.bindResize();\r\n };\r\n $rootScope.$on('project:remove', function (e, pid) {\r\n msnry.remove(document.getElementById('brick-' + pid));\r\n msnry.layout();\r\n });\r\n $rootScope.$on('masonry:layout', function () { return msnry.layout(); });\r\n $rootScope.$on('masonry:destroy', function () { return destroyMsnry(); });\r\n $rootScope.$on(AnimatronProjectsSvc_1.PROJECT_ADD, function (e, _a) {\r\n var project = _a.project;\r\n return setTimeout(function () {\r\n var el = document.getElementById('brick-' + project.id);\r\n msnry.appended(el);\r\n msnry.reloadItems();\r\n msnry.layout();\r\n }, 0);\r\n });\r\n if (_this.ExploreCtrl) {\r\n var onTabChangeFromCtrl_1 = _this.ExploreCtrl.onTabChange.bind(_this.ExploreCtrl);\r\n _this.ExploreCtrl.onTabChange = function (args) {\r\n destroyMsnry();\r\n onTabChangeFromCtrl_1(args);\r\n };\r\n }\r\n deferred.resolve(msnry);\r\n });\r\n _this.msnryPromise = deferred.promise;\r\n }); };\r\n }\r\n return MasonryCtrl;\r\n}());\r\nmodule_1.default.directive('masonry', function () {\r\n return {\r\n scope: false,\r\n bindToController: true,\r\n require: { ExploreCtrl: '^?explorePage' },\r\n controller: MasonryCtrl\r\n };\r\n});\r\nmodule_1.default.directive('masonryBrick', function () {\r\n return {\r\n require: '^masonry',\r\n scope: false,\r\n restrict: 'E',\r\n link: function (scope, element, attrs, masonryCtrl) {\r\n masonryCtrl.msnryPromise && masonryCtrl.msnryPromise.then(function (msnry) {\r\n element[0].classList.add('msnry-item');\r\n masonryCtrl.cache.push(element[0]);\r\n if (scope.$last) {\r\n underscore_extensions_1.Utils.rAF(function () {\r\n msnry.appended(masonryCtrl.cache);\r\n msnry.reloadItems();\r\n msnry.layout();\r\n masonryCtrl.cache = [];\r\n masonryCtrl.anmSvcPromise.then(function (a) { return a.busy = false; });\r\n });\r\n }\r\n });\r\n }\r\n };\r\n});\r\n\n\n/***/ }),\n\n/***/ \"ClZ7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/1.svg\";\n\n/***/ }),\n\n/***/ \"Cw72\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-folder-bottom_3dee4ebb64472d66338320e123655759.css\";\n\n/***/ }),\n\n/***/ \"CxL4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-payment-details-enter-card_0851159b9b911c19f8c8bec2a6404db0.css\";\n\n/***/ }),\n\n/***/ \"D9F/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/11.png\";\n\n/***/ }),\n\n/***/ \"DDR7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/6.svg\";\n\n/***/ }),\n\n/***/ \"DFGL\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/3.svg\";\n\n/***/ }),\n\n/***/ \"DHQn\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/week2_4369c87474f907beb97b1160e6b38a1d.html\";\n\n/***/ }),\n\n/***/ \"DMU6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/pre-register_c89215ecbde9aca4f2c56bfd2c6f86cb.css\";\n\n/***/ }),\n\n/***/ \"Dc98\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/13.svg\";\n\n/***/ }),\n\n/***/ \"Dg8K\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/random-fact_dd88410d10902627fd778ddaff9e358f.css\";\n\n/***/ }),\n\n/***/ \"DhCa\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-landing-common_83a760e8f429e1af34e83cb6a3ff7dfc.css\";\n\n/***/ }),\n\n/***/ \"Dmwp\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar Logo = (function () {\r\n Logo.$inject = [\"$location\", \"landingTemplateSvc\"];\r\n function Logo($location, landingTemplateSvc) {\r\n this.$location = $location;\r\n this.landingTemplateSvc = landingTemplateSvc;\r\n this.islogoClickable = this.isLink || this.landingTemplateSvc.isLink;\r\n }\r\n Logo.prototype.logoHandler = function () {\r\n if (this.isLink || this.landingTemplateSvc.isLink) {\r\n var url = this.href ? this.href : '/wave';\r\n if (this.openInNewWindow) {\r\n window.open(\"\" + window.location.origin + url, '_blank');\r\n }\r\n else {\r\n this.$location.path(url);\r\n }\r\n }\r\n };\r\n return Logo;\r\n}());\r\nmodule_1.default.component('logo', {\r\n bindings: {\r\n product: '@',\r\n logoStyle: '@',\r\n additionalLogo: '@',\r\n isLink: '\"\r\n});\r\n\n\n/***/ }),\n\n/***/ \"Du2S\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/countdown_00505d8b81346a11d40d0d17e7c4a5f7.css\";\n\n/***/ }),\n\n/***/ \"DuQD\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/17.png\";\n\n/***/ }),\n\n/***/ \"EHgq\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-9.png\";\n\n/***/ }),\n\n/***/ \"EXaJ\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar SpinnerSvc_1 = __webpack_require__(\"pPBV\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar ProjectPageCanvasCtrl = (function () {\r\n ProjectPageCanvasCtrl.$inject = [\"$scope\", \"$element\", \"$stateParams\", \"Player\", \"OldPlayer\", \"AnimatronPreviews\"];\r\n function ProjectPageCanvasCtrl($scope, $element, $stateParams, Player, OldPlayer, AnimatronPreviews) {\r\n var _this = this;\r\n this.$scope = $scope;\r\n this.$element = $element;\r\n this.$stateParams = $stateParams;\r\n this.Player = Player;\r\n this.OldPlayer = OldPlayer;\r\n this.AnimatronPreviews = AnimatronPreviews;\r\n this.canvas = this.$element[0].firstChild;\r\n this.resize = function (player) { return function () {\r\n var _a = _this.calculate(), width = _a[0], height = _a[1];\r\n if (player) {\r\n player.setSize(width, height);\r\n }\r\n }; };\r\n }\r\n ProjectPageCanvasCtrl.prototype.$onInit = function () {\r\n var _this = this;\r\n this.ProjectPageCtrl.projectPromise.then(function (p) {\r\n _this.project = p;\r\n _this.playerSelector = _this.$element[0].parentElement;\r\n _this.projectModalSelector = document.querySelector('.wrapper-proj');\r\n if (_this.ProjectPageCtrl.twoPlayers) {\r\n _this.playerSelector.style.minWidth = 'initial';\r\n }\r\n _this.$scope.fullscreen = options.handHeld;\r\n if (_this.project && _this.project.id === _this.$stateParams.projectId) {\r\n _this.createPlayer();\r\n }\r\n underscore_extensions_1.Utils.scopedEvent('keyup', _this.$scope, function (e) {\r\n if (e.keyCode === 27 && document.querySelector('#project-player').classList.contains('fullscreen')) {\r\n _this.ProjectPageCtrl.toggleFullscreen();\r\n }\r\n });\r\n _this.ProjectPageCtrl.toggleFullscreen = function () {\r\n document.querySelector('#project-player').classList.toggle('fullscreen');\r\n _this.projectWidth = window.innerWidth;\r\n _this.ProjectPageCtrl.player.then(function (p) { return _this.resize(p)(); });\r\n _this.$scope.fullscreen = true;\r\n };\r\n });\r\n };\r\n ProjectPageCanvasCtrl.prototype.getHeightMargin = function () {\r\n return this.$scope.fullscreen ? (options.handHeld ? document.querySelector('header').offsetHeight : 0) : 210;\r\n };\r\n ProjectPageCanvasCtrl.prototype.calculate = function () {\r\n if (_.isUndefined(this.projectWidth)) {\r\n this.projectWidth = Math.max(this.project.width, 640);\r\n }\r\n var width = this.$scope.fullscreen ? window.innerWidth : this.projectWidth, height = Math.round(this.project.height * width / this.project.width);\r\n var bodyDimension = document.body.getBoundingClientRect(), windowWidth = bodyDimension.width / (this.ProjectPageCtrl.twoPlayers ? 2 : 1), windowHeight = bodyDimension.height, heightMargin = this.getHeightMargin(), widthMargin = this.$scope.fullscreen || options.handHeld ? 0 : 160, windowHeightScaled = windowHeight - heightMargin, windowWidthScaled = windowWidth - widthMargin, displayedProjectHeight = Math.round(height * windowWidthScaled / width), displayedProjectWidth = Math.round(width * windowHeightScaled / height);\r\n if (width > windowWidthScaled) {\r\n width = windowWidthScaled;\r\n height = displayedProjectHeight;\r\n }\r\n if (height > windowHeightScaled) {\r\n width = displayedProjectWidth;\r\n height = windowHeightScaled;\r\n }\r\n this.projectModalSelector.style.width = (this.old ? 2 : 1) * Math.max(width + 20, 390) + 'px';\r\n this.playerSelector.style.width = width + 'px';\r\n this.playerSelector.style.height = height + 'px';\r\n this.projectModalSelector.classList[(windowWidth - width < 250) ? 'add' : 'remove']('left-movie-buttons');\r\n return [width, height];\r\n };\r\n ProjectPageCanvasCtrl.prototype.createPlayer = function () {\r\n var _this = this;\r\n var suffix = this.ProjectPageCtrl.twoPlayers ? Math.random() : '';\r\n this.canvas.id = 'project-canvas-' + this.project.id + suffix;\r\n this.thumbnail = this.AnimatronPreviews.pickPreview(this.project.preview_metadata);\r\n var img = this.canvas.querySelector('.preview-image');\r\n img.onerror = function () { return img.style.display = 'none'; };\r\n var _a = this.calculate(), width = _a[0], height = _a[1];\r\n var svc = this.old ? this.OldPlayer : this.Player;\r\n if (window.isPhantom || this.$stateParams.stopPlay === 'true')\r\n return;\r\n this.ProjectPageCtrl.player = svc.createPlayer(this.project, this.canvas.id, {\r\n autoPlay: !options.handHeld && !this.ProjectPageCtrl.twoPlayers,\r\n width: width, height: height, thumbnail: this.thumbnail\r\n }, function (player) {\r\n _this.canvas.removeChild(img);\r\n SpinnerSvc_1.default.hide();\r\n if (_this.ProjectPageCtrl.twoPlayers) {\r\n ProjectPageCanvasCtrl.players.push(player);\r\n if (ProjectPageCanvasCtrl.players.length === 2) {\r\n setTimeout(function () { return ProjectPageCanvasCtrl.players.forEach(function (p) { return p.play(); }); });\r\n }\r\n }\r\n }).then(function (player) {\r\n underscore_extensions_1.Utils.scopedEvent('resize', _this.$scope, _.throttle(_this.resize(player), 300));\r\n _this.$scope.$watch(function () { return _this.ProjectPageCtrl.sizes.projectSize; }, function (newWidth) {\r\n if (_.isUndefined(newWidth) || newWidth === _this.projectWidth.toString()) {\r\n return;\r\n }\r\n _this.projectWidth = parseInt(newWidth, 10);\r\n _this.resize(player)();\r\n });\r\n return player;\r\n });\r\n };\r\n ProjectPageCanvasCtrl.prototype.$onDestroy = function () {\r\n this.Player.resetPlayer(this.ProjectPageCtrl.player);\r\n };\r\n return ProjectPageCanvasCtrl;\r\n}());\r\nProjectPageCanvasCtrl.players = [];\r\nmodule_1.default.component('projectPageCanvas', {\r\n bindings: {\r\n old: '<'\r\n },\r\n controller: ProjectPageCanvasCtrl,\r\n require: { ProjectPageCtrl: '^projectPage' },\r\n template: \"
\\\"{{$ctrl.project.name}}\\\"/
\"\r\n});\r\n\n\n/***/ }),\n\n/***/ \"EepZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/pre-register-section_4c15b2f3ddffaaa8b4004f665f71e257.css\";\n\n/***/ }),\n\n/***/ \"EsqY\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\r\n * To add new page, create new json object with the same structure as the ones below.\r\n * Most values should be key references to i18n files. So translations should also be written in app/assets/i18n/m_*.properties files\r\n * It is essential that all properties are present and have correct names.\r\n * Images are stored in app/assets/images/landing/banner folder, but here should only be filename.\r\n */\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = [\r\n {\r\n image: 'help-img-1',\r\n alt: 'explainer.help1.alt1',\r\n title: 'explainer.help1.title',\r\n shortTitle: 'short.presentation.title',\r\n description: 'explainer.help1.desc',\r\n url: '/presentation-maker'\r\n },\r\n {\r\n image: 'help-img-8',\r\n alt: 'explainer.help8.alt8',\r\n title: 'explainer.help8.title',\r\n shortTitle: 'short.agencies.title',\r\n description: 'explainer.help8.desc',\r\n url: '/animation-for-agencies'\r\n },\r\n {\r\n image: 'help-img-3',\r\n alt: 'explainer.help3.alt3',\r\n title: 'explainer.help3.title',\r\n shortTitle: 'short.explainer.title',\r\n description: 'explainer.help3.desc',\r\n url: '/explainer-video-maker'\r\n },\r\n {\r\n image: 'help-img-3b',\r\n alt: 'explainer.help3b.alt3b',\r\n title: 'explainer.help3b.title',\r\n description: 'explainer.help3b.desc',\r\n url: '/html5-banner-maker'\r\n },\r\n {\r\n image: 'help-img-4',\r\n alt: 'explainer.help4.alt3',\r\n title: 'explainer.help4.title',\r\n shortTitle: 'short.cards.title',\r\n description: 'explainer.help4.desc',\r\n url: '/studio/online-card-maker'\r\n },\r\n {\r\n image: 'help-img-5',\r\n alt: 'explainer.help5.alt5',\r\n title: 'explainer.help5.title',\r\n shortTitle: 'short.creativity.title',\r\n description: 'explainer.help5.desc',\r\n url: '/studio/creativity-in-classroom'\r\n },\r\n {\r\n image: 'help-img-6',\r\n alt: 'explainer.help6.alt6',\r\n title: 'explainer.help6.title',\r\n shortTitle: 'short.political.title',\r\n description: 'explainer.help6.desc',\r\n url: '/studio/political-cartoon-maker'\r\n },\r\n {\r\n image: 'help-img-7',\r\n alt: 'explainer.help7.alt7',\r\n title: 'explainer.help7.title',\r\n shortTitle: 'short.whiteboard.title',\r\n description: 'explainer.help7.desc',\r\n url: '/whiteboard-animation-software'\r\n },\r\n {\r\n image: 'help-img-2',\r\n alt: 'explainer.help2.alt2',\r\n title: 'explainer.help2.title',\r\n shortTitle: 'short.video.title',\r\n description: 'explainer.help2.desc',\r\n url: '/studio/online-video-maker'\r\n },\r\n {\r\n image: 'help-img-9',\r\n alt: 'explainer.help9.alt9',\r\n title: 'explainer.help9.title',\r\n shortTitle: 'short.designers.title',\r\n description: 'explainer.help9.desc',\r\n url: '/animation-for-designers'\r\n }\r\n];\r\n\n\n/***/ }),\n\n/***/ \"Exe7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/video-banner_73fe5fd387625f5d16dba9802b8fcc1d.html\";\n\n/***/ }),\n\n/***/ \"F3zo\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/21.png\";\n\n/***/ }),\n\n/***/ \"F6N9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-template-pages-list_8cfe2872b7dc9fc7cc8b2bd007f0aefd.css\";\n\n/***/ }),\n\n/***/ \"FD1p\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar UserAvatar = (function () {\r\n UserAvatar.$inject = [\"$scope\", \"$element\", \"$filter\", \"$attrs\"];\r\n function UserAvatar($scope, $element, $filter, $attrs) {\r\n var _this = this;\r\n this.$scope = $scope;\r\n this.$element = $element;\r\n this.$filter = $filter;\r\n this.$attrs = $attrs;\r\n var avatarCode = function () {\r\n var code = Array.prototype.map.call(_this.user.username, function (c) { return c.charCodeAt(0); })\r\n .reduce(function (a, b) { return a + b; }) % 13;\r\n return __webpack_require__(\"V16h\")(\"./\" + Math.max(1, code) + \".svg\");\r\n };\r\n var encodeUsername = $filter('encodeUsername');\r\n var imgElement = $element[0].getElementsByTagName('img')[0];\r\n var setDefaultAvatar = function () {\r\n imgElement.src = avatarCode();\r\n imgElement.onerror = undefined;\r\n };\r\n var getSizedUrl = function (url) {\r\n if (_.isNumber(_this.size)) {\r\n if (/google/.test(url)) {\r\n return url + '?sz=' + _this.size;\r\n }\r\n else if (/facebook/.test(url)) {\r\n return url.replace(/\\?type=.*$/, '') + (\"?width=\" + _this.size + \"&height=\" + _this.size);\r\n }\r\n else if (/gravatar/.test(url)) {\r\n return url + '?s=' + _this.size;\r\n }\r\n else if (/animatron/.test(url) && !/svg/.test(url)) {\r\n return UserAvatar.ConversionUrl + \"?u=\" + url + \"&p=r\" + _this.size + \":\" + _this.size + \":0&o=jpg\";\r\n }\r\n }\r\n return url;\r\n };\r\n var matchAvatarApi = function (url) {\r\n var match = url.match(/profile\\/avatar\\/(.*)/);\r\n return match && match.length > 0 ?\r\n url.replace(match[1], encodeUsername(match[1])) : url;\r\n };\r\n var setUrl = function (url) {\r\n url = matchAvatarApi(url);\r\n if (Strings_1.Strings.isBlank(url)) {\r\n setDefaultAvatar();\r\n }\r\n else {\r\n imgElement.onerror = function () { return setDefaultAvatar(); };\r\n imgElement.src = getSizedUrl(url);\r\n }\r\n };\r\n var watchObject = this.url ? 'url' : 'user.avatar';\r\n var watcher = $scope.$watch('$ctrl.' + watchObject, function (url) {\r\n if ((imgElement && !_.isUndefined(url)) || (_this.user && !_this.user.avatar)) {\r\n setUrl(url || '');\r\n var enableWatch = angular.isString($attrs.watch);\r\n if (!enableWatch) {\r\n watcher();\r\n setTimeout(function () { return $scope.$destroy(); });\r\n }\r\n }\r\n });\r\n }\r\n return UserAvatar;\r\n}());\r\nUserAvatar.ConversionUrl = \"https://conv.animatron\" + ( true ? '' : '-test') + \".com\";\r\nUserAvatar.avatars = __webpack_require__(\"QI9i\");\r\nmodule_1.default.component('userAvatar', {\r\n bindings: {\r\n url: '<',\r\n size: '<',\r\n user: '<'\r\n },\r\n controller: UserAvatar,\r\n template: '\"{{::$ctrl.user.displayName}}\"/'\r\n});\r\n\n\n/***/ }),\n\n/***/ \"FHxu\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/5.svg\";\n\n/***/ }),\n\n/***/ \"FUIZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nmodule_1.default.directive('validateUsername', [\"$filter\", \"$q\", \"HttpSvc\", function ($filter, $q, HttpSvc) {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, ctrl) {\r\n var usernameAvailChecker = function (username) {\r\n return HttpSvc($filter('encodeUsername')(username) + '/profile')\r\n .get().then(function (response) { return response.data.errorCode === 404; });\r\n };\r\n ctrl.$asyncValidators['validateUsername'] = function (viewValue) { return ((function () {\r\n if (viewValue && viewValue.length > 0 && viewValue !== options.user.username) {\r\n return usernameAvailChecker(viewValue);\r\n }\r\n else {\r\n return $q.resolve(true);\r\n }\r\n })()).then(function (r) { return r ? $q.resolve() : $q.reject(); }); };\r\n }\r\n };\r\n}]);\r\nmodule_1.default.directive('validateEmail', [\"$q\", \"HttpSvc\", function ($q, HttpSvc) {\r\n var apiSvc = HttpSvc('profile', 'check-email');\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, ctrl) {\r\n var emailAvailChecker = function (email) {\r\n return apiSvc.chain(email).get()\r\n .then(function (response) { return response.data.errorCode === 404; })\r\n .catch(function () { return true; });\r\n };\r\n ctrl.$asyncValidators['validateEmail'] = function (viewValue) { return $q(function (resolve, reject) {\r\n if (viewValue && viewValue.length > 0 && viewValue !== options.user.email) {\r\n emailAvailChecker(viewValue).then(function (r) { return r ? resolve() : reject(); });\r\n }\r\n else {\r\n resolve();\r\n }\r\n }); };\r\n }\r\n };\r\n}]);\r\nmodule_1.default.directive('match', [function () {\r\n return {\r\n require: 'ngModel',\r\n scope: {\r\n match: '='\r\n },\r\n link: function (scope, elem, attrs, ctrl) {\r\n scope.$watch('match', function () {\r\n ctrl.$validate();\r\n });\r\n ctrl.$validators['match'] = function (modelValue) {\r\n return (scope.match === undefined || ctrl.$pristine && (angular.isUndefined(modelValue) || modelValue === '')) || modelValue === scope.match;\r\n };\r\n }\r\n };\r\n }]);\r\nmodule_1.default.directive('resetField', [function () {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, elem, attrs, ctrl) {\r\n ctrl.$parsers.unshift(function (viewValue) {\r\n ctrl.$setValidity(attrs.resetField, true);\r\n return viewValue;\r\n });\r\n }\r\n };\r\n }]);\r\n\n\n/***/ }),\n\n/***/ \"Fa/p\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/19.svg\";\n\n/***/ }),\n\n/***/ \"FdTb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar AdBanner = (function () {\r\n function AdBanner() {\r\n }\r\n return AdBanner;\r\n}());\r\nmodule_1.default.component('adBanner', {\r\n bindings: {\r\n ad: '<'\r\n },\r\n controller: AdBanner,\r\n templateUrl: __webpack_require__(\"Exe7\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"FnqE\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/light-landing_00139a0deae1d2b1f8ced18569d5ca74.html\";\n\n/***/ }),\n\n/***/ \"FoMv\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar LandingPage = (function () {\r\n function LandingPage() {\r\n this.videoOptions = {\r\n volume: 0\r\n };\r\n this.video = {\r\n wistiaId: '0mvyjstgpk',\r\n preview: 'https://assets.animatron.com/images/landing/video-previews/studio_preview.jpg'\r\n };\r\n this.tabs = ['startup', 'teachers', 'animators', 'everyone'];\r\n }\r\n LandingPage.prototype.tabChange = function () {\r\n var selectors = '.tabs-animated-content, .quote-wrapper';\r\n var all = [].slice.call(document.querySelectorAll(selectors));\r\n all.forEach(function (el) { return el.classList.remove(LandingPage.animationActiveClz); });\r\n setTimeout(function () { return underscore_extensions_1.Utils.rAF(function () {\r\n return all.forEach(function (el) { return el.classList.add(LandingPage.animationActiveClz); });\r\n }); });\r\n };\r\n return LandingPage;\r\n}());\r\nLandingPage.animationActiveClz = 'stager--active';\r\nmodule_1.default.component('landingPage', {\r\n controller: LandingPage,\r\n templateUrl: __webpack_require__(\"nAeZ\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"G1du\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nAdminSvcFactory.$inject = [\"$http\", \"$q\", \"$rootScope\", \"TagsSvc\", \"HttpSvc\", \"BackendSvc\", \"TranslateSvc\"];\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar SpinnerSvc_1 = __webpack_require__(\"pPBV\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar AnimatronProjectsSvc_1 = __webpack_require__(\"P9JW\");\r\nvar AdminSvc = (function () {\r\n function AdminSvc(project) {\r\n var _this = this;\r\n this.project = project;\r\n this.exportActions = ['json', 'anm', 'zip', 'svg', 'png'];\r\n this.roles = options.user.subscriptionDetails.studio.features.rolez;\r\n this.staffPickTag = { name: 'Staff Picks', type: 'SUPER' };\r\n this.duplicating = false;\r\n this.exportProject = function (action) {\r\n return _this.BackendSvc.getServerUrl(_this.project).then(function (url) {\r\n var exportUrl = url + \"/project/export/\" + action + \"/\" + _this.project.id + \"?params={}&t=0\";\r\n window.open(exportUrl, '_self');\r\n });\r\n };\r\n this.doctor = function (action) {\r\n return _this.BackendSvc.getServerUrl(_this.project).then(function (url) {\r\n var doctorUrl = url + \"/doctor/show/\" + _this.project.id;\r\n window.open(doctorUrl, '_blank');\r\n });\r\n };\r\n }\r\n AdminSvc.prototype.staffLike = function () {\r\n var _this = this;\r\n SpinnerSvc_1.default.show();\r\n this.project.staffPicked = true;\r\n this.TagsSvc.saveTag(this.staffPickTag, this.project.id)\r\n .then(function () { return _this.project.tags.push(_this.staffPickTag); })\r\n .catch(this.errorFunction.bind(this)).finally(function () { return SpinnerSvc_1.default.hide(); });\r\n };\r\n ;\r\n AdminSvc.prototype.staffDislike = function () {\r\n var _this = this;\r\n SpinnerSvc_1.default.show();\r\n this.project.staffPicked = false;\r\n this.TagsSvc.tagRemoved(this.staffPickTag, this.project.id).then(function () {\r\n _this.project.tags = _this.project.tags.filter(function (tag) { return tag.name !== _this.staffPickTag.name; });\r\n }).finally(function () { return SpinnerSvc_1.default.hide(); });\r\n };\r\n ;\r\n AdminSvc.prototype.duplicateProject = function (folderId, copySuffix) {\r\n var _this = this;\r\n if (copySuffix === void 0) { copySuffix = 'Copy_from_website'; }\r\n SpinnerSvc_1.default.show();\r\n this.duplicating = true;\r\n var folderParam = folderId ? \"&folderId=\" + folderId : '';\r\n var url = \"project-api?oldProjectId=\" + this.project.id + \"&product=\" + this.project.product + folderParam;\r\n var opts = { headers: _.extend({ 'Content-Type': 'text/plain' }, options.headers) };\r\n return this.HttpSvc(url)\r\n .post({}, opts)\r\n .then(function (r) { return r.data; })\r\n .then(function (projectServerMapping) {\r\n var newName = _this.project.name + copySuffix, path = '/project/duplicate', params = \"?name=\" + encodeURIComponent(newName) + \"&oldId=\" + _this.project.id, duplicateUrl = projectServerMapping.url.replace('http:', 'https:') + path + params, duplicateProjectId = projectServerMapping['project-id'];\r\n opts.headers['Animatron-Project-ID'] = duplicateProjectId;\r\n var requestWrapper = function (request) {\r\n return request.then(function (r) { return r.data; }).then(function (data) {\r\n return underscore_extensions_1.Utils.isApiError(data)\r\n ? _this.$q.reject(data)\r\n : _this.$q.resolve(data);\r\n });\r\n };\r\n var duplicateRequest = requestWrapper(_this.$http.post(duplicateUrl, '', opts));\r\n var getProjectRequest = requestWrapper(_this.HttpSvc('project', duplicateProjectId).secureGet());\r\n return duplicateRequest\r\n .then(function () { return getProjectRequest; })\r\n .then(function (project) {\r\n _this.$rootScope.$emit(AnimatronProjectsSvc_1.PROJECT_ADD, { project: project });\r\n });\r\n })\r\n .finally(function () {\r\n _this.duplicating = false;\r\n SpinnerSvc_1.default.hide();\r\n });\r\n };\r\n ;\r\n AdminSvc.prototype.errorFunction = function (error) {\r\n console.log(error);\r\n _.notification.showError('Failed to modify staff picks');\r\n };\r\n ;\r\n return AdminSvc;\r\n}());\r\nexports.AdminSvc = AdminSvc;\r\nfunction AdminSvcFactory($http, $q, $rootScope, TagsSvc, HttpSvc, BackendSvc, TranslateSvc) {\r\n _.extend(AdminSvc.prototype, {\r\n $http: $http, $q: $q, TagsSvc: TagsSvc, HttpSvc: HttpSvc, BackendSvc: BackendSvc, $rootScope: $rootScope, TranslateSvc: TranslateSvc\r\n });\r\n return AdminSvc;\r\n}\r\nmodule_1.default.service('AdminSvc', AdminSvcFactory);\r\n\n\n/***/ }),\n\n/***/ \"G8ZG\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nmodule_1.default.component('oauthSignInButtons', {\r\n controller: [\"$timeout\", \"$state\", \"analyticSvc\", \"OAuthCallbackSvc\", \"LocalStorageSvc\", function ($timeout, $state, analyticSvc, OAuthCallbackSvc, LocalStorageSvc) {\r\n var originProduct = underscore_extensions_1.Utils.getProductByState($state).toLowerCase();\r\n var product = originProduct === 'any' ? 'studio' : originProduct;\r\n var makeCallback = function (service) {\r\n var s = false ? location.origin : location.origin.replace(/(https?:\\/\\/)(www.)?/, '$1www.');\r\n return s + \"/callback/\" + service + \"/\" + product;\r\n };\r\n var buildOAuthUrl = function (endpoint, apiKey, callback) {\r\n return endpoint + \"?response_type=token&client_id=\" + apiKey + \"&redirect_uri=\" + callback;\r\n };\r\n var google = (function () {\r\n var apiKey = options.social.googleApiKey;\r\n var endpoint = 'https://accounts.google.com/o/oauth2/auth';\r\n //https://developers.google.com/+/web/api/rest/oauth\r\n return buildOAuthUrl(endpoint, apiKey, makeCallback('google')) + \"&scope=profile email\";\r\n })();\r\n var facebook = (function () {\r\n var apiKey = options.social.facebookApiKey;\r\n var endpoint = 'https://www.facebook.com/dialog/oauth';\r\n return buildOAuthUrl(endpoint, apiKey, makeCallback('facebook')) + \"&scope=email&display=popup\";\r\n })();\r\n var twitter = options.apiDomain + \"/authenticate/twitter?redirect_uri=\" + location.origin + \"/callback/twitter/\" + product;\r\n var dribbble = (function () {\r\n var apiKey = options.social.dribbbleApiKey;\r\n var callback = false ? location.origin + \"/callback/dribbble\" : options.social.oauthCallback.replace('WEBFB', 'WEBDR');\r\n return \"https://dribbble.com/oauth/authorize?client_id=\" + apiKey + \"&redirect_uri=\" + callback;\r\n })();\r\n this.open = function (link, provider) { return $timeout(function () {\r\n analyticSvc.signUpSocialSubmit(provider);\r\n window.open(link, 'Auth', 'width=640, height=480,resizable,scrollbars,status');\r\n }); };\r\n this.providers = { facebook: facebook, google: google, twitter: twitter };\r\n window.addEventListener('storage', function listener(e) {\r\n if (LocalStorageSvc.get('auth') || (e.key === 'auth' && e.newValue)) {\r\n window.removeEventListener('storage', listener);\r\n LocalStorageSvc.remove('auth');\r\n var value_1 = JSON.parse(e.newValue);\r\n $timeout(function () { return OAuthCallbackSvc.doLogin(value_1.params, value_1.stateParams); });\r\n }\r\n }, false);\r\n }],\r\n template: \"
\\n \\n
\"\r\n});\r\n\n\n/***/ }),\n\n/***/ \"GIoJ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-user-page_83ad6a4b121102f63ca01b8ed9ad5382.css\";\n\n/***/ }),\n\n/***/ \"GOYa\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/tabs.html';\nvar html = \" \";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"GWJA\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nmodule_1.default.directive('fixedTabs', function () {\r\n return function (scope, element) {\r\n var header = element[0];\r\n var offset;\r\n scope.fixedTab = false;\r\n setTimeout(function () {\r\n offset = header.offsetTop;\r\n }, 0);\r\n underscore_extensions_1.Utils.scopedEvent('resize', scope, _.throttle(function () {\r\n offset = header.offsetTop || offset;\r\n }, 100));\r\n underscore_extensions_1.Utils.scopedEvent('scroll', scope, _.throttle(function () {\r\n underscore_extensions_1.Utils.rAF(function () {\r\n var atBottom = ((window.scrollY || window.pageYOffset) - offset) > -55;\r\n if (scope.fixedTab && !atBottom) {\r\n scope.fixedTab = false;\r\n header.classList.remove('fixed-tabs--pinned');\r\n }\r\n else if (!scope.fixedTab && atBottom) {\r\n scope.fixedTab = true;\r\n header.classList.add('fixed-tabs--pinned');\r\n }\r\n });\r\n }, 100));\r\n };\r\n});\r\n\n\n/***/ }),\n\n/***/ \"GgDZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/editable_db996aafcea7c65151268513181eb155.html\";\n\n/***/ }),\n\n/***/ \"HAK0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nUserChangeWatcherSvc.$inject = [\"$interval\", \"$timeout\", \"$log\", \"ipCookie\", \"AuthenticationSvc\"];\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nfunction UserChangeWatcherSvc($interval, $timeout, $log, ipCookie, AuthenticationSvc) {\r\n var checkInterval = 3000;\r\n var userTracker = _.once(function () {\r\n $timeout(function () {\r\n var token = ipCookie(AuthenticationSvc.animatronCookieName);\r\n var inProgress = false;\r\n $interval(function () {\r\n if (!inProgress) {\r\n token = ipCookie(AuthenticationSvc.animatronCookieName);\r\n if (AuthenticationSvc.loggedIn && !token) {\r\n $log.debug('User logged out.');\r\n inProgress = true;\r\n AuthenticationSvc.logoutAndGoRoot().then(function () { return inProgress = false; });\r\n }\r\n else if (!AuthenticationSvc.loggedIn && token) {\r\n $log.debug('User logged in.');\r\n inProgress = true;\r\n AuthenticationSvc.updateUser().then(function () { return inProgress = false; });\r\n }\r\n }\r\n }, checkInterval);\r\n }, checkInterval);\r\n });\r\n this.init = _.once(function (callback) {\r\n if (AuthenticationSvc.isCookieEnabled()) {\r\n AuthenticationSvc.getUser(true).then(callback).then(userTracker);\r\n }\r\n else {\r\n AuthenticationSvc.setAnonymous().then(function () {\r\n callback();\r\n _.notification.showError('Oh no! It seems you have disabled cookies! To continue please enable cookies in your browser and refresh the page.', 0);\r\n });\r\n }\r\n });\r\n}\r\nmodule_1.default.service('UserChangeWatcherSvc', UserChangeWatcherSvc);\r\n\n\n/***/ }),\n\n/***/ \"HCXh\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/user-section_2e350a04f8e1575fa848cdc0b8a75e75.css\";\n\n/***/ }),\n\n/***/ \"HGeo\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/search.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"HN/J\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/light/creativity.png\";\n\n/***/ }),\n\n/***/ \"Hgg4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = 'https://assets.animatron.com/html/project/project.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"Hh+C\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-page_3a85e49950317ccf94d8bd17ac253de0.css\";\n\n/***/ }),\n\n/***/ \"HmW0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/go-share-button_6031b57b3f20b9eb2040e00eb25f5a2f.css\";\n\n/***/ }),\n\n/***/ \"HnXD\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/business.png\";\n\n/***/ }),\n\n/***/ \"IFnZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/user-info-form_57fc806bcf3641168bb573fd1f60cc7f.css\";\n\n/***/ }),\n\n/***/ \"IGC9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar uploadProject = (function () {\r\n uploadProject.$inject = [\"$scope\", \"$element\", \"$http\", \"$state\", \"HttpSvc\"];\r\n function uploadProject($scope, $element, $http, $state, HttpSvc) {\r\n this.$scope = $scope;\r\n this.$element = $element;\r\n this.$http = $http;\r\n this.$state = $state;\r\n this.HttpSvc = HttpSvc;\r\n }\r\n uploadProject.prototype.$onInit = function () {\r\n var _this = this;\r\n this.$element[0].onchange = function (e) { return _this.$scope.$apply(function () {\r\n var fd = _this.getFormData();\r\n _this.upload(fd);\r\n }); };\r\n };\r\n uploadProject.prototype.getFileTag = function () {\r\n return (this.$element[0].querySelector('input[type=\"file\"]'));\r\n };\r\n uploadProject.prototype.getFormData = function () {\r\n var file = this.getFileTag().files[0];\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n return fd;\r\n };\r\n uploadProject.prototype.getProjectUrl = function () {\r\n return this.HttpSvc('project/list?product=wave')\r\n .get()\r\n .then(function (r) { return r.data; })\r\n .then(function (data) {\r\n var projectId = data.results[0].id;\r\n return \"https://upload.animatron\" + ( true ? '' : '-test') + \".com/assets/\" + projectId + \"/\" + options.user.hash;\r\n });\r\n };\r\n uploadProject.prototype.upload = function (fd) {\r\n var _this = this;\r\n this.getProjectUrl()\r\n .then(function (url) { return _this.$http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n transformResponse: angular.identity,\r\n headers: _.extend({ 'Content-Type': undefined }, options.headers)\r\n }); })\r\n .then(function (r) { return r.data; })\r\n .then(function (rawResponse) {\r\n var response = JSON.parse(rawResponse.replace('=', ':'));\r\n var projectId = response.projectId;\r\n _this.$state.go('wave-project', { projectId: projectId });\r\n })\r\n .catch(function (err) {\r\n console.error(err);\r\n _.notification.showError('Couldn\\'t upload project');\r\n })\r\n .finally(function () {\r\n _this.uploadingProject = false;\r\n _this.getFileTag().value = null;\r\n });\r\n };\r\n return uploadProject;\r\n}());\r\nmodule_1.default.component('uploadProject', {\r\n controller: uploadProject,\r\n template: \"\\n {{::$root.t('upload.project')}}\\n \\n \"\r\n});\r\n\n\n/***/ }),\n\n/***/ \"IU0M\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/banner_6adbd0b69ccd84f435df31b550ff0d58.html\";\n\n/***/ }),\n\n/***/ \"IXUN\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nmodule_1.default.directive('pauseHiddenPlayer', [\"$compile\", \"$rootScope\", \"PlayerSvc\", function ($compile, $rootScope, PlayerSvc) {\r\n return {\r\n restrict: 'A',\r\n scope: false,\r\n link: function (scope, element, attrs) {\r\n element.attr('is-on-screen', '');\r\n element.removeAttr('pause-hidden-player');\r\n $compile(element)(scope);\r\n var safePause = function (player) {\r\n if (player.isPlaying()) {\r\n player.pause();\r\n }\r\n };\r\n var safePlay = function (player) {\r\n if (!player.isPlaying()) {\r\n player.play(Math.max(0, player.getTime()));\r\n }\r\n };\r\n var findPlayer = function (callback) {\r\n var player = PlayerSvc.getPlayer(element[0].id);\r\n return player && callback(player);\r\n };\r\n scope.$watch(attrs['pauseHiddenPlayer'], function (should) {\r\n findPlayer(should ? safePlay : safePause);\r\n });\r\n $rootScope.$on('notOnScreen:' + attrs.id, function () { return findPlayer(safePause); });\r\n $rootScope.$on('onScreen:' + attrs.id, function () { return findPlayer(safePlay); });\r\n if (scope.$ctrl && scope.$ctrl.player) {\r\n scope.$ctrl.player.then(function (p) {\r\n if (element[0].classList.contains('on-screen')) {\r\n p && p.play();\r\n }\r\n });\r\n }\r\n }\r\n };\r\n}]);\r\n\n\n/***/ }),\n\n/***/ \"Ir05\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/different-devices_061d17c1a50768d41228978c2744f738.css\";\n\n/***/ }),\n\n/***/ \"J0yb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/scroll-button_b884d9ebe2b4fd4f51e8b0da1ebc037a.css\";\n\n/***/ }),\n\n/***/ \"J6t3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-alert_29b6c31568b6904f1c41754c194a407c.css\";\n\n/***/ }),\n\n/***/ \"JAU9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-horizontal-image-text_582b420c6b79e1d5ede15d3fe404d5b0.css\";\n\n/***/ }),\n\n/***/ \"JDnY\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-invoice-history-table_3b8268700da22057376c196d0ced17bb.css\";\n\n/***/ }),\n\n/***/ \"JE8O\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-search-page_649a9590f13fdc1ff7ec19ea664e6869.css\";\n\n/***/ }),\n\n/***/ \"JfO/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/social.png\";\n\n/***/ }),\n\n/***/ \"JiAo\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/6.png\";\n\n/***/ }),\n\n/***/ \"Jqsy\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-7.png\";\n\n/***/ }),\n\n/***/ \"Jrnx\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/media-sponsors-section_c6e1e2285e308f79f771dadc5424855d.css\";\n\n/***/ }),\n\n/***/ \"K3aT\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\");\r\nvar TagsSvc = (function () {\r\n TagsSvc.$inject = [\"$ocLazyLoad\", \"$q\", \"HttpSvc\"];\r\n function TagsSvc($ocLazyLoad, $q, HttpSvc) {\r\n var _this = this;\r\n this.$ocLazyLoad = $ocLazyLoad;\r\n this.$q = $q;\r\n this.HttpSvc = HttpSvc;\r\n this.tagsCache = [];\r\n this.restTags = this.HttpSvc('tags');\r\n this.loadTags = function (query) { return _this.$q(function (resolve) {\r\n if (_this.tagsCache.length === 0) {\r\n _this.restTags.get({ params: { all: _this.canCreateSuper() } }).then(function (response) {\r\n _this.tagsCache = _this.mapTagsCache(response.data);\r\n resolve(_this.fuzzySearch(query));\r\n });\r\n }\r\n else {\r\n resolve(_this.fuzzySearch(query));\r\n }\r\n }); };\r\n this.saveTag = function (tag, projectId) { return _this.restTags.securePost({ projectId: projectId, tag: tag })\r\n .then(function () { return _this.tagsCache.push(tag); }); };\r\n this.tagAdded = function (tag, projectId) { return _this.saveTag(tag, projectId); };\r\n this.tagRemoved = function (tag, projectId) { return _this.restTags.chain('delete').securePost({ projectId: projectId, tag: tag }); };\r\n this.fuzzySearch = function (query) {\r\n return _.filter(_this.tagsCache, function (tag) {\r\n var j = 0;\r\n for (var i = 0; i < query.length; i++) {\r\n var l = query[i];\r\n if (l === ' ')\r\n continue;\r\n j = tag.name.indexOf(l, j);\r\n if (j === -1)\r\n return false;\r\n }\r\n return true;\r\n });\r\n };\r\n this.mapTagsCache = function (data) {\r\n if (_this.canCreateSuper()) {\r\n data = data.map(function (tag) {\r\n if (tag.type === 'SUPER') {\r\n tag.name = '!' + tag.name;\r\n }\r\n return tag;\r\n });\r\n }\r\n return data;\r\n };\r\n this.canCreateSuper = function () {\r\n var rolez = options.user.subscriptionDetails.studio.features.rolez;\r\n return rolez.Admin && rolez.Admin.canCreateSuperTags || null;\r\n };\r\n lazy_modules_1.tagsInput().then(function (m) { return $ocLazyLoad.load(m); }).then(function () { return _this.tagsLibLoaded = true; });\r\n }\r\n return TagsSvc;\r\n}());\r\nexports.TagsSvc = TagsSvc;\r\nmodule_1.default.service('TagsSvc', TagsSvc);\r\n\n\n/***/ }),\n\n/***/ \"KApX\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-slider_f5ccdf0824648f1a5d99ec9741734968.css\";\n\n/***/ }),\n\n/***/ \"KBdS\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nmodule_1.default.directive('isOnScreen', [\"ViewPortSvc\", function (ViewPortSvc) {\r\n return function (scope, element, attrs) {\r\n // observer.staticWindowHeight = attrs.isOnScreen;\r\n var centred = parseInt(attrs.isOnScreen, 10);\r\n ViewPortSvc.subscribe(element[0], centred);\r\n setTimeout(function () { return ViewPortSvc.checker(); }, 0);\r\n scope.unsubscribe = function (el) { return ViewPortSvc.unsubscribe(el); };\r\n scope.$on('$destroy', function () { return scope.unsubscribe(element[0]); });\r\n };\r\n}]);\r\n\n\n/***/ }),\n\n/***/ \"KLH/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-tutorial-workshops_4cc1e32dd8de56a44eb4b71a74e8197a.css\";\n\n/***/ }),\n\n/***/ \"KLLA\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-6.png\";\n\n/***/ }),\n\n/***/ \"KV5y\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/light/light-presentation-image.png\";\n\n/***/ }),\n\n/***/ \"KvyJ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-gallery_1a93af951e5fe771d8c3a5abf6bef51c.css\";\n\n/***/ }),\n\n/***/ \"KxLd\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/5.png\";\n\n/***/ }),\n\n/***/ \"L2qt\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/title-shadow-block_2e8ab60e7c5d9e7779ce30b31b12c794.css\";\n\n/***/ }),\n\n/***/ \"LCXO\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./blog.png\": \"akEf\",\n\t\"./business.png\": \"HnXD\",\n\t\"./help-img-1.png\": \"vjsU\",\n\t\"./help-img-2.png\": \"tV+N\",\n\t\"./help-img-3.png\": \"whPB\",\n\t\"./help-img-3b.png\": \"9uog\",\n\t\"./help-img-4.png\": \"ukZe\",\n\t\"./help-img-5.png\": \"wWYA\",\n\t\"./help-img-6.png\": \"KLLA\",\n\t\"./help-img-7.png\": \"Jqsy\",\n\t\"./help-img-8.png\": \"2wXK\",\n\t\"./help-img-9.png\": \"EHgq\",\n\t\"./social.png\": \"JfO/\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"LCXO\";\n\n/***/ }),\n\n/***/ \"LT3T\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/landing-new-bottom_8d07518e090871d93296352714c52bc8.css\";\n\n/***/ }),\n\n/***/ \"LT8D\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/18.png\";\n\n/***/ }),\n\n/***/ \"LUYn\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/aff-modal_1a161d787a406eb287d41a0749c106d2.css\";\n\n/***/ }),\n\n/***/ \"LaVb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/1.png\";\n\n/***/ }),\n\n/***/ \"Ldjh\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/user-info_dac81fce0267bcb388942e6a232e1185.html\";\n\n/***/ }),\n\n/***/ \"LxjB\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-different-devices_0ec793bed54add9e7e9d6aa5977b35fc.css\";\n\n/***/ }),\n\n/***/ \"Lxjv\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar AffiliateSvc = (function () {\r\n AffiliateSvc.$inject = [\"$location\", \"$q\", \"LocalStorageSvc\", \"HttpSvc\"];\r\n function AffiliateSvc($location, $q, LocalStorageSvc, HttpSvc) {\r\n var _this = this;\r\n this.$location = $location;\r\n this.$q = $q;\r\n this.LocalStorageSvc = LocalStorageSvc;\r\n this.HttpSvc = HttpSvc;\r\n this.tapId = true ? '4142-17375a' : '4717-bb729d';\r\n this.storageName = 'anm_referrral_program';\r\n this.getReferralRequest = function () { return _this.HttpSvc(\"referral/foruser?product=\" + underscore_extensions_1.Utils.getProduct()); };\r\n }\r\n AffiliateSvc.prototype.isAffiliate = function () {\r\n var _a = this.$location.search(), tap_a = _a.tap_a, cjevent = _a.cjevent;\r\n return tap_a || cjevent;\r\n };\r\n AffiliateSvc.prototype.isTapAffiliate = function () {\r\n var tap_a = this.$location.search().tap_a;\r\n return !!tap_a;\r\n };\r\n AffiliateSvc.prototype.init = function () {\r\n if (!this.isAffiliate())\r\n return;\r\n var _a = this.$location.search(), tap_a = _a.tap_a, cjevent = _a.cjevent;\r\n if (tap_a) {\r\n this.detectTap();\r\n }\r\n else if (cjevent) {\r\n this.setAffiliateInfo(cjevent, 'anm-ref-cjevent');\r\n }\r\n };\r\n AffiliateSvc.prototype.getAffiliateUser = function () {\r\n var _this = this;\r\n var request = this.getReferralRequest();\r\n return request.secureGet()\r\n .then(function (r) { return r.data; })\r\n .then(function (affiliateInfo) {\r\n return underscore_extensions_1.Utils.isApiError(affiliateInfo) ? _this.$q.reject() : affiliateInfo;\r\n });\r\n };\r\n AffiliateSvc.prototype.getAffiliateHeader = function () {\r\n var storage = this.LocalStorageSvc.get(this.storageName);\r\n if (!storage)\r\n return null;\r\n var id = storage.id, headerName = storage.headerName;\r\n return _a = {}, _a[headerName] = id, _a;\r\n var _a;\r\n };\r\n AffiliateSvc.prototype.setAffiliateInfo = function (id, headerName) {\r\n this.LocalStorageSvc.set(this.storageName, {\r\n id: id,\r\n headerName: headerName\r\n });\r\n };\r\n AffiliateSvc.prototype.loadLib = function () {\r\n var deferred = this.$q.defer();\r\n loadScripts([lazy_modules_1.tapfiliateLib], function () { return deferred.resolve(); });\r\n return deferred.promise;\r\n };\r\n AffiliateSvc.prototype.detectTap = function () {\r\n var _this = this;\r\n this.loadLib().then(function () {\r\n window.tap.create(_this.tapId);\r\n window.tap.detectClick(function (_a) {\r\n var id = _a.id;\r\n return _this.setAffiliateInfo(id, 'anm-ref-tap');\r\n });\r\n });\r\n };\r\n return AffiliateSvc;\r\n}());\r\nexports.AffiliateSvc = AffiliateSvc;\r\nmodule_1.default.service('affiliateSvc', AffiliateSvc);\r\n\n\n/***/ }),\n\n/***/ \"MJwn\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-vertical-text-video_f2175cd105430d23ddbe8f25633d91b5.css\";\n\n/***/ }),\n\n/***/ \"MLEj\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/landing-video-preview_479d12f453f8716e934806854d1a1f91.css\";\n\n/***/ }),\n\n/***/ \"MT/e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nStopPlaySvcFactory.$inject = [\"$rootScope\", \"ViewPortSvc\"];\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar StopPlaySvc = (function () {\r\n function StopPlaySvc($rootScope, ViewPortSvc, element, handlerPlay, scrollCentredOn) {\r\n this.$rootScope = $rootScope;\r\n this.ViewPortSvc = ViewPortSvc;\r\n this.element = element;\r\n this.handlerPlay = handlerPlay;\r\n this.scrollCentredOn = scrollCentredOn;\r\n this.pauseCount = 1;\r\n this.modalShowOff = angular.noop;\r\n this.modalCloseOff = angular.noop;\r\n this.onScreenOff = angular.noop;\r\n this.notOnScreenOff = angular.noop;\r\n this.windowOnFocusHandler = angular.noop;\r\n this.windowOnBlurHandler = angular.noop;\r\n this.windowControl();\r\n this.modalControl();\r\n this.scrollControl(scrollCentredOn);\r\n }\r\n StopPlaySvc.prototype.deactivate = function () {\r\n this.modalShowOff();\r\n this.modalCloseOff();\r\n this.onScreenOff();\r\n this.notOnScreenOff();\r\n this.ViewPortSvc.unsubscribe(this.element[0]);\r\n window.removeEventListener('focus', this.windowOnFocusHandler, false);\r\n window.removeEventListener('blur', this.windowOnBlurHandler, false);\r\n };\r\n StopPlaySvc.prototype.windowControl = function () {\r\n this.windowOnFocusHandler = this.getPlayHandler(true);\r\n this.windowOnBlurHandler = this.getPlayHandler(false);\r\n window.addEventListener('focus', this.windowOnFocusHandler, false);\r\n window.addEventListener('blur', this.windowOnBlurHandler, false);\r\n };\r\n StopPlaySvc.prototype.getPlayHandler = function (status) {\r\n var _this = this;\r\n return function () {\r\n _this.pauseCount = status ? Math.max(0, --_this.pauseCount) : ++_this.pauseCount;\r\n _this.handlerPlay(_this.pauseCount === 0);\r\n };\r\n };\r\n StopPlaySvc.prototype.modalControl = function () {\r\n this.modalShowOff = this.$rootScope.$on('modal:show', this.getPlayHandler(false));\r\n this.modalCloseOff = this.$rootScope.$on('modal:close', this.getPlayHandler(true));\r\n };\r\n StopPlaySvc.prototype.scrollControl = function (centredOn) {\r\n var _this = this;\r\n var id = \"on-scroll-\" + Date.now();\r\n this.element[0].id = id;\r\n this.onScreenOff = this.$rootScope.$on(\"onScreen:\" + id, this.getPlayHandler(true));\r\n this.notOnScreenOff = this.$rootScope.$on(\"notOnScreen:\" + id, this.getPlayHandler(false));\r\n this.ViewPortSvc.subscribe(this.element[0], centredOn);\r\n setTimeout(function () { return _this.ViewPortSvc.checker(); }, 0);\r\n };\r\n return StopPlaySvc;\r\n}());\r\nexports.StopPlaySvc = StopPlaySvc;\r\nfunction StopPlaySvcFactory($rootScope, ViewPortSvc) {\r\n return function (element, handlerPlay, scrollCentredOn) { return new StopPlaySvc($rootScope, ViewPortSvc, element, handlerPlay, scrollCentredOn); };\r\n}\r\nmodule_1.default.service('stopPlaySvcFactory', StopPlaySvcFactory);\r\n\n\n/***/ }),\n\n/***/ \"Mzq4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__webpack_require__(\"vcaf\");\r\n__webpack_require__(\"Us82\");\r\n__webpack_require__(\"eDeh\");\r\n__webpack_require__(\"lvE2\");\r\n__webpack_require__(\"Pv2I\");\r\nvar SpinnerSvc_1 = __webpack_require__(\"pPBV\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nangular.module('infinite-scroll').value('THROTTLE_MILLISECONDS', 250);\r\nangular.module('animatronApp', [\r\n 'oc.lazyLoad',\r\n 'templates',\r\n 'animatronApp.services',\r\n 'animatronApp.directives',\r\n 'cfp.loadingBar',\r\n 'animatronApp.routes',\r\n 'ipCookie',\r\n 'infinite-scroll'\r\n]\r\n .concat(window.Raven ? ['ngRaven'] : []))\r\n .config([\"$anchorScrollProvider\", \"$qProvider\", \"$compileProvider\", \"$logProvider\", \"$sceDelegateProvider\", \"$ocLazyLoadProvider\", \"$httpProvider\", function ($anchorScrollProvider, $qProvider, $compileProvider, $logProvider, $sceDelegateProvider, $ocLazyLoadProvider, $httpProvider) {\r\n $ocLazyLoadProvider.config({\r\n // jsLoader() { console.error('use webpack for scripts, pls', arguments);},\r\n jsLoader: loadScripts,\r\n loadedModules: ['animatronApp'],\r\n debug: !options.debug,\r\n events: options.debug\r\n });\r\n $qProvider.errorOnUnhandledRejections(options.debug);\r\n $logProvider.debugEnabled(options.debug);\r\n $compileProvider\r\n .debugInfoEnabled(options.debug)\r\n .preAssignBindingsEnabled(true)\r\n .commentDirectivesEnabled(false)\r\n .cssClassDirectivesEnabled(false);\r\n $anchorScrollProvider.disableAutoScrolling();\r\n $sceDelegateProvider.resourceUrlWhitelist([\r\n 'self',\r\n 'http://*.animatron.com/**', 'https://*.animatron.com/**',\r\n 'http://*.animatron-test.com/**', 'https://*.animatron-test.com/**',\r\n 'http://d110oqv827o66u.cloudfront.net/**', 'https://d110oqv827o66u.cloudfront.net/**',\r\n 'http://d1nvrnigxcwebn.cloudfront.net/**', 'https://d1nvrnigxcwebn.cloudfront.net/**'\r\n ]);\r\n $httpProvider.useApplyAsync(true);\r\n $httpProvider.interceptors.push([\"$q\", \"$injector\", function ($q, $injector) {\r\n var retries = 0;\r\n var waitBetweenErrors = 1000;\r\n var maxRetries = 10;\r\n function onResponseError(httpConfig) {\r\n var $http = $injector.get('$http');\r\n var $timeout = $injector.get('$timeout');\r\n console.log('Error loading html, retrying', httpConfig.url);\r\n return $timeout(function () { return $http(httpConfig); }, waitBetweenErrors);\r\n }\r\n return {\r\n responseError: function (response) {\r\n if (response.config && ((/\\.html$/.test(response.config.url) || /assets\\/html/.test(response.config.url)))) {\r\n if (retries < maxRetries) {\r\n retries++;\r\n return onResponseError(response.config);\r\n }\r\n }\r\n retries = 0;\r\n return $q.reject(response);\r\n }\r\n };\r\n }]);\r\n}])\r\n .run([\"$rootScope\", \"$state\", \"$location\", \"UserChangeWatcherSvc\", \"$urlRouter\", \"ProjectModalSvc\", \"AuthenticationSvc\", \"analyticSvc\", \"affiliateSvc\", \"ipCookie\", \"cfpLoadingBar\", \"EventSvc\", \"TranslateSvc\", function ($rootScope, $state, $location, UserChangeWatcherSvc, $urlRouter, ProjectModalSvc, AuthenticationSvc, analyticSvc, affiliateSvc, ipCookie, cfpLoadingBar, EventSvc, TranslateSvc) {\r\n SpinnerSvc_1.default.set(cfpLoadingBar);\r\n EventSvc.init();\r\n $rootScope.TranslateSvc = TranslateSvc;\r\n $rootScope.t = TranslateSvc.get.bind(TranslateSvc);\r\n $rootScope.stateChangeSuccess = false;\r\n if ($location.search().apiProd) {\r\n options.apiDomain = '//api.animatron.com';\r\n }\r\n else if ($location.search().apiTest) {\r\n options.apiDomain = '//api.animatron-test.com';\r\n }\r\n //set options passed from Play Framework (in index.scala.html)\r\n $rootScope.options = options;\r\n $rootScope.user = options.user;\r\n $rootScope.authSvc = AuthenticationSvc;\r\n $rootScope.projectModalSvc = ProjectModalSvc;\r\n $rootScope.pendingUserEmail = function () { return ipCookie('_animatron_activate_pending'); };\r\n // init affiliates programs\r\n var affiliateRouteEventOff = $rootScope.$on('$stateChangeSuccess', function (ev, s) {\r\n affiliateSvc.init();\r\n affiliateRouteEventOff();\r\n });\r\n //don't resolve route(show anything) until user is loaded\r\n var load = $rootScope.$on('$locationChangeStart', function (e) {\r\n e.preventDefault();\r\n UserChangeWatcherSvc.init(function () {\r\n $urlRouter.sync();\r\n TranslateSvc.fetchTranslations();\r\n $rootScope.$on('$stateChangeStart', function () {\r\n SpinnerSvc_1.default.show();\r\n _.each(document.head.querySelectorAll('[rel=next], [rel=prev]'), function (el) {\r\n return el.parentElement.removeChild(el);\r\n });\r\n });\r\n var prerenederStatus = document.head.querySelector('[name=prerender-status-code]');\r\n var robots = document.head.querySelector('[name=robots]');\r\n $rootScope.$on('$stateChangeSuccess', function (ev, s) {\r\n $rootScope.animatronProduct = underscore_extensions_1.Utils.getProductByState($state);\r\n $rootScope.isWave = $rootScope.animatronProduct === 'WAVE';\r\n $rootScope.isStudio = $rootScope.animatronProduct === 'STUDIO';\r\n analyticSvc.changePage();\r\n if (!$rootScope.stateChangeSuccess) {\r\n $rootScope.stateChangeSuccess = true;\r\n } // fix blink effect in Safari\r\n var faviconEl = document.querySelector('[rel=\"icon\"]');\r\n faviconEl.href = $rootScope.isStudio ?\r\n __webpack_require__(\"rU96\") :\r\n __webpack_require__(\"6JEJ\");\r\n if (!_.find([/project-analytics/, /^project$/, /^explore/], function (r) { return r.test(s.name); })) {\r\n SpinnerSvc_1.default.hide();\r\n }\r\n setTimeout(function () { return window.scroll(0, 0); });\r\n prerenederStatus.content = s.httpStatus ? s.httpStatus : '200';\r\n if (true) {\r\n robots.content = s.noindex ? 'noindex' : 'all';\r\n }\r\n var urlTags = document.head.querySelectorAll('[name=\"twitter:url\"], [property=\"og:url\"], [rel=\"canonical\"]');\r\n _.each(urlTags, function (el) {\r\n return el[el.content ? 'content' : 'href'] = window.location.href.split('%3F')[0].split('?')[0];\r\n });\r\n if (typeof ga !== 'undefined') {\r\n ga('send', 'pageview', $location.path());\r\n }\r\n });\r\n if (load)\r\n load();\r\n });\r\n });\r\n $rootScope.retina = options.retina;\r\n $rootScope.handHeld = options.handHeld;\r\n $rootScope.setTitle = function (key) {\r\n var param = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n param[_i - 1] = arguments[_i];\r\n }\r\n var productL = underscore_extensions_1.Utils.getProductByState($state).toLowerCase();\r\n var productC = Strings_1.Strings.capitalize(productL);\r\n var defaultTitleKey = \"default.\" + productL + \".title\";\r\n var product = productC === 'Any' ? 'Animatron' : productC;\r\n return TranslateSvc.async(defaultTitleKey).then(function (defaultTitle) {\r\n var title = key && TranslateSvc.get.apply(TranslateSvc, [key].concat(param));\r\n if (typeof title === 'string' && title.length > 0) {\r\n var suffix_1 = TranslateSvc.get(productL + \".title.suffix\");\r\n _.each(document.head.querySelectorAll('[name=\"twitter:title\"], [property=\"og:title\"]'), function (el) {\r\n return el.content = title + \" | \" + suffix_1;\r\n });\r\n return $rootScope.title = title + \" | \" + suffix_1;\r\n }\r\n else {\r\n return $rootScope.title = defaultTitle;\r\n }\r\n }).catch(function (a) { return console.error(\"Missing key for title '\" + key + \"'\"); });\r\n };\r\n}]);\r\n\n\n/***/ }),\n\n/***/ \"N3N4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/_lang_7d81ce518454a574f5e28b1b0b605892.css\";\n\n/***/ }),\n\n/***/ \"NFSG\":\n/***/ (function(module, exports) {\n\n/*\n * Copyright 2013 Ivan Pusic\n * Contributors:\n * Matjaz Lipus\n */\nangular.module('ivpusic.cookie', ['ipCookie']);\nangular.module('ipCookie', ['ng']).\nfactory('ipCookie', ['$document',\n function ($document) {\n 'use strict';\n\n return (function () {\n function cookieFun(key, value, options) {\n\n var cookies,\n list,\n i,\n cookie,\n pos,\n name,\n hasCookies,\n all,\n expiresFor;\n\n options = options || {};\n\n if (value !== undefined) {\n // we are setting value\n value = typeof value === 'object' ? JSON.stringify(value) : String(value);\n\n if (typeof options.expires === 'number') {\n expiresFor = options.expires;\n options.expires = new Date();\n // Trying to delete a cookie; set a date far in the past\n if (expiresFor === -1) {\n options.expires = new Date('Thu, 01 Jan 1970 00:00:00 GMT');\n // A new \n } else if (options.expirationUnit !== undefined) {\n if (options.expirationUnit === 'hours') {\n options.expires.setHours(options.expires.getHours() + expiresFor);\n } else if (options.expirationUnit === 'minutes') {\n options.expires.setMinutes(options.expires.getMinutes() + expiresFor);\n } else if (options.expirationUnit === 'seconds') {\n options.expires.setSeconds(options.expires.getSeconds() + expiresFor);\n } else {\n options.expires.setDate(options.expires.getDate() + expiresFor);\n }\n } else {\n options.expires.setDate(options.expires.getDate() + expiresFor);\n }\n }\n return ($document[0].cookie = [\n encodeURIComponent(key),\n '=',\n encodeURIComponent(value),\n options.expires ? '; expires=' + options.expires.toUTCString() : '',\n options.path ? '; path=' + options.path : '',\n options.domain ? '; domain=' + options.domain : '',\n options.secure ? '; secure' : ''\n ].join(''));\n }\n\n list = [];\n all = $document[0].cookie;\n if (all) {\n list = all.split('; ');\n }\n\n cookies = {};\n hasCookies = false;\n\n for (i = 0; i < list.length; ++i) {\n if (list[i]) {\n cookie = list[i];\n pos = cookie.indexOf('=');\n name = cookie.substring(0, pos);\n value = decodeURIComponent(cookie.substring(pos + 1));\n\n if (key === undefined || key === name) {\n try {\n cookies[name] = JSON.parse(value);\n } catch (e) {\n cookies[name] = value;\n }\n if (key === name) {\n return cookies[name];\n }\n hasCookies = true;\n }\n }\n }\n if (hasCookies && key === undefined) {\n return cookies;\n }\n }\n cookieFun.remove = function (key, options) {\n var hasCookie = cookieFun(key) !== undefined;\n\n if (hasCookie) {\n if (!options) {\n options = {};\n }\n options.expires = -1;\n cookieFun(key, '', options);\n }\n return hasCookie;\n };\n return cookieFun;\n }());\n }\n]);\n\n\n/***/ }),\n\n/***/ \"NGqW\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/settings_ce69dda8c017ff4e1992503f36e5fa72.css\";\n\n/***/ }),\n\n/***/ \"NItV\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/_mixins_6cc546480fda1e74870552bfd551833b.css\";\n\n/***/ }),\n\n/***/ \"NNCM\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/21.svg\";\n\n/***/ }),\n\n/***/ \"NTYq\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wistia-player_42c9eb122a0e34a5645d3fa746e79201.css\";\n\n/***/ }),\n\n/***/ \"NZ2j\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-video-gallery_61f642d71733235ea5e45dc5dee68ccb.css\";\n\n/***/ }),\n\n/***/ \"NaY7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//require some deps that included from index.scala.html\r\n__webpack_require__(\"3ksy\");\r\n__webpack_require__(\"0nYI\");\r\n//add html to templace cache\r\nangular.module('templates', []);\r\n__webpack_require__(\"23em\");\r\n__webpack_require__(\"GOYa\");\r\n__webpack_require__(\"HGeo\");\r\n__webpack_require__(\"Rium\");\r\n__webpack_require__(\"nAeZ\");\r\n__webpack_require__(\"6XG8\");\r\n__webpack_require__(\"v/Ys\");\r\n__webpack_require__(\"b6Iv\");\r\n__webpack_require__(\"c5FE\");\r\n__webpack_require__(\"0MDI\");\r\n__webpack_require__(\"qffX\");\r\n__webpack_require__(\"cq6s\");\r\n// require('landing/landing-top-footer.html');\r\n__webpack_require__(\"Hgg4\");\r\n__webpack_require__(\"rU96\");\r\nfunction getMainView() {\r\n return document.querySelector('.main[ui-view]');\r\n}\r\nfunction showErrorPage() {\r\n var oReq = new XMLHttpRequest();\r\n oReq.onload = function () {\r\n document.querySelector('.wrapper').classList.add('wrapper-not-found');\r\n getMainView().innerHTML = this.responseText;\r\n };\r\n oReq.open('get', __webpack_require__(\"mWZi\"), true);\r\n oReq.send();\r\n}\r\nwindow.onerror = function (msg, url, lineNumber, column, err) {\r\n if (msg.indexOf('c.apply is not a function') > -1) {\r\n console.error('Unable to load file, check paths');\r\n }\r\n if (options && !true && options.debugger) {\r\n debugger;\r\n }\r\n console.log(arguments);\r\n console.error(err || msg);\r\n if (!getMainView().innerHTML) {\r\n showErrorPage();\r\n }\r\n return true;\r\n};\r\nif (window.Raven && window.console) {\r\n Raven.setTagsContext({ build: options.buildNumber });\r\n var originalError_1 = console.error;\r\n var originalConsole_1 = console;\r\n window.console.error = function (err) {\r\n var args = [].slice.call(arguments);\r\n var msg = '' + args.join(' ');\r\n var data = { level: 'error', logger: 'console', extra: { 'arguments': args } };\r\n if (err instanceof Error) {\r\n Raven.captureException(err, data);\r\n }\r\n else {\r\n Raven.captureMessage(msg, data);\r\n }\r\n if (_.notification && options && !true) {\r\n _.notification.showError('Exception: ' + msg.substring(0, 200));\r\n }\r\n Function.prototype.bind\r\n .call(originalError_1, originalConsole_1)\r\n .apply(originalConsole_1, args);\r\n };\r\n}\r\nif (!String.prototype.startsWith) {\r\n String.prototype.startsWith = function (searchString, position) {\r\n if (position === void 0) { position = 0; }\r\n return this.indexOf(searchString, position) === position;\r\n };\r\n}\r\nif (!Array.prototype.includes) {\r\n Array.prototype.includes = function (el) {\r\n return this.indexOf(el) !== -1;\r\n };\r\n}\r\nif (!String.prototype.includes) {\r\n String.prototype.includes = function (el) {\r\n return this.indexOf(el) !== -1;\r\n };\r\n}\r\nif (typeof Object.assign !== 'function')\r\n Object.assign = _.extend;\r\nObject.defineProperty && Object.defineProperty(window, '_', {\r\n value: _,\r\n writable: false\r\n});\r\ntry {\r\n var n = navigator.storage;\r\n n && n.persist && n.persist().catch(function (e) { return _.noop; });\r\n}\r\ncatch (e) { }\r\nvar createScriptEl = function (src) {\r\n var node = document.getElementsByTagName('head')[0] || document.body;\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n script.src = src;\r\n node.appendChild(script);\r\n return script;\r\n};\r\nvar cachePromise = {};\r\nvar requirejs = function (modules, callback, err) {\r\n return Promise.all(modules.filter(function (m) { return m; }).map(function (m) {\r\n var getPromise = function () { return new Promise(function (resolve, reject) {\r\n var script = createScriptEl(m);\r\n script.onload = script.onreadystatechange = function () { return resolve(); };\r\n script.onerror = reject;\r\n }); };\r\n if (!cachePromise[m]) {\r\n cachePromise[m] = getPromise();\r\n }\r\n return cachePromise[m];\r\n })).then(callback).catch(err);\r\n};\r\nwindow.loadScripts = function (modules, callback, silentFail) {\r\n if (silentFail === void 0) { silentFail = false; }\r\n var load = function (retries) { return requirejs(modules, callback, function (err) {\r\n if (silentFail)\r\n return;\r\n var failedId = err.requireModules && err.requireModules[0];\r\n // requirejs.undef(failedId);\r\n var query = \"script[data-requiremodule=\\\"\" + failedId + \"\\\"]\";\r\n var script = document.querySelector(query);\r\n if (script)\r\n script.parentNode.removeChild(script);\r\n if (retries >= 5) {\r\n console.error(err);\r\n callback(err);\r\n }\r\n else {\r\n console.log('Error loading, retrying', failedId);\r\n setTimeout(function () { return load(retries + 1); }, 500 * (retries + 1));\r\n }\r\n }); };\r\n load(0);\r\n};\r\n__webpack_require__(\"NFSG\");\r\n__webpack_require__(\"AbyD\");\r\n__webpack_require__(\"3qhd\");\r\n__webpack_require__(\"Mzq4\");\r\n\n\n/***/ }),\n\n/***/ \"Nlhm\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-folder-masonry_012dc42dd0794b95b38e01f152218c4a.css\";\n\n/***/ }),\n\n/***/ \"NnQa\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/10.png\";\n\n/***/ }),\n\n/***/ \"Nzyx\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/10.svg\";\n\n/***/ }),\n\n/***/ \"O3cu\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/project-summary_4012fd37248e82a445e03a1908356b91.html\";\n\n/***/ }),\n\n/***/ \"OAh3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-folder-tree-item_c3082cffb39afd618b88d6fdd01221c9.css\";\n\n/***/ }),\n\n/***/ \"OSKg\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar SmoothScroll = (function () {\r\n function SmoothScroll(toElement, offset, duration) {\r\n if (offset === void 0) { offset = 0; }\r\n if (duration === void 0) { duration = 500; }\r\n this.toElement = toElement;\r\n this.offset = offset;\r\n this.duration = duration;\r\n }\r\n SmoothScroll.prototype.scroll = function () {\r\n var _this = this;\r\n var startTime;\r\n var scrollTopDocument = (window.scrollY || window.pageYOffset);\r\n var elementOffset = this.getOffsetTop();\r\n var deltaY = elementOffset - scrollTopDocument;\r\n var scrollEasing = function (x) {\r\n return x < 0.5 ? Math.pow(x * 2, 2) / 2 : 1 - Math.pow((1 - x) * 2, 2) / 2;\r\n };\r\n var animateFrame = function (timestamp) {\r\n if (!startTime)\r\n startTime = timestamp;\r\n var progress = timestamp - startTime;\r\n var percent = progress >= _this.duration ? 1 : scrollEasing(progress / _this.duration);\r\n window.scrollTo(0, scrollTopDocument + (percent * deltaY));\r\n if (percent < 1)\r\n underscore_extensions_1.Utils.rAF(animateFrame);\r\n };\r\n underscore_extensions_1.Utils.rAF(animateFrame);\r\n };\r\n ;\r\n SmoothScroll.prototype.getOffsetTop = function () {\r\n var el = this.toElement;\r\n var parent = el.offsetParent;\r\n while (parent !== document.body) {\r\n el = parent;\r\n parent = parent.offsetParent;\r\n }\r\n return el.offsetTop - this.offset;\r\n };\r\n ;\r\n return SmoothScroll;\r\n}());\r\nexports.SmoothScroll = SmoothScroll;\r\n\n\n/***/ }),\n\n/***/ \"OdJD\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/5.svg\";\n\n/***/ }),\n\n/***/ \"OjHm\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-folder-breadcrumb_42fb50260c84c73669d30b00c837724e.css\";\n\n/***/ }),\n\n/***/ \"Om8q\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar MoreTextCtrl = (function () {\r\n MoreTextCtrl.$inject = [\"$filter\"];\r\n function MoreTextCtrl($filter) {\r\n this.$filter = $filter;\r\n }\r\n MoreTextCtrl.prototype.$onChanges = function () {\r\n if (!this.text)\r\n return;\r\n this.filterLinky = this.$filter('linky');\r\n this.safeText = this.filterBlank(this.text);\r\n if (this.size >= this.text.length) {\r\n this.showAll = true;\r\n }\r\n else {\r\n var smallText = this.text.substr(0, this.size).trim() + '...';\r\n this.smallText = this.filterBlank(smallText);\r\n }\r\n };\r\n MoreTextCtrl.prototype.filterBlank = function (text) {\r\n return this.filterLinky(text, '_blank');\r\n };\r\n MoreTextCtrl.prototype.toggleShow = function () {\r\n this.showAll = !this.showAll;\r\n };\r\n return MoreTextCtrl;\r\n}());\r\nmodule_1.default.directive('moreText', function () { return ({\r\n restrict: 'E',\r\n scope: {},\r\n controller: MoreTextCtrl,\r\n controllerAs: 'moreTextCtrl',\r\n bindToController: {\r\n size: '@',\r\n text: '<'\r\n },\r\n templateUrl: __webpack_require__(\"d1XY\")\r\n}); });\r\n\n\n/***/ }),\n\n/***/ \"OmPd\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-text-aside_e13044f9f9b71ad1dc331941fe80b9b2.css\";\n\n/***/ }),\n\n/***/ \"Oquy\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/week6_6b254876f39cd16354fe0f0e83084ab3.html\";\n\n/***/ }),\n\n/***/ \"Otff\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/contest_50d6d3cb44f5f0d47b4806531b98dcb7.css\";\n\n/***/ }),\n\n/***/ \"OzWi\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/16.png\";\n\n/***/ }),\n\n/***/ \"P28g\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction intercom() {\r\n var a = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n a[_i] = arguments[_i];\r\n }\r\n window.Intercom && window.Intercom.apply(window, a);\r\n}\r\nfunction boot(userData) {\r\n if (userData === void 0) { userData = {}; }\r\n var id = true ? '93c0bf3bdc0786f3e0f9eae1ce240e8bc01833da' : 'nmrm9rdp';\r\n intercom('boot', {\r\n app_id: id,\r\n user_data: userData\r\n });\r\n}\r\nfunction setUser(user) {\r\n var username = user.username, email = user.email, userId = user.userId, avatar = user.avatar;\r\n if (username && email && userId && avatar) {\r\n boot({\r\n email: email,\r\n avatar: avatar,\r\n user_id: userId,\r\n name: username\r\n });\r\n }\r\n}\r\nfunction setAnonymous() {\r\n intercom('shutdown');\r\n boot();\r\n}\r\nfunction show() {\r\n intercom('show');\r\n}\r\nfunction hide() {\r\n intercom('hide');\r\n}\r\nfunction unreadCountChange(cb) {\r\n intercom('onUnreadCountChange', cb);\r\n}\r\nexports.default = {\r\n boot: boot,\r\n setUser: setUser,\r\n setAnonymous: setAnonymous,\r\n show: show,\r\n hide: hide,\r\n unreadCountChange: unreadCountChange\r\n};\r\n\n\n/***/ }),\n\n/***/ \"P9JW\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar AnimatronSvc_1 = __webpack_require__(\"6w4i\");\r\nexports.PROJECT_ADD = 'anm:project:add';\r\nvar AnimatronProjects = (function (_super) {\r\n tslib_1.__extends(AnimatronProjects, _super);\r\n function AnimatronProjects() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.computedWidth = AnimatronProjects.computedWidth;\r\n _this.uniqueId = 'id';\r\n _this.query = Object.assign({\r\n sortOrder: 'desc',\r\n sortBy: 'modification_time',\r\n withTags: true,\r\n withCollaborators: true,\r\n withBackendUrl: true,\r\n withDuplicatesCount: true,\r\n withComments: true,\r\n withLikes: true\r\n }, _this.query);\r\n return _this;\r\n }\r\n AnimatronProjects.prototype.modifyQuery = function (query) {\r\n query.previewWidth = options.handHeld ? 720 : 320;\r\n if (options.retina)\r\n query.previewWidth *= 2;\r\n _super.prototype.modifyQuery.call(this, query);\r\n };\r\n AnimatronProjects.prototype.makeHttpSvc = function (secure, api) {\r\n if (api === void 0) { api = ''; }\r\n var svc = this.HttpSvc('project/list');\r\n if (!Strings_1.Strings.isBlank(api)) {\r\n svc.setApiUrl(api);\r\n }\r\n this.foreignAccess = !api && options.user.rolez.ForeignProjectPermissions && options.user.rolez.ForeignProjectPermissions.list;\r\n return svc[secure || this.foreignAccess ? 'secureGet' : 'get'];\r\n };\r\n AnimatronProjects.prototype.onCreate = function () {\r\n var _this = this;\r\n this.$rootScope.$on('project:remove', function (e, pid) { return _this.removeProject(pid); });\r\n this.$rootScope.$on(exports.PROJECT_ADD, function (e, _a) {\r\n var project = _a.project;\r\n return _this.addProject(project);\r\n });\r\n };\r\n AnimatronProjects.prototype.addProject = function (project) {\r\n if (this.results.some(function (p) { return p.id === project.id; }))\r\n return;\r\n this.pages[1] && this.pages[1].push(project);\r\n this.reorderPages();\r\n this.results.push(project);\r\n this.count++;\r\n this.decorate(this.results);\r\n };\r\n AnimatronProjects.prototype.removeProject = function (pid) {\r\n var currentCount = this.results.length;\r\n this.pages = this.pages.map(function (page) { return page.filter(function (p) { return p.id !== pid; }); });\r\n this.results = this.results.filter(function (p) { return p.id !== pid; });\r\n this.count = this.count - (currentCount - this.results.length);\r\n };\r\n AnimatronProjects.prototype.decorate = function (results) {\r\n var _this = this;\r\n results.forEach(function (project) {\r\n project.computedHeight = _this.AnimatronPreviews.computeHeight(project.height, project.width, _this.computedWidth);\r\n _this.ProjectAugmenter(project);\r\n });\r\n };\r\n return AnimatronProjects;\r\n}(AnimatronSvc_1.AnimatronSvc));\r\nAnimatronProjects.computedWidth = 290;\r\nexports.AnimatronProjects = AnimatronProjects;\r\nmodule_1.default.factory('AnimatronProjects', [\"$rootScope\", \"$log\", \"$timeout\", \"$q\", \"$stateParams\", \"HttpSvc\", \"AnimatronPreviews\", \"ProjectAugmenter\", function ($rootScope, $log, $timeout, $q, $stateParams, HttpSvc, AnimatronPreviews, ProjectAugmenter) {\r\n _.extend(AnimatronProjects.prototype, {\r\n $rootScope: $rootScope, $log: $log, $timeout: $timeout, $q: $q, $stateParams: $stateParams, HttpSvc: HttpSvc, AnimatronPreviews: AnimatronPreviews, ProjectAugmenter: ProjectAugmenter\r\n });\r\n return AnimatronProjects;\r\n}]);\r\n\n\n/***/ }),\n\n/***/ \"PAlv\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/7.svg\";\n\n/***/ }),\n\n/***/ \"PXh8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar ComparisonCtrl = (function () {\r\n ComparisonCtrl.$inject = [\"$rootScope\", \"$state\", \"$stateParams\"];\r\n function ComparisonCtrl($rootScope, $state, $stateParams) {\r\n var _this = this;\r\n this.$rootScope = $rootScope;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.products = ['GoAnimate', 'PowToon', 'Google Web Designer'];\r\n this.tabs = this.products.map(function (p) { return p.toLowerCase(); });\r\n this.stateTab = this.$stateParams.product.replace('-vs-animatron', '');\r\n this.defaultTab = _.find(this.tabs, function (p) { return p.replace(/\\s+/g, '') === _this.stateTab; }) || this.tabs[0];\r\n }\r\n ComparisonCtrl.prototype.change = function (tb) {\r\n var tab = tb.replace(/\\s+/g, '');\r\n var product = tab + \"-vs-animatron\";\r\n this.$state.transitionTo(\"studio-\" + tab + \"-landing-comparison\", { product: tab }, { notify: false });\r\n this.$rootScope.setTitle(product + '.title');\r\n };\r\n return ComparisonCtrl;\r\n}());\r\nmodule_1.default.component('landingComparisonPage', {\r\n controller: ComparisonCtrl,\r\n controllerAs: 'ComparisonCtrl',\r\n templateUrl: __webpack_require__(\"Zx9N\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"PZhr\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/activate_08d23fecc14fe9acd6d4813e99c0efef.css\";\n\n/***/ }),\n\n/***/ \"PpkO\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/contest-days_8b63cbf35d22a0a184cf8de4509b6ee3.css\";\n\n/***/ }),\n\n/***/ \"Pv2I\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar AdSvc_1 = __webpack_require__(\"X7JN\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar LightLandingPages_1 = __webpack_require__(\"RDpK\");\r\nvar MediumLandingPages_1 = __webpack_require__(\"28+3\");\r\nvar TemplateLandingPages_1 = __webpack_require__(\"9/76\");\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\"); //TODO use `import * as modules from 'lazy_modules'`;\r\nvar RouteUtils_1 = __webpack_require__(\"+sRS\");\r\n//TODO remove duplicate check anonymous\r\nvar Routes = (function () {\r\n Routes.$inject = [\"$stateProvider\", \"$urlRouterProvider\", \"$locationProvider\", \"$urlMatcherFactoryProvider\"];\r\n function Routes($stateProvider, $urlRouterProvider, $locationProvider, $urlMatcherFactoryProvider) {\r\n $urlMatcherFactoryProvider.caseInsensitive(true);\r\n $urlRouterProvider.rule(function ($injector, $location) {\r\n var path = $location.url();\r\n // check to see if the path has a trailing slash\r\n if ('/' === path[path.length - 1]) {\r\n return path.replace(/\\/$/, '');\r\n }\r\n return false;\r\n });\r\n RouteUtils_1.extendState($stateProvider);\r\n var subscriptionModalsParams = ':modal?period&plan&redeem&promo&special&coupon';\r\n var tutorialResolve = _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronTutorial), RouteUtils_1.setWrapper('wrapper-tutorial wrapper-long-head'));\r\n var projectsModules = RouteUtils_1.loadModule(lazy_modules_1.animatronProjects);\r\n var getLandingParams = function () { return ({\r\n url: '/studio?signup&loginRedirect',\r\n template: \"\",\r\n onEnter /*@ngInject*/: [\"$stateParams\", \"AuthenticationSvc\", function ($stateParams, AuthenticationSvc) {\r\n var loginRedirect = $stateParams.loginRedirect;\r\n if (loginRedirect) {\r\n AuthenticationSvc.toggleLoginModal(decodeURIComponent(loginRedirect));\r\n }\r\n }],\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronLandingNewBottom), RouteUtils_1.setWrapper('wrapper-landing-common wrapper-landing-new'), RouteUtils_1.setTitle())\r\n }); };\r\n var SMMWParams = ['utm_source', 'utm_medium', 'utm_campaign'].join('&');\r\n var SMMWPages = ['Image', 'Video'];\r\n $locationProvider.html5Mode(true).hashPrefix('!');\r\n $urlRouterProvider.otherwise(function ($injector) {\r\n var pth = location.pathname.toLowerCase();\r\n if (pth.includes(Routes.ENCODED_QUESTIONMARK)) {\r\n var regexp = new RegExp(Routes.ENCODED_QUESTIONMARK, 'gi');\r\n var _a = location.pathname.split(regexp), path = _a[0], query = _a[1];\r\n location.href = path + '?' + query;\r\n }\r\n else {\r\n $injector.get('$state').go('404');\r\n }\r\n });\r\n $urlRouterProvider.when('', '/');\r\n $urlRouterProvider.when('/studio/landing', '/studio');\r\n $urlRouterProvider.when('/wave/landing', '/wave');\r\n $urlRouterProvider.when('/cmw17', '/wave');\r\n $urlRouterProvider.when('/wave/?', [\"$location\", function ($location) {\r\n var url = $location.url().replace('/?', '?');\r\n $location.path(url).replace();\r\n }]);\r\n (function setupStates() {\r\n $stateProvider.state('calendar', {\r\n url: \"/wave/calendar/{eventPath:any}\",\r\n params: {\r\n eventPath: {\r\n value: null,\r\n raw: true,\r\n squash: true\r\n }\r\n },\r\n onEnter: [\"$state\", \"$window\", function ($state, $window) {\r\n // replace previous url\r\n $state.go('.', {}, {\r\n location: 'replace',\r\n reload: true,\r\n notify: false\r\n });\r\n $window.open(\"https://www.animatron\" + ( true ? '' : '-test') + \".com/wave/calendar\", '_self');\r\n }]\r\n })\r\n .state('blog', {\r\n url: '/blog/{path:any}',\r\n params: {\r\n path: {\r\n value: null,\r\n raw: true,\r\n squash: true\r\n }\r\n },\r\n onEnter: [\"$state\", \"$window\", \"$stateParams\", function ($state, $window, $stateParams) {\r\n // replace previous url\r\n $state.go('.', {}, {\r\n location: 'replace',\r\n reload: true,\r\n notify: false\r\n });\r\n var path = $stateParams.path;\r\n var article = path ? path + \"/\" : '';\r\n $window.open(\"https://www.animatron.com/blog/\" + article, '_self');\r\n }]\r\n })\r\n .state('mari-smith-tutorials', {\r\n url: '/wave/videos-for-social-media-mari-smith',\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.setTitle('wv.mari.page.title'), RouteUtils_1.loadModule(lazy_modules_1.mariSmithTutorials()), RouteUtils_1.setWrapper('wrapper-landing-WAVE wrapper-landing-WAVE-webinar'), RouteUtils_1.trackVisit('Landing', { Name: 'Social Video Workshop by Mari Smith' }))\r\n })\r\n .state('video-marketing-strategy-salma-jafri', {\r\n url: '/wave/video-marketing-strategy-salma-jafri',\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.setTitle('wv.salma.title'), RouteUtils_1.loadModule(lazy_modules_1.salmaWebinars()), RouteUtils_1.setWrapper('wrapper-landing-WAVE wrapper-landing-WAVE-webinar'), RouteUtils_1.trackVisit('Landing', { Name: 'Video Strategy Workshop with Salma Jafri' }))\r\n })\r\n .state('wave2', {\r\n url: \"/wave-2?\" + SMMWParams,\r\n noindex: true,\r\n onEnter: [\"$location\", \"$stateParams\", function ($location, $stateParams) {\r\n var utm_source = $stateParams.utm_source, utm_medium = $stateParams.utm_medium, utm_campaign = $stateParams.utm_campaign;\r\n var isSMMW = utm_source === 'SMExaminer'\r\n && utm_medium === 'IndustryReport'\r\n && utm_campaign === 'SMEad';\r\n var SMMWPage = SMMWPages[_.random(1)];\r\n if (isSMMW) {\r\n var url = \"/wave/SMExaminerReport\" + SMMWPage;\r\n $location.path(url).replace();\r\n }\r\n }],\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.waveMain), RouteUtils_1.setWrapper('wrapper-landing-WAVE'), RouteUtils_1.setTitle('wv.landing.title'))\r\n })\r\n .state('wave-user', {\r\n url: '/wave/users/:username',\r\n params: {\r\n folderId: {\r\n value: null\r\n }\r\n },\r\n noindex: true,\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.waveUserPage), RouteUtils_1.setWrapper('wave-user-page-wrapper wrapper-wave-projects'), RouteUtils_1.setTitle(), RouteUtils_1.redirectResolve(function () { return !options.user.rolez.Admin; }, '/wave'))\r\n })\r\n .state('studio-user', {\r\n url: '/studio/users/:username?startFollowing&customize&bgColor&page&removed',\r\n params: { user: null },\r\n noindex: true,\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(options.enableContests ? lazy_modules_1.animatronContest : lazy_modules_1.animatronUserPage), RouteUtils_1.setWrapper('userpage-wrapper'), RouteUtils_1.setTitle())\r\n })\r\n .state('studio-following', {\r\n url: '/studio/users/:username/following',\r\n params: { user: null },\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronUserPage), RouteUtils_1.setWrapper('follow-wrapper'), RouteUtils_1.setTitle())\r\n })\r\n .state('studio-followers', {\r\n url: '/studio/users/:username/followers',\r\n params: { user: null },\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronUserPage), RouteUtils_1.setWrapper('follow-wrapper'), RouteUtils_1.setTitle())\r\n })\r\n .state('home', {\r\n url: '/home?login&isNew',\r\n controller: [\"$location\", \"$filter\", function ($location, $filter) {\r\n var url = options.user.anonymous ? '/' : \"/users/\" + $filter('encodeUsername')(options.user.username);\r\n $location.path(url);\r\n }]\r\n // }).state('analytics', {\r\n // url: '/analytics?limit',\r\n // noindex: true,\r\n // controller: ($scope, $http, $stateParams, AnimatronProjects, HttpSvc, ProjectAugmenter, AnimatronPreviews) => {\r\n // const url = (options.isLocal ? 'http://localhost:8081' :\r\n // ('https://' + (options.isProduction ? 'analytics.animatron.com' : 'analytics.animatron-test.com'))) +\r\n // '/analytics/projects';\r\n // $scope.animatron = new AnimatronProjects({});\r\n // $scope.animatron.nextPage = angular.noop;\r\n // $http.get(url).success((a: {count: number, _id: string}[]) =>\r\n // _.take(a, +$stateParams.limit)\r\n // .forEach(p => HttpSvc('project', p._id).get().success((project: anm.Project) => {\r\n // project.views = p.count;\r\n // ProjectAugmenter(project);\r\n // project.computedHeight = AnimatronPreviews.computeHeight(project.height, project.width, $scope.animatron.computedWidth);\r\n // $scope.animatron.results.push(project);\r\n // })\r\n // ));\r\n // },\r\n // templateUrl: require('projects.html'),\r\n // resolve: _.extend(setWrapper(''), projectsModules)\r\n })\r\n .state('studio-explore', {\r\n url: '/studio/explore?confirmationSent&login&isNew&page',\r\n template: '',\r\n reloadOnSearch: false,\r\n resolve: _.extend(RouteUtils_1.setWrapper('wrapper-explore'), RouteUtils_1.setTitle('explore.title'), projectsModules, {})\r\n })\r\n .state('studio-search', {\r\n url: '/studio/search?q&username&solr&myProjects&instant',\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.setWrapper('wrapper-search'), RouteUtils_1.setTitle(), RouteUtils_1.loadModule(lazy_modules_1.animatronSearchPage))\r\n })\r\n .state('tag', {\r\n url: '/tags/:tag?super&user&page',\r\n noindex: true,\r\n controller: [\"$scope\", \"$rootScope\", \"$stateParams\", \"AnimatronProjects\", function ($scope, $rootScope, $stateParams, AnimatronProjects) {\r\n var tag_type = _.findKey(_.omit($stateParams, 'tag'), function (param) { return param === 'true'; });\r\n $rootScope.setTitle('tags.title', $stateParams.tag);\r\n $scope.AdSvc = new AdSvc_1.AdSvc(false, $rootScope);\r\n var adify = $scope.AdSvc.adify.bind($scope.AdSvc);\r\n $scope.animatron = new AnimatronProjects({ tag: $stateParams.tag, tag_type: tag_type }, false, '', adify);\r\n }],\r\n templateUrl: __webpack_require__(\"b6Iv\"),\r\n resolve: _.extend(RouteUtils_1.setWrapper(''), RouteUtils_1.setTitle(), projectsModules)\r\n })\r\n .state('studio-tutorial', {\r\n url: '/studio/tutorial/:video',\r\n reloadOnSearch: false,\r\n params: {\r\n video: { value: null, squash: true }\r\n },\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.setTitle('tutorial.title'), tutorialResolve)\r\n })\r\n .state('wave-workshops', {\r\n url: '/wave/workshops',\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.setTitle('tutorial.title'), RouteUtils_1.setWrapper('wrapper-wave-tutorials'), RouteUtils_1.loadModule(lazy_modules_1.waveTutorialPage))\r\n })\r\n .state('wave-tutorial', {\r\n url: '/wave/tutorial/:video',\r\n reloadOnSearch: false,\r\n params: {\r\n video: { value: null, squash: true }\r\n },\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.setTitle('tutorial.title'), RouteUtils_1.setWrapper('wrapper-wave-tutorials'), RouteUtils_1.loadModule(lazy_modules_1.waveTutorialPage))\r\n })\r\n .state('studio-education', {\r\n url: '/studio/education',\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronEdu), RouteUtils_1.setWrapper('wrapper-long-head wrapper-edu'), RouteUtils_1.setTitle('edu.title'))\r\n })\r\n .state('studio-education.week', {\r\n url: '/:week',\r\n controller: [\"$scope\", \"$stateParams\", \"$rootScope\", function ($scope, $stateParams, $rootScope) {\r\n $scope.week.number = parseInt($stateParams.week.substring(4), 10);\r\n $rootScope.setTitle(\"edu.week\" + $scope.week.number + \".title\");\r\n }],\r\n templateUrl: function ($stateParams) { return __webpack_require__(\"1S0N\")(\"./\" + $stateParams.week + \".html\"); }\r\n })\r\n .state('about', {\r\n url: '/about',\r\n noindex: true,\r\n resolve: _.extend(RouteUtils_1.redirectResolve(function () { return true; }, '/company'))\r\n })\r\n .state('company', {\r\n url: '/company/{tab}',\r\n params: {\r\n tab: {\r\n value: null,\r\n squash: true\r\n }\r\n },\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronCompany), RouteUtils_1.setWrapper('wrapper-press'), RouteUtils_1.setTitle('press.title'))\r\n })\r\n .state('editor-redirect', {\r\n url: '/wave/editor-redirect',\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronEditorRedirect), RouteUtils_1.setWrapper('wrapper-landing-WAVE editor-redirect-page'), RouteUtils_1.setTitle('wv.landing.title'))\r\n })\r\n .state('wave_signup', {\r\n url: '/wave-signup',\r\n onEnter: [\"$location\", function ($location) { $location.path('/wave').replace(); }]\r\n })\r\n .state('contractors', {\r\n url: '/contractors',\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronContractors), RouteUtils_1.setWrapper('wrapper-contractors'), RouteUtils_1.setTitle('contractors.title'))\r\n })\r\n .state('root', {\r\n url: '/?signup&login&redirect_to',\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.mainLanding()), RouteUtils_1.setWrapper('wrapper-landing-common wrapper-simple-page'), RouteUtils_1.setTitle(''), {\r\n checkRedirect: /*@ngInject*/ [\"$location\", function ($location) {\r\n return RouteUtils_1.redirect(!options.user.anonymous && $location.search().login, function () {\r\n return $location.path('/login').replace();\r\n });\r\n }],\r\n showModal: /*@ngInject*/ [\"$location\", \"AuthenticationSvc\", \"LocalStorageSvc\", function ($location, AuthenticationSvc, LocalStorageSvc) {\r\n var redirect = $location.search().return_to || $location.search().login;\r\n if (redirect) {\r\n AuthenticationSvc.loginModalShown = true;\r\n LocalStorageSvc.set('_animatron_redirect_onlogin', document.referrer);\r\n }\r\n }]\r\n })\r\n })\r\n .state('studio', getLandingParams())\r\n .state('landingWithAnimation', _.extend(getLandingParams(), {\r\n noindex: true,\r\n url: '/landing/:animation?signup'\r\n }))\r\n .state('studio-landing-banner', {\r\n url: '/studio/html5-banner-maker',\r\n templateUrl: __webpack_require__(\"IU0M\"),\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronBannerBottom), RouteUtils_1.setWrapper('wrapper-landing-common wrapper-landing-banner'), RouteUtils_1.setTitle('banner.title'))\r\n })\r\n .state('studio-special-annual-upgrade', {\r\n url: '/studio/special-annual-upgrade',\r\n template: \"\",\r\n resolve: _.extend(RouteUtils_1.redirectForLogin(), RouteUtils_1.loadModule(lazy_modules_1.animatronSpecialUpgrade), RouteUtils_1.setWrapper('wrapper-special-annual-upgrade'), RouteUtils_1.setTitle('special.annual.upgrade.title'))\r\n })\r\n .state('studio-landing-explainer', {\r\n url: '/studio/explainer-video-maker',\r\n templateUrl: __webpack_require__(\"v09R\"),\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronExplainerBottom), RouteUtils_1.setWrapper('wrapper-landing-common wrapper-landing-banner wrapper-landing-explainer'), RouteUtils_1.setTitle('explainer.title'))\r\n })\r\n .state('studio-landing-political', {\r\n url: '/studio/political-cartoon-maker',\r\n controllerAs: '$ctrl',\r\n controller: [\"$rootScope\", \"$scope\", \"$sce\", function ($rootScope, $scope, $sce) {\r\n var baseUrl = \"https://videos.animatron.com/political_landing/political_cartoon\" + (options.retina ? '_2x' : '');\r\n this.videoUrl = $sce.trustAsResourceUrl(baseUrl + \".mp4\");\r\n this.imgUrl = $sce.trustAsResourceUrl(baseUrl + \".jpg\");\r\n $rootScope.editorParams = '&guide=political';\r\n $scope.$on('$destroy', function () { return $rootScope.editorParams = ''; });\r\n }],\r\n templateUrl: __webpack_require__(\"kvRk\"),\r\n resolve: _.extend(RouteUtils_1.setWrapper('wrapper-landing-common wrapper-landing-light wrapper-landing-political'), RouteUtils_1.setTitle('political.title'))\r\n })\r\n .state('privacy', {\r\n url: '/privacy',\r\n templateUrl: __webpack_require__(\"7zPr\"),\r\n resolve: _.extend({ scrollTop: [function () { return window.scrollTo(0, 0); }] }, RouteUtils_1.loadModule(lazy_modules_1.animatronPrivacy), RouteUtils_1.setWrapper('wrapper-privacy'), RouteUtils_1.setTitle('privacy.title'))\r\n })\r\n .state('oauthCallback', {\r\n url: '/callback/:provider/:product?code',\r\n noindex: true,\r\n resolve: RouteUtils_1.setTitle(),\r\n onEnter: [\"$stateParams\", \"$location\", \"OAuthCallbackSvc\", function ($stateParams, $location, OAuthCallbackSvc) {\r\n return OAuthCallbackSvc.onCallback($stateParams, $location.hash());\r\n }]\r\n })\r\n .state('404', {\r\n url: '/404',\r\n noindex: true,\r\n httpStatus: '404',\r\n templateUrl: __webpack_require__(\"mWZi\"),\r\n resolve: _.extend(RouteUtils_1.setWrapper('wrapper-not-found'), RouteUtils_1.setTitle('notfound.title'))\r\n })\r\n .state('logout', {\r\n noindex: true,\r\n url: '/logout',\r\n template: '
',\r\n onEnter: [\"AuthenticationSvc\", function (AuthenticationSvc) {\r\n AuthenticationSvc.logoutAndGoRoot();\r\n }],\r\n resolve: RouteUtils_1.setWrapper('.wrapper-ANY')\r\n })\r\n .state('terms-of-service', {\r\n url: '/terms-of-service',\r\n templateUrl: __webpack_require__(\"lGv7\"),\r\n resolve: _.extend({ scrollTop: [function () { return window.scrollTo(0, 0); }] }, RouteUtils_1.loadModule(lazy_modules_1.animatronTermsServices), RouteUtils_1.setWrapper('wrapper-terms-of-service'), RouteUtils_1.setTitle('terms.title'))\r\n })\r\n .state('project-analytics', {\r\n url: '/project/{projectId}/analytics?rangeStart&rangeEnd',\r\n noindex: true,\r\n params: { project: null },\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronProjectAnalytics), RouteUtils_1.setWrapper('wrapper-analytics'), RouteUtils_1.setTitle('analytics.title'))\r\n })\r\n .state('pages', {\r\n url: '/pages',\r\n noindex: true,\r\n controller: [\"$state\", function ($state) {\r\n return document.querySelector('.main').innerHTML =\r\n $state.get().map(function (s) { return \"\" + s.name + \"
\"; }).join('');\r\n }]\r\n })\r\n .state('project-likes', {\r\n url: '/project/{projectId}/likes',\r\n noindex: true,\r\n params: { project: null },\r\n template: \"\\n \\n {{::like.user.displayName}}\\n \",\r\n controller: [\"$stateParams\", \"HttpSvc\", function ($stateParams, HttpSvc) {\r\n var _this = this;\r\n HttpSvc('project', $stateParams.projectId)[options.user.anonymous ? 'get' : 'secureGet']()\r\n .then(function (res) { return _this.project = res.data; });\r\n }],\r\n controllerAs: '$ctrl',\r\n resolve: _.extend(RouteUtils_1.setWrapper(), RouteUtils_1.setTitle())\r\n })\r\n .state('contest-page', {\r\n url: '/contest/:contestId',\r\n template: \"\",\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronContest), RouteUtils_1.setWrapper('contest-wrapper'), RouteUtils_1.setTitle())\r\n })\r\n .state('contest-landing', {\r\n url: '/wave/makewaves',\r\n template: \"\",\r\n noindex: true,\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronContestLanding), RouteUtils_1.setWrapper('contest-landing-wrapper wrapper-hide-header wrapper-footer-small'), RouteUtils_1.setTitle('wv.contest-landing.pagetitle'))\r\n })\r\n .state('contest-days', {\r\n url: '/wave/makewaves/:day?iv',\r\n template: \"\",\r\n noindex: true,\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronContestDays), RouteUtils_1.setWrapper('contest-landing-wrapper contest-days-wrapper wrapper-hide-header wrapper-footer-small'), RouteUtils_1.setTitle('wv.contest-landing.pagetitle'))\r\n })\r\n .state('wave-thanksgiving', {\r\n url: '/wave/thanksgiving',\r\n noindex: true,\r\n resolve: _.extend(RouteUtils_1.redirectResolve(function () { return true; }, '/wave'))\r\n })\r\n .state('wave-my-videos', {\r\n url: '/wave/my-videos',\r\n noindex: true,\r\n resolve: _.extend(RouteUtils_1.redirectResolve(function () { return true; }, '/wave/my-projects'))\r\n })\r\n .state('sharing', {\r\n url: '/share/:tag',\r\n noindex: true,\r\n controllerAs: '$ctrl',\r\n controller: [\"$stateParams\", \"AnimatronProjects\", function ($stateParams, AnimatronProjects) {\r\n this.animatron = new AnimatronProjects({\r\n noCount: true,\r\n limit: 5000,\r\n tag: $stateParams.tag,\r\n tag_type: 'SUPER',\r\n previewWidth: 320\r\n }, false, 'https://api.animatron.com');\r\n this.animatron.nextPage();\r\n }],\r\n templateUrl: __webpack_require__(\"8ReI\"),\r\n resolve: _.extend(RouteUtils_1.loadModule([lazy_modules_1.animatronProjects, lazy_modules_1.animatronPublish]), RouteUtils_1.setWrapper(''), RouteUtils_1.setTitle(''), RouteUtils_1.redirectResolve(function () { return !options.user.rolez.Admin; }, '/landing'))\r\n })\r\n .state('wave-pricing', {\r\n url: \"/wave/pricing/\" + subscriptionModalsParams,\r\n params: {\r\n modal: {\r\n value: null,\r\n squash: true\r\n }\r\n },\r\n template: '',\r\n controller: ['$scope', function ($scope) {\r\n $scope.alwaysShowFaq = true;\r\n window.scrollTo(0, 0);\r\n }],\r\n resolve: _.extend(RouteUtils_1.setWrapper('wrapper-pricing wrapper-pricing-WAVE'), RouteUtils_1.loadModule(lazy_modules_1.wavePricing), RouteUtils_1.trackVisit('Pricing'), RouteUtils_1.setTitle('pricing.title'))\r\n })\r\n .state('studio-pricing', {\r\n url: \"/studio/pricing/\" + subscriptionModalsParams,\r\n params: {\r\n modal: {\r\n value: null,\r\n squash: true\r\n }\r\n },\r\n templateUrl: __webpack_require__(\"v+R/\"),\r\n controller: ['$scope', function ($scope) {\r\n $scope.alwaysShowFaq = true;\r\n window.scrollTo(0, 0);\r\n }],\r\n resolve: _.extend(RouteUtils_1.trackVisit('Pricing'), RouteUtils_1.loadModule(lazy_modules_1.animatronPricing), RouteUtils_1.setWrapper('wrapper-pricing'), RouteUtils_1.setTitle('pricing.title'))\r\n })\r\n .state('my-projects', {\r\n url: '/wave/my-projects/{folderPath:any}?t&e',\r\n params: {\r\n folderPath: {\r\n value: null,\r\n raw: true,\r\n squash: true\r\n }\r\n },\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.waveMyProjects), RouteUtils_1.setWrapper('wrapper-wave-projects'), RouteUtils_1.redirectForLogin(), RouteUtils_1.setTitle('wv.my-projects.title'))\r\n });\r\n SMMWPages.forEach(function (page) {\r\n var state = page.toLowerCase();\r\n $stateProvider.state(\"wave-landing-smmw-\" + state, {\r\n url: \"/wave/SMExaminerReport\" + page + \"?\" + SMMWParams,\r\n template: \"\",\r\n resolve: _.extend(RouteUtils_1.setTitle(), RouteUtils_1.loadModule(lazy_modules_1.waveLandingSMMW), RouteUtils_1.setWrapper('wrapper-landing-WAVE-SMMW'), RouteUtils_1.trackVisit('Landing', { Name: \"SMExaminerReport\" + page }))\r\n });\r\n });\r\n ['video-templates', 'my-templates'].forEach(function (state) {\r\n $stateProvider.state(state, {\r\n url: \"/wave/\" + state + \"/{folderPath:any}\",\r\n params: {\r\n folderPath: {\r\n value: null,\r\n raw: true,\r\n squash: true\r\n }\r\n },\r\n onEnter: [\"$state\", \"$window\", function ($state, $window) {\r\n // replace previous url\r\n $state.go('.', {}, {\r\n location: 'replace',\r\n reload: true,\r\n notify: false\r\n });\r\n $window.open(\"https://www.animatron\" + ( true ? '' : '-test') + \".com/wave/video-templates\", '_self');\r\n }]\r\n });\r\n });\r\n ['affiliate-program', 'affiliate'].forEach(function (state) {\r\n $stateProvider.state(state, {\r\n url: \"/\" + state + \"?\" + SMMWParams,\r\n onEnter: function () { location.href = 'https://animatron.tapfiliate.com/publisher/signup/wave-affiliate-program'; }\r\n });\r\n });\r\n ['powtoon', 'goanimate', 'googlewebdesigner'].forEach(function (product) {\r\n var state = \"studio-\" + product + \"-landing-comparison\";\r\n var url = \"/studio/\" + product + \"-vs-animatron\";\r\n $stateProvider.state(state, {\r\n url: url,\r\n params: { product: product },\r\n template: \"\",\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronComparisonBottom), RouteUtils_1.setWrapper('wrapper-landing-comparison wrapper-landing-common'), RouteUtils_1.setTitle())\r\n });\r\n });\r\n options.animatronProducts.forEach(function (product) {\r\n var state = product.toLowerCase();\r\n ['profile', 'subscription', 'password', 'notification'].forEach(function (s) {\r\n var isSubscription = s === 'subscription';\r\n var subscriptionState = {\r\n url: \"/subscription/\" + subscriptionModalsParams,\r\n params: {\r\n modal: {\r\n value: null,\r\n squash: true\r\n }\r\n },\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronSubscriptionPage()), {\r\n cardDetails: /*@ngInject*/ [\"$ocLazyLoad\", \"$injector\", \"$q\", function ($ocLazyLoad, $injector, $q) {\r\n return lazy_modules_1.animatronSubscriptionSvc()\r\n .then(function (m) { return $ocLazyLoad.load(m); })\r\n .then(function () {\r\n var subscriptionSvc = $injector.get('subscriptionSvc');\r\n var readyLoadedData = subscriptionSvc.cardDetailsCashed\r\n || subscriptionSvc.cardDetailsErrorMessage;\r\n return readyLoadedData\r\n ? $q.resolve(readyLoadedData)\r\n : subscriptionSvc.getCardDetails()\r\n .catch(function () { return $q.resolve(true); }); // needed for resolve it in any cases\r\n });\r\n }]\r\n })\r\n };\r\n var defaultState = {\r\n url: \"/\" + s,\r\n template: \"<\" + s + \">\"\r\n };\r\n $stateProvider.state(state + \"-settings.\" + s, _.extend({ noindex: true }, isSubscription ? subscriptionState : defaultState));\r\n });\r\n $stateProvider\r\n .state(state + \"-activate-email\", {\r\n noindex: true,\r\n url: \"/\" + state + \"/activate-email/:hash\",\r\n onEnter: [\"$rootScope\", \"$state\", \"$stateParams\", \"HttpSvc\", \"AuthenticationSvc\", function ($rootScope, $state, $stateParams, HttpSvc, AuthenticationSvc) {\r\n HttpSvc('profile/confirm-email')\r\n .securePost($stateParams.hash)\r\n .then(function (r) { return r.data; })\r\n .then(function (res) {\r\n AuthenticationSvc\r\n .updateUser()\r\n .then(function () { return $state.go(state + \"-settings.profile\"); });\r\n if (underscore_extensions_1.Utils.isApiError(res)) {\r\n _.notification.showError(res.errorMessage);\r\n }\r\n else {\r\n _.notification.showSuccess($rootScope.t('profile.updated'));\r\n }\r\n });\r\n }],\r\n resolve: _.extend(RouteUtils_1.redirectForLogin(), RouteUtils_1.setWrapper(\"wrapper-\" + product))\r\n })\r\n .state(state + \"-oauth-confirm\", {\r\n noindex: true,\r\n url: \"/\" + state + \"/signup/oauth/confirm/:hash\",\r\n onEnter: [\"$rootScope\", \"$state\", \"$stateParams\", \"HttpSvc\", \"AuthenticationSvc\", function ($rootScope, $state, $stateParams, HttpSvc, AuthenticationSvc) {\r\n HttpSvc('signup/oauth/confirm', $stateParams.hash)\r\n .post()\r\n .then(function (r) { return r.data; })\r\n .then(function (res) {\r\n AuthenticationSvc\r\n .updateUser()\r\n .then(function () { return $state.go(state + \"-settings.profile\"); });\r\n if (underscore_extensions_1.Utils.isApiError(res)) {\r\n _.notification.showError(res.errorMessage);\r\n }\r\n else {\r\n _.notification.showSuccess($rootScope.t('profile.updated'));\r\n }\r\n });\r\n }],\r\n resolve: _.extend(RouteUtils_1.redirectForLogin(), RouteUtils_1.setWrapper(\"wrapper-\" + product))\r\n })\r\n .state(state + \"-login\", {\r\n url: \"/\" + state + \"/login/{redirectUrl:any}\",\r\n params: {\r\n redirectUrl: {\r\n value: null,\r\n raw: true,\r\n squash: true\r\n }\r\n },\r\n noindex: true,\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.setWrapper(\"wrapper-\" + product + \" wrapper-long-head-login\"), RouteUtils_1.setTitle('login.title'), RouteUtils_1.redirectResolve(function () { return !options.user.anonymous; }, (state === 'wave' ? 'wave/my-projects' : 'studio/explore')))\r\n })\r\n .state(state + \"-recovery\", {\r\n url: \"/\" + state + \"/recovery?email\",\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronRecovery), RouteUtils_1.setWrapper(\"wrapper-activate\"), RouteUtils_1.setTitle('recovery.request.title'))\r\n })\r\n .state(state + \"-recovery-reset\", {\r\n url: \"/\" + state + \"/recovery/:hash\",\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronRecoveryReset), RouteUtils_1.setWrapper(\"wrapper-activate\"), RouteUtils_1.setTitle('recovery.reset.title'))\r\n })\r\n .state(state + \"-settings\", {\r\n url: \"/\" + state + \"/settings\",\r\n noindex: true,\r\n controller: 'SettingsCtrl as settings',\r\n templateUrl: __webpack_require__(\"UTMY\"),\r\n resolve: _.extend(RouteUtils_1.redirectForLogin(), RouteUtils_1.loadModule(lazy_modules_1.animatronSettings), RouteUtils_1.setWrapper(\"wrapper-settings\"), RouteUtils_1.setTitle())\r\n })\r\n .state(state + \"-project\", {\r\n url: \"/\" + state + \"/project/:projectId?staff&stopPlay\",\r\n params: { project: null, stopPlay: null },\r\n noindex: true,\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.setWrapper(\"standalone-project \"), RouteUtils_1.setTitle(), RouteUtils_1.loadModule(lazy_modules_1.animatronProject))\r\n })\r\n .state(state + \"-activate-oauth\", {\r\n url: \"/\" + state + \"/activate-oauth?product\",\r\n noindex: true,\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.redirectResolve(function () { return !options.user.social; }), RouteUtils_1.loadModule(lazy_modules_1.animatronActivate), RouteUtils_1.setWrapper(\"wrapper-activate\"), RouteUtils_1.setTitle('activate.title'))\r\n })\r\n .state(state + \"-signup\", {\r\n url: \"/\" + state + \"/signup?email&product&sendRequest\",\r\n templateUrl: __webpack_require__(\"yEiy\"),\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronSignup), RouteUtils_1.setWrapper(\"wrapper-long-head\"), RouteUtils_1.setTitle('signup.title'))\r\n })\r\n .state(state + \"-activate\", {\r\n url: \"/\" + state + \"/activate/:hash\",\r\n noindex: true,\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.loadModule(lazy_modules_1.animatronActivate), RouteUtils_1.setWrapper(\"wrapper-activate\"), RouteUtils_1.setTitle('activate.title'))\r\n });\r\n });\r\n ['detailed-views', 'views-count', 'summarized'].forEach(function (state) {\r\n $stateProvider.state(\"project-analytics.\" + state, {\r\n url: \"/\" + Strings_1.Strings.toCamelCase(state) + \"?period\",\r\n noindex: true,\r\n template: \"<\" + state + \"-analytics-directive>\"\r\n });\r\n });\r\n ['most-plays', 'recently-added', 'staff-picks', 'contest-submissions', 'my-projects'].forEach(function (state) {\r\n $stateProvider.state(\"studio-explore.\" + state, {\r\n url: \"/\" + state + \"?page&product\",\r\n noindex: state === 'my-projects',\r\n resolve: _.extend(RouteUtils_1.setWrapper('wrapper-explore'))\r\n });\r\n });\r\n var landingGenerator = function (list, kind) {\r\n var resolveParams = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n resolveParams[_i - 2] = arguments[_i];\r\n }\r\n list.forEach(function (page) {\r\n $stateProvider.state(page.url, {\r\n url: '/' + page.url,\r\n controller: function () { this.data = Object.assign({}, page); },\r\n controllerAs: '$ctrl',\r\n template: \"<\" + kind + \"-landing data=\\\"$ctrl.data\\\">\",\r\n resolve: _.extend.apply(_, [RouteUtils_1.setTitle(page.title),\r\n RouteUtils_1.setWrapper(\"wrapper-landing-common wrapper-landing-\" + kind)].concat(resolveParams))\r\n });\r\n });\r\n };\r\n TemplateLandingPages_1.default.forEach(function (landing) {\r\n var footerWrapper = landing.settings.footer ? \"wrapper-footer-\" + landing.settings.footer : '';\r\n var hideHeader = landing.settings.isHeader ? '' : 'wrapper-hide-header';\r\n var landingWrapper = \"tl-wrapper tl-wrapper-\" + _.last(landing.url.split('/'));\r\n $stateProvider.state(landing.url, {\r\n // t=title, d=description, iv=introduce video\r\n url: \"/\" + landing.url + \"?t&d&iv&loginRedirect&\" + SMMWParams,\r\n onEnter: [\"$location\", \"$stateParams\", \"AuthenticationSvc\", function ($location, $stateParams, AuthenticationSvc) {\r\n var utm_source = $stateParams.utm_source, utm_medium = $stateParams.utm_medium, utm_campaign = $stateParams.utm_campaign, loginRedirect = $stateParams.loginRedirect;\r\n var isSMMW = utm_source === 'SMExaminer'\r\n && utm_medium === 'IndustryReport'\r\n && utm_campaign === 'SMEad';\r\n var SMMWPage = SMMWPages[_.random(1)];\r\n if (isSMMW) {\r\n var url = \"/wave/SMExaminerReport\" + SMMWPage;\r\n $location.path(url).replace();\r\n }\r\n if (loginRedirect) {\r\n AuthenticationSvc.toggleLoginModal(decodeURIComponent(loginRedirect));\r\n }\r\n }],\r\n template: '',\r\n resolve: _.extend(RouteUtils_1.setTitle(landing.title), RouteUtils_1.setWrapper(hideHeader + \" \" + footerWrapper + \" \" + landingWrapper + \" wrapper-landing-WAVE\"), RouteUtils_1.loadModule(lazy_modules_1.animatronLandingTemplate()))\r\n });\r\n });\r\n landingGenerator(LightLandingPages_1.default, 'light');\r\n landingGenerator(MediumLandingPages_1.default, 'medium', RouteUtils_1.loadModule(lazy_modules_1.animatronMediumLanding));\r\n })();\r\n }\r\n return Routes;\r\n}());\r\nRoutes.ENCODED_QUESTIONMARK = '%3f';\r\nangular.module('animatronApp.routes', ['ui.router'])\r\n .config(Routes);\r\n\n\n/***/ }),\n\n/***/ \"Q9ed\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar LandingTemplateSvc = (function () {\r\n LandingTemplateSvc.$inject = [\"$state\"];\r\n function LandingTemplateSvc($state) {\r\n this.$state = $state;\r\n this.randomize();\r\n }\r\n LandingTemplateSvc.prototype.getTrackInfo = function () {\r\n return {\r\n 'Landing Page': this.$state.current.name,\r\n 'Test Variant': this.isLink ? 'with-links' : 'without-links'\r\n };\r\n };\r\n LandingTemplateSvc.prototype.randomize = function () {\r\n var val = _.random(0, 1);\r\n this.isLink = !!val;\r\n };\r\n return LandingTemplateSvc;\r\n}());\r\nexports.LandingTemplateSvc = LandingTemplateSvc;\r\nmodule_1.default.service('landingTemplateSvc', LandingTemplateSvc);\r\n\n\n/***/ }),\n\n/***/ \"QAC1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-feedback_4484ddc6138f0bbe74050e2749218a32.css\";\n\n/***/ }),\n\n/***/ \"QHsv\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-wave-landing-smmw_e52b22b7a76aee2c3980c7cb41881826.css\";\n\n/***/ }),\n\n/***/ \"QI9i\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./female/1.png\": \"LaVb\",\n\t\"./female/1.svg\": \"ClZ7\",\n\t\"./female/10.png\": \"4jE+\",\n\t\"./female/10.svg\": \"rrSb\",\n\t\"./female/11.png\": \"juL4\",\n\t\"./female/11.svg\": \"Zkh2\",\n\t\"./female/12.png\": \"x0FM\",\n\t\"./female/12.svg\": \"4zkA\",\n\t\"./female/13.png\": \"aRaM\",\n\t\"./female/13.svg\": \"Dc98\",\n\t\"./female/14.png\": \"z7A8\",\n\t\"./female/14.svg\": \"yCid\",\n\t\"./female/15.png\": \"sNLF\",\n\t\"./female/15.svg\": \"luA4\",\n\t\"./female/16.png\": \"OzWi\",\n\t\"./female/16.svg\": \"CFmk\",\n\t\"./female/17.png\": \"DuQD\",\n\t\"./female/17.svg\": \"SHV6\",\n\t\"./female/18.png\": \"LT8D\",\n\t\"./female/18.svg\": \"zpKr\",\n\t\"./female/19.png\": \"0eTi\",\n\t\"./female/19.svg\": \"Fa/p\",\n\t\"./female/2.png\": \"f37r\",\n\t\"./female/2.svg\": \"vlSI\",\n\t\"./female/20.png\": \"wuZI\",\n\t\"./female/20.svg\": \"+kS6\",\n\t\"./female/21.png\": \"F3zo\",\n\t\"./female/21.svg\": \"NNCM\",\n\t\"./female/3.png\": \"wpGM\",\n\t\"./female/3.svg\": \"DFGL\",\n\t\"./female/4.png\": \"rkOV\",\n\t\"./female/4.svg\": \"V5IG\",\n\t\"./female/5.png\": \"KxLd\",\n\t\"./female/5.svg\": \"FHxu\",\n\t\"./female/6.png\": \"JiAo\",\n\t\"./female/6.svg\": \"DDR7\",\n\t\"./female/7.png\": \"hflI\",\n\t\"./female/7.svg\": \"PAlv\",\n\t\"./female/8.png\": \"v+uJ\",\n\t\"./female/8.svg\": \"9+MG\",\n\t\"./female/9.png\": \"w2og\",\n\t\"./female/9.svg\": \"uaFb\",\n\t\"./male/1.png\": \"l8ep\",\n\t\"./male/1.svg\": \"xD0M\",\n\t\"./male/10.png\": \"NnQa\",\n\t\"./male/10.svg\": \"Nzyx\",\n\t\"./male/11.png\": \"D9F/\",\n\t\"./male/11.svg\": \"5l58\",\n\t\"./male/12.png\": \"wX/j\",\n\t\"./male/12.svg\": \"V3H0\",\n\t\"./male/13.png\": \"WHLm\",\n\t\"./male/13.svg\": \"XMqc\",\n\t\"./male/2.png\": \"Z9aV\",\n\t\"./male/2.svg\": \"T2uR\",\n\t\"./male/3.png\": \"hB9q\",\n\t\"./male/3.svg\": \"anIN\",\n\t\"./male/4.png\": \"brzu\",\n\t\"./male/4.svg\": \"bPu8\",\n\t\"./male/5.png\": \"fSNa\",\n\t\"./male/5.svg\": \"OdJD\",\n\t\"./male/6.png\": \"7UG8\",\n\t\"./male/6.svg\": \"390S\",\n\t\"./male/7.png\": \"ZawD\",\n\t\"./male/7.svg\": \"zJEW\",\n\t\"./male/8.png\": \"mQW2\",\n\t\"./male/8.svg\": \"2wJH\",\n\t\"./male/9.png\": \"ifp+\",\n\t\"./male/9.svg\": \"8IAX\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"QI9i\";\n\n/***/ }),\n\n/***/ \"QQt/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/404-page_00018b1fcd830d897c03da2d6ff3d1cc.css\";\n\n/***/ }),\n\n/***/ \"QqRC\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/contact-us-section_53bd61f44895f5410f573fd9fcba95cb.css\";\n\n/***/ }),\n\n/***/ \"R0iF\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar Utils = (function () {\r\n function Utils() {\r\n }\r\n Utils.calcTime = function (time) {\r\n var floor = Math.floor, ceil = Math.ceil;\r\n var hrs = floor(time / 3600);\r\n var mins = floor((time % 3600) / 60);\r\n var secs = ceil(time % 60);\r\n // return '1:01' or '4:03:59' or '123:03:59'\r\n var ret = '';\r\n if (hrs > 0) {\r\n ret += '' + hrs + ':' + (mins < 10 ? '0' : '');\r\n }\r\n ret += '' + mins + ':' + (secs < 10 ? '0' : '');\r\n ret += '' + secs;\r\n return ret;\r\n };\r\n Utils.toHyphenCase = function (str) {\r\n return str.replace(/([A-Z])/g, function (letter) {\r\n var letterLowerCase = letter.toLowerCase();\r\n return letterLowerCase.replace(letterLowerCase, '-' + letterLowerCase);\r\n });\r\n };\r\n Utils.scopedEvent = function (eventName, scope, func, element, useCapture) {\r\n if (element === void 0) { element = window; }\r\n if (useCapture === void 0) { useCapture = false; }\r\n var events = Array.isArray(eventName) ? eventName : [eventName];\r\n var destroy = events.map(function (name) {\r\n element.addEventListener(name, func, useCapture);\r\n scope.$on('$destroy', function () { return element.removeEventListener(name, func); });\r\n return function () { return element.removeEventListener(name, func); };\r\n });\r\n return function () { return destroy.forEach(function (f) { return f(); }); };\r\n };\r\n ;\r\n Utils.getBrowserName = function () {\r\n var browsers = ['Opera', 'Chrome', 'Safari', 'Firefox', 'MSIE', 'unknown'];\r\n var index = browsers.findIndex((function (browser) { return navigator.userAgent.includes(browser); }));\r\n return browsers[index];\r\n };\r\n Utils.oneTimeEvent = function (eventName, scope, func, element) {\r\n if (element === void 0) { element = window; }\r\n var destroy = null;\r\n var oneTime = _.once(function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n func.apply(void 0, args);\r\n destroy && destroy();\r\n });\r\n destroy = Utils.scopedEvent(eventName, scope, oneTime, element);\r\n return destroy;\r\n };\r\n Utils.isApiError = function (a, code, msg) {\r\n return !!a.errorCode &&\r\n a.errorCode >= 400 &&\r\n (!code || a.errorCode === code) &&\r\n (!msg || msg.test(a.errorMessage));\r\n };\r\n Utils.getProduct = function (url, stateName) {\r\n if (url === void 0) { url = window.location.pathname; }\r\n var currentProduct = '';\r\n options.animatronProducts.some(function (product) {\r\n var productL = product.toLowerCase();\r\n var isProduct = url.startsWith(\"/\" + productL) ||\r\n (stateName && stateName.startsWith(productL + \"-\"));\r\n currentProduct = isProduct ? product : 'ANY';\r\n return isProduct;\r\n });\r\n return currentProduct;\r\n };\r\n Utils.getProductByState = function (state) {\r\n var _a = state.current, url = _a.url, name = _a.name;\r\n return Utils.getProduct(url, name);\r\n };\r\n Utils.isUser = function (a) {\r\n return a.username && a.displayName;\r\n };\r\n Utils.redirect = function (url, $location, shouldReplace) {\r\n if (!url) {\r\n throw new Error('Empty url was passed to redirect');\r\n }\r\n if (/^http(s?):\\/\\//.test(url)) {\r\n location.href = url;\r\n return;\r\n }\r\n var _a = url.split('#'), path = _a[0], hash = _a[1];\r\n var _b = path.split('?'), state = _b[0], paramsStr = _b[1];\r\n var newLoc = $location\r\n .url(state)\r\n .search(Strings_1.Strings.toParams(paramsStr));\r\n if (hash) {\r\n newLoc.hash(hash).replace();\r\n }\r\n if (!hash && shouldReplace) {\r\n newLoc.replace();\r\n }\r\n };\r\n // _.filterObj = (obj: any, pred: any) => _.object(Object.keys(obj).filter(k => pred(k, obj[k])).map(k => [k, obj[k]]));\r\n Utils.safe = function (f) {\r\n try {\r\n f();\r\n }\r\n catch (e) { }\r\n };\r\n Utils.waitFor = function (check, cb) {\r\n if (check()) {\r\n cb();\r\n }\r\n else {\r\n setTimeout(function () { return Utils.waitFor(check, cb); }, 100);\r\n }\r\n };\r\n Utils.getMonthDaysCount = function () {\r\n var current = new Date();\r\n var d = new Date(current.getFullYear(), current.getMonth() + 1, 0);\r\n return d.getDate();\r\n };\r\n Utils.curry = function (f) {\r\n return function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n return f.length <= 1 ? f.apply(void 0, x) : f = f.bind.apply(f, [null].concat(x));\r\n };\r\n };\r\n Utils.createElement = function (name, classes, child) {\r\n var el = document.createElement(name);\r\n if (classes)\r\n classes.forEach(function (className) { return el.classList.add(className); });\r\n if (child)\r\n el.appendChild(child);\r\n return el;\r\n };\r\n return Utils;\r\n}());\r\nUtils.isSecureUser = function (a) { return a.encryptedToken && a.userProfile; };\r\nUtils.sequence = function (array, $ocLazyLoad) {\r\n return array.reduce(function (acc, val) { return acc.then(function () { return $ocLazyLoad.load(val); }); }, Promise.resolve());\r\n};\r\nUtils.toParams = function (obj) { return Object.keys(obj).map(function (k) { return k + \"=\" + obj[k]; }).join('&'); };\r\nUtils.matchesSelector = function (element, selector) {\r\n var ElementPrototype = Element.prototype;\r\n var fn = ElementPrototype.matches ||\r\n ElementPrototype.webkitMatchesSelector ||\r\n ElementPrototype.msMatchesSelector;\r\n return fn.call(element, selector);\r\n};\r\nUtils.rAF = (function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame']\r\n || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if (!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function (callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function () { return callback(currTime + timeToCall); }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n if (!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) { return clearTimeout(id); };\r\n return window.requestAnimationFrame.bind(window);\r\n}());\r\nexports.Utils = Utils;\r\n_.mixin(Utils);\r\n\n\n/***/ }),\n\n/***/ \"R8gk\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/contest-landing_cccc5c3058af40740fdd22e056699422.css\";\n\n/***/ }),\n\n/***/ \"R8wy\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/template-pages-list_9fe1e728eb72618ba274b6ab4804ca0c.css\";\n\n/***/ }),\n\n/***/ \"RDpK\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * To add new page, create new json object with the same structure as the ones below.\r\n * Most values should be key references to i18n files. So translations should also be written in app/assets/i18n/m_*.properties files\r\n * It is essential that all properties are present and have correct names.\r\n * Images are stored in app/assets/images/landing/light folder, but here should only be filename.\r\n */\r\nexports.default = [\r\n {\r\n url: 'studio/online-video-maker',\r\n title: 'light.videomaker.title',\r\n h1: 'light.videomaker.h1',\r\n h2: 'light.videomaker.h2',\r\n playerUrl: 'https://publish.animatron.io/578e8efb8951d5959bda7752.json',\r\n width: 1920,\r\n height: 1080,\r\n preview: 'video-maker.png',\r\n alt: 'light.videomaker.alt1',\r\n editor: 'https://editor.animatron.com',\r\n button: 'light.videomaker.button',\r\n descriptionTitle: 'light.videomaker.description.title',\r\n description: 'light.videomaker.description',\r\n link: '/tags/Video?super=true',\r\n linkName: 'light.videomaker.name'\r\n },\r\n {\r\n url: 'studio/online-card-maker',\r\n title: 'light.card.title',\r\n h1: 'light.card.h1',\r\n h2: 'light.card.h2',\r\n playerUrl: 'https://publish.animatron.io/578e93857cb4bf921554b8d7.json',\r\n width: 400,\r\n height: 360,\r\n preview: 'card-maker.png',\r\n alt: 'explainer.help4.alt4',\r\n editor: 'https://editor.animatron.com',\r\n button: 'light.card.button',\r\n descriptionTitle: 'light.card.description.title',\r\n description: 'light.card.description',\r\n link: 'tags/Animated%20card?super=true',\r\n linkName: 'light.card.name'\r\n },\r\n {\r\n url: 'studio/creativity-in-classroom',\r\n title: 'light.creativity.title',\r\n h1: 'light.creativity.h1',\r\n h2: 'light.creativity.h2',\r\n playerUrl: 'https://publish.animatron.io/578e96eeaa3269e89ae552bd.json',\r\n width: 640,\r\n height: 360,\r\n preview: 'creativity.png',\r\n alt: 'explainer.help5.alt5',\r\n editor: 'https://editor.animatron.com',\r\n button: 'light.creativity.button',\r\n descriptionTitle: 'light.creativity.description.title',\r\n description: 'light.creativity.description',\r\n link: '/tags/edu?super=true',\r\n linkName: 'light.creativity.name'\r\n }\r\n];\r\n\n\n/***/ }),\n\n/***/ \"RIrZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar FooterCtrl = (function () {\r\n FooterCtrl.$inject = [\"$rootScope\", \"$element\", \"$state\"];\r\n function FooterCtrl($rootScope, $element, $state) {\r\n var _this = this;\r\n this.$rootScope = $rootScope;\r\n this.$element = $element;\r\n this.$state = $state;\r\n this.isLangMenuHide = (\"ontouchstart\" in document.documentElement);\r\n this.affUrl = \"https://animatron\" + ( true ? '' : 'test') + \".tapfiliate.com/\";\r\n this.socials = [\r\n {\r\n href: 'github',\r\n className: 'gh'\r\n },\r\n {\r\n href: 'twitter',\r\n className: 'tw'\r\n },\r\n {\r\n href: 'facebook',\r\n className: 'fb'\r\n },\r\n {\r\n href: 'youtube',\r\n className: 'yt'\r\n },\r\n {\r\n href: 'instagram',\r\n className: 'inst'\r\n }\r\n ];\r\n this.followStates = ['studio-followers', 'studio-following'];\r\n var footer = $element[0];\r\n var windowHeight = window.innerHeight;\r\n window.addEventListener('scroll', _.throttle(function () { return underscore_extensions_1.Utils.rAF(function () {\r\n var scrollTopDocument = window.scrollY || window.pageYOffset;\r\n var action = scrollTopDocument > (windowHeight * 3) ? 'add' : 'remove';\r\n footer.classList[action]('fixed');\r\n }); }, 250));\r\n this.$rootScope.$on('$stateChangeStart', function () { return footer.classList.remove('shown'); });\r\n this.$rootScope.$on('$stateChangeSuccess', function () {\r\n return _this.product = underscore_extensions_1.Utils.getProductByState(_this.$state);\r\n });\r\n this.$rootScope.$on('$projects:shownAll', function () { return footer.classList.add('shown'); });\r\n this.$rootScope.$on('$following:loaded', function () {\r\n return _this.followStates.includes(_this.$state.current.name) && footer.classList.add('shown');\r\n });\r\n }\r\n return FooterCtrl;\r\n}());\r\nmodule_1.default.component('anmFooter', {\r\n controller: FooterCtrl,\r\n templateUrl: __webpack_require__(\"Sm4n\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"RJzm\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\");\r\nvar SpinnerSvc_1 = __webpack_require__(\"pPBV\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar ProjectModalSvc = (function () {\r\n ProjectModalSvc.$inject = [\"$rootScope\", \"$state\", \"$timeout\", \"$ocLazyLoad\"];\r\n function ProjectModalSvc($rootScope, $state, $timeout, $ocLazyLoad) {\r\n var _this = this;\r\n this.$rootScope = $rootScope;\r\n this.$state = $state;\r\n this.$timeout = $timeout;\r\n this.$ocLazyLoad = $ocLazyLoad;\r\n this.prevState = $state.current;\r\n this.prevParams = $state.params;\r\n if (this.projectModalShown !== true) {\r\n this.projectModalShown = false;\r\n }\r\n $rootScope.$on('$stateChangeStart', function (e, toState, toParams) {\r\n console.log(toState.url, toParams.url, $state.is('studio-project') && $state.is('wave-project'), _this.projectModalShown);\r\n if (($state.is('studio-project') || $state.is('wave-project')) && _this.projectModalShown) {\r\n e.preventDefault();\r\n _this.modalHide();\r\n if (_.isEqual(toParams, _this.prevParams) && toState.name === _this.prevState.name) {\r\n _this.changeUrl(toState.name, toParams, true).then(function () {\r\n SpinnerSvc_1.default.hide();\r\n });\r\n }\r\n else {\r\n $timeout(function () { return $state.transitionTo(toState.name, toParams); });\r\n }\r\n }\r\n });\r\n }\r\n ProjectModalSvc.prototype.onModalClose = function () {\r\n window.history.back(); //It will call $stateChangeStart\r\n };\r\n ProjectModalSvc.prototype.modalHide = function () {\r\n this.projectModalShown = false;\r\n };\r\n ProjectModalSvc.prototype.modalShow = function (project) {\r\n var _this = this;\r\n SpinnerSvc_1.default.show();\r\n this.$ocLazyLoad.load(lazy_modules_1.animatronProject).then(function () {\r\n var product = underscore_extensions_1.Utils.getProductByState(_this.$state).toLowerCase();\r\n var params = { projectId: project.id, project: project };\r\n if (product === 'wave') {\r\n params.stopPlay = true;\r\n }\r\n var state = [product + \"-project\", params];\r\n if (options.handHeld) {\r\n (_a = _this.$state).go.apply(_a, state);\r\n }\r\n else {\r\n _this.prevState = _this.$state.current;\r\n _this.prevParams = _this.$state.params;\r\n delete _this.prevParams['#'];\r\n _this.projectModalShown = true;\r\n _this.changeUrl.apply(_this, state);\r\n }\r\n var _a;\r\n });\r\n };\r\n ;\r\n ProjectModalSvc.prototype.toggleProjectModal = function (project, $event) {\r\n if (!$event.metaKey && !$event.ctrlKey) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n if (this.projectModalShown) {\r\n this.modalHide();\r\n }\r\n else {\r\n this.modalShow(project);\r\n }\r\n }\r\n };\r\n ;\r\n ProjectModalSvc.prototype.changeUrl = function (state, params, replace) {\r\n if (replace === void 0) { replace = false; }\r\n var opts = {\r\n notify: false,\r\n location: (replace ? 'replace' : true)\r\n };\r\n return this.$state.transitionTo(state, params, opts);\r\n };\r\n return ProjectModalSvc;\r\n}());\r\nexports.ProjectModalSvc = ProjectModalSvc;\r\nmodule_1.default.service('ProjectModalSvc', ProjectModalSvc);\r\n\n\n/***/ }),\n\n/***/ \"Rium\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/modal-template.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"Rpkd\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/political-landing_13ec297054b85d789fa082bb6c9a03ff.css\";\n\n/***/ }),\n\n/***/ \"RySD\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/contest-text-video-section_bbd71e3eebf6622ceaf597a366fa01aa.css\";\n\n/***/ }),\n\n/***/ \"S6Z6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-header_461b585e47d1004883226d2700482574.css\";\n\n/***/ }),\n\n/***/ \"SDKh\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-landing-banner_5e15667ed5ffc1fee009f8f765bf0a67.css\";\n\n/***/ }),\n\n/***/ \"SFnc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar LocalStorageSvc = (function () {\r\n LocalStorageSvc.$inject = [\"$window\", \"$log\"];\r\n function LocalStorageSvc($window, $log) {\r\n this.$window = $window;\r\n this.$log = $log;\r\n this.isSupported = false;\r\n try {\r\n var supported = $window && $window.localStorage !== null;\r\n var key = '__' + Math.round(Math.random() * 1e7);\r\n if (supported) {\r\n this.storage = $window.localStorage;\r\n this.storage.setItem(key, 'value');\r\n supported = this.storage.getItem(key) === 'value';\r\n this.storage.removeItem(key);\r\n }\r\n this.isSupported = supported;\r\n }\r\n catch (e) {\r\n $log.warn('LocalStorage is disabled');\r\n this.isSupported = false;\r\n }\r\n }\r\n LocalStorageSvc.prototype.set = function (key, value) {\r\n if (this.isSupported) {\r\n this.storage.setItem(key, JSON.stringify(value));\r\n }\r\n else {\r\n this.$log.debug('Cannot set ' + key + ' to localStorage');\r\n }\r\n };\r\n ;\r\n LocalStorageSvc.prototype.get = function (key) {\r\n var _this = this;\r\n var onError = function () {\r\n _this.$log.debug('Cannot get ' + key + ' from localStorage');\r\n return null;\r\n };\r\n if (this.isSupported) {\r\n return this.safeOperation(function () {\r\n return JSON.parse(_this.storage.getItem(key));\r\n }, onError);\r\n }\r\n else {\r\n return onError();\r\n }\r\n };\r\n ;\r\n LocalStorageSvc.prototype.remove = function (key) {\r\n if (this.isSupported) {\r\n var value = this.get(key);\r\n this.storage.removeItem(key);\r\n return value;\r\n }\r\n else {\r\n this.$log.debug('Cannot remove ' + key + ' from localStorage');\r\n return null;\r\n }\r\n };\r\n ;\r\n LocalStorageSvc.prototype.safeOperation = function (unsafeFunc, onError) {\r\n try {\r\n return unsafeFunc();\r\n }\r\n catch (e) {\r\n return onError();\r\n }\r\n };\r\n ;\r\n return LocalStorageSvc;\r\n}());\r\nexports.LocalStorageSvc = LocalStorageSvc;\r\nmodule_1.default.service('LocalStorageSvc', LocalStorageSvc);\r\n\n\n/***/ }),\n\n/***/ \"SHV6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/17.svg\";\n\n/***/ }),\n\n/***/ \"SW67\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/win-prizes-section_3f8c5ebc1c4528773e263450dc5bff31.css\";\n\n/***/ }),\n\n/***/ \"SXt6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/light/video-maker.png\";\n\n/***/ }),\n\n/***/ \"Sct3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar News = (function () {\r\n News.$inject = [\"$scope\", \"$sce\", \"$interval\", \"$element\", \"NewsSvc\"];\r\n function News($scope, $sce, $interval, $element, NewsSvc) {\r\n var _this = this;\r\n this.$scope = $scope;\r\n this.$sce = $sce;\r\n this.$interval = $interval;\r\n this.$element = $element;\r\n this.NewsSvc = NewsSvc;\r\n this.delayShowNews = 1e+1;\r\n this.newsList = [];\r\n $scope.$watch(function () { return NewsSvc.newsList; }, function (list) {\r\n if (!list)\r\n return;\r\n _this.newsList = list;\r\n _this.setCurrentNews();\r\n var appliedClassName = 'applied';\r\n if (_this.newsList.length) {\r\n setTimeout(function () { return _this.$element[0].classList.add(appliedClassName); }, _this.delayShowNews);\r\n }\r\n else {\r\n _this.$element[0].classList.remove(appliedClassName);\r\n }\r\n });\r\n $scope.$on('$destroy', function () { return $interval.cancel(_this.stopRepeatNews); });\r\n }\r\n Object.defineProperty(News.prototype, \"currentNews\", {\r\n get: function () {\r\n return this.$sce.trustAsHtml(this.currentNewsItem.html);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n News.prototype.setCurrentNews = function (index) {\r\n var _this = this;\r\n if (index === void 0) { index = this.NewsSvc.currentIndex; }\r\n this.currentNewsItem = this.newsList[index] || this.newsList[0];\r\n this.$interval.cancel(this.stopRepeatNews);\r\n this.stopRepeatNews = this.$interval(function () {\r\n _this.NewsSvc.currentIndex = index = ++index >= _this.newsList.length ? 0 : index;\r\n _this.currentNewsItem = _this.newsList[index];\r\n }, this.delayShowNews);\r\n };\r\n News.prototype.deleteNews = function () {\r\n this.NewsSvc.deleteNews(this.currentNewsItem.id);\r\n };\r\n return News;\r\n}());\r\nmodule_1.default.component('news', {\r\n controller: News,\r\n controllerAs: 'NewsCtrl',\r\n templateUrl: __webpack_require__(\"c5FE\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"Skyp\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/auth_15a606cbe5e8f3a674725fb147f4443d.css\";\n\n/***/ }),\n\n/***/ \"Sm4n\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/footer.html';\nvar html = \" \";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"SzCq\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/press-twitter-gallery_d37316aa6e4c02d2c0f1364e79240426.html\";\n\n/***/ }),\n\n/***/ \"T1Il\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar shareSocialSvc = { show: false };\r\nvar networks = {\r\n facebook: \"https://www.facebook.com/sharer/sharer.php?s=100&p[url]={{::$ctrl.url}}\",\r\n twitter: \"https://twitter.com/intent/tweet?url={{::$ctrl.url}}\",\r\n 'google+': \"https://plus.google.com/share?url={{::$ctrl.url}}\",\r\n tumblr: \"https://www.tumblr.com/share/photo?source={{$ctrl.preview}}&caption={{::$ctrl.info}}&click_thru={{::$ctrl.url}}\",\r\n email: \"mailto:?subject={{$ctrl.ProjectPageCtrl.project.name}}%20by%20{{$ctrl.ProjectPageCtrl.project.author.displayName}}&body={{$ctrl.url}}\"\r\n};\r\nmodule_1.default.component('shareSocialButton', {\r\n controller: (function () {\r\n function ShareSocialButton() {\r\n this.shareSocialSvc = shareSocialSvc;\r\n }\r\n ShareSocialButton.prototype.onClick = function () {\r\n shareSocialSvc.show = !shareSocialSvc.show;\r\n if (shareSocialSvc.show && this.ProjectPageCtrl.player) {\r\n this.ProjectPageCtrl.player.then(function (p) { return p && p.pause(); });\r\n }\r\n };\r\n ;\r\n return ShareSocialButton;\r\n }()),\r\n require: { ProjectPageCtrl: '^projectPage' },\r\n template: \"\\n \\n {{::$root.t('share')}}\\n \"\r\n});\r\nmodule_1.default.component('shareSocialWindow', {\r\n controller: (function () {\r\n ShareSocialWindow.$inject = [\"$scope\", \"$timeout\", \"$location\", \"$element\"];\r\n function ShareSocialWindow($scope, $timeout, $location, $element) {\r\n var _this = this;\r\n this.$scope = $scope;\r\n this.$timeout = $timeout;\r\n this.$location = $location;\r\n this.$element = $element;\r\n this.shareSocialSvc = shareSocialSvc;\r\n this.$onInit = function () { return _this.ProjectPageCtrl.projectPromise.then(function (prj) {\r\n if (_this.ProjectPageCtrl.twoPlayers)\r\n return;\r\n _this.url = encodeURIComponent(_this.$location.absUrl());\r\n _this.preview = encodeURIComponent(prj.preview_metadata[0]);\r\n _this.info = encodeURIComponent(prj.name + '\\n' + prj.description + '\\nby ' + prj.author.displayName);\r\n var destroy = _this.$scope.$watch(function () { return _this.ProjectPageCtrl.player; }, function (player) {\r\n if (player && player.then) {\r\n destroy();\r\n player.then(function (p) {\r\n if (!p)\r\n return;\r\n var showOnPause = _.once(function () {\r\n p.on(anm.C.S_PAUSE, function () { return _this.$timeout(function () { return shareSocialSvc.show = true; }); });\r\n });\r\n var repeats = 0;\r\n if (window.anm) {\r\n p.on(anm.C.S_COMPLETE, function () {\r\n repeats += 1;\r\n if (!p.repeat && !p.repeating && !p.anim.repeat) {\r\n _this.$timeout(function () { return shareSocialSvc.show = true; });\r\n }\r\n else if (repeats >= 1) {\r\n showOnPause();\r\n }\r\n });\r\n p.on(anm.C.S_PLAY, function () { return _this.$timeout(function () { return shareSocialSvc.show = false; }); });\r\n }\r\n underscore_extensions_1.Utils.scopedEvent('click', _this.$scope, function (e) {\r\n var target = e.target;\r\n if (shareSocialSvc.show && !target.classList.contains('share')) {\r\n p.play();\r\n }\r\n return e;\r\n }, _this.$element[0]);\r\n });\r\n }\r\n });\r\n _this.$scope.$on('$destroy', function () { return shareSocialSvc.show = false; });\r\n }); };\r\n }\r\n return ShareSocialWindow;\r\n }()),\r\n require: { ProjectPageCtrl: '^projectPage' },\r\n template: function () {\r\n var items = _.map(networks, function (href, network) {\r\n return \"\\n
\\n
\";\r\n }).join('');\r\n return \"\\n
\\n
{{::$root.t('project.share')}}
\\n
\" + items + \"
\\n
\";\r\n }\r\n});\r\n\n\n/***/ }),\n\n/***/ \"T2uR\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/2.svg\";\n\n/***/ }),\n\n/***/ \"T3B4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar RescaleSvc_1 = __webpack_require__(\"7T+Z\");\r\nvar ModalVideoComponent = (function () {\r\n ModalVideoComponent.$inject = [\"$element\", \"$sce\", \"$timeout\", \"Player\"];\r\n function ModalVideoComponent($element, $sce, $timeout, Player) {\r\n this.$element = $element;\r\n this.$sce = $sce;\r\n this.$timeout = $timeout;\r\n this.Player = Player;\r\n this.onModalShown = this.onModalShown || angular.noop;\r\n }\r\n ModalVideoComponent.prototype.$onChanges = function () {\r\n this.modalShown = this.canModalShow;\r\n };\r\n ModalVideoComponent.prototype.$onInit = function () {\r\n if (this.youtubeId) {\r\n this.youtubeUrl = this.$sce.trustAsResourceUrl(\"https://www.youtube.com/embed/\" + this.youtubeId + \"?autoplay=1\");\r\n }\r\n else if (this.wistiaId) {\r\n this.wistiaUrl = this.$sce.trustAsResourceUrl(\"https://animatron.wistia.com/embed/iframe/\" + this.wistiaId + \"?videoFoam=true\");\r\n }\r\n };\r\n ModalVideoComponent.prototype.$onDestroy = function () {\r\n this.Player.resetPlayer(this.player);\r\n };\r\n Object.defineProperty(ModalVideoComponent.prototype, \"modalShown\", {\r\n get: function () {\r\n return this.isModalShown;\r\n },\r\n set: function (shown) {\r\n var _this = this;\r\n this.isModalShown = shown;\r\n this.onModalShown({ isModalShown: shown });\r\n if (shown && !this.youtubeId && !this.wistiaId && this.playerUrl) {\r\n this.$timeout(function () { return underscore_extensions_1.Utils.rAF(function () {\r\n var maxWidth = (window.innerWidth / 2);\r\n var maxHeight = (window.innerHeight / 1.4515503875968991);\r\n var _a = RescaleSvc_1.RescaleSvc.resizeWithAspectRatio(_this.playerWidth, _this.playerHeight, maxWidth, maxHeight, true, true), width = _a.width, height = _a.height;\r\n var el = _this.$element[0].querySelector('.ng-modal-dialog-content');\r\n Object.assign(el.style, {\r\n width: width + \"px\",\r\n height: height + \"px\"\r\n });\r\n _this.player = _this.Player.createPlayer(_this.playerUrl, 'player', {\r\n width: width,\r\n height: height,\r\n repeat: false,\r\n autoPlay: true,\r\n controlsEnabled: true\r\n }, function () { return _this.$element[0].querySelector('#player').style.background = ''; });\r\n }); });\r\n }\r\n else if (!shown && this.player) {\r\n this.$onDestroy();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ModalVideoComponent;\r\n}());\r\nexports.ModalVideoComponent = ModalVideoComponent;\r\nmodule_1.default.component('modalVideo', {\r\n bindings: {\r\n previewUrl: '= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\n\n/***/ }),\n\n/***/ \"TnCe\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/discount-dialog_5b1a945f0cc8011e81e2cc1c706e41dd.css\";\n\n/***/ }),\n\n/***/ \"U56v\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./en.json\": \"aY29\",\n\t\"./es.json\": \"+lAx\",\n\t\"./ko.json\": \"a8i3\",\n\t\"./ru.json\": \"2MCb\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"U56v\";\n\n/***/ }),\n\n/***/ \"UAPN\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-messages_fdc9a72ec85f6b45392f1c6eb2617d8c.css\";\n\n/***/ }),\n\n/***/ \"UTMY\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/settings_c9c127e77be01124d624a1776c596de6.html\";\n\n/***/ }),\n\n/***/ \"UVgn\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/library_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n/***/ }),\n\n/***/ \"UYjX\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nmodule_1.default.directive('toggleProjectModal', [\"$compile\", function ($compile) {\r\n return {\r\n restrict: 'A',\r\n terminal: true,\r\n priority: 1000,\r\n scope: false,\r\n link: function (scope, element) {\r\n if (!scope.project)\r\n scope.project = scope.$ctrl.project;\r\n element.attr('ng-href', '/project/{{::project.id}}');\r\n element.attr('ng-click', '$root.projectModalSvc.toggleProjectModal(project, $event)');\r\n element.removeAttr('toggle-project-modal');\r\n $compile(element)(scope);\r\n }\r\n };\r\n}]);\r\nmodule_1.default.directive('projectModalLink', function () {\r\n return {\r\n scope: false,\r\n restrict: 'E',\r\n template: \"\\n {{::(project.name || $ctrl.project.name)}}\\n \"\r\n };\r\n});\r\n\n\n/***/ }),\n\n/***/ \"Us82\":\n/***/ (function(module, exports) {\n\n/* ng-infinite-scroll - v1.1.2 - 2014-05-21 */\nvar mod;\n\nmod = angular.module('infinite-scroll', []);\n\nmod.value('THROTTLE_MILLISECONDS', null);\n\nmod.directive('infiniteScroll', [\n '$rootScope', '$window', '$timeout', 'THROTTLE_MILLISECONDS', function ($rootScope, $window, $timeout, THROTTLE_MILLISECONDS) {\n return {\n scope: {\n infiniteScroll: '&',\n infiniteScrollContainer: '=',\n infiniteScrollDistance: '=',\n infiniteScrollDisabled: '=',\n infiniteScrollUseDocumentBottom: '='\n },\n link: function (scope, elem, attrs) {\n var changeContainer, checkWhenEnabled, container, handleInfiniteScrollContainer, handleInfiniteScrollDisabled, handleInfiniteScrollDistance, handleInfiniteScrollUseDocumentBottom, handler, immediateCheck, scrollDistance, scrollEnabled, increment, useDocumentBottom;\n $window = angular.element($window);\n scrollDistance = null;\n scrollEnabled = null;\n checkWhenEnabled = null;\n container = null;\n immediateCheck = true;\n useDocumentBottom = false;\n var originalHandler;\n handler = function () {\n var containerBottom, elementBottom, remaining, shouldScroll, containerHeight;\n containerHeight = window.innerHeight;\n containerBottom = containerHeight + (window.scrollY || window.pageYOffset);\n elementBottom = elem[0].offsetTop + elem[0].offsetHeight;\n\n remaining = elementBottom - containerBottom;\n increment = elementBottom < 1200 ? 1300 : 500;\n shouldScroll = remaining <= containerHeight + increment;\n if (shouldScroll) {\n checkWhenEnabled = true;\n if (scrollEnabled) {\n if (scope.$$phase || $rootScope.$$phase) {\n scope.infiniteScroll();\n } else {\n scope.$apply(scope.infiniteScroll);\n }\n angular.element(window).triggerHandler('scroll');\n }\n } else {\n return checkWhenEnabled = false;\n }\n };\n if (THROTTLE_MILLISECONDS != null) {\n originalHandler = handler;\n handler = _.throttle(handler, THROTTLE_MILLISECONDS);\n }\n scope.$on('$destroy', function () {\n return container.off('scroll', handler);\n });\n handleInfiniteScrollDistance = function (v) {\n return scrollDistance = parseInt(v, 10) || 0;\n };\n scope.$watch('infiniteScrollDistance', handleInfiniteScrollDistance);\n handleInfiniteScrollDistance(scope.infiniteScrollDistance);\n handleInfiniteScrollDisabled = function (v) {\n scrollEnabled = !v;\n if (scrollEnabled && checkWhenEnabled) {\n checkWhenEnabled = false;\n return handler();\n }\n };\n scope.$watch('infiniteScrollDisabled', handleInfiniteScrollDisabled);\n handleInfiniteScrollDisabled(scope.infiniteScrollDisabled);\n handleInfiniteScrollUseDocumentBottom = function (v) {\n return useDocumentBottom = v;\n };\n scope.$watch('infiniteScrollUseDocumentBottom', handleInfiniteScrollUseDocumentBottom);\n handleInfiniteScrollUseDocumentBottom(scope.infiniteScrollUseDocumentBottom);\n changeContainer = function (newContainer) {\n if (container != null) {\n container.off('scroll', handler);\n }\n container = typeof newContainer.last === 'function' && newContainer !== $window ? newContainer.last() : newContainer;\n if (newContainer != null) {\n return container.on('scroll', handler);\n }\n };\n changeContainer($window);\n handleInfiniteScrollContainer = function (newContainer) {\n if ((!(newContainer != null)) || newContainer.length === 0) {\n return;\n }\n newContainer = angular.element(newContainer);\n if (newContainer != null) {\n return changeContainer(newContainer);\n } else {\n throw new Error(\"invalid infinite-scroll-container attribute.\");\n }\n };\n scope.$watch('infiniteScrollContainer', handleInfiniteScrollContainer);\n handleInfiniteScrollContainer(scope.infiniteScrollContainer || []);\n if (attrs.infiniteScrollParent != null) {\n changeContainer(angular.element(elem.parent()));\n }\n if (attrs.infiniteScrollImmediateCheck != null) {\n immediateCheck = scope.$eval(attrs.infiniteScrollImmediateCheck);\n }\n return $timeout((function () {\n if (immediateCheck) {\n return originalHandler();\n }\n }), 0);\n }\n };\n }\n]);\n\n\n/***/ }),\n\n/***/ \"V16h\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./1.svg\": \"xD0M\",\n\t\"./10.svg\": \"Nzyx\",\n\t\"./11.svg\": \"5l58\",\n\t\"./12.svg\": \"V3H0\",\n\t\"./13.svg\": \"XMqc\",\n\t\"./2.svg\": \"T2uR\",\n\t\"./3.svg\": \"anIN\",\n\t\"./4.svg\": \"bPu8\",\n\t\"./5.svg\": \"OdJD\",\n\t\"./6.svg\": \"390S\",\n\t\"./7.svg\": \"zJEW\",\n\t\"./8.svg\": \"2wJH\",\n\t\"./9.svg\": \"8IAX\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"V16h\";\n\n/***/ }),\n\n/***/ \"V3H0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/12.svg\";\n\n/***/ }),\n\n/***/ \"V5IG\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/4.svg\";\n\n/***/ }),\n\n/***/ \"Vc67\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-folder-item_1db62b69511ae5803aa0533267a60f18.css\";\n\n/***/ }),\n\n/***/ \"WHLm\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/13.png\";\n\n/***/ }),\n\n/***/ \"WgFx\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/double-circle-progress_d7d55eb0ce0d675df20ccd009671ab1e.css\";\n\n/***/ }),\n\n/***/ \"Wmao\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/week4_be107073bc11a3eda14ce6557a397430.html\";\n\n/***/ }),\n\n/***/ \"X7JN\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ObjectId_1 = __webpack_require__(\"j1Q3\");\r\nvar AnimatronProjectsSvc_1 = __webpack_require__(\"P9JW\");\r\nvar AdSvc = (function () {\r\n function AdSvc(enabled, $rootScope, ProjectInfoHeight) {\r\n if (enabled === void 0) { enabled = true; }\r\n if (ProjectInfoHeight === void 0) { ProjectInfoHeight = 124; }\r\n var _this = this;\r\n this.enabled = enabled;\r\n this.$rootScope = $rootScope;\r\n this.ProjectInfoHeight = ProjectInfoHeight;\r\n this.results = [];\r\n this.banners = AdSvc.chooseBanners();\r\n this.currentIdx = this.banners && _.random(this.banners.videoUrls.length - 1);\r\n this.currentPage = 0;\r\n this.$rootScope.$on('project:remove', function (e, pid) { return _this.results = _this.results.filter(function (p) { return p.id !== pid; }); });\r\n this.$rootScope.$on(AnimatronProjectsSvc_1.PROJECT_ADD, function (e, _a) {\r\n var project = _a.project;\r\n return _this.results.unshift(_this.wrapProject(project));\r\n });\r\n }\r\n AdSvc.prototype.adify = function (page) {\r\n var _this = this;\r\n var newRes = page.map(function (project) { return _this.wrapProject(project); });\r\n this.insertBanner(newRes);\r\n this.results = _.unique(this.results.concat(newRes), false, function (item) { return item.id; });\r\n };\r\n AdSvc.prototype.wrapProject = function (project) {\r\n return {\r\n id: project.id,\r\n project: project,\r\n width: AdSvc.getWidth(),\r\n height: project.computedHeight + this.ProjectInfoHeight\r\n };\r\n };\r\n AdSvc.prototype.getBanner = function () {\r\n return this.banners && this.banners.videoUrls[this.currentIdx++ % this.banners.videoUrls.length];\r\n };\r\n AdSvc.prototype.insertBanner = function (projects) {\r\n if (!this.enabled || this.currentPage++ % 2 !== 0)\r\n return;\r\n var banner = this.getBanner();\r\n if (banner) {\r\n var ad = {\r\n id: 'ad-' + ObjectId_1.ObjectId.get(),\r\n ad: true,\r\n videoUrl: banner,\r\n href: this.banners.href,\r\n width: AdSvc.getWidth(),\r\n height: (AdSvc.getWidth() / 290 * 242)\r\n };\r\n var position = _.random(projects.length - 1);\r\n projects.splice(position, 0, ad);\r\n }\r\n };\r\n AdSvc.getWidth = function () {\r\n if (!AdSvc.width) {\r\n AdSvc.width = options.handHeld ? AdSvc.mobileWidth() : AnimatronProjectsSvc_1.AnimatronProjects.computedWidth;\r\n }\r\n return AdSvc.width;\r\n };\r\n AdSvc.chooseBanners = function () {\r\n switch (options.user.subscriptionDetails.studio.displayName.toLowerCase()) {\r\n case 'guest':\r\n return AdSvc.SignupBanners;\r\n case 'free':\r\n case 'starter':\r\n return AdSvc.UpgradeBanners;\r\n default:\r\n return null;\r\n }\r\n };\r\n AdSvc.mobileWidth = function () {\r\n var projects = document.querySelector('.projects');\r\n return projects.offsetWidth || AnimatronProjectsSvc_1.AnimatronProjects.computedWidth;\r\n };\r\n return AdSvc;\r\n}());\r\nAdSvc.UpgradeBanners = {\r\n href: '/settings/subscription',\r\n videoUrls: [\r\n 'https://videos.animatron.com/banners/upgrade',\r\n 'https://videos.animatron.com/banners/upgrade_screens'\r\n ]\r\n};\r\nAdSvc.SignupBanners = {\r\n href: '/signup',\r\n videoUrls: [\r\n 'https://videos.animatron.com/banners/join_the_magic_banner',\r\n 'https://videos.animatron.com/banners/as_easy_as_that'\r\n ]\r\n};\r\nexports.AdSvc = AdSvc;\r\n\n\n/***/ }),\n\n/***/ \"XKv6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/week7_033b0421ff8c67019dd86e0ea4fe2bfd.html\";\n\n/***/ }),\n\n/***/ \"XMqc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/13.svg\";\n\n/***/ }),\n\n/***/ \"XaSg\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar ProjectPageCtrl = (function () {\r\n ProjectPageCtrl.$inject = [\"$scope\", \"$rootScope\", \"$timeout\", \"$http\", \"$stateParams\", \"$state\", \"$location\", \"$filter\", \"TranslateSvc\", \"TagsSvc\", \"AdminSvc\", \"httpProjectSvc\", \"ProjectAugmenter\", \"ProjectModalSvc\", \"BackendSvc\", \"AuthenticationSvc\", \"$q\"];\r\n function ProjectPageCtrl($scope, $rootScope, $timeout, $http, $stateParams, $state, $location, $filter, TranslateSvc, TagsSvc, AdminSvc, httpProjectSvc, ProjectAugmenter, \r\n // private upgradeOneProjectSvc: UpgradeOneProjectSvc,\r\n ProjectModalSvc, BackendSvc, AuthenticationSvc, $q) {\r\n var _this = this;\r\n this.$scope = $scope;\r\n this.$rootScope = $rootScope;\r\n this.$timeout = $timeout;\r\n this.$http = $http;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.$location = $location;\r\n this.$filter = $filter;\r\n this.TranslateSvc = TranslateSvc;\r\n this.TagsSvc = TagsSvc;\r\n this.AdminSvc = AdminSvc;\r\n this.httpProjectSvc = httpProjectSvc;\r\n this.ProjectAugmenter = ProjectAugmenter;\r\n this.ProjectModalSvc = ProjectModalSvc;\r\n this.BackendSvc = BackendSvc;\r\n this.AuthenticationSvc = AuthenticationSvc;\r\n this.$q = $q;\r\n this.animatronPublish = lazy_modules_1.animatronPublish;\r\n this.animatronProjectPreviewPicker = lazy_modules_1.animatronProjectPreviewPicker;\r\n this.animatronUpgrade = lazy_modules_1.animatronUpgrade;\r\n this.animatronHtml5Offline = lazy_modules_1.animatronHtml5Offline;\r\n this.projectDeferred = this.$q.defer();\r\n this.projectPromise = this.projectDeferred.promise;\r\n /** created in projectPageCanvasDirective */\r\n this.player = this.$q.resolve(null);\r\n this.editTagsMode = false;\r\n this.twoPlayers = this.$location.search().twoPlayers;\r\n var destroy = $scope.$watch(function () { return _this.$stateParams.projectId; }, function (id) {\r\n if (id) {\r\n _this.init();\r\n destroy();\r\n }\r\n });\r\n }\r\n ProjectPageCtrl.prototype.init = function () {\r\n var _this = this;\r\n this.$scope.projectExist = true;\r\n this.$scope.busy = true;\r\n this.$scope.staffUrl = this.$stateParams.staff;\r\n this.$scope.staffButtons = options.user.staff || this.$stateParams.staff;\r\n this.$scope.isProduction = true;\r\n this.$scope.authSvc = this.AuthenticationSvc;\r\n this.$rootScope.$watch('user', function (user) { return _this.$scope.user = user; });\r\n var headers = {};\r\n if (options.user.hash.length > 0) {\r\n headers['Animatron-Security-Token'] = options.user.hash;\r\n }\r\n this.$scope.tagPattern = options.user.staff ? '^[!0-9a-zA-Z _\\'\"-]+$' : '^[0-9a-zA-Z가-힣 _\\'\"-]+$';\r\n var handleProject = function (project) {\r\n _this.$scope.projectLoaded = true;\r\n _this.$scope.busy = false;\r\n if (!project || underscore_extensions_1.Utils.isApiError(project)) {\r\n _this.$scope.errorMsg = 'The requested project has not been found.';\r\n _this.$rootScope.wrapperClass += ' wrapper-not-found';\r\n _this.$scope.projectExist = false;\r\n _this.projectDeferred.reject(project);\r\n document.head.querySelector('[name=robots]').content = 'noindex';\r\n document.head.querySelector('[name=prerender-status-code]').content = '404';\r\n return;\r\n }\r\n _this.$rootScope.setTitle('project.title', project.name);\r\n _this.ProjectAugmenter(project);\r\n _this.project = _this.$scope.project = project;\r\n _this.projectDeferred.resolve(project);\r\n var rolez = options.user.subscriptionDetails.studio.features.rolez;\r\n _this.$scope.canEditTags = project.isOwner || (rolez.Admin && rolez.Admin.canCreateSuperTags);\r\n if (_this.$scope.canEditTags) {\r\n _this.$scope.tagsSvc = _this.TagsSvc;\r\n }\r\n var minWidth = 640;\r\n _this.projectSizes = _.chain([320, 640, 720, 1080, 1650, 1920, 2048, project.width])\r\n .uniq()\r\n .sortBy()\r\n .value();\r\n _this.sizes = { projectSize: _this.$location.search().width || _this.$location.search().w || Math.max(project.width, minWidth) };\r\n _this.$scope.adminSvc = new _this.AdminSvc(_this.$scope.project);\r\n };\r\n var projId = this.$stateParams.projectId;\r\n var findProj = function () {\r\n if (options.project && options.project.id === projId) {\r\n return options.project;\r\n }\r\n return _this.$stateParams.project; //nullable\r\n };\r\n var foundProject = findProj();\r\n if (foundProject) {\r\n this.$scope.$watch(function () { return _this.project; }, function (p) { return _.extend(_this.$stateParams.project, p); }, true);\r\n handleProject(foundProject);\r\n }\r\n if (!foundProject || !foundProject.author) {\r\n var url = options.apiDomain + '/project/' + projId;\r\n this.$http.get(url, { headers: headers })\r\n .then(function (r) { return handleProject(r.data); })\r\n .catch(handleProject);\r\n }\r\n this.$scope.showAddTagsBtn = function () { return _this.$scope.canEditTags && !_this.editTagsMode && _.isEmpty(_this.$scope.project.tags); };\r\n this.$scope.toggleEditMode = function () {\r\n _this.$timeout(function () {\r\n if (_this.$scope.canEditTags) {\r\n _this.editTagsMode = !_this.editTagsMode;\r\n setTimeout(function () {\r\n var tagsInput = document.querySelector('.tags input');\r\n if (_this.editTagsMode && tagsInput) {\r\n tagsInput.focus();\r\n }\r\n }, 0);\r\n }\r\n });\r\n };\r\n this.$scope.removeProject = function () { return _this.$timeout(function () {\r\n _this.httpProjectSvc\r\n .removeProject(_this.$scope.project.id)\r\n .then(function () {\r\n if (_this.ProjectModalSvc.projectModalShown) {\r\n _this.ProjectModalSvc.projectModalShown = false;\r\n }\r\n else {\r\n _this.$state.go('home');\r\n }\r\n });\r\n }); };\r\n var updateRequest = function (field, newVal) {\r\n return _this.BackendSvc.getServerUrl(_this.$scope.project).then(function (serverUrl) {\r\n var data = (_a = {}, _a[field] = newVal, _a);\r\n var u = serverUrl + (\"/project/update/meta/\" + _this.$scope.project.id);\r\n return _this.$http.put(u, data, { headers: headers });\r\n var _a;\r\n });\r\n };\r\n var setupFieldWatch = function (field, callback) {\r\n _this.$scope.$watch(\"project.\" + field, function (newVal, old) {\r\n if (_.isUndefined(newVal))\r\n return;\r\n var sanitized = _this.$filter('stripTags')(newVal);\r\n if (newVal === old || sanitized === old || _.isUndefined(old))\r\n return;\r\n updateRequest(field, sanitized);\r\n if (callback)\r\n callback(sanitized);\r\n });\r\n };\r\n setupFieldWatch('description');\r\n setupFieldWatch('name', function (val) {\r\n var projSelector = document.getElementById(_this.$scope.project.id);\r\n if (projSelector) {\r\n var nameSelector = angular.element(projSelector.querySelector('.project-name'));\r\n nameSelector.html(val);\r\n nameSelector.attr('title', val);\r\n }\r\n });\r\n this.$scope.duplicateProject = function () {\r\n _this.$scope.adminSvc.duplicateProject()\r\n .then(function () { return _.notification.showSuccess(_this.TranslateSvc.get('wave.video.copy.alert')); })\r\n .catch(function () { return _.notification.showError(_this.TranslateSvc.get('wave.video.copy.error')); });\r\n };\r\n };\r\n // TODO refactor, shown is not used, passing foreign scope is a sign of a bad design\r\n // public upgradeShown = (foreignScope: any, shown: boolean) => {\r\n // foreignScope.upgrade = {\r\n // project: true,\r\n // currentPrice: 500,\r\n // monthPrice: 500,\r\n // yearPrice: 2000,\r\n // foreverPrice: 5000,\r\n // projectId: this.$scope.project.id\r\n // };\r\n // foreignScope.upgradeModal = {chosen: true};\r\n // };\r\n //\r\n // setUpgradeProject(project: anm.Project) {\r\n // this.upgradeOneProjectSvc.setUpgradeProject(project);\r\n // }\r\n ProjectPageCtrl.prototype.restore = function () {\r\n var _this = this;\r\n this.$http.get(options.apiDomain + '/project/undelete/' + this.$scope.project.id, { headers: options.headers })\r\n .then(function () {\r\n _.notification.showSuccess(_this.$rootScope.t('project.restore.success'));\r\n });\r\n };\r\n return ProjectPageCtrl;\r\n}());\r\nexports.ProjectPageCtrl = ProjectPageCtrl;\r\nmodule_1.default.component('projectPage', {\r\n controllerAs: 'ProjectPageCtrl',\r\n controller: ProjectPageCtrl,\r\n templateUrl: __webpack_require__(\"Hgg4\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"Xo4n\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-credit-info_65a2b96ff0ce0b27464a8b568f35a763.css\";\n\n/***/ }),\n\n/***/ \"XrJM\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar LightLanding = (function () {\r\n function LightLanding() {\r\n }\r\n LightLanding.prototype.$onInit = function () {\r\n this.previewUrl = __webpack_require__(\"0zt+\")(\"./\" + this.data.preview);\r\n };\r\n return LightLanding;\r\n}());\r\nmodule_1.default.component('lightLanding', {\r\n bindings: {\r\n data: '<'\r\n },\r\n controller: LightLanding,\r\n templateUrl: __webpack_require__(\"FnqE\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"Xy+x\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/pagination_dd456ddf66f27a9f93bab28d06e78227.css\";\n\n/***/ }),\n\n/***/ \"Y8iI\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar SearchText = (function () {\r\n SearchText.$inject = [\"$element\"];\r\n function SearchText($element) {\r\n this.$element = $element;\r\n this.hideClassName = 'ng-hide';\r\n }\r\n SearchText.prototype.$onChanges = function (onChangesObj) {\r\n var _this = this;\r\n if (onChangesObj.searchText.isFirstChange())\r\n return;\r\n var el = this.$element[0];\r\n this.searchText = this.searchText.toLocaleLowerCase();\r\n if (this.searchElement) {\r\n this.elements = el.querySelectorAll(this.searchElement);\r\n var isElements = !!_.filter(this.elements, function (el) { return _this.check(el); }).length;\r\n this.hideEl(el, !isElements);\r\n }\r\n else {\r\n this.check(el);\r\n }\r\n };\r\n SearchText.prototype.check = function (el) {\r\n var text = el.innerText.toLocaleLowerCase();\r\n var matched = !this.searchText || text.includes(this.searchText);\r\n this.hideEl(el, !matched);\r\n return matched;\r\n };\r\n SearchText.prototype.hideEl = function (el, isHide) {\r\n if (isHide) {\r\n el.classList.add(this.hideClassName);\r\n }\r\n else {\r\n el.classList.remove(this.hideClassName);\r\n }\r\n };\r\n return SearchText;\r\n}());\r\nmodule_1.default.directive('searchText', function () { return ({\r\n restrict: 'A',\r\n bindToController: {\r\n searchText: '<',\r\n searchElement: '@?'\r\n },\r\n controller: SearchText\r\n}); });\r\n\n\n/***/ }),\n\n/***/ \"YAt/\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar SmoothScroll_1 = __webpack_require__(\"OSKg\");\r\nmodule_1.default.directive('scrollTo', function () {\r\n return function (scope, element, attrs) { return angular.element(function () {\r\n var scrollSvc = new SmoothScroll_1.SmoothScroll(document.getElementById(attrs.scrollTo));\r\n element.on('click', function () { return scrollSvc.scroll(); });\r\n }); };\r\n});\r\n\n\n/***/ }),\n\n/***/ \"YeFr\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar modalDialogDirective_1 = __webpack_require__(\"a8RW\");\r\nvar AffiliatePopup = (function () {\r\n AffiliatePopup.$inject = [\"$rootScope\", \"affiliateSvc\"];\r\n function AffiliatePopup($rootScope, affiliateSvc) {\r\n var _this = this;\r\n this.$rootScope = $rootScope;\r\n this.affiliateSvc = affiliateSvc;\r\n this.discount = 10;\r\n this.signupUrl = \"/\" + underscore_extensions_1.Utils.getProduct().toLowerCase() + \"/signup\";\r\n this.canShow = true;\r\n this.delayHandlerScroll = _.noop;\r\n this.affiliateSvc.isTapAffiliate() && this.showPopups();\r\n this.$rootScope.$on('$stateChangeSuccess', function (e, to) {\r\n _this.canShow = to.name !== 'wave-signup';\r\n _this.closeBigPopup();\r\n });\r\n }\r\n AffiliatePopup.prototype.closeBigPopup = function () {\r\n this.bigModalShown = true;\r\n this.affModalShow = false;\r\n };\r\n AffiliatePopup.prototype.closeBottomPopup = function () {\r\n document.removeEventListener('scroll', this.delayHandlerScroll);\r\n this.affModalBottomShow = false;\r\n };\r\n AffiliatePopup.prototype.showPopups = function () {\r\n var _this = this;\r\n setTimeout(function () { return _this.affModalShow = _this.canShow; }, 5 * 1000);\r\n var handlerScroll = function () {\r\n var _a = document.documentElement, scrollHeight = _a.scrollHeight, offsetHeight = _a.offsetHeight, scrollTop = _a.scrollTop;\r\n var isBottom = scrollTop >= scrollHeight - offsetHeight;\r\n _this.affModalBottomShow = isBottom && _this.bigModalShown && _this.canShow;\r\n if (!_this.affModalBottomShow) {\r\n modalDialogDirective_1.removeHtmlClass();\r\n }\r\n };\r\n this.delayHandlerScroll = _.debounce(handlerScroll, 50);\r\n document.addEventListener('scroll', this.delayHandlerScroll);\r\n };\r\n return AffiliatePopup;\r\n}());\r\nmodule_1.default.component('affiliatePopup', {\r\n controller: AffiliatePopup,\r\n templateUrl: __webpack_require__(\"svkI\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"Z9aV\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/2.png\";\n\n/***/ }),\n\n/***/ \"ZSj8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/template-pages-list-item_ba3ffd9eca0e5e431b6322cfd9b13f13.css\";\n\n/***/ }),\n\n/***/ \"ZawD\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/7.png\";\n\n/***/ }),\n\n/***/ \"Zkh2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/11.svg\";\n\n/***/ }),\n\n/***/ \"Zou0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nProjectAugmenter.$inject = [\"$filter\", \"AnimatronPreviews\"];\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nfunction ProjectAugmenter($filter, AnimatronPreviews) {\r\n var hasTag = function (tags, name) { return tags && tags.some(function (t) {\r\n return t.name.toLowerCase() === name.toLowerCase() && t.type === 'SUPER';\r\n }); };\r\n return function (project) {\r\n var rolez = options.user.rolez;\r\n var foreignRead = rolez.ForeignProjectPermissions && rolez.ForeignProjectPermissions.read;\r\n project.name = $filter('stripTags')(project.name);\r\n project.description = $filter('stripTags')(project.description);\r\n project.author = project.author || Object.assign({}, options.anonymous);\r\n project.owner = project.owner || Object.assign({}, options.anonymous);\r\n if (project.owner.accountTypes.STUDIO === 'Guest')\r\n Object.assign(project.owner, options.anonymous);\r\n project.likes = project.likes || [];\r\n project.comments = project.comments || [];\r\n project.collaborators = (project.collaborators || []).filter(function (c) {\r\n return !_.contains([project.author.username, project.owner.username], c.username);\r\n });\r\n project.isCollaborator = project.collaborators && project.collaborators.some(function (c) {\r\n return c.username === options.user.username;\r\n });\r\n project.isOwner = project.owner && options.user.username === project.owner.username;\r\n project.canEdit = project.editorReadAccess || project.isOwner || foreignRead;\r\n project.tags = project.tags || [];\r\n project.staffPicked = project.staffPicked || hasTag(project.tags, 'Staff Picks');\r\n project.hallOfFame = project.hallOfFame || hasTag(project.tags, 'Hall-of-Fame');\r\n project.contest = project.contest || project.tags.some(function (t) { return t.type === 'CONTEST'; });\r\n if (!rolez.Admin || !rolez.Admin.canCreateSuperTags) {\r\n project.tags = project.tags.filter(function (t) { return t.type === 'USER'; });\r\n }\r\n };\r\n}\r\nmodule_1.default.factory('ProjectAugmenter', ProjectAugmenter);\r\n\n\n/***/ }),\n\n/***/ \"Zx9N\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/comparison_a1e72fa591122522769c82176ace0f5a.html\";\n\n/***/ }),\n\n/***/ \"a+yw\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\");\r\nvar LandingPages_1 = __webpack_require__(\"EsqY\");\r\nvar RelatedPagesSwipable = (function () {\r\n RelatedPagesSwipable.$inject = [\"$element\", \"$state\", \"$q\"];\r\n function RelatedPagesSwipable($element, $state, $q) {\r\n this.$element = $element;\r\n this.$state = $state;\r\n this.$q = $q;\r\n this.pagesList = this.pagesList || LandingPages_1.default;\r\n this.currentUrl = $state.current.url;\r\n this.flicktyPromise = !options.handHeld ?\r\n $q(function (resolve) { return loadScripts([lazy_modules_1.flickityLib], resolve); }) :\r\n $q.reject(null);\r\n }\r\n RelatedPagesSwipable.prototype.$postLink = function () {\r\n var _this = this;\r\n this.flicktyPromise.then(function () {\r\n var Flickity = window.Flickity;\r\n new Flickity(_this.$element[0].firstChild, {\r\n cellSelector: '.help-item',\r\n prevNextButtons: true,\r\n wrapAround: true,\r\n resize: false,\r\n cellAlign: 'left',\r\n adaptiveHeight: true,\r\n setGallerySize: false,\r\n pageDots: false\r\n });\r\n });\r\n };\r\n RelatedPagesSwipable.prototype.getImageUrl = function (image) {\r\n return __webpack_require__(\"LCXO\")(\"./\" + image + \".png\");\r\n };\r\n return RelatedPagesSwipable;\r\n}());\r\nmodule_1.default.component('relatedPagesSwipable', {\r\n bindings: {\r\n pagesList: '\\n \\n \"\r\n});\r\nmodule_1.default.component('spinner', {\r\n template: (function () {\r\n return \"
\" + new Array(13).join('
') + \"
\";\r\n })()\r\n});\r\nmodule_1.default.component('loaderHorizontal', {\r\n template: \"
\\n
\\n
\\n
\\n
\"\r\n});\r\nmodule_1.default.directive('initScope', function () { return ({\r\n priority: 10000,\r\n link: function (scope, element, attrs) {\r\n var expressions = attrs.initScope.split(';');\r\n expressions.forEach(function (exp) {\r\n return scope.$watch(exp.split('=')[1], function () {\r\n return scope.$eval(attrs.initScope);\r\n });\r\n });\r\n }\r\n}); });\r\nmodule_1.default.directive('checkAutofill', [\"$interval\", function ($interval) {\r\n return function (scope, element) {\r\n var intervalId = $interval(function () {\r\n element.triggerHandler('input').triggerHandler('change').triggerHandler('keydown');\r\n }, 250);\r\n scope.$on('$destroy', function () { return $interval.cancel(intervalId); });\r\n };\r\n}]);\r\nvar model = function (name, link) {\r\n return module_1.default\r\n .directive(name, function () { return ({ require: 'ngModel', link: link }); });\r\n};\r\nmodel('uppercase', function (scope, element, attrs, ngModel) {\r\n ngModel.$parsers.unshift(function (input) { return input ? input.toUpperCase() : ''; });\r\n element[0].style.textTransform = 'uppercase';\r\n});\r\nmodel('stringToNumber', function (scope, element, attrs, ngModel) {\r\n ngModel.$parsers.push(function (value) { return '' + value; });\r\n ngModel.$formatters.push(function (value) { return parseInt(value, 10); });\r\n});\r\nmodule_1.default.directive('lazyIf', [\"$animate\", \"$compile\", function ($animate, $compile) {\r\n return {\r\n restrict: 'A',\r\n scope: false,\r\n terminal: true,\r\n priority: 1000,\r\n compile: function (element, attrs) {\r\n var content = element[0].innerHTML;\r\n element.html('');\r\n return function (scope) {\r\n var unwatch = scope.$watch(attrs.lazyIf, function (value) {\r\n if (value) {\r\n element.append(content);\r\n element.removeAttr('lazy-if');\r\n $animate.enter($compile(element)(scope), null, element).then(function () {\r\n unwatch();\r\n content = null;\r\n });\r\n }\r\n });\r\n };\r\n }\r\n };\r\n}]);\r\n//works only in ProjectPage\r\nmodule_1.default.directive('lazyButton', [\"$compile\", \"$parse\", \"$location\", \"$ocLazyLoad\", function ($compile, $parse, $location, $ocLazyLoad) {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n scope: {\r\n module: '=',\r\n onShown: '=?',\r\n onClick: '&?'\r\n },\r\n link: function (scope, element, attr) {\r\n scope.shown = false;\r\n scope.title = attr.btnName;\r\n scope.enable = _.once(function () {\r\n SpinnerSvc_1.default.show();\r\n scope.loading = true;\r\n var module = _.isFunction(scope.module) ? scope.module() : scope.module;\r\n module.then(function (m) { return $ocLazyLoad.load(m); }).then(function () {\r\n scope.$watch(function () { return scope.$parent.project; }, function (p) {\r\n p && $compile(element[0].querySelector('ng-transclude').firstElementChild)(scope);\r\n });\r\n scope.loading = false;\r\n SpinnerSvc_1.default.hide();\r\n });\r\n });\r\n if ($location.search()[attr.queryParam]) {\r\n scope.enable();\r\n scope.shown = true;\r\n }\r\n scope.show = function () {\r\n scope.enable();\r\n scope.shown = !scope.shown;\r\n if (_.isFunction(scope.onClick)) {\r\n scope.onClick();\r\n }\r\n if (_.isFunction(scope.onShown)) {\r\n scope.onShown(scope, scope.shown);\r\n }\r\n };\r\n },\r\n template: \"{{::title}}\\n \"\r\n };\r\n}]);\r\nmodule_1.default.filter('startFrom', function () { return function (input, start) { return input.slice(parseInt(start, 10)); }; });\r\nmodule_1.default.directive('focusMe', function () { return function (scope, element) { return new Promise(function () { return element[0].focus(); }); }; });\r\nmodule_1.default.directive('unFocusMe', function () { return function (scope, element, attr) {\r\n return scope.$watch(function () { return scope.$eval(attr.unFocusMe); }, function (a) { return a && element[0].blur(); });\r\n}; });\r\nmodule_1.default.directive('modelChange', function () { return ({\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, element, attr, ctrl) {\r\n scope.$watch(function () { return ctrl.$viewValue; }, function () { return scope.$eval(attr.modelChange); });\r\n }\r\n}); });\r\nmodule_1.default.directive('translateModel', [\"TranslateSvc\", function (TranslateSvc) { return ({\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, element, attr, ctrl) {\r\n ctrl.$formatters.push(function (s) { return s && s.split(',').map(function (v) { return TranslateSvc.get(v.trim()); }).join(', '); });\r\n }\r\n}); }]);\r\nmodule_1.default.directive('typer', [\"TranslateSvc\", function (TranslateSvc) { return ({\r\n scope: { typer: '=' },\r\n link: function (scope, element) {\r\n var n = scope.typer.length;\r\n var current = 0;\r\n var id = null;\r\n var changeText = function () {\r\n element[0].innerHTML = '';\r\n var letters = TranslateSvc.get(scope.typer[current++ % n] + '.tab').split('');\r\n var type = function () {\r\n element[0].innerHTML += letters.shift();\r\n if (letters.length > 0) {\r\n id = setTimeout(function () { return type(); }, 40 + Math.round(Math.random() * 30));\r\n }\r\n else {\r\n id = setTimeout(function () { return changeText(); }, 2000);\r\n }\r\n };\r\n type();\r\n };\r\n changeText();\r\n scope.$on('$destroy', function () { return clearTimeout(id); });\r\n }\r\n}); }]);\r\nmodule_1.default.directive('longText', [\"TranslateSvc\", function (TranslateSvc) { return ({\r\n scope: {\r\n longText: '=',\r\n longTextCb: '&?'\r\n },\r\n link: function (scope, element) {\r\n setTimeout(function () {\r\n var len = element.text().length;\r\n if (scope.longText < len)\r\n scope.longTextCb();\r\n }, 0);\r\n }\r\n}); }]);\r\n\n\n/***/ }),\n\n/***/ \"aOC8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar commonLinks_1 = __webpack_require__(\"eE93\");\r\nvar Header = (function () {\r\n Header.$inject = [\"AuthenticationSvc\"];\r\n function Header(AuthenticationSvc) {\r\n this.AuthenticationSvc = AuthenticationSvc;\r\n this.links = commonLinks_1.default('ANY');\r\n }\r\n return Header;\r\n}());\r\nmodule_1.default.component('anmHeader', {\r\n controller: Header,\r\n templateUrl: __webpack_require__(\"vuk9\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"aRaM\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/13.png\";\n\n/***/ }),\n\n/***/ \"aTCW\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-template-item_762ce2a6e30def2e734521c8664a3e90.css\";\n\n/***/ }),\n\n/***/ \"aY29\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"i18n/en_87696ae0114f8d6e743cd70f9deb2fb7.json\";\n\n/***/ }),\n\n/***/ \"acIy\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/project-upgrade_d4b39416723f49cc9c6d3f75e057570b.css\";\n\n/***/ }),\n\n/***/ \"aiHC\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-any-landing_17c145d0dce64b8255f445061e603ca1.css\";\n\n/***/ }),\n\n/***/ \"akEf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/blog.png\";\n\n/***/ }),\n\n/***/ \"anIN\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/3.svg\";\n\n/***/ }),\n\n/***/ \"awAO\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar intercom_1 = __webpack_require__(\"P28g\");\r\nvar CookieSettings_1 = __webpack_require__(\"wz+r\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nexports.USER_LOGOUT = 'user:logout';\r\nexports.USER_UPDATE_SUCCESS = 'website/user/updated';\r\nvar AuthenticationSvc = (function () {\r\n AuthenticationSvc.$inject = [\"$rootScope\", \"$state\", \"$q\", \"$timeout\", \"$location\", \"$log\", \"$cacheFactory\", \"analyticSvc\", \"affiliateSvc\", \"ipCookie\", \"LocalStorageSvc\", \"HttpSvc\", \"NewsSvc\"];\r\n function AuthenticationSvc($rootScope, $state, $q, $timeout, $location, $log, $cacheFactory, analyticSvc, affiliateSvc, ipCookie, LocalStorageSvc, HttpSvc, NewsSvc) {\r\n var _this = this;\r\n this.$rootScope = $rootScope;\r\n this.$state = $state;\r\n this.$q = $q;\r\n this.$timeout = $timeout;\r\n this.$location = $location;\r\n this.$log = $log;\r\n this.$cacheFactory = $cacheFactory;\r\n this.analyticSvc = analyticSvc;\r\n this.affiliateSvc = affiliateSvc;\r\n this.ipCookie = ipCookie;\r\n this.LocalStorageSvc = LocalStorageSvc;\r\n this.HttpSvc = HttpSvc;\r\n this.NewsSvc = NewsSvc;\r\n this.animatronCookieName = '_animatronauth';\r\n this.signupRedirectPropName = 'signupRedirectUrl';\r\n this.loginRedirect = '';\r\n this.loggedIn = false;\r\n this.loaded = false;\r\n this.loginRedirectMessage = '';\r\n this.signupModalShown = false;\r\n this.loginModalShown = false;\r\n this.lastUpdated = _.now();\r\n this.isCookieEnabled = _.once(function () {\r\n var enabled;\r\n var checkerCookieName = '__animatron_check_cookie_enabled';\r\n _this.ipCookie(checkerCookieName, 'isEnabled');\r\n enabled = 'isEnabled' === _this.ipCookie(checkerCookieName);\r\n _this.ipCookie.remove(checkerCookieName);\r\n return enabled;\r\n });\r\n $rootScope.updateUser = this.updateUser;\r\n $timeout(function () { return $rootScope.$on('$locationChangeStart', function () {\r\n _this.loginRedirect = '';\r\n _this.closeModals();\r\n }); });\r\n }\r\n AuthenticationSvc.prototype.setUserGlobals = function (user) {\r\n var getProduct = function () {\r\n var defaultProducts = 'studio';\r\n var products = ['studio', 'wave'];\r\n var currentProduct = underscore_extensions_1.Utils.getProduct().toLowerCase();\r\n return products.includes(currentProduct)\r\n ? currentProduct\r\n : defaultProducts;\r\n };\r\n user.accountTypes = {};\r\n user.rolez = user.subscriptionDetails[getProduct()].features.rolez;\r\n user.meta = user.meta || {};\r\n user.accountTypes.STUDIO = user.subscriptionDetails.studio.displayName;\r\n user.accountTypes.WAVE = user.subscriptionDetails.wave.displayName;\r\n user.isStripe = function () {\r\n var _a = user.subscriptionDetails[getProduct()], hasStripeSubscription = _a.hasStripeSubscription, hasStripeUser = _a.hasStripeUser;\r\n return hasStripeSubscription || hasStripeUser;\r\n };\r\n user.stripeKey = function () { return user.zoneCode === 'kr' ? options.stripePubKeyKr : options.stripePubKey; };\r\n this.$rootScope.user = user;\r\n options.user = user;\r\n options.headers = { 'Animatron-Security-Token': user.hash };\r\n this.NewsSvc.onUserChanged(user);\r\n this.loaded = true;\r\n return user;\r\n };\r\n ;\r\n AuthenticationSvc.prototype.setUser = function (user, token) {\r\n var _this = this;\r\n return this.$timeout(function () {\r\n _this.loggedIn = true;\r\n _this.setSubscription(user);\r\n user.hash = token;\r\n user.staff = user.subscriptionDetails.studio.name === 'Staff' || user.subscriptionDetails.studio.name === 'Jedi';\r\n user.anonymous = user.anonymous || user.username === 'Anonymous';\r\n if (user.staff) {\r\n options.debug = true;\r\n }\r\n if (window.Raven) {\r\n Raven.setUserContext({\r\n id: user.username,\r\n email: user.email,\r\n subscription: user.subscriptionDetails.studio.displayName\r\n });\r\n }\r\n _this.setUserGlobals(user);\r\n intercom_1.default.setUser(user);\r\n _this.$rootScope.$emit(exports.USER_UPDATE_SUCCESS);\r\n _this.LocalStorageSvc.set('user', user);\r\n return user;\r\n });\r\n };\r\n ;\r\n AuthenticationSvc.prototype.extendUser = function (newProps) {\r\n this.$rootScope.user = angular.merge(options.user, newProps);\r\n this.LocalStorageSvc.set('user', options.user);\r\n this.notifyUserChange();\r\n };\r\n ;\r\n AuthenticationSvc.prototype.setAnonymous = function () {\r\n var _this = this;\r\n this.loggedIn = false;\r\n intercom_1.default.setAnonymous();\r\n this.LocalStorageSvc.remove('user');\r\n return this.$timeout(function () { return _this.setUserGlobals(options.anonymous); });\r\n };\r\n ;\r\n AuthenticationSvc.prototype.getUser = function (update) {\r\n var userCookieIsPresent = this.ipCookie(this.animatronCookieName);\r\n var cachedUser = this.LocalStorageSvc.get('user');\r\n if (userCookieIsPresent && cachedUser) {\r\n if (update) {\r\n this.updateUser();\r\n }\r\n return this.setUser(cachedUser, cachedUser.hash);\r\n }\r\n else {\r\n return this.updateUser();\r\n }\r\n };\r\n ;\r\n AuthenticationSvc.prototype.updateUser = function () {\r\n var _this = this;\r\n var deferred = this.$q.defer();\r\n var token = this.ipCookie(this.animatronCookieName);\r\n options.headers = { 'Animatron-Security-Token': token || '' };\r\n if (token) {\r\n this.HttpSvc('profile').secureGet().then(function (r) { return r.data; }).then(function (user) {\r\n _this.lastUpdated = _.now();\r\n if (underscore_extensions_1.Utils.isUser(user)) {\r\n _this.setUser(user, token).then(deferred.resolve);\r\n }\r\n else {\r\n _this.clearCookies();\r\n deferred.resolve(_this.setAnonymous());\r\n }\r\n });\r\n }\r\n else {\r\n deferred.resolve(this.setAnonymous());\r\n }\r\n return deferred.promise;\r\n };\r\n ;\r\n AuthenticationSvc.prototype.login = function (secureUser, loginType) {\r\n var _this = this;\r\n if (loginType === void 0) { loginType = 'Email'; }\r\n try {\r\n this.ipCookie(this.animatronCookieName, secureUser.encryptedToken, CookieSettings_1.CookieSettings.get());\r\n this.ipCookie.remove('_animatron_activate_pending', CookieSettings_1.CookieSettings.get());\r\n }\r\n catch (e) {\r\n this.$log.error('Could not set cookie', e);\r\n }\r\n secureUser.userProfile.isNew = secureUser.isNew;\r\n secureUser.userProfile.social = loginType.toLowerCase() !== 'email';\r\n return this.setUser(secureUser.userProfile, secureUser.encryptedToken).then(function () {\r\n _this.closeModals();\r\n secureUser.isNew && _this.analyticSvc.signUpSocialComplete(loginType);\r\n _this.analyticSvc.login(secureUser.userProfile);\r\n _this.$rootScope.$emit('user:login');\r\n var thirdPartyRedirect = _this.LocalStorageSvc.remove('_animatron_redirect_onlogin');\r\n if (thirdPartyRedirect) {\r\n location.href = thirdPartyRedirect;\r\n }\r\n else if (_this.loginRedirect === 'none') {\r\n // do nothing\r\n }\r\n else if (_this.loginRedirect === 'back') {\r\n window.history.back();\r\n }\r\n else if (_this.loginRedirect) {\r\n _this.redirect(_this.loginRedirect);\r\n }\r\n else if (_this.shouldRedirect()) {\r\n _this.redirectAfterLogin();\r\n }\r\n return secureUser;\r\n });\r\n };\r\n ;\r\n AuthenticationSvc.prototype.loginWithCookie = function (token) {\r\n this.ipCookie(this.animatronCookieName, token, CookieSettings_1.CookieSettings.get());\r\n return this.updateUser();\r\n };\r\n ;\r\n AuthenticationSvc.prototype.loginOAuth = function (authToken, oauthService, product) {\r\n var _this = this;\r\n var deferred = this.$q.defer();\r\n var productUpper = product.toUpperCase();\r\n var animatronProduct = productUpper === 'ANY' ? 'STUDIO' : productUpper;\r\n var data = { '@class': 'oauth', authToken: authToken, oauthService: oauthService, product: animatronProduct };\r\n var headers = tslib_1.__assign({}, this.analyticSvc.getGaHeader(), this.affiliateSvc.getAffiliateHeader(), options.user.hash ? options.headers : {});\r\n this.HttpSvc('authenticate')\r\n .post(data, { headers: headers })\r\n .then(function (r) { return r.data; })\r\n .then(function (response) {\r\n if (underscore_extensions_1.Utils.isApiError(response)) {\r\n _.notification.showError(response.errorMessage);\r\n }\r\n else {\r\n _this.loginRedirect = 'none';\r\n _this.login(response, oauthService).then(deferred.resolve);\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n ;\r\n AuthenticationSvc.prototype.logout = function () {\r\n this.loginRedirect = '';\r\n this.loginRedirectMessage = '';\r\n this.clearCookies();\r\n this.analyticSvc.logout();\r\n this.$cacheFactory.get('$http').removeAll();\r\n this.$rootScope.$emit(exports.USER_LOGOUT);\r\n return this.setAnonymous();\r\n };\r\n ;\r\n AuthenticationSvc.prototype.logoutAndGoRoot = function () {\r\n var _this = this;\r\n var product = underscore_extensions_1.Utils.getProductByState(this.$state).toLowerCase();\r\n return this.logout().then(function () {\r\n if (_this.shouldRedirect()) {\r\n _this.$location.path(\"/\" + product + \"/landing\").replace();\r\n }\r\n else {\r\n window.history.back();\r\n }\r\n });\r\n };\r\n AuthenticationSvc.prototype.clearCookies = function () {\r\n this.ipCookie.remove(this.animatronCookieName, CookieSettings_1.CookieSettings.get());\r\n };\r\n ;\r\n AuthenticationSvc.prototype.notifyUserChange = function () {\r\n if (this.isCookieEnabled) {\r\n this.ipCookie('_animatronchanged', 'yes', CookieSettings_1.CookieSettings.get());\r\n }\r\n };\r\n ;\r\n AuthenticationSvc.prototype.toggleLoginModal = function (redirect, message) {\r\n if (message === void 0) { message = ''; }\r\n this.loginRedirect = redirect;\r\n this.loginRedirectMessage = message;\r\n this.loginModalShown = true;\r\n };\r\n ;\r\n AuthenticationSvc.prototype.openSignUpPage = function (redirect, params, options) {\r\n var product = underscore_extensions_1.Utils.getProductByState(this.$state).toLowerCase();\r\n this.$state.go(product + \"-signup\", params, options);\r\n if (redirect) {\r\n this.LocalStorageSvc.set(this.signupRedirectPropName, redirect);\r\n }\r\n };\r\n AuthenticationSvc.prototype.activateEmailRedirect = function () {\r\n var url = localStorage.getItem(this.signupRedirectPropName);\r\n if (url) {\r\n localStorage.removeItem(this.signupRedirectPropName);\r\n this.redirect(url);\r\n }\r\n return !!url;\r\n };\r\n AuthenticationSvc.prototype.openLogin = function () {\r\n var _this = this;\r\n if (options.handHeld) {\r\n this.$state.go('login').then(function () { return _this.$timeout(function () { return _this.loginRedirect = 'back'; }); });\r\n }\r\n else {\r\n this.toggleLoginModal();\r\n }\r\n };\r\n AuthenticationSvc.prototype.closeModals = function () {\r\n this.signupModalShown = false;\r\n this.loginModalShown = false;\r\n };\r\n ;\r\n AuthenticationSvc.prototype.setSubscription = function (user) {\r\n var wave;\r\n var studio;\r\n if (_.isArray(user.subscriptionDetails)) {\r\n user.subscriptionDetails.forEach(function (subscription) {\r\n if (subscription.product === 'WAVE') {\r\n wave = subscription;\r\n }\r\n else {\r\n studio = subscription;\r\n }\r\n });\r\n user.subscriptionDetails = Object.assign({}, { wave: wave, studio: studio });\r\n }\r\n };\r\n AuthenticationSvc.prototype.shouldRedirect = function () {\r\n return !this.$location.search().noRedirect && !this.LocalStorageSvc.get('noRedirect');\r\n };\r\n AuthenticationSvc.prototype.redirect = function (url) {\r\n underscore_extensions_1.Utils.redirect(url, this.$location);\r\n };\r\n AuthenticationSvc.prototype.redirectAfterLogin = function () {\r\n var product = underscore_extensions_1.Utils.getProductByState(this.$state);\r\n var state = product === 'WAVE' ? 'my-projects' : 'home';\r\n this.$state.go(state);\r\n };\r\n return AuthenticationSvc;\r\n}());\r\nexports.AuthenticationSvc = AuthenticationSvc;\r\nmodule_1.default.service('AuthenticationSvc', AuthenticationSvc);\r\n\n\n/***/ }),\n\n/***/ \"b+CF\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-company-info_7e055cf7a2face6a911c2fcb333a9559.css\";\n\n/***/ }),\n\n/***/ \"b/cW\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/newsWebsite_fe9b7f77e4da0de0bc55c6bd85b426a0.css\";\n\n/***/ }),\n\n/***/ \"b1d7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar ContentEditable = (function () {\r\n ContentEditable.$inject = [\"$scope\", \"$element\", \"$filter\"];\r\n function ContentEditable($scope, $element, $filter) {\r\n this.$scope = $scope;\r\n this.$element = $element;\r\n this.$filter = $filter;\r\n }\r\n ContentEditable.prototype.$onInit = function () {\r\n var _this = this;\r\n if (!this.ngModel)\r\n return;\r\n var read = function () {\r\n var text = _this.$filter('stripTags')(_this.$element.html()\r\n .replace(/
/g, '\\n')\r\n .replace(/ /g, ' ')\r\n .replace(/&/g, '&')\r\n .trim());\r\n _this.ngModel.$setViewValue(text);\r\n };\r\n this.ngModel.$render = function () { return _this.$element.html((_this.ngModel.$viewValue || '')); };\r\n underscore_extensions_1.Utils.scopedEvent('paste', this.$scope, function (e) {\r\n e.preventDefault();\r\n document.execCommand('insertText', false, e.clipboardData.getData('text/plain'));\r\n }, this.$element[0]);\r\n underscore_extensions_1.Utils.scopedEvent('keypress', this.$scope, function (e) {\r\n if (e.which === 13 && (!e.shiftKey && !e.altKey && !e.ctrlKey && !e.metaKey)) {\r\n e.preventDefault();\r\n // (document.activeElement).blur();\r\n }\r\n }, this.$element[0]);\r\n this.$element.on('blur keyup change', function () { return _this.$scope.$evalAsync(read); });\r\n };\r\n return ContentEditable;\r\n}());\r\nmodule_1.default.directive('contenteditable', function () { return ({\r\n restrict: 'A',\r\n bindToController: true,\r\n require: { ngModel: '?ngModel' },\r\n controller: ContentEditable\r\n}); });\r\n\n\n/***/ }),\n\n/***/ \"b6Iv\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/projects.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"bPu8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/4.svg\";\n\n/***/ }),\n\n/***/ \"bUzP\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar getCss = function (file) { return __webpack_require__(\"zwf9\")(\"./\" + file + '.less'); };\r\n// const html = (file: string) => require('../html/' + file + '.html');\r\n// const any = html('pricing');\r\n// console.log(any);\r\nvar queryParams = function () {\r\n return _.chain(location.search.slice(1).split('&'))\r\n .map(function (item) { return item.split('='); }).compact().object().value();\r\n};\r\nvar getAngular = function (lib) { return \"https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.7/angular-\" + lib + \".min.js\"; };\r\nexports.playerUrl = function () {\r\n var search = queryParams(), version = search.pVer || (location.host.indexOf('nightly') === 0 ? 'nightly' : 'latest'), min = true, dev = !true, salt = search.pSalt === 'on' ? new Date().getTime() : options.salt;\r\n if (search.pMin === 'off')\r\n min = false;\r\n if (search.pMin === 'on')\r\n min = true;\r\n if (search.pDev === 'off')\r\n dev = false;\r\n if (search.pDev === 'on')\r\n dev = true;\r\n var url = \"https://player\" + (dev ? '-dev' : '') + \".animatron.com/\" + version + \"/bundle/animatron\" + (min ? '.min' : '') + \".js?\" + salt;\r\n return search.pUrl || url;\r\n};\r\nexports.SimpleMDEUrl = 'https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js';\r\nexports.jqueryPaymentLib = [\r\n 'https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js',\r\n 'https://cdnjs.cloudflare.com/ajax/libs/jquery.payment/1.3.2/jquery.payment.min.js'\r\n];\r\nexports.masonryLib = 'https://cdnjs.cloudflare.com/ajax/libs/masonry/4.1.0/masonry.pkgd.min.js';\r\nexports.flickityLib = 'https://cdnjs.cloudflare.com/ajax/libs/flickity/2.0.10/flickity.pkgd.min.js';\r\nexports.twitterWidgetLib = 'https://platform.twitter.com/widgets.js';\r\nexports.fbSDKlib = \"https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.11&appId=\" + options.social.facebookApiKey;\r\nexports.linkedinLib = '//platform.linkedin.com/in.js';\r\nexports.googleLib = 'https://apis.google.com/js/platform.js';\r\nexports.tapfiliateLib = '//static.tapfiliate.com/tapfiliate.js';\r\nexports.animatronProject = [\r\n getCss('projects'),\r\n getCss('user-popup'),\r\n getCss('comments')\r\n];\r\nvar angularMessages = {\r\n name: 'ngMessages',\r\n files: [getAngular('messages')]\r\n};\r\nexports.datePicker = function () { return Promise.resolve({\r\n name: 'datePicker',\r\n files: ['https://cdn.rawgit.com/g00fy-/angular-datepicker/8c46855bed78ff7f0b523a794c7bdaabb558d081/dist/angular-datepicker.min.js',\r\n 'https://cdn.rawgit.com/g00fy-/angular-datepicker/8c46855bed78ff7f0b523a794c7bdaabb558d081/dist/angular-datepicker.min.css']\r\n}); };\r\n// Drag & Drop\r\nexports.animatronDragDropSvc = function () { return Promise.all([__webpack_require__.e/* require.ensure */(133).then((function () {\r\n __webpack_require__(\"EhqI\");\r\n return {\r\n name: 'animatronApp.DragDropSvc',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronDropZone = function () { return Promise.all([__webpack_require__.e/* require.ensure */(20).then((function () {\r\n __webpack_require__(\"RZfb\");\r\n return {\r\n name: 'animatronApp.DropZone',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronDragDropSvc()]); };\r\nexports.animatronDragItem = function () { return Promise.all([__webpack_require__.e/* require.ensure */(21).then((function () {\r\n __webpack_require__(\"9sVo\");\r\n return {\r\n name: 'animatronApp.DragItem',\r\n files: [getCss('drag-drop/drag-item')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronDragDropSvc()]); };\r\n// Drag & Drop end\r\n// subscription\r\nexports.animatronSubscriptionCouponMessagesSvc = function () { return Promise.all([__webpack_require__.e/* require.ensure */(19).then((function () {\r\n __webpack_require__(\"1Pgo\");\r\n return {\r\n name: 'animatronApp.SubscriptionCouponMessagesSvc',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionMessagesSvc = function () { return Promise.all([__webpack_require__.e/* require.ensure */(127).then((function () {\r\n __webpack_require__(\"Qd8D\");\r\n return {\r\n name: 'animatronApp.SubscriptionMessagesSvc',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionMessages = function () { return Promise.all([__webpack_require__.e/* require.ensure */(62).then((function () {\r\n __webpack_require__(\"usqb\");\r\n return {\r\n name: 'animatronApp.SubscriptionMessages',\r\n files: [getCss('settings/subscription/messages/subscription-messages')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronSubscriptionMessagesSvc()]); };\r\nexports.animatronSubscriptionSvc = function () { return Promise.all([__webpack_require__.e/* require.ensure */(128).then((function () {\r\n __webpack_require__(\"VXOl\");\r\n return {\r\n name: 'animatronApp.SubscriptionSvc',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionPredictPrice = function () { return Promise.all([__webpack_require__.e/* require.ensure */(16).then((function () {\r\n __webpack_require__(\"edCO\");\r\n return {\r\n name: 'animatronApp.SubscriptionPredictPriceContainer',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronSubscriptionSvc(),\r\n exports.animatronSubscriptionTotalPrice(),\r\n exports.animatronSubscriptionCreditInfo(),\r\n exports.animatronSubscriptionCouponMessagesSvc()\r\n]); };\r\nexports.animatronSubscriptionCreditInfo = function () { return Promise.all([__webpack_require__.e/* require.ensure */(57).then((function () {\r\n __webpack_require__(\"J3iv\");\r\n return {\r\n name: 'animatronApp.SubscriptionCreditInfo',\r\n files: [getCss('settings/subscription/subscription-credit-info')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionTotalPrice = function () { return Promise.all([__webpack_require__.e/* require.ensure */(52).then((function () {\r\n __webpack_require__(\"ZKt+\");\r\n return {\r\n name: 'animatronApp.SubscriptionTotalPrice',\r\n files: [getCss('settings/subscription/subscription-total-price')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionAlert = function () { return Promise.all([__webpack_require__.e/* require.ensure */(59).then((function () {\r\n __webpack_require__(\"urJj\");\r\n return {\r\n name: 'animatronApp.SubscriptionAlert',\r\n files: [getCss('settings/subscription/subscription-alert')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionBillingInfoForm = function () { return Promise.all([__webpack_require__.e/* require.ensure */(58).then((function () {\r\n __webpack_require__(\"lZW1\");\r\n return {\r\n name: 'animatronApp.SubscriptionBillingInfoForm',\r\n files: [getCss('settings/subscription/subscription-billing-info-form')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionCurrentPlan = function () { return Promise.all([__webpack_require__.e/* require.ensure */(56).then((function () {\r\n __webpack_require__(\"x7II\");\r\n return {\r\n name: 'animatronApp.SubscriptionCurrentPlan',\r\n files: [getCss('settings/subscription/subscription-current-plan')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionInvoiceHistoryTable = function () { return Promise.all([__webpack_require__.e/* require.ensure */(55).then((function () {\r\n __webpack_require__(\"c6SK\");\r\n return {\r\n name: 'animatronApp.SubscriptionInvoiceHistoryTable',\r\n files: [getCss('settings/subscription/subscription-invoice-history-table')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionTitle = function () { return Promise.all([__webpack_require__.e/* require.ensure */(53).then((function () {\r\n __webpack_require__(\"Rkgq\");\r\n return {\r\n name: 'animatronApp.SubscriptionTitle',\r\n files: [getCss('settings/subscription/subscription-title')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionPaymentDetailsEnterCard = function () { return Promise.all([__webpack_require__.e/* require.ensure */(61).then((function () {\r\n __webpack_require__(\"z6GX\");\r\n return {\r\n name: 'animatronApp.SubscriptionPaymentDetailsEnterCard',\r\n files: [getCss('settings/subscription/payment-details/subscription-payment-details-enter-card')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionPaymentDetailsWithCard = function () { return Promise.all([__webpack_require__.e/* require.ensure */(60).then((function () {\r\n __webpack_require__(\"mhCG\");\r\n return {\r\n name: 'animatronApp.SubscriptionPaymentDetailsWithCard',\r\n files: [getCss('settings/subscription/payment-details/subscription-payment-details-with-card')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionRouterModalsContainer = function () { return Promise.all([__webpack_require__.e/* require.ensure */(63).then((function () {\r\n __webpack_require__(\"wg/K\");\r\n return {\r\n name: 'animatronApp.SubscriptionRouterModalsContainer',\r\n files: [getCss('settings/subscription/containers/subscription-router-modals-container')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSubscriptionCurrentPlanContainer = function () { return Promise.all([__webpack_require__.e/* require.ensure */(65).then((function () {\r\n __webpack_require__(\"4THJ\");\r\n return {\r\n name: 'animatronApp.SubscriptionCurrentPlanContainer',\r\n files: [getCss('settings/subscription/containers/subscription-current-plan-container')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronSubscriptionAlert(),\r\n exports.animatronSubscriptionTitle(),\r\n exports.animatronSubscriptionCurrentPlan(),\r\n exports.animatronSubscriptionPaymentDetailsContainer()\r\n]); };\r\nexports.animatronSubscriptionInvoiceHistoryContainer = function () { return Promise.all([__webpack_require__.e/* require.ensure */(64).then((function () {\r\n __webpack_require__(\"ErNr\");\r\n return {\r\n name: 'animatronApp.SubscriptionInvoiceHistoryContainer',\r\n files: [getCss('settings/subscription/containers/subscription-invoice-history-container')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronSubscriptionTitle(),\r\n exports.animatronSubscriptionInvoiceHistoryTable()\r\n]); };\r\nexports.animatronSubscriptionPaymentDetailsContainer = function () { return Promise.all([__webpack_require__.e/* require.ensure */(17).then((function () {\r\n __webpack_require__(\"t1Tz\");\r\n return {\r\n name: 'animatronApp.SubscriptionPaymentDetailsContainer',\r\n files: [getCss('settings/subscription/containers/subscription-payment-details-container')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronSubscriptionTitle(),\r\n exports.animatronSubscriptionPaymentDetailsEnterCard(),\r\n exports.animatronSubscriptionPaymentDetailsWithCard()\r\n]); };\r\nexports.animatronSubscriptionPage = function () { return Promise.all([__webpack_require__.e/* require.ensure */(54).then((function () {\r\n __webpack_require__(\"tGmZ\");\r\n return {\r\n name: 'animatronApp.SubscriptionPage',\r\n files: [getCss('settings/subscription/subscription-page')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronUpgrade(),\r\n exports.animatronSubscriptionMessages(),\r\n exports.animatronSubscriptionCurrentPlanContainer(),\r\n exports.animatronSubscriptionPredictPrice(),\r\n exports.animatronSubscriptionRouterModalsContainer(),\r\n exports.animatronSubscriptionInvoiceHistoryContainer()\r\n]); };\r\n// subscription end\r\n// video folder\r\nexports.animatronVideoFolderMasonrySvc = function () { return Promise.all([__webpack_require__.e/* require.ensure */(135).then((function () {\r\n __webpack_require__(\"O2Zt\");\r\n return {\r\n name: 'animatronApp.VideoFolderMasonrySvc',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronVideoFolderMasonryItem = function () { return Promise.all([__webpack_require__.e/* require.ensure */(136).then((function () {\r\n __webpack_require__(\"f4EO\");\r\n return {\r\n name: 'animatronApp.VideoFolderMasonryItem',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronVideoFolderMasonrySvc()]); };\r\nexports.animatronVideoFolderMasonry = function () { return Promise.all([__webpack_require__.e/* require.ensure */(137).then((function () {\r\n __webpack_require__(\"vZ2w\");\r\n return {\r\n name: 'animatronApp.VideoFolderMasonry',\r\n files: [getCss('wave/folder/masonry/video-folder-masonry')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronVideoFolderMasonryItem(), exports.animatronVideoFolderMasonrySvc()]); };\r\nexports.animatronVideoFolderItem = function () { return Promise.all([__webpack_require__.e/* require.ensure */(40).then((function () {\r\n __webpack_require__(\"lUjf\");\r\n return {\r\n name: 'animatronApp.VideoFolderItem',\r\n files: [getCss('wave/folder/video-folder-item')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronVideoFolderBottom()]); };\r\nexports.animatronVideoFolderName = function () { return Promise.all([__webpack_require__.e/* require.ensure */(38).then((function () {\r\n __webpack_require__(\"r/wg\");\r\n return {\r\n name: 'animatronApp.VideoFolderName',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronVideoFolderControls = function () { return Promise.all([__webpack_require__.e/* require.ensure */(42).then((function () {\r\n __webpack_require__(\"oq3L\");\r\n return {\r\n name: 'animatronApp.VideoFolderControls',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronVideoFolderCreateNew()]); };\r\nexports.animatronVideoFolderCreateNew = function () { return Promise.all([__webpack_require__.e/* require.ensure */(41).then((function () {\r\n __webpack_require__(\"7Wv9\");\r\n return {\r\n name: 'animatronApp.VideoFolderCreateNew',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronVideoFolderBottom = function () { return Promise.all([__webpack_require__.e/* require.ensure */(43).then((function () {\r\n __webpack_require__(\"DZ4g\");\r\n return {\r\n name: 'animatronApp.VideoFolderBottom',\r\n files: [getCss('wave/folder/video-folder-bottom')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronVideoFolderMoveModalSvc(), exports.animatronVideoFolderName()]); };\r\nexports.animatronVideoFolderMoveModalSvc = function () { return Promise.all([__webpack_require__.e/* require.ensure */(138).then((function () {\r\n __webpack_require__(\"HgTl\");\r\n return {\r\n name: 'animatronApp.VideoFolderMoveModalSvc',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronVideoFolderMoveModal = function () { return Promise.all([__webpack_require__.e/* require.ensure */(39).then((function () {\r\n __webpack_require__(\"zMdu\");\r\n return {\r\n name: 'animatronApp.VideoFolderMoveModal',\r\n files: [getCss('wave/folder/video-folder-move-modal')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronVideoFolderTreeItem(),\r\n exports.animatronVideoFolderCreateNew(),\r\n exports.animatronVideoFolderMoveModalSvc()\r\n]); };\r\nexports.animatronVideoFolderBreadcrumb = function () { return Promise.all([__webpack_require__.e/* require.ensure */(11).then((function () {\r\n __webpack_require__(\"XyZS\");\r\n return {\r\n name: 'animatronApp.VideoFolderBreadcrumb',\r\n files: [getCss('wave/folder/video-folder-breadcrumb')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronVideoFolderTreeItem = function () { return Promise.all([__webpack_require__.e/* require.ensure */(37).then((function () {\r\n __webpack_require__(\"RPJj\");\r\n return {\r\n name: 'animatronApp.VideoFolderTreeItem',\r\n files: [getCss('wave/folder/video-folder-tree-item')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronVideoFolderMoveModalSvc(), exports.animatronVideoFolderName()]); };\r\n// video folder END\r\nexports.animatronTitleBlock = function () { return __webpack_require__.e/* require.ensure */(74).then((function () {\r\n __webpack_require__(\"dhyF\");\r\n return {\r\n name: 'animatronApp.titleBlock',\r\n files: [getCss('landing-template/components/title-block')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronRelationList = function () { return __webpack_require__.e/* require.ensure */(96).then((function () {\r\n __webpack_require__(\"z2E9\");\r\n return {\r\n name: 'animatronApp.relationList',\r\n files: [getCss('landing-template/components/relation-list')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronButtonStart = function () { return __webpack_require__.e/* require.ensure */(131).then((function () {\r\n __webpack_require__(\"q6tK\");\r\n return {\r\n name: 'animatronApp.buttonStart',\r\n files: []\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronBackground = function () { return __webpack_require__.e/* require.ensure */(132).then((function () {\r\n __webpack_require__(\"zqBo\");\r\n return {\r\n name: 'animatronApp.background',\r\n files: [getCss('landing-template/components/background')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronIconTextList = function () { return __webpack_require__.e/* require.ensure */(97).then((function () {\r\n __webpack_require__(\"ORkG\");\r\n return {\r\n name: 'animatronApp.iconTextList',\r\n files: [getCss('landing-template/components/icon-text-list')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\n// contest landing\r\nexports.animatronContestLandingSvc = function () { return __webpack_require__.e/* require.ensure */(149).then((function () {\r\n __webpack_require__(\"PKsc\");\r\n return {\r\n name: 'animatronApp.contestLandingSvc',\r\n files: []\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronChallengesList = function () { return Promise.all([__webpack_require__.e/* require.ensure */(121).then((function () {\r\n __webpack_require__(\"y4Cf\");\r\n return {\r\n name: 'animatronApp.challengesList',\r\n files: [getCss('contest-landing/challenges-list')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.wistiaPlayer(), exports.animatronContestGoChallengeButton(), exports.animatronContestLandingSvc()]); };\r\nexports.animatronJudgeItem = function () { return Promise.all([__webpack_require__.e/* require.ensure */(113).then((function () {\r\n __webpack_require__(\"wskZ\");\r\n return {\r\n name: 'animatronApp.judgeItem',\r\n files: [getCss('contest-landing/judge-item')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronContestGoChallengeButton = function () { return __webpack_require__.e/* require.ensure */(150).then((function () {\r\n __webpack_require__(\"Zu7e\");\r\n return {\r\n name: 'animatronApp.contestGoChallengeButton',\r\n files: []\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronCountdown = function () { return Promise.all([__webpack_require__.e/* require.ensure */(114).then((function () {\r\n __webpack_require__(\"RGc2\");\r\n return {\r\n name: 'animatronApp.countdown',\r\n files: [getCss('contest-landing/countdown')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronPreRegister = function () { return Promise.all([__webpack_require__.e/* require.ensure */(109).then((function () {\r\n __webpack_require__(\"sQxT\");\r\n return {\r\n name: 'animatronApp.preRegister',\r\n files: [getCss('contest-landing/pre-register')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronSpreadInSocial = function () { return Promise.all([__webpack_require__.e/* require.ensure */(107).then((function () {\r\n __webpack_require__(\"fKtD\");\r\n return {\r\n name: 'animatronApp.spreadInSocial',\r\n files: [getCss('contest-landing/spread-in')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronTwitterShareButton(),\r\n exports.animatronFacebookShareButton(),\r\n exports.animatronLinkedinShareButton(),\r\n exports.animatronGoogleShareButton(),\r\n]); };\r\nexports.animatronSponsorContactUs = function () { return Promise.all([__webpack_require__.e/* require.ensure */(108).then((function () {\r\n __webpack_require__(\"dn18\");\r\n return {\r\n name: 'animatronApp.sponsorContactUs',\r\n files: [getCss('contest-landing/sponsor-contact-us')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronTitleShadowBlock = function () { return Promise.all([__webpack_require__.e/* require.ensure */(106).then((function () {\r\n __webpack_require__(\"ZAlP\");\r\n return {\r\n name: 'animatronApp.titleShadowBlock',\r\n files: [getCss('contest-landing/title-shadow-block')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronParticipateSteps = function () { return Promise.all([__webpack_require__.e/* require.ensure */(111).then((function () {\r\n __webpack_require__(\"fhpi\");\r\n return {\r\n name: 'animatronApp.ParticipateSteps',\r\n files: [getCss('contest-landing/participate-steps')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronVideoImproveSteps = function () { return Promise.all([__webpack_require__.e/* require.ensure */(104).then((function () {\r\n __webpack_require__(\"OaVY\");\r\n return {\r\n name: 'animatronApp.videoImproveSteps',\r\n files: [getCss('contest-landing/video-improve-steps')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronBackground()]); };\r\nexports.animatronWinPrizesList = function () { return Promise.all([__webpack_require__.e/* require.ensure */(103).then((function () {\r\n __webpack_require__(\"6bK2\");\r\n return {\r\n name: 'animatronApp.winPrizesList',\r\n files: [getCss('contest-landing/win-prizes-list')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronWinPrizesSection = function () { return Promise.all([__webpack_require__.e/* require.ensure */(102).then((function () {\r\n __webpack_require__(\"JOsm\");\r\n return {\r\n name: 'animatronApp.winPrizesSection',\r\n files: [getCss('contest-landing/win-prizes-section')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleShadowBlock(), exports.animatronContestLandingSvc()]); };\r\nexports.animatronCountdownSection = function () { return Promise.all([__webpack_require__.e/* require.ensure */(115).then((function () {\r\n __webpack_require__(\"kts8\");\r\n return {\r\n name: 'animatronApp.countdownSection',\r\n files: [getCss('contest-landing/countdown-section')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronCountdown(), exports.animatronTitleBlock(), exports.animatronBackground()]); };\r\nexports.animatronContestDaysTopSection = function () { return Promise.all([__webpack_require__.e/* require.ensure */(119).then((function () {\r\n __webpack_require__(\"KAAZ\");\r\n return {\r\n name: 'animatronApp.contestDaysTopSection',\r\n files: [getCss('contest-landing/contest-days-top-section')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronBackground(), exports.animatronContestGoChallengeButton()]); };\r\nexports.animatronContactUsSection = function () { return Promise.all([__webpack_require__.e/* require.ensure */(120).then((function () {\r\n __webpack_require__(\"ooS/\");\r\n return {\r\n name: 'animatronApp.contactUsSection',\r\n files: [getCss('contest-landing/contact-us-section')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronBackground(),\r\n exports.animatronPreRegister(),\r\n exports.animatronSponsorContactUs(),\r\n exports.animatronSpreadInSocial()\r\n]); };\r\nexports.animatronPreRegisterSection = function () { return Promise.all([__webpack_require__.e/* require.ensure */(110).then((function () {\r\n __webpack_require__(\"WCe7\");\r\n return {\r\n name: 'animatronApp.preRegisterSection',\r\n files: [getCss('contest-landing/pre-register-section')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronPreRegister(), exports.animatronBackground()]); };\r\nexports.animatronMediaSponsorsSection = function () { return Promise.all([__webpack_require__.e/* require.ensure */(112).then((function () {\r\n __webpack_require__(\"4CKY\");\r\n return {\r\n name: 'animatronApp.mediaSponsorsSection',\r\n files: [getCss('contest-landing/media-sponsors-section')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronChallengesListSection = function () { return Promise.all([__webpack_require__.e/* require.ensure */(122).then((function () {\r\n __webpack_require__(\"eI7p\");\r\n return {\r\n name: 'animatronApp.challengesListSection',\r\n files: [getCss('contest-landing/challenges-list-section')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronTitleShadowBlock(),\r\n exports.animatronChallengesList(),\r\n exports.wistiaPlayer(),\r\n exports.animatronTitleShadowBlock(),\r\n exports.animatronContestLandingSvc(),\r\n exports.animatronContestGoChallengeButton(),\r\n]); };\r\nexports.animatronContestTextVideoSection = function () { return Promise.all([__webpack_require__.e/* require.ensure */(116).then((function () {\r\n __webpack_require__(\"n7MZ\");\r\n return {\r\n name: 'animatronApp.contestTextVideoSection',\r\n files: [getCss('contest-landing/contest-text-video-section')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.wistiaPlayer(), exports.animatronContestGoChallengeButton()]); };\r\nexports.animatronVideoImproveStepsSection = function () { return Promise.all([__webpack_require__.e/* require.ensure */(105).then((function () {\r\n __webpack_require__(\"Eaz9\");\r\n return {\r\n name: 'animatronApp.videoImproveStepsSection',\r\n files: [getCss('contest-landing/video-improve-steps-section')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronVideoImproveSteps(), exports.animatronTitleShadowBlock(), exports.animatronBackground(), exports.wistiaPlayer()]); };\r\nexports.animatronContestLanding = function () { return Promise.all([__webpack_require__.e/* require.ensure */(117).then((function () {\r\n __webpack_require__(\"2hMW\");\r\n return {\r\n name: 'animatronApp.contestLanding',\r\n files: [getCss('contest-landing/contest-landing')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronWinPrizesSection(),\r\n exports.animatronCountdownSection(),\r\n exports.animatronContactUsSection(),\r\n exports.animatronContestLandingSvc(),\r\n exports.animatronPreRegisterSection(),\r\n exports.animatronMediaSponsorsSection(),\r\n exports.animatronChallengesListSection(),\r\n exports.animatronContestDaysTopSection(),\r\n exports.animatronContestTextVideoSection(),\r\n exports.animatronVideoImproveStepsSection()\r\n]); };\r\nexports.animatronContestDays = function () { return Promise.all([__webpack_require__.e/* require.ensure */(118).then((function () {\r\n __webpack_require__(\"NIBi\");\r\n return {\r\n name: 'animatronApp.contestDays',\r\n files: [getCss('contest-landing/contest-days')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronJudgeItem(),\r\n exports.animatronWinPrizesSection(),\r\n exports.animatronContactUsSection(),\r\n exports.animatronParticipateSteps(),\r\n exports.animatronPreRegisterSection(),\r\n exports.animatronMediaSponsorsSection(),\r\n exports.animatronContestDaysTopSection(),\r\n exports.animatronContestTextVideoSection(),\r\n]); };\r\n// END contest components\r\nexports.animatronDifferentDevices = function () { return Promise.all([__webpack_require__.e/* require.ensure */(99).then((function () {\r\n __webpack_require__(\"4ON/\");\r\n return {\r\n name: 'animatronApp.differentDevices',\r\n files: [getCss('landing-template/components/different-devices')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronTemplatePagesListItem = function () { return Promise.all([__webpack_require__.e/* require.ensure */(77).then((function () {\r\n __webpack_require__(\"b1je\");\r\n return {\r\n name: 'animatronApp.templatePagesListItem',\r\n files: [getCss('landing-template/components/template-pages-list-item')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronBackground()]); };\r\nexports.animatronTemplatePagesList = function () { return Promise.all([__webpack_require__.e/* require.ensure */(76).then((function () {\r\n __webpack_require__(\"TDxI\");\r\n return {\r\n name: 'animatronApp.templatePagesList',\r\n files: [getCss('landing-template/components/template-pages-list')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTemplatePagesListItem()]); };\r\nexports.animatronSectionTemplatePagesList = function () { return Promise.all([__webpack_require__.e/* require.ensure */(85).then((function () {\r\n __webpack_require__(\"lMON\");\r\n return {\r\n name: 'animatronApp.sectionTemplatePagesList',\r\n files: [getCss('landing-template/components/sections/section-template-pages-list')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTemplatePagesList()]); };\r\nexports.animatronSectionBackgroundText = function () { return Promise.all([__webpack_require__.e/* require.ensure */(95).then((function () {\r\n __webpack_require__(\"bep0\");\r\n return {\r\n name: 'animatronApp.sectionBackgroundText',\r\n files: [getCss('landing-template/components/sections/section-background-text')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronBackground()]); };\r\nexports.animatronSectionBitmap = function () { return Promise.all([__webpack_require__.e/* require.ensure */(94).then((function () {\r\n __webpack_require__(\"YS9K\");\r\n return {\r\n name: 'animatronApp.sectionBitmap',\r\n files: [getCss('landing-template/components/sections/section-bitmap')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock()]); };\r\nexports.animatronSectionFeedback = function () { return Promise.all([__webpack_require__.e/* require.ensure */(90).then((function () {\r\n __webpack_require__(\"rZo5\");\r\n return {\r\n name: 'animatronApp.sectionFeedback',\r\n files: [getCss('landing-template/components/sections/section-feedback')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronFeedback()]); };\r\nexports.animatronSectionHorizontalTextVideo = function () { return Promise.all([__webpack_require__.e/* require.ensure */(88).then((function () {\r\n __webpack_require__(\"lsCU\");\r\n return {\r\n name: 'animatronApp.sectionHorizontalTextVideo',\r\n files: [getCss('landing-template/components/sections/section-horizontal-text-video')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronButtonStart(), exports.wistiaPlayer()]); };\r\nexports.animatronSectionHorizontalImageText = function () { return Promise.all([__webpack_require__.e/* require.ensure */(89).then((function () {\r\n __webpack_require__(\"4iGy\");\r\n return {\r\n name: 'animatronApp.sectionHorizontalImageText',\r\n files: [getCss('landing-template/components/sections/section-horizontal-image-text')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTextBlock(), exports.animatronButtonStart(), exports.animatronBackground()]); };\r\nexports.animatronSectionVerticalTextVideo = function () { return Promise.all([__webpack_require__.e/* require.ensure */(83).then((function () {\r\n __webpack_require__(\"oprM\");\r\n return {\r\n name: 'animatronApp.sectionVerticalTextVideo',\r\n files: [getCss('landing-template/components/sections/section-vertical-text-video')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronBackground(), exports.animatronButtonStart(), exports.wistiaPlayer()]); };\r\nexports.animatronSectionDifferentDevices = function () { return Promise.all([__webpack_require__.e/* require.ensure */(91).then((function () {\r\n __webpack_require__(\"6p0q\");\r\n return {\r\n name: 'animatronApp.sectionDifferentDevices',\r\n files: [getCss('landing-template/components/sections/section-different-devices')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronBackground(), exports.animatronDifferentDevices(), exports.animatronButtonStart()]); };\r\nexports.animatronSectionCompanyInfo = function () { return Promise.all([__webpack_require__.e/* require.ensure */(93).then((function () {\r\n __webpack_require__(\"s9xa\");\r\n return {\r\n name: 'animatronApp.sectionCompanyInfo',\r\n files: [getCss('landing-template/components/sections/section-company-info')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronBackground(), exports.animatronIconTextList()]); };\r\nexports.animatronSectionVideoStatistics = function () { return Promise.all([__webpack_require__.e/* require.ensure */(80).then((function () {\r\n __webpack_require__(\"QxZD\");\r\n return {\r\n name: 'animatronApp.sectionVideoStatistics',\r\n files: [getCss('landing-template/components/sections/section-video-statistics')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronDoubleCircleProgress()]); };\r\nexports.animatronSectionCompanyQuote = function () { return Promise.all([__webpack_require__.e/* require.ensure */(92).then((function () {\r\n __webpack_require__(\"ukZq\");\r\n return {\r\n name: 'animatronApp.sectionCompanyQuote',\r\n files: [getCss('landing-template/components/sections/section-company-quote')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronBackground()]); };\r\nexports.animatronSectionTextAside = function () { return Promise.all([__webpack_require__.e/* require.ensure */(84).then((function () {\r\n __webpack_require__(\"AjAC\");\r\n return {\r\n name: 'animatronApp.sectionTextAside',\r\n files: [getCss('landing-template/components/sections/section-text-aside')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronRelationList()]); };\r\nexports.animatronSectionSignUp = function () { return Promise.all([__webpack_require__.e/* require.ensure */(86).then((function () {\r\n __webpack_require__(\"Tzrl\");\r\n return {\r\n name: 'animatronApp.sectionSignUp',\r\n files: [getCss('landing-template/components/sections/section-sign-up')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronBackground(), exports.animatronSignUpBlock(), exports.animatronTextBlock()]); };\r\nexports.animatronSectionLogoVideoSignUp = function () { return Promise.all([__webpack_require__.e/* require.ensure */(87).then((function () {\r\n __webpack_require__(\"6vNO\");\r\n return {\r\n name: 'animatronApp.sectionLogoVideoSignUp',\r\n files: [getCss('landing-template/components/sections/section-logo-video-sign-up')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTextBlock(), exports.animatronBackground(), exports.animatronSignUpBlock()]); };\r\nexports.animatronSectionVideoSignUp = function () { return Promise.all([__webpack_require__.e/* require.ensure */(81).then((function () {\r\n __webpack_require__(\"ToFj\");\r\n return {\r\n name: 'animatronApp.sectionVideoSignUp',\r\n files: [getCss('landing-template/components/sections/section-video-sign-up')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronBackground(), exports.animatronSignUpBlock(), exports.scrollButton()]); };\r\nexports.animatronSectionVideoTime = function () { return Promise.all([__webpack_require__.e/* require.ensure */(78).then((function () {\r\n __webpack_require__(\"4lUF\");\r\n return {\r\n name: 'animatronApp.sectionVideoTime',\r\n files: [getCss('landing-template/components/sections/section-video-time')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronBackground(), exports.animatronButtonStart(), exports.wistiaPlayer(), exports.scrollButton()]); };\r\nexports.animatronSectionVideoGallery = function () { return Promise.all([__webpack_require__.e/* require.ensure */(82).then((function () {\r\n __webpack_require__(\"V7aM\");\r\n return {\r\n name: 'animatronApp.sectionVideoGallery',\r\n files: [getCss('landing-template/components/sections/section-video-gallery')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronVideoGallery(), exports.animatronButtonStart()]); };\r\nexports.animatronSectionVideoSteps = function () { return Promise.all([__webpack_require__.e/* require.ensure */(79).then((function () {\r\n __webpack_require__(\"Th7s\");\r\n return {\r\n name: 'animatronApp.sectionVideoSteps',\r\n files: [getCss('landing-template/components/sections/section-video-steps')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.videoSteps(), exports.animatronButtonStart()]); };\r\nexports.animatronLandingTemplate = function () { return Promise.all([__webpack_require__.e/* require.ensure */(73).then((function () {\r\n __webpack_require__(\"/vY6\");\r\n return {\r\n name: 'animatronApp.landingTemplate',\r\n files: [\r\n getCss('landing-template/landing-template')\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.animatronSectionTemplatePagesList(),\r\n exports.animatronSectionBackgroundText(),\r\n exports.animatronSectionLogoVideoSignUp(),\r\n exports.animatronSectionVideoSignUp(),\r\n exports.animatronSectionVideoStatistics(),\r\n exports.animatronSectionVideoTime(),\r\n exports.animatronSectionBitmap(),\r\n exports.animatronSectionHorizontalTextVideo(),\r\n exports.animatronSectionCompanyInfo(),\r\n exports.animatronSectionHorizontalImageText(),\r\n exports.animatronSectionTextAside(),\r\n exports.animatronSectionCompanyQuote(),\r\n exports.animatronSectionDifferentDevices(),\r\n exports.animatronSectionVerticalTextVideo(),\r\n exports.animatronSectionVideoGallery(),\r\n exports.animatronSectionSignUp(),\r\n exports.animatronSectionFeedback(),\r\n exports.animatronSectionVideoSteps()\r\n]); };\r\nvar userInfoForm = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(50).then((function () {\r\n __webpack_require__(\"bVBH\");\r\n resolve([{\r\n name: 'animatronApp.userInfoForm',\r\n files: [\r\n getCss('user-info-form'),\r\n getCss('dropdown-menu'),\r\n getCss('newsWebsite'),\r\n getCss('_checkbox')\r\n ]\r\n }, angularMessages]);\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.bgVideoSlider = function () { return Promise.all([__webpack_require__.e/* require.ensure */(125).then((function () {\r\n __webpack_require__(\"YCCM\");\r\n return {\r\n name: 'animatronApp.bgVideoSlider',\r\n files: []\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.bgVideo()]); };\r\nexports.modalVideoPlayer = function () { return Promise.all([__webpack_require__.e/* require.ensure */(71).then((function () {\r\n __webpack_require__(\"BvLB\");\r\n return {\r\n name: 'animatronApp.modalVideoPlayer',\r\n files: [getCss('modal-video-player')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.videoPlayer()]); };\r\nexports.mainLanding = function () { return Promise.all([__webpack_require__.e/* require.ensure */(72).then((function () {\r\n __webpack_require__(\"Q8Cs\");\r\n return {\r\n name: 'animatronApp.mainLanding',\r\n files: [\r\n getCss('landing/any-landing'),\r\n options.handHeld ? getCss('mobile/m-any-landing') : ''\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.tagsInput = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(126).then((function () {\r\n __webpack_require__(\"Z3Ae\");\r\n resolve({ name: 'ngTagsInput', files: [getCss('ng-tags-input')] });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.scrollFixedElement = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(142).then((function () {\r\n __webpack_require__(\"i7SO\");\r\n resolve({ name: 'animatronApp.scrollFixedElement', files: [] });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.waveUserPage = function () { return Promise.all([__webpack_require__.e/* require.ensure */(24).then((function () {\r\n __webpack_require__(\"JiMV\");\r\n return {\r\n name: 'animatronApp.waveUserPage',\r\n files: [getCss('wave/wave-user-page')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.waveProjects(), exports.animatronVideoFolderBreadcrumb()]); };\r\nexports.bgVideo = function () { return __webpack_require__.e/* require.ensure */(124).then((function () {\r\n __webpack_require__(\"B8SX\");\r\n return {\r\n name: 'animatronApp.bgVideo',\r\n files: [getCss('bg-video')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.scrollButton = function () { return __webpack_require__.e/* require.ensure */(143).then((function () {\r\n __webpack_require__(\"FJil\");\r\n return {\r\n name: 'animatronApp.scrollButton',\r\n files: [getCss('scroll-button')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.ytPlayer = function () { return __webpack_require__.e/* require.ensure */(134).then((function () {\r\n __webpack_require__(\"JOH8\");\r\n return {\r\n name: 'animatronApp.ytPlayer',\r\n files: []\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.videoPlayer = function () { return __webpack_require__.e/* require.ensure */(47).then((function () {\r\n __webpack_require__(\"lOrt\");\r\n return {\r\n name: 'animatronApp.videoPlayer',\r\n files: [getCss('video-player')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.wistiaPlayer = function () { return __webpack_require__.e/* require.ensure */(23).then((function () {\r\n __webpack_require__(\"CTLc\");\r\n return {\r\n name: 'animatronApp.wistiaPlayer',\r\n files: [getCss('wistia-player')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.videoSlider = function () { return Promise.all([__webpack_require__.e/* require.ensure */(46).then((function () {\r\n __webpack_require__(\"zMz2\");\r\n return {\r\n name: 'animatronApp.videoSlider',\r\n files: [getCss('video-slider')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.videoPlayer()]); };\r\nvar ticker = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(129).then((function () {\r\n __webpack_require__(\"dSeo\");\r\n resolve({ name: 'animatronApp.ticker', files: [] });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nvar animatronRandomNumber = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(48).then((function () {\r\n __webpack_require__(\"EgkG\");\r\n resolve({\r\n name: 'animatronApp.randomFact',\r\n files: [getCss('settings/random-fact')]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.animatronUpgrade = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(3).then((function () {\r\n try {\r\n angular.module('animatronApp.settings');\r\n }\r\n catch (e) {\r\n angular.module('animatronApp.settings', []);\r\n }\r\n __webpack_require__(\"4X5L\");\r\n __webpack_require__(\"Lb+m\");\r\n __webpack_require__(\"ipbz\");\r\n __webpack_require__(\"gojZ\");\r\n __webpack_require__(\"rCIs\");\r\n __webpack_require__(\"Pzqj\");\r\n __webpack_require__(\"izVX\");\r\n __webpack_require__(\"5T+r\");\r\n __webpack_require__(\"BYam\");\r\n __webpack_require__(\"WF19\");\r\n __webpack_require__(\"YMs+\");\r\n resolve([{\r\n name: 'animatronApp.settings',\r\n files: [getCss('settings')]\r\n }, { name: 'animatronApp.planAnimation', files: [] }]);\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronSubscriptionSvc()]); };\r\nexports.animatronSettings = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(4).then((function () {\r\n try {\r\n angular.module('animatronApp.settings');\r\n }\r\n catch (e) {\r\n angular.module('animatronApp.settings', []);\r\n }\r\n __webpack_require__(\"ltG4\");\r\n __webpack_require__(\"JDcb\");\r\n __webpack_require__(\"po33\");\r\n __webpack_require__(\"bG6I\");\r\n __webpack_require__(\"a33m\");\r\n __webpack_require__(\"jPbo\");\r\n __webpack_require__(\"cs9A\");\r\n resolve({\r\n name: 'animatronApp.settings',\r\n files: [\r\n getCss('tabs'),\r\n getCss('newsWebsite')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), animatronRandomNumber(), exports.animatronUpgrade(), userInfoForm(), exports.animatronSubscriptionTitle()]); };\r\nexports.animatronTutorial = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(7).then((function () {\r\n angular.module('animatronApp.tutorial', []);\r\n __webpack_require__(\"plSH\");\r\n __webpack_require__(\"zaE3\");\r\n __webpack_require__(\"QEkP\");\r\n __webpack_require__(\"f/MV\");\r\n __webpack_require__(\"KtYt\");\r\n __webpack_require__(\"Mc/u\");\r\n __webpack_require__(\"BGMK\");\r\n resolve({\r\n name: 'animatronApp.tutorial',\r\n files: [\r\n getCss('tutorial'),\r\n getCss('tabs'),\r\n getCss('search')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.animatronSpecialUpgrade = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(49).then((function () {\r\n try {\r\n angular.module('animatronApp.settings');\r\n }\r\n catch (e) {\r\n angular.module('animatronApp.settings', []);\r\n }\r\n __webpack_require__(\"i470\");\r\n resolve({\r\n name: 'animatronApp.special-upgrade',\r\n files: [getCss('special-upgrade')]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronUpgrade(), exports.animatronSubscriptionPaymentDetailsContainer()]); };\r\nexports.animatronFeedback = function () { return __webpack_require__.e/* require.ensure */(5).then((function () {\r\n try {\r\n angular.module('animatronApp.feedback');\r\n }\r\n catch (e) {\r\n angular.module('animatronApp.feedback', []);\r\n }\r\n __webpack_require__(\"HaCt\");\r\n __webpack_require__(\"JKrW\");\r\n __webpack_require__(\"euAE\");\r\n __webpack_require__(\"/6Js\");\r\n __webpack_require__(\"tsWW\");\r\n return {\r\n name: 'animatronApp.feedback',\r\n files: [getCss('feedback-slider')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronEdu = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(22).then((function () {\r\n angular.module('animatronApp.education', []);\r\n __webpack_require__(\"SI0D\");\r\n __webpack_require__(\"Penj\");\r\n __webpack_require__(\"gsWG\");\r\n resolve({\r\n name: 'animatronApp.education',\r\n files: [\r\n getCss('edu'),\r\n getCss('signup')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronTutorial()]); };\r\nexports.animatronPrivacy = [getCss('tutorial')];\r\nexports.animatronTermsServices = [getCss('tutorial')];\r\nexports.animatronPricing = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(8).then((function () {\r\n angular.module('animatronApp.pricing', []);\r\n __webpack_require__(\"5721\");\r\n __webpack_require__(\"WF19\");\r\n resolve([{\r\n name: 'animatronApp.pricing',\r\n files: [\r\n getCss('pricing'),\r\n options.handHeld ? getCss('mobile/m-landing-bottom') : ''\r\n ]\r\n }, { name: 'animatronApp.planAnimation', files: [] }]);\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronFeedback(), exports.animatronSubscriptionPage()]); };\r\nexports.wavePricing = function () { return Promise.all([__webpack_require__.e/* require.ensure */(28).then((function () {\r\n angular.module('animatronApp.wavePricing', []);\r\n __webpack_require__(\"+t0R\");\r\n return {\r\n name: 'animatronApp.wavePricing',\r\n files: [\r\n getCss('wave/wave-pricing'),\r\n options.handHeld ? getCss('mobile/wave/m-wave-pricing') : ''\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronPricing(), exports.animatronSectionHorizontalImageText()]); };\r\nvar animatronCanvas = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(130).then((function () {\r\n __webpack_require__(\"65gs\");\r\n resolve({ name: 'animatronApp.animatronCanvas', files: [] });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.animatronVideoGallery = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(2).then((function () {\r\n __webpack_require__(\"Bqs3\");\r\n resolve({\r\n name: 'animatronApp.videoGallery',\r\n files: [\r\n getCss('landing/video-gallery')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.animatronExplainerGallery = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(145).then((function () {\r\n __webpack_require__(\"z3nR\");\r\n resolve({ name: 'animatronApp.explainerGallery', files: [getCss('landing/masonry-wrapper')] });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.animatronSignup = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(141).then((function () {\r\n __webpack_require__(\"Vm6p\");\r\n resolve([angularMessages, {\r\n name: 'animatronApp.signup',\r\n files: [\r\n // getHtml('signup/sign-up'),\r\n getCss('signup'),\r\n getCss('sign-up-block')\r\n ]\r\n }]);\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.introduceVideo = function () { return __webpack_require__.e/* require.ensure */(100).then((function () {\r\n __webpack_require__(\"t8a2\");\r\n return {\r\n name: 'animatronApp.introduce-video',\r\n files: []\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronBannerBottom = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(15).then((function () {\r\n angular.module('animatronApp.bannerBottom', []);\r\n __webpack_require__(\"EX7R\");\r\n __webpack_require__(\"HMCk\");\r\n __webpack_require__(\"urQF\");\r\n resolve({\r\n name: 'animatronApp.bannerBottom',\r\n files: [\r\n getCss('landing/banner-bottom'),\r\n options.handHeld ? getCss('mobile/m-landing-banner') : ''\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronFeedback(), animatronCanvas(), exports.animatronVideoGallery()]); };\r\nexports.animatronMediumLanding = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(1).then((function () {\r\n angular.module('animatronApp.mediumLanding', []);\r\n __webpack_require__(\"sz4O\");\r\n resolve({\r\n name: 'animatronApp.mediumLanding',\r\n files: [\r\n getCss('landing/medium-landing'),\r\n options.handHeld && getCss('mobile/m-medium-landing')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), animatronCanvas(), exports.animatronVideoGallery(), exports.bgVideo(), exports.videoSlider(), exports.animatronFeedback()]); };\r\nexports.animatronComparisonBottom = function () { return Promise.all([new Promise(function (resolve) {\r\n new Promise(function(resolve) { resolve(); }).then((function () {\r\n angular.module('animatronApp.comparisonBottom', []);\r\n resolve({\r\n name: 'animatronApp.comparisonBottom',\r\n files: [\r\n getCss('landing/comparison'),\r\n options.handHeld ? getCss('mobile/m-landing-comparison') : '',\r\n getCss('tabs')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.scrollFixedElement()]); };\r\nexports.animatronLandingNewBottom = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(18).then((function () {\r\n angular.module('animatronApp.landingNewBottom', []);\r\n __webpack_require__(\"XOmU\");\r\n __webpack_require__(\"AwXB\");\r\n __webpack_require__(\"gkLk\");\r\n __webpack_require__(\"ApdG\");\r\n resolve({\r\n name: 'animatronApp.landingNewBottom',\r\n files: [\r\n getCss('landing/masonry-wrapper'),\r\n getCss('tabs'),\r\n getCss('landing/landing-new-bottom')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.ytPlayer(), exports.animatronFeedback(), exports.wistiaPlayer()]); };\r\nexports.animatronExplainerBottom = exports.animatronBannerBottom;\r\nexports.animatronTwitterFollowButton = function () { return __webpack_require__.e/* require.ensure */(140).then((function () {\r\n __webpack_require__(\"ktV2\");\r\n return {\r\n name: 'animatronApp.twitterFollowButton',\r\n files: []\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronTwitterShareButton = function () { return __webpack_require__.e/* require.ensure */(139).then((function () {\r\n __webpack_require__(\"YP1l\");\r\n return {\r\n name: 'animatronApp.twitterShareButton',\r\n files: []\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronFacebookShareButton = function () { return __webpack_require__.e/* require.ensure */(147).then((function () {\r\n __webpack_require__(\"A869\");\r\n return {\r\n name: 'animatronApp.facebookShareButton',\r\n files: [getCss('f_bsh-button')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronLinkedinShareButton = function () { return __webpack_require__.e/* require.ensure */(144).then((function () {\r\n __webpack_require__(\"+sN8\");\r\n return {\r\n name: 'animatronApp.linkedinShareButton',\r\n files: [getCss('le-share-button')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronGoogleShareButton = function () { return __webpack_require__.e/* require.ensure */(146).then((function () {\r\n __webpack_require__(\"pVlO\");\r\n return {\r\n name: 'animatronApp.googleShareButton',\r\n files: [getCss('go-share-button')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronSignUpBlock = function () { return __webpack_require__.e/* require.ensure */(51).then((function () {\r\n __webpack_require__(\"Om7N\");\r\n return [angularMessages, {\r\n name: 'animatronApp.signUpBlock',\r\n files: [getCss('sign-up-block')]\r\n }];\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.animatronDoubleCircleProgress = function () { return Promise.all([__webpack_require__.e/* require.ensure */(98).then((function () {\r\n __webpack_require__(\"bsPy\");\r\n return {\r\n name: 'animatronApp.doubleCircleProgress',\r\n files: [getCss('landing-template/components/double-circle-progress')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.animatronTextBlock = function () { return Promise.all([__webpack_require__.e/* require.ensure */(75).then((function () {\r\n __webpack_require__(\"rOIc\");\r\n return {\r\n name: 'animatronApp.textBlock',\r\n files: [getCss('landing-template/components/text-block')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTitleBlock(), exports.animatronButtonStart()]); };\r\nexports.animatronCompany = function () { return Promise.all([__webpack_require__.e/* require.ensure */(123).then((function () {\r\n __webpack_require__(\"Ypo8\");\r\n return {\r\n name: 'animatronApp.company',\r\n files: [\r\n getCss('company'),\r\n options.handHeld ? getCss('mobile/m-company') : ''\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\n//editor redirect page\r\nexports.animatronEditorRedirect = function () { return Promise.all([__webpack_require__.e/* require.ensure */(44).then((function () {\r\n __webpack_require__(\"iI1I\");\r\n return {\r\n name: 'animatronApp.editorRedirect',\r\n files: [\r\n getCss('editor-redirect')\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTwitterFollowButton()]); };\r\n//\r\nexports.animatronContractors = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(101).then((function () {\r\n __webpack_require__(\"vxBE\");\r\n resolve({\r\n name: 'animatronApp.contractors',\r\n files: [\r\n getCss('user-section'),\r\n getCss('contractors')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.waveMain = function () { return Promise.all([__webpack_require__.e/* require.ensure */(30).then((function () {\r\n __webpack_require__(\"sYxt\");\r\n return {\r\n name: 'animatronApp.wave.landing',\r\n files: [\r\n getCss('wave/wave-landing'),\r\n options.handHeld ? getCss('mobile/wave/m-wave-landing') : ''\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronVideoGallery(), exports.bgVideo(), exports.waveSectionHowWork()]); };\r\nexports.waveLandingSMMW = function () { return Promise.all([__webpack_require__.e/* require.ensure */(31).then((function () {\r\n __webpack_require__(\"OzAF\");\r\n return {\r\n name: 'animatronApp.wave.landingSMMW',\r\n files: [\r\n getCss('wave/wave-landing-smmw'),\r\n options.handHeld ? getCss('mobile/wave/m-wave-landing-smmw') : ''\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.introduceVideo(), exports.waveSectionHowWork(), exports.scrollButton()]); };\r\nexports.mariSmithTutorials = function () { return Promise.all([__webpack_require__.e/* require.ensure */(36).then((function () {\r\n __webpack_require__(\"m5ZQ\");\r\n return {\r\n name: 'animatronApp.wave.mariSmithTutorials',\r\n files: [\r\n getCss('wave/wave-webinar'),\r\n options.handHeld ? getCss('mobile/wave/m-webinar') : ''\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.salmaWebinars = function () { return Promise.all([__webpack_require__.e/* require.ensure */(35).then((function () {\r\n __webpack_require__(\"MnpC\");\r\n return {\r\n name: 'animatronApp.wave.salmaWebinars',\r\n files: [\r\n getCss('wave/wave-webinar'),\r\n options.handHeld ? getCss('mobile/wave/m-webinar') : ''\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe)]); };\r\nexports.waveProject = function () { return Promise.all([__webpack_require__.e/* require.ensure */(27).then((function () {\r\n __webpack_require__(\"leUL\");\r\n return {\r\n name: 'animatronApp.wave.project-item',\r\n files: [getCss('wave/wave-project-item')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronVideoFolderBottom(), exports.animatronVideoFolderMoveModalSvc()]); };\r\nexports.waveTutorialWorkshops = function () { return __webpack_require__.e/* require.ensure */(0).then((function () {\r\n __webpack_require__(\"3xwt\");\r\n return {\r\n name: 'animatronApp.wave.tutorialWorkshops',\r\n files: [getCss('wave/tutorial/wave-tutorial-workshops')]\r\n };\r\n}).bind(null, __webpack_require__)).catch(__webpack_require__.oe); };\r\nexports.waveTutorialsItem = function () { return Promise.all([__webpack_require__.e/* require.ensure */(33).then((function () {\r\n __webpack_require__(\"NMZo\");\r\n return {\r\n name: 'animatronApp.wave.tutorialsItem',\r\n files: [getCss('wave/tutorial/wave-tutorials-item')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronTutorial()]); };\r\nexports.waveTutorialsList = function () { return Promise.all([__webpack_require__.e/* require.ensure */(32).then((function () {\r\n __webpack_require__(\"4HnX\");\r\n return {\r\n name: 'animatronApp.wave.tutorialsList',\r\n files: [getCss('wave/tutorial/wave-tutorials-list')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.waveTutorialsItem()]); };\r\nexports.waveTutorialPage = function () { return Promise.all([__webpack_require__.e/* require.ensure */(34).then((function () {\r\n __webpack_require__(\"H1pI\");\r\n return {\r\n name: 'animatronApp.wave.tutorialPage',\r\n files: [getCss('wave/tutorial/wave-tutorial-page')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.waveTutorialsList(), exports.animatronSectionVerticalTextVideo(), exports.waveTutorialWorkshops(), exports.animatronSectionHorizontalImageText()]); };\r\nexports.videoSteps = function () { return Promise.all([__webpack_require__.e/* require.ensure */(45).then((function () {\r\n __webpack_require__(\"L1PK\");\r\n return {\r\n name: 'animatronApp.videoSteps',\r\n files: [getCss('video-steps')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.animatronButtonStart(), exports.wistiaPlayer()]); };\r\nexports.waveSectionHowWork = function () { return Promise.all([__webpack_require__.e/* require.ensure */(26).then((function () {\r\n __webpack_require__(\"V2FM\");\r\n return {\r\n name: 'animatronApp.wave.sectionHowWork',\r\n files: [getCss('wave/wave-section-how-work')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.videoSteps()]); };\r\nexports.waveTemplate = function () { return Promise.all([__webpack_require__.e/* require.ensure */(25).then((function () {\r\n __webpack_require__(\"qWXa\");\r\n return {\r\n name: 'animatronApp.wave.template-item',\r\n files: [getCss('wave/wave-template-item')]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe), exports.modalVideoPlayer()]); };\r\nexports.waveProjects = function () { return Promise.all([__webpack_require__.e/* require.ensure */(10).then((function () {\r\n __webpack_require__(\"FrPD\");\r\n return {\r\n name: 'animatronApp.wave.projects',\r\n files: [\r\n getCss('projects'),\r\n getCss('wave/wave-projects')\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.waveProject(),\r\n exports.animatronDragItem(),\r\n exports.animatronDropZone(),\r\n exports.animatronVideoFolderItem(),\r\n exports.animatronVideoFolderCreateNew(),\r\n exports.animatronVideoFolderMoveModal(),\r\n exports.animatronVideoFolderMasonry()\r\n]); };\r\nexports.waveMyProjects = function () { return Promise.all([__webpack_require__.e/* require.ensure */(29).then((function () {\r\n __webpack_require__(\"M4Jw\");\r\n return {\r\n name: 'animatronApp.wave.my-projects',\r\n files: [\r\n getCss('tabs'),\r\n getCss('wave/wave-my-projects')\r\n ]\r\n };\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe),\r\n exports.waveProjects(),\r\n exports.animatronVideoFolderBreadcrumb(),\r\n exports.animatronVideoFolderControls()\r\n]); };\r\nexports.animatronActivate = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(14).then((function () {\r\n __webpack_require__(\"tMOM\");\r\n __webpack_require__(\"Gi7R\");\r\n resolve([angularMessages, {\r\n name: 'animatronApp.activate',\r\n files: [\r\n getCss('activate')\r\n ]\r\n }]);\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), userInfoForm()]); };\r\nexports.animatronRecovery = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(67).then((function () {\r\n __webpack_require__(\"Fsbj\");\r\n resolve([angularMessages, {\r\n name: 'animatronApp.recovery',\r\n files: [getCss('activate')]\r\n }]);\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.animatronRecoveryReset = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(66).then((function () {\r\n __webpack_require__(\"V703\");\r\n resolve([angularMessages, {\r\n name: 'animatronApp.recoveryReset',\r\n files: [getCss('activate')]\r\n }]);\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.animatronProjectAnalytics = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(13).then((function () {\r\n angular.module('animatronApp.projectAnalytics', []);\r\n __webpack_require__(\"ehZa\");\r\n __webpack_require__(\"GI5z\");\r\n __webpack_require__(\"xom6\");\r\n __webpack_require__(\"Dbbe\");\r\n resolve({\r\n name: 'animatronApp.projectAnalytics',\r\n files: [\r\n 'https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.16/d3.min.js',\r\n getCss('settings'),\r\n getCss('analytics'),\r\n getCss('projects'),\r\n getCss('tabs'),\r\n getCss('dropdown-menu')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.animatronThumbnailPicker = function () { return new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(68).then((function () {\r\n angular.module('animatronApp.thumbnailPicker', []);\r\n __webpack_require__(\"GhNV\");\r\n resolve({\r\n name: 'animatronApp.thumbnailPicker',\r\n files: [getCss('thumbnail-picker')]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n}); };\r\nexports.animatronPublish = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(12).then((function () {\r\n angular.module('animatronApp.publish', []);\r\n __webpack_require__(\"mx5K\");\r\n __webpack_require__(\"CRMv\");\r\n resolve({\r\n name: 'animatronApp.publish',\r\n files: [\r\n getCss('publish'),\r\n getCss('tabs'),\r\n getCss('_checkbox')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), ticker(), exports.animatronThumbnailPicker()]); };\r\nexports.animatronProjectPreviewPicker = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(69).then((function () {\r\n angular.module('animatronApp.projectPreviewPicker', []);\r\n __webpack_require__(\"5KzC\");\r\n resolve({\r\n name: 'animatronApp.projectPreviewPicker',\r\n files: [getCss('publish')]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronThumbnailPicker()]); };\r\nexports.animatronProjects = function () { return new Promise(function (resolve) {\r\n angular.module('animatronApp.projects', []);\r\n resolve({\r\n name: 'animatronApp.projects',\r\n files: [\r\n getCss('tabs'),\r\n getCss('newsWebsite'),\r\n getCss('search')\r\n ].concat(exports.animatronProject)\r\n });\r\n}); };\r\nexports.animatronUserPage = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(9).then((function () {\r\n angular.module('animatronApp.profileProject', []);\r\n __webpack_require__(\"vpuT\");\r\n __webpack_require__(\"dMZG\");\r\n __webpack_require__(\"+1JM\");\r\n __webpack_require__(\"3Pz5\");\r\n __webpack_require__(\"pD8l\");\r\n resolve({\r\n name: 'animatronApp.profileProject',\r\n files: [getCss('user-section')]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronProjects()]); };\r\nexports.animatronHtml5Offline = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(70).then((function () {\r\n angular.module('animatronApp.html5Offline', []);\r\n __webpack_require__(\"X24d\");\r\n resolve({\r\n name: 'animatronApp.html5Offline',\r\n files: [\r\n getCss('publish'),\r\n getCss('tabs'),\r\n getCss('_checkbox')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronThumbnailPicker()]); };\r\n//export const animatronSearchPage = [animatronProjects(), getJs('controllers/SearchPageCtrl')];\r\nexports.animatronSearchPage = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(148).then((function () {\r\n __webpack_require__(\"AUGb\");\r\n resolve({\r\n name: 'animatronApp.searchPage',\r\n files: [\r\n getCss('search-page'),\r\n options.handHeld && getCss('mobile/m-search-page')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronProjects()]); };\r\n//FIXME might not work\r\nexports.animatronContest = function () { return Promise.all([new Promise(function (resolve) {\r\n __webpack_require__.e/* require.ensure */(6).then((function () {\r\n angular.module('animatronApp.contest', []);\r\n __webpack_require__(\"5hF9\");\r\n __webpack_require__(\"p7UG\");\r\n __webpack_require__(\"Y0+c\");\r\n __webpack_require__(\"GdTr\");\r\n resolve({\r\n name: 'animatronApp.contest',\r\n files: [\r\n getCss('contest/contest'),\r\n getCss('_checkbox')\r\n ]\r\n });\r\n }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);\r\n }), exports.animatronUserPage(), exports.datePicker()]); };\r\n\n\n/***/ }),\n\n/***/ \"bXOc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar OAuthCallbackSvc = (function () {\r\n OAuthCallbackSvc.$inject = [\"$location\", \"$log\", \"$state\", \"$stateParams\", \"AuthenticationSvc\", \"LocalStorageSvc\"];\r\n function OAuthCallbackSvc($location, $log, $state, $stateParams, AuthenticationSvc, LocalStorageSvc) {\r\n this.$location = $location;\r\n this.$log = $log;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.AuthenticationSvc = AuthenticationSvc;\r\n this.LocalStorageSvc = LocalStorageSvc;\r\n }\r\n OAuthCallbackSvc.prototype.doLogin = function (params, stateParams) {\r\n var _this = this;\r\n this.$log.debug('Callback activated', { params: params });\r\n var getToken = function () {\r\n var token = params.access_token || stateParams.code;\r\n return _.isArray(token) ? token[0] : token;\r\n };\r\n var oauthService = stateParams.provider.toUpperCase();\r\n var product = stateParams.product;\r\n var thirdPartyRedirect = this.LocalStorageSvc.get('_animatron_redirect_onlogin');\r\n switch (oauthService) {\r\n case 'GOOGLE':\r\n case 'FACEBOOK':\r\n case 'TWITTER':\r\n case 'DRIBBBLE':\r\n case 'WISTIA':\r\n case 'HUBSPOT':\r\n case 'VIMEO':\r\n case 'DROPBOX':\r\n case 'GDRIVE':\r\n if (!Strings_1.Strings.isBlank(getToken())) {\r\n this.AuthenticationSvc.loginOAuth(getToken(), oauthService, product)\r\n .then(function (secureUser) {\r\n if (thirdPartyRedirect) {\r\n document.querySelector('html').style['background-color'] = 'white';\r\n document.querySelector('html').innerHTML = '
redirecting back...
';\r\n }\r\n else {\r\n var homeUrl = product === 'wave' ? 'my-projects' : 'home';\r\n _this.$location.hash('');\r\n _this.$state.go(secureUser.isNew ? product + \"-activate-oauth\" : homeUrl);\r\n }\r\n });\r\n }\r\n else {\r\n this.$location.path('/404');\r\n }\r\n break;\r\n case 'TWITTER_EMOTIONS':\r\n this.LocalStorageSvc.set('_animatron_twitter', { token: getToken(), secret: params.secret_token });\r\n window.close();\r\n break;\r\n case 'FACEBOOK_EMOTIONS':\r\n this.LocalStorageSvc.set('_animatron_facebook', { token: getToken() });\r\n window.close();\r\n break;\r\n default:\r\n if (oauthService.endsWith('_SHARE')) {\r\n window['share_updated'](getToken());\r\n if (window.opener) {\r\n window.opener['share_updated'](getToken());\r\n }\r\n }\r\n else {\r\n throw new Error('Unknown provider ' + oauthService);\r\n }\r\n }\r\n };\r\n OAuthCallbackSvc.prototype.onCallback = function ($stateParams, hash) {\r\n var params = hash.split('&').map(function (s) { return s.split('='); }).reduce(function (acc, arr) {\r\n acc[arr[0]] = arr[1];\r\n return acc;\r\n }, {});\r\n if (window.opener) {\r\n try {\r\n window.opener.angular.element(window.opener.document.body)\r\n .injector()\r\n .get('OAuthCallbackSvc')\r\n .doLogin(params, $stateParams);\r\n }\r\n catch (e) {\r\n this.LocalStorageSvc.set('auth', { params: params, stateParams: $stateParams });\r\n }\r\n finally {\r\n window.close();\r\n }\r\n }\r\n else {\r\n this.doLogin(params, $stateParams);\r\n }\r\n };\r\n return OAuthCallbackSvc;\r\n}());\r\nexports.OAuthCallbackSvc = OAuthCallbackSvc;\r\nmodule_1.default.service('OAuthCallbackSvc', OAuthCallbackSvc);\r\n\n\n/***/ }),\n\n/***/ \"brzu\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/4.png\";\n\n/***/ }),\n\n/***/ \"c5FE\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/news.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"cZf6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-tutorials-item_b4d39b022b1c3f5139fa5b385adcd80f.css\";\n\n/***/ }),\n\n/***/ \"cmQJ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/sponsor-contact-us_bcb44e4933ea0e908cfd539298e6ef17.css\";\n\n/***/ }),\n\n/***/ \"cq6s\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/user-popup.html';\nvar html = \"
{{::$ctrl.user.meta.location}}
{{$ctrl.user.projectsCount || 0}} {{::$root.t('user-info.animations')}} {{$ctrl.user.followers || 0 }} {{::$root.t('user-info.studio-followers')}} {{::$ctrl.user.followings || 0}} {{::$root.t('user-info.studio-following')}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"d1XY\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/more-text_dea0b98cd309ef9255989e2c98ee8175.html\";\n\n/***/ }),\n\n/***/ \"dLJ7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/comparison_bc07620234c206746c466c721dd42f24.css\";\n\n/***/ }),\n\n/***/ \"dQ5J\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/projects_cfdb1d52c30985469201d6da0802275f.css\";\n\n/***/ }),\n\n/***/ \"dwQs\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar LikeCtrl = (function () {\r\n LikeCtrl.$inject = [\"$element\", \"$timeout\", \"HttpSvc\", \"MyFollowings\"];\r\n function LikeCtrl($element, $timeout, HttpSvc, MyFollowings) {\r\n var _this = this;\r\n this.$element = $element;\r\n this.$timeout = $timeout;\r\n this.HttpSvc = HttpSvc;\r\n this.MyFollowings = MyFollowings;\r\n this.loaded = false;\r\n this.load = _.once(function () {\r\n if (options.handHeld)\r\n return;\r\n _this.loaded = true;\r\n _this.$timeout(function () { return underscore_extensions_1.Utils.rAF(function () {\r\n return _this.$element[0].firstChild.classList.add('popup-opener');\r\n }); });\r\n });\r\n }\r\n LikeCtrl.prototype.$onChanges = function (changes) {\r\n var _this = this;\r\n if (!changes.project.currentValue || !changes.project.currentValue.id)\r\n return;\r\n if (this.ProjectPageCtrl) {\r\n this.ProjectPageCtrl.projectPromise.then(this.init.bind(this));\r\n }\r\n else {\r\n this.init(this.project);\r\n }\r\n if (!options.handHeld) {\r\n this.MyFollowings.init().then(function (svc) { return _this.followersSvc = svc; });\r\n }\r\n };\r\n LikeCtrl.prototype.init = function (project) {\r\n this.project = project;\r\n this.project.likes && this.project.likes.sort(function (a, b) { return a.liked_at - b.liked_at; });\r\n this.http = this.HttpSvc('project', 'like', this.project.id);\r\n };\r\n LikeCtrl.prototype.changeLike = function () {\r\n if (options.user.anonymous)\r\n return;\r\n return this.isLiker() ? this.unlike() : this.like();\r\n };\r\n LikeCtrl.prototype.like = function () {\r\n this.project.likes.unshift({ user: options.user, liked_at: Date.now() });\r\n this.http.securePost();\r\n };\r\n LikeCtrl.prototype.unlike = function () {\r\n this.project.likes = this.project.likes.filter(function (l) { return l.user.username !== options.user.username; });\r\n this.http.secureDelete();\r\n };\r\n LikeCtrl.prototype.isLiker = function () {\r\n return !!_.find(this.project.likes, function (l) { return l.user.username === options.user.username; });\r\n };\r\n return LikeCtrl;\r\n}());\r\nexports.LikeCtrl = LikeCtrl;\r\nmodule_1.default.component('like', {\r\n bindings: {\r\n project: '<'\r\n },\r\n controller: LikeCtrl,\r\n require: { ProjectPageCtrl: '^?projectPage' },\r\n templateUrl: __webpack_require__(\"f86U\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"dy9G\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/landing-template_b841ab2ae7a2946160255753c779ea09.css\";\n\n/***/ }),\n\n/***/ \"dz0q\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-company_d61072072585ba1c4061183f5b605692.css\";\n\n/***/ }),\n\n/***/ \"e3be\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-current-plan_d7f842e8f32bbd832869aaa3d07497bc.css\";\n\n/***/ }),\n\n/***/ \"eCEw\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/text-block_d5532ed820a947a03bb7b029dc95162b.css\";\n\n/***/ }),\n\n/***/ \"eDeh\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__webpack_require__(\"G1du\");\r\n__webpack_require__(\"mADV\");\r\n__webpack_require__(\"P9JW\");\r\n__webpack_require__(\"8gLI\");\r\n__webpack_require__(\"f3NB\");\r\n__webpack_require__(\"mYqq\");\r\n__webpack_require__(\"RJzm\");\r\n__webpack_require__(\"K3aT\");\r\n__webpack_require__(\"tOiF\");\r\n__webpack_require__(\"awAO\");\r\n__webpack_require__(\"SFnc\");\r\n__webpack_require__(\"HAK0\");\r\n__webpack_require__(\"p5KT\");\r\n__webpack_require__(\"0ts5\");\r\n__webpack_require__(\"Zou0\");\r\n__webpack_require__(\"70FE\");\r\n__webpack_require__(\"lcdN\");\r\n__webpack_require__(\"bXOc\");\r\n// import './upgradeOneProjectSvc';\r\n__webpack_require__(\"6cdR\");\r\n__webpack_require__(\"oJMd\");\r\n__webpack_require__(\"X7JN\");\r\n__webpack_require__(\"wFE4\");\r\n__webpack_require__(\"3Rv0\");\r\n__webpack_require__(\"44/O\");\r\n__webpack_require__(\"MT/e\");\r\n__webpack_require__(\"Lxjv\");\r\n__webpack_require__(\"i57k\");\r\n__webpack_require__(\"Q9ed\");\r\n__webpack_require__(\"ogFo\");\r\n\n\n/***/ }),\n\n/***/ \"eE93\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction getCommonLinks(product) {\r\n switch (product) {\r\n case 'WAVE':\r\n return {\r\n pricing: '/wave/pricing',\r\n facebook: '//www.facebook.com/wave.video',\r\n twitter: '//twitter.com/wave_video',\r\n instagram: '//www.instagram.com/wave.video/',\r\n youtube: 'https://www.youtube.com/wavevideo'\r\n };\r\n case 'STUDIO':\r\n default:\r\n return {\r\n pricing: '/studio/pricing',\r\n facebook: '//www.facebook.com/TheAnimatron',\r\n github: '//github.com/Animatron',\r\n twitter: '//twitter.com/animatron',\r\n youtube: '//www.youtube.com/c/AnimatronHero'\r\n };\r\n }\r\n}\r\nexports.default = getCommonLinks;\r\n\n\n/***/ }),\n\n/***/ \"eWSb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/week8_2728306d4c0b45401e4c8d98c61931d8.html\";\n\n/***/ }),\n\n/***/ \"eXN9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/wave-header_427a74bf561f1ede885f60d4218c997a.html\";\n\n/***/ }),\n\n/***/ \"egLR\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-landing-comparison_f9c7df2b339b40d4c6d4f19bcbd766de.css\";\n\n/***/ }),\n\n/***/ \"ekLA\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-webinar_b87a365ad3f47b4d5ed3461d3373c568.css\";\n\n/***/ }),\n\n/***/ \"f+kA\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-steps_914e79e390b5a53737124b0de2effc5e.css\";\n\n/***/ }),\n\n/***/ \"f37r\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/2.png\";\n\n/***/ }),\n\n/***/ \"f3NB\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar blackList = [\r\n 'transition superseded',\r\n 'Possibly unhandled rejection'\r\n];\r\nfunction isSpecialError(exception) {\r\n var message = _.isError(exception) ? exception.message : exception;\r\n return blackList.some(function (item) { return message.includes(item); });\r\n}\r\nmodule_1.default.factory('$exceptionHandler', [\"$log\", function ($log) {\r\n return (function (exception, cause) {\r\n if (isSpecialError(exception)) {\r\n console.info(exception, cause);\r\n }\r\n else {\r\n if (false) {\r\n _.notification.showError('Exception: ' + exception);\r\n }\r\n $log.error(exception, cause);\r\n }\r\n });\r\n}]);\r\n\n\n/***/ }),\n\n/***/ \"f86U\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/like_4ab86247caa54544bfe9c4638b2b352d.html\";\n\n/***/ }),\n\n/***/ \"fAML\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/footer_f7da464ae85f74656efaff6efdb52673.css\";\n\n/***/ }),\n\n/***/ \"fSNa\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/5.png\";\n\n/***/ }),\n\n/***/ \"fUJ1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/medium-landing_b84ab3963b41d066b0631a7b9f346884.css\";\n\n/***/ }),\n\n/***/ \"fUhQ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-pricing_871a47557c1dba736c0c41dd2a46ff2f.css\";\n\n/***/ }),\n\n/***/ \"fbuv\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/font-ko_7d0d1bf91b94a34aa300d1e3bc2470e4.css\";\n\n/***/ }),\n\n/***/ \"fxc3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Strings = (function () {\r\n function Strings() {\r\n }\r\n Strings.isBlank = function (str) {\r\n if (str == null)\r\n str = '';\r\n return (/^\\s*$/).test(str);\r\n };\r\n Strings.capitalize = function (str) {\r\n str = str == null ? '' : String(str);\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n };\r\n Strings.titleCase = function (str) {\r\n return str.replace('-', ' ').replace(/\\w\\S*/g, function (txt) {\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n });\r\n };\r\n Strings.toCamelCase = function (name) {\r\n return name.replace(/-(\\w)/g, function (match) { return match[1].toUpperCase(); });\r\n };\r\n Strings.toParams = function (str) {\r\n return (str || '')\r\n .split('&')\r\n .map(function (s) { return s.split('='); })\r\n .reduce(function (acc, arr) {\r\n acc[arr[0]] = arr[1] || true;\r\n return acc;\r\n }, {});\r\n };\r\n Strings.endsWith = function (str, suffix) {\r\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\r\n };\r\n ;\r\n Strings.encodeUsername = function (username) {\r\n return (username || '').replace(Strings.UsernameRegex, function (c) { return encodeURIComponent(c); });\r\n };\r\n Strings.sameUser = function (username) {\r\n return Strings.encodeUsername(options.user.username) === username;\r\n };\r\n Strings.removeUrlProtocol = function (url) {\r\n return _.isString(url) ? url.replace(/(http:|https:)/, '') : '';\r\n };\r\n return Strings;\r\n}());\r\nStrings.map = ['#', '+', ' ', '/', '\\\\\\\\'].join('');\r\nStrings.UsernameRegex = new RegExp(\"[\" + Strings.map + \"]\", 'g');\r\nStrings.Tags = /<\\/?([a-z][a-z0-9]*)\\b[^>]*>/gi;\r\nStrings.CommentTags = /|<\\?[\\s\\S]*?\\?>/gi;\r\n// static stripTags = (input: string | string[]): string => {\r\nStrings.stripTags = function (input) {\r\n return input ?\r\n (_.isArray(input) ?\r\n input.map(function (i) { return _.isString(i) ? i.replace(Strings.CommentTags, '') : i; })\r\n : input.replace(Strings.CommentTags, '').replace(Strings.Tags, ''))\r\n : '';\r\n};\r\nexports.Strings = Strings;\r\n\n\n/***/ }),\n\n/***/ \"g108\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription_eb4a0c156fe9e11a44fef157fa8824a9.css\";\n\n/***/ }),\n\n/***/ \"ghOg\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar LoginCtrl = (function () {\r\n LoginCtrl.$inject = [\"$sce\", \"$stateParams\", \"AuthenticationSvc\", \"HttpSvc\"];\r\n function LoginCtrl($sce, $stateParams, AuthenticationSvc, HttpSvc) {\r\n var _this = this;\r\n this.$sce = $sce;\r\n this.$stateParams = $stateParams;\r\n this.AuthenticationSvc = AuthenticationSvc;\r\n this.HttpSvc = HttpSvc;\r\n this.login = {\r\n '@class': 'basic',\r\n email: undefined,\r\n password: undefined\r\n };\r\n this.requiredFields = ['email', 'password'];\r\n this.redirectMsg = this.$sce.trustAsHtml(this.AuthenticationSvc.loginRedirectMessage);\r\n this.isRedirectMsgVisible = this.AuthenticationSvc.loginRedirect;\r\n this.loading = false;\r\n this.invalidLogin = false;\r\n this.unknownError = false;\r\n this.hideModal = function () { return _this.AuthenticationSvc.loginModalShown = false; };\r\n }\r\n LoginCtrl.prototype.loginSubmit = function () {\r\n var _this = this;\r\n this.invalidLogin = false;\r\n this.unknownError = false;\r\n if (!this.correctForm())\r\n return;\r\n this.loading = true;\r\n this.HttpSvc('authenticate')\r\n .post(this.login, { headers: options.user.hash ? options.headers : {} })\r\n .then(function (r) { return r.data; }).then(function (response) {\r\n if (underscore_extensions_1.Utils.isApiError(response)) {\r\n _this.invalidLogin = true;\r\n return null;\r\n }\r\n else {\r\n var redirectUrl = _this.$stateParams.redirectUrl;\r\n if (redirectUrl) {\r\n _this.AuthenticationSvc.loginRedirect = redirectUrl;\r\n }\r\n return _this.AuthenticationSvc.login(response);\r\n }\r\n }).catch(function () { return _this.unknownError = true; }).finally(function () { return _this.loading = false; });\r\n };\r\n LoginCtrl.prototype.openSignUp = function () {\r\n this.hideModal();\r\n this.AuthenticationSvc.openSignUpPage(null, { email: this.login.email }, { reload: true });\r\n };\r\n LoginCtrl.prototype.correctForm = function () {\r\n var _this = this;\r\n return _.every(this.requiredFields, function (field) {\r\n return _.isString(_this.login[field]) && _this.login[field].length > 0;\r\n });\r\n };\r\n return LoginCtrl;\r\n}());\r\nmodule_1.default.component('login', {\r\n controller: LoginCtrl,\r\n templateUrl: __webpack_require__(\"zyTD\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"gkLk\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/landing-new-bottom_80a6070e9da934b8bdf8eecbfbd1eb2c.html\";\n\n/***/ }),\n\n/***/ \"gsWG\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/education/education.html';\nvar html = \"

{{::$root.t('edu.h1')}}

{{::$root.t('edu.h3')}}

{{::$root.t('edu.week')}} {{week.number}}. {{week.title}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"h+vD\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/light/card-maker.png\";\n\n/***/ }),\n\n/***/ \"hACO\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/search_6edda50873ba9294e8b20c11b4d011de.css\";\n\n/***/ }),\n\n/***/ \"hB9q\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/3.png\";\n\n/***/ }),\n\n/***/ \"hQA3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-my-projects_90f7656b55c846e65fe205ce48e6875f.css\";\n\n/***/ }),\n\n/***/ \"hVBH\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/relation-list_fcee6a674e1a392f24e12648730540c0.css\";\n\n/***/ }),\n\n/***/ \"hYS4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-wave-pricing_0f6666941bd249fd55f0a685783d3305.css\";\n\n/***/ }),\n\n/***/ \"hflI\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/7.png\";\n\n/***/ }),\n\n/***/ \"hfrq\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = angular.module('animatronApp.directives', []);\r\n\n\n/***/ }),\n\n/***/ \"hqAA\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-title_c7335fccb65d26b5b79dcea7097a7231.css\";\n\n/***/ }),\n\n/***/ \"hqwK\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/light-landing_18846e796a9001542a164c9d69693e92.css\";\n\n/***/ }),\n\n/***/ \"i57k\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar WistiaSvc = (function () {\r\n WistiaSvc.$inject = [\"$q\", \"$http\"];\r\n function WistiaSvc($q, $http) {\r\n this.$q = $q;\r\n this.$http = $http;\r\n this.baseUrl = 'https://api.wistia.com/v1/';\r\n this.baseParams = {\r\n api_password: options.wistiaApiKey,\r\n };\r\n }\r\n WistiaSvc.prototype.getWistiaPlayer = function (wistiaId, options) {\r\n if (options === void 0) { options = {}; }\r\n var deferred = this.$q.defer();\r\n var videoPlayer = window.Wistia && window.Wistia.api(wistiaId);\r\n if (videoPlayer) {\r\n var waitForPlayer_1 = function () { return setTimeout(function () {\r\n videoPlayer = window.Wistia.api(wistiaId);\r\n if (videoPlayer.ready()) {\r\n deferred.resolve(videoPlayer);\r\n }\r\n else {\r\n waitForPlayer_1();\r\n }\r\n }, 100); };\r\n waitForPlayer_1();\r\n }\r\n else {\r\n window._wq = window._wq || [];\r\n window._wq.push({\r\n id: wistiaId,\r\n options: tslib_1.__assign({ videoFoam: true }, options),\r\n onReady: function (videoPlayer) {\r\n deferred.resolve(videoPlayer);\r\n }\r\n });\r\n }\r\n return deferred.promise;\r\n };\r\n WistiaSvc.prototype.getMedia = function (id) {\r\n var url = this.baseUrl + \"medias/\" + id + \".json\";\r\n return this.$http\r\n .get(url, {\r\n params: this.baseParams\r\n })\r\n .then(function (r) { return r.data; });\r\n };\r\n return WistiaSvc;\r\n}());\r\nexports.WistiaSvc = WistiaSvc;\r\nmodule_1.default.service('wistiaSvc', WistiaSvc);\r\n\n\n/***/ }),\n\n/***/ \"iKnz\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar AutoplayVideo = (function () {\r\n AutoplayVideo.$inject = [\"$rootScope\", \"$scope\", \"$element\", \"$sce\"];\r\n function AutoplayVideo($rootScope, $scope, $element, $sce) {\r\n this.$rootScope = $rootScope;\r\n this.$scope = $scope;\r\n this.$element = $element;\r\n this.$sce = $sce;\r\n this.videoUrl = this.$sce.trustAsResourceUrl(options.retina && this.withRetina ? this.url + '_2x' : this.url);\r\n }\r\n AutoplayVideo.prototype.$onInit = function () {\r\n var video = this.$element[0].querySelector('video');\r\n var safe = function (f) { return video && _.isFunction(video[f]) && video[f](); };\r\n this.$rootScope.$on(\"onScreen:\" + this.url, function () { return safe('play'); });\r\n this.$rootScope.$on(\"notOnScreen:\" + this.url, function () { return safe('pause'); });\r\n if (options.handHeld && !AutoplayVideo.iOS) {\r\n underscore_extensions_1.Utils.scopedEvent('touchstart', this.$scope, function videoStart() {\r\n safe('play');\r\n window.removeEventListener('touchstart', videoStart);\r\n });\r\n }\r\n else {\r\n safe('pause');\r\n }\r\n };\r\n AutoplayVideo.prototype.$onDestroy = function () {\r\n _.isFunction(window.stop) && window.stop();\r\n };\r\n return AutoplayVideo;\r\n}());\r\nAutoplayVideo.iOS = /iPad|iPhone|iPod/.test(navigator.userAgent);\r\nmodule_1.default.component('autoplayVideo', {\r\n bindings: {\r\n url: '@',\r\n width: '@',\r\n height: '@',\r\n withWebm: '<',\r\n withRetina: '<'\r\n },\r\n controller: AutoplayVideo,\r\n template: \"
\\n \\n
\\n
\"\r\n});\r\n\n\n/***/ }),\n\n/***/ \"iLwr\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-folder-move-modal_f1e7d86a09ec89290c0d54e6be1bab49.css\";\n\n/***/ }),\n\n/***/ \"ifp+\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/9.png\";\n\n/***/ }),\n\n/***/ \"isPM\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/bg-video_a9e8a5e5ade4f0b25d9c6f10d6f1051c.css\";\n\n/***/ }),\n\n/***/ \"j+wj\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/signup_168ff3b46745c6d73c4bbe0d08e129b2.css\";\n\n/***/ }),\n\n/***/ \"j1Q3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ObjectId = (function () {\r\n function ObjectId() {\r\n }\r\n ObjectId.get = function () {\r\n var timestamp = (new Date().getTime() / 1000 | 0).toString(16);\r\n return timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {\r\n return (Math.random() * 16 | 0).toString(16);\r\n }).toLowerCase();\r\n };\r\n return ObjectId;\r\n}());\r\nexports.ObjectId = ObjectId;\r\n\n\n/***/ }),\n\n/***/ \"j8J/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/header_feeadff6f190794434aa706951b79af3.css\";\n\n/***/ }),\n\n/***/ \"jPQQ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/publish_cde1315b45ec0a935361bfa389d11cb7.css\";\n\n/***/ }),\n\n/***/ \"jYQ6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = angular.module('animatronApp.services', []);\r\n\n\n/***/ }),\n\n/***/ \"jmbb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-project-item_9450f78c8d1603d3a697fcb7b02e23b6.css\";\n\n/***/ }),\n\n/***/ \"juL4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/11.png\";\n\n/***/ }),\n\n/***/ \"jwTf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/challenges-list-section_d751ed7c29ac252c9b74129b3ba51204.css\";\n\n/***/ }),\n\n/***/ \"k4sW\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-video-steps_0e6a96756b77a01989ab9ff54633f28c.css\";\n\n/***/ }),\n\n/***/ \"kfHS\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/background_7a6d8fd7d2ed49a9bd7c38666e21b0a5.css\";\n\n/***/ }),\n\n/***/ \"kglB\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-webinar_acbff16c76d8a08223ca0d66a8b9defc.css\";\n\n/***/ }),\n\n/***/ \"kmnB\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/related-pages_85529654099b8c050eae5a729cc7f445.html\";\n\n/***/ }),\n\n/***/ \"kvRk\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/political-landing_32672f94e4f7484f88b70608ca525d8a.html\";\n\n/***/ }),\n\n/***/ \"kvam\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/ask-popup_1cec3e9559dc08a81db21ca84cb6bb43.css\";\n\n/***/ }),\n\n/***/ \"l0GU\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/press-swipable_a272feb90bfb37cd949ed398c72235a4.html\";\n\n/***/ }),\n\n/***/ \"l8ep\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/1.png\";\n\n/***/ }),\n\n/***/ \"lGv7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/terms-of-service_08ceeb83c6f1e8a3c47371c489644c1c.html\";\n\n/***/ }),\n\n/***/ \"lSTx\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/m-landing-bottom_fd8577175b3c4a0dc861d0863a08350f.css\";\n\n/***/ }),\n\n/***/ \"lcdN\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar NewsSvc = (function () {\r\n NewsSvc.$inject = [\"$interval\", \"$timeout\", \"HttpSvc\", \"LocalStorageSvc\"];\r\n function NewsSvc($interval, $timeout, HttpSvc, LocalStorageSvc) {\r\n this.$interval = $interval;\r\n this.$timeout = $timeout;\r\n this.HttpSvc = HttpSvc;\r\n this.LocalStorageSvc = LocalStorageSvc;\r\n this.delayUpdateNews = 36e+5;\r\n this.currentIndex = 0;\r\n this.newsList = [];\r\n this.deferRun = true;\r\n this.deferRunTimer = 1000;\r\n this.httpNews = HttpSvc('news');\r\n }\r\n NewsSvc.prototype.isEqualUsers = function (user) {\r\n var copyUser = angular.copy(user);\r\n delete copyUser.auth;\r\n var isEqual = this.currentUser ? _.isEqual(this.currentUser, copyUser) : false;\r\n this.currentUser = copyUser;\r\n return isEqual;\r\n };\r\n NewsSvc.prototype.onUserChanged = function (user) {\r\n var _this = this;\r\n if (this.isEqualUsers(user))\r\n return;\r\n if (this.deferRun) {\r\n this.$timeout(function () {\r\n _this.getNews();\r\n _this.deferRun = false;\r\n }, this.deferRunTimer);\r\n }\r\n else {\r\n this.getNews();\r\n }\r\n };\r\n NewsSvc.prototype.getNews = function () {\r\n var _this = this;\r\n var httpNews = this.httpNews.chain(new Date().getTimezoneOffset());\r\n this.newsList = [];\r\n var request = options.user.anonymous ? httpNews.get() : httpNews.secureGet();\r\n request.then(function (r) { return r.data; }).then(function (res) { return _this.newsList = options.user.anonymous ? _this.getWhiteList(res) : res; });\r\n this.$interval.cancel(this.stopUpdateNews);\r\n this.stopUpdateNews = this.$interval(function () { return _this.getNews(); }, this.delayUpdateNews);\r\n };\r\n NewsSvc.prototype.getWhiteList = function (NewsList) {\r\n var deletedNewsList = this.LocalStorageSvc.get('deletedNewsList');\r\n if (deletedNewsList) {\r\n return NewsList.filter(function (newsItem) { return !_.contains(deletedNewsList, newsItem.id); });\r\n }\r\n return NewsList;\r\n };\r\n NewsSvc.prototype.addDeletedItemId = function (deleteId) {\r\n var deletedNewsList = this.LocalStorageSvc.get('deletedNewsList') || [];\r\n deletedNewsList.push(deleteId);\r\n this.LocalStorageSvc.set('deletedNewsList', deletedNewsList);\r\n };\r\n NewsSvc.prototype.deleteNews = function (id) {\r\n if (_.isEmpty(this.newsList))\r\n return;\r\n var deleteNews = _.findWhere(this.newsList, { id: id });\r\n this.newsList = _.without(this.newsList, deleteNews);\r\n if (options.user.anonymous) {\r\n this.addDeletedItemId(deleteNews.id);\r\n }\r\n else {\r\n this.httpNews.chain(deleteNews.id).secureDelete();\r\n }\r\n };\r\n return NewsSvc;\r\n}());\r\nexports.NewsSvc = NewsSvc;\r\nmodule_1.default.service('NewsSvc', NewsSvc);\r\n\n\n/***/ }),\n\n/***/ \"ldoD\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/modal-video_304c67bd6f9c267b191bf2548b4da54e.html\";\n\n/***/ }),\n\n/***/ \"lu/X\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/animations_af7ac59f5208cc73b239c08da97d009a.css\";\n\n/***/ }),\n\n/***/ \"luA4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/15.svg\";\n\n/***/ }),\n\n/***/ \"lvE2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__webpack_require__(\"3H1O\");\r\n__webpack_require__(\"5hi/\");\r\n__webpack_require__(\"KBdS\");\r\n__webpack_require__(\"4sGx\");\r\n__webpack_require__(\"CRNW\");\r\n__webpack_require__(\"a8RW\");\r\n__webpack_require__(\"aLLS\");\r\n__webpack_require__(\"FUIZ\");\r\n__webpack_require__(\"EXaJ\");\r\n__webpack_require__(\"B6ri\");\r\n__webpack_require__(\"q3WU\");\r\n__webpack_require__(\"/pFW\");\r\n__webpack_require__(\"C4lS\");\r\n__webpack_require__(\"FD1p\");\r\n__webpack_require__(\"oeVo\");\r\n__webpack_require__(\"UYjX\");\r\n__webpack_require__(\"4HmH\");\r\n__webpack_require__(\"AgC3\");\r\n__webpack_require__(\"5uTM\");\r\n__webpack_require__(\"Sct3\");\r\n__webpack_require__(\"xNor\");\r\n__webpack_require__(\"udNi\");\r\n__webpack_require__(\"+hc0\");\r\n__webpack_require__(\"9UtH\");\r\n__webpack_require__(\"G8ZG\");\r\n__webpack_require__(\"Om8q\");\r\n__webpack_require__(\"T1Il\");\r\n__webpack_require__(\"XaSg\");\r\n__webpack_require__(\"ghOg\");\r\n__webpack_require__(\"mqJy\");\r\n__webpack_require__(\"YAt/\");\r\n__webpack_require__(\"pVk+\");\r\n__webpack_require__(\"dwQs\");\r\n__webpack_require__(\"b1d7\");\r\n__webpack_require__(\"RIrZ\");\r\n__webpack_require__(\"IXUN\");\r\n__webpack_require__(\"FdTb\");\r\n__webpack_require__(\"oeUM\");\r\n__webpack_require__(\"GWJA\");\r\n__webpack_require__(\"T3B4\");\r\n__webpack_require__(\"XrJM\");\r\n__webpack_require__(\"sJU7\");\r\n__webpack_require__(\"FoMv\");\r\n__webpack_require__(\"PXh8\");\r\n__webpack_require__(\"a+yw\");\r\n__webpack_require__(\"w9R6\");\r\n__webpack_require__(\"iKnz\");\r\n__webpack_require__(\"Y8iI\");\r\n__webpack_require__(\"aOC8\");\r\n__webpack_require__(\"8dlX\");\r\n__webpack_require__(\"6M8O\");\r\n__webpack_require__(\"v1FL\");\r\n__webpack_require__(\"IGC9\");\r\n__webpack_require__(\"YeFr\");\r\n__webpack_require__(\"Dmwp\");\r\n__webpack_require__(\"4NXJ\");\r\n\n\n/***/ }),\n\n/***/ \"lwEL\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/drag-item_d85de153a9841d04cb7a1dcd10d44e64.css\";\n\n/***/ }),\n\n/***/ \"mADV\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar AnimatronPreviews = (function () {\r\n function AnimatronPreviews() {\r\n }\r\n AnimatronPreviews.prototype.computeHeight = function (height, width, computedWidth, maxHeight) {\r\n if (typeof maxHeight === 'undefined') {\r\n maxHeight = options.handHeld ? 1400 : 700;\r\n }\r\n var minHeight = 80;\r\n var computedHeight = (height || 450) / (width || 550) * computedWidth;\r\n return Math.min(maxHeight, Math.max(minHeight, computedHeight));\r\n };\r\n ;\r\n AnimatronPreviews.prototype.pickPreview = function (previews, width) {\r\n if (width === void 0) { width = 720; }\r\n var picked = _.find(previews, function (preview) {\r\n return /.*\\/[a-z\\d]*.(png|jpg)$/.test(preview) ||\r\n new RegExp('.*\\/[a-z\\\\d\\\\_]*(-0)?_' + width + '.(png|jpg)$').test(preview);\r\n });\r\n if (angular.isUndefined(picked)) {\r\n if (angular.isArray(previews) && previews.length > 0) {\r\n return Strings_1.Strings.removeUrlProtocol(previews[0]);\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n else {\r\n return Strings_1.Strings.removeUrlProtocol(picked);\r\n }\r\n };\r\n ;\r\n return AnimatronPreviews;\r\n}());\r\nexports.AnimatronPreviews = AnimatronPreviews;\r\nmodule_1.default.service('AnimatronPreviews', AnimatronPreviews);\r\n\n\n/***/ }),\n\n/***/ \"mIzu\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/search-page_54d8c1c459485c5bfc9e9b16c5be2b36.css\";\n\n/***/ }),\n\n/***/ \"mQW2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/8.png\";\n\n/***/ }),\n\n/***/ \"mWZi\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/404_40b3dccf48cc9be0aa1dc3722ecedba0.html\";\n\n/***/ }),\n\n/***/ \"mYqq\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\");\r\nvar PlayerSvc = (function () {\r\n PlayerSvc.$inject = [\"$location\", \"$log\", \"$http\", \"$filter\", \"$q\", \"BackendSvc\", \"$ocLazyLoad\"];\r\n function PlayerSvc($location, $log, $http, $filter, $q, BackendSvc, $ocLazyLoad) {\r\n var _this = this;\r\n this.$location = $location;\r\n this.$log = $log;\r\n this.$http = $http;\r\n this.$filter = $filter;\r\n this.$q = $q;\r\n this.BackendSvc = BackendSvc;\r\n this.$ocLazyLoad = $ocLazyLoad;\r\n this.gwtPlayer = this.isGwt();\r\n this.fps = parseInt(this.$location.search().fps, 10);\r\n this.resetPlayer = function (playerPromise) { return _this.$q(function (resolve, reject) {\r\n var reset = function (player) {\r\n try {\r\n _this.$log.debug('Reseting player', player);\r\n if (player) {\r\n if (player.invalidate) {\r\n player.invalidate();\r\n player.detach();\r\n }\r\n else if (player.release) {\r\n player.release();\r\n }\r\n delete PlayerSvc.Cache[player.id];\r\n }\r\n resolve();\r\n }\r\n catch (e) {\r\n // make it just resolve, since player throws a lot of errors during invalidation\r\n resolve();\r\n // this.$log.error(e);\r\n // reject();\r\n }\r\n };\r\n _this.$q.resolve(playerPromise).then(reset);\r\n }); };\r\n this.getProjectId = function (project) { return project.id ? project.id : project; };\r\n this.getProjectBackendUrl = function (projectId) {\r\n return _this.BackendSvc.getProjectBackend(projectId).then(function (url) {\r\n return url + '/project/export/json/' + projectId + '?';\r\n });\r\n };\r\n this.getProjectUrl = _.memoize(function (project) { return _this.$q(function (resolve) {\r\n if (typeof project === 'string') {\r\n resolve(project);\r\n }\r\n else if (!Strings_1.Strings.isBlank(project.cdnContentUrl) && project.cdnVersion === project.version && !project.needsRepublish) {\r\n resolve(project.cdnContentUrl + '?');\r\n }\r\n else if (Strings_1.Strings.isBlank(project.serverUrl)) {\r\n return _this.getProjectBackendUrl(project.id);\r\n }\r\n else {\r\n if (_this.isCdnUrl(project.serverUrl)) {\r\n resolve(project.serverUrl + '/' + project.id + '.json?');\r\n }\r\n else {\r\n resolve('//' + project.serverUrl.replace(':80', '') + '/project/export/json/' + project.id + '?');\r\n }\r\n }\r\n }); }, this.getProjectId);\r\n if (this.gwtPlayer) {\r\n this.anmPromise = _.once(function () { return $ocLazyLoad.load(_this.$location.search().pUrl || 'https://player-dev.animatron.com/v2.0/player.js')\r\n .then(function () { return $q(function (resolve) {\r\n var check = function () {\r\n if (!window.animatron) {\r\n setTimeout(function () { return check(); }, 50);\r\n return;\r\n }\r\n var player = window.animatron.Player.prototype;\r\n player.isPaused = player.isPaused || player.isStopped;\r\n player.pause = player.pause || player.stop;\r\n resolve(window.animatron);\r\n };\r\n check();\r\n }); }); });\r\n }\r\n else {\r\n this.anmPromise = _.once(function () { return $ocLazyLoad.load(lazy_modules_1.playerUrl()).then(function () {\r\n var anm = window.anm;\r\n _this.decoratePlayer(anm);\r\n _this.animatronImporter = new anm.importers.animatron();\r\n return anm;\r\n }); });\r\n }\r\n }\r\n PlayerSvc.prototype.getAnm = function (func) {\r\n return this.anmPromise().then(function (anm) { return func(anm); });\r\n };\r\n PlayerSvc.prototype.resetPlayerById = function (canvasId) {\r\n this.resetPlayer(this.getPlayer(canvasId));\r\n };\r\n PlayerSvc.prototype.getPlayer = function (id) {\r\n return PlayerSvc.Cache[id];\r\n };\r\n PlayerSvc.prototype.instances = function () {\r\n return _.values(PlayerSvc.Cache);\r\n };\r\n PlayerSvc.prototype.getJson = function (project, params, forceAnonymous) {\r\n var _this = this;\r\n if (forceAnonymous === void 0) { forceAnonymous = false; }\r\n if (project.anim)\r\n return this.$q.resolve(project);\r\n return this.getProjectUrl(project).then(function (jsonUrl) {\r\n if (params.width && params.height) {\r\n if (jsonUrl.indexOf('?') === -1)\r\n jsonUrl += '?';\r\n jsonUrl += '&w=' + params.width + '&h=' + params.height;\r\n }\r\n var needAuth = !forceAnonymous && !options.user.anonymous && !_this.isCdnUrl(jsonUrl)\r\n && (project.isOwner || !project.editorReadAccess);\r\n var httpOpts = {\r\n headers: needAuth ? options.headers : {}\r\n };\r\n var filteredUrl = _this.$filter('removeUrlProtocol')(jsonUrl);\r\n return _this.$http.get(filteredUrl, httpOpts).then(function (r) { return r.data; });\r\n });\r\n };\r\n PlayerSvc.prototype.createPlayer = function (project, divId, params, callback, callback2, forceAnonymous) {\r\n var _this = this;\r\n if (forceAnonymous === void 0) { forceAnonymous = false; }\r\n if (!project)\r\n throw new Error('Empty project was passed to createPlayer');\r\n var path = this.$location.path();\r\n params.width = params.width || project.width;\r\n params.height = params.height || project.height;\r\n if (this.fps) {\r\n params.fps = this.fps;\r\n }\r\n var promises = [this.anmPromise(), this.getJson(project, params, forceAnonymous)];\r\n return this.$q.all(promises)\r\n .then(function (_a) {\r\n var anm = _a[0], jsonObj = _a[1];\r\n if (_this.$location.path() !== path) {\r\n return _this.$q.reject('Location has changed since create request issued');\r\n }\r\n return _this.loadPlayer(jsonObj, divId, params, anm, callback, callback2);\r\n }).catch(function (e) {\r\n if (!/Location has changed/.test(e)) {\r\n _this.$log.error('Error creating player:', e);\r\n }\r\n return null;\r\n });\r\n };\r\n PlayerSvc.prototype.loadPlayer = function (jsonObj, divId, params, anm, callback, callback2) {\r\n if (jsonObj.anim.script && !this.gwtPlayer) {\r\n params = _.extend(params, {\r\n handleEvents: true, autoPlay: true, controlsEnabled: false, infiniteDuration: true\r\n });\r\n }\r\n var player = anm.createPlayer(divId, params);\r\n var wrappedCallback = function () { return callback && callback(player); };\r\n // if (PlayerSvc.Cache[divId]) throw new Error('Player is already attached to ' + divId);\r\n PlayerSvc.Cache[divId] = player;\r\n if (callback2)\r\n callback2();\r\n if (this.gwtPlayer) {\r\n player.load(jsonObj, wrappedCallback);\r\n player.setDebug(true);\r\n }\r\n else {\r\n player.load(jsonObj, this.animatronImporter, wrappedCallback);\r\n }\r\n this.checkAspectRatio(jsonObj.anim.dimension, params);\r\n return player;\r\n };\r\n PlayerSvc.prototype.isGwt = function () {\r\n return (this.$location.search().gwt || !true) && !this.$location.search().old;\r\n };\r\n PlayerSvc.prototype.checkAspectRatio = function (_a, _b) {\r\n var originalWidth = _a[0], originalHeight = _a[1];\r\n var width = _b.width, height = _b.height;\r\n var originalAspectRatio = originalWidth / originalHeight;\r\n var newAspectRatio = width / height;\r\n if (originalAspectRatio.toFixed(2) !== newAspectRatio.toFixed(2)) {\r\n this.$log.warn('Specified width & height is not correct', { originalAspectRatio: originalAspectRatio, newAspectRatio: newAspectRatio, originalHeight: originalHeight, originalWidth: originalWidth, width: width, height: height });\r\n }\r\n };\r\n PlayerSvc.prototype.isCdnUrl = function (url) {\r\n return url.indexOf('//clips.animatron') > -1 || url.indexOf('//publish.animatron') > -1;\r\n };\r\n // @formatter:off\r\n PlayerSvc.prototype.decoratePlayer = function (anm) {\r\n var player = anm.Player.prototype;\r\n var happens = function (p) { return p.happens || (p.state && p.state.happens) || anm.constants.STOPPED; };\r\n player.isPlaying = player.isPlaying || function () { return happens(this) === anm.constants.PLAYING; };\r\n player.isPaused = player.isPaused || function () { return happens(this) === anm.constants.PAUSED; };\r\n player.isStopped = player.isStopped || function () { return happens(this) === anm.constants.STOPPED; };\r\n player.getTime = player.getTime || function () { return this.state.time; };\r\n player.setSize = player.setSize || function (width, height) { return this._resize(width, height); };\r\n };\r\n return PlayerSvc;\r\n}());\r\nPlayerSvc.Cache = {};\r\nexports.PlayerSvc = PlayerSvc;\r\nvar OldPlayer = (function (_super) {\r\n tslib_1.__extends(OldPlayer, _super);\r\n function OldPlayer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n OldPlayer.prototype.isGwt = function () {\r\n return false;\r\n };\r\n return OldPlayer;\r\n}(PlayerSvc));\r\n// FIXME rename to PlayerSvc\r\nmodule_1.default.service('Player', PlayerSvc);\r\nmodule_1.default.service('PlayerSvc', PlayerSvc);\r\nmodule_1.default.service('OldPlayer', OldPlayer);\r\n\n\n/***/ }),\n\n/***/ \"mqJy\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar SpinnerSvc_1 = __webpack_require__(\"pPBV\");\r\nvar AdSvc_1 = __webpack_require__(\"X7JN\");\r\nvar ExploreCtrl = (function () {\r\n ExploreCtrl.$inject = [\"$scope\", \"$state\", \"$rootScope\", \"$location\", \"AnimatronProjects\", \"TranslateSvc\"];\r\n function ExploreCtrl($scope, $state, $rootScope, $location, AnimatronProjects, TranslateSvc) {\r\n var _this = this;\r\n this.$scope = $scope;\r\n this.$state = $state;\r\n this.$rootScope = $rootScope;\r\n this.$location = $location;\r\n this.AnimatronProjects = AnimatronProjects;\r\n this.TranslateSvc = TranslateSvc;\r\n this.contestType = 'USER';\r\n this.TabParams = {\r\n 'most-plays': {\r\n sortBy: 'views',\r\n minViews: 1,\r\n minVersion: ExploreCtrl.DefMinVersion,\r\n noCount: true\r\n },\r\n 'staff-picks': {\r\n sortBy: 'tag_creation_time',\r\n tag: 'Staff Picks',\r\n tag_type: 'SUPER',\r\n minVersion: ExploreCtrl.DefMinVersion,\r\n noCount: true\r\n },\r\n 'contest-submissions': {\r\n sortBy: 'tag_creation_time',\r\n tag_type: 'CONTEST',\r\n minVersion: 0,\r\n contestType: this.contestType //TODO should be changed\r\n },\r\n 'recently-added': {\r\n minVersion: ExploreCtrl.DefMinVersion,\r\n noCount: true\r\n },\r\n 'my-projects': {}\r\n };\r\n this.tabsConfig = {\r\n 'my-projects': options.user.anonymous,\r\n 'contest-submissions': !options.enableContests\r\n };\r\n this.trackerFunction = angular.noop;\r\n $scope.$on('$destroy', function () {\r\n angular.element(window).unbind('scroll', _this.trackerFunction);\r\n });\r\n $scope.$watch(function () { return _this.contestType; }, function () { return _this.contestType && _this.onTabChange(_this.currentTab); });\r\n if ($location.search().confirmationSent) {\r\n _.notification.showSuccess(TranslateSvc.get('profile.confirmation-sent'));\r\n $location.url($location.path()).replace();\r\n }\r\n if ($location.search().login) {\r\n $location.url($location.path()).replace();\r\n }\r\n }\r\n ExploreCtrl.prototype.onTabChange = function (currentHash) {\r\n if (!currentHash)\r\n return;\r\n if (!this.tabs.includes(currentHash))\r\n currentHash = 'staff-picks';\r\n this.currentTab = currentHash;\r\n this.isStaffPicks = currentHash === 'staff-picks';\r\n this.$scope.animatron = this.getNewProjectService(currentHash);\r\n this.$scope.animatron.nextPage().then(function () { return SpinnerSvc_1.default.hide(); });\r\n };\r\n ;\r\n ExploreCtrl.prototype.getNewProjectService = function (currentTab) {\r\n var ownProjects = currentTab === 'my-projects';\r\n this.$scope.AdSvc = new AdSvc_1.AdSvc(!ownProjects, this.$rootScope);\r\n var tabParams = this.TabParams[currentTab];\r\n if (!tabParams) {\r\n throw new Error(\"cannot find svc params for tab - '\" + currentTab + \"'\");\r\n }\r\n if (this.$state.params.product && options.user.rolez.Admin) {\r\n tabParams.product = this.$state.params.product;\r\n tabParams.minVersion = 0;\r\n }\r\n return new this.AnimatronProjects(Object.assign({}, tabParams), ownProjects, this.cdnUrlCondition() ? ExploreCtrl.CdnUrl : '', this.$scope.AdSvc.adify.bind(this.$scope.AdSvc));\r\n };\r\n ExploreCtrl.prototype.cdnUrlCondition = function () {\r\n return true && this.isStaffPicks && !options.user.rolez.Admin;\r\n };\r\n return ExploreCtrl;\r\n}());\r\nExploreCtrl.DefMinVersion = 100;\r\nExploreCtrl.CdnUrl = 'https://d36bq5zmf7yjgb.cloudfront.net';\r\nexports.ExploreCtrl = ExploreCtrl;\r\nmodule_1.default.component('explorePage', {\r\n controllerAs: 'ExploreCtrl',\r\n controller: ExploreCtrl,\r\n templateUrl: __webpack_require__(\"6XG8\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"n4af\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-payment-details-with-card_a52c683207544b8223e836314926ecb9.css\";\n\n/***/ }),\n\n/***/ \"nAeZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = 'https://assets.animatron.com/html/landing/landing-new.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"nCcs\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/banner-bottom_e4b19823ba51c9f80d740385b9a69f3f.css\";\n\n/***/ }),\n\n/***/ \"nKgT\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/buttons_35fe09d98f7a372f1b71166c5f6a6356.css\";\n\n/***/ }),\n\n/***/ \"nNID\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/light/pattern-light-landing-bottom.svg\";\n\n/***/ }),\n\n/***/ \"nSa/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/win-prizes-list_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n/***/ }),\n\n/***/ \"o4OY\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-total-price_838728e873499c4c87f8668cf97abd5a.css\";\n\n/***/ }),\n\n/***/ \"oJMd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\");\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\n/**\r\n * Singleton class to track current users followers globally\r\n * FIXME refresh on logout?\r\n */\r\nvar MyFollowings = (function () {\r\n MyFollowings.$inject = [\"$rootScope\", \"$ocLazyLoad\", \"$q\"];\r\n function MyFollowings($rootScope, $ocLazyLoad, $q) {\r\n var _this = this;\r\n this.$rootScope = $rootScope;\r\n this.$ocLazyLoad = $ocLazyLoad;\r\n this.$q = $q;\r\n this.init = _.once(function () { return _this.$q(function (resolve) {\r\n lazy_modules_1.animatronUserPage().then(function (a) { return _this.$ocLazyLoad.load(a); }).then(function () {\r\n var factory = angular.element(document).injector().get('FollowersSvc');\r\n _this.followersSvc = new factory(true, 'studio-following', false);\r\n resolve(_this.followersSvc);\r\n _this.$rootScope.$on('user:login', function () {\r\n return _this.followersSvc = new factory(true, 'studio-following', false);\r\n });\r\n });\r\n }); });\r\n }\r\n return MyFollowings;\r\n}());\r\nexports.MyFollowings = MyFollowings;\r\nmodule_1.default.service('MyFollowings', MyFollowings);\r\n\n\n/***/ }),\n\n/***/ \"odw/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/subscription-current-plan-container_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n/***/ }),\n\n/***/ \"oeUM\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nmodule_1.default.component('projectItem', {\r\n bindings: {\r\n project: '<',\r\n showVisibility: '<',\r\n isStaffPicks: '<'\r\n },\r\n templateUrl: __webpack_require__(\"v/Ys\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"oeVo\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar UserPopup = (function () {\r\n UserPopup.$inject = [\"$scope\", \"$filter\", \"$timeout\", \"$q\", \"HttpSvc\", \"AnimatronProjects\", \"MyFollowings\"];\r\n function UserPopup($scope, $filter, $timeout, $q, HttpSvc, AnimatronProjects, MyFollowings) {\r\n var _this = this;\r\n this.$scope = $scope;\r\n this.$filter = $filter;\r\n this.$timeout = $timeout;\r\n this.$q = $q;\r\n this.HttpSvc = HttpSvc;\r\n this.AnimatronProjects = AnimatronProjects;\r\n this.MyFollowings = MyFollowings;\r\n this.load = _.once(function () {\r\n _this.loaded = true;\r\n var username = _this.$filter('encodeUsername')(_this.user.username);\r\n if (UserPopup.userCache[_this.user.username]) {\r\n _this.user = UserPopup.userCache[_this.user.username];\r\n }\r\n else {\r\n _this.fetchAndCacheInfo(username);\r\n }\r\n _this.MyFollowings.init().then(function (svc) { return _this.followersSvc = svc; });\r\n });\r\n this.size = this.size || 20;\r\n }\r\n UserPopup.prototype.show = function (e) {\r\n var _this = this;\r\n this.load();\r\n if (this.shown) {\r\n this.$timeout.cancel(this.hideTimer); //the case when user hovers on popup-opener before animation ends(300ms)\r\n }\r\n else {\r\n this.pickPosition(e);\r\n }\r\n this.showTimer = this.$timeout(function () { return _this.shown = true; }, 500);\r\n };\r\n UserPopup.prototype.hide = function () {\r\n var _this = this;\r\n this.$timeout.cancel(this.showTimer);\r\n this.hideTimer = this.$timeout(function () { return _this.shown = false; }, 300); //transition duration\r\n };\r\n UserPopup.prototype.pickPosition = function (e) {\r\n var _this = this;\r\n underscore_extensions_1.Utils.rAF(function () {\r\n var scrollY = window.scrollY || document.documentElement.scrollTop;\r\n var topLeft = e.pageX + UserPopup.PopupWidth > window.innerWidth;\r\n var topRight = e.pageY + UserPopup.PopupHeight > (scrollY + window.innerHeight);\r\n if (topLeft && topRight) {\r\n _this.position = 'top-left';\r\n }\r\n else if (topRight || _this.disableBottom) {\r\n _this.position = 'top-right';\r\n }\r\n else if (!topLeft && !topRight) {\r\n _this.position = 'bottom-right';\r\n }\r\n else {\r\n _this.position = 'bottom-left';\r\n }\r\n _this.$scope.$apply();\r\n });\r\n };\r\n UserPopup.prototype.fetchAndCacheInfo = function (username) {\r\n var _this = this;\r\n this.loading = true;\r\n this.$q.all([\r\n new this.AnimatronProjects({ username: username, limit: 3, sortBy: 'views' }).nextPage(),\r\n this.HttpSvc(username, 'profile').get()\r\n ]).then(function (_a) {\r\n var prj = _a[0], usr = _a[1];\r\n _this.loading = false;\r\n _this.user = usr.data;\r\n _this.user.projects = prj.results;\r\n _this.user.projectsCount = prj.count;\r\n UserPopup.userCache[_this.user.username] = _this.user;\r\n });\r\n };\r\n return UserPopup;\r\n}());\r\nUserPopup.userCache = {};\r\nUserPopup.PopupWidth = 400 + 50; //50 is offset\r\nUserPopup.PopupHeight = 245 + 50; //50 is offset\r\nmodule_1.default.component('userPopup', {\r\n bindings: {\r\n size: '<',\r\n user: '<',\r\n avatarOnly: '<',\r\n disableBottom: '<'\r\n },\r\n controller: UserPopup,\r\n templateUrl: __webpack_require__(\"cq6s\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"ogFo\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar SpinnerSvc_1 = __webpack_require__(\"pPBV\");\r\nexports.FOLDER_DATA_CHANGED = 'wave/videoFolder/changeData';\r\nexports.TREE_ITEM_SELECTED = 'wave/videoFolder/tree/itemSelected';\r\nexports.FOLDER_TREE_DATA_CHANGED = 'wave/videoFolder/tree/changeData';\r\nfunction isFolder(folder) {\r\n return folder.slug && folder.projects;\r\n}\r\nexports.isFolder = isFolder;\r\nvar VideoFolderSvc = (function () {\r\n VideoFolderSvc.$inject = [\"$q\", \"$cacheFactory\", \"$rootScope\", \"TranslateSvc\", \"HttpSvc\"];\r\n function VideoFolderSvc($q, $cacheFactory, $rootScope, TranslateSvc, HttpSvc) {\r\n var _this = this;\r\n this.$q = $q;\r\n this.$cacheFactory = $cacheFactory;\r\n this.$rootScope = $rootScope;\r\n this.TranslateSvc = TranslateSvc;\r\n this.HttpSvc = HttpSvc;\r\n this.currentUser = options.user;\r\n this.baseRequestParams = {\r\n product: 'WAVE'\r\n };\r\n this.httpCache = this.$cacheFactory('video-folder');\r\n this.newFolder = {};\r\n this.emitDataChanged = function () {\r\n _this.$rootScope.$emit(exports.FOLDER_DATA_CHANGED);\r\n };\r\n this.emitTreeItemSelected = function (folderId) {\r\n _this.$rootScope.$emit(exports.TREE_ITEM_SELECTED, folderId);\r\n };\r\n this.emitTreeDataChanged = function () {\r\n _this.$rootScope.$emit(exports.FOLDER_TREE_DATA_CHANGED);\r\n };\r\n }\r\n VideoFolderSvc.prototype.isChild = function (parent, child) {\r\n var check = function (f) {\r\n if (!f.folder) {\r\n return false;\r\n }\r\n else if (f.folder.id === parent.id) {\r\n return true;\r\n }\r\n else {\r\n return check(f.folder);\r\n }\r\n };\r\n return this.getTreeById(child.id).then(check);\r\n };\r\n VideoFolderSvc.prototype.sortByCreatedDate = function (folders) {\r\n return _.sortBy(folders, function (folder) { return -(new Date(folder.created).getTime()); });\r\n };\r\n VideoFolderSvc.prototype.isNewFolder = function (folder) {\r\n return folder.id === this.newFolder.id;\r\n };\r\n VideoFolderSvc.prototype.setNewCreatedFolder = function (newFolder) {\r\n this.newFolder = newFolder;\r\n };\r\n VideoFolderSvc.prototype.clearNewCreatedFolder = function (folder) {\r\n if (this.newFolder.id === folder.id) {\r\n this.newFolder = {};\r\n }\r\n };\r\n VideoFolderSvc.prototype.create = function (createParams) {\r\n var _this = this;\r\n var params = this.getParams(createParams);\r\n var url = \"?\" + params;\r\n this.onFolderUpdate();\r\n return this.makeRequest('securePost', url)\r\n .then(function (folder) {\r\n _this.setNewCreatedFolder(folder);\r\n return folder;\r\n });\r\n };\r\n VideoFolderSvc.prototype.get = function (folderId) {\r\n var params = this.getParams({ folderId: folderId });\r\n var url = \"/fetch?\" + params;\r\n return this.makeRequest('secureGet', url, { cache: this.httpCache });\r\n };\r\n VideoFolderSvc.prototype.getByPath = function (path) {\r\n var params = this.getParams({ path: \"/\" + (encodeURIComponent(path) || '') });\r\n var url = \"/fetch?\" + params;\r\n return this.makeRequest('secureGet', url, { cache: this.httpCache });\r\n };\r\n VideoFolderSvc.prototype.getRoot = function (username) {\r\n if (username === void 0) { username = this.currentUser.username; }\r\n var params = this.getParams();\r\n var url = \"/users/\" + encodeURIComponent(username) + \"?\" + params;\r\n return this.makeRequest('secureGet', url, { cache: this.httpCache });\r\n };\r\n VideoFolderSvc.prototype.getFolderTree = function (username) {\r\n var _this = this;\r\n if (username === void 0) { username = this.currentUser.username; }\r\n var params = this.getParams();\r\n var url = \"/users/\" + encodeURIComponent(username) + \"/tree?\" + params;\r\n return this.makeRequest('secureGet', url, { cache: this.httpCache })\r\n .then(function (rootFolder) {\r\n rootFolder.name = _this.TranslateSvc.get('wv.folder.breadcrumb.my-projects');\r\n return rootFolder;\r\n });\r\n };\r\n VideoFolderSvc.prototype.moveProject = function (moveParams) {\r\n this.onFolderUpdate();\r\n var params = this.getParams(moveParams);\r\n var url = \"/project/move?\" + params;\r\n var request = this.makeRequest('securePut', url);\r\n SpinnerSvc_1.default.withSpinner(request);\r\n request.then(this.emitDataChanged);\r\n return request;\r\n };\r\n VideoFolderSvc.prototype.moveFolder = function (moveParams) {\r\n var params = this.getParams(moveParams);\r\n var url = \"/move?\" + params;\r\n this.onFolderUpdate();\r\n var request = this.makeRequest('securePut', url);\r\n SpinnerSvc_1.default.withSpinner(request);\r\n request.then(this.emitDataChanged);\r\n return request;\r\n };\r\n VideoFolderSvc.prototype.deleteFolder = function (deleteParams) {\r\n var params = this.getParams(deleteParams);\r\n var url = \"/delete?\" + params;\r\n this.onFolderUpdate();\r\n return this.makeRequest('secureDelete', url).then(this.emitDataChanged);\r\n };\r\n VideoFolderSvc.prototype.renameFolder = function (renameFolderParams) {\r\n var params = this.getParams(renameFolderParams);\r\n var url = \"/rename?\" + params;\r\n this.onFolderUpdate();\r\n return this.makeRequest('securePut', url).then(this.emitDataChanged);\r\n };\r\n VideoFolderSvc.prototype.findInTree = function (folderId) {\r\n var find = function (parentFolder) {\r\n var result;\r\n if (parentFolder.id === folderId || !folderId)\r\n return parentFolder;\r\n parentFolder.folders.some(function (folder) {\r\n result = find(folder);\r\n return !!result;\r\n });\r\n return result;\r\n };\r\n return this.getFolderTree().then(function (parentFolder) { return find(parentFolder); });\r\n };\r\n VideoFolderSvc.prototype.getTreeById = function (folderId) {\r\n var find = function (parentFolder) {\r\n var result;\r\n if (parentFolder.id === folderId || !folderId)\r\n return parentFolder;\r\n parentFolder.folders.forEach(function (folder) {\r\n var childFolder = find(folder);\r\n if (childFolder) {\r\n result = tslib_1.__assign({}, parentFolder, { folder: childFolder });\r\n }\r\n });\r\n return result;\r\n };\r\n return this.getFolderTree().then(function (parentFolder) { return find(parentFolder); });\r\n };\r\n VideoFolderSvc.prototype.getTreeByPath = function (folderPath) {\r\n if (!folderPath)\r\n return this.$q.resolve({});\r\n var slugs = folderPath.split('/');\r\n var find = function (parentFolder) {\r\n var currentSlug = slugs[0];\r\n currentSlug && parentFolder.folders.forEach(function (folder) {\r\n if (folder.slug === currentSlug) {\r\n slugs = slugs.slice(1);\r\n find(folder);\r\n parentFolder.folder = folder;\r\n }\r\n });\r\n return parentFolder;\r\n };\r\n return this.getFolderTree().then(function (parentFolder) { return find(parentFolder); });\r\n };\r\n VideoFolderSvc.prototype.removeFolderFromTree = function (folderTree, excludeFolder) {\r\n var _this = this;\r\n if (folderTree.id === excludeFolder.parentId) {\r\n folderTree.folders = folderTree.folders.filter(function (folder) { return folder.id !== excludeFolder.id; });\r\n }\r\n else {\r\n folderTree.folders = folderTree.folders.map(function (folder) { return _this.removeFolderFromTree(folder, excludeFolder); });\r\n }\r\n return tslib_1.__assign({}, folderTree);\r\n };\r\n VideoFolderSvc.prototype.onFolderUpdate = function () {\r\n this.httpCache.removeAll();\r\n };\r\n VideoFolderSvc.prototype.makeRequest = function (method, url, config) {\r\n if (config === void 0) { config = {}; }\r\n var request = this.HttpSvc(\"folder\" + url)[\"\" + method](config)\r\n .then(function (r) { return r.data; });\r\n return this.requestErrorHandler(request);\r\n };\r\n VideoFolderSvc.prototype.requestErrorHandler = function (request) {\r\n var _this = this;\r\n return request.then(function (data) {\r\n var errorCode = data.errorCode;\r\n return !errorCode || errorCode < 300\r\n ? _this.$q.resolve(data)\r\n : _this.$q.reject(data);\r\n });\r\n };\r\n VideoFolderSvc.prototype.getParams = function (params) {\r\n if (params === void 0) { params = {}; }\r\n return underscore_extensions_1.Utils.toParams(tslib_1.__assign({}, this.baseRequestParams, params));\r\n };\r\n return VideoFolderSvc;\r\n}());\r\nexports.VideoFolderSvc = VideoFolderSvc;\r\nmodule_1.default.service('videoFolderSvc', VideoFolderSvc);\r\n\n\n/***/ }),\n\n/***/ \"omcN\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-trail_2384150959ed5017888c3f1008100d3b.css\";\n\n/***/ }),\n\n/***/ \"ovcP\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/week5_35c5f9c4744070576482054f3f6ee6d8.html\";\n\n/***/ }),\n\n/***/ \"p5KT\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar BackendSvc = (function () {\r\n BackendSvc.$inject = [\"HttpSvc\", \"$q\"];\r\n function BackendSvc(HttpSvc, $q) {\r\n var _this = this;\r\n this.HttpSvc = HttpSvc;\r\n this.$q = $q;\r\n this.getProjectBackend = _.memoize(function (projectId) {\r\n return _this.$q(function (resolve) {\r\n var method = options.user.anonymous ? 'get' : 'secureGet';\r\n return _this.HttpSvc('project-api', projectId)[method]()\r\n .then(function (response) { return resolve(response.data.url); });\r\n });\r\n });\r\n }\r\n BackendSvc.prototype.getServerUrl = function (project) {\r\n var _this = this;\r\n var promise = project.serverUrl ? this.$q.resolve(project.serverUrl) : this.getProjectBackend(project.id);\r\n return promise.then(function (url) { return _this.formatUrl(url); });\r\n };\r\n BackendSvc.prototype.formatUrl = function (url) {\r\n if (url.indexOf('localhost') === -1) {\r\n url = url.replace(/(:\\d{2,6})/, '');\r\n }\r\n var serverUrl = url.replace(/^https?:\\/\\//, '');\r\n return \"//\" + serverUrl;\r\n };\r\n return BackendSvc;\r\n}());\r\nexports.BackendSvc = BackendSvc;\r\nmodule_1.default.service('BackendSvc', BackendSvc);\r\n\n\n/***/ }),\n\n/***/ \"pLX0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-video-sign-up_febf5ff0da03514d93da5df64e509722.css\";\n\n/***/ }),\n\n/***/ \"pPBV\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SpinnerSvc = (function () {\r\n function SpinnerSvc() {\r\n }\r\n SpinnerSvc.set = function (spinner) {\r\n SpinnerSvc.spinner = spinner;\r\n };\r\n SpinnerSvc.show = function () {\r\n SpinnerSvc.spinner.start();\r\n };\r\n SpinnerSvc.hide = function () {\r\n setTimeout(function () { return SpinnerSvc.spinner.complete(); }, 30);\r\n };\r\n SpinnerSvc.withSpinner = function (req) {\r\n SpinnerSvc.show();\r\n req.finally(function () { return SpinnerSvc.hide(); });\r\n return req;\r\n };\r\n return SpinnerSvc;\r\n}());\r\nSpinnerSvc.spinner = null;\r\nexports.default = SpinnerSvc;\r\n\n\n/***/ }),\n\n/***/ \"pVk+\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nmodule_1.default.directive('blurMe', function () { return function (scope, element) {\r\n return element.on('click', function () {\r\n element[0].focus();\r\n element[0].blur();\r\n });\r\n}; });\r\n\n\n/***/ }),\n\n/***/ \"pbA1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-player_0385aeff7fabf555dbe5a4107c6bef3e.css\";\n\n/***/ }),\n\n/***/ \"q3WU\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nmodule_1.default.directive('formAutofillFix', function () {\r\n return function (scope, elem, attrs) {\r\n // Fixes Chrome bug: https://groups.google.com/forum/#!topic/angular/6NlucSskQjY\r\n elem.prop('method', 'POST');\r\n // Fix autofill issues where Angular doesn't know about autofilled inputs\r\n if (attrs.ngSubmit) {\r\n setTimeout(function () {\r\n elem.unbind('submit').bind('submit', function (e) {\r\n e.preventDefault();\r\n var arr = elem.find('input');\r\n if (arr.length > 0) {\r\n arr.triggerHandler('input').triggerHandler('change').triggerHandler('keydown');\r\n scope.$apply(attrs.ngSubmit);\r\n }\r\n });\r\n }, 0);\r\n }\r\n };\r\n});\r\n\n\n/***/ }),\n\n/***/ \"qffX\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = 'https://assets.animatron.com/html/search-page.html';\nvar html = \"
{{$root.t('search-page.result', usersSvc.count + animatron.count)}}
0 || SearchPageCtrl.SearchCtrl.myProjects\\\">
{{::$root.t('search.notfound')}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"rJ0m\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/light/banner-video-preview_x2.jpg\";\n\n/***/ }),\n\n/***/ \"rNCV\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/project-access_331870c9e661da6fd360784c9678715c.html\";\n\n/***/ }),\n\n/***/ \"rU96\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/favicon.ico\";\n\n/***/ }),\n\n/***/ \"rd/d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-landing_701ba8a97c9860e831077ee2973b0339.css\";\n\n/***/ }),\n\n/***/ \"rkOV\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/4.png\";\n\n/***/ }),\n\n/***/ \"rrSb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/10.svg\";\n\n/***/ }),\n\n/***/ \"sCFP\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/spread-in_796a1097479c62e552a73a345fab16be.css\";\n\n/***/ }),\n\n/***/ \"sJU7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar ObjectId_1 = __webpack_require__(\"j1Q3\");\r\n/**\r\n * Add class to an element then add directive with value which contains words from previous class\r\n */\r\nmodule_1.default.directive('appearAnimation', [\"$rootScope\", \"ViewPortSvc\", function ($rootScope, ViewPortSvc) {\r\n return function (scope, element, attrs) {\r\n if (!element[0].id)\r\n element[0].id = ObjectId_1.ObjectId.get();\r\n var id = element[0].id;\r\n var className = attrs.appearAnimation;\r\n var shouldDisponse = attrs.hasOwnProperty('andDisposeAnimation');\r\n if (/prerender/.test(navigator.userAgent)) {\r\n element[0].classList.add(className);\r\n return;\r\n }\r\n ViewPortSvc.subscribe(element[0]);\r\n setTimeout(function () { return ViewPortSvc.checker(); }, 0);\r\n var destroy = $rootScope.$on('onScreen:' + id, _.once(function () {\r\n if (shouldDisponse) {\r\n var initialName_1 = className.replace(/--.*$/, '');\r\n var dispose_1 = _.once(function () {\r\n var toRemove = Array.apply(null, element[0].classList)\r\n .filter(function (a) { return a.includes(initialName_1); })\r\n .concat(className);\r\n (_a = element[0].classList).remove.apply(_a, toRemove);\r\n element[0].removeEventListener('transitionend', dispose_1);\r\n var _a;\r\n });\r\n element[0].addEventListener('transitionend', dispose_1);\r\n }\r\n element[0].classList.add(className);\r\n ViewPortSvc.unsubscribe(element[0]);\r\n destroy();\r\n // scope.$destroy();\r\n }));\r\n };\r\n}]);\r\n\n\n/***/ }),\n\n/***/ \"sM/Y\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/open-editor_1f61c246e670e77e170379f2e04c902b.css\";\n\n/***/ }),\n\n/***/ \"sNLF\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/15.png\";\n\n/***/ }),\n\n/***/ \"svkI\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/affiliate-popup_5627680adb7433cc7fed66a0a67255f1.html\";\n\n/***/ }),\n\n/***/ \"t/nL\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-video-time_9bbd48ae9096f62db0ff0afa8945f17f.css\";\n\n/***/ }),\n\n/***/ \"tOiF\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar jq = _.once(function () { return $.noConflict(); });\r\nvar PaymentHelpers = (function () {\r\n function PaymentHelpers() {\r\n this.cardExpiryVal = function (value) { return jq().payment.cardExpiryVal(value); };\r\n this.validateCardNumber = function (num) { return jq().payment.validateCardNumber(num); };\r\n this.validateCardCvc = function (cvc, type) { return jq().payment.validateCardCVC(cvc, type); };\r\n this.restrictNumeric = function (element) { return jq()(element).payment('restrictNumeric'); };\r\n this.formatCardCvc = function (element) { return jq()(element).payment('formatCardCVC'); };\r\n this.formatCardExpiry = function (element) { return jq()(element).payment('formatCardExpiry'); };\r\n this.formatCardNumber = function (element) { return jq()(element).payment('formatCardNumber'); };\r\n }\r\n PaymentHelpers.prototype.validateCardExpiry = function (value) {\r\n var exp = jq().payment.cardExpiryVal(value);\r\n return jq().payment.validateCardExpiry(exp.month.toString(), exp.year.toString());\r\n };\r\n ;\r\n return PaymentHelpers;\r\n}());\r\nmodule_1.default.factory('PaymentHelpers', function () { return new PaymentHelpers(); });\r\n\n\n/***/ }),\n\n/***/ \"tV+N\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-2.png\";\n\n/***/ }),\n\n/***/ \"tWLz\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/fonts-basic_c8af4402ea50d0f0b62ceb5f5987b17f.css\";\n\n/***/ }),\n\n/***/ \"tjWj\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/masonry-wrapper_542507cb57249376ee11881ebc7761ec.css\";\n\n/***/ }),\n\n/***/ \"tp6s\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/open-editor_cc8d6ab412bdf1def49150e25d65da97.html\";\n\n/***/ }),\n\n/***/ \"u8E4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/spinners_c054ba0e20568d4283df5ef9c5653ec0.css\";\n\n/***/ }),\n\n/***/ \"uaFb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/9.svg\";\n\n/***/ }),\n\n/***/ \"udNi\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar Strings_1 = __webpack_require__(\"fxc3\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar SearchCtrl = (function () {\r\n SearchCtrl.$inject = [\"$state\", \"$q\", \"$stateParams\"];\r\n function SearchCtrl($state, $q, $stateParams) {\r\n this.$state = $state;\r\n this.$q = $q;\r\n this.$stateParams = $stateParams;\r\n this.keyword = this.$stateParams.q;\r\n this.solr = !_.isUndefined(this.$stateParams.solr);\r\n this.myProjects = !_.isUndefined(this.$stateParams.myProjects);\r\n }\r\n SearchCtrl.prototype.startSearch = function (notify) {\r\n if (notify === void 0) { notify = true; }\r\n if (Strings_1.Strings.isBlank(this.keyword))\r\n return this.$q.resolve();\r\n if (_.isFunction(this.onStart))\r\n this.onStart();\r\n return this.$state.transitionTo('studio-search', {\r\n q: this.keyword,\r\n username: this.username,\r\n myProjects: this.myProjects || undefined,\r\n solr: this.solr || undefined\r\n }, { reload: true, notify: notify }).then(function () {\r\n return setTimeout(function () { return underscore_extensions_1.Utils.safe(function () { return document.querySelector('.project-search').focus(); }); }, 100);\r\n });\r\n };\r\n return SearchCtrl;\r\n}());\r\nexports.SearchCtrl = SearchCtrl;\r\nmodule_1.default.component('search', {\r\n controller: SearchCtrl,\r\n controllerAs: 'Search',\r\n bindings: {\r\n username: '@',\r\n onStart: '&?'\r\n },\r\n templateUrl: __webpack_require__(\"HGeo\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"ukZe\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-4.png\";\n\n/***/ }),\n\n/***/ \"v+R/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/pricing_dd224a00d491dfcb7fe023365807edb3.html\";\n\n/***/ }),\n\n/***/ \"v+uJ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/8.png\";\n\n/***/ }),\n\n/***/ \"v/Ys\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/project-item.html';\nvar html = \"
{{::$root.t('projects.staff-picks')}} {{::$root.t('projects.hall-of-fame')}} {{::$root.t('projects.contest')}}
{{::$root.t('anonymous')}}
{{::$root.t('projects.views')}} {{::$ctrl.project.views || 0 | number}} {{::$root.t('projects.comments')}} {{$ctrl.project.comments.length || 0}} {{::$ctrl.project.visibility | visibilityExplanation}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"v09R\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/explainer_82bd99fa4330bb99d43a000775aa8258.html\";\n\n/***/ }),\n\n/***/ \"v1FL\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar commonLinks_1 = __webpack_require__(\"eE93\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar CommonLink = (function () {\r\n CommonLink.$inject = [\"$state\"];\r\n function CommonLink($state) {\r\n this.$state = $state;\r\n }\r\n CommonLink.prototype.$onChanges = function () {\r\n this.product = this.product || underscore_extensions_1.Utils.getProductByState(this.$state);\r\n this.href = this.url ? this.getByUrl() : this.getByName();\r\n };\r\n CommonLink.prototype.getByName = function () {\r\n var links = commonLinks_1.default(this.product);\r\n return links[this.name];\r\n };\r\n CommonLink.prototype.getByUrl = function () {\r\n return \"/\" + this.product.toLowerCase() + this.url;\r\n };\r\n return CommonLink;\r\n}());\r\nmodule_1.default.component('commonLink', {\r\n bindings: {\r\n name: '@?',\r\n url: '@?',\r\n product: '@?',\r\n className: '@?'\r\n },\r\n transclude: true,\r\n controller: CommonLink,\r\n template: ' '\r\n});\r\n\n\n/***/ }),\n\n/***/ \"vcaf\":\n/***/ (function(module, exports) {\n\n//TODO remove `angular.element(document.body).ready(() => ...);` Must work without it.\r\nvar AnimatronNotification = (function () {\r\n function AnimatronNotification() {\r\n var _this = this;\r\n this.options = { timeout: 5000 };\r\n angular.element(document.body).ready(function () {\r\n _this.container = angular.element(document.querySelector('.animatron_notification_block'));\r\n });\r\n }\r\n AnimatronNotification.prototype.showError = function (message, timeout) {\r\n var _this = this;\r\n angular.element(document.body).ready(function () {\r\n _this.showMessage(message, timeout, 'error');\r\n });\r\n };\r\n AnimatronNotification.prototype.showSuccess = function (message, timeout) {\r\n var _this = this;\r\n angular.element(document.body).ready(function () {\r\n _this.showMessage(message, timeout, 'success');\r\n });\r\n };\r\n AnimatronNotification.prototype.showMessage = function (message, timeout, type) {\r\n var _this = this;\r\n this.hideInstantly();\r\n if (this.type !== type) {\r\n this.type = type;\r\n this.hide();\r\n this.showMessage(message, timeout, type);\r\n return;\r\n }\r\n if (timeout) {\r\n this.options.timeout = timeout;\r\n }\r\n document.querySelector('.animatron_notification_block').innerHTML = '';\r\n this.container.append(angular.element('').html(message));\r\n this.show();\r\n if (this.options.timeout > 0) {\r\n clearTimeout(this._timeout);\r\n this._timeout = setTimeout(function () { return _this.hide(); }, this.options.timeout);\r\n }\r\n var dismiss_btn = angular.element('')\r\n .addClass('close')\r\n .on('click', function (event) {\r\n event.preventDefault();\r\n _this.hide();\r\n });\r\n this.container.append(dismiss_btn);\r\n };\r\n AnimatronNotification.prototype.hide = function () {\r\n clearTimeout(this._timeout);\r\n if (this.container) {\r\n this.container.removeClass('show');\r\n }\r\n };\r\n AnimatronNotification.prototype.show = function () {\r\n this.container.addClass('show').removeClass('hide');\r\n };\r\n AnimatronNotification.prototype.hideInstantly = function () {\r\n if (this.container) {\r\n this.container.addClass('hide').removeClass('show');\r\n }\r\n };\r\n return AnimatronNotification;\r\n}());\r\n_.notification = new AnimatronNotification();\r\n\n\n/***/ }),\n\n/***/ \"vhpm\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/project-buttons_27d0ea0d9cdcb9d23b06b6ddf41311ac.html\";\n\n/***/ }),\n\n/***/ \"vjsU\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-1.png\";\n\n/***/ }),\n\n/***/ \"vlSI\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/2.svg\";\n\n/***/ }),\n\n/***/ \"vuk9\":\n/***/ (function(module, exports) {\n\nvar path = 'https://assets.animatron.com/html/header.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n/***/ }),\n\n/***/ \"vzSK\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/both-landings-common_87510a0221f4c268cfb0adedd99741c6.css\";\n\n/***/ }),\n\n/***/ \"w2og\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/9.png\";\n\n/***/ }),\n\n/***/ \"w9R6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar lazy_modules_1 = __webpack_require__(\"bUzP\");\r\nvar PressSwipable = (function () {\r\n PressSwipable.$inject = [\"$element\", \"$q\"];\r\n function PressSwipable($element, $q) {\r\n this.$element = $element;\r\n this.$q = $q;\r\n this.flicktyPromise = $q(function (resolve) { return loadScripts([lazy_modules_1.flickityLib], resolve); });\r\n }\r\n PressSwipable.prototype.$postLink = function () {\r\n this.initFlickty('.slide', false, true);\r\n };\r\n PressSwipable.prototype.initFlickty = function (cellSelector, prevNextButtons, pageDots) {\r\n var _this = this;\r\n this.flicktyPromise.then(function () {\r\n var Flickity = window.Flickity;\r\n new Flickity(_this.$element[0].firstChild, {\r\n cellSelector: cellSelector,\r\n prevNextButtons: prevNextButtons,\r\n pageDots: pageDots,\r\n wrapAround: true,\r\n resize: false,\r\n cellAlign: 'center',\r\n adaptiveHeight: true,\r\n setGallerySize: false\r\n });\r\n });\r\n };\r\n return PressSwipable;\r\n}());\r\nvar PressSwipableTwitter = (function (_super) {\r\n PressSwipableTwitter.$inject = [\"$element\", \"$q\"];\r\n tslib_1.__extends(PressSwipableTwitter, _super);\r\n function PressSwipableTwitter($element, $q) {\r\n var _this = _super.call(this, $element, $q) || this;\r\n _this.$element = $element;\r\n _this.$q = $q;\r\n _this.twitterPromise = $q(function (resolve) { return loadScripts([lazy_modules_1.twitterWidgetLib], resolve); });\r\n return _this;\r\n }\r\n PressSwipableTwitter.prototype.$postLink = function () {\r\n var _this = this;\r\n var children = this.$element[0].firstElementChild.childElementCount;\r\n var rendered = 0;\r\n this.twitterPromise.then(function () { return window.twttr.events.bind('rendered', function () {\r\n if (++rendered === children) {\r\n _this.initFlickty('.twitter-tweet', true, true);\r\n }\r\n }); });\r\n };\r\n return PressSwipableTwitter;\r\n}(PressSwipable));\r\nmodule_1.default.component('pressSwipable', {\r\n controller: PressSwipable,\r\n templateUrl: __webpack_require__(\"l0GU\")\r\n});\r\nmodule_1.default.component('pressTwitterGallery', {\r\n controller: PressSwipableTwitter,\r\n templateUrl: __webpack_require__(\"SzCq\")\r\n});\r\n\n\n/***/ }),\n\n/***/ \"wCd9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/logo_18b65b8b7c34e0c663f6c8e09400195d.css\";\n\n/***/ }),\n\n/***/ \"wFE4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nViewPortSvc.$inject = [\"$rootScope\"];\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(\"TToO\");\r\nvar module_1 = __webpack_require__(\"jYQ6\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nexports.IntersectionObserver = window.IntersectionObserver;\r\nvar Observer = (function () {\r\n function Observer(emmiter) {\r\n this.emmiter = emmiter;\r\n this.onInit();\r\n }\r\n Observer.prototype.onInit = function () { };\r\n Observer.prototype.whenOnScreen = function (element) {\r\n this.emmiter('onScreen:' + element.id);\r\n element.classList.add('on-screen');\r\n element.classList.remove('not-on-screen');\r\n };\r\n Observer.prototype.whenNotOnScreen = function (element) {\r\n this.emmiter('notOnScreen:' + element.id);\r\n element.classList.add('not-on-screen');\r\n element.classList.remove('on-screen');\r\n };\r\n return Observer;\r\n}());\r\nexports.Observer = Observer;\r\nvar ScrollObserver = (function (_super) {\r\n tslib_1.__extends(ScrollObserver, _super);\r\n function ScrollObserver() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.observables = [];\r\n return _this;\r\n }\r\n ScrollObserver.prototype.onInit = function () {\r\n var _this = this;\r\n window.addEventListener('scroll', _.throttle(function () { return _this.checker(); }, 100), false);\r\n };\r\n ScrollObserver.prototype.checker = function () {\r\n var _this = this;\r\n return underscore_extensions_1.Utils.rAF(function () {\r\n var windowHeight = _this.staticWindowHeight ? +_this.staticWindowHeight : window.innerHeight;\r\n _this.observables.forEach(function (o) {\r\n var dimension = o.element.getBoundingClientRect(), top = dimension.top, bottom = dimension.bottom, height = dimension.height, topVisible = top + height >= 0, botVisible = bottom - height <= windowHeight;\r\n var onScreen = topVisible && botVisible;\r\n if (o.centredOn) {\r\n var windowPlace = windowHeight * (o.centredOn / 100);\r\n onScreen = top <= windowPlace && bottom >= windowPlace;\r\n }\r\n if (onScreen && !o.wasOnScreen && o.wasOutOfScreen) {\r\n o.wasOnScreen = true;\r\n o.wasOutOfScreen = false;\r\n _this.whenOnScreen(o.element);\r\n }\r\n else if (!onScreen && o.wasOnScreen && !o.wasOutOfScreen) {\r\n o.wasOnScreen = false;\r\n o.wasOutOfScreen = true;\r\n _this.whenNotOnScreen(o.element);\r\n }\r\n });\r\n });\r\n };\r\n ScrollObserver.prototype.subscribe = function (element, centredOn) {\r\n this.observables.push({\r\n element: element,\r\n centredOn: centredOn,\r\n wasOnScreen: false,\r\n wasOutOfScreen: true\r\n });\r\n };\r\n ScrollObserver.prototype.unsubscribe = function (element) {\r\n this.observables = this.observables.filter(function (o) { return o.element !== element; });\r\n };\r\n return ScrollObserver;\r\n}(Observer));\r\nexports.ScrollObserver = ScrollObserver;\r\nvar IntersctObserver = (function (_super) {\r\n tslib_1.__extends(IntersctObserver, _super);\r\n function IntersctObserver() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.observer = new exports.IntersectionObserver(_this.checker.bind(_this));\r\n return _this;\r\n }\r\n IntersctObserver.prototype.checker = function (changes) {\r\n var _this = this;\r\n changes && underscore_extensions_1.Utils.rAF(function () { return changes.forEach(function (change) {\r\n var onScreen = change.intersectionRatio !== 0;\r\n if (onScreen) {\r\n _this.whenOnScreen(change.target);\r\n }\r\n else if (!onScreen) {\r\n _this.whenNotOnScreen(change.target);\r\n }\r\n }); });\r\n };\r\n IntersctObserver.prototype.subscribe = function (element) {\r\n this.observer.observe(element);\r\n };\r\n IntersctObserver.prototype.unsubscribe = function (element) {\r\n this.observer.unobserve(element);\r\n };\r\n return IntersctObserver;\r\n}(Observer));\r\nexports.IntersctObserver = IntersctObserver;\r\n//IE 11 fix for .middle\r\nHTMLElement.prototype.getBoundingClientRect = (function () {\r\n var oldGetBoundingClientRect = HTMLElement.prototype.getBoundingClientRect;\r\n return function () {\r\n try {\r\n return oldGetBoundingClientRect.apply(this, arguments);\r\n }\r\n catch (e) {\r\n return {\r\n left: '',\r\n right: '',\r\n top: '',\r\n bottom: ''\r\n };\r\n }\r\n };\r\n})();\r\nfunction ViewPortSvc($rootScope) {\r\n var emmiter = $rootScope.$emit.bind($rootScope);\r\n // const observer: Observer = IntersectionObserver ? new IntersctObserver(emmiter) : new ScrollObserver(emmiter);\r\n return new ScrollObserver(emmiter);\r\n}\r\nmodule_1.default.service('ViewPortSvc', ViewPortSvc);\r\n\n\n/***/ }),\n\n/***/ \"wJnc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/_typography_7d99e03223012e618de7f8151c51f31b.css\";\n\n/***/ }),\n\n/***/ \"wTNS\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/comments_a9973519437284a57f50a0a9647fdc78.html\";\n\n/***/ }),\n\n/***/ \"wWYA\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-5.png\";\n\n/***/ }),\n\n/***/ \"wX/j\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/12.png\";\n\n/***/ }),\n\n/***/ \"we/J\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/address_cfba6c317055aab935dab0c59d072d29.css\";\n\n/***/ }),\n\n/***/ \"whPB\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/landing/banner/help-img-3.png\";\n\n/***/ }),\n\n/***/ \"wmF7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/contractors_373227efb37edfa015d0c0bcf13c3837.css\";\n\n/***/ }),\n\n/***/ \"wpGM\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/3.png\";\n\n/***/ }),\n\n/***/ \"wuZI\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/20.png\";\n\n/***/ }),\n\n/***/ \"wwNa\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-horizontal-text-video_ef732b3debfb0a7bb32b5714b9f47a64.css\";\n\n/***/ }),\n\n/***/ \"wz+r\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar CookieSettings = (function () {\r\n function CookieSettings() {\r\n }\r\n CookieSettings.get = function () {\r\n var cookieSettings = {\r\n path: '/',\r\n expires: 365,\r\n domain: undefined\r\n };\r\n if (location.hostname !== 'localhost' && location.hostname.indexOf('192.168') !== 0) {\r\n cookieSettings.domain = location.host.replace('www', '');\r\n }\r\n return cookieSettings;\r\n };\r\n return CookieSettings;\r\n}());\r\nexports.CookieSettings = CookieSettings;\r\n\n\n/***/ }),\n\n/***/ \"x+OW\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/notifications_8f662b348103d33c454947b13aebf8b3.css\";\n\n/***/ }),\n\n/***/ \"x0FM\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/12.png\";\n\n/***/ }),\n\n/***/ \"x7Q4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/global_c0f93b5b24ceae1dd6295c94054e9152.css\";\n\n/***/ }),\n\n/***/ \"xD0M\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/1.svg\";\n\n/***/ }),\n\n/***/ \"xNor\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar module_1 = __webpack_require__(\"hfrq\");\r\nvar underscore_extensions_1 = __webpack_require__(\"R0iF\");\r\nvar ProjectAccessCtrl = (function () {\r\n ProjectAccessCtrl.$inject = [\"$state\", \"$http\", \"HttpSvc\", \"BackendSvc\"];\r\n function ProjectAccessCtrl($state, $http, HttpSvc, BackendSvc) {\r\n var _this = this;\r\n this.$state = $state;\r\n this.$http = $http;\r\n this.HttpSvc = HttpSvc;\r\n this.BackendSvc = BackendSvc;\r\n this.access = {\r\n PUBLIC: 'PUBLIC',\r\n PRIVATE: 'PRIVATE',\r\n UNLISTED: 'UNLISTED'\r\n };\r\n this.product = underscore_extensions_1.Utils.getProductByState(this.$state);\r\n this.userRolez = options.user.subscriptionDetails.studio.features.rolez;\r\n this.isAdmin = !!this.userRolez.Admin;\r\n this.canOnlyRead = !this.project.isOwner && this.isAdmin;\r\n this.isShowAccess = this.project.isOwner;\r\n this.canChangePermissions = !options.user.anonymous && this.userRolez.ProjectPermissions.canChangePermissions;\r\n this.canWrite = this.canChangePermissions;\r\n if (this.canChangePermissions) {\r\n this.countPrivateUnlistedProjects = this.userRolez.PrivateUnlistedProjects.numProjects;\r\n this.HttpSvc(\"projects/stats?product=\" + this.product).secureGet().then(function (r) { return r.data; }).then(function (res) {\r\n var countProjectCreated = res.privateProjects + res.unlistedProjects;\r\n _this.canWrite = countProjectCreated < _this.countPrivateUnlistedProjects\r\n || _this.project.visibility !== _this.access.PUBLIC;\r\n });\r\n }\r\n }\r\n Object.defineProperty(ProjectAccessCtrl.prototype, \"url\", {\r\n get: function () {\r\n var _this = this;\r\n return this.BackendSvc.getServerUrl(this.project)\r\n .then(function (url) { return url + \"/project/update/permission/\" + _this.project.id; });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ProjectAccessCtrl.prototype.changeVisibility = function (accessType) {\r\n this.project.visibility = accessType;\r\n };\r\n ProjectAccessCtrl.prototype.changeAccess = function (accessType) {\r\n var _this = this;\r\n if (this.project.visibility !== accessType) {\r\n var data_1 = this.project.product === 'WAVE' && accessType === 'PUBLIC' ?\r\n {\r\n 'visibility': accessType,\r\n 'writeAccess': [],\r\n 'readAccess': ['PUBLIC']\r\n } :\r\n {\r\n 'visibility': accessType,\r\n 'writeAccess': [],\r\n 'readAccess': []\r\n }, oldVisibility_1 = this.project.visibility;\r\n this.changeVisibility(accessType);\r\n this.url.then(function (url) {\r\n _this.$http.put(url, data_1, { headers: options.headers })\r\n .then(function (res) {\r\n if (res && res.data.errorCode) {\r\n _this.changeVisibility(oldVisibility_1);\r\n _.notification.showError(res.data.errorMessage || 'Error changing project access');\r\n }\r\n });\r\n });\r\n }\r\n };\r\n ProjectAccessCtrl.prototype.openSubscription = function () {\r\n this.$state.go(this.product.toLowerCase() + \"-settings.subscription\");\r\n };\r\n return ProjectAccessCtrl;\r\n}());\r\nmodule_1.default.directive('projectAccess', function () { return ({\r\n restrict: 'E',\r\n controller: ProjectAccessCtrl,\r\n controllerAs: 'ProjectAccess',\r\n bindToController: {\r\n project: '='\r\n },\r\n scope: true,\r\n templateUrl: __webpack_require__(\"rNCV\")\r\n}); });\r\n\n\n/***/ }),\n\n/***/ \"xU9L\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/wave-section-how-work_a12bd1ee9c0aa74bfff55c70f3d4cb95.css\";\n\n/***/ }),\n\n/***/ \"xXoS\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/tutorial_23595ec88a690b201dec7cb48cf4d186.css\";\n\n/***/ }),\n\n/***/ \"xlID\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/login-modal_7128728ae6e7777debeb70739028164d.css\";\n\n/***/ }),\n\n/***/ \"xpHJ\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/sign-up-block_83c951374d9b10614c4085872aeb7058.css\";\n\n/***/ }),\n\n/***/ \"y+GP\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-background-text_673293687f30a269467d630759287cc7.css\";\n\n/***/ }),\n\n/***/ \"yCid\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/14.svg\";\n\n/***/ }),\n\n/***/ \"yEiy\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/sign-up_539aaf5a8b0142c0dc4ec9ee2e0eb223.html\";\n\n/***/ }),\n\n/***/ \"yQlI\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/info-app-sumo_49becd49a6a3cb7e4d370c3f05200f26.css\";\n\n/***/ }),\n\n/***/ \"yRMd\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/user-popup_08450b80d49eab0714cc18be43b4c032.css\";\n\n/***/ }),\n\n/***/ \"yiF7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/modal-video-player_e8a174ea1dc3214a30fe6dc6854cc7ba.css\";\n\n/***/ }),\n\n/***/ \"z7A8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/14.png\";\n\n/***/ }),\n\n/***/ \"zH1h\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/video-improve-steps-section_a5c173079725d56c98c9f76579e7903e.css\";\n\n/***/ }),\n\n/***/ \"zJEW\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/male/7.svg\";\n\n/***/ }),\n\n/***/ \"zdW0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"stylesheets/section-sign-up_e771c8691117b44eac411c93cdfc5e75.css\";\n\n/***/ }),\n\n/***/ \"zpKr\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"images/avatars/female/18.svg\";\n\n/***/ }),\n\n/***/ \"zwf9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./404-page.less\": \"QQt/\",\n\t\"./_checkbox-tab.less\": \"Bkei\",\n\t\"./_checkbox.less\": \"7c9p\",\n\t\"./_fonts.less\": \"/Rep\",\n\t\"./_lang.less\": \"N3N4\",\n\t\"./_mixins.less\": \"NItV\",\n\t\"./_slider.less\": \"7JoK\",\n\t\"./activate.less\": \"PZhr\",\n\t\"./aff-modal.less\": \"LUYn\",\n\t\"./analytics.less\": \"8Acd\",\n\t\"./animations.less\": \"lu/X\",\n\t\"./ask-popup.less\": \"kvam\",\n\t\"./auth.less\": \"Skyp\",\n\t\"./bg-video.less\": \"isPM\",\n\t\"./buttons.less\": \"nKgT\",\n\t\"./comments.less\": \"+goU\",\n\t\"./company.less\": \"6bdG\",\n\t\"./contest-landing/challenges-list-section.less\": \"jwTf\",\n\t\"./contest-landing/challenges-list.less\": \"4Y92\",\n\t\"./contest-landing/contact-us-section.less\": \"QqRC\",\n\t\"./contest-landing/contest-days-top-section.less\": \"5MIU\",\n\t\"./contest-landing/contest-days.less\": \"PpkO\",\n\t\"./contest-landing/contest-landing.less\": \"R8gk\",\n\t\"./contest-landing/contest-text-video-section.less\": \"RySD\",\n\t\"./contest-landing/countdown-section.less\": \"67wm\",\n\t\"./contest-landing/countdown.less\": \"Du2S\",\n\t\"./contest-landing/judge-item.less\": \"Ao4C\",\n\t\"./contest-landing/media-sponsors-section.less\": \"Jrnx\",\n\t\"./contest-landing/participate-steps.less\": \"03GZ\",\n\t\"./contest-landing/pre-register-section.less\": \"EepZ\",\n\t\"./contest-landing/pre-register.less\": \"DMU6\",\n\t\"./contest-landing/sponsor-contact-us.less\": \"cmQJ\",\n\t\"./contest-landing/spread-in.less\": \"sCFP\",\n\t\"./contest-landing/title-shadow-block.less\": \"L2qt\",\n\t\"./contest-landing/video-improve-steps-section.less\": \"zH1h\",\n\t\"./contest-landing/video-improve-steps.less\": \"+G96\",\n\t\"./contest-landing/win-prizes-list.less\": \"nSa/\",\n\t\"./contest-landing/win-prizes-section.less\": \"SW67\",\n\t\"./contest/contest.less\": \"Otff\",\n\t\"./contractors.less\": \"wmF7\",\n\t\"./delete-account.less\": \"/78k\",\n\t\"./discount-dialog.less\": \"TnCe\",\n\t\"./drag-drop/drag-item.less\": \"lwEL\",\n\t\"./dropdown-menu.less\": \"Bdsd\",\n\t\"./editor-redirect.less\": \"6gbB\",\n\t\"./edu.less\": \"TBjL\",\n\t\"./f_bsh-button.less\": \"5TC1\",\n\t\"./feedback-slider.less\": \"5j0l\",\n\t\"./fonts/font-ko.less\": \"fbuv\",\n\t\"./fonts/fonts-basic.less\": \"tWLz\",\n\t\"./footer.less\": \"fAML\",\n\t\"./global.less\": \"x7Q4\",\n\t\"./go-share-button.less\": \"HmW0\",\n\t\"./header.less\": \"j8J/\",\n\t\"./landing-template/components/background.less\": \"kfHS\",\n\t\"./landing-template/components/different-devices.less\": \"Ir05\",\n\t\"./landing-template/components/double-circle-progress.less\": \"WgFx\",\n\t\"./landing-template/components/icon-text-list.less\": \"5G1g\",\n\t\"./landing-template/components/relation-list.less\": \"hVBH\",\n\t\"./landing-template/components/sections/section-background-text.less\": \"y+GP\",\n\t\"./landing-template/components/sections/section-bitmap.less\": \"7s+J\",\n\t\"./landing-template/components/sections/section-company-info.less\": \"b+CF\",\n\t\"./landing-template/components/sections/section-company-quote.less\": \"7f+t\",\n\t\"./landing-template/components/sections/section-different-devices.less\": \"LxjB\",\n\t\"./landing-template/components/sections/section-feedback.less\": \"QAC1\",\n\t\"./landing-template/components/sections/section-horizontal-image-text.less\": \"JAU9\",\n\t\"./landing-template/components/sections/section-horizontal-text-video.less\": \"wwNa\",\n\t\"./landing-template/components/sections/section-logo-video-sign-up.less\": \"3PSy\",\n\t\"./landing-template/components/sections/section-sign-up.less\": \"zdW0\",\n\t\"./landing-template/components/sections/section-template-pages-list.less\": \"F6N9\",\n\t\"./landing-template/components/sections/section-text-aside.less\": \"OmPd\",\n\t\"./landing-template/components/sections/section-vertical-text-video.less\": \"MJwn\",\n\t\"./landing-template/components/sections/section-video-gallery.less\": \"NZ2j\",\n\t\"./landing-template/components/sections/section-video-sign-up.less\": \"pLX0\",\n\t\"./landing-template/components/sections/section-video-statistics.less\": \"57HE\",\n\t\"./landing-template/components/sections/section-video-steps.less\": \"k4sW\",\n\t\"./landing-template/components/sections/section-video-time.less\": \"t/nL\",\n\t\"./landing-template/components/template-pages-list-item.less\": \"ZSj8\",\n\t\"./landing-template/components/template-pages-list.less\": \"R8wy\",\n\t\"./landing-template/components/text-block.less\": \"eCEw\",\n\t\"./landing-template/components/title-block.less\": \"5W2z\",\n\t\"./landing-template/landing-template.less\": \"dy9G\",\n\t\"./landing-video-preview.less\": \"MLEj\",\n\t\"./landing/any-landing.less\": \"BjM0\",\n\t\"./landing/banner-bottom.less\": \"nCcs\",\n\t\"./landing/both-landings-common.less\": \"vzSK\",\n\t\"./landing/comparison.less\": \"dLJ7\",\n\t\"./landing/landing-new-bottom.less\": \"LT3T\",\n\t\"./landing/landing-new.less\": \"3Sex\",\n\t\"./landing/landing-top-common.less\": \"9VVx\",\n\t\"./landing/light-landing.less\": \"hqwK\",\n\t\"./landing/masonry-wrapper.less\": \"tjWj\",\n\t\"./landing/medium-landing.less\": \"fUJ1\",\n\t\"./landing/political-landing.less\": \"Rpkd\",\n\t\"./landing/video-gallery.less\": \"KvyJ\",\n\t\"./le-share-button.less\": \"8gmB\",\n\t\"./library.less\": \"UVgn\",\n\t\"./login-modal.less\": \"xlID\",\n\t\"./logo.less\": \"wCd9\",\n\t\"./main.less\": \"3ksy\",\n\t\"./mobile/m-any-landing.less\": \"aiHC\",\n\t\"./mobile/m-company.less\": \"dz0q\",\n\t\"./mobile/m-header.less\": \"S6Z6\",\n\t\"./mobile/m-landing-banner.less\": \"SDKh\",\n\t\"./mobile/m-landing-bottom.less\": \"lSTx\",\n\t\"./mobile/m-landing-common.less\": \"DhCa\",\n\t\"./mobile/m-landing-comparison.less\": \"egLR\",\n\t\"./mobile/m-medium-landing.less\": \"BGDY\",\n\t\"./mobile/m-search-page.less\": \"JE8O\",\n\t\"./mobile/mobile.less\": \"0nYI\",\n\t\"./mobile/wave/m-wave-landing-smmw.less\": \"QHsv\",\n\t\"./mobile/wave/m-wave-landing.less\": \"+m0I\",\n\t\"./mobile/wave/m-wave-pricing.less\": \"hYS4\",\n\t\"./mobile/wave/m-wave-typography.less\": \"BTge\",\n\t\"./mobile/wave/m-webinar.less\": \"kglB\",\n\t\"./modal-video-player.less\": \"yiF7\",\n\t\"./modal.less\": \"0wzA\",\n\t\"./newsWebsite.less\": \"b/cW\",\n\t\"./ng-tags-input.less\": \"Argd\",\n\t\"./notifications.less\": \"x+OW\",\n\t\"./open-editor.less\": \"sM/Y\",\n\t\"./pagination.less\": \"Xy+x\",\n\t\"./popup.less\": \"9uvP\",\n\t\"./pricing.less\": \"BH+f\",\n\t\"./project-upgrade.less\": \"acIy\",\n\t\"./projects.less\": \"dQ5J\",\n\t\"./publish.less\": \"jPQQ\",\n\t\"./scroll-button.less\": \"J0yb\",\n\t\"./search-page.less\": \"mIzu\",\n\t\"./search.less\": \"hACO\",\n\t\"./settings.less\": \"NGqW\",\n\t\"./settings/address.less\": \"we/J\",\n\t\"./settings/info-app-sumo.less\": \"yQlI\",\n\t\"./settings/random-fact.less\": \"Dg8K\",\n\t\"./settings/subscription/containers/subscription-current-plan-container.less\": \"odw/\",\n\t\"./settings/subscription/containers/subscription-invoice-history-container.less\": \"BCWO\",\n\t\"./settings/subscription/containers/subscription-payment-details-container.less\": \"9IMG\",\n\t\"./settings/subscription/containers/subscription-router-modals-container.less\": \"BJa0\",\n\t\"./settings/subscription/messages/subscription-messages.less\": \"UAPN\",\n\t\"./settings/subscription/payment-details/subscription-payment-details-enter-card.less\": \"CxL4\",\n\t\"./settings/subscription/payment-details/subscription-payment-details-with-card.less\": \"n4af\",\n\t\"./settings/subscription/subscription-alert.less\": \"J6t3\",\n\t\"./settings/subscription/subscription-billing-info-form.less\": \"4uz1\",\n\t\"./settings/subscription/subscription-credit-info.less\": \"Xo4n\",\n\t\"./settings/subscription/subscription-current-plan.less\": \"e3be\",\n\t\"./settings/subscription/subscription-invoice-history-table.less\": \"JDnY\",\n\t\"./settings/subscription/subscription-page.less\": \"Hh+C\",\n\t\"./settings/subscription/subscription-title.less\": \"hqAA\",\n\t\"./settings/subscription/subscription-total-price.less\": \"o4OY\",\n\t\"./sign-up-block.less\": \"xpHJ\",\n\t\"./signup.less\": \"j+wj\",\n\t\"./special-upgrade.less\": \"+K6/\",\n\t\"./spinners.less\": \"u8E4\",\n\t\"./studio-responsiveness.less\": \"1uG8\",\n\t\"./subscription.less\": \"g108\",\n\t\"./tabs.less\": \"4eYb\",\n\t\"./thumbnail-picker.less\": \"07M5\",\n\t\"./tutorial.less\": \"xXoS\",\n\t\"./user-info-form.less\": \"IFnZ\",\n\t\"./user-popup.less\": \"yRMd\",\n\t\"./user-section.less\": \"HCXh\",\n\t\"./video-player.less\": \"pbA1\",\n\t\"./video-slider.less\": \"KApX\",\n\t\"./video-steps.less\": \"f+kA\",\n\t\"./wave/_typography.less\": \"wJnc\",\n\t\"./wave/folder/masonry/video-folder-masonry.less\": \"Nlhm\",\n\t\"./wave/folder/video-folder-bottom.less\": \"Cw72\",\n\t\"./wave/folder/video-folder-breadcrumb.less\": \"OjHm\",\n\t\"./wave/folder/video-folder-item.less\": \"Vc67\",\n\t\"./wave/folder/video-folder-move-modal.less\": \"iLwr\",\n\t\"./wave/folder/video-folder-tree-item.less\": \"OAh3\",\n\t\"./wave/tutorial/wave-tutorial-page.less\": \"CDOh\",\n\t\"./wave/tutorial/wave-tutorial-workshops.less\": \"KLH/\",\n\t\"./wave/tutorial/wave-tutorials-item.less\": \"cZf6\",\n\t\"./wave/tutorial/wave-tutorials-list.less\": \"74nn\",\n\t\"./wave/wave-landing-smmw.less\": \"/r0m\",\n\t\"./wave/wave-landing.less\": \"rd/d\",\n\t\"./wave/wave-my-projects.less\": \"hQA3\",\n\t\"./wave/wave-pricing.less\": \"fUhQ\",\n\t\"./wave/wave-project-item.less\": \"jmbb\",\n\t\"./wave/wave-projects.less\": \"15vf\",\n\t\"./wave/wave-section-how-work.less\": \"xU9L\",\n\t\"./wave/wave-template-item.less\": \"aTCW\",\n\t\"./wave/wave-trail.less\": \"omcN\",\n\t\"./wave/wave-user-page.less\": \"GIoJ\",\n\t\"./wave/wave-webinar.less\": \"ekLA\",\n\t\"./wistia-player.less\": \"NTYq\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"zwf9\";\n\n/***/ }),\n\n/***/ \"zyTD\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"html/login_864eb25bec4e8a1fb61279f01de513a8.html\";\n\n/***/ })\n\n/******/ });\n\n\n// WEBPACK FOOTER //\n// javascripts/main-257c10c0995a4d25fa59.min.js"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t151: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"javascripts/\" + ({}[chunkId]||chunkId) + \"-\" + \"257c10c0995a4d25fa59\" + \".min.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://assets.animatron.com/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"NaY7\");\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 257c10c0995a4d25fa59","module.exports = __webpack_public_path__ + \"stylesheets/video-improve-steps_434e922beb0d0c4958c42c135b8cd366.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/video-improve-steps.less\n// module id = +G96\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/special-upgrade_14bc07aaeeff819141fcc3c46f7bd009.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/special-upgrade.less\n// module id = +K6/\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/comments_617675bfb2cd10445614323cb480cfa3.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/comments.less\n// module id = +goU\n// module chunks = 151","import directives from './module';\nimport {Utils} from 'underscore-extensions';\n\ntype TabProps = {width: number, x: number};\nclass TabsCtrl implements ng.IComponentController {\n tabs: string[];\n labels: {[tab: string]: string};\n currentTab: string;\n defaultTab: string;\n changeTab: (obj: {currentTab: string}) => void;\n reloadOnChange: boolean;\n disableBorder: boolean;\n tabsProperties: ng.IPromise;\n transitionSet: boolean;\n path: string;\n firstRun: boolean;\n enableAnimation: boolean;\n isMobileMode: boolean;\n cssSet: boolean;\n config?: {[tab: string]: boolean};\n\n /*@ngInject*/\n constructor(protected $rootScope: ng.IRootScopeService,\n protected $scope: ng.IScope,\n protected $location: ng.ILocationService,\n protected $state: ng.ui.IStateService,\n protected $timeout: ng.ITimeoutService,\n protected $element: ng.IAugmentedJQuery,\n protected $q: ng.IQService) {\n if (_.isUndefined(this.firstRun)) this.firstRun = true;\n if (_.isUndefined(this.isMobileMode)) this.isMobileMode = true;\n this.path = this.$state.current.name;\n this.configureTabs();\n if (!this.defaultTab && this.tabs && this.tabs.length > 0) {\n this.defaultTab = this.tabs[0];\n }\n this.changeTab = this.changeTab || angular.noop;\n this.reloadOnChange = this.reloadOnChange || false;\n\n if (this.firstRun) {\n this.defaultTab && this.onTabChange(this.defaultTab);\n } else {\n this.currentTab = this.defaultTab;\n }\n if (!this.disableBorder) {\n Utils.scopedEvent('resize', this.$scope, _.throttle(() => this.setCss(true), 500));\n }\n\n const destroy = $rootScope.$on('user:login', this.configureTabs.bind(this));\n $scope.$on('$destroy', () => destroy());\n\n }\n\n $onChanges(onChangesObj: ng.IOnChangesObject) {\n this.setCss(true);\n }\n\n activateTab(tab: string) {\n this.onTabChange(tab);\n }\n\n isActive(tab: string) {\n return tab === this.currentTab;\n }\n\n getTabsProperties(cached = true): ng.IPromise {\n return cached && this.tabsProperties || this.computeTabsProperties();\n }\n\n getCurrent(cached = true) {\n return this.getTabsProperties(cached)\n .then(w => w[this.tabs.indexOf(this.currentTab)]);\n }\n\n computeTabsProperties() {\n this.tabsProperties = this.$q(resolve => this.$timeout(() => {\n resolve(_.map(this.$element[0].querySelectorAll(`.tab`), s => ({width: s.offsetWidth, x: s.offsetLeft})));\n }));\n return this.tabsProperties;\n }\n\n setCss(force = false) {\n this.cssSet = true;\n this.getCurrent(!force).then(tabProps => {\n if (!tabProps) return; //if tab is hidden\n const hr = this.$element[0].querySelector(`.hr`);\n if (!hr) return;\n\n const marginProp = `translateX(${tabProps.x}px)`;\n ['mozTransform', 'webkitTransform', 'transform'].map(prop => hr.style[prop] = marginProp);\n hr.style.width = tabProps.width + 'px';\n if (!this.transitionSet && !this.reloadOnChange) {\n this.transitionSet = true;\n this.$timeout(() => Utils.rAF(() =>\n hr.style.transition = 'transform .3s, width .3s ease-in-out')\n );\n }\n });\n }\n\n onTabChange(currentTab: string) {\n if (_.contains(this.tabs, currentTab) && (!this.isActive(currentTab) || !this.cssSet)) {\n this.enableAnimation = !!this.currentTab;\n this.currentTab = currentTab;\n this.changeTab({currentTab});\n if (!this.disableBorder) {\n this.setCss();\n }\n }\n }\n\n protected configureTabs() {\n if (this.config && this.tabs) {\n this.tabs = this.tabs.filter(t => this.config[t] !== true);\n }\n }\n}\n\nclass TabsSubPathCtrl extends TabsCtrl {\n parent: string;\n /*@ngInject*/\n constructor(protected $rootScope: ng.IRootScopeService,\n protected $scope: ng.IScope,\n protected $location: ng.ILocationService,\n protected $state: ng.ui.IStateService,\n protected $timeout: ng.ITimeoutService,\n protected $element: ng.IAugmentedJQuery,\n protected $q: ng.IQService) {\n super($rootScope, $scope, $location, $state, $timeout, $element, $q);\n this.parent = ($state.$current).parent.self.name || $state.current.name;\n const childStates = $state.get().map(s => s.name).filter(s => s.startsWith(this.parent) && s.indexOf('.') > 0);\n this.tabs = childStates.map(s => this.stripParent(s));\n this.configureTabs();\n this.defaultTab = this.defaultTab || this.tabs[0];\n\n const hash = $location.hash();\n if (_.contains(this.tabs, hash)) {\n $location.path(this.addParent(hash, '/'));\n $location.hash('').replace();\n } else if (!_.contains(this.tabs, this.stripParent($state.current.name))) {\n $state.go(this.addParent(this.defaultTab), $state.params);\n }\n\n this.$scope.$watch(() => this.stripParent($state.current.name), this.onTabChange.bind(this));\n }\n\n $postLink() {\n this.$timeout(() => {\n _.each(this.$element[0].querySelectorAll('a'), el => {\n el.href = this.$state.href(this.addParent(el.id), this.$state.params);\n });\n });\n }\n\n activateTab(tab: string) {\n this.$state.go(this.addParent(tab), this.$state.params, {reload: this.reloadOnChange});\n }\n\n onTabChange(currentTab: string) {\n if (this.parent && this.tabs.indexOf(this.stripParent(this.$state.current.name)) !== -1) {\n this.$rootScope.setTitle(this.$state.current.name + '.title');\n super.onTabChange(currentTab);\n }\n }\n\n private stripParent(tab: string) {\n return tab.substring(this.parent.length + 1, tab.length);\n }\n\n private addParent(tab: string, separator = '.') {\n return this.parent + separator + tab;\n }\n}\n\n\nconst directivesMap = {'tabs': TabsCtrl, 'tabsSubPath': TabsSubPathCtrl};\nObject.keys(directivesMap).forEach(name => {\n directives.component(name, {\n controller: directivesMap[name],\n controllerAs: 'Tabs',\n bindings: {\n changeTab: '&',\n defaultTab: '@',\n tabs: '=?',\n reloadOnChange: '=?',\n currentTab: '=?',\n disableBorder: '=?',\n firstRun: '=?',\n config: ' {\n let headerShown = false;\n const enableFooter = () => {\n if (!headerShown) {\n try {\n document.querySelector('footer').style.display = 'block';\n headerShown = true;\n } catch (e) {\n setTimeout(() => enableFooter(), 100);\n }\n }\n };\n return (wrapper?: string) => ({\n setWrapper: /*@ngInject*/ ($rootScope: ng.IRootScopeService, $state: ng.ui.IStateService) => {\n const event = $rootScope.$on('$stateChangeSuccess', () => {\n const product = Utils.getProductByState($state);\n $rootScope.wrapperClass = `${wrapper} wrapper-${product}`;\n enableFooter();\n event();\n });\n }\n });\n})();\n\nexport function setTitle(title?: string) {\n return {\n setTitle: /*@ngInject*/ ($rootScope: ng.IRootScopeService) => {\n const event = $rootScope.$on('$stateChangeSuccess', () => {\n $rootScope.setTitle(title);\n event();\n });\n }\n };\n}\n\nexport function trackVisit(name?: string, params = {}) {\n return {\n trackVisit: /*@ngInject*/ (analyticSvc: AnalyticSvc) => {\n analyticSvc.visitPage(name, params);\n }\n };\n}\n\n\n// if mod is function, execute it, if array execute all functions inside\nexport const loadModule = (mod: any | any[]) => (() => {\n const applyOr = (f: any | any[], or: any | any[]) => _.isFunction(f) ? f() : or;\n return {\n loadModule: /*@ngInject*/ ($ocLazyLoad: oc.ILazyLoad) => {\n const applied = applyOr(mod, _.isArray(mod) ? mod.map(m => applyOr(m, m)) : mod);\n if (applied && applied.then) {\n return applied.then((modules: any) => $ocLazyLoad.load(\n _.flatten([modules])\n .map(m => Object.assign({}, m, {files: m.files.filter((f: any) => !_.isEmpty(f))}))\n ));\n } else {\n return $ocLazyLoad.load(applied);\n }\n }\n };\n})();\n\nexport const redirect = (condition: boolean | Function, callback: Function) =>\n new Promise(resolve => (_.isFunction(condition) ? condition() : condition) ? callback() : resolve());\n\nexport const redirectResolve = (condition: (() => boolean) | boolean, path = '/landing') => ({\n redirect: ['$location', ($location: ng.ILocationService) =>\n redirect(condition, () => $location.path(path))\n ]\n});\n\nexport const redirectForLogin = (path?: string) => ({\n redirect: /*@ngInject*/ ($location: ng.ILocationService) =>\n redirect(options.user.anonymous, () => {\n const currentUrl = $location.url();\n const state = Utils.getProduct(window.location.pathname).toLowerCase();\n const redirectUrl = `/${state}?loginRedirect=${path || encodeURIComponent(currentUrl)}`;\n $location.path(redirectUrl);\n })\n});\n\nexport const nullToEmptyString = (str?: string) => str ? str : '';\n\nexport function stateStudioRedirect($stateProvider: ng.ui.IStateProvider,\n config: ng.ui.IState,\n stateName: string) {\n config = Object.assign({}, config);\n const url = typeof config.url === 'string' && config.url;\n const isStudioState = /^studio-/.test(stateName) || /^\\/studio\\//.test(url);\n\n if (isStudioState) {\n const newStateName = stateName.replace('studio-', '').replace('studio/', '');\n const newUrl = url.replace('studio/', '');\n\n $stateProvider.state(newStateName, {\n url: newUrl,\n params: config.params,\n resolve: {\n redirect: /*@ngInject*/ ($location: ng.ILocationService) => {\n const path = `/studio${$location.url()}`;\n const hasParentState = /\\./g.test(stateName);\n\n !hasParentState && Utils.redirect(path, $location, true);\n }\n }\n });\n }\n return config;\n}\n\nexport function extendState($stateProvider: ng.ui.IStateProvider) {\n const state = $stateProvider.state.bind($stateProvider);\n\n $stateProvider.state = (...params: any[]) => {\n const config: ng.ui.IState = params.pop();\n const stateName = params.length !== 0 && params[0];\n params.push(stateStudioRedirect($stateProvider, config, stateName));\n return state(...params);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/routes/RouteUtils.ts","module.exports = __webpack_public_path__ + \"stylesheets/delete-account_f527ed6d5bc82c385a7035597f54d203.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/delete-account.less\n// module id = /78k\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/_fonts_24e4cdcccfcdaf84ac4e796f9618d86c.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/_fonts.less\n// module id = /Rep\n// module chunks = 151","import directives from '../module';\nimport {HttpSvcFactory} from '../../services/HttpSvc';\nimport {AuthenticationSvc} from '../../services/AuthenticationSvc';\nimport {ProjectPageCtrl} from './ProjectPage';\nimport {Utils} from 'underscore-extensions';\n\nclass CommentsCtrl {\n private readonly MaxLength = 500;\n ProjectPageCtrl: ProjectPageCtrl;\n project: anm.Project;\n sending: boolean;\n deleting: boolean;\n updating: boolean;\n Form: ng.INgModelController;\n\n constructor(private HttpSvc: HttpSvcFactory,\n private AuthenticationSvc: AuthenticationSvc, //used in the template\n private $timeout: ng.ITimeoutService,\n private $filter: ng.IFilterService) {\n }\n\n $onInit() {\n this.ProjectPageCtrl.projectPromise.then((p: anm.Project) => {\n this.project = p;\n this.project.comments.sort((a, b) => a.created_at - b.created_at);\n });\n }\n\n update(comment: anm.Comment, newText: string) {\n if (newText.length > this.MaxLength) return;\n this.updating = true;\n this.HttpSvc('comments', comment.comment_id).securePut(newText)\n .finally(() => this.updating = false);\n comment.text = newText;\n comment.edit = false;\n }\n\n post(post: anm.Comment) {\n if (this.sending) return;\n this.sending = true;\n post.text = this.$filter('stripTags')(post.text);\n this.Form.$setValidity('flood', true);\n this.Form.$setValidity('empty', post.text.length > 0);\n this.Form.$setValidity('maxlength', post.text.length <= this.MaxLength);\n this.$timeout(() => {\n if (this.Form.$valid) {\n this.HttpSvc('comments')\n .securePost({projectId: this.project.id, text: post.text})\n .then(r => r.data).then((response: number | ApiError) => {\n if (Utils.isApiError(response)) {\n this.Form.$setValidity('flood', response.errorMessage !== 'Too many comments');\n console.error(`Cannot add comment`, response)\n } else if (+response !== 0 && !_.isNaN(+response)) {\n this.project.comments.push({comment_id: response, user: options.user, text: post.text});\n post.text = '';\n }\n })\n .finally(() => this.sending = false);\n } else {\n this.sending = false;\n }\n });\n }\n\n delete(id: number) {\n this.deleting = true;\n this.HttpSvc('comments', id).secureDelete().then(() =>\n this.project.comments = this.project.comments.filter(c => c.comment_id !== id)\n ).finally(() => this.deleting = false);\n\n }\n\n canDelete(comment: anm.Comment) {\n return options.user.rolez.Admin ||\n this.myComment(comment) ||\n this.project.owner.username === options.user.username;\n }\n\n canEdit(comment: anm.Comment) {\n return this.myComment(comment) && this.isMyLast(comment);\n }\n\n enterEditMode(comment: anm.Comment) {\n this.project.comments.map(c => c.edit = false);\n comment.edit = true;\n }\n\n private isMyLast(comment: anm.Comment) {\n const last = _.last(this.project.comments.filter(c => !c.deleted && !this.myComment(c)));\n return (last && last.comment_id || 0) < comment.comment_id;\n }\n\n private myComment(comment: anm.Comment): boolean {\n return comment.user.username === options.user.username;\n }\n}\ndirectives.component('comments', {\n controller: CommentsCtrl,\n require: {ProjectPageCtrl: '^projectPage'},\n templateUrl: require('project/comments/comments.html')\n});\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/project/CommentsDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/wave-landing-smmw_6ee5865eaccee2d6de583046c5c1f7b7.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-landing-smmw.less\n// module id = /r0m\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/participate-steps_61bcf94abd74e1acd6ab43b8f35d3600.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/participate-steps.less\n// module id = 03GZ\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/thumbnail-picker_516cd78a8c3e7fccbc3eb4d9fb57c06e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/thumbnail-picker.less\n// module id = 07M5\n// module chunks = 151","var path = 'https://assets.animatron.com/html/user-page.html';\nvar html = \"
{{::$root.t('search.' + (sameUser ? 'your' : 'user') + '.projects')}}
{{::$root.t('project.you.empty')}} {{::animatron.projectsAuthor.displayName.split(' ')[0]}} {{::$root.t('projects.user.empty')}}
{{::$root.t('projects.create')}}
{{::$root.t('projects.user.notfound')}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/user-page.html","module.exports = __webpack_public_path__ + \"images/avatars/female/19.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/19.png\n// module id = 0eTi\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/mobile_33ce5d0a3252748875cb0ddcfa6058c8.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/mobile.less\n// module id = 0nYI\n// module chunks = 151","import services from 'services/module';\nimport {Strings} from 'Strings';\n\nexport class HttpSvc {\n get: (config?: ng.IRequestShortcutConfig) => ng.IHttpPromise;\n delete: (config?: ng.IRequestShortcutConfig) => ng.IHttpPromise;\n post: (data?: any, config?: ng.IRequestShortcutConfig) => ng.IHttpPromise;\n put: (data: any, config?: ng.IRequestShortcutConfig) => ng.IHttpPromise;\n\n secureGet: (config?: ng.IRequestShortcutConfig) => ng.IHttpPromise;\n secureDelete: (config?: ng.IRequestShortcutConfig) => ng.IHttpPromise;\n securePost: (data?: any, config?: ng.IRequestShortcutConfig) => ng.IHttpPromise;\n securePut: (data?: any, config?: ng.IRequestShortcutConfig) => ng.IHttpPromise;\n\n private url: string;\n private readonly path: string;\n private readonly headers: anm.Headers = {};\n\n private readonly methods = ['get', 'post', 'put', 'delete'];\n private readonly methodsWithData = ['post', 'put'];\n\n constructor(private $http: ng.IHttpService, ...path: any[]) {\n this.path = path.join('/');\n this.url = options.apiDomain + '/' + this.path;\n\n this.createRegularMethods();\n this.createSecureMethods();\n }\n\n setApiUrl(url: string) {\n this.url = url + '/' + this.path;\n return this;\n }\n\n chain(path: any) {\n return new HttpSvc(this.$http, this.path, path);\n }\n\n private withData(m: string): boolean {\n return _.contains(this.methodsWithData, m);\n }\n\n private setHeaders(method: string, headers: anm.Headers, params: Array) {\n let [data = {}, config = {}] = params;\n if (!this.withData(method)) {\n config = data;\n }\n config.headers = _.extend(config.headers || {}, headers);\n return this.withData(method) ? [data, config] : [config];\n }\n\n private createRegularMethods() {\n _.each(this.methods, method => {\n this[method] = (...params: string[]) => {\n params = this.setHeaders(method, this.headers, params);\n return this.request(method, params);\n };\n });\n }\n\n private createSecureMethods() {\n _.each(this.methods, method => {\n const newMethod = 'secure' + Strings.capitalize(method);\n this[newMethod] = (...params: any[]) => {\n if (Strings.isBlank(options.headers['Animatron-Security-Token'])) {\n if (console.trace) console.trace();\n throw new Error('Empty cookie');\n }\n params = this.setHeaders(method, options.headers, params);\n return this[method](...params);\n };\n });\n }\n\n private request(methodName: string,\n params: string[],\n retry = true) {\n return this.$http[methodName](this.url, ...params).catch((reason: any) =>\n reason.status === -1 && retry ?\n this.request(methodName, params, false) : Promise.reject(reason)\n );\n }\n\n}\n\nexport type HttpSvcFactory = (...url: any[]) => HttpSvc;\n\nfunction HttpSvcFactory($http: ng.IHttpService) {\n return (...url: string[]) => new HttpSvc($http, ...url);\n}\n\nservices.service('HttpSvc', HttpSvcFactory);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/HttpSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/modal_00989dd4b47de8bc5c22825dcd8d5ebc.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/modal.less\n// module id = 0wzA\n// module chunks = 151","var map = {\n\t\"./banner-video-preview_x2.jpg\": \"rJ0m\",\n\t\"./card-maker.png\": \"h+vD\",\n\t\"./creativity.png\": \"HN/J\",\n\t\"./light-presentation-image.png\": \"KV5y\",\n\t\"./pattern-light-landing-bottom.svg\": \"nNID\",\n\t\"./video-maker.png\": \"SXt6\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"0zt+\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/light ^\\.\\/.*$\n// module id = 0zt+\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/wave-projects_54184c5f320836a52d9763a4bf662678.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-projects.less\n// module id = 15vf\n// module chunks = 151","var map = {\n\t\"./education.html\": \"gsWG\",\n\t\"./week1.html\": \"CM5t\",\n\t\"./week2.html\": \"DHQn\",\n\t\"./week3.html\": \"6cC1\",\n\t\"./week4.html\": \"Wmao\",\n\t\"./week5.html\": \"ovcP\",\n\t\"./week6.html\": \"Oquy\",\n\t\"./week7.html\": \"XKv6\",\n\t\"./week8.html\": \"eWSb\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"1S0N\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/education ^\\.\\/.*\\.html$\n// module id = 1S0N\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/studio-header_4ed2ce1bb9ae112e2578755cbc5a8e80.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/studio-header.html\n// module id = 1aEF\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/studio-responsiveness_0d63adb360b437e94760fa672954909d.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/studio-responsiveness.less\n// module id = 1uG8\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/top-layout_9b95e61e5c017537657e059804636bd9.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/top-layout.html\n// module id = 23em\n// module chunks = 151","/**\n * To add new page, create new json object with the same structure as the ones below.\n * Most values should be key references to i18n files. So translations should also be written in app/assets/i18n/m_*.properties files\n * It is essential that all properties are present and have correct names.\n * Images are stored in app/assets/images/landing/medium folder, but here should only be filename.\n */\n\nexport default ([\n {\n url: 'studio/presentation-maker',\n title: 'medium.presentation.title',\n description: 'medium.presentation.description',\n preview: 'medium-presentation1.jpg',\n topVideoListSection: {\n title: 'medium.presentation.h1',\n description: 'medium.presentation.h2',\n list: [\n 'medium.top-list1',\n 'medium.top-list2',\n 'medium.top-list3',\n 'medium.top-list4',\n 'medium.top-list5'\n ],\n modalVideo: {\n preview: 'medium-presentation1.jpg',\n playerUrl: 'https://publish.animatron.io/583d7b49e15b4493339e49d3.json',\n alt: 'medium.presentation.alt1'\n }\n },\n barListSection: {\n title: 'medium.make-presentation-title',\n btnUrl: 'https://editor.animatron.com',\n list: [\n {\n title: 'medium.make-presentation-title1',\n content: 'medium.make-presentation-content1'\n },\n {\n title: 'medium.make-presentation-title2',\n content: 'medium.make-presentation-content2'\n },\n {\n title: 'medium.make-presentation-title3',\n content: 'medium.make-presentation-content3'\n },\n {\n title: 'medium.make-presentation-title4',\n content: 'medium.make-presentation-content4'\n }\n ],\n btn: 'medium.make-presentation-button'\n },\n verticalListSection: {\n title: 'medium.animated-presentation-title',\n description: 'medium.animated-presentation-description',\n list: [\n {\n title: 'medium.animated-presentation-title1',\n content: 'medium.animated-presentation-content1',\n icon: 'animated-presentation/img1.svg',\n alt: 'medium.animated-presentation-title1'\n },\n {\n title: 'medium.animated-presentation-title2',\n content: 'medium.animated-presentation-content2',\n icon: 'animated-presentation/img2.svg'\n },\n {\n title: 'medium.animated-presentation-title3',\n content: 'medium.animated-presentation-content3',\n icon: 'animated-presentation/img3.svg'\n },\n {\n title: 'medium.animated-presentation-title4',\n content: 'medium.animated-presentation-content4',\n icon: 'animated-presentation/img4.svg'\n }\n ],\n btn: 'medium.animated-presentation-button',\n btnUrl: 'https://editor.animatron.com'\n },\n relatedLandings: {}\n },\n {\n url: 'studio/whiteboard-animation-software',\n title: 'medium.whiteboard.title',\n description: 'medium.whiteboard.description',\n preview: 'whiteboard/medium-whiteboard-image.jpg',\n topVideoListSection: {\n title: 'medium.whiteboard.h1',\n description: 'medium.whiteboard.h2',\n list: [\n 'medium.whiteboard-list1',\n 'medium.whiteboard-list2',\n 'medium.whiteboard-list3',\n 'medium.whiteboard-list4',\n 'medium.whiteboard-list5'\n ],\n modalVideo: {\n preview: 'whiteboard/medium-whiteboard-image.jpg',\n youtubeId: 'NU-0qpoD7Yk',\n alt: 'medium.whiteboard.description'\n }\n },\n barListSection: {\n title: 'medium.make-whiteboard-title',\n list: [\n {\n title: 'medium.make-whiteboard-title1',\n content: 'medium.make-whiteboard-content1'\n },\n {\n title: 'medium.make-whiteboard-title2',\n content: 'medium.make-whiteboard-content2'\n },\n {\n title: 'medium.make-whiteboard-title3',\n content: 'medium.make-whiteboard-content3'\n },\n {\n title: 'medium.make-whiteboard-title4',\n content: 'medium.make-whiteboard-content4'\n }\n ],\n btnUrl: 'https://editor.animatron.com',\n btn: 'medium.make-whiteboard-button'\n },\n verticalListSection: {\n title: 'medium.whiteboard-video-title',\n description: 'medium.whiteboard-video-description',\n list: [\n {\n title: 'medium.whiteboard-video-title1',\n content: 'medium.whiteboard-video-content1',\n icon: 'whiteboard/icon1.svg'\n },\n {\n title: 'medium.whiteboard-video-title2',\n content: 'medium.whiteboard-video-content2',\n icon: 'whiteboard/icon2.svg'\n },\n {\n title: 'medium.whiteboard-video-title3',\n content: 'medium.whiteboard-video-content3',\n icon: 'whiteboard/icon3.svg'\n },\n {\n title: 'medium.whiteboard-video-title4',\n content: 'medium.whiteboard-video-content4',\n icon: 'whiteboard/icon4.svg'\n }\n ],\n btnUrl: 'https://editor.animatron.com',\n btn: 'medium.whiteboard-video-button'\n },\n relatedLandings: {}\n },\n {\n url: 'studio/lite-mode',\n title: 'medium.litemode.title',\n description: 'medium.litemode.description',\n preview: 'litemode/1.png',\n topVideoListSection: {\n title: 'medium.litemode.h1',\n description: 'medium.litemode.h2',\n list: [\n 'medium.litemode-list1',\n 'medium.litemode-list2',\n 'medium.litemode-list3',\n 'medium.litemode-list4',\n 'medium.litemode-list5'\n ],\n modalVideo: {\n preview: 'litemode/1.png',\n youtubeId: 'StEBsxh0I6s',\n alt: 'medium.litemode-alt1'\n }\n },\n barListSection: {\n title: 'medium.why-litemode-title',\n list: [\n {\n title: 'medium.why-litemode-title1',\n content: 'medium.why-litemode-content1'\n },\n {\n title: 'medium.why-litemode-title2',\n content: 'medium.why-litemode-content2'\n },\n {\n title: 'medium.why-litemode-title3',\n content: 'medium.why-litemode-content3'\n },\n {\n title: 'medium.why-litemode-title4',\n content: 'medium.why-litemode-content4'\n }\n ],\n btnUrl: 'https://editor.animatron.com',\n btn: 'medium.why-litemode-button'\n },\n verticalListSection: {\n title: 'medium.more-litemode-title',\n description: 'medium.more-litemode-description',\n list: [\n {\n title: 'medium.more-litemode-title1',\n content: 'medium.more-litemode-content1',\n imageUrl: 'litemode/img1.gif',\n alt: 'medium.litemode-alt2'\n },\n {\n title: 'medium.more-litemode-title2',\n content: 'medium.more-litemode-content2',\n imageUrl: 'litemode/img2.gif',\n alt: 'medium.litemode-alt3'\n },\n {\n title: 'medium.more-litemode-title3',\n content: 'medium.more-litemode-content3',\n imageUrl: 'litemode/img3.gif',\n alt: 'medium.litemode-alt4'\n },\n {\n title: 'medium.more-litemode-title4',\n content: 'medium.more-litemode-content4',\n imageUrl: 'litemode/img4.gif',\n alt: 'medium.litemode-alt5'\n }\n ],\n btnUrl: 'http://www.animatron.com/blog/whats-new-in-animatron-lite-mode-whiteboard-animation-and-more/',\n btn: 'medium.more-litemode-button'\n },\n videoSamples: {\n title: 'medium.litemode-samples.title',\n description: 'medium.litemode-samples.description',\n list: [\n 'NU-0qpoD7Yk',\n '13mGg5gmPL4',\n 'TxyPmfybDlw'\n ]\n },\n relatedLandings: {}\n },\n {\n url: 'studio/animation-for-agencies',\n title: 'medium.agencies.title',\n description: 'medium.agencies.description',\n preview: 'agencies/1.png',\n topVideoListSection: {\n title: 'medium.agencies.h1',\n description: 'medium.agencies.h2',\n list: [\n 'medium.agencies-list1',\n 'medium.agencies-list2',\n 'medium.agencies-list3',\n 'medium.agencies-list4',\n 'medium.agencies-list5'\n ],\n modalVideo: {\n preview: 'agencies/1.png',\n youtubeId: 'StEBsxh0I6s',\n alt: 'medium.agencies-alt1'\n }\n },\n textSections: {\n order: 1,\n bgColor: true,\n list: [\n {\n title: 'medium.agencies.text-section-1.title',\n content: 'medium.agencies.text-section-1.content',\n btnUrl: 'https://editor.animatron.com'\n }\n ]\n },\n barListSection: {\n order: 3,\n bgColor: true,\n title: 'medium.agencies-title',\n btnUrl: 'https://editor.animatron.com',\n list: [\n {\n title: 'medium.agencies-title1',\n content: 'medium.agencies-content1'\n },\n {\n title: 'medium.agencies-title2',\n content: 'medium.agencies-content2'\n },\n {\n title: 'medium.agencies-title3',\n content: 'medium.agencies-content3'\n },\n {\n title: 'medium.agencies-title4',\n content: 'medium.agencies-content4'\n }\n ],\n btn: 'medium.agencies-button'\n },\n verticalListSection: {\n order: 4,\n title: 'medium.why-agencies-title',\n btnUrl: 'https://editor.animatron.com',\n description: 'medium.why-agencies-description',\n list: [\n {\n title: 'medium.why-agencies-title1',\n content: 'medium.why-agencies-content1',\n icon: 'agencies/AGENCIES_1.svg'\n },\n {\n title: 'medium.why-agencies-title2',\n content: 'medium.why-agencies-content2',\n icon: 'agencies/AGENCIES_2.svg'\n },\n {\n title: 'medium.why-agencies-title3',\n content: 'medium.why-agencies-content3',\n icon: 'agencies/AGENCIES_3.svg'\n },\n {\n title: 'medium.why-agencies-title4',\n content: 'medium.why-agencies-content4',\n icon: 'agencies/AGENCIES_4.svg'\n }\n ],\n btn: 'medium.why-agencies-button'\n },\n videoSamples: {\n order: 2,\n title: 'medium.agencies-samples.title',\n description: 'medium.agencies-samples.description',\n list: [\n '4ZNaLnVaGj8',\n 'NU-0qpoD7Yk',\n 'UjmaE78NyB4',\n 'h0iARjYhbHY',\n 'LhyXWD-Ua-w',\n '8Rq75fMP8v8'\n ]\n },\n relatedLandings: {\n order: 5,\n bgColor: true\n }\n },\n {\n url: 'studio/animation-for-designers',\n title: 'medium.designers.title',\n description: 'medium.designers.description',\n preview: 'designers/1.png',\n topVideoListSection: {\n title: 'medium.designers.h1',\n description: 'medium.designers.h2',\n list: [\n 'medium.designers-list1',\n 'medium.designers-list2',\n 'medium.designers-list3',\n 'medium.designers-list4',\n 'medium.designers-list5'\n ],\n modalVideo: {\n preview: 'designers/1.png',\n youtubeId: 'C7QXCTcQvCA',\n alt: 'medium.designers-alt1'\n }\n },\n textSections: {\n order: 1,\n list: [\n {\n title: 'medium.designers.text-section-1.title',\n content: 'medium.designers.text-section-1.content'\n }\n ]\n },\n barListSection: {\n order: 3,\n bgColor: true,\n title: 'medium.designers-title',\n btnUrl: 'https://editor.animatron.com',\n list: [\n {\n title: 'medium.designers-title1',\n content: 'medium.designers-content1'\n },\n {\n title: 'medium.designers-title2',\n content: 'medium.designers-content2'\n },\n {\n title: 'medium.designers-title3',\n content: 'medium.designers-content3'\n },\n {\n title: 'medium.designers-title4',\n content: 'medium.designers-content4'\n }\n ],\n btn: 'medium.designers-button'\n },\n videoSamples: {\n order: 2,\n description: 'medium.designers-samples.description',\n list: [\n '5lmn5G2SM1Q',\n 'nL8KXi-Ebpg',\n 'Hsb8Hnxnyyw'\n ]\n },\n verticalListSection: {\n order: 4,\n title: 'medium.why-designers-title',\n btnUrl: 'https://editor.animatron.com',\n description: 'medium.why-designers-description',\n list: [\n {\n title: 'medium.why-designers-title1',\n content: 'medium.why-designers-content1',\n icon: 'wave/wave-heart.svg'\n },\n {\n title: 'medium.why-designers-title2',\n content: 'medium.why-designers-content2',\n icon: 'wave/wave-heart.svg'\n },\n {\n title: 'medium.why-designers-title3',\n content: 'medium.why-designers-content3',\n icon: 'wave/wave-heart.svg'\n },\n {\n title: 'medium.why-designers-title4',\n content: 'medium.why-designers-content4',\n icon: 'wave/wave-heart.svg'\n }\n ],\n btn: 'medium.why-designers-button'\n },\n relatedLandings: {\n order: 5,\n bgColor: true\n }\n },\n {\n url: 'studio/stock-footage',\n title: 'medium.stock.title',\n description: 'medium.stock.description',\n preview: 'stock/preview.png',\n bgVideoSection: {\n title: 'medium.stock.h1',\n videoUrl: 'stock/videostock_720p',\n btnUrl: 'https://www.animatron.com/',\n btn: 'medium.stock.button'\n },\n textSections: {\n order: 1,\n list: [\n {\n title: 'medium.stock.header-content.title',\n content: 'medium.stock.header-content.content'\n }\n ]\n },\n verticalListSection: {\n order: 3,\n title: 'medium.stock.vertical-list.title',\n bgColor: true,\n list: [\n {\n title: 'medium.why-stock-title1',\n content: 'medium.stock.vertical-list.content-1',\n icon: 'wave/wave-heart.svg'\n },\n {\n title: 'medium.why-stock-title2',\n content: 'medium.stock.vertical-list.content-2',\n icon: 'wave/wave-heart.svg'\n },\n {\n title: 'medium.why-stock-title3',\n content: 'medium.stock.vertical-list.content-3',\n icon: 'wave/wave-heart.svg'\n },\n {\n title: 'medium.why-stock-title4',\n content: 'medium.stock.vertical-list.content-4',\n icon: 'wave/wave-heart.svg'\n }\n ],\n btnUrl: 'https://www.animatron.com/',\n btn: 'medium.stock.vertical-list.btn'\n },\n videoSamples: {\n order: 2,\n title: 'medium.stock-samples.title',\n description: 'medium.stock-samples.description',\n list: [\n '5lmn5G2SM1Q',\n 'Vm_W4CX72rw',\n 'Hsb8Hnxnyyw'\n ]\n },\n relatedLandings: {\n order: 4\n }\n },\n {\n url: 'wave/social-video-maker',\n title: 'wv.social.video.title',\n description: 'wv.social.video.description',\n preview: 'wave/preview.png',\n bgVideoSection: {\n title: 'wv.social.video.h1',\n videoUrl: 'wave/social',\n btnUrl: '/wave/signup',\n editorRedirect: true,\n btn: 'medium.social.video.btn-try-now'\n },\n textSections: {\n order: 1,\n list: [\n {\n title: 'medium.social.video.header-content.title',\n content: 'medium.social.video.header-content.content'\n }\n ]\n },\n horizontalListSection: {\n order: 2,\n bgColor: true,\n title: 'medium.social.video.horizontal-list.title',\n list: [\n {\n content: 'medium.social.video.horizontal-list.content1'\n },\n {\n content: 'medium.social.video.horizontal-list.content2'\n },\n {\n content: 'medium.social.video.horizontal-list.content3'\n }\n ]\n },\n verticalListSection: {\n order: 4,\n title: 'medium.social.video.vertical-list.title',\n list: [\n {\n content: 'medium.social.video.vertical-list.content-1',\n icon: 'wave/wave-heart.svg'\n },\n {\n content: 'medium.social.video.vertical-list.content-2',\n icon: 'wave/wave-heart.svg'\n },\n {\n content: 'medium.social.video.vertical-list.content-3',\n icon: 'wave/wave-heart.svg'\n }\n ],\n btnUrl: '/wave/signup',\n editorRedirect: true,\n btn: 'medium.wave.vertical-list.btn'\n },\n videoSlider: {\n order: 3,\n title: 'medium.wave.video-slider.title',\n description: 'medium.wave.video-slider.description',\n list: [\n {\n preview: 'wave/swimsuit_square.png',\n url: 'wave/swimsuit_square'\n },\n {\n preview: 'wave/swimsuit_mobile.png',\n url: 'wave/swimsuit_mobile'\n },\n {\n preview: 'wave/swimsuit_desktop.png',\n url: 'wave/swimsuit_desktop'\n }\n ],\n editorRedirect: true,\n btn: 'medium.wave.video-slider.btn',\n btnUrl: '/wave/signup'\n\n }\n },\n {\n url: 'wave/small-business-video',\n title: 'wv.business.video.title',\n description: 'wv.business.video.description',\n preview: 'wave/business_preview.png',\n bgVideoSection: {\n title: 'wv.business.video.h1',\n videoUrl: 'wave/small_business',\n btnUrl: '/wave/signup',\n editorRedirect: true,\n btn: 'medium.social.video.btn-try-now'\n },\n textSections: {\n order: 1,\n list: [\n {\n title: 'medium.business.video.header-content.title',\n content: 'medium.business.video.header-content.content'\n }\n ]\n },\n horizontalListSection: {\n order: 4,\n title: 'medium.business.video.horizontal-list.title',\n list: [\n {\n content: 'medium.business.video.horizontal-list.content1'\n },\n {\n content: 'medium.business.video.horizontal-list.content2'\n },\n {\n content: 'medium.business.video.horizontal-list.content3'\n }\n ]\n },\n verticalListSection: {\n order: 3,\n bgColor: true,\n title: 'medium.business.video.vertical-list.title',\n list: [\n {\n content: 'medium.business.video.vertical-list.content-1',\n icon: 'wave/wave-heart.svg'\n },\n {\n content: 'medium.business.video.vertical-list.content-2',\n icon: 'wave/wave-heart.svg'\n },\n {\n content: 'medium.business.video.vertical-list.content-3',\n icon: 'wave/wave-heart.svg'\n },\n {\n content: 'medium.business.video.vertical-list.content-4',\n icon: 'wave/wave-heart.svg'\n }\n ],\n btnUrl: '/wave/signup',\n editorRedirect: true,\n btn: 'medium.wave.vertical-list.btn'\n },\n videoSamples: {\n order: 2,\n title: 'medium.business-samples.title',\n description: 'medium.business-samples.description',\n list: [\n '8Rq75fMP8v8',\n 'Vm_W4CX72rw',\n 'LhyXWD-Ua-w'\n ],\n editorRedirect: true,\n btn: 'medium.wave.video-slider.btn',\n btnUrl: '/wave/signup'\n }\n },\n {\n url: 'wave/blog-video',\n title: 'wv.blog.video.title',\n description: 'wv.blog.video.description',\n preview: 'wave/blog.png',\n bgVideoSection: {\n title: 'wv.blog.video.h1',\n videoUrl: 'wave/blog',\n btnUrl: '/wave/signup',\n editorRedirect: true,\n btn: 'medium.social.video.btn-try-now'\n },\n textSections: {\n order: 1,\n list: [\n {\n title: 'medium.blog.header-content.title',\n content: 'medium.blog.header-content.content'\n }\n ]\n },\n horizontalListSection: {\n order: 3,\n bgColor: true,\n title: 'medium.blog.horizontal-list.title',\n list: [\n {\n content: 'medium.blog.horizontal-list.content1'\n },\n {\n content: 'medium.blog.horizontal-list.content2'\n },\n {\n content: 'medium.blog.horizontal-list.content3'\n }\n ]\n },\n verticalListSection: {\n order: 4,\n title: 'medium.blog.vertical-list.title',\n list: [\n {\n content: 'medium.blog.vertical-list.content-1',\n icon: 'wave/wave-heart.svg'\n },\n {\n content: 'medium.social.video.vertical-list.content-2',\n icon: 'wave/wave-heart.svg'\n },\n {\n content: 'medium.social.video.vertical-list.content-3',\n icon: 'wave/wave-heart.svg'\n }\n ],\n btnUrl: '/wave/signup',\n editorRedirect: true,\n btn: 'medium.wave.vertical-list.btn'\n },\n videoSlider: {\n order: 2,\n title: 'medium.blog.video-slider.title',\n description: 'medium.blog.video-slider.description',\n list: [\n {\n preview: 'wave/skiing_square.png',\n alt: 'medium.blog-video.alt1',\n url: 'wave/skiing_square'\n },\n {\n preview: 'wave/skiing_mobile.png',\n alt: 'medium.blog-video.alt2',\n url: 'wave/skiing_mobile'\n },\n {\n preview: 'wave/skiing_desktop.png',\n alt: 'medium.blog-video.alt3',\n url: 'wave/skiing_desktop'\n }\n ],\n editorRedirect: true,\n btn: 'medium.wave.video-slider.btn',\n btnUrl: '/wave/signup'\n\n }\n }\n]) as anm.MediumLandingDef[];\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/MediumLandingPages.ts","module.exports = __webpack_public_path__ + \"i18n/ru_a9ddfd9dc72fecdca78eef7a14a4b2b0.json\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/i18n/ru.json\n// module id = 2MCb\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/8.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/8.svg\n// module id = 2wJH\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-8.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-8.png\n// module id = 2wXK\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/6.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/6.svg\n// module id = 390S\n// module chunks = 151","import directives from '../module';\nimport {Utils} from '../../underscore-extensions';\n\nclass EditableCtrl implements ng.IComponentController {\n onChange: Function = this.onChange || angular.noop;\n maxlength: number = this.maxlength || 500;\n\n private editorEnabled = false;\n private textareaE: HTMLInputElement;\n private owner: boolean;\n private notAllowEmpty: boolean;\n private model: string;\n private prevModel: string;\n private editModel: string;\n private isEditable: string;\n private tag: string;\n private defaultMsg: string;\n\n constructor(private $scope: ng.IScope,\n private $element: ng.IAugmentedJQuery,\n private $filter: ng.IFilterService,\n private $timeout: ng.ITimeoutService,\n private $compile: ng.ICompileService) {\n if (this.isEditable) {\n this.enableEditor();\n }\n }\n\n $postLink() {\n this.textareaE = this.$element[0].querySelector('.textarea') as HTMLInputElement;\n const textEl = this.$element[0].querySelector('#text-el');\n\n textEl.innerHTML = textEl.innerHTML.replace(/div/, this.tag);\n this.$compile(textEl)(this.$scope);\n }\n\n private unEdit($event: Event) {\n this.editorEnabled = false;\n\n if (this.notAllowEmpty && this.editModel === '') {\n this.editModel = this.model;\n } else {\n this.model = this.$filter('stripTags')(angular.copy(this.editModel));\n }\n\n if (this.model === this.prevModel) {\n this.prevModel = '';\n return;\n }\n\n this.prevModel = this.model;\n this.$element[0].classList.remove('editing');\n if ($event != null) $event.preventDefault();\n this.onChange({$event: this.model});\n Utils.rAF(() => this.textareaE.blur());\n }\n\n private unEditNoSave($event: Event) {\n this.editorEnabled = false;\n this.$element[0].classList.remove('editing');\n this.editModel = this.model;\n if ($event != null) $event.preventDefault();\n }\n\n private enableEditor() {\n if (!this.owner) return;\n this.editModel = angular.copy(this.model);\n this.editorEnabled = true;\n this.$element[0].classList.add('editing');\n Utils.rAF(() => {\n this.textareaE.focus();\n this.textareaE.select();\n this.textareaE.setSelectionRange(0, 9999); // fix for IOS\n });\n }\n}\n\ndirectives.component('editable', {\n bindings: {\n 'model': '=model',\n 'owner': '=',\n 'defaultMsg': '@',\n 'tag': '@',\n isEditable: ' {\n showSuccessMessage && _.notification.showSuccess(this.$rootScope.t(`${productWord}.remove.success`));\n this.$rootScope.$emit('project:remove', id);\n });\n }\n\n getRenderedVideo(id: string) {\n return this.HttpSvc('project/resources/video', id)\n .get()\n .then((res: ApiError | any) => {\n return res.data.errorCode ? this.$q.reject(res.data.errorMessage) : res.data;\n });\n }\n}\n\nservices.service('httpProjectSvc', HttpProjectSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/HttpProjectSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/landing-new_e07c1a85372ce9833323a8c62f96997c.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/landing-new.less\n// module id = 3Sex\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/main_5d911899771c68e1c535d96208a52557.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/main.less\n// module id = 3ksy\n// module chunks = 151","/**\n * oclazyload - Load modules on demand (lazy load) with angularJS\n * @version v0.5.2\n * @link https://github.com/ocombe/ocLazyLoad\n * @license MIT\n * @author Olivier Combe \n */\n(function() {\n 'use strict';\n var regModules = ['ng'],\n initModules = [],\n regInvokes = {},\n regConfigs = [],\n justLoaded = [],\n runBlocks = {},\n ocLazyLoad = angular.module('oc.lazyLoad', ['ng']),\n broadcast = angular.noop;\n\n ocLazyLoad.provider('$ocLazyLoad', ['$controllerProvider', '$provide', '$compileProvider', '$filterProvider', '$injector', '$animateProvider',\n function($controllerProvider, $provide, $compileProvider, $filterProvider, $injector, $animateProvider) {\n var modules = {},\n providers = {\n $controllerProvider: $controllerProvider,\n $compileProvider: $compileProvider,\n $filterProvider: $filterProvider,\n $provide: $provide, // other things\n $injector: $injector,\n $animateProvider: $animateProvider\n },\n anchor = document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0],\n jsLoader, cssLoader, templatesLoader,\n debug = false,\n events = false;\n\n // Let's get the list of loaded modules & components\n init(angular.element(window.document));\n\n this.$get = ['$log', '$q', '$templateCache', '$http', '$rootElement', '$rootScope', '$cacheFactory', '$interval', function($log, $q, $templateCache, $http, $rootElement, $rootScope, $cacheFactory, $interval) {\n var instanceInjector,\n filesCache = $cacheFactory('ocLazyLoad'),\n uaCssChecked = false,\n useCssLoadPatch = false;\n\n if(!debug) {\n $log = {};\n $log['error'] = angular.noop;\n $log['warn'] = angular.noop;\n $log['info'] = angular.noop;\n }\n\n // Make this lazy because at the moment that $get() is called the instance injector hasn't been assigned to the rootElement yet\n providers.getInstanceInjector = function() {\n return (instanceInjector) ? instanceInjector : (instanceInjector = ($rootElement.data('$injector') || angular.injector()));\n };\n\n broadcast = function broadcast(eventName, params) {\n if(events) {\n $rootScope.$broadcast(eventName, params);\n }\n if(debug) {\n $log.info(eventName, params);\n }\n }\n\n /**\n * Load a js/css file\n * @param type\n * @param path\n * @returns promise\n */\n var buildElement = function buildElement(type, path, params) {\n var deferred = $q.defer(),\n el, loaded,\n cacheBuster = function cacheBuster(url) {\n var dc = new Date().getTime();\n if(url.indexOf('?') >= 0) {\n if(url.substring(0, url.length - 1) === '&') {\n return url + '_dc=' + dc;\n }\n return url + '&_dc=' + dc;\n } else {\n return url + '?_dc=' + dc;\n }\n };\n\n // Store the promise early so the file load can be detected by other parallel lazy loads\n // (ie: multiple routes on one page) a 'true' value isn't sufficient\n // as it causes false positive load results.\n if(angular.isUndefined(filesCache.get(path))) {\n filesCache.put(path, deferred.promise);\n }\n\n // Switch in case more content types are added later\n switch(type) {\n case 'css':\n el = document.createElement('link');\n el.type = 'text/css';\n el.rel = 'stylesheet';\n el.href = params.cache === false ? cacheBuster(path) : path;\n break;\n case 'js':\n el = document.createElement('script');\n el.src = params.cache === false ? cacheBuster(path) : path;\n break;\n default:\n deferred.reject(new Error('Requested type \"' + type + '\" is not known. Could not inject \"' + path + '\"'));\n break;\n }\n el.onload = el['onreadystatechange'] = function(e) {\n if((el['readyState'] && !(/^c|loade/.test(el['readyState']))) || loaded) return;\n el.onload = el['onreadystatechange'] = null\n loaded = 1;\n broadcast('ocLazyLoad.fileLoaded', path);\n deferred.resolve();\n }\n el.onerror = function(e) {\n deferred.reject(new Error('Unable to load ' + path));\n }\n el.async = params.serie ? 0 : 1;\n\n var insertBeforeElem = anchor.lastChild;\n if(params.insertBefore) {\n var element = angular.element(params.insertBefore);\n if(element && element.length > 0) {\n insertBeforeElem = element[0];\n }\n }\n anchor.insertBefore(el, insertBeforeElem);\n\n /*\n The event load or readystatechange doesn't fire in:\n - iOS < 6 (default mobile browser)\n - Android < 4.4 (default mobile browser)\n - Safari < 6 (desktop browser)\n */\n if(type == 'css') {\n if(!uaCssChecked) {\n var ua = navigator.userAgent.toLowerCase();\n\n // iOS < 6\n if(/iP(hone|od|ad)/.test(navigator.platform)) {\n var v = (navigator.appVersion).match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var iOSVersion = parseFloat([parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)].join('.'));\n useCssLoadPatch = iOSVersion < 6;\n } else if(ua.indexOf(\"android\") > -1) { // Android < 4.4\n var androidVersion = parseFloat(ua.slice(ua.indexOf(\"android\") + 8));\n useCssLoadPatch = androidVersion < 4.4;\n } else if(ua.indexOf('safari') > -1 && ua.indexOf('chrome') == -1 && ua.indexOf('phantomjs') == -1) {\n var safariVersion = parseFloat(ua.match(/version\\/([\\.\\d]+)/i)[1]);\n useCssLoadPatch = safariVersion < 6;\n }\n }\n\n if(useCssLoadPatch) {\n var tries = 1000; // * 20 = 20000 miliseconds\n var interval = $interval(function() {\n try {\n el.sheet.cssRules;\n $interval.cancel(interval);\n el.onload();\n } catch(e) {\n if(--tries <= 0) {\n el.onerror();\n }\n }\n }, 20);\n }\n }\n\n return deferred.promise;\n }\n\n if(angular.isUndefined(jsLoader)) {\n /**\n * jsLoader function\n * @type Function\n * @param paths array list of js files to load\n * @param callback to call when everything is loaded. We use a callback and not a promise\n * @param params object config parameters\n * because the user can overwrite jsLoader and it will probably not use promises :(\n */\n jsLoader = function(paths, callback, params) {\n var promises = [];\n angular.forEach(paths, function loading(path) {\n promises.push(buildElement('js', path, params));\n });\n $q.all(promises).then(function success() {\n callback();\n }, function error(err) {\n callback(err);\n });\n }\n jsLoader.ocLazyLoadLoader = true;\n }\n\n if(angular.isUndefined(cssLoader)) {\n /**\n * cssLoader function\n * @type Function\n * @param paths array list of css files to load\n * @param callback to call when everything is loaded. We use a callback and not a promise\n * @param params object config parameters\n * because the user can overwrite cssLoader and it will probably not use promises :(\n */\n cssLoader = function(paths, callback, params) {\n var promises = [];\n angular.forEach(paths, function loading(path) {\n promises.push(buildElement('css', path, params));\n });\n $q.all(promises).then(function success() {\n callback();\n }, function error(err) {\n callback(err);\n });\n }\n cssLoader.ocLazyLoadLoader = true;\n }\n\n if(angular.isUndefined(templatesLoader)) {\n /**\n * templatesLoader function\n * @type Function\n * @param paths array list of css files to load\n * @param callback to call when everything is loaded. We use a callback and not a promise\n * @param params object config parameters for $http\n * because the user can overwrite templatesLoader and it will probably not use promises :(\n */\n templatesLoader = function(paths, callback, params) {\n var promises = [];\n angular.forEach(paths, function(url) {\n var deferred = $q.defer();\n promises.push(deferred.promise);\n $http.get(url, params).then(function(response) {\n return response.data;\n }).then(function (data) {\n if (angular.isString(data) && data.length > 0) {\n $templateCache.put(url, data);\n }\n if (angular.isUndefined(filesCache.get(url))) {\n filesCache.put(url, true);\n }\n deferred.resolve();\n }).catch(function (err) {\n deferred.reject(new Error('Unable to load template file \"' + url + '\": ' + err));\n });\n });\n return $q.all(promises).then(function success() {\n callback();\n }, function error(err) {\n callback(err);\n });\n }\n templatesLoader.ocLazyLoadLoader = true;\n }\n\n var filesLoader = function(config, params) {\n var cssFiles = [],\n templatesFiles = [],\n jsFiles = [],\n promises = [],\n cachePromise = null;\n\n angular.extend(params || {}, config);\n\n var pushFile = function(path) {\n cachePromise = filesCache.get(path);\n if(angular.isUndefined(cachePromise) || params.cache === false) {\n if(/\\.(css|less)[^\\.]*$/.test(path) && cssFiles.indexOf(path) === -1) {\n cssFiles.push(path);\n } else if(/\\.(htm|html)[^\\.]*$/.test(path) && templatesFiles.indexOf(path) === -1) {\n templatesFiles.push(path);\n } else if(jsFiles.indexOf(path) === -1) {\n jsFiles.push(path);\n }\n } else if(cachePromise) {\n promises.push(cachePromise);\n }\n }\n\n if(params.serie) {\n pushFile(params.files.shift());\n } else {\n angular.forEach(params.files, function(path) {\n pushFile(path);\n });\n }\n\n if(cssFiles.length > 0) {\n var cssDeferred = $q.defer();\n cssLoader(cssFiles, function(err) {\n if(angular.isDefined(err) && cssLoader.hasOwnProperty('ocLazyLoadLoader')) {\n $log.error(err);\n cssDeferred.reject(err);\n } else {\n cssDeferred.resolve();\n }\n }, params);\n promises.push(cssDeferred.promise);\n }\n\n if(templatesFiles.length > 0) {\n var templatesDeferred = $q.defer();\n templatesLoader(templatesFiles, function(err) {\n if(angular.isDefined(err) && templatesLoader.hasOwnProperty('ocLazyLoadLoader')) {\n $log.error(err);\n templatesDeferred.reject(err);\n } else {\n templatesDeferred.resolve();\n }\n }, params);\n promises.push(templatesDeferred.promise);\n }\n\n if(jsFiles.length > 0) {\n var jsDeferred = $q.defer();\n jsLoader(jsFiles, function(err) {\n if(angular.isDefined(err) && jsLoader.hasOwnProperty('ocLazyLoadLoader')) {\n $log.error(err);\n jsDeferred.reject(err);\n } else {\n jsDeferred.resolve();\n }\n }, params);\n promises.push(jsDeferred.promise);\n }\n\n if(params.serie && params.files.length > 0) {\n return $q.all(promises).then(function success() {\n return filesLoader(config, params);\n });\n } else {\n return $q.all(promises);\n }\n }\n\n return {\n /**\n * Let you get a module config object\n * @param moduleName String the name of the module\n * @returns {*}\n */\n getModuleConfig: function(moduleName) {\n if(!angular.isString(moduleName)) {\n throw new Error('You need to give the name of the module to get');\n }\n if(!modules[moduleName]) {\n return null;\n }\n return modules[moduleName];\n },\n\n /**\n * Let you define a module config object\n * @param moduleConfig Object the module config object\n * @returns {*}\n */\n setModuleConfig: function(moduleConfig) {\n if(!angular.isObject(moduleConfig)) {\n throw new Error('You need to give the module config object to set');\n }\n modules[moduleConfig.name] = moduleConfig;\n return moduleConfig;\n },\n\n /**\n * Returns the list of loaded modules\n * @returns {string[]}\n */\n getModules: function() {\n return regModules;\n },\n\n /**\n * Let you check if a module has been loaded into Angular or not\n * @param modulesNames String/Object a module name, or a list of module names\n * @returns {boolean}\n */\n isLoaded: function(modulesNames) {\n var moduleLoaded = function(module) {\n var isLoaded = regModules.indexOf(module) > -1;\n if(!isLoaded) {\n isLoaded = !!moduleExists(module);\n }\n return isLoaded;\n }\n if(angular.isString(modulesNames)) {\n modulesNames = [modulesNames];\n }\n if(angular.isArray(modulesNames)) {\n var i, len;\n for(i = 0, len = modulesNames.length; i < len; i++) {\n if(!moduleLoaded(modulesNames[i])) {\n return false;\n }\n }\n return true;\n } else {\n throw new Error('You need to define the module(s) name(s)');\n }\n },\n\n /**\n * Load a module or a list of modules into Angular\n * @param module Mixed the name of a predefined module config object, or a module config object, or an array of either\n * @param params Object optional parameters\n * @returns promise\n */\n load: function(module, params) {\n var self = this,\n config = null,\n moduleCache = [],\n deferredList = [],\n deferred = $q.defer(),\n moduleName,\n errText;\n\n if(angular.isUndefined(params)) {\n params = {};\n }\n\n // If module is an array, break it down\n if(angular.isArray(module)) {\n // Resubmit each entry as a single module\n angular.forEach(module, function(m) {\n if(m) {\n deferredList.push(self.load(m, params));\n }\n });\n\n // Resolve the promise once everything has loaded\n $q.all(deferredList).then(function success() {\n deferred.resolve(module);\n }, function error(err) {\n deferred.reject(err);\n });\n\n return deferred.promise;\n }\n\n moduleName = getModuleName(module);\n\n // Get or Set a configuration depending on what was passed in\n if(typeof module === 'string') {\n config = self.getModuleConfig(module);\n if(!config) {\n config = {\n files: [module]\n };\n moduleName = null;\n }\n } else if(typeof module === 'object') {\n config = self.setModuleConfig(module);\n }\n\n if(config === null) {\n errText = 'Module \"' + moduleName + '\" is not configured, cannot load.';\n $log.error(errText);\n deferred.reject(new Error(errText));\n } else {\n // deprecated\n if(angular.isDefined(config.template)) {\n if(angular.isUndefined(config.files)) {\n config.files = [];\n }\n if(angular.isString(config.template)) {\n config.files.push(config.template);\n } else if(angular.isArray(config.template)) {\n config.files.concat(config.template);\n }\n }\n }\n\n moduleCache.push = function(value) {\n if(this.indexOf(value) === -1) {\n Array.prototype.push.apply(this, arguments);\n }\n };\n\n // If this module has been loaded before, re-use it.\n if(angular.isDefined(moduleName) && moduleExists(moduleName) && regModules.indexOf(moduleName) !== -1) {\n moduleCache.push(moduleName);\n\n // if we don't want to load new files, resolve here\n if(angular.isUndefined(config.files)) {\n deferred.resolve();\n return deferred.promise;\n }\n }\n\n var localParams = {};\n angular.extend(localParams, params, config);\n\n var loadDependencies = function loadDependencies(module) {\n var moduleName,\n loadedModule,\n requires,\n diff,\n promisesList = [];\n\n moduleName = getModuleName(module);\n if(moduleName === null) {\n return $q.when();\n } else {\n try {\n loadedModule = getModule(moduleName);\n } catch(e) {\n var deferred = $q.defer();\n $log.error(e.message);\n deferred.reject(e);\n return deferred.promise;\n }\n requires = getRequires(loadedModule);\n }\n\n angular.forEach(requires, function(requireEntry) {\n // If no configuration is provided, try and find one from a previous load.\n // If there isn't one, bail and let the normal flow run\n if(typeof requireEntry === 'string') {\n var config = self.getModuleConfig(requireEntry);\n if(config === null) {\n moduleCache.push(requireEntry); // We don't know about this module, but something else might, so push it anyway.\n return;\n }\n requireEntry = config;\n }\n\n // Check if this dependency has been loaded previously\n if(moduleExists(requireEntry.name)) {\n if(typeof module !== 'string') {\n // compare against the already loaded module to see if the new definition adds any new files\n diff = requireEntry.files.filter(function(n) {\n return self.getModuleConfig(requireEntry.name).files.indexOf(n) < 0;\n });\n\n // If the module was redefined, advise via the console\n if(diff.length !== 0) {\n $log.warn('Module \"', moduleName, '\" attempted to redefine configuration for dependency. \"', requireEntry.name, '\"\\n Additional Files Loaded:', diff);\n }\n\n // Push everything to the file loader, it will weed out the duplicates.\n promisesList.push(filesLoader(requireEntry.files, localParams).then(function() {\n return loadDependencies(requireEntry);\n }));\n }\n return;\n } else if(typeof requireEntry === 'object') {\n if(requireEntry.hasOwnProperty('name') && requireEntry['name']) {\n // The dependency doesn't exist in the module cache and is a new configuration, so store and push it.\n self.setModuleConfig(requireEntry);\n moduleCache.push(requireEntry['name']);\n }\n\n // CSS Loading Handler\n if(requireEntry.hasOwnProperty('css') && requireEntry['css'].length !== 0) {\n // Locate the document insertion point\n angular.forEach(requireEntry['css'], function(path) {\n buildElement('css', path, localParams);\n });\n }\n // CSS End.\n }\n\n // Check if the dependency has any files that need to be loaded. If there are, push a new promise to the promise list.\n if(requireEntry.hasOwnProperty('files') && requireEntry.files.length !== 0) {\n if(requireEntry.files) {\n promisesList.push(filesLoader(requireEntry, localParams).then(function() {\n return loadDependencies(requireEntry);\n }));\n }\n }\n });\n\n // Create a wrapper promise to watch the promise list and resolve it once everything is done.\n return $q.all(promisesList);\n }\n\n filesLoader(config, localParams).then(function success() {\n if(moduleName === null) {\n deferred.resolve(module);\n } else {\n moduleCache.push(moduleName);\n loadDependencies(moduleName).then(function success() {\n try {\n justLoaded = [];\n register(providers, moduleCache, localParams);\n } catch(e) {\n $log.error(e.message);\n deferred.reject(e);\n return;\n }\n deferred.resolve(module);\n }, function error(err) {\n deferred.reject(err);\n });\n }\n }, function error(err) {\n deferred.reject(err);\n });\n\n return deferred.promise;\n }\n };\n }];\n\n this.config = function(config) {\n if(angular.isDefined(config.jsLoader) || angular.isDefined(config.asyncLoader)) {\n if(!angular.isFunction(config.jsLoader || config.asyncLoader)) {\n throw('The js loader needs to be a function');\n }\n jsLoader = config.jsLoader || config.asyncLoader;\n }\n\n if(angular.isDefined(config.cssLoader)) {\n if(!angular.isFunction(config.cssLoader)) {\n throw('The css loader needs to be a function');\n }\n cssLoader = config.cssLoader;\n }\n\n if(angular.isDefined(config.templatesLoader)) {\n if(!angular.isFunction(config.templatesLoader)) {\n throw('The template loader needs to be a function');\n }\n templatesLoader = config.templatesLoader;\n }\n\n // If we want to define modules configs\n if(angular.isDefined(config.modules)) {\n if(angular.isArray(config.modules)) {\n angular.forEach(config.modules, function(moduleConfig) {\n modules[moduleConfig.name] = moduleConfig;\n });\n } else {\n modules[config.modules.name] = config.modules;\n }\n }\n\n if(angular.isDefined(config.debug)) {\n debug = config.debug;\n }\n\n if(angular.isDefined(config.events)) {\n events = config.events;\n }\n };\n }]);\n\n ocLazyLoad.directive('ocLazyLoad', ['$ocLazyLoad', '$compile', '$animate', '$parse',\n function($ocLazyLoad, $compile, $animate, $parse) {\n return {\n restrict: 'A',\n terminal: true,\n priority: 1000,\n compile: function(element, attrs) {\n // we store the content and remove it before compilation\n var content = element[0].innerHTML;\n element.html('');\n\n return function($scope, $element, $attr) {\n var model = $parse($attr.ocLazyLoad);\n $scope.$watch(function() {\n // it can be a module name (string), an object, an array, or a scope reference to any of this\n return model($scope) || $attr.ocLazyLoad;\n }, function(moduleName) {\n if(angular.isDefined(moduleName)) {\n $ocLazyLoad.load(moduleName).then(function success(moduleConfig) {\n $animate.enter($compile(content)($scope), null, $element);\n });\n }\n }, true);\n };\n }\n };\n }]);\n\n /**\n * Get the list of required modules/services/... for this module\n * @param module\n * @returns {Array}\n */\n function getRequires(module) {\n var requires = [];\n angular.forEach(module.requires, function(requireModule) {\n if(regModules.indexOf(requireModule) === -1) {\n requires.push(requireModule);\n }\n });\n return requires;\n }\n\n /**\n * Check if a module exists and returns it if it does\n * @param moduleName\n * @returns {boolean}\n */\n function moduleExists(moduleName) {\n try {\n return angular.module(moduleName);\n } catch(e) {\n if(/No module/.test(e) || (e.message.indexOf('$injector:nomod') > -1)) {\n return false;\n }\n }\n }\n\n function getModule(moduleName) {\n try {\n return angular.module(moduleName);\n } catch(e) {\n // this error message really suxx\n if(/No module/.test(e) || (e.message.indexOf('$injector:nomod') > -1)) {\n e.message = 'The module \"' + moduleName + '\" that you are trying to load does not exist. ' + e.message\n }\n throw e;\n }\n }\n\n function invokeQueue(providers, queue, moduleName, reconfig) {\n if(!queue) {\n return;\n }\n\n var i, len, args, provider;\n for(i = 0, len = queue.length; i < len; i++) {\n args = queue[i];\n if(angular.isArray(args)) {\n if(providers !== null) {\n if(providers.hasOwnProperty(args[0])) {\n provider = providers[args[0]];\n } else {\n throw new Error('unsupported provider ' + args[0]);\n }\n }\n var isNew = registerInvokeList(args, moduleName);\n if(args[1] !== 'invoke') {\n if(isNew && angular.isDefined(provider)) {\n provider[args[1]].apply(provider, args[2]);\n }\n } else { // config block\n var callInvoke = function(fct) {\n var invoked = regConfigs.indexOf(moduleName + '-' + fct);\n if(invoked === -1 || reconfig) {\n if(invoked === -1) {\n regConfigs.push(moduleName + '-' + fct);\n }\n if(angular.isDefined(provider)) {\n provider[args[1]].apply(provider, args[2]);\n }\n }\n }\n if(angular.isFunction(args[2][0])) {\n callInvoke(args[2][0]);\n } else if(angular.isArray(args[2][0])) {\n for(var j = 0, jlen = args[2][0].length; j < jlen; j++) {\n if(angular.isFunction(args[2][0][j])) {\n callInvoke(args[2][0][j]);\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Register a new module and load it\n * @param providers\n * @param registerModules\n * @returns {*}\n */\n function register(providers, registerModules, params) {\n if(registerModules) {\n var k, r, moduleName, moduleFn, tempRunBlocks = [];\n for(k = registerModules.length - 1; k >= 0; k--) {\n moduleName = registerModules[k];\n if(typeof moduleName !== 'string') {\n moduleName = getModuleName(moduleName);\n }\n if(!moduleName || justLoaded.indexOf(moduleName) !== -1) {\n continue;\n }\n var newModule = regModules.indexOf(moduleName) === -1;\n moduleFn = angular.module(moduleName);\n if(newModule) { // new module\n regModules.push(moduleName);\n register(providers, moduleFn.requires, params);\n }\n if(moduleFn._runBlocks.length > 0) {\n // new run blocks detected! Replace the old ones (if existing)\n runBlocks[moduleName] = [];\n while(moduleFn._runBlocks.length > 0) {\n runBlocks[moduleName].push(moduleFn._runBlocks.shift());\n }\n }\n if(angular.isDefined(runBlocks[moduleName]) && (newModule || params.rerun)) {\n tempRunBlocks = tempRunBlocks.concat(runBlocks[moduleName]);\n }\n invokeQueue(providers, moduleFn._invokeQueue, moduleName, params.reconfig);\n invokeQueue(providers, moduleFn._configBlocks, moduleName, params.reconfig); // angular 1.3+\n broadcast(newModule ? 'ocLazyLoad.moduleLoaded' : 'ocLazyLoad.moduleReloaded', moduleName);\n registerModules.pop();\n justLoaded.push(moduleName);\n }\n // execute the run blocks at the end\n var instanceInjector = providers.getInstanceInjector();\n angular.forEach(tempRunBlocks, function(fn) {\n instanceInjector.invoke(fn);\n });\n }\n }\n\n /**\n * Register an invoke\n * @param args\n * @returns {*}\n */\n function registerInvokeList(args, moduleName) {\n var invokeList = args[2][0],\n type = args[1],\n newInvoke = false;\n if(angular.isUndefined(regInvokes[moduleName])) {\n regInvokes[moduleName] = {};\n }\n if(angular.isUndefined(regInvokes[moduleName][type])) {\n regInvokes[moduleName][type] = [];\n }\n var onInvoke = function(invokeName) {\n newInvoke = true;\n regInvokes[moduleName][type].push(invokeName);\n broadcast('ocLazyLoad.componentLoaded', [moduleName, type, invokeName]);\n }\n if(angular.isString(invokeList) && regInvokes[moduleName][type].indexOf(invokeList) === -1) {\n onInvoke(invokeList);\n } else if(angular.isObject(invokeList)) {\n angular.forEach(invokeList, function(invoke) {\n if(angular.isString(invoke) && regInvokes[moduleName][type].indexOf(invoke) === -1) {\n onInvoke(invoke);\n }\n });\n } else {\n return false;\n }\n return newInvoke;\n }\n\n function getModuleName(module) {\n var moduleName = null;\n if(angular.isString(module)) {\n moduleName = module;\n } else if(angular.isObject(module) && module.hasOwnProperty('name') && angular.isString(module.name)) {\n moduleName = module.name;\n }\n return moduleName;\n }\n\n /**\n * Get the list of existing registered modules\n * @param element\n */\n function init(element) {\n if(initModules.length === 0) {\n var elements = [element],\n names = ['ng:app', 'ng-app', 'x-ng-app', 'data-ng-app'],\n NG_APP_CLASS_REGEXP = /\\sng[:\\-]app(:\\s*([\\w\\d_]+);?)?\\s/,\n append = function append(elm) {\n return (elm && elements.push(elm));\n };\n\n angular.forEach(names, function(name) {\n names[name] = true;\n append(document.getElementById(name));\n name = name.replace(':', '\\\\:');\n if(element[0].querySelectorAll) {\n angular.forEach(element[0].querySelectorAll('.' + name), append);\n angular.forEach(element[0].querySelectorAll('.' + name + '\\\\:'), append);\n angular.forEach(element[0].querySelectorAll('[' + name + ']'), append);\n }\n });\n\n angular.forEach(elements, function(elm) {\n if(initModules.length === 0) {\n var className = ' ' + element.className + ' ';\n var match = NG_APP_CLASS_REGEXP.exec(className);\n if(match) {\n initModules.push((match[2] || '').replace(/\\s+/g, ','));\n } else {\n angular.forEach(elm.attributes, function(attr) {\n if(initModules.length === 0 && names[attr.name]) {\n initModules.push(attr.value);\n }\n });\n }\n }\n });\n }\n if(initModules.length === 0) {\n throw 'No module found during bootstrap, unable to init ocLazyLoad';\n }\n\n var addReg = function addReg(moduleName) {\n if(regModules.indexOf(moduleName) === -1) {\n // register existing modules\n regModules.push(moduleName);\n var mainModule = angular.module(moduleName);\n\n // register existing components (directives, services, ...)\n invokeQueue(null, mainModule._invokeQueue, moduleName);\n invokeQueue(null, mainModule._configBlocks, moduleName); // angular 1.3+\n\n angular.forEach(mainModule.requires, addReg);\n }\n };\n\n angular.forEach(initModules, function(moduleName) {\n addReg(moduleName);\n });\n }\n\n var bootstrap = angular.bootstrap;\n angular.bootstrap = function(element, modules, config) {\n initModules = modules.slice(); // make a clean copy\n return bootstrap(element, modules, config);\n };\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./public/javascripts/ocLazyLoad.js\n// module id = 3qhd\n// module chunks = 151","import services from 'services/module';\nimport {Strings} from 'Strings';\nimport {Utils} from '../underscore-extensions';\nimport {LocalStorageSvc} from './LocalStorageSvc';\nimport {LandingTemplateSvc} from '../services/landingTemplateSvc';\n\nexport class AnalyticSvc {\n private mixpanelEnabled = !options.isLocal;\n private forceVisitTracking = true;\n private activateKeyName = 'analytic_track_activate_page_';\n\n constructor(private $location: ng.ILocationService,\n private $state: ng.ui.IStateService,\n private $rootScope: ng.IRootScopeService,\n private $log: ng.ILogService,\n private landingTemplateSvc: LandingTemplateSvc,\n private ipCookie: ipCookie,\n private LocalStorageSvc: LocalStorageSvc) {\n $rootScope.$on('$stateChangeSuccess', () => {\n this.registerCommonProperties();\n this.trackVisit();\n });\n }\n\n getGaHeader = () => ({\n 'anm-mkt-ga': this.ipCookie('_ga')\n });\n\n upgradeShown(action: anm.UpgradeAction, plan = this.getDefaultPlan()) {\n const opt = {\n [`${this.getProduct()} Plan`]: plan\n };\n\n this.registerUserProperties();\n this.trackMixpanel(`${Strings.capitalize(action)} Shown`, opt);\n }\n\n changeBillingPeriod(oldPeriod: string, newPeriod: string) {\n const opt = {\n ...this.getPlan(),\n 'Old Period': oldPeriod,\n 'New Period': newPeriod\n };\n\n this.registerUserProperties();\n this.trackMixpanel('Change Billing Period', opt);\n }\n\n changeSubscription(action: anm.UpgradeAction,\n oldPlan: string,\n oldPeriod: string,\n toPlan = this.getDefaultPlan(),\n toPeriod?: string,\n chargedAmount?: number,\n coupon?: string) {\n // this.gaChangeSubscription(action, toPlan);\n\n this.mpChangeSubscription(\n action,\n oldPlan,\n oldPeriod,\n toPlan,\n toPeriod,\n chargedAmount,\n coupon\n );\n\n this.fbqChangeSubscription(\n oldPlan,\n toPlan,\n toPeriod\n )\n }\n\n addTransaction(price: string, subscriptionName: string) {\n const transactionId = `${options.user.userId} - ${Date.now()}`;\n this.gaAddTransaction(transactionId, price, subscriptionName);\n this.fbqAddTransaction(transactionId, price, subscriptionName);\n }\n\n private gaAddTransaction(\n id: string,\n price: string,\n name: string\n ) {\n this.ga('ecommerce:addTransaction', {\n id,\n revenue: price\n });\n\n this.ga('ecommerce:addItem', {\n id,\n name,\n price,\n quantity: 1\n });\n\n this.ga('ecommerce:send');\n }\n\n private fbqAddTransaction(id: string,\n price: string,\n planName: string) {\n this.fbq('track', 'Purchase', {\n id,\n planName,\n value: price,\n currency: 'USD'\n });\n }\n\n signUpSubmit() {\n // this.gaSignUpEvent('Submit');\n // this.gaProductSignUpEvent();\n this.getMixPanel(mixpanel => {\n this.registerUserProperties();\n mixpanel.track('Sign Up Submit', {Provider: 'EMAIL'});\n });\n }\n\n signUpActivate(hash: string) {\n const currentHash = this.LocalStorageSvc.get(this.activateKeyName);\n\n if (hash && hash !== currentHash) {\n // this.gaSignUpEvent('Activate');\n this.getMixPanel(mixpanel => {\n this.registerUserProperties();\n mixpanel.track('Sign Up Activation', {Provider: 'EMAIL'});\n });\n this.LocalStorageSvc.set(this.activateKeyName, hash);\n }\n }\n\n signUpComplete() {\n // this.gaSignUpEvent('Complete');\n this.fbPixelSignUpComplete();\n this.trackSignUp('Email');\n }\n\n signUpProfileComplete(provider: anm.SignUpProvider) {\n // this.gaSignUpEvent('ProfileComplete', provider);\n }\n\n signUpSocialSubmit(provider: anm.SignUpProvider) {\n // this.gaSignUpEvent('Submit', provider);\n }\n\n signUpSocialComplete(provider: anm.SignUpProvider) {\n // this.gaSignUpEvent('Complete', provider);\n this.fbPixelSignUpComplete();\n this.trackSignUp(provider);\n }\n\n login(user: anm.User) {\n // this.gaSetUserId(user.userId); // TODO maybe need in the future\n this.trackLoginMixpanel();\n }\n\n logout() {\n // this.gaSetUserId(null);// TODO maybe need in the future\n this.mixpanelLogout();\n }\n\n visitPage(pageName: string, additionalParams = {}) {\n const params = {Product: this.getProduct(), ...additionalParams};\n this.trackMixpanel(`Visit ${pageName}`, params);\n }\n\n changePage() {\n if (!window.ga) return;\n\n this.ga('set', 'page', this.$location.url());\n this.ga('send', 'pageview');\n }\n\n getPlan() {\n const {wave, studio} = options.user.subscriptionDetails;\n return {\n 'WAVE Plan': wave.displayName,\n 'STUDIO Plan': studio.displayName\n }\n }\n\n selectProduct(product: AnimatronProduct) {\n this.mpSelectProduct(product);\n }\n\n private fbq(...arg: any[]) {\n return window.fbq && window.fbq(...arg);\n }\n\n private ga(...arg: any[]) {\n return window.ga && window.ga(...arg);\n }\n\n private mpSelectProduct(product: AnimatronProduct) {\n return this.getMixPanel(mixpanel => {\n mixpanel.track('Selected Product', {'Product': product});\n });\n }\n\n private fbPixelSignUpComplete() {\n const {\n industry,\n goals,\n occupation\n } = options.user.meta;\n const params = {\n product: this.getProduct(),\n industry: industry,\n goals: goals\n };\n\n if (occupation) {\n params['occupation'] = occupation\n }\n\n this.fbq('trackCustom', 'CompleteRegistration', params);\n }\n\n private fbqChangeSubscription(oldPlan: string,\n toPlan = this.getDefaultPlan(),\n toPeriod?: string) {\n this.fbq('trackCustom', 'ChangePlan', {\n product: this.getProduct(),\n new_plan: toPlan,\n old_plan: oldPlan,\n period: toPeriod\n });\n }\n\n private mpChangeSubscription(action: anm.UpgradeAction,\n oldPlan: string,\n oldPeriod: string,\n toPlan = this.getDefaultPlan(),\n toPeriod?: string,\n chargedAmount?: number,\n coupon?: string) {\n this.getMixPanel(mixpanel => {\n const params = {\n [`${this.getProduct()} Plan`]: toPlan,\n [`${this.getProduct()} Old Plan`]: oldPlan,\n 'Old Period': oldPeriod,\n Period: toPeriod\n };\n\n if (chargedAmount && action === 'upgrade') {\n params['Charged'] = chargedAmount.toString();\n mixpanel.people.track_charge(chargedAmount);\n }\n\n if (coupon) params['Coupon'] = coupon;\n\n const eventName = Strings.capitalize(action) + 'd';\n this.registerUserProperties();\n this.trackMixpanel(eventName, params);\n });\n }\n\n private gaChangeSubscription(action: anm.UpgradeAction,\n toPlan: string) {\n const isFree = ['WaveFree', 'Free'].includes(toPlan);\n if (action === 'upgrade' || isFree) {\n const eventName = Strings.capitalize(action);\n this.ga('send', 'event', this.getProduct(), eventName);\n }\n }\n\n private trackVisit() {\n return this.getMixPanel(mixpanel => {\n if (!this.forceVisitTracking) return;\n\n const canVisit =\n !this.$state.current.name.includes('activate') &&\n window.performance.navigation.type === 0;\n\n if (!canVisit) return;\n\n this.forceVisitTracking = false;\n\n const params = {Source: this.getSource()};\n mixpanel.register_once(params);\n mixpanel.people.set_once(params);\n\n if (options.user.anonymous) {\n const first_params = AnalyticSvc.campaignParams();\n const landingInfoParams = this.landingTemplateSvc.getTrackInfo();\n\n mixpanel.people.set_once(first_params);\n\n mixpanel.track('Guest Visit', {...landingInfoParams, ...first_params});\n } else {\n mixpanel.identify(options.user.userIdAsString);\n mixpanel.track('Visit', {});\n }\n });\n }\n\n private static getQueryParam(url: string, param: string) {\n // Expects a raw URL\n param = param.replace(/[[]/, \"\\[\").replace(/[]]/, \"\\]\");\n const regexS = \"[\\?&]\" + param + \"=([^&#]*)\",\n regex = new RegExp(regexS),\n results = regex.exec(url);\n if (results === null || (results && typeof(results[1]) !== 'string' && results[1].length)) {\n return '';\n } else {\n return decodeURIComponent(results[1]).replace(/\\W/gi, ' ');\n }\n };\n\n\n private static campaignParams() {\n let campaign_keywords = 'utm_source utm_medium utm_campaign utm_content utm_term'.split(' ')\n , kw = ''\n , first_params = {};\n\n let index;\n for (index = 0; index < campaign_keywords.length; ++index) {\n kw = AnalyticSvc.getQueryParam(document.URL, campaign_keywords[index]);\n if (kw.length) {\n first_params[campaign_keywords[index] + ' [first touch]'] = kw;\n }\n }\n\n return first_params;\n }\n\n private getSource() {\n const referrer = document.referrer;\n if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'Google';\n } else if (referrer.search('https?://(.*)bing.([^/?]*)') === 0) {\n return 'Bing';\n } else if (referrer.search('https?://(.*)quora.([^/?]*)') === 0) {\n return 'Quora';\n } else if (referrer.search('https?://(.*)facebook.([^/?]*)') === 0) {\n return 'Facebook';\n } else if (referrer.search('https?://(.*)twitter.([^/?]*)') === 0) {\n return 'Twitter';\n } else if (referrer.search('https?://(.*)animatron.([^/?]*)') === 0) {\n return 'Animatron';\n } else if (referrer.search('https?://(.*)youtube.([^/?]*)') === 0) {\n return 'Youtube';\n } else if (referrer.search('https?://(.*)yahoo.([^/?]*)') === 0) {\n return 'Yahoo';\n } else if (referrer.search('https?://(.*)naver.([^/?]*)') === 0) {\n return 'Naver';\n } else {\n return referrer;\n }\n }\n\n private mixpanelLogout() {\n return this.getMixPanel(mixpanel => {\n mixpanel.reset();\n this.forceVisitTracking = true;\n });\n }\n\n private getMixPanel(func: (m: Mixpanel) => void): void {\n return this.mixpanelEnabled && window.mixpanel && func(window.mixpanel)\n }\n\n private registerCommonProperties() {\n const props = {\n Place: 'Website'\n };\n\n if (this.getProduct() !== 'ANY') {\n props['Product'] = this.getProduct();\n }\n\n return this.getMixPanel(mixpanel => mixpanel.register(props));\n }\n\n private registerUserProperties() {\n this.getMixPanel(mixpanel => {\n const props = {\n ...this.getPlan(),\n '$name': options.user.displayName,\n Username: options.user.username,\n Product: this.getProduct()\n };\n\n if (options.user.email) {\n props['$email'] = options.user.email;\n }\n\n mixpanel.register(props);\n });\n }\n\n private userInfoMixpanel() {\n const displayName = options.user.displayName,\n idx = displayName.indexOf(' ');\n\n const props = {\n ...this.getPlan(),\n '$name': displayName,\n '$first_name': idx >= 0 ? displayName.substring(0, idx) : displayName,\n '$last_name': idx >= 0 ? displayName.substring(idx + 1) : '',\n userId: options.user.userIdAsString,\n Username: options.user.username,\n Industry: options.user.meta.industry,\n Occupation: options.user.meta.occupation,\n Goals: options.user.meta.goals\n };\n\n if (options.user.email) {\n props['$email'] = options.user.email;\n }\n\n return props;\n }\n\n private trackMixpanel(eventName: string, opts?: { [index: string]: any }) {\n return this.getMixPanel(m => {\n // the setTimeout fix some problem with browser request canceled\n setTimeout(() => {\n m.track(eventName, opts);\n this.$log.debug('Mixpanel track: ', ...m[0]);\n }, 100);\n\n return m;\n });\n }\n\n private trackLoginMixpanel() {\n return this.getMixPanel(mixpanel => {\n this.forceVisitTracking = true;\n this.registerUserProperties();\n this.trackVisit();\n mixpanel.people.set(this.userInfoMixpanel());\n });\n }\n\n private isAllowedMethod(provider: string) {\n return !_.isUndefined(provider) &&\n ['google', 'facebook', 'email', 'twitter'].indexOf(provider.toLowerCase()) !== 1;\n }\n\n private trackSignUp(provider: anm.SignUpProvider) {\n if (this.isAllowedMethod(provider)) {\n this.getMixPanel(mixpanel => {\n mixpanel.alias(options.user.userIdAsString);\n mixpanel.people.set(_.extend({\n '$created': new Date().toISOString(),\n Provider: provider,\n Place: 'Website',\n Product: options.user.meta.product\n }, this.userInfoMixpanel()));\n this.registerUserProperties();\n mixpanel.track('Sign Up', {Provider: Strings.capitalize(provider)});\n });\n }\n }\n\n private getDefaultPlan() {\n return this.getProduct() === 'WAVE' ? 'WaveFree' : 'Free';\n }\n\n private getProduct() {\n return Utils.getProduct();\n }\n\n private gaSetUserId(userId: string) {\n this.ga('set', 'userId', userId);\n\n }\n\n private gaSignUpEvent(eventName: string, provider = 'Email') {\n this.ga('send', 'event', 'SignUp', eventName, Strings.capitalize(provider.toLowerCase()));\n }\n\n private gaProductSignUpEvent() {\n this.ga('send', 'event', this.getProduct(), 'Sign Up');\n }\n}\n\nservices.service('analyticSvc', AnalyticSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/AnalyticSvc.ts","import directives from './module';\nimport {RescaleSvc} from 'services/RescaleSvc';\nimport {AnimatronPreviews} from '../services/AnimatronPreviewsSvc';\nimport {Utils} from 'underscore-extensions';\n\ninterface Scope extends ng.IScope {\n project?: anm.Project;\n $ctrl?: {project?: anm.Project};\n}\n\ndirectives.directive('pickPreviewImage',\n (AnimatronPreviews: AnimatronPreviews) =>\n (scope: Scope,\n element: ng.IAugmentedJQuery,\n attrs: {pickPreviewImage: string}) => {\n const project: anm.Project = scope.project || (scope.$ctrl && scope.$ctrl.project);\n\n const opts = scope.$eval(attrs.pickPreviewImage) || {};\n const width = opts.width || 720;\n\n if (opts.rescale) {\n Utils.rAF(() => {\n const w = element[0].getBoundingClientRect().width - 20;\n const dim = RescaleSvc.resizeWithAspectRatio(\n project.width * 9999,\n project.height * 9999,\n w,\n opts.rescale.height);\n element[0].style.width = dim.width + 'px';\n element[0].style.height = dim.height + 'px';\n });\n }\n\n const preview = AnimatronPreviews\n .pickPreview(opts.images || project.preview_metadata, width)\n .replace(/(http:|https:)/, '');\n\n const image = document.createElement('img');\n\n image.classList.add('preview');\n image.src = preview;\n if (project) {\n image.style.color = 'transparent';\n image.alt = project.name;\n }\n element[0].appendChild(image);\n\n image.onerror = () => {\n element.addClass('animatron-hero-background');\n image.style.display = 'none';\n };\n // image.onload = () => element[0].appendChild(image);\n }\n);\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/pickPreviewImageDirective.ts","import directives from './module';\nimport {AnimatronProjectsFactory, AnimatronProjects} from '../services/AnimatronProjectsSvc';\nimport {Utils} from '../underscore-extensions';\n\nexport class OpenEditor implements ng.IComponentController {\n isUpgradeDialog: boolean;\n className: string;\n private params: anm.OpenEditorParams;\n private projectId: string;\n private action: 'create' | 'edit' | 'duplicate' | 'openVideoTemplates';\n private videosCount: number;\n\n constructor(private $state: ng.ui.IStateService,\n private AnimatronProjects: AnimatronProjectsFactory) {\n this.action = this.action || 'openVideoTemplates';\n }\n\n clickHandler() {\n switch (this.action) {\n case 'create':\n this.createNew();\n break;\n\n case 'openVideoTemplates':\n this.openVideoTemplates();\n break;\n\n case 'edit':\n this.edit();\n break;\n\n case 'duplicate':\n this.duplicate();\n break;\n }\n }\n\n goUpgrade() {\n this.$state.go('wave-pricing').then(() => this.isUpgradeDialog = false);\n }\n\n private edit() {\n if (this.canOpen && this.projectId) {\n window.open(`${options.waveEditorDomain}#p=${this.projectId}`, '_blank');\n }\n }\n\n private duplicate() {\n if (this.canOpen && this.projectId) {\n window.open(`${options.waveEditorDomain}#d=${this.projectId}`, '_blank');\n }\n }\n\n private createNew() {\n let query = '';\n if (this.params) {\n query = Utils.toParams(this.params);\n query = `&${query}`;\n\n }\n\n this.setVideosCount().then(() => {\n if (this.canCreate) {\n if (this.canOpen) {\n window.open(`${options.waveEditorDomain}#new=1${query}`, '_self');\n }\n } else {\n this.isUpgradeDialog = true;\n }\n });\n }\n\n private openVideoTemplates() {\n this.$state.go('video-templates');\n }\n\n private setVideosCount() {\n const params: ProjectSearchCriteria = {\n product: 'WAVE',\n offset: 0,\n limit: 0\n };\n\n const animatronProjects = new AnimatronProjects(params, true);\n return animatronProjects.nextPage().then(() => this.videosCount = animatronProjects.count);\n }\n\n private get canOpen() {\n if (options.handHeld) {\n this.$state.go('editor-redirect');\n return false;\n }\n\n return true;\n }\n\n private get canCreate() {\n return this.details.name !== 'WaveFree' || this.videosCount < this.videosLimit;\n }\n\n private get details() {\n return options.user.subscriptionDetails.wave;\n }\n\n private get videosLimit() {\n return this.details.features.rolez.PrivateUnlistedProjects.numProjects;\n }\n}\n\ndirectives.component('openEditor', {\n bindings: {\n className: '@',\n action: '@?',\n params: '<',\n projectId: ' ({\n restrict: 'E',\n require: '?^form',\n transclude: true,\n scope: {\n loading: '=',\n onClick: '&',\n minDelay: '=?',\n type: '@?'\n },\n template: ``,\n compile: function(this: ng.IDirective, el: ng.IAugmentedJQuery, attrs: any) {\n if (_.isString(attrs.btnClass)) {\n const classes: string[] = attrs.btnClass.split(' ');\n classes.forEach(v => el[0].querySelector('.button').classList.add(v));\n }\n return this.link;\n },\n link(scope: any, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, FormCtrl: ng.IFormController | undefined) {\n scope.minDelay = scope.minDelay || 800;\n let timeOn = 0;\n let timeoutHideSpinner: ng.IPromise;\n\n // animation for appear loader - add padding-right and CSS3 will animate\n scope.$watch('loading', (loading: boolean) => {\n if (loading) {\n scope.loadingShow = true; // show spinner\n timeOn = _.now(); // get current date\n\n } else {\n const delay = _.now() - timeOn; //show - how much time passed after spinner was started\n\n timeoutHideSpinner = $timeout(() => {\n scope.loadingShow = false; // hide spinner\n }, delay > scope.minDelay ? 0 : scope.minDelay - delay); // spinner must work 800 more\n }\n });\n\n scope.click = () => {\n if (scope.type === 'submit' && FormCtrl) FormCtrl.$setSubmitted();\n scope.onClick();\n };\n\n scope.$on('$destroy', () => $timeout.cancel(timeoutHideSpinner));\n }\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/loadingSpinnerDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/subscription-billing-info-form_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/subscription-billing-info-form.less\n// module id = 4uz1\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/12.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/12.svg\n// module id = 4zkA\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-video-statistics_92c24a88b8034bde76441db81bb6e76d.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-video-statistics.less\n// module id = 57HE\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/icon-text-list_e503683656aa9b351ad23d6a1733c12a.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/icon-text-list.less\n// module id = 5G1g\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/contest-days-top-section_a351dd78454d42385c4e42ae3ba62c57.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/contest-days-top-section.less\n// module id = 5MIU\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/f_bsh-button_e9d9078c1eb087f46811f3ddb485d0b8.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/f_bsh-button.less\n// module id = 5TC1\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/title-block_2a4adc6506cca5788081e149c97ecbee.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/title-block.less\n// module id = 5W2z\n// module chunks = 151","import directives from './module';\nimport {Strings} from 'Strings';\nimport {TranslateSvc} from '../services/TranslateSvc';\n\ndirectives.filter('uniqueFilter', () => (items: any[], filterOn: string) =>\n _.unique(items, false, (item: any) => item[filterOn])\n);\n\ndirectives.filter('prependHttp', () => (url: string | undefined) => {\n if (Strings.isBlank(url)) return '';\n const withHttp = url.indexOf('http://') === 0 || url.indexOf('https://') === 0;\n return withHttp ? url : 'http://' + url;\n }\n);\n\ndirectives.filter('visibilityExplanation', (TranslateSvc: TranslateSvc) => {\n const visibilities = {\n 'public': TranslateSvc.get('visibility.public'),\n 'unlisted': TranslateSvc.get('visibility.unlisted'),\n 'private': TranslateSvc.get('visibility.private')\n };\n return (visibility: string) => visibilities[(visibility || 'public').toLowerCase()];\n});\n\ndirectives.filter('encodeUrl', () => (url: string) => encodeURIComponent(url));\n\ndirectives.filter('trust', ($sce: ng.ISCEService) => (html: string) => $sce.trustAsHtml(html));\n\ndirectives.filter('encodeUsername', () => (username: string) => Strings.encodeUsername(username));\n\ndirectives.filter('formatNumbers', () =>\n (num: string) => {\n num = num.toString();\n if (num.length >= 5) {\n return num.replace(/(\\d)(?=(\\d{3})+$)/g, '$1 ');\n }\n return num;\n }\n);\n\ndirectives.filter('removeUrlProtocol', () => (url: string) => Strings.removeUrlProtocol(url));\n\ndirectives.filter('toCardId', () => {\n const cards = {\n 'american express': 'amex',\n 'diners club': 'diners'\n };\n return (str: string) =>\n angular.isString(str) ? cards[str] || str : '';\n }\n);\n\ndirectives.filter('parseDate', () => {\n return (str: string): string => {\n if (_.isString(str)) {\n const conventionalDate = str.split('/').reverse().join('/');\n return new Date(conventionalDate).getTime().toString();\n } else {\n return '';\n }\n };\n }\n);\n\ndirectives.filter('stripTags', () => (input: any) => Strings.stripTags(input));\n\ndirectives.filter('linky', ($sce: ng.ISCEService) => {\n const LINKY_URL_REGEXP =\n /((ftp|https?):\\/\\/|(www\\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\\S*[^\\s.;,(){}<>\"”’]/,\n MAILTO_REGEXP = /^mailto:/;\n\n return (text: string, target: string) => {\n\n if (!text) return text;\n let match: RegExpMatchArray;\n let raw = text;\n let html: string[] = [];\n let url: string;\n let i: number;\n while ((match = raw.match(LINKY_URL_REGEXP))) {\n // We can not end in these as they are sometimes found at the end of the sentence\n url = match[0];\n // if we did not match ftp/http/www/mailto then assume mailto\n if (!match[2] && !match[4]) {\n url = (match[3] ? 'http://' : 'mailto:') + url;\n }\n i = match.index;\n addText(raw.substr(0, i));\n addLink(url, match[0].replace(MAILTO_REGEXP, ''));\n raw = raw.substring(i + match[0].length);\n }\n addText(raw);\n return $sce.trustAsHtml(html.join(''));\n\n function addText(text: string) {\n if (text) {\n html.push(text);\n }\n }\n\n function addLink(url: string, text: string) {\n html.push('');\n addText(text);\n html.push('');\n }\n };\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/filters.ts","module.exports = __webpack_public_path__ + \"stylesheets/feedback-slider_0b4e221d2e9a21b636c237b4ae2f198d.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/feedback-slider.less\n// module id = 5j0l\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/11.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/11.svg\n// module id = 5l58\n// module chunks = 151","import directives from './module';\nimport {Utils} from 'underscore-extensions';\nimport {LocalStorageSvc} from '../services/LocalStorageSvc';\n\n\ndirectives.directive('headroom', ($rootScope: any,\n $state: ng.ui.IStateService,\n LocalStorageSvc: LocalStorageSvc) => {\n return (scope: ng.IScope, element: ng.IAugmentedJQuery) => {\n const header = element[0];\n let headerHeight = 72; // just hardcode, can be even null, but this should be better\n let isTop = true;\n let lastKnownScrollY = 0;\n\n window.addEventListener('scroll', _.throttle(() => Utils.rAF(() => {\n if (document.documentElement.classList.contains('noscroll')) {\n return;\n }\n const scrollY = window.scrollY || window.pageYOffset;\n if (scrollY >= headerHeight && isTop) {\n isTop = false;\n header.classList.add('not-top');\n if (!LocalStorageSvc.get('banner-shown')) {\n $rootScope.$apply(() => {\n $rootScope.headerNotTop = true;\n LocalStorageSvc.set('banner-shown', true);\n });\n }\n } else if (scrollY < headerHeight && !isTop) {\n isTop = true;\n header.classList.remove('not-top');\n }\n if (scrollY < lastKnownScrollY) {\n header.classList.add('scrolled-up');\n } else if (scrollY > lastKnownScrollY) {\n header.classList.remove('scrolled-up');\n }\n lastKnownScrollY = scrollY;\n }), 50));\n };\n }\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/headroomDirective.ts","module.exports = __webpack_public_path__ + \"images/spin.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/spin.png\n// module id = 5zD6\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/countdown-section_6cec200ba43d472947cfe678c2734922.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/countdown-section.less\n// module id = 67wm\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/favicon-wave.ico\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/favicon-wave.ico\n// module id = 6JEJ\n// module chunks = 151","import directives from './module';\nimport {AuthenticationSvc} from '../services/AuthenticationSvc';\n\nclass StudioHeader implements ng.IComponentController {\n constructor(private $state: ng.ui.IStateService,\n public AuthenticationSvc: AuthenticationSvc) {\n }\n\n handlerClickLogin() {\n options.handHeld ? this.$state.go('studio-login') : this.AuthenticationSvc.toggleLoginModal()\n }\n}\n\ndirectives.component('studioHeader', {\n controller: StudioHeader,\n templateUrl: require('studio-header.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/studioHeader.ts","var path = 'https://assets.animatron.com/html/explore.html';\nvar html = \"
{{::$root.t('project.you.empty')}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/explore.html","module.exports = __webpack_public_path__ + \"stylesheets/company_45fcda67dabbe14c31e58d89a42c1a00.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/company.less\n// module id = 6bdG\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/week3_df0f716fff2548446c827d7199219752.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/education/week3.html\n// module id = 6cC1\n// module chunks = 151","import services from 'services/module';\nimport {CookieSettings} from 'services/CookieSettings';\nimport {HttpSvcFactory} from './HttpSvc';\nimport {AuthenticationSvc} from './AuthenticationSvc';\n\ntype langs = 'en' | 'ru' | 'es' | 'ko';\ntype map = { [s: string]: string };\n\nexport class TranslateSvc {\n static cookieName = '_animatron_lang';\n static defaultLang: 'en' = 'en';\n static productionLangs: Array = ['en', 'ko'];\n\n lang: langs;\n map: map = {};\n initialized = false;\n\n domainToLang = {\n kr: 'ko'\n };\n\n supportedLangs = _.object(_.pairs({\n en: 'English',\n ko: '한국어'\n }).filter(l => !options.isProduction || TranslateSvc.productionLangs.includes(l[0])));\n\n constructor(private $http: ng.IHttpService,\n private $log: ng.ILogService,\n private $ocLazyLoad: oc.ILazyLoad,\n private $q: ng.IQService,\n private ipCookie: any,\n private AuthenticationSvc: AuthenticationSvc,\n private HttpSvc: HttpSvcFactory) {\n }\n\n has(key: string) {\n return !!this.map[this.formattedKey(key)];\n }\n\n\n public get(key?: string, ...params: Array): string { //TODO make return type optional\n const k = this.formattedKey(key);\n if (k && this.initialized && !this.map[k]) {\n if (options.isLocal) {\n this.$log.error(`missing translation for '${k}'`);\n _.notification.showError(`missing translation for '${k}'`);\n }\n return k;\n }\n if (key && !_.isString(key)) this.$log.error(`wrong key used for translation: '${key}'`);\n return this.map[k] ? params.reduce((str, param) => str.replace(/{\\d}/, param), this.map[k]) : undefined;\n };\n\n public async = (key: string) => this.fetchTranslations().then(() => this.get(key));\n\n public langChange(lang: langs) {\n if (!(lang in this.supportedLangs)) throw new Error(`how come? ${lang}`);\n if (lang === this.lang) return;\n this.ipCookie(TranslateSvc.cookieName, lang, CookieSettings.get());\n new Promise(() => document.body.style.cursor = 'progress');\n if (!options.user.anonymous) {\n const newProps = {meta: {lang}};\n this.AuthenticationSvc.extendUser(newProps);\n this.HttpSvc('profile').securePut(newProps).then(() => location.reload());\n } else {\n location.reload();\n }\n };\n\n public currentLang(): langs {\n const langProps = ['language', 'browserLanguage', 'systemLanguage', 'userLanguage'];\n try {\n const foundLang = (options.user.meta && options.user.meta.lang) ||\n this.ipCookie(TranslateSvc.cookieName) ||\n this.langFromTLD() ||\n navigator[_.find(langProps, l => l in navigator)].split('_')[0].split('-')[0].toLowerCase();\n return foundLang in this.supportedLangs ? foundLang : TranslateSvc.defaultLang;\n } catch (e) {\n this.$log.error(e);\n return TranslateSvc.defaultLang;\n }\n };\n\n public fetchTranslations = _.once(() => this.$q(resolve => {\n const current = this.currentLang();\n this.changeLocale(current);\n const url = require(`../../i18n/${current}.json`);\n return this.$http.get(url).then(r => this.set(r.data, current, resolve));\n }));\n\n private set(map: map, current: langs, resolve: ng.IQResolveReject) {\n this.lang = current;\n this.map = map;\n Object.freeze(this.map);\n this.initialized = true;\n this.ipCookie(TranslateSvc.cookieName, this.lang, CookieSettings.get());\n document.documentElement.lang = this.lang;\n Object.freeze(this);\n resolve(this.map);\n }\n\n private changeLocale(lang: langs) {\n if (lang === 'en') return;\n this.$ocLazyLoad.load({\n name: 'ngLocale',\n files: [`https://cdnjs.cloudflare.com/ajax/libs/angular-i18n/1.6.7/angular-locale_${lang}.min.js`]\n }).then(() => {\n try {\n angular.merge(\n angular.element(document).injector().get('$locale'),\n angular.injector(['ngLocale']).get('$locale')\n );\n } catch (e) {\n console.error('error chaning $locale', e);\n }\n });\n }\n\n private langFromTLD() {\n return this.domainToLang[location.hostname.split('.').pop()];\n }\n\n private formattedKey(key: string) {\n return (_.isString(key) && key.replace(/\\s+/g, '.')) || null;\n }\n}\nservices\n .service('TranslateSvc', TranslateSvc)\n .directive('tHtml', ($sce: ng.ISCEService, TranslateSvc: TranslateSvc) => ({\n scope: false,\n restrict: 'A',\n link(scope: any, element: ng.IAugmentedJQuery, attrs: {tHtml: string}) {\n element.html($sce.trustAs('html', TranslateSvc.get(attrs.tHtml)));\n }\n }));\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/TranslateSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/editor-redirect_bbe3d07ad3c6be2564d9d9be71acb767.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/editor-redirect.less\n// module id = 6gbB\n// module chunks = 151","import {HttpSvcFactory} from './HttpSvc';\nimport {Strings} from 'Strings';\n\nexport abstract class AnimatronSvc {\n $rootScope: ng.IRootScopeService;\n $log: ng.ILogService;\n $timeout: ng.ITimeoutService;\n $q: ng.IQService;\n $stateParams: any;\n HttpSvc: HttpSvcFactory;\n\n httpGet: (config?: ng.IRequestShortcutConfig) => ng.IHttpPromise>;\n retries: number = 0;\n retriesMax: number = 120;\n results: T[] = [];\n pages: T[][] = [];\n busy: boolean = false;\n currentPage: number = 0;\n count: number = 0;\n totalPages: number = 0;\n shownAll: boolean = false;\n headers: {};\n loaded: boolean = false;\n owner: boolean;\n protected foreignAccess: boolean;\n apiUnavaliable: boolean;\n uniqueId: string;\n seoPage = +this.$stateParams.page;\n\n protected query: ProjectSearchCriteria = { //actually 'or userSearchCriteria' which doesn't exist\n product: 'STUDIO',\n offset: 0,\n limit: 10\n };\n\n constructor(query: ProjectSearchCriteria = {},\n secure = false,\n api = '',\n protected callback = angular.noop) {\n this.setSecure(secure, api);\n this.modifyQuery(query);\n if (this.onCreate) this.onCreate();\n\n this.addSeoPagination();\n }\n\n /*abstract*/\n protected onCreate(): void {\n }\n\n /*abstract*/\n protected decorate(results: Array): void {\n }\n\n protected abstract makeHttpSvc(secure: boolean, api: string): (config?: ng.IRequestShortcutConfig) => ng.IHttpPromise>;\n\n protected setSecure(secure: boolean, api = '') {\n if (secure && Strings.isBlank(options.headers['Animatron-Security-Token'])) {\n if (console.trace) console.trace();\n throw new Error('Empty cookie');\n }\n this.owner = secure;\n this.httpGet = this.makeHttpSvc(secure, api);\n }\n\n protected modifyQuery(query: ProjectSearchCriteria) {\n if (!_.isObject(query)) throw new Error('incorrect query');\n if (!this.owner && this.foreignAccess) this.query.scope = 'FOREIGN';\n _.extend(this.query, query);\n }\n\n reset(): void {\n this.busy = this.shownAll = false;\n this.currentPage = this.count = 0;\n }\n\n getResultsOnPage(pageNum: number = this.currentPage) {\n return this.pages[pageNum];\n }\n\n nextPage(shuffle = false): ng.IPromise<{count: number, results: Array}> {\n if (this.busy || this.shownAll || (this.seoPage && this.results.length > 0)) return this.$q.reject();\n return this.loadPage(++this.currentPage).then(result => {\n if (shuffle) this.results = _.shuffle(this.results);\n const lastPage = _.last(this.pages);\n if (lastPage && lastPage.length > 0) this.callback(lastPage);\n return result;\n });\n }\n\n reorderPages() {\n if (this.pages.length === 0) return;\n\n let prevIndex: number;\n let pageNumber = 1;\n const pages: T[][] = [];\n const itemsList: T[] = [];\n\n this.pages.forEach((items: T[], index: number) => {\n if (!prevIndex) {\n prevIndex = index;\n }\n\n if (!_.isEmpty(items) && prevIndex++ === index) {\n itemsList.push(...items);\n }\n });\n\n itemsList.forEach((item: T) => {\n if (pages[pageNumber] && pages[pageNumber].length >= this.query.limit) {\n pageNumber++;\n }\n\n if (!pages[pageNumber]) {\n pages[pageNumber] = [];\n }\n\n pages[pageNumber].push(item);\n });\n\n let lastPageList = pages[pages.length - 1];\n if (lastPageList.length !== this.query.limit && !this.shownAll) {\n pages.pop();\n }\n\n this.totalPages = this.getTotalPages();\n this.pages = pages;\n }\n\n changeLimit(limit: number) {\n this.query.limit = limit;\n this.reorderPages();\n }\n\n loadPage(pageNum: number = this.currentPage): ng.IPromise> {\n if (!this.httpGet) return this.$q.reject('no httpGet');\n const resultsOnPage = this.getResultsOnPage(pageNum);\n if (resultsOnPage) {\n this.busy = false;\n return this.$q.resolve({count: this.count, results: resultsOnPage});\n }\n this.busy = true;\n\n const pgNm = this.results.length === 0 ? this.seoPage || pageNum : pageNum;\n const params = _.extend({}, this.query, {\n offset: (pgNm - 1) * this.query.limit || 0\n });\n\n return this.httpGet({\n params,\n headers: this.headers\n }).then(r => r.data).then(data => {\n this.loaded = true;\n if (this.decorate) this.decorate(data.results);\n this.pages[pageNum] = data.results;\n this.flattenResults();\n\n this.count = data.count || this.results.length;\n this.totalPages = this.getTotalPages();\n\n this.shownAll = (!this.query.noCount && this.count <= this.results.length) || data.results.length === 0;\n\n if (this.shownAll) {\n this.$rootScope.$emit('$projects:shownAll', this);\n }\n\n this.apiUnavaliable = this.busy = false;\n return data;\n }, response => {\n const {data, status} = response;\n this.loaded = true;\n if (status <= 0) {\n this.apiUnavaliable = true;\n this.$log.error('Error occurred getting results: ' + data + ',status: ' + status);\n return this.retry(pageNum);\n } else {\n const message = data.message || 'Something went completely wrong';\n _.notification.showError(message);\n return Promise.reject(message);\n }\n });\n }\n\n private getTotalPages(): number {\n return Math.abs(Math.ceil(this.count / this.query.limit));\n }\n\n private flattenResults(): void {\n const flatResults: T[] = [];\n for (let i = 1; i < this.pages.length; i++) {\n const page = this.pages[i];\n if (!page) break;\n page.forEach(prj => flatResults.push(prj));\n }\n if (this.uniqueId) {\n this.results = _.unique(flatResults, false, item => item[this.uniqueId]);\n } else {\n this.results = flatResults;\n }\n }\n\n private retry(pageNum: number): ng.IPromise {\n const deferred = this.$q.defer();\n\n if (this.retries < this.retriesMax) {\n const timeoutId = this.$timeout(() => {\n this.$log.debug(`${this.retries} retry out of ${this.retriesMax}`);\n this.retries += 1;\n this.busy = false;\n deferred.resolve(this.loadPage(pageNum));\n }, 1000);\n this.$rootScope.$on('$stateChangeStart', () => this.$timeout.cancel(timeoutId));\n } else {\n const message = `retry was called over ${this.retriesMax}`;\n this.$log.warn(message);\n deferred.reject(message);\n }\n\n return deferred.promise;\n }\n\n private addSeoPagination(): void {\n if (this.$stateParams.hasOwnProperty('page')) {\n const mkLink = (rel: string | number) => {\n return document.head.querySelector(`[rel=${rel}]`) ||\n document.head.appendChild(document.createElement('link'));\n };\n const pageNum = this.seoPage || 1;\n [['prev', pageNum - 1], ['next', pageNum + 1]]\n .filter(([_, n]) => n > 0)\n .forEach(([rel, n]) => {\n const source = {rel, href: `${location.pathname}?page=${n}`};\n const target = mkLink(rel);\n Object.assign(target, source);\n });\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/AnimatronSvc.ts","import services from 'services/module';\n\nexport class EventSvc {\n constructor(private $rootScope: ng.IRootScopeService,\n private $state: ng.ui.IStateService,\n private $log: ng.ILogService) {\n }\n\n init() {\n this.$rootScope.$on('$stateChangeStart', (event: ng.IAngularEvent,\n toState: ng.ui.IState,\n toParams: ng.ui.IStateParamsService,\n fromState: ng.ui.IState) => {\n //remove all listeners on page change. Can be dangerous, watch out!\n const hasTemplate = fromState.templateUrl\n || fromState.template\n || toState.templateUrl\n || toState.template;\n\n const isStateProject = () =>\n options.animatronProducts.some((product) =>\n this.$state.is(`${product.toLowerCase()}-project`));\n\n const isStateLogout = () => this.$state.is('logout');\n\n if (!isStateProject() && hasTemplate && !isStateLogout) {\n const listeners = this.$rootScope.$$listeners;\n Object.keys(listeners)\n .filter(l => l.lastIndexOf('$', 0) !== 0 && listeners[l].length > 0)\n .forEach(listener => {\n this.$log.debug('Removing listener', listener);\n listeners[listener] = [];\n });\n }\n });\n }\n}\nservices.service('EventSvc', EventSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/EventSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/wave-tutorials-list_91660c45f5caf31f576954095680b815.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/tutorial/wave-tutorials-list.less\n// module id = 74nn\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/_slider_795fc02fb686f021c4c87e86580ad452.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/_slider.less\n// module id = 7JoK\n// module chunks = 151","export type Dimension = {width: number, height: number};\n\nexport class RescaleSvc {\n\n static resizeWithAspectRatio(w: number, h: number, maxWidth: number, maxHeight?: number, round = true, upscale = false): Dimension {\n let ratio: number,\n width = w,\n height = h,\n newDimension = {\n width: w,\n height: h\n };\n if (upscale) {\n width = width * 9999;\n height = height * 9999;\n }\n\n if (width > maxWidth) {\n ratio = maxWidth / width;\n newDimension.width = maxWidth;\n newDimension.height = height * ratio;\n height = height * ratio;\n width = width * ratio;\n }\n\n if (height > maxHeight) {\n ratio = maxHeight / height;\n newDimension.height = maxHeight;\n newDimension.width = width * ratio;\n }\n if (round) {\n Object.keys(newDimension).forEach(k => newDimension[k] = Math.round(newDimension[k]));\n }\n return newDimension;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/RescaleSvc.ts","module.exports = __webpack_public_path__ + \"images/avatars/male/6.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/6.png\n// module id = 7UG8\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/_checkbox_be1160f9b5847427b2dc1cad1e0a2dbc.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/_checkbox.less\n// module id = 7c9p\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-company-quote_c3058a7abffcc0071f36f4e6ccc8f55e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-company-quote.less\n// module id = 7f+t\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-bitmap_88b11cfb92b21fc2f06214ea40b84f7f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-bitmap.less\n// module id = 7s+J\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/privacy_4b324e662dcfee78a76a75663c189aae.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/privacy.html\n// module id = 7zPr\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/analytics_6744ac07d00ac27c141443f7cbed0893.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/analytics.less\n// module id = 8Acd\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/9.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/9.svg\n// module id = 8IAX\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/multi-share_05ce42ebf563f400b84c8f61e4027e04.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/project/publish/multi-share.html\n// module id = 8ReI\n// module chunks = 151","import directives from './module';\nimport {AuthenticationSvc} from '../services/AuthenticationSvc';\n\nclass WaveHeader implements ng.IComponentController {\n constructor(private $state: ng.ui.IStateService,\n public AuthenticationSvc: AuthenticationSvc) {}\n\n handlerClickLogin() {\n options.handHeld ? this.$state.go('wave-login') : this.AuthenticationSvc.toggleLoginModal()\n }\n}\n\ndirectives.component('waveHeader', {\n controller: WaveHeader,\n templateUrl: require('wave-header.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/waveHeader.ts","import services from './module';\nimport {AnimatronSvc} from 'services/AnimatronSvc';\nimport {HttpSvcFactory} from './HttpSvc';\n\nexport class AnimatronUsersSvc extends AnimatronSvc {\n keyword: string;\n\n constructor(keyword: string, query: ProjectSearchCriteria = {}, secure = false) {\n super(query, secure);\n this.keyword = encodeURIComponent(keyword);\n this.setSecure(secure);\n }\n\n makeHttpSvc() {\n return this.HttpSvc('profile', 'search', this.keyword).get;\n }\n}\nfunction AnimatronUsersSvcFactory($rootScope: ng.IRootScopeService,\n $log: ng.ILogService,\n $timeout: ng.ITimeoutService,\n $q: ng.IQService,\n $stateParams: any,\n HttpSvc: HttpSvcFactory) {\n _.extend(AnimatronUsersSvc.prototype, {\n $rootScope, $log, $timeout, $q, $stateParams, HttpSvc\n });\n return AnimatronUsersSvc;\n}\n\nexport type AnimatronUsersFactory = new(keyword: string,\n query: ProjectSearchCriteria,\n secure?: boolean) => AnimatronUsersSvc;\n\nservices.factory('AnimatronUsers', AnimatronUsersSvcFactory);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/AnimatronUsersSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/le-share-button_6603000fba95f99339d40540bf251d27.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/le-share-button.less\n// module id = 8gmB\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/8.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/8.svg\n// module id = 9+MG\n// module chunks = 151","export default ([\n {\n url: 'wave',\n title: 'wv.landing.title',\n description: 'head.wave.description',\n preview: 'https://assets.animatron.com/images/landing/wavevideo_mainpage_preview.jpg',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'video-time',\n title: 'wave.main.video-time.title',\n description: 'wave.main.video-time.description',\n isScrollButton: true,\n buttons: true,\n timeSteps: [\n {\n isActive: true,\n title: 'wave.main.video-time.time-step-1.tile',\n time: 1\n },\n {\n title: 'wave.main.video-time.time-step-2.tile',\n time: 13.7\n },\n {\n title: 'wave.main.video-time.time-step-3.tile',\n time: 25.2\n },\n {\n title: 'wave.main.video-time.time-step-4.tile',\n time: 31.7\n }\n ],\n video: {\n isMobile: true,\n wistiaId: 'bmq75gd0v6',\n mobileWistiaId: 'bmq75gd0v6'\n }\n },\n {\n name: 'different-devices',\n buttons: true\n },\n {\n name: 'bitmap',\n title: 'wave.main.bitmap.title',\n description: 'wave.main.bitmap.description'\n },\n {\n name: 'horizontal-text-video',\n title: 'wave.main.horizontal-text-video.title',\n description: 'wave.main.horizontal-text-video.description',\n buttons: true,\n video: {\n wistiaId: 's7su99epyz',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/upload.jpg'\n }\n },\n {\n name: 'vertical-text-video',\n title: 'wave.main.vertical-text-video.title',\n description: 'wave.main.vertical-text-video.description',\n buttons: true,\n video: {\n wistiaId: 'lg67y8tmvu',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/effects_2.jpg'\n }\n },\n {\n name: 'video-steps',\n steps: [\n {\n title: 'wave.main.video-step1.title',\n content: 'wave.main.video-step1.description',\n buttons: true,\n video: {\n isMobile: false,\n isShadow: false,\n wistiaId: 'bqzdooz0uw',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/several_clips.jpg'\n }\n },\n {\n title: 'wave.main.video-step2.title',\n content: 'wave.main.video-step2.description',\n buttons: true,\n video: {\n isMobile: false,\n isShadow: false,\n wistiaId: 'y5qrr37gmx',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/music.jpg'\n }\n },\n {\n title: 'wave.main.video-step3.title',\n content: 'wave.main.video-step3.description',\n buttons: true,\n video: {\n isMobile: false,\n isShadow: false,\n wistiaId: 'w69rszq49x',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/cta.jpg'\n }\n }\n ],\n reverse: true\n },\n {\n name: 'video-gallery',\n title: 'wave.main.examples.title',\n description: 'wave.main.examples.description',\n videos: ['pu5q1q8os1', 'w6dlbyzpek', 'twoktydxrp']\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/text-on-video',\n title: 'wave.text-on-video.title',\n description: 'wave.text-on-video.description',\n preview: 'https://assets.animatron.com/images/landing/template/page-previews/add_text.jpg',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.text-on-video.video-sign-up.title',\n description: 'wave.text-on-video.video-sign-up.description',\n button: 'wv.landing.no-signup.button.1',\n video: {\n isShadow: true,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/preview-top-video.png',\n alt: 'wv.landing.text-on-video.alt'\n }\n },\n {\n name: 'video-gallery',\n title: 'wave.text-on-video.video-gallery.title',\n description: 'wave.text-on-video.video-gallery.description',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/app-to-add-text-on-video',\n title: 'wave.app-to-add-text-on-video.title',\n description: 'wave.app-to-add-text-on-video.description',\n preview: 'https://assets.animatron.com/images/landing/template/page-previews/add_text.jpg',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.app-to-add-text-on-video.video-sign-up.title',\n description: 'wave.app-to-add-text-on-video.video-sign-up.description',\n button: 'wv.landing.no-signup.button.1',\n video: {\n isShadow: true,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/preview-top-video.png',\n alt: 'wv.landing.app-text-on-video.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.app-to-add-text-on-video.video-gallery.title',\n steps: [\n {\n title: 'wv.app-to-add-text-on-video.content.block1.title',\n content: 'wv.app-to-add-text-on-video.content.block1.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'w57pc408i9'\n }\n },\n {\n title: 'wv.app-to-add-text-on-video.content.block2.title',\n content: 'wv.app-to-add-text-on-video.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'ky7rhf536t'\n }\n },\n {\n title: 'wv.app-to-add-text-on-video.content.block3.title',\n content: 'wv.app-to-add-text-on-video.content.block3.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'jgsith3l13'\n }\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'video-gallery',\n title: 'wave.text-on-video.video-gallery.title',\n description: 'wave.app-to-add-text-on-video.video-gallery.description',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/animated-text',\n title: 'wave.animated-text.title',\n description: 'wave.animated-text.description',\n preview: 'https://assets.animatron.com/images/landing/template/animated-text/animated_text.png',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.animated-text.video-sign-up.title',\n description: 'wave.animated-text.video-sign-up.description',\n button: 'wv.landing.no-signup.button.1',\n video: {\n isShadow: true,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/preview-top-video.png',\n alt: 'wv.landing.animated-text.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.animated-text.video-gallery.title',\n steps: [\n {\n title: 'wv.animated-text.content.block1.title',\n content: 'wv.animated-text.content.block1.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '8g73wb2uvy'\n }\n },\n {\n title: 'wv.animated-text.content.block2.title',\n content: 'wv.animated-text.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'ky7rhf536t'\n }\n },\n {\n title: 'wv.animated-text.content.block3.title',\n content: 'wv.animated-text.content.block3.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'sfpvf5w9ie'\n }\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'video-gallery',\n title: 'wave.animated-text1.video-gallery.title',\n description: 'wave.app-to-add-text-on-video.video-gallery.description',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/make-facebook-video',\n title: 'wave.make-facebook-video.title',\n description: 'wave.make-facebook-video.description',\n preview: 'https://assets.animatron.com/images/landing/template/make-facebook-video/screen.jpg',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.make-facebook-video.video-sign-up.title',\n description: 'wave.make-facebook-video.video-sign-up.description',\n button: 'wv.landing.no-signup.button.3',\n video: {\n isShadow: true,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/make-facebook-video/facebook_cover.jpg',\n alt: 'wv.landing.make-facebook-video.alt'\n }\n },\n {\n name: 'video-gallery',\n title: 'wave.make-facebook-video.video-gallery.title',\n description: 'wave.make-facebook-video.video-gallery.description',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/how-to-make-facebook-video',\n title: 'wave.how-facebook.title',\n description: 'wave.how-facebook.description',\n preview: 'https://assets.animatron.com/images/landing/template/make-facebook-video/make_fb_videos.png',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.how-facebook.video-sign-up.title',\n description: 'wave.how-facebook.video-sign-up.description',\n button: 'wv.landing.no-signup.button.2',\n video: {\n isShadow: true,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/make-facebook-video/facebook_cover.jpg',\n alt: 'wv.landing.how-facebook-video.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.how-facebook.video-gallery.title',\n steps: [\n {\n title: 'wv.how-facebook.content.block1.title',\n content: 'wv.how-facebook.content.block1.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-fb/library.jpg',\n alt: 'wave.how-facebook.video-sign-up.title'\n },\n {\n title: 'wv.how-facebook.content.block2.title',\n content: 'wv.how-facebook.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '3tw9smphnd'\n }\n },\n {\n title: 'wv.how-facebook.content.block3.title',\n content: 'wv.how-facebook.content.block3.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '3rv17y4i47'\n }\n },\n {\n title: 'wv.facebook-cover.content.block4.title',\n content: 'wv.how-facebook.content.block4.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/facebook-cover-video/download.png',\n alt: 'wave.how-facebook.video-sign-up.title'\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'video-gallery',\n title: 'wave.how-facebook1.video-gallery.title',\n description: 'wave.how-facebook1.video-gallery.description',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/instagram-video-editor',\n title: 'wave.instagram-video.title',\n description: 'wave.instagram-video.description',\n preview: 'https://assets.animatron.com/images/landing/template/instagram-video-editor/make_ig_video.png',\n keywords: 'head.wave.keywords.test',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.instagram-video.video-sign-up.title',\n description: 'wave.instagram-video.video-sign-up.description',\n button: 'wv.landing.no-signup.button.4',\n video: {\n isShadow: true,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/instagram-video-editor/ig_video_editor.jpg',\n alt: 'wv.landing.instagram-video-editor.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.instagram-video.video-gallery.title',\n steps: [\n {\n title: 'wv.instagram-video.content.block1.title',\n content: 'wv.instagram-video.content.block1.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-fb/library_collection.jpg',\n alt: 'wave.instagram-video.video-sign-up.title'\n },\n {\n title: 'wv.instagram-video.content.block2.title',\n content: 'wv.instagram-video.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '3tw9smphnd'\n }\n },\n {\n title: 'wv.how-facebook.content.block3.title',\n content: 'wv.instagram-video.content.block3.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '3rv17y4i47'\n }\n },\n {\n title: 'wv.instagram-video.content.block4.title',\n content: 'wv.instagram-video.content.block4.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-fb/publish.jpg',\n alt: 'wave.instagram-video.video-sign-up.title'\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'video-gallery',\n title: 'wv.instagram-video.video-gallery.title',\n description: 'wave.instagram-video.video-gallery.description',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/make-instagram-video',\n title: 'wave.make-instagram-video.title',\n description: 'wave.make-instagram-video.description',\n preview: 'https://assets.animatron.com/images/landing/template/instagram-video-editor/ig_preview.png',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.make-instagram-video.video-sign-up.title',\n description: 'wave.make-instagram-video.video-sign-up.description',\n button: 'wv.landing.no-signup.button.4',\n video: {\n isShadow: true,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/instagram-video-editor/ig_video_editor.jpg',\n alt: 'wv.landing.make-instagram-videos.alt'\n }\n },\n {\n name: 'video-gallery',\n title: 'wv.instagram-video.video-gallery.title',\n description: 'wave.instagram-video.video-gallery.description',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/online-video-editor',\n title: 'wave.video-editor.title',\n description: 'wave.video-editor.description',\n preview: 'https://assets.animatron.com/images/landing/template/online-video-editor/video_editor.jpg',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'video-sign-up',\n logo: false,\n title: 'wave.video-editor.video-sign-up.title',\n description: 'wave.video-editor.video-sign-up.description',\n button: 'wv.landing.no-signup.button.1',\n video: {\n isShadow: true,\n wistiaId: 't3rvoc1lwn',\n preview: 'https://assets.animatron.com/images/landing/template/online-video-editor/online_video_editor_cover.jpg',\n alt: 'wv.landing.online-video-editor.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.video-editor.video-gallery.title',\n steps: [\n {\n title: 'wv.video-editor.content.block1.title',\n content: 'wv.video-editor.content.block1.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'rajf0u25q2'\n }\n },\n {\n title: 'wv.video-editor.content.block2.title',\n content: 'wv.video-editor.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'go1mecdxla'\n }\n },\n {\n title: 'wv.video-editor.content.block3.title',\n content: 'wv.video-editor.content.block3.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'ap4d6rqm11'\n }\n },\n {\n title: 'wv.video-editor.content.block4.title',\n content: 'wv.video-editor.content.block4.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'w4vau9mem1'\n }\n },\n {\n title: 'wv.video-editor.content.block5.title',\n content: 'wv.video-editor.content.block5.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'mt53cvnpk3'\n }\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'video-gallery',\n title: 'wv.video-editor.video-gallery.title',\n description: 'wave.video-editor.video-gallery.description',\n videos: ['fk2bckaos0', 'u8u54wr4gp', 'xe1mo9knog'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/combine-media',\n title: 'wave.combine-media.title',\n description: 'wave.combine-media.description',\n preview: 'https://assets.animatron.com/images/landing/video-previews/landing_combine_media_top.png',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n logo: true,\n title: 'wave.landing.combine-media.top.title',\n description: 'wave.landing.combine-media.top.desc',\n button: 'wv.landing.no-signup.button.1',\n video: {\n isShadow: false,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/video-previews/landing_combine_media_top.png',\n alt: 'wv.landing.combine-media.alt'\n },\n isScrollButton: true\n },\n {\n name: 'video-gallery',\n title: 'wave.landing.combine-media.video-slider.title',\n description: 'wave.landing.combine-media.description',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\n buttons: true\n },\n {\n name: 'video-steps',\n title: 'wv.landing.content.block2.title',\n steps: [\n {\n title: 'wv.landing.content.block2.import-files.title',\n content: 'wv.landing.content.block2.import-files.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '6vbj1v1hq4'\n }\n },\n {\n title: 'wv.landing.content.block2.choose-video-2.title',\n content: 'wv.landing.content.block2.choose-video-2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'nk1irybap8'\n }\n },\n {\n title: 'wv.landing.content.block2.customize-video.title',\n content: 'wv.landing.content.block2.customize-video.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'w9pcneinkv'\n }\n },\n {\n title: 'wv.landing.content.block2.preview-results.title',\n content: 'wv.landing.content.block2.preview-results.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'rj6o2v8dus'\n }\n }\n ],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/facebook-cover-video',\n title: 'wave.facebook-cover.title',\n description: 'wave.facebook-cover.description',\n button: 'wv.landing.no-signup.button.2',\n preview: 'https://assets.animatron.com/images/landing/template/facebook-cover-video/make.png',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'video-sign-up',\n logo: false,\n title: 'wave.facebook-cover.video-sign-up.title',\n description: 'wave.facebook-cover.video-sign-up.description',\n button: 'wv.landing.no-signup.button.1',\n video: {\n isShadow: true,\n wistiaId: 'judgtrwj03',\n preview: 'https://assets.animatron.com/images/landing/template/facebook-cover-video/facebook-cover-video.jpg',\n alt: 'wv.landing.facebook-cover-video.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.facebook-cover.video-gallery.title',\n steps: [\n {\n title: 'wv.facebook-cover.content.block1.title',\n content: 'wv.facebook-cover.content.block1.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'nk1irybap8'\n }\n },\n {\n title: 'wv.facebook-cover.content.block2.title',\n content: 'wv.facebook-cover.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'lirnbs1689'\n }\n },\n {\n title: 'wv.facebook-cover.content.block3.title',\n content: 'wv.facebook-cover.content.block3.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'rj6o2v8dus'\n }\n },\n {\n title: 'wv.facebook-cover.content.block4.title',\n content: 'wv.facebook-cover.content.block4.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/facebook-cover-video/download.png',\n alt: 'wv.landing.facebook-cover-video.alt1'\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/how-to-make-instagram-videos',\n title: 'wave.how-to-instagram.title',\n description: 'wave.how-to-instagram.description',\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-instagram-videos/how-ig-cover.png',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.how-to-instagram.video-sign-up.title',\n description: 'wave.how-to-instagram.video-sign-up.description',\n button: 'wv.landing.no-signup.button.4',\n video: {\n isShadow: true,\n wistiaId: 'i4fl562kt3',\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-instagram-videos/ig-cover-new.jpg',\n alt: 'wv.landing.how-to-instagram.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.how-to-instagram.video-gallery.title',\n steps: [\n {\n title: 'wv.how-facebook.content.block1.title',\n content: 'wv.how-facebook.content.block1.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-fb/library_collection.jpg',\n alt: 'wv.landing.how-to-instagram.alt1'\n },\n {\n title: 'wv.how-to-instagram.content.block2.title',\n content: 'wv.how-to-instagram.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '3tw9smphnd'\n }\n },\n {\n title: 'wv.how-facebook.content.block3.title',\n content: 'wv.instagram-video.content.block3.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '3rv17y4i47'\n }\n },\n {\n title: 'wv.instagram-video.content.block4.title',\n content: 'wv.how-to-instagram.content.block4.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-make-instagram-videos/ig-download.jpg',\n alt: 'wv.landing.how-to-instagram.alt2'\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'video-gallery',\n title: 'wv.instagram-video.video-gallery.title',\n description: 'wave.instagram-video.video-gallery.description',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/how-to-make-youtube-videos',\n title: 'wave.how-to-youtube.title',\n description: 'wave.how-to-youtube.description',\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-youtube-videos/youtube-videos.jpg',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.how-to-youtube.video-sign-up.title',\n description: 'wave.how-to-youtube.video-sign-up.description',\n button: 'wv.landing.no-signup.button.5',\n video: {\n isShadow: true,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-youtube-videos/2.jpg',\n alt: 'wv.landing.how-to-youtube-video.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.how-to-youtube.video-gallery.title',\n steps: [\n {\n title: 'wv.how-facebook.content.block1.title',\n content: 'wv.how-facebook.content.block1.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'nk1irybap8'\n }\n },\n {\n title: 'wv.how-to-youtube.content.block2.title',\n content: 'wv.how-to-youtube.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '3rv17y4i47'\n }\n },\n {\n title: 'wv.how-to-youtube.content.block3.title',\n content: 'wv.how-to-youtube.content.block3.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-make-youtube-videos/how-to-youtube.png',\n alt: 'wv.landing.how-to-youtube-video.alt1'\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/real-estate-video',\n title: 'wave.real-estate.title',\n description: 'wave.real-estate.description',\n preview: 'https://assets.animatron.com/images/landing/template/real-estate-video/landing_laptop_img.png',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.landing.real-estate.top.title',\n description: 'wave.landing.real-estate.top.desc',\n button: 'wv.landing.no-signup.button.6',\n video: {\n isShadow: false,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/real-estate-video/landing_laptop_img.png',\n alt: 'wv.landing.real-estate.alt'\n },\n isScrollButton: true\n },\n {\n name: 'video-gallery',\n title: 'wave.landing.real-estate.video-slider.title',\n videos: ['trppod8rcb', 'isujvqsudd', '3ci2sswcd4'],\n buttons: true\n },\n {\n name: 'video-steps',\n title: 'wv.landing.content.block2.title',\n steps: [\n {\n title: 'wv.landing.content.block2.import-files.title',\n content: 'wv.landing.content.block2.import-files.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '6vbj1v1hq4'\n }\n },\n {\n title: 'wv.landing.content.block2.real-estate2.title',\n content: 'wv.landing.content.block2.choose-video-2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'nk1irybap8'\n }\n },\n {\n title: 'wv.landing.content.block2.customize-video.title',\n content: 'wv.landing.content.block2.customize-video.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'vdtw7vgixo'\n }\n },\n {\n title: 'wv.landing.content.block2.real-estate4.title',\n content: 'wv.landing.content.block2.real-estate4.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'rj6o2v8dus'\n }\n }\n ],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/how-to-make-video-ads',\n title: 'wave.how-to-video-ad.title',\n description: 'wave.how-to-video-ad.description',\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-video-ads/5.jpg',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.how-to-video-ad.video-sign-up.title',\n description: 'wave.how-to-video-ad.video-sign-up.description',\n button: 'wv.landing.no-signup.button.7',\n video: {\n isShadow: true,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/how-to-make-video-ads/5.jpg',\n alt: 'wv.landing.how-to-video-ad.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.how-to-video-ad.video-gallery.title',\n steps: [\n {\n title: 'wv.how-facebook.content.block1.title',\n content: 'wv.how-facebook.content.block1.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'nk1irybap8'\n }\n },\n {\n title: 'wv.how-to-video-ad.content.block2.title',\n content: 'wv.how-to-video-ad.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '3tw9smphnd'\n }\n },\n {\n title: 'wv.how-to-video-ad.content.block3.title',\n content: 'wv.how-to-video-ad.content.block3.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '3rv17y4i47'\n }\n },\n {\n title: 'wv.how-to-video-ad.content.block4.title',\n content: 'wv.how-to-video-ad.content.block4.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-make-video-ads/4.jpg',\n alt: 'wv.landing.how-to-video-ad.alt1'\n }\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n\n },\n {\n url: 'wave/make-video-for-blog',\n title: 'wave.blog-video.title',\n description: 'wave.blog-video.description',\n preview: 'https://assets.animatron.com/images/landing/template/make-video-for-blog/make_video_for_blogpost.jpg',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.landing.blog-video.top.title',\n description: 'wave.landing.blog-video.top.desc',\n button: 'wv.landing.no-signup.button.8',\n video: {\n isShadow: false,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/make-video-for-blog/make-blog-videos-cover.png',\n alt: 'wv.landing.make-video-for-blog.alt'\n },\n isScrollButton: true\n },\n {\n name: 'video-gallery',\n title: 'wave.landing.blog-video.video-slider.title',\n description: 'wave.landing.blog-video.description',\n videos: ['yrg8tmhc1o', '6nuk3l0wnk', '3ci2sswcd4'],\n buttons: true\n },\n {\n name: 'video-steps',\n title: 'wv.landing.content.block2.title',\n steps: [\n {\n title: 'wv.landing.content.block1.blog-video.title',\n content: 'wv.landing.content.block1.blog-video.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'dj1r7aia3k'\n }\n },\n {\n title: 'wv.landing.content.block2.blog-video.title',\n content: 'wv.landing.content.block2.blog-video.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'nk1irybap8'\n }\n },\n {\n title: 'wv.landing.content.block3.blog-video.title',\n content: 'wv.landing.content.block3.blog-video.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'ky7rhf536t'\n }\n },\n {\n title: 'wv.landing.content.block4.blog-video.title',\n content: 'wv.landing.content.block4.blog-video.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'rj6o2v8dus'\n }\n },\n {\n title: 'wv.landing.content.block5.blog-video.title',\n content: 'wv.landing.content.block5.blog-video.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/how-to-make-video-ads/4.jpg',\n alt: 'wv.landing.make-video-for-blog.alt1'\n\n }\n ],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/video-email',\n title: 'wave.video-email.title',\n description: 'wave.video-email.description',\n preview: 'https://assets.animatron.com/images/landing/template/video-email/laptop_email_img.png',\n settings: {\n isHeader: false,\n footer: 'small'\n },\n sections: [\n {\n name: 'video-sign-up',\n title: 'wave.landing.video-email.top.title',\n description: 'wave.landing.video-email.top.desc',\n button: 'wv.landing.no-signup.button.9',\n video: {\n isShadow: false,\n wistiaId: '9s5vbyut5r',\n preview: 'https://assets.animatron.com/images/landing/template/video-email/laptop_email_img.png',\n alt: 'wv.landing.video-email.alt'\n },\n isScrollButton: true\n },\n {\n name: 'video-gallery',\n title: 'wave.landing.video-email.video-slider.title',\n description: 'wave.landing.video-email.description',\n videos: ['3ci2sswcd4', '6nuk3l0wnk', 'yrg8tmhc1o'],\n buttons: true\n },\n {\n name: 'video-steps',\n title: 'wv.landing.content.block2.title',\n steps: [\n {\n title: 'wv.landing.content.block2.import-files.title',\n content: 'wv.landing.content.block2.video-email.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: '6vbj1v1hq4'\n }\n },\n {\n title: 'wv.landing.content.block2.real-estate2.title',\n content: 'wv.landing.content.block2.choose-video-2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'nk1irybap8'\n }\n },\n {\n title: 'wv.landing.content.block2.customize-video.title',\n content: 'wv.landing.content.block3.video-email.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'ky7rhf536t'\n }\n },\n {\n title: 'wv.landing.content.block4.video-email.title',\n content: 'wv.landing.content.block4.video-email.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'nk38l9atrd'\n }\n }\n ],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/success-stories',\n title: 'wv.ss.list.title',\n description: 'wv.ss.list.description',\n preview: 'https://assets.animatron.com/images/landing/success_stories/homestars_upd_logo.jpg',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'background-text',\n title: 'wv.ss.list.title',\n description: 'wv.ss.list.description',\n background: {\n style: 'horizontal-blue-gradient'\n }\n },\n {\n name: 'template-pages-list',\n matchCondition: '/success-stories/'\n },\n {\n name: 'horizontal-image-text',\n title: 'wv.pricing.call-to-action.title',\n text: 'wv.pricing.call-to-action.text',\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\n alt: 'wv.landing.success-stories.alt',\n buttons: true\n }\n ]\n },\n {\n url: 'wave/integrations',\n title: 'wv.integrations.list.title',\n description: 'wv.integrations.list.description',\n preview: 'https://assets.animatron.com/images/landing/success_stories/homestars_upd_logo.jpg',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'background-text',\n title: 'wv.integrations.list.title',\n description: 'wv.integrations.list.description',\n background: {\n style: 'horizontal-blue-gradient'\n }\n },\n {\n name: 'template-pages-list',\n matchCondition: '/integrations/'\n },\n {\n name: 'horizontal-image-text',\n title: 'wv.pricing.call-to-action.title',\n text: 'wv.pricing.call-to-action.text',\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\n alt: 'wv.integrations.cta.title',\n buttons: true\n }\n ]\n },\n {\n url: 'wave/success-stories/981-media',\n title: 'wv.981-media.title',\n description: 'wv.981-media.description',\n preview: 'https://assets.animatron.com/images/landing/template/video-email/laptop_email_img.png',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'company-info',\n title: 'wv.ss1.title',\n title2: 'wv.ss1.title1',\n description: 'wv.ss1.description',\n background: {\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/981-media/header_img.jpg',\n alt: 'wv.981-media.alt.title'\n },\n logoUrl: '/assets/images/landing/success_stories/981_logo2.jpg',\n logoAlt: 'wv.ss1.title',\n list: [\n {\n iconClass: 'location',\n iconName: 'wv.ss.location',\n text: 'wv.ss1.location'\n },\n {\n iconClass: 'industry',\n iconName: 'wv.ss.industry',\n text: 'wv.ss1.industry'\n },\n {\n iconClass: 'use_cases',\n iconName: 'wv.ss.use_cases',\n list: ['wv.ss1.use_cases1', 'wv.ss1.use_cases2']\n },\n {\n iconClass: 'site',\n iconName: 'wv.ss.website',\n link: {\n url: 'https://www.981media.com/',\n title: 'wv.ss1.website'\n }\n }\n ]\n },\n {\n name: 'text-aside',\n title: 'wv.ss1.text-aside.text.title',\n text: 'wv.ss1.text-aside.text.content',\n relationList: [\n 'edit-social-video-5-steps'\n ]\n },\n {\n name: 'company-quote',\n username: 'wv.ss1.quote.author',\n description: 'wv.ss1.quote.author.position',\n avatar: 'https://assets.animatron.com/images/landing/success_stories/succes_story_avatar_981.png',\n alt: 'wv.ss1.quote.author',\n text: 'wv.ss1.quote'\n },\n {\n name: 'text-aside',\n title: 'wv.ss1.text-aside2.text.title',\n text: 'wv.ss1.text-aside2.text.content',\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/mobile.png',\n alt: 'wv.981-media.alt.title1'\n },\n {\n name: 'video-gallery',\n title: 'wv.ss1.videos.title',\n videos: ['139fa2vsci', 'h5zebqa72w', 'a5sb1vfe2e']\n },\n {\n name: 'text-aside',\n title: 'wv.ss1.text-aside3.text.title',\n text: 'wv.ss1.text-aside3.text.content',\n relationList: [\n 'make-video-never-done-before'\n ]\n },\n {\n name: 'horizontal-image-text',\n title: 'wv.ss.call-to-action.title',\n text: 'wv.ss.call-to-action.text',\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\n alt: 'wv.981-media.alt.title3',\n buttons: true\n }\n ]\n },\n {\n url: 'wave/success-stories/be-brilliant',\n title: 'wv.be-brilliant.title',\n description: 'wv.be-brilliant.description',\n preview: 'https://assets.animatron.com/images/landing/template/video-email/laptop_email_img.png',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'company-info',\n title: 'wv.ss2.title',\n title2: 'wv.ss2.title1',\n description: 'wv.ss2.description',\n background: {\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/be-brilliant/header_img.jpg',\n alt: 'wv.be-brilliant.title'\n },\n logoUrl: '/assets/images/landing/success_stories/be_brilliant_logo2.jpg',\n list: [\n {\n iconClass: 'location',\n iconName: 'wv.ss.location',\n text: 'wv.ss2.location'\n },\n {\n iconClass: 'industry',\n iconName: 'wv.ss.industry',\n text: 'wv.ss2.industry'\n },\n {\n iconClass: 'use_cases',\n iconName: 'wv.ss.use_cases',\n list: ['wv.ss2.use_cases1', 'wv.ss2.use_cases2', 'wv.ss2.use_cases3', 'wv.ss2.use_cases4', 'wv.ss2.use_cases5']\n },\n {\n iconClass: 'site',\n iconName: 'wv.ss.website',\n link: {\n url: 'https://www.bebrilliant.com/',\n title: 'wv.ss2.website'\n }\n }\n ]\n },\n {\n name: 'company-quote',\n username: 'wv.ss2.quote.author',\n description: 'wv.ss2.quote.author.position',\n avatar: 'https://assets.animatron.com/images/landing/success_stories/success_story_avatar_be_brilliant.png',\n alt: 'wv.ss2.quote.author',\n text: 'wv.ss2.quote'\n },\n {\n name: 'text-aside',\n title: 'wv.ss2.text-aside.text.title',\n text: 'wv.ss2.text-aside.text.content'\n },\n {\n name: 'text-aside',\n title: 'wv.ss2.text-aside2.text.title',\n text: 'wv.ss2.text-aside2.text.content',\n relationList: [\n 'mari1'\n ]\n },\n {\n name: 'text-aside',\n text: 'wv.ss2.text-aside2.text2.content',\n relationList: [\n 'fb-cover'\n ]\n },\n {\n name: 'video-gallery',\n title: 'wv.be-brilliant.video-gallery.title',\n videos: ['m6f026jfzb']\n },\n {\n name: 'text-aside',\n title: 'wv.ss2.text-aside3.text.title',\n text: 'wv.ss2.text-aside3.text.content',\n relationList: [\n 'edit-social-video-5-steps'\n ]\n },\n {\n name: 'horizontal-image-text',\n title: 'wv.be-brilliant.call-to-action.title',\n text: 'wv.be-brilliant.call-to-action.text',\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\n alt: 'wv.be-brilliant.img.alt',\n buttons: true\n }\n ]\n },\n {\n url: 'wave/success-stories/homestars',\n title: 'wv.homestars.title',\n description: 'wv.homestars.description',\n preview: 'https://assets.animatron.com/images/landing/success_stories/homestars_upd_logo.jpg',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'company-info',\n title: 'wv.ss.homestars.title',\n title2: 'wv.ss.homestars.title2',\n description: 'wv.ss.homestars.description',\n background: {\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/homestars/header_img.jpg',\n alt: 'wv.homestars.img.alt'\n },\n logoUrl: '/assets/images/landing/success_stories/homestars_logo.jpg',\n list: [\n {\n iconClass: 'location',\n iconName: 'wv.ss.location',\n text: 'wv.homestars.location'\n },\n {\n iconClass: 'industry',\n iconName: 'wv.ss.industry',\n text: 'wv.homestars.industry'\n },\n {\n iconClass: 'use_cases',\n iconName: 'wv.ss.use_cases',\n list: ['wv.homestars.use_cases']\n },\n {\n iconClass: 'site',\n iconName: 'wv.ss.website',\n link: {\n url: 'https://homestars.com/ ',\n title: 'wv.homestars.website'\n }\n }\n ]\n },\n {\n name: 'text-aside',\n title: 'wv.ss1.text-aside.text.title',\n text: 'wv.homestars.challenge.text.content',\n relationList: [\n 'what-is-video-marketing'\n ]\n },\n {\n name: 'company-quote',\n username: 'wv.homestars.quote.author',\n description: 'wv.homestars.quote.author.position',\n avatar: 'https://assets.animatron.com/images/landing/success_stories/homestars_author.png',\n text: 'wv.homestars.quote'\n },\n {\n name: 'text-aside',\n title: 'wv.ss1.text-aside2.text.title',\n text: 'wv.homestars.solution',\n imageUrl: 'https://assets.animatron.com/images/landing/success_stories/homestars_mob.png',\n alt: 'wv.homestars.img.alt1'\n },\n {\n name: 'video-statistics',\n title: 'wv.ss.homestars.video-statistics.title',\n statistics: [\n {\n title: 'wv.ss.homestars.video-statistics-1.title',\n description: 'wv.ss.homestars.video-statistics-1.description',\n circleProgress: [\n {\n icon: 'https://assets.animatron.com/images/landing/template/homestars/circle-progress-yellow.svg',\n title: 'wv.ss.homestars.video-statistics-1.progress-1.title',\n bigVal: '3,996',\n smallVal: 895,\n val: 346\n },\n {\n icon: 'https://assets.animatron.com/images/landing/success_stories/circle-progress-blue.svg',\n title: 'wv.ss.homestars.video-statistics-1.progress-2.title',\n bigVal: '1,294',\n smallVal: 47,\n val: '2,653'\n },\n\n {\n icon: 'https://assets.animatron.com/images/landing/success_stories/circle-progress-green.svg',\n title: 'wv.ss.homestars.video-statistics-1.progress-3.title',\n bigVal: '19',\n smallVal: 6,\n val: 217\n }\n ],\n video: {\n isMobile: true,\n wistiaId: 'oeagpgadm7',\n mobileWistiaId: 'oeagpgadm7',\n preview: 'https://assets.animatron.com/images/landing/template/homestars/video-statistic-1.png',\n alt: 'wv.homestars.img.alt4'\n }\n },\n {\n title: 'wv.ss.homestars.video-statistics-2.title',\n description: 'wv.ss.homestars.video-statistics-1.description',\n reverse: true,\n circleProgress: [\n {\n icon: 'https://assets.animatron.com/images/landing/template/homestars/circle-progress-yellow.svg',\n title: 'wv.ss.homestars.video-statistics-1.progress-1.title',\n bigVal: '5,568',\n smallVal: '1,107',\n val: 403\n },\n {\n icon: 'https://assets.animatron.com/images/landing/success_stories/circle-progress-blue-2.svg',\n title: 'wv.ss.homestars.video-statistics-1.progress-2.title',\n bigVal: '1,959',\n smallVal: 19,\n val: '10,211'\n },\n {\n icon: 'https://assets.animatron.com/images/landing/success_stories/circle-progress-green-2.svg',\n title: 'wv.ss.homestars.video-statistics-1.progress-3.title',\n bigVal: '15',\n smallVal: 6,\n val: 150\n }\n ],\n video: {\n isMobile: true,\n wistiaId: 'kpjr3jxatx',\n mobileWistiaId: 'kpjr3jxatx',\n preview: 'https://assets.animatron.com/images/landing/template/homestars/video-statistic-2.png',\n alt: 'wv.homestars.img.alt3'\n }\n }\n ]\n },\n {\n name: 'text-aside',\n title: 'wv.ss2.text-aside3.text.title',\n text: 'wv.homestars.results.description1',\n relationList: [\n 'mari1'\n ]\n },\n {\n name: 'text-aside',\n text: 'wv.homestars.results.description2',\n relationList: [\n 'sm-cheat-sheet'\n ]\n },\n {\n name: 'horizontal-image-text',\n title: 'wv.homestars.call-to-action.title',\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\n alt: 'wv.homestars.img.alt2',\n buttons: true\n }\n ]\n },\n {\n url: 'wave/integrations/hubspot',\n title: 'wave.integrations.hubspot.title',\n description: 'wave.integrations.hubspot.description',\n preview: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_cover.jpg',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'background-text',\n title: 'wave.integration-hubspot.video-sign-up.title',\n description: 'wave.integration-hubspot.video-sign-up.description',\n logoUrl: '/assets/images/landing/template/integration-hubspot/hubspot-logo.png',\n background: {\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_bkg1.jpg',\n alt: 'wave.integrations.hubspot.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.hubspot-integration.video-gallery.title',\n steps: [\n {\n title: 'wv.hubspot-integration.content.block1.title',\n content: 'wv.hubspot-integrationcontent.block1.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'pcte5apcav'\n }\n },\n {\n title: 'wv.hubspot-integration.content.block2.title',\n content: 'wv.hubspot-integration.content.block2.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_screen2.jpg',\n alt: 'wave.integrations.hubspot.alt1'\n },\n {\n title: 'wv.hubspot-integration.content.block3.title',\n content: 'wv.hubspot-integration.content.block3.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_screen3.jpg',\n alt: 'wave.integrations.hubspot.alt2'\n },\n {\n title: 'wv.hubspot-integration.content.block4.title',\n content: 'wv.hubspot-integration.content.block4.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-hubspot/hubspot_screen4.jpg',\n alt: 'wave.integrations.hubspot.alt3'\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/integrations/wistia',\n title: 'wave.integrations.wistia.title',\n description: 'wave.integrations.wistia.description',\n preview: 'https://assets.animatron.com/images/landing/template/integration-wistia/wistia_cover.jpg',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'background-text',\n title: 'wave.wistia-integration.video-sign-up.title',\n description: 'wave.wistia-integration.video-sign-up.description',\n logoUrl: '/assets/images/landing/template/integration-wistia/wistia-logo.png',\n background: {\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-wistia/wistiaintegration_bkg1.jpg',\n alt: 'wv.landing.wistia.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.wistia-integration.video-gallery.title',\n steps: [\n {\n title: 'wv.wistia-integration.content.block1.title',\n content: 'wv.wistia-integration.content.block1.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'pcte5apcav'\n }\n },\n {\n title: 'wv.wistia-integration.content.block2.title',\n content: 'wv.wistia-integration.content.block2.content',\n buttons: false,\n video: {\n isShadow: true,\n wistiaId: 'n95b2k3sl1'\n }\n },\n {\n title: 'wv.wistia-integration.content.block3.title',\n content: 'wv.wistia-integration.content.block3.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-wistia/video_stats.png',\n alt: 'wv.wistia-integration.video-stats.alt'\n },\n {\n title: 'wv.wistia-integration.content.block4.title',\n content: 'wv.wistia-integration.content.block4.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/integration-wistia/wistia_signup.png',\n alt: 'wv.wistia-integration.video-stats.alt1'\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'horizontal-image-text',\n title: 'wv.wistia-integration.call-to-action.title',\n text: 'wv.wistia-integration.call-to-action.text',\n imageUrl: 'https://assets.animatron.com/images/landing/template/common/cta_block.png',\n alt: 'wv.landing.wistia.alt1',\n buttons: true\n }\n ]\n },\n {\n url: 'wave/integrations/vimeo',\n title: 'wave.integrations.vimeo.title',\n description: 'wave.integrations.vimeo.description',\n preview: '/assets/images/landing/template/integration-vimeo/vimeo_preview.png',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'background-text',\n title: 'wave.vimeo-integration.video-sign-up.title',\n description: 'wave.vimeo-integration.video-sign-up.description',\n logoUrl: '/assets/images/landing/template/integration-vimeo/vimeo-logo.png',\n background: {\n imageUrl: '/assets/images/landing/template/integration-vimeo/vimeo_bkg.png',\n alt: 'wave.integrations.vimeo.alt'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.vimeo-integration.video-gallery.title',\n steps: [\n {\n title: 'wv.vimeo-integration.content.block1.title',\n content: 'wv.vimeo-integration.content.block1.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'lg67y8tmvu'\n }\n },\n {\n title: 'wv.vimeo-integration.content.block2.title',\n content: 'wv.vimeo-integration.content.block2.content',\n buttons: false,\n video: {\n isShadow: true,\n wistiaId: 'pcte5apcav'\n }\n },\n {\n title: 'wv.vimeo-integration.content.block3.title',\n content: 'wv.vimeo-integration.content.block3.content',\n buttons: false,\n video: {\n isShadow: true,\n wistiaId: '25i2e73cbh'\n }\n\n },\n {\n title: 'wv.vimeo-integration.content.block4.title',\n content: 'wv.vimeo-integration.content.block4.content',\n buttons: false,\n imageUrl: '/assets/images/landing/template/integration-vimeo/vimeo_integration.png',\n alt: 'wave.integrations.vimeo.alt1'\n }\n\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'horizontal-image-text',\n title: 'wv.vimeo-integration.call-to-action.title',\n text: 'wv.vimeo-integration.call-to-action.text',\n imageUrl: '/assets/images/pricing/cta_block.png',\n alt: 'wave.integrations.vimeo.alt2',\n buttons: true\n }\n ]\n },\n {\n url: 'wave/DMlab',\n title: 'wv.dmlab.title',\n description: 'wv.dmlab.description',\n preview: 'https://assets.animatron.com/images/landing/wavevideo_mainpage_preview.jpg',\n settings: {\n isHeader: false,\n footer: 'big'\n },\n sections: [\n {\n name: 'logo-video-sign-up',\n logo: true,\n brandLogo: 'https://assets.animatron.com/images/landing/dm_Certified_partner.png',\n title: 'wv.dmlab.title',\n sbTitle: 'wv.dmlab.signup.title',\n description: 'wv.dmlab.description',\n video: {\n wistiaId: 'bmq75gd0v6',\n preview: 'https://s3.amazonaws.com/assets.animatron.com/images/landing/fs.png',\n alt: 'wv.landing.dmlab.alt'\n }\n },\n {\n name: 'different-devices',\n buttons: true\n },\n {\n name: 'bitmap',\n title: 'wave.main.bitmap.title',\n description: 'wave.main.bitmap.description'\n },\n {\n name: 'horizontal-text-video',\n title: 'wave.main.horizontal-text-video.title',\n description: 'wave.main.horizontal-text-video.description',\n buttons: true,\n video: {\n wistiaId: 's7su99epyz',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/upload.jpg'\n }\n },\n {\n name: 'vertical-text-video',\n title: 'wave.main.vertical-text-video.title',\n description: 'wave.main.vertical-text-video.description',\n buttons: true,\n video: {\n wistiaId: 'lg67y8tmvu',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/effects_2.jpg',\n alt: 'wv.landing.dmlab.alt1'\n }\n },\n {\n name: 'video-steps',\n steps: [\n {\n title: 'wave.main.video-step1.title',\n content: 'wave.main.video-step1.description',\n buttons: true,\n video: {\n isMobile: false,\n isShadow: false,\n wistiaId: 'bqzdooz0uw',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/several_clips.jpg',\n alt: 'wv.landing.dmlab.alt2'\n }\n },\n {\n title: 'wave.main.video-step2.title',\n content: 'wave.main.video-step2.description',\n buttons: true,\n video: {\n isMobile: false,\n isShadow: false,\n wistiaId: 'y5qrr37gmx',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/music.jpg',\n alt: 'wv.landing.dmlab.alt3'\n }\n },\n {\n title: 'wave.main.video-step3.title',\n content: 'wave.main.video-step3.description',\n buttons: true,\n video: {\n isMobile: false,\n isShadow: false,\n wistiaId: 'w69rszq49x',\n preview: 'https://assets.animatron.com/images/landing/template/video-previews/cta.jpg',\n alt: 'wv.landing.dmlab.alt4'\n }\n }\n ],\n reverse: true\n },\n {\n name: 'video-gallery',\n title: 'wave.main.examples.title',\n videos: ['pw4b7fmh5u', 'isujvqsudd', 'twoktydxrp']\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n },\n {\n url: 'wave/online-video-maker',\n title: 'wave.video-maker.title',\n description: 'wave.video-maker.description',\n preview: 'https://assets.animatron.com/images/landing/template/online-video-maker/online-video-maker.jpg',\n settings: {\n isHeader: true,\n footer: 'big'\n },\n sections: [\n {\n name: 'video-sign-up',\n logo: false,\n title: 'wave.video-maker.video-sign-up.title',\n description: 'wave.video-maker.video-sign-up.description',\n button: 'wv.landing.no-signup.button.1',\n video: {\n isShadow: true,\n wistiaId: 't3rvoc1lwn',\n preview: 'https://assets.animatron.com/images/landing/template/online-video-maker/online-video-maker.jpg',\n alt: 'wave.video-maker.title'\n }\n },\n {\n name: 'video-steps',\n title: 'wave.video-maker.video-gallery.title',\n steps: [\n {\n title: 'wv.video-maker.content.block1.title',\n content: 'wv.video-maker.content.block1.content',\n buttons: false,\n imageUrl: 'https://assets.animatron.com/images/landing/template/online-video-maker/beautiful_videos.png',\n alt: 'wv.landing.online-video-maker.alt1'\n },\n {\n title: 'wv.video-maker.content.block2.title',\n content: 'wv.video-maker.content.block2.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'go1mecdxla'\n }\n },\n {\n title: 'wv.video-maker.content.block3.title',\n content: 'wv.video-maker.content.block3.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'tc98w68e4f'\n }\n },\n {\n title: 'wv.video-maker.content.block4.title',\n content: 'wv.video-maker.content.block4.content',\n buttons: false,\n video: {\n isShadow: false,\n wistiaId: 'pdk5pn14jr'\n }\n }\n ],\n reverse: true,\n buttons: true\n },\n {\n name: 'video-gallery',\n title: 'wv.video-maker.video-gallery.title',\n description: 'wave.video-editor.video-gallery.description',\n videos: ['fk2bckaos0', 'u8u54wr4gp', 'xe1mo9knog'],\n buttons: true\n },\n {\n name: 'feedback',\n title: 'wave.text-on-video.feedback.title',\n list: ['smith1', 'aandpete1', 'guy_kawasaki', 'andy_crestodina', 'jeff_sieh', 'amy-schmittauer_landino', 'lilach_bullock', 'donna_moritz']\n },\n {\n name: 'sign-up'\n }\n ]\n }\n\n]) as anm.LandingData[];\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/TemplateLandingPages.ts","module.exports = __webpack_public_path__ + \"stylesheets/subscription-payment-details-container_949027a0f96e5c564506a0f35bed3fc3.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/containers/subscription-payment-details-container.less\n// module id = 9IMG\n// module chunks = 151","import directives from './module';\nimport {Utils} from 'underscore-extensions';\n\ninterface DocumentNoScrollOnChangesObject extends ng.IOnChangesObject {\n documentNoScroll: ng.IChangesObject;\n}\n\nclass DocumentNoScroll {\n static isDisabled = false;\n documentEl = document.documentElement;\n className = 'noscroll';\n\n private disableScroll() {\n if (DocumentNoScroll.isDisabled) {\n return;\n }\n DocumentNoScroll.isDisabled = true;\n\n const scrollTop = window.scrollY || window.pageYOffset;\n this.documentEl.classList.add(this.className);\n document.body.style.top = `-${scrollTop}px`;\n };\n\n private enableScroll() {\n if (!DocumentNoScroll.isDisabled) {\n return;\n }\n DocumentNoScroll.isDisabled = false;\n\n const scrollTop = document.body.style.top ? parseInt(document.body.style.top, 10) : 0;\n document.body.style.top = '';\n this.documentEl.classList.remove(this.className);\n window.scrollTo(0, Math.abs(scrollTop));\n };\n\n $onChanges(onChangesObj: DocumentNoScrollOnChangesObject) {\n const {currentValue, previousValue} = onChangesObj.documentNoScroll;\n\n Utils.rAF(() => {\n if (currentValue) {\n this.disableScroll();\n } else if (!currentValue && previousValue) {\n this.enableScroll();\n }\n });\n }\n\n $onDestroy() {\n this.enableScroll();\n }\n}\n\ndirectives.directive('documentNoScroll', () => ({\n controller: DocumentNoScroll,\n bindToController: {\n documentNoScroll: '<'\n }\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/documentNoScroll.ts","module.exports = __webpack_public_path__ + \"stylesheets/landing-top-common_e29e65561b5526af24857c5ba78b62d1.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/landing-top-common.less\n// module id = 9VVx\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-3b.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-3b.png\n// module id = 9uog\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/popup_c031c4399970141579ccae37440337d6.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/popup.less\n// module id = 9uvP\n// module chunks = 151","/*! \n * angular-loading-bar v0.8.0\n * https://chieffancypants.github.io/angular-loading-bar\n * Copyright (c) 2015 Wes Cruver\n * License: MIT\n */\n/*\n * angular-loading-bar\n *\n * intercepts XHR requests and creates a loading bar.\n * Based on the excellent nprogress work by rstacruz (more info in readme)\n *\n * (c) 2013 Wes Cruver\n * License: MIT\n */\n\n\n(function() {\n\n'use strict';\n\n// Alias the loading bar for various backwards compatibilities since the project has matured:\nangular.module('angular-loading-bar', ['cfp.loadingBarInterceptor']);\nangular.module('chieffancypants.loadingBar', ['cfp.loadingBarInterceptor']);\n\n\n/**\n * loadingBarInterceptor service\n *\n * Registers itself as an Angular interceptor and listens for XHR requests.\n */\nangular.module('cfp.loadingBarInterceptor', ['cfp.loadingBar'])\n .config(['$httpProvider', function ($httpProvider) {\n\n var interceptor = ['$q', '$cacheFactory', '$timeout', '$rootScope', '$log', 'cfpLoadingBar', function ($q, $cacheFactory, $timeout, $rootScope, $log, cfpLoadingBar) {\n\n /**\n * The total number of requests made\n */\n var reqsTotal = 0;\n\n /**\n * The number of requests completed (either successfully or not)\n */\n var reqsCompleted = 0;\n\n /**\n * The amount of time spent fetching before showing the loading bar\n */\n var latencyThreshold = cfpLoadingBar.latencyThreshold;\n\n /**\n * $timeout handle for latencyThreshold\n */\n var startTimeout;\n\n\n /**\n * calls cfpLoadingBar.complete() which removes the\n * loading bar from the DOM.\n */\n function setComplete() {\n $timeout.cancel(startTimeout);\n cfpLoadingBar.complete();\n reqsCompleted = 0;\n reqsTotal = 0;\n }\n\n /**\n * Determine if the response has already been cached\n * @param {Object} config the config option from the request\n * @return {Boolean} retrns true if cached, otherwise false\n */\n function isCached(config) {\n var cache;\n var defaultCache = $cacheFactory.get('$http');\n var defaults = $httpProvider.defaults;\n\n // Choose the proper cache source. Borrowed from angular: $http service\n if ((config.cache || defaults.cache) && config.cache !== false &&\n (config.method === 'GET' || config.method === 'JSONP')) {\n cache = angular.isObject(config.cache) ? config.cache\n : angular.isObject(defaults.cache) ? defaults.cache\n : defaultCache;\n }\n\n var cached = cache !== undefined ?\n cache.get(config.url) !== undefined : false;\n\n if (config.cached !== undefined && cached !== config.cached) {\n return config.cached;\n }\n config.cached = cached;\n return cached;\n }\n\n\n return {\n 'request': function(config) {\n // Check to make sure this request hasn't already been cached and that\n // the requester didn't explicitly ask us to ignore this request:\n if (!config.ignoreLoadingBar && !isCached(config)) {\n $rootScope.$broadcast('cfpLoadingBar:loading', {url: config.url});\n if (reqsTotal === 0) {\n startTimeout = $timeout(function() {\n cfpLoadingBar.start();\n }, latencyThreshold);\n }\n reqsTotal++;\n cfpLoadingBar.set(reqsCompleted / reqsTotal);\n }\n return config;\n },\n\n 'response': function(response) {\n if (!response || !response.config) {\n $log.error('Broken interceptor detected: Config object not supplied in response:\\n https://github.com/chieffancypants/angular-loading-bar/pull/50');\n return response;\n }\n\n if (!response.config.ignoreLoadingBar && !isCached(response.config)) {\n reqsCompleted++;\n $rootScope.$broadcast('cfpLoadingBar:loaded', {url: response.config.url, result: response});\n if (reqsCompleted >= reqsTotal) {\n setComplete();\n } else {\n cfpLoadingBar.set(reqsCompleted / reqsTotal);\n }\n }\n return response;\n },\n\n 'responseError': function(rejection) {\n if (!rejection || !rejection.config) {\n $log.error('Broken interceptor detected: Config object not supplied in rejection:\\n https://github.com/chieffancypants/angular-loading-bar/pull/50');\n return $q.reject(rejection);\n }\n\n if (!rejection.config.ignoreLoadingBar && !isCached(rejection.config)) {\n reqsCompleted++;\n $rootScope.$broadcast('cfpLoadingBar:loaded', {url: rejection.config.url, result: rejection});\n if (reqsCompleted >= reqsTotal) {\n setComplete();\n } else {\n cfpLoadingBar.set(reqsCompleted / reqsTotal);\n }\n }\n return $q.reject(rejection);\n }\n };\n }];\n\n $httpProvider.interceptors.push(interceptor);\n }]);\n\n\n/**\n * Loading Bar\n *\n * This service handles adding and removing the actual element in the DOM.\n * Generally, best practices for DOM manipulation is to take place in a\n * directive, but because the element itself is injected in the DOM only upon\n * XHR requests, and it's likely needed on every view, the best option is to\n * use a service.\n */\nangular.module('cfp.loadingBar', [])\n .provider('cfpLoadingBar', function() {\n\n this.autoIncrement = true;\n this.includeSpinner = true;\n this.includeBar = true;\n this.latencyThreshold = 100;\n this.startSize = 0.02;\n this.parentSelector = 'body';\n this.spinnerTemplate = '
';\n this.loadingBarTemplate = '
';\n\n this.$get = ['$injector', '$document', '$timeout', '$rootScope', function ($injector, $document, $timeout, $rootScope) {\n var $animate;\n var $parentSelector = this.parentSelector,\n loadingBarContainer = angular.element(this.loadingBarTemplate),\n loadingBar = loadingBarContainer.find('div').eq(0),\n spinner = angular.element(this.spinnerTemplate);\n\n var incTimeout,\n completeTimeout,\n started = false,\n status = 0;\n\n var autoIncrement = this.autoIncrement;\n var includeSpinner = this.includeSpinner;\n var includeBar = this.includeBar;\n var startSize = this.startSize;\n\n /**\n * Inserts the loading bar element into the dom, and sets it to 2%\n */\n function _start() {\n if (!$animate) {\n $animate = $injector.get('$animate');\n }\n\n var $parent = $document.find($parentSelector).eq(0);\n $timeout.cancel(completeTimeout);\n\n // do not continually broadcast the started event:\n if (started) {\n return;\n }\n\n $rootScope.$broadcast('cfpLoadingBar:started');\n started = true;\n\n if (includeBar) {\n $animate.enter(loadingBarContainer, $parent, angular.element($parent[0].lastChild));\n }\n\n if (includeSpinner) {\n $animate.enter(spinner, $parent, angular.element($parent[0].lastChild));\n }\n\n _set(startSize);\n }\n\n /**\n * Set the loading bar's width to a certain percent.\n *\n * @param n any value between 0 and 1\n */\n function _set(n) {\n if (!started) {\n return;\n }\n var pct = (n * 100) + '%';\n loadingBar.css('width', pct);\n status = n;\n\n // increment loadingbar to give the illusion that there is always\n // progress but make sure to cancel the previous timeouts so we don't\n // have multiple incs running at the same time.\n if (autoIncrement) {\n $timeout.cancel(incTimeout);\n incTimeout = $timeout(function() {\n _inc();\n }, 250);\n }\n }\n\n /**\n * Increments the loading bar by a random amount\n * but slows down as it progresses\n */\n function _inc() {\n if (_status() >= 1) {\n return;\n }\n\n var rnd = 0;\n\n // TODO: do this mathmatically instead of through conditions\n\n var stat = _status();\n if (stat >= 0 && stat < 0.25) {\n // Start out between 3 - 6% increments\n rnd = (Math.random() * (5 - 3 + 1) + 3) / 100;\n } else if (stat >= 0.25 && stat < 0.65) {\n // increment between 0 - 3%\n rnd = (Math.random() * 3) / 100;\n } else if (stat >= 0.65 && stat < 0.9) {\n // increment between 0 - 2%\n rnd = (Math.random() * 2) / 100;\n } else if (stat >= 0.9 && stat < 0.99) {\n // finally, increment it .5 %\n rnd = 0.005;\n } else {\n // after 99%, don't increment:\n rnd = 0;\n }\n\n var pct = _status() + rnd;\n _set(pct);\n }\n\n function _status() {\n return status;\n }\n\n function _completeAnimation() {\n status = 0;\n started = false;\n }\n\n function _complete() {\n if (!$animate) {\n $animate = $injector.get('$animate');\n }\n\n $rootScope.$broadcast('cfpLoadingBar:completed');\n _set(1);\n\n $timeout.cancel(completeTimeout);\n\n // Attempt to aggregate any start/complete calls within 500ms:\n completeTimeout = $timeout(function() {\n var promise = $animate.leave(loadingBarContainer, _completeAnimation);\n if (promise && promise.then) {\n promise.then(_completeAnimation);\n }\n $animate.leave(spinner);\n }, 500);\n }\n\n return {\n start : _start,\n set : _set,\n status : _status,\n inc : _inc,\n complete : _complete,\n autoIncrement : this.autoIncrement,\n includeSpinner : this.includeSpinner,\n latencyThreshold : this.latencyThreshold,\n parentSelector : this.parentSelector,\n startSize : this.startSize\n };\n\n\n }]; //\n }); // wtf javascript. srsly\n})(); //\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./public/javascripts/loading-bar.js\n// module id = AbyD\n// module chunks = 151","import directives from './module';\nimport {SmoothScroll} from '../services/SmoothScroll';\n\ndirectives.directive('smoothScroll', () => (scope: any,\n element: ng.IAugmentedJQuery,\n attr: {smoothOffset: string, smoothScroll: string}) => {\n const offset = parseInt(attr.smoothOffset, 10) || 0;\n const scrollSvc = new SmoothScroll(element[0], offset);\n element.on('click', () => (attr.smoothScroll !== '' && scope[attr.smoothScroll]) && scrollSvc.scroll());\n }\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/smoothScrollDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/judge-item_e7ff0f2e037025e2d772b2af67aeb787.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/judge-item.less\n// module id = Ao4C\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/ng-tags-input_fe8b4c708dc49b84c9c095cc9fc3e5d7.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/ng-tags-input.less\n// module id = Argd\n// module chunks = 151","import {Strings} from 'Strings';\nimport directives from './module';\n\nconst EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;\n\nconst createFormatter = (formatterName: string) => {\n directives.directive(formatterName, ['PaymentHelpers', (PaymentHelpers: any) => {\n return {\n scope: false,\n restrict: 'A',\n link: (scope: ng.IScope, element: ng.IAugmentedJQuery) => PaymentHelpers[formatterName](element)\n };\n }]);\n};\n\ncreateFormatter('formatCardNumber');\ncreateFormatter('formatCardExpiry');\ncreateFormatter('formatCardCvc');\ncreateFormatter('restrictNumeric');\n\ninterface BlurModelController extends ng.INgModelController {\n isValid: boolean;\n}\nconst createBlurValidator = (validatorName: string, validate?: any, parserCallback?: Function) =>\n directives.directive(validatorName, ['$timeout', 'PaymentHelpers', ($timeout: ng.ITimeoutService, PaymentHelpers: any) => {\n if (PaymentHelpers[validatorName]) {\n validate = PaymentHelpers[validatorName];\n }\n return {\n require: 'ngModel',\n link(scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, ctrl: BlurModelController) {\n let isValid = true;\n const parser = (viewValue?: string) => {\n if (parserCallback) parserCallback(scope, viewValue, PaymentHelpers);\n isValid = validate(viewValue);\n if (isValid) {\n ctrl.$setValidity(validatorName, true);\n if (ctrl.isValid) element.addClass('is-valid');\n } else {\n element.removeClass('is-valid');\n }\n ctrl.isValid = ctrl.$valid && isValid;\n return viewValue;\n };\n ctrl.$parsers.unshift(parser);\n element.on('blur', () => {\n if (!isValid) {\n scope.$apply(() =>\n ctrl.$setValidity(validatorName, false));\n }\n });\n if (attrs[validatorName] === 'onStart') {\n $timeout(() => {\n if (ctrl.$viewValue) {\n parser(ctrl.$viewValue);\n element.triggerHandler('blur');\n }\n });\n }\n }\n };\n }]\n);\n\ncreateBlurValidator('validateName', (str: string) =>\n !angular.isString(str) || str.length < 30 && /^[A-Z.'\\- ]*$/.test(str)\n);\n\ncreateBlurValidator('validateCardNumber');\n\ncreateBlurValidator('validateCardExpiry', angular.noop(), (scope: any, viewValue: string, PaymentHelpers: any) => {\n let cardExpiry = PaymentHelpers.cardExpiryVal(viewValue || '');\n scope.card_exp_month = cardExpiry.month;\n scope.card_exp_year = cardExpiry.year;\n});\n\ncreateBlurValidator('validateCardCvc');\n\ncreateBlurValidator('validateZip', (value?: string) =>\n !value || value.length === 0 || /^\\d{5}(-\\d{4})?$/.test(value.trim())\n);\n\ncreateBlurValidator('validateEmailOnblur', (s: string) => !Strings.isBlank(s) && EMAIL_REGEXP.test(s));\n\ncreateBlurValidator('requiredOnblur', (s: string) => !Strings.isBlank(s));\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/stripeValidatorsDirectives.ts","module.exports = __webpack_public_path__ + \"stylesheets/subscription-invoice-history-container_90a939514f0abab315c34ba136a09c50.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/containers/subscription-invoice-history-container.less\n// module id = BCWO\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-medium-landing_9d28a6855a0274832dc4bbd0ad8ebced.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/m-medium-landing.less\n// module id = BGDY\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/pricing_4d8a34564c802442a420f92180b223bc.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/pricing.less\n// module id = BH+f\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/subscription-router-modals-container_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/containers/subscription-router-modals-container.less\n// module id = BJa0\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-wave-typography_ec4c1dc356d024bccb9509b4fbe756f7.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/wave/m-wave-typography.less\n// module id = BTge\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/dropdown-menu_6bfb9de2952ff8942beade2f63ee086c.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/dropdown-menu.less\n// module id = Bdsd\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/any-landing_1ddf41ee0ef4e7cdb072de27b25f6c20.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/any-landing.less\n// module id = BjM0\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/_checkbox-tab_51ea558bff237cdf7084d128a9e406eb.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/_checkbox-tab.less\n// module id = Bkei\n// module chunks = 151","import {Strings} from 'Strings';\nimport directives from './module';\n/**\n * @description Extraction from angular-ui module\n */\ntype Combination = {expression: ng.ICompiledExpression, keys: {alt?: boolean, ctrl?: boolean, shift?: boolean}};\n\ndirectives.factory('keypressHelper', ($parse: ng.IParseService) => {\n const keysByCode = {\n 8: 'backspace',\n 9: 'tab',\n 13: 'enter',\n 27: 'esc',\n 32: 'space',\n 33: 'pageup',\n 34: 'pagedown',\n 35: 'end',\n 36: 'home',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down',\n 45: 'insert',\n 46: 'delete'\n };\n\n const capitaliseFirstLetter = function (string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n };\n\n return function (mode: string, scope: ng.IScope, elm: ng.IAugmentedJQuery, attrs: ng.IAttributes) {\n let params: any;\n const combinations: Array = [];\n params = scope.$eval(attrs['ui' + capitaliseFirstLetter(mode)]);\n\n // Prepare combinations for simple checking\n angular.forEach(params, function (v, k) {\n let combination: Combination;\n let expression: ng.ICompiledExpression;\n expression = $parse(v);\n\n angular.forEach(k.split(' '), function (variation) {\n combination = {\n expression: expression,\n keys: {}\n };\n angular.forEach(variation.split('-'), function (value) {\n combination.keys[value] = true;\n });\n combinations.push(combination);\n });\n });\n\n // Check only matching of pressed keys one of the conditions\n elm.bind(mode, function (event) {\n // No need to do that inside the cycle\n let altPressed = event.metaKey || event.altKey;\n let ctrlPressed = event.ctrlKey;\n let shiftPressed = event.shiftKey;\n let keyCode = event.keyCode;\n\n // normalize keycodes\n if (mode === 'keypress' && !shiftPressed && keyCode >= 97 && keyCode <= 122) {\n keyCode = keyCode - 32;\n }\n\n // Iterate over prepared combinations\n angular.forEach(combinations, function (combination) {\n\n let mainKeyPressed = (combination.keys[keysByCode[event.keyCode]] || combination.keys[event.keyCode.toString()]) || false;\n\n let altRequired = combination.keys.alt || false;\n let ctrlRequired = combination.keys.ctrl || false;\n let shiftRequired = combination.keys.shift || false;\n\n if (\n mainKeyPressed &&\n ( altRequired == altPressed ) &&\n ( ctrlRequired == ctrlPressed ) &&\n ( shiftRequired == shiftPressed )\n ) {\n // Run the function\n scope.$apply(function () {\n combination.expression(scope, {'$event': event});\n });\n }\n });\n });\n };\n});\n\n/**\n * Bind one or more handlers to particular keys or their combination\n * @param hash {mixed} keyBindings Can be an object or string where keybinding expression of keys or keys combinations and AngularJS Exspressions are set. Object syntax: \"{ keys1: expression1 [, keys2: expression2 [ , ... ]]}\". String syntax: \"\"expression1 on keys1 [ and expression2 on keys2 [ and ... ]]\"\". Expression is an AngularJS Expression, and key(s) are dash-separated combinations of keys and modifiers (one or many, if any. Order does not matter). Supported modifiers are 'ctrl', 'shift', 'alt' and key can be used either via its keyCode (13 for Return) or name. Named keys are 'backspace', 'tab', 'enter', 'esc', 'space', 'pageup', 'pagedown', 'end', 'home', 'left', 'up', 'right', 'down', 'insert', 'delete'.\n * @example \n **/\nconst actions = ['down', 'press', 'up'];\nangular.forEach(actions, action => {\n const event = 'key' + action;\n const directiveName = 'ui' + Strings.capitalize(event);\n\n directives.directive(directiveName, ['keypressHelper', keypressHelper =>\n (scope: ng.IScope, elm: ng.IAugmentedJQuery, attrs: ng.IAttributes) =>\n keypressHelper(event, scope, elm, attrs)]);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/keypressDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/wave-tutorial-page_b94b8d864aaeb6f81b9bb896ce9148fe.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/tutorial/wave-tutorial-page.less\n// module id = CDOh\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/16.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/16.svg\n// module id = CFmk\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/week1_2b0e67ae8ee824687a6011ff84556633.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/education/week1.html\n// module id = CM5t\n// module chunks = 151","import directives from './module';\nimport {masonryLib} from '../lazy_modules';\nimport {AnimatronProjects, PROJECT_ADD} from '../services/AnimatronProjectsSvc';\nimport {ExploreCtrl} from './ExplorePage';\nimport {Utils} from 'underscore-extensions';\n\nclass MasonryCtrl implements ng.IController {\n $onInit: () => void;\n anmSvcPromise: ng.IPromise;\n msnryPromise: ng.IPromise;\n cache: Array;\n ExploreCtrl: ExploreCtrl;\n\n constructor($scope: ng.IScope,\n $rootScope: ng.IRootScopeService,\n $element: ng.IAugmentedJQuery,\n $q: angular.IQService) {\n this.$onInit = () => Utils.rAF(() => {\n const anmDefered = $q.defer();\n const destroy = $scope.$watch('animatron', a => {\n if (_.isObject(a)) {\n anmDefered.resolve(a);\n destroy();\n }\n });\n this.anmSvcPromise = anmDefered.promise;\n\n const container = $element[0];\n const columnWidth = container.querySelector('.projects-column-width').offsetWidth;\n const deferred = $q.defer();\n this.cache = [];\n loadScripts([masonryLib], () => {\n const Masonry = (window as any).Masonry;\n this.anmSvcPromise.then(a => a.computedWidth = columnWidth);\n const msnry = new Masonry(container, {\n itemSelector: 'masonry-brick',\n gutter: container.querySelector('.projects-gutter'),\n columnWidth,\n fitWidth: true,\n containerStyle: null,\n stagger: 30,\n initLayout: true,\n transitionDuration: (options.isIE ? '0' : '0.4s')\n });\n this.anmSvcPromise.then(a => a.nextPage());\n\n const destroyMsnry = () => {\n msnry.items = [];\n msnry.destroy();\n msnry.layout();\n msnry.bindResize();\n };\n\n $rootScope.$on('project:remove', (e, pid) => {\n msnry.remove(document.getElementById('brick-' + pid));\n msnry.layout();\n });\n\n $rootScope.$on('masonry:layout', () => msnry.layout());\n $rootScope.$on('masonry:destroy', () => destroyMsnry());\n $rootScope.$on(PROJECT_ADD, (e, {project}) => setTimeout(() => {\n const el = document.getElementById('brick-' + project.id);\n msnry.appended(el);\n msnry.reloadItems();\n msnry.layout();\n }, 0));\n\n if (this.ExploreCtrl) {\n const onTabChangeFromCtrl = this.ExploreCtrl.onTabChange.bind(this.ExploreCtrl);\n this.ExploreCtrl.onTabChange = args => {\n destroyMsnry();\n onTabChangeFromCtrl(args);\n };\n }\n\n deferred.resolve(msnry);\n });\n this.msnryPromise = deferred.promise;\n });\n }\n}\n\ndirectives.directive('masonry', () => {\n return {\n scope: false,\n bindToController: true,\n require: {ExploreCtrl: '^?explorePage'},\n controller: MasonryCtrl\n };\n});\n\ndirectives.directive('masonryBrick', () => {\n return {\n require: '^masonry',\n scope: false,\n restrict: 'E',\n link(scope: ng.IRepeatScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, masonryCtrl: MasonryCtrl) {\n masonryCtrl.msnryPromise && masonryCtrl.msnryPromise.then(msnry => {\n element[0].classList.add('msnry-item');\n masonryCtrl.cache.push(element[0]);\n\n if (scope.$last) {\n Utils.rAF(() => {\n msnry.appended(masonryCtrl.cache);\n msnry.reloadItems();\n msnry.layout();\n masonryCtrl.cache = [];\n masonryCtrl.anmSvcPromise.then(a => a.busy = false);\n });\n }\n });\n }\n };\n});\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/masonryDirectives.ts","module.exports = __webpack_public_path__ + \"images/avatars/female/1.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/1.svg\n// module id = ClZ7\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/video-folder-bottom_3dee4ebb64472d66338320e123655759.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/folder/video-folder-bottom.less\n// module id = Cw72\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/subscription-payment-details-enter-card_0851159b9b911c19f8c8bec2a6404db0.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/payment-details/subscription-payment-details-enter-card.less\n// module id = CxL4\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/11.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/11.png\n// module id = D9F/\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/6.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/6.svg\n// module id = DDR7\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/3.svg\n// module id = DFGL\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/week2_4369c87474f907beb97b1160e6b38a1d.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/education/week2.html\n// module id = DHQn\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/pre-register_c89215ecbde9aca4f2c56bfd2c6f86cb.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/pre-register.less\n// module id = DMU6\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/13.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/13.svg\n// module id = Dc98\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/random-fact_dd88410d10902627fd778ddaff9e358f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/random-fact.less\n// module id = Dg8K\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-landing-common_83a760e8f429e1af34e83cb6a3ff7dfc.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/m-landing-common.less\n// module id = DhCa\n// module chunks = 151","import directives from './module';\nimport {LandingTemplateSvc} from '../services/landingTemplateSvc';\n\nclass Logo implements ng.IComponentController {\n product: AnimatronProduct;\n logoStyle: anm.LogoStyle;\n islogoClickable: boolean;\n isLink: boolean;\n additionalLogo: string;\n href: string;\n openInNewWindow: boolean;\n\n constructor(private $location: ng.ILocationService,\n private landingTemplateSvc: LandingTemplateSvc) {\n this.islogoClickable = this.isLink || this.landingTemplateSvc.isLink;\n }\n\n logoHandler() {\n if (this.isLink || this.landingTemplateSvc.isLink) {\n const url = this.href ? this.href : '/wave';\n\n if (this.openInNewWindow) {\n window.open(`${window.location.origin}${url}`, '_blank');\n } else {\n this.$location.path(url);\n }\n }\n }\n}\n\ndirectives.component('logo', {\n bindings: {\n product: '@',\n logoStyle: '@',\n additionalLogo: '@',\n isLink: '`\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/Logo.ts","module.exports = __webpack_public_path__ + \"stylesheets/countdown_00505d8b81346a11d40d0d17e7c4a5f7.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/countdown.less\n// module id = Du2S\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/17.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/17.png\n// module id = DuQD\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-9.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-9.png\n// module id = EHgq\n// module chunks = 151","import directives from '../module';\nimport {ProjectPageCtrl} from './ProjectPage';\nimport SpinnerSvc from 'services/SpinnerSvc';\nimport {AnimatronPreviews} from '../../services/AnimatronPreviewsSvc';\nimport {PlayerSvc} from '../../services/PlayerSvc';\nimport {Utils} from 'underscore-extensions';\n\nclass ProjectPageCanvasCtrl implements ng.IComponentController {\n private static readonly players: Player[] = [];\n private readonly ProjectPageCtrl: ProjectPageCtrl;\n private readonly canvas = this.$element[0].firstChild;\n\n project: anm.Project;\n projectWidth: number;\n playerSelector: HTMLElement;\n projectModalSelector: HTMLElement;\n\n thumbnail: string;\n\n old: boolean;\n\n constructor(private $scope: any,\n private $element: ng.IAugmentedJQuery,\n private $stateParams: any,\n private Player: PlayerSvc,\n private OldPlayer: PlayerSvc,\n private AnimatronPreviews: AnimatronPreviews) {\n }\n\n $onInit() {\n this.ProjectPageCtrl.projectPromise.then((p: anm.Project) => {\n this.project = p;\n this.playerSelector = this.$element[0].parentElement;\n this.projectModalSelector = document.querySelector('.wrapper-proj');\n if (this.ProjectPageCtrl.twoPlayers) {\n this.playerSelector.style.minWidth = 'initial';\n }\n\n this.$scope.fullscreen = options.handHeld;\n if (this.project && this.project.id === this.$stateParams.projectId) {\n this.createPlayer();\n }\n\n Utils.scopedEvent('keyup', this.$scope, (e: KeyboardEvent) => {\n if (e.keyCode === 27 && document.querySelector('#project-player').classList.contains('fullscreen')) {\n this.ProjectPageCtrl.toggleFullscreen();\n }\n });\n\n this.ProjectPageCtrl.toggleFullscreen = () => {\n document.querySelector('#project-player').classList.toggle('fullscreen');\n this.projectWidth = window.innerWidth;\n this.ProjectPageCtrl.player.then(p => this.resize(p)());\n this.$scope.fullscreen = true;\n };\n });\n }\n\n resize = (player?: Player) => () => {\n const [width, height] = this.calculate();\n if (player) {\n player.setSize(width, height);\n }\n };\n\n getHeightMargin(): number {\n return this.$scope.fullscreen ? (options.handHeld ? document.querySelector('header').offsetHeight : 0) : 210;\n }\n\n calculate() {\n if (_.isUndefined(this.projectWidth)) {\n this.projectWidth = Math.max(this.project.width, 640);\n }\n let width = this.$scope.fullscreen ? window.innerWidth : this.projectWidth,\n height = Math.round(this.project.height * width / this.project.width);\n const bodyDimension = document.body.getBoundingClientRect(),\n windowWidth = bodyDimension.width / (this.ProjectPageCtrl.twoPlayers ? 2 : 1),\n windowHeight = bodyDimension.height,\n heightMargin = this.getHeightMargin(),\n widthMargin = this.$scope.fullscreen || options.handHeld ? 0 : 160,\n windowHeightScaled = windowHeight - heightMargin,\n windowWidthScaled = windowWidth - widthMargin,\n displayedProjectHeight = Math.round(height * windowWidthScaled / width),\n displayedProjectWidth = Math.round(width * windowHeightScaled / height);\n\n if (width > windowWidthScaled) {\n width = windowWidthScaled;\n height = displayedProjectHeight;\n }\n if (height > windowHeightScaled) {\n width = displayedProjectWidth;\n height = windowHeightScaled;\n }\n\n this.projectModalSelector.style.width = (this.old ? 2 : 1) * Math.max(width + 20, 390) + 'px';\n this.playerSelector.style.width = width + 'px';\n this.playerSelector.style.height = height + 'px';\n this.projectModalSelector.classList[(windowWidth - width < 250 ) ? 'add' : 'remove']('left-movie-buttons');\n return [width, height];\n }\n\n createPlayer() {\n const suffix = this.ProjectPageCtrl.twoPlayers ? Math.random() : '';\n this.canvas.id = 'project-canvas-' + this.project.id + suffix;\n this.thumbnail = this.AnimatronPreviews.pickPreview(this.project.preview_metadata);\n\n const img = this.canvas.querySelector('.preview-image');\n img.onerror = () => img.style.display = 'none';\n\n const [width, height] = this.calculate();\n\n const svc: PlayerSvc = this.old ? this.OldPlayer : this.Player;\n\n if (window.isPhantom || this.$stateParams.stopPlay === 'true') return;\n this.ProjectPageCtrl.player = svc.createPlayer(this.project, this.canvas.id, {\n autoPlay: !options.handHeld && !this.ProjectPageCtrl.twoPlayers,\n width, height, thumbnail: this.thumbnail\n }, player => {\n this.canvas.removeChild(img);\n SpinnerSvc.hide();\n if (this.ProjectPageCtrl.twoPlayers) {\n ProjectPageCanvasCtrl.players.push(player);\n if (ProjectPageCanvasCtrl.players.length === 2) {\n setTimeout(() => ProjectPageCanvasCtrl.players.forEach(p => p.play()));\n }\n }\n }).then((player: Player) => {\n Utils.scopedEvent('resize', this.$scope, _.throttle(this.resize(player), 300));\n\n this.$scope.$watch(() => this.ProjectPageCtrl.sizes.projectSize, (newWidth?: string) => {\n if (_.isUndefined(newWidth) || newWidth === this.projectWidth.toString()) {\n return;\n }\n this.projectWidth = parseInt(newWidth, 10);\n this.resize(player)();\n });\n\n return player;\n });\n }\n\n $onDestroy() {\n this.Player.resetPlayer(this.ProjectPageCtrl.player);\n }\n}\n\ndirectives.component('projectPageCanvas', {\n bindings: {\n old: '<'\n },\n controller: ProjectPageCanvasCtrl,\n require: {ProjectPageCtrl: '^projectPage'},\n template: `
\"{{$ctrl.project.name}}\"/
`\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/project/projectPageCanvasDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/pre-register-section_4c15b2f3ddffaaa8b4004f665f71e257.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/pre-register-section.less\n// module id = EepZ\n// module chunks = 151","/**\n * To add new page, create new json object with the same structure as the ones below.\n * Most values should be key references to i18n files. So translations should also be written in app/assets/i18n/m_*.properties files\n * It is essential that all properties are present and have correct names.\n * Images are stored in app/assets/images/landing/banner folder, but here should only be filename.\n */\n\nexport default [\n {\n image: 'help-img-1',\n alt: 'explainer.help1.alt1',\n title: 'explainer.help1.title',\n shortTitle: 'short.presentation.title',\n description: 'explainer.help1.desc',\n url: '/presentation-maker'\n },\n {\n image: 'help-img-8',\n alt: 'explainer.help8.alt8',\n title: 'explainer.help8.title',\n shortTitle: 'short.agencies.title',\n description: 'explainer.help8.desc',\n url: '/animation-for-agencies'\n\n },\n {\n image: 'help-img-3',\n alt: 'explainer.help3.alt3',\n title: 'explainer.help3.title',\n shortTitle: 'short.explainer.title',\n description: 'explainer.help3.desc',\n url: '/explainer-video-maker'\n },\n {\n image: 'help-img-3b',\n alt: 'explainer.help3b.alt3b',\n title: 'explainer.help3b.title',\n description: 'explainer.help3b.desc',\n url: '/html5-banner-maker'\n },\n {\n image: 'help-img-4',\n alt: 'explainer.help4.alt3',\n title: 'explainer.help4.title',\n shortTitle: 'short.cards.title',\n description: 'explainer.help4.desc',\n url: '/studio/online-card-maker'\n },\n {\n image: 'help-img-5',\n alt: 'explainer.help5.alt5',\n title: 'explainer.help5.title',\n shortTitle: 'short.creativity.title',\n description: 'explainer.help5.desc',\n url: '/studio/creativity-in-classroom'\n },\n {\n image: 'help-img-6',\n alt: 'explainer.help6.alt6',\n title: 'explainer.help6.title',\n shortTitle: 'short.political.title',\n description: 'explainer.help6.desc',\n url: '/studio/political-cartoon-maker'\n },\n {\n image: 'help-img-7',\n alt: 'explainer.help7.alt7',\n title: 'explainer.help7.title',\n shortTitle: 'short.whiteboard.title',\n description: 'explainer.help7.desc',\n url: '/whiteboard-animation-software'\n },\n {\n image: 'help-img-2',\n alt: 'explainer.help2.alt2',\n title: 'explainer.help2.title',\n shortTitle: 'short.video.title',\n description: 'explainer.help2.desc',\n url: '/studio/online-video-maker'\n },\n {\n image: 'help-img-9',\n alt: 'explainer.help9.alt9',\n title: 'explainer.help9.title',\n shortTitle: 'short.designers.title',\n description: 'explainer.help9.desc',\n url: '/animation-for-designers'\n }\n] as anm.LandingPagesItem[];\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/LandingPages.ts","module.exports = __webpack_public_path__ + \"html/video-banner_73fe5fd387625f5d16dba9802b8fcc1d.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/video-banner.html\n// module id = Exe7\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/21.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/21.png\n// module id = F3zo\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-template-pages-list_8cfe2872b7dc9fc7cc8b2bd007f0aefd.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-template-pages-list.less\n// module id = F6N9\n// module chunks = 151","import {Strings} from 'Strings';\nimport directives from './module';\n\nclass UserAvatar {\n private static ConversionUrl = `https://conv.animatron${options.isProduction ? '' : '-test'}.com`;\n private static avatars = require.context('../../images/avatars', true);\n\n user: anm.User;\n size: number;\n url: string;\n\n constructor(private $scope: ng.IScope,\n private $element: ng.IAugmentedJQuery,\n private $filter: ng.IFilterService,\n private $attrs: any) {\n\n const avatarCode = () => {\n const code = Array.prototype.map.call(this.user.username, (c: string) => c.charCodeAt(0))\n .reduce((a: number, b: number) => a + b) % 13;\n return require(`../../images/avatars/male/${Math.max(1, code)}.svg`);\n };\n\n const encodeUsername = $filter('encodeUsername');\n const imgElement = $element[0].getElementsByTagName('img')[0];\n const setDefaultAvatar = () => {\n imgElement.src = avatarCode();\n imgElement.onerror = undefined;\n };\n\n const getSizedUrl = (url: string) => {\n if (_.isNumber(this.size)) {\n if (/google/.test(url)) {\n return url + '?sz=' + this.size;\n } else if (/facebook/.test(url)) {\n return url.replace(/\\?type=.*$/, '') + `?width=${this.size}&height=${this.size}`;\n } else if (/gravatar/.test(url)) {\n return url + '?s=' + this.size;\n } else if (/animatron/.test(url) && !/svg/.test(url)) {\n return`${UserAvatar.ConversionUrl}?u=${url}&p=r${this.size}:${this.size}:0&o=jpg`;\n }\n }\n return url;\n };\n\n const matchAvatarApi = (url: string) => {\n const match = url.match(/profile\\/avatar\\/(.*)/);\n return match && match.length > 0 ?\n url.replace(match[1], encodeUsername(match[1])) : url;\n };\n\n const setUrl = (url: string) => {\n url = matchAvatarApi(url);\n if (Strings.isBlank(url)) {\n setDefaultAvatar();\n } else {\n imgElement.onerror = () => setDefaultAvatar();\n imgElement.src = getSizedUrl(url);\n }\n };\n\n const watchObject = this.url ? 'url' : 'user.avatar';\n const watcher = $scope.$watch('$ctrl.' + watchObject, (url: string) => {\n if ((imgElement && !_.isUndefined(url)) || (this.user && !this.user.avatar)) {\n setUrl(url || '');\n const enableWatch = angular.isString($attrs.watch);\n if (!enableWatch) {\n watcher();\n setTimeout(() => $scope.$destroy());\n }\n }\n });\n\n }\n}\n\ndirectives.component('userAvatar', {\n bindings: {\n url: '<',\n size: '<',\n user: '<'\n },\n controller: UserAvatar,\n template: '\"{{::$ctrl.user.displayName}}\"/'\n }\n);\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/userAvatarDirective.ts","module.exports = __webpack_public_path__ + \"images/avatars/female/5.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/5.svg\n// module id = FHxu\n// module chunks = 151","import directives from './module';\nimport {HttpSvcFactory} from '../services/HttpSvc';\n\ndirectives.directive('validateUsername', ($filter: ng.IFilterService,\n $q: ng.IQService,\n HttpSvc: HttpSvcFactory) => {\n return {\n require: 'ngModel',\n link(scope: any, element: any, attrs: any, ctrl: ng.INgModelController) {\n const usernameAvailChecker = (username: string) =>\n HttpSvc($filter('encodeUsername')(username) + '/profile')\n .get().then(response => response.data.errorCode === 404);\n\n ctrl.$asyncValidators['validateUsername'] = viewValue => ((() => {\n if (viewValue && viewValue.length > 0 && viewValue !== options.user.username) {\n return usernameAvailChecker(viewValue);\n } else {\n return $q.resolve(true);\n }\n })()).then(r => r ? $q.resolve() : $q.reject());\n }\n };\n});\n\ndirectives.directive('validateEmail', ($q: ng.IQService,\n HttpSvc: HttpSvcFactory) => {\n const apiSvc = HttpSvc('profile', 'check-email');\n return {\n require: 'ngModel',\n link(scope: any, element: any, attrs: any, ctrl: ng.INgModelController) {\n const emailAvailChecker = (email: string) =>\n apiSvc.chain(email).get()\n .then(response => response.data.errorCode === 404)\n .catch(() => true);\n\n ctrl.$asyncValidators['validateEmail'] = viewValue => $q((resolve: ng.IQResolveReject, reject: ng.IQResolveReject) => {\n if (viewValue && viewValue.length > 0 && viewValue !== options.user.email) {\n emailAvailChecker(viewValue).then(r => r ? resolve() : reject());\n } else {\n resolve();\n }\n });\n }\n };\n});\n\ndirectives.directive('match', [function () {\n return {\n require: 'ngModel',\n scope: {\n match: '='\n },\n link: function (scope: any, elem: any, attrs: any, ctrl: ng.INgModelController) {\n scope.$watch('match', function () {\n ctrl.$validate();\n });\n ctrl.$validators['match'] = function (modelValue) {\n return (scope.match === undefined || ctrl.$pristine && (angular.isUndefined(modelValue) || modelValue === '')) || modelValue === scope.match;\n };\n }\n };\n}]);\n\ndirectives.directive('resetField', [function () {\n return {\n require: 'ngModel',\n link: function (scope: any, elem: any, attrs: any, ctrl: ng.INgModelController) {\n ctrl.$parsers.unshift(function (viewValue) {\n ctrl.$setValidity(attrs.resetField, true);\n return viewValue;\n });\n }\n };\n}]);\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/validatorDirectives.ts","module.exports = __webpack_public_path__ + \"images/avatars/female/19.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/19.svg\n// module id = Fa/p\n// module chunks = 151","import directives from './module';\nimport {Wrapped} from '../services/AdSvc';\n\nclass AdBanner implements ng.IComponentController {\n readonly ad: Wrapped;\n}\n\ndirectives.component('adBanner', {\n bindings: {\n ad: '<'\n },\n controller: AdBanner,\n templateUrl: require('video-banner.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/AdBanner.ts","module.exports = __webpack_public_path__ + \"html/light-landing_00139a0deae1d2b1f8ced18569d5ca74.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/landing/light/light-landing.html\n// module id = FnqE\n// module chunks = 151","import directives from '../module';\nimport {Utils} from 'underscore-extensions';\nimport {StopPlaySvc} from '../../services/StopPlaySvc';\nimport {Observer} from '../../services/ViewPortSvc';\nimport {WistiaSvc} from '../../services/WistiaSvc';\n\nclass LandingPage {\n videoOptions = {\n volume: 0\n };\n\n video: anm.LandingVideo = {\n wistiaId: '0mvyjstgpk',\n preview: 'https://assets.animatron.com/images/landing/video-previews/studio_preview.jpg'\n };\n\n private static readonly animationActiveClz = 'stager--active';\n\n readonly tabs = ['startup', 'teachers', 'animators', 'everyone'];\n\n tabChange() {\n const selectors = '.tabs-animated-content, .quote-wrapper';\n const all: Array = [].slice.call(document.querySelectorAll(selectors));\n all.forEach(el => el.classList.remove(LandingPage.animationActiveClz));\n setTimeout(() => Utils.rAF(() =>\n all.forEach(el => el.classList.add(LandingPage.animationActiveClz)))\n );\n }\n}\n\ndirectives.component('landingPage', {\n controller: LandingPage,\n templateUrl: require('landing/landing-new.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/landing/LandingPage.ts","import services from 'services/module';\nimport SpinnerSvc from 'services/SpinnerSvc';\nimport {TagsSvc} from './TagsSvc';\nimport {HttpSvcFactory} from './HttpSvc';\nimport {BackendSvc} from './BackendSvc';\nimport {Utils} from '../underscore-extensions';\nimport {PROJECT_ADD} from './AnimatronProjectsSvc';\nimport {TranslateSvc} from './TranslateSvc';\n\nexport type AdminSvcFactory = new(project: anm.Project) => AdminSvc;\n\nexport class AdminSvc {\n private $http: ng.IHttpService;\n private $q: ng.IQService;\n private TagsSvc: TagsSvc;\n private HttpSvc: HttpSvcFactory;\n private BackendSvc: BackendSvc;\n private $rootScope: ng.IRootScopeService;\n private TranslateSvc: TranslateSvc;\n\n exportActions = ['json', 'anm', 'zip', 'svg', 'png'];\n roles = options.user.subscriptionDetails.studio.features.rolez;\n staffPickTag = {name: 'Staff Picks', type: 'SUPER' as 'SUPER'};\n duplicating = false;\n\n\n constructor(private project: anm.Project) {\n }\n\n staffLike() {\n SpinnerSvc.show();\n this.project.staffPicked = true;\n this.TagsSvc.saveTag(this.staffPickTag, this.project.id)\n .then(() => this.project.tags.push(this.staffPickTag))\n .catch(this.errorFunction.bind(this)).finally(() => SpinnerSvc.hide());\n };\n\n staffDislike() {\n SpinnerSvc.show();\n this.project.staffPicked = false;\n this.TagsSvc.tagRemoved(this.staffPickTag, this.project.id).then(() => {\n this.project.tags = this.project.tags.filter(tag => tag.name !== this.staffPickTag.name);\n }\n ).finally(() => SpinnerSvc.hide());\n };\n\n exportProject = (action: string) =>\n this.BackendSvc.getServerUrl(this.project).then(url => {\n const exportUrl = `${url}/project/export/${action}/${this.project.id}?params={}&t=0`;\n window.open(exportUrl, '_self');\n });\n\n doctor = (action: string) =>\n this.BackendSvc.getServerUrl(this.project).then(url => {\n const doctorUrl = `${url}/doctor/show/${this.project.id}`;\n window.open(doctorUrl, '_blank');\n });\n\n duplicateProject(folderId: number, copySuffix = 'Copy_from_website') {\n SpinnerSvc.show();\n this.duplicating = true;\n const folderParam = folderId ? `&folderId=${folderId}` : '';\n const url = `project-api?oldProjectId=${this.project.id}&product=${this.project.product}${folderParam}`;\n const opts = {headers: _.extend({'Content-Type': 'text/plain'}, options.headers)};\n\n return this.HttpSvc(url)\n .post({}, opts)\n .then(r => r.data)\n .then((projectServerMapping: { url: string }) => {\n const newName = this.project.name + copySuffix,\n path = '/project/duplicate',\n params = `?name=${encodeURIComponent(newName)}&oldId=${this.project.id}`,\n duplicateUrl = projectServerMapping.url.replace('http:', 'https:') + path + params,\n duplicateProjectId = projectServerMapping['project-id'];\n\n opts.headers['Animatron-Project-ID'] = duplicateProjectId;\n\n const requestWrapper = (request: ng.IPromise) => {\n return request.then(r => r.data).then((data: ApiError) =>\n Utils.isApiError(data)\n ? this.$q.reject(data)\n : this.$q.resolve(data));\n };\n\n const duplicateRequest = requestWrapper(this.$http.post(duplicateUrl, '', opts));\n const getProjectRequest = requestWrapper(this.HttpSvc('project', duplicateProjectId).secureGet());\n\n return duplicateRequest\n .then(() => getProjectRequest)\n .then((project: anm.Project) => {\n this.$rootScope.$emit(PROJECT_ADD, {project});\n });\n })\n .finally(() => {\n this.duplicating = false;\n SpinnerSvc.hide();\n });\n };\n\n private errorFunction(error: string) {\n console.log(error);\n _.notification.showError('Failed to modify staff picks');\n };\n}\n\nfunction AdminSvcFactory($http: ng.IHttpService,\n $q: ng.IQService,\n $rootScope: ng.IRootScopeService,\n TagsSvc: TagsSvc,\n HttpSvc: HttpSvcFactory,\n BackendSvc: BackendSvc,\n TranslateSvc: TranslateSvc) {\n _.extend(AdminSvc.prototype, {\n $http, $q, TagsSvc, HttpSvc, BackendSvc, $rootScope, TranslateSvc\n });\n return AdminSvc;\n}\n\nservices.service('AdminSvc', AdminSvcFactory);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/AdminSvc.ts","import directives from './module';\nimport {OAuthCallbackSvc} from '../services/OAuthCallbackSvc';\nimport {LocalStorageSvc} from '../services/LocalStorageSvc';\nimport {Utils} from '../underscore-extensions';\nimport {AnalyticSvc} from '../services/AnalyticSvc';\n\ndirectives.component('oauthSignInButtons', {\n controller(this: any,\n $timeout: ng.ITimeoutService,\n $state: ng.ui.IStateService,\n analyticSvc: AnalyticSvc,\n OAuthCallbackSvc: OAuthCallbackSvc,\n LocalStorageSvc: LocalStorageSvc) {\n const originProduct = Utils.getProductByState($state).toLowerCase();\n const product = originProduct === 'any' ? 'studio' : originProduct;\n const makeCallback = (service: string) => {\n const s = options.isLocal ? location.origin : location.origin.replace(/(https?:\\/\\/)(www.)?/, '$1www.');\n return `${s}/callback/${service}/${product}`;\n };\n\n const buildOAuthUrl = (endpoint: string, apiKey: string, callback: string) =>\n `${endpoint}?response_type=token&client_id=${apiKey}&redirect_uri=${callback}`;\n\n const google = (() => {\n const apiKey = options.social.googleApiKey;\n const endpoint = 'https://accounts.google.com/o/oauth2/auth';\n //https://developers.google.com/+/web/api/rest/oauth\n return buildOAuthUrl(endpoint, apiKey, makeCallback('google')) + `&scope=profile email`;\n })();\n\n const facebook = (() => {\n const apiKey = options.social.facebookApiKey;\n const endpoint = 'https://www.facebook.com/dialog/oauth';\n return buildOAuthUrl(endpoint, apiKey, makeCallback('facebook')) + `&scope=email&display=popup`;\n })();\n\n const twitter = `${options.apiDomain}/authenticate/twitter?redirect_uri=${location.origin}/callback/twitter/${product}`;\n\n const dribbble = (() => {\n const apiKey = options.social.dribbbleApiKey;\n const callback = options.isLocal ? `${location.origin}/callback/dribbble` : options.social.oauthCallback.replace('WEBFB', 'WEBDR');\n return `https://dribbble.com/oauth/authorize?client_id=${apiKey}&redirect_uri=${callback}`;\n })();\n\n this.open = (link: string, provider: anm.SignUpProvider) => $timeout(() => {\n analyticSvc.signUpSocialSubmit(provider);\n window.open(link, 'Auth', 'width=640, height=480,resizable,scrollbars,status');\n });\n\n this.providers = {facebook, google, twitter};\n\n window.addEventListener('storage', function listener(e: StorageEvent) {\n if (LocalStorageSvc.get('auth') || (e.key === 'auth' && e.newValue)) {\n window.removeEventListener('storage', listener);\n LocalStorageSvc.remove('auth');\n const value = JSON.parse(e.newValue);\n $timeout(() => OAuthCallbackSvc.doLogin(value.params, value.stateParams));\n }\n }, false);\n },\n template: `
\n \n
`\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/oauthSignInButtons.ts","module.exports = __webpack_public_path__ + \"stylesheets/wave-user-page_83ad6a4b121102f63ca01b8ed9ad5382.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-user-page.less\n// module id = GIoJ\n// module chunks = 151","var path = 'https://assets.animatron.com/html/tabs.html';\nvar html = \" \";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/tabs.html","import directives from './module';\nimport {Utils} from 'underscore-extensions';\n\ndirectives.directive('fixedTabs', () => {\n return (scope: any, element: ng.IAugmentedJQuery) => {\n const header = element[0];\n let offset: number;\n scope.fixedTab = false;\n\n setTimeout(() => {\n offset = header.offsetTop;\n }, 0);\n\n Utils.scopedEvent('resize', scope, _.throttle(() => {\n offset = header.offsetTop || offset;\n }, 100));\n\n Utils.scopedEvent('scroll', scope, _.throttle(() => {\n Utils.rAF(() => {\n const atBottom = ((window.scrollY || window.pageYOffset) - offset) > -55;\n if (scope.fixedTab && !atBottom) {\n scope.fixedTab = false;\n header.classList.remove('fixed-tabs--pinned');\n } else if (!scope.fixedTab && atBottom) {\n scope.fixedTab = true;\n header.classList.add('fixed-tabs--pinned');\n }\n });\n }, 100));\n };\n }\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/FixedTabs.ts","module.exports = __webpack_public_path__ + \"html/editable_db996aafcea7c65151268513181eb155.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/project/editable.html\n// module id = GgDZ\n// module chunks = 151","import services from 'services/module';\nimport {AuthenticationSvc} from './AuthenticationSvc';\n\nfunction UserChangeWatcherSvc(this: any, $interval: ng.IIntervalService,\n $timeout: ng.ITimeoutService,\n $log: ng.ILogService,\n ipCookie: ipCookie,\n AuthenticationSvc: AuthenticationSvc) {\n let checkInterval = 3000;\n\n const userTracker = _.once(() => {\n $timeout(() => {\n let token: string = ipCookie(AuthenticationSvc.animatronCookieName);\n let inProgress = false;\n $interval(() => {\n if (!inProgress) {\n token = ipCookie(AuthenticationSvc.animatronCookieName);\n if (AuthenticationSvc.loggedIn && !token) {\n $log.debug('User logged out.');\n inProgress = true;\n AuthenticationSvc.logoutAndGoRoot().then(() => inProgress = false);\n } else if (!AuthenticationSvc.loggedIn && token) {\n $log.debug('User logged in.');\n inProgress = true;\n AuthenticationSvc.updateUser().then(() => inProgress = false);\n }\n }\n }, checkInterval);\n }, checkInterval);\n });\n\n this.init = _.once((callback: any) => {\n if (AuthenticationSvc.isCookieEnabled()) {\n AuthenticationSvc.getUser(true).then(callback).then(userTracker);\n } else {\n AuthenticationSvc.setAnonymous().then(() => {\n callback();\n _.notification.showError('Oh no! It seems you have disabled cookies! To continue please enable cookies in your browser and refresh the page.', 0);\n });\n }\n });\n}\n\nservices.service('UserChangeWatcherSvc', UserChangeWatcherSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/UserChangeWatcherSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/user-section_2e350a04f8e1575fa848cdc0b8a75e75.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/user-section.less\n// module id = HCXh\n// module chunks = 151","var path = 'https://assets.animatron.com/html/search.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/search.html","module.exports = __webpack_public_path__ + \"images/landing/light/creativity.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/light/creativity.png\n// module id = HN/J\n// module chunks = 151","var path = 'https://assets.animatron.com/html/project/project.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/project/project.html","module.exports = __webpack_public_path__ + \"stylesheets/subscription-page_3a85e49950317ccf94d8bd17ac253de0.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/subscription-page.less\n// module id = Hh+C\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/go-share-button_6031b57b3f20b9eb2040e00eb25f5a2f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/go-share-button.less\n// module id = HmW0\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/business.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/business.png\n// module id = HnXD\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/user-info-form_57fc806bcf3641168bb573fd1f60cc7f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/user-info-form.less\n// module id = IFnZ\n// module chunks = 151","import directives from './module';\nimport {HttpSvcFactory} from '../services/HttpSvc';\n\nclass uploadProject implements ng.IComponentController {\n uploadingProject: boolean;\n\n constructor(private $scope: ng.IScope,\n private $element: ng.IAugmentedJQuery,\n private $http: ng.IHttpService,\n private $state: ng.ui.IStateService,\n private HttpSvc: HttpSvcFactory) {\n }\n\n $onInit() {\n this.$element[0].onchange = e => this.$scope.$apply(() => {\n const fd = this.getFormData();\n this.upload(fd);\n });\n }\n\n private getFileTag() {\n return (this.$element[0].querySelector('input[type=\"file\"]'));\n }\n\n private getFormData() {\n const file = this.getFileTag().files[0];\n const fd = new FormData();\n fd.append('file', file);\n\n return fd;\n }\n\n private getProjectUrl() {\n return this.HttpSvc('project/list?product=wave')\n .get()\n .then(r => r.data)\n .then((data: anm.SearchResult) => {\n const projectId = data.results[0].id;\n return `https://upload.animatron${options.isProduction ? '' : '-test'}.com/assets/${projectId}/${options.user.hash}`;\n })\n }\n\n private upload(fd: FormData) {\n this.getProjectUrl()\n .then((url: string) => this.$http.post(url, fd, {\n transformRequest: angular.identity,\n transformResponse: angular.identity,\n headers: _.extend({'Content-Type': undefined}, options.headers)\n }))\n .then(r => r.data)\n .then((rawResponse: string) => {\n const response = JSON.parse(rawResponse.replace('=', ':'));\n const projectId = response.projectId;\n this.$state.go('wave-project', {projectId});\n })\n .catch(err => {\n console.error(err);\n _.notification.showError('Couldn\\'t upload project');\n })\n .finally(() => {\n this.uploadingProject = false;\n this.getFileTag().value = null;\n });\n }\n}\n\ndirectives.component('uploadProject', {\n controller: uploadProject,\n template: `\n {{::$root.t('upload.project')}}\n \n `\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/uploadProject.ts","module.exports = __webpack_public_path__ + \"html/banner_6adbd0b69ccd84f435df31b550ff0d58.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/landing/banner.html\n// module id = IU0M\n// module chunks = 151","import directives from './module';\nimport {PlayerSvc} from '../services/PlayerSvc';\n\ninterface Scope extends ng.IScope {\n $ctrl?: {\n player?: ng.IPromise;\n };\n}\n\ndirectives.directive('pauseHiddenPlayer', ($compile: ng.ICompileService,\n $rootScope: ng.IRootScopeService,\n PlayerSvc: PlayerSvc) => {\n return {\n restrict: 'A',\n scope: false,\n link(scope: Scope, element: ng.IAugmentedJQuery, attrs: any) {\n element.attr('is-on-screen', '');\n\n element.removeAttr('pause-hidden-player');\n\n $compile(element)(scope);\n\n const safePause = (player: Player) => {\n if (player.isPlaying()) {\n player.pause();\n }\n };\n const safePlay = (player: Player) => {\n if (!player.isPlaying()) {\n player.play(Math.max(0, player.getTime()));\n }\n };\n const findPlayer = (callback: Function) => {\n const player = PlayerSvc.getPlayer(element[0].id);\n return player && callback(player);\n };\n\n scope.$watch(attrs['pauseHiddenPlayer'], should => {\n findPlayer(should ? safePlay : safePause);\n });\n\n $rootScope.$on('notOnScreen:' + attrs.id, () => findPlayer(safePause));\n $rootScope.$on('onScreen:' + attrs.id, () => findPlayer(safePlay));\n\n if (scope.$ctrl && scope.$ctrl.player) {\n scope.$ctrl.player.then(p => {\n if (element[0].classList.contains('on-screen')) {\n p && p.play();\n }\n });\n }\n }\n };\n }\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/pauseHiddenPlayer.ts","module.exports = __webpack_public_path__ + \"stylesheets/different-devices_061d17c1a50768d41228978c2744f738.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/different-devices.less\n// module id = Ir05\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/scroll-button_b884d9ebe2b4fd4f51e8b0da1ebc037a.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/scroll-button.less\n// module id = J0yb\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/subscription-alert_29b6c31568b6904f1c41754c194a407c.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/subscription-alert.less\n// module id = J6t3\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-horizontal-image-text_582b420c6b79e1d5ede15d3fe404d5b0.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-horizontal-image-text.less\n// module id = JAU9\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/subscription-invoice-history-table_3b8268700da22057376c196d0ced17bb.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/subscription-invoice-history-table.less\n// module id = JDnY\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-search-page_649a9590f13fdc1ff7ec19ea664e6869.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/m-search-page.less\n// module id = JE8O\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/social.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/social.png\n// module id = JfO/\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/6.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/6.png\n// module id = JiAo\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-7.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-7.png\n// module id = Jqsy\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/media-sponsors-section_c6e1e2285e308f79f771dadc5424855d.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/media-sponsors-section.less\n// module id = Jrnx\n// module chunks = 151","import services from 'services/module';\nimport {tagsInput} from 'lazy_modules';\nimport {HttpSvcFactory} from \"./HttpSvc\";\n\nexport class TagsSvc {\n tagsLibLoaded: boolean;\n tagsCache: anm.Tag[] = [];\n restTags = this.HttpSvc('tags');\n\n constructor(private $ocLazyLoad: oc.ILazyLoad,\n private $q: ng.IQService,\n private HttpSvc: HttpSvcFactory) {\n\n tagsInput().then(m => $ocLazyLoad.load(m)).then(() => this.tagsLibLoaded = true);\n }\n\n loadTags = (query: string) => this.$q(resolve => {\n if (this.tagsCache.length === 0) {\n this.restTags.get({params: {all: this.canCreateSuper()}}).then(response => {\n this.tagsCache = this.mapTagsCache(response.data);\n resolve(this.fuzzySearch(query));\n });\n } else {\n resolve(this.fuzzySearch(query));\n }\n });\n\n saveTag = (tag: anm.Tag, projectId: string) => this.restTags.securePost({projectId, tag})\n .then(() => this.tagsCache.push(tag));\n\n tagAdded = (tag: anm.Tag, projectId: string) => this.saveTag(tag, projectId);\n\n tagRemoved = (tag: anm.Tag, projectId: string) => this.restTags.chain('delete').securePost({projectId, tag});\n\n private fuzzySearch = (query: string) =>\n _.filter(this.tagsCache, tag => {\n let j = 0;\n for (let i = 0; i < query.length; i++) {\n const l = query[i];\n if (l === ' ') continue;\n\n j = tag.name.indexOf(l, j);\n if (j === -1) return false;\n }\n return true;\n });\n\n private mapTagsCache = (data: Array) => {\n if (this.canCreateSuper()) {\n data = data.map(tag => {\n if (tag.type === 'SUPER') {\n tag.name = '!' + tag.name;\n }\n return tag;\n });\n }\n return data;\n };\n\n private canCreateSuper = () => {\n const rolez = options.user.subscriptionDetails.studio.features.rolez;\n return rolez.Admin && rolez.Admin.canCreateSuperTags || null;\n }\n}\n\nservices.service('TagsSvc', TagsSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/TagsSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/video-slider_f5ccdf0824648f1a5d99ec9741734968.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/video-slider.less\n// module id = KApX\n// module chunks = 151","import directives from './module';\nimport {Observer} from '../services/ViewPortSvc';\n\ndirectives.directive('isOnScreen', (ViewPortSvc: Observer) => {\n return (scope: any, element: HTMLElement, attrs: {isOnScreen: string}) => {\n // observer.staticWindowHeight = attrs.isOnScreen;\n const centred = parseInt(attrs.isOnScreen, 10);\n ViewPortSvc.subscribe(element[0], centred);\n setTimeout(() => ViewPortSvc.checker(), 0);\n scope.unsubscribe = (el: HTMLElement) => ViewPortSvc.unsubscribe(el);\n scope.$on('$destroy', () => scope.unsubscribe(element[0]));\n };\n }\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/isOnScreenDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/wave-tutorial-workshops_4cc1e32dd8de56a44eb4b71a74e8197a.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/tutorial/wave-tutorial-workshops.less\n// module id = KLH/\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-6.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-6.png\n// module id = KLLA\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/light/light-presentation-image.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/light/light-presentation-image.png\n// module id = KV5y\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/video-gallery_1a93af951e5fe771d8c3a5abf6bef51c.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/video-gallery.less\n// module id = KvyJ\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/5.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/5.png\n// module id = KxLd\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/title-shadow-block_2e8ab60e7c5d9e7779ce30b31b12c794.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/title-shadow-block.less\n// module id = L2qt\n// module chunks = 151","var map = {\n\t\"./blog.png\": \"akEf\",\n\t\"./business.png\": \"HnXD\",\n\t\"./help-img-1.png\": \"vjsU\",\n\t\"./help-img-2.png\": \"tV+N\",\n\t\"./help-img-3.png\": \"whPB\",\n\t\"./help-img-3b.png\": \"9uog\",\n\t\"./help-img-4.png\": \"ukZe\",\n\t\"./help-img-5.png\": \"wWYA\",\n\t\"./help-img-6.png\": \"KLLA\",\n\t\"./help-img-7.png\": \"Jqsy\",\n\t\"./help-img-8.png\": \"2wXK\",\n\t\"./help-img-9.png\": \"EHgq\",\n\t\"./social.png\": \"JfO/\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"LCXO\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner ^\\.\\/.*\\.png$\n// module id = LCXO\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/landing-new-bottom_8d07518e090871d93296352714c52bc8.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/landing-new-bottom.less\n// module id = LT3T\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/18.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/18.png\n// module id = LT8D\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/aff-modal_1a161d787a406eb287d41a0749c106d2.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/aff-modal.less\n// module id = LUYn\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/1.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/1.png\n// module id = LaVb\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/user-info_dac81fce0267bcb388942e6a232e1185.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/user-info.html\n// module id = Ldjh\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-different-devices_0ec793bed54add9e7e9d6aa5977b35fc.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-different-devices.less\n// module id = LxjB\n// module chunks = 151","import services from 'services/module';\nimport {tapfiliateLib} from '../lazy_modules';\nimport {LocalStorageSvc} from './LocalStorageSvc';\nimport {HttpSvcFactory} from './HttpSvc';\nimport {Utils} from '../underscore-extensions';\n\ninterface AffiliateLocalStore {\n id: string;\n headerName: string;\n}\n\nexport class AffiliateSvc {\n private tapId = options.isProduction ? '4142-17375a' : '4717-bb729d';\n private storageName = 'anm_referrral_program';\n private getReferralRequest = () => this.HttpSvc(`referral/foruser?product=${Utils.getProduct()}`);\n\n constructor(private $location: ng.ILocationService,\n private $q: ng.IQService,\n private LocalStorageSvc: LocalStorageSvc,\n private HttpSvc: HttpSvcFactory) {\n }\n\n isAffiliate() {\n const {tap_a, cjevent} = this.$location.search() as anm.AffiliateParams;\n return tap_a || cjevent;\n }\n\n isTapAffiliate() {\n const {tap_a} = this.$location.search() as anm.AffiliateParams;\n return !!tap_a;\n }\n\n init() {\n if (!this.isAffiliate()) return;\n\n const {tap_a, cjevent} = this.$location.search() as anm.AffiliateParams;\n\n if (tap_a) {\n this.detectTap();\n } else if (cjevent) {\n this.setAffiliateInfo(cjevent, 'anm-ref-cjevent');\n\n }\n }\n\n getAffiliateUser() {\n const request = this.getReferralRequest();\n return request.secureGet()\n .then(r => r.data)\n .then((affiliateInfo: ApiError | anm.AffiliateInfo) => {\n return Utils.isApiError(affiliateInfo) ? this.$q.reject() : affiliateInfo;\n });\n }\n\n getAffiliateHeader() {\n const storage = this.LocalStorageSvc.get(this.storageName);\n if (!storage) return null;\n\n const {id, headerName} = storage;\n return {[headerName]: id};\n }\n\n private setAffiliateInfo(id: string, headerName: string) {\n this.LocalStorageSvc.set(this.storageName, {\n id,\n headerName\n });\n }\n\n private loadLib() {\n const deferred = this.$q.defer();\n loadScripts([tapfiliateLib], () => deferred.resolve());\n return deferred.promise;\n }\n\n private detectTap() {\n this.loadLib().then(() => {\n window.tap.create(this.tapId);\n window.tap.detectClick(({id}: any) => this.setAffiliateInfo(id, 'anm-ref-tap'));\n });\n }\n\n}\n\nservices.service('affiliateSvc', AffiliateSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/AffiliateSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/section-vertical-text-video_f2175cd105430d23ddbe8f25633d91b5.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-vertical-text-video.less\n// module id = MJwn\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/landing-video-preview_479d12f453f8716e934806854d1a1f91.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-video-preview.less\n// module id = MLEj\n// module chunks = 151","import services from 'services/module';\nimport {Observer} from './ViewPortSvc';\n\nexport class StopPlaySvc {\n private pauseCount = 1;\n private modalShowOff = angular.noop;\n private modalCloseOff = angular.noop;\n private onScreenOff = angular.noop;\n private notOnScreenOff = angular.noop;\n private windowOnFocusHandler = angular.noop;\n private windowOnBlurHandler = angular.noop;\n\n constructor(private $rootScope: ng.IRootScopeService,\n private ViewPortSvc: Observer,\n private element: ng.IAugmentedJQuery,\n private handlerPlay: (canPlay: boolean) => void,\n private scrollCentredOn?: number) {\n this.windowControl();\n this.modalControl();\n this.scrollControl(scrollCentredOn);\n }\n\n deactivate() {\n this.modalShowOff();\n this.modalCloseOff();\n this.onScreenOff();\n this.notOnScreenOff();\n this.ViewPortSvc.unsubscribe(this.element[0]);\n window.removeEventListener('focus', this.windowOnFocusHandler, false);\n window.removeEventListener('blur', this.windowOnBlurHandler, false);\n }\n\n private windowControl() {\n this.windowOnFocusHandler = this.getPlayHandler(true);\n this.windowOnBlurHandler = this.getPlayHandler(false);\n\n window.addEventListener('focus', this.windowOnFocusHandler, false);\n window.addEventListener('blur', this.windowOnBlurHandler, false);\n }\n\n private getPlayHandler(status: boolean) {\n return () => {\n this.pauseCount = status ? Math.max(0, --this.pauseCount) : ++this.pauseCount;\n this.handlerPlay(this.pauseCount === 0);\n }\n }\n\n private modalControl() {\n this.modalShowOff = this.$rootScope.$on('modal:show', this.getPlayHandler(false));\n this.modalCloseOff = this.$rootScope.$on('modal:close', this.getPlayHandler(true));\n }\n\n private scrollControl(centredOn?: number) {\n const id = `on-scroll-${Date.now()}`;\n this.element[0].id = id;\n\n this.onScreenOff = this.$rootScope.$on(`onScreen:${id}`, this.getPlayHandler(true));\n this.notOnScreenOff = this.$rootScope.$on(`notOnScreen:${id}`, this.getPlayHandler(false));\n\n this.ViewPortSvc.subscribe(this.element[0], centredOn);\n setTimeout(() => this.ViewPortSvc.checker(), 0);\n }\n}\n\n\nexport type StopPlaySvcFactory = (element: ng.IAugmentedJQuery,\n handlerPlay: (canPlay: boolean) => void,\n scrollCentredOn?: number) => StopPlaySvc;\n\nfunction StopPlaySvcFactory($rootScope: ng.IRootScopeService,\n ViewPortSvc: Observer) {\n return (element: ng.IAugmentedJQuery,\n handlerPlay: (canPlay: boolean) => void,\n scrollCentredOn?: number) => new StopPlaySvc($rootScope, ViewPortSvc, element, handlerPlay, scrollCentredOn);\n}\n\nservices.service('stopPlaySvcFactory', StopPlaySvcFactory);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/StopPlaySvc.ts","import 'notification';\nimport 'ng-infinite-scroll';\nimport './services/index';\nimport './directives/index';\nimport 'routes/routes';\nimport SpinnerSvc from 'services/SpinnerSvc';\nimport {AuthenticationSvc} from './services/AuthenticationSvc';\nimport {EventSvc} from './services/EventSvc';\nimport {ProjectModalSvc} from './services/ProjectModalSvc';\nimport {TranslateSvc} from './services/TranslateSvc';\nimport {Utils} from './underscore-extensions';\nimport {AnalyticSvc} from './services/AnalyticSvc';\nimport {Strings} from 'Strings';\nimport {AffiliateSvc} from './services/AffiliateSvc';\n\ninterface MyRootScope extends ng.IRootScopeService {\n authSvc: AuthenticationSvc;\n projectModalSvc: ProjectModalSvc;\n TranslateSvc: TranslateSvc;\n animatronProduct: AnimatronProduct;\n stateChangeSuccess: boolean;\n}\nangular.module('infinite-scroll').value('THROTTLE_MILLISECONDS', 250);\nangular.module('animatronApp', [\n 'oc.lazyLoad',\n 'templates',\n 'animatronApp.services',\n 'animatronApp.directives',\n 'cfp.loadingBar',\n 'animatronApp.routes',\n 'ipCookie',\n 'infinite-scroll']\n .concat(window.Raven ? ['ngRaven'] : [])\n)\n .config(($anchorScrollProvider: ng.IAnchorScrollProvider,\n $qProvider: any,\n $compileProvider: ng.ICompileProvider,\n $logProvider: ng.ILogProvider,\n $sceDelegateProvider: ng.ISCEDelegateProvider,\n $ocLazyLoadProvider: oc.ILazyLoadProvider,\n $httpProvider: ng.IHttpProvider) => {\n $ocLazyLoadProvider.config({\n // jsLoader() { console.error('use webpack for scripts, pls', arguments);},\n jsLoader: loadScripts,\n loadedModules: ['animatronApp'],\n debug: !options.debug,\n events: options.debug\n });\n $qProvider.errorOnUnhandledRejections(options.debug);\n $logProvider.debugEnabled(options.debug);\n ($compileProvider as any)\n .debugInfoEnabled(options.debug)\n .preAssignBindingsEnabled(true)\n .commentDirectivesEnabled(false)\n .cssClassDirectivesEnabled(false);\n $anchorScrollProvider.disableAutoScrolling();\n $sceDelegateProvider.resourceUrlWhitelist([\n 'self',\n 'http://*.animatron.com/**', 'https://*.animatron.com/**',\n 'http://*.animatron-test.com/**', 'https://*.animatron-test.com/**',\n 'http://d110oqv827o66u.cloudfront.net/**', 'https://d110oqv827o66u.cloudfront.net/**',\n 'http://d1nvrnigxcwebn.cloudfront.net/**', 'https://d1nvrnigxcwebn.cloudfront.net/**'\n ]);\n $httpProvider.useApplyAsync(true);\n $httpProvider.interceptors.push(($q, $injector) => {\n let retries = 0;\n const waitBetweenErrors = 1000;\n const maxRetries = 10;\n\n function onResponseError(httpConfig: ng.IRequestConfig) {\n const $http = $injector.get('$http');\n const $timeout = $injector.get('$timeout');\n console.log('Error loading html, retrying', httpConfig.url);\n return $timeout(() => $http(httpConfig), waitBetweenErrors);\n }\n\n return {\n responseError(response) {\n if (response.config && ((/\\.html$/.test(response.config.url) || /assets\\/html/.test(response.config.url)))) {\n if (retries < maxRetries) {\n retries++;\n return onResponseError(response.config);\n }\n }\n retries = 0;\n return $q.reject(response);\n }\n } as ng.IHttpInterceptor;\n });\n })\n .run(($rootScope: MyRootScope,\n $state: ng.ui.IStateService,\n $location: ng.ILocationService,\n UserChangeWatcherSvc: any,\n $urlRouter: any,\n ProjectModalSvc: ProjectModalSvc,\n AuthenticationSvc: AuthenticationSvc,\n analyticSvc: AnalyticSvc,\n affiliateSvc: AffiliateSvc,\n ipCookie: any,\n cfpLoadingBar: any,\n EventSvc: EventSvc,\n TranslateSvc: TranslateSvc) => {\n SpinnerSvc.set(cfpLoadingBar);\n EventSvc.init();\n $rootScope.TranslateSvc = TranslateSvc;\n $rootScope.t = TranslateSvc.get.bind(TranslateSvc);\n $rootScope.stateChangeSuccess = false;\n\n if ($location.search().apiProd) {\n options.apiDomain = '//api.animatron.com';\n } else if ($location.search().apiTest) {\n options.apiDomain = '//api.animatron-test.com';\n }\n //set options passed from Play Framework (in index.scala.html)\n $rootScope.options = options;\n $rootScope.user = options.user;\n\n $rootScope.authSvc = AuthenticationSvc;\n $rootScope.projectModalSvc = ProjectModalSvc;\n $rootScope.pendingUserEmail = () => ipCookie('_animatron_activate_pending');\n\n // init affiliates programs\n const affiliateRouteEventOff = $rootScope.$on('$stateChangeSuccess', (ev, s) => {\n affiliateSvc.init();\n affiliateRouteEventOff();\n });\n\n //don't resolve route(show anything) until user is loaded\n const load = $rootScope.$on('$locationChangeStart', e => {\n e.preventDefault();\n UserChangeWatcherSvc.init(() => {\n $urlRouter.sync();\n TranslateSvc.fetchTranslations();\n $rootScope.$on('$stateChangeStart', () => {\n SpinnerSvc.show();\n _.each(document.head.querySelectorAll('[rel=next], [rel=prev]'), el =>\n el.parentElement.removeChild(el));\n });\n const prerenederStatus = document.head.querySelector('[name=prerender-status-code]');\n const robots = document.head.querySelector('[name=robots]');\n $rootScope.$on('$stateChangeSuccess', (ev, s) => {\n $rootScope.animatronProduct = Utils.getProductByState($state);\n $rootScope.isWave = $rootScope.animatronProduct === 'WAVE';\n $rootScope.isStudio = $rootScope.animatronProduct === 'STUDIO';\n analyticSvc.changePage();\n\n if (!$rootScope.stateChangeSuccess) {\n $rootScope.stateChangeSuccess = true;\n } // fix blink effect in Safari\n\n const faviconEl = document.querySelector('[rel=\"icon\"]');\n faviconEl.href = $rootScope.isStudio ?\n require('../images/favicon.ico') :\n require('../images/favicon-wave.ico');\n\n if (!_.find([/project-analytics/, /^project$/, /^explore/], r => r.test(s.name))) { //hide loading bar manually for specified states\n SpinnerSvc.hide();\n }\n setTimeout(() => window.scroll(0, 0));\n prerenederStatus.content = s.httpStatus ? s.httpStatus : '200';\n\n if (options.isProduction) {\n robots.content = s.noindex ? 'noindex' : 'all';\n }\n\n const urlTags = document.head.querySelectorAll('[name=\"twitter:url\"], [property=\"og:url\"], [rel=\"canonical\"]');\n _.each(urlTags, (el: HTMLMetaElement) =>\n el[el.content ? 'content' : 'href'] = window.location.href.split('%3F')[0].split('?')[0]\n );\n if (typeof ga !== 'undefined') {\n ga('send', 'pageview', $location.path());\n }\n });\n if (load) load();\n });\n });\n\n $rootScope.retina = options.retina;\n $rootScope.handHeld = options.handHeld;\n\n $rootScope.setTitle = (key, ...param) => {\n const productL = Utils.getProductByState($state).toLowerCase();\n const productC = Strings.capitalize(productL);\n const defaultTitleKey = `default.${productL}.title`;\n const product = productC === 'Any' ? 'Animatron' : productC;\n\n return TranslateSvc.async(defaultTitleKey).then(defaultTitle => {\n const title = key && TranslateSvc.get(key, ...param);\n\n if (typeof title === 'string' && title.length > 0) {\n const suffix = TranslateSvc.get(`${productL}.title.suffix`);\n _.each(document.head.querySelectorAll('[name=\"twitter:title\"], [property=\"og:title\"]'), el =>\n (el as any).content = `${title} | ${suffix}`\n );\n return $rootScope.title = `${title} | ${suffix}`;\n } else {\n return $rootScope.title = defaultTitle;\n }\n }).catch(a => console.error(`Missing key for title '${key}'`));\n };\n });\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/app.ts","module.exports = __webpack_public_path__ + \"stylesheets/_lang_7d81ce518454a574f5e28b1b0b605892.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/_lang.less\n// module id = N3N4\n// module chunks = 151","/*\n * Copyright 2013 Ivan Pusic\n * Contributors:\n * Matjaz Lipus\n */\nangular.module('ivpusic.cookie', ['ipCookie']);\nangular.module('ipCookie', ['ng']).\nfactory('ipCookie', ['$document',\n function ($document) {\n 'use strict';\n\n return (function () {\n function cookieFun(key, value, options) {\n\n var cookies,\n list,\n i,\n cookie,\n pos,\n name,\n hasCookies,\n all,\n expiresFor;\n\n options = options || {};\n\n if (value !== undefined) {\n // we are setting value\n value = typeof value === 'object' ? JSON.stringify(value) : String(value);\n\n if (typeof options.expires === 'number') {\n expiresFor = options.expires;\n options.expires = new Date();\n // Trying to delete a cookie; set a date far in the past\n if (expiresFor === -1) {\n options.expires = new Date('Thu, 01 Jan 1970 00:00:00 GMT');\n // A new \n } else if (options.expirationUnit !== undefined) {\n if (options.expirationUnit === 'hours') {\n options.expires.setHours(options.expires.getHours() + expiresFor);\n } else if (options.expirationUnit === 'minutes') {\n options.expires.setMinutes(options.expires.getMinutes() + expiresFor);\n } else if (options.expirationUnit === 'seconds') {\n options.expires.setSeconds(options.expires.getSeconds() + expiresFor);\n } else {\n options.expires.setDate(options.expires.getDate() + expiresFor);\n }\n } else {\n options.expires.setDate(options.expires.getDate() + expiresFor);\n }\n }\n return ($document[0].cookie = [\n encodeURIComponent(key),\n '=',\n encodeURIComponent(value),\n options.expires ? '; expires=' + options.expires.toUTCString() : '',\n options.path ? '; path=' + options.path : '',\n options.domain ? '; domain=' + options.domain : '',\n options.secure ? '; secure' : ''\n ].join(''));\n }\n\n list = [];\n all = $document[0].cookie;\n if (all) {\n list = all.split('; ');\n }\n\n cookies = {};\n hasCookies = false;\n\n for (i = 0; i < list.length; ++i) {\n if (list[i]) {\n cookie = list[i];\n pos = cookie.indexOf('=');\n name = cookie.substring(0, pos);\n value = decodeURIComponent(cookie.substring(pos + 1));\n\n if (key === undefined || key === name) {\n try {\n cookies[name] = JSON.parse(value);\n } catch (e) {\n cookies[name] = value;\n }\n if (key === name) {\n return cookies[name];\n }\n hasCookies = true;\n }\n }\n }\n if (hasCookies && key === undefined) {\n return cookies;\n }\n }\n cookieFun.remove = function (key, options) {\n var hasCookie = cookieFun(key) !== undefined;\n\n if (hasCookie) {\n if (!options) {\n options = {};\n }\n options.expires = -1;\n cookieFun(key, '', options);\n }\n return hasCookie;\n };\n return cookieFun;\n }());\n }\n]);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./public/javascripts/angular-cookie.js\n// module id = NFSG\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/settings_ce69dda8c017ff4e1992503f36e5fa72.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings.less\n// module id = NGqW\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/_mixins_6cc546480fda1e74870552bfd551833b.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/_mixins.less\n// module id = NItV\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/21.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/21.svg\n// module id = NNCM\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/wistia-player_42c9eb122a0e34a5645d3fa746e79201.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wistia-player.less\n// module id = NTYq\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-video-gallery_61f642d71733235ea5e45dc5dee68ccb.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-video-gallery.less\n// module id = NZ2j\n// module chunks = 151","//require some deps that included from index.scala.html\nrequire('main.less');\nrequire('mobile/mobile.less');\n\n//add html to templace cache\nangular.module('templates', []);\nrequire('top-layout.html');\nrequire('tabs.html');\nrequire('search.html');\nrequire('modal-template.html');\nrequire('landing/landing-new.html');\nrequire('explore.html');\nrequire('project-item.html');\nrequire('projects.html');\nrequire('news.html');\nrequire('user-page.html');\nrequire('search-page.html');\nrequire('user-popup.html');\n// require('landing/landing-top-footer.html');\nrequire('project/project.html');\n\nrequire('favicon.ico');\n\nfunction getMainView() {\n return document.querySelector('.main[ui-view]');\n}\n\nfunction showErrorPage() {\n const oReq = new XMLHttpRequest();\n oReq.onload = function () {\n document.querySelector('.wrapper').classList.add('wrapper-not-found');\n getMainView().innerHTML = (this as XMLHttpRequest).responseText;\n };\n oReq.open('get', require('404.html'), true);\n oReq.send();\n}\n\nwindow.onerror = function (msg, url, lineNumber, column, err) {\n if (msg.indexOf('c.apply is not a function') > -1) {\n console.error('Unable to load file, check paths');\n }\n if (options && !options.isProduction && options.debugger) {\n debugger;\n }\n console.log(arguments);\n console.error(err || msg);\n if (!getMainView().innerHTML) {\n showErrorPage();\n }\n return true;\n};\n\nif (window.Raven && window.console) {\n Raven.setTagsContext({build: options.buildNumber});\n const originalError = console.error;\n const originalConsole = console;\n window.console.error = function (err) {\n const args = [].slice.call(arguments);\n\n const msg = '' + args.join(' ');\n const data = {level: 'error', logger: 'console', extra: {'arguments': args}};\n if (err instanceof Error) {\n Raven.captureException(err, data);\n } else {\n Raven.captureMessage(msg, data);\n }\n if (_.notification && options && !options.isProduction) {\n _.notification.showError('Exception: ' + msg.substring(0, 200));\n }\n Function.prototype.bind\n .call(originalError, originalConsole)\n .apply(originalConsole, args);\n };\n}\n\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (this: string, searchString: string, position = 0) {\n return this.indexOf(searchString, position) === position;\n };\n}\nif (!Array.prototype.includes) {\n Array.prototype.includes = function (this: any[], el: any) {\n return this.indexOf(el) !== -1;\n };\n}\nif (!String.prototype.includes) {\n String.prototype.includes = function (this: string, el: string) {\n return this.indexOf(el) !== -1;\n };\n}\n\nif (typeof Object.assign !== 'function') Object.assign = _.extend;\n\nObject.defineProperty && Object.defineProperty(window, '_', {\n value: _,\n writable: false\n});\n\n\ntry {\n const n = (navigator as any).storage;\n n && n.persist && n.persist().catch((e: any) => _.noop);\n} catch (e) {}\n\nconst createScriptEl = (src: string) => {\n const node = document.getElementsByTagName('head')[0] || document.body;\n const script = document.createElement('script');\n\n script.type = 'text/javascript';\n script.async = true;\n script.src = src;\n\n node.appendChild(script);\n\n return script;\n};\n\nconst cachePromise = {};\nconst requirejs = (modules: any[], callback: any, err: any) => {\n return Promise.all(modules.filter(m => m).map(m => {\n const getPromise = () => new Promise((resolve, reject) => {\n const script = createScriptEl(m);\n script.onload = (script as any).onreadystatechange = () => resolve();\n script.onerror = reject;\n });\n\n if (!cachePromise[m]) {\n cachePromise[m] = getPromise();\n }\n\n return cachePromise[m];\n }\n )).then(callback).catch(err);\n};\n\nwindow.loadScripts = (modules: string[], callback: Function, silentFail = false) => {\n const load = (retries: number) => requirejs(modules, callback, (err: any) => {\n if (silentFail) return;\n const failedId = err.requireModules && err.requireModules[0];\n // requirejs.undef(failedId);\n\n const query = `script[data-requiremodule=\"${failedId}\"]`;\n const script = document.querySelector(query);\n if (script) script.parentNode.removeChild(script);\n if (retries >= 5) {\n console.error(err);\n callback(err);\n } else {\n console.log('Error loading, retrying', failedId);\n setTimeout(() => load(retries + 1), 500 * (retries + 1));\n }\n });\n load(0);\n};\n\nimport 'angular-cookie';\nimport 'loading-bar';\nimport 'ocLazyLoad';\nimport 'app';\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/main.ts","module.exports = __webpack_public_path__ + \"stylesheets/video-folder-masonry_012dc42dd0794b95b38e01f152218c4a.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/folder/masonry/video-folder-masonry.less\n// module id = Nlhm\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/10.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/10.png\n// module id = NnQa\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/10.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/10.svg\n// module id = Nzyx\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/project-summary_4012fd37248e82a445e03a1908356b91.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/project/project-summary.html\n// module id = O3cu\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/video-folder-tree-item_c3082cffb39afd618b88d6fdd01221c9.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/folder/video-folder-tree-item.less\n// module id = OAh3\n// module chunks = 151","import {Utils} from 'underscore-extensions';\nexport class SmoothScroll {\n\n constructor(private toElement: HTMLElement,\n private offset = 0,\n private duration = 500) {\n }\n\n scroll() {\n let startTime: number | undefined;\n const scrollTopDocument = (window.scrollY || window.pageYOffset);\n const elementOffset = this.getOffsetTop();\n const deltaY = elementOffset - scrollTopDocument;\n\n const scrollEasing = (x: number) =>\n x < 0.5 ? Math.pow(x * 2, 2) / 2 : 1 - Math.pow((1 - x) * 2, 2) / 2;\n\n const animateFrame = (timestamp: number) => {\n if (!startTime) startTime = timestamp;\n const progress = timestamp - startTime;\n const percent = progress >= this.duration ? 1 : scrollEasing(progress / this.duration);\n window.scrollTo(0, scrollTopDocument + (percent * deltaY));\n\n if (percent < 1) Utils.rAF(animateFrame);\n };\n\n Utils.rAF(animateFrame);\n };\n\n private getOffsetTop() {\n let el = this.toElement;\n let parent = el.offsetParent;\n while (parent !== document.body) {\n el = parent;\n parent = parent.offsetParent;\n }\n return el.offsetTop - this.offset;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/SmoothScroll.ts","module.exports = __webpack_public_path__ + \"images/avatars/male/5.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/5.svg\n// module id = OdJD\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/video-folder-breadcrumb_42fb50260c84c73669d30b00c837724e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/folder/video-folder-breadcrumb.less\n// module id = OjHm\n// module chunks = 151","import directives from './module';\n\nclass MoreTextCtrl {\n size: number;\n text: string;\n smallText: string;\n showAll: boolean;\n filterLinky: Function;\n safeText: string;\n\n constructor(private $filter: angular.IFilterService) {\n }\n\n $onChanges() {\n if (!this.text) return;\n\n this.filterLinky = this.$filter('linky');\n this.safeText = this.filterBlank(this.text);\n\n if (this.size >= this.text.length) {\n this.showAll = true;\n } else {\n const smallText = this.text.substr(0, this.size).trim() + '...';\n this.smallText = this.filterBlank(smallText);\n }\n }\n\n filterBlank(text: string) {\n return this.filterLinky(text, '_blank');\n }\n\n toggleShow() {\n this.showAll = !this.showAll;\n }\n}\n\ndirectives.directive('moreText', () => ({\n restrict: 'E',\n scope: {},\n controller: MoreTextCtrl,\n controllerAs: 'moreTextCtrl',\n bindToController: {\n size: '@',\n text: '<'\n },\n templateUrl: require('more-text.html')\n}));\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/moreTextDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/section-text-aside_e13044f9f9b71ad1dc331941fe80b9b2.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-text-aside.less\n// module id = OmPd\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/week6_6b254876f39cd16354fe0f0e83084ab3.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/education/week6.html\n// module id = Oquy\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/contest_50d6d3cb44f5f0d47b4806531b98dcb7.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest/contest.less\n// module id = Otff\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/16.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/16.png\n// module id = OzWi\n// module chunks = 151","function intercom(...a: any[]) {\n window.Intercom && window.Intercom(...a);\n}\n\nfunction boot(userData = {}) {\n const id = options.isProduction ? '93c0bf3bdc0786f3e0f9eae1ce240e8bc01833da' : 'nmrm9rdp';\n\n intercom('boot', {\n app_id: id,\n user_data: userData\n });\n}\n\nfunction setUser(user: anm.User) {\n const {username, email, userId, avatar} = user;\n\n if (username && email && userId && avatar) {\n boot({\n email,\n avatar,\n user_id: userId,\n name: username\n });\n }\n}\n\nfunction setAnonymous() {\n intercom('shutdown');\n boot();\n}\n\nfunction show() {\n intercom('show')\n}\n\nfunction hide() {\n intercom('hide')\n}\n\nfunction unreadCountChange(cb: (n: number) => void) {\n intercom('onUnreadCountChange', cb);\n}\n\nexport default {\n boot,\n setUser,\n setAnonymous,\n show,\n hide,\n unreadCountChange\n}\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/intercom.ts","import services from './module';\nimport {Strings} from 'Strings';\nimport {HttpSvcFactory} from './HttpSvc';\nimport {AnimatronPreviews} from './AnimatronPreviewsSvc';\nimport {AnimatronSvc} from 'services/AnimatronSvc';\nimport {ProjectAugmenter} from './ProjectAugmenter';\n\nexport const PROJECT_ADD = 'anm:project:add';\n\nexport class AnimatronProjects extends AnimatronSvc {\n AnimatronPreviews: AnimatronPreviews;\n ProjectAugmenter: ProjectAugmenter;\n\n public static computedWidth = 290;\n\n searchWord?: string;\n projectsAuthor?: anm.User;\n\n results: Array;\n pages: Array>;\n computedWidth = AnimatronProjects.computedWidth;\n uniqueId: string = 'id';\n query: ProjectSearchCriteria = Object.assign({\n sortOrder: 'desc' as 'desc' | 'asc',\n sortBy: 'modification_time',\n withTags: true,\n withCollaborators: true,\n withBackendUrl: true,\n withDuplicatesCount: true,\n withComments: true,\n withLikes: true\n }, this.query);\n\n protected modifyQuery(query: ProjectSearchCriteria) {\n query.previewWidth = options.handHeld ? 720 : 320;\n if (options.retina) query.previewWidth *= 2;\n super.modifyQuery(query);\n }\n\n protected makeHttpSvc(secure: boolean, api = '') {\n const svc = this.HttpSvc('project/list');\n if (!Strings.isBlank(api)) {\n svc.setApiUrl(api);\n }\n this.foreignAccess = !api && options.user.rolez.ForeignProjectPermissions && options.user.rolez.ForeignProjectPermissions.list;\n return svc[secure || this.foreignAccess ? 'secureGet' : 'get'];\n }\n\n onCreate() {\n this.$rootScope.$on('project:remove', (e, pid) => this.removeProject(pid));\n this.$rootScope.$on(PROJECT_ADD, (e, {project}) => this.addProject(project));\n }\n\n addProject(project: anm.Project) {\n if (this.results.some(p => p.id === project.id)) return;\n\n this.pages[1] && this.pages[1].push(project);\n this.reorderPages();\n this.results.push(project);\n this.count++;\n this.decorate(this.results);\n }\n\n removeProject(pid: string) {\n const currentCount = this.results.length;\n this.pages = this.pages.map(page => page.filter(p => p.id !== pid));\n this.results = this.results.filter(p => p.id !== pid);\n this.count = this.count - (currentCount - this.results.length);\n }\n\n decorate(results: Array) {\n results.forEach((project: anm.Project) => {\n project.computedHeight = this.AnimatronPreviews.computeHeight(project.height, project.width, this.computedWidth);\n this.ProjectAugmenter(project);\n });\n }\n}\n\nexport type AnimatronProjectsFactory = typeof AnimatronProjects;\n\nservices.factory('AnimatronProjects', ($rootScope: ng.IRootScopeService,\n $log: ng.ILogService,\n $timeout: ng.ITimeoutService,\n $q: ng.IQService,\n $stateParams: any,\n HttpSvc: HttpSvcFactory,\n AnimatronPreviews: AnimatronPreviews,\n ProjectAugmenter: ProjectAugmenter) => {\n _.extend(AnimatronProjects.prototype, {\n $rootScope, $log, $timeout, $q, $stateParams, HttpSvc, AnimatronPreviews, ProjectAugmenter\n });\n return AnimatronProjects;\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/AnimatronProjectsSvc.ts","module.exports = __webpack_public_path__ + \"images/avatars/female/7.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/7.svg\n// module id = PAlv\n// module chunks = 151","import directives from '../module';\n\nclass ComparisonCtrl {\n readonly products = ['GoAnimate', 'PowToon', 'Google Web Designer'];\n readonly tabs = this.products.map(p => p.toLowerCase());\n readonly stateTab = this.$stateParams.product.replace('-vs-animatron', '');\n readonly defaultTab = _.find(this.tabs, p => p.replace(/\\s+/g, '') === this.stateTab) || this.tabs[0];\n\n constructor(private $rootScope: ng.IRootScopeService,\n private $state: ng.ui.IStateService,\n private $stateParams: {product: string}) {\n }\n\n change(tb: string) {\n const tab = tb.replace(/\\s+/g, '');\n const product = `${tab}-vs-animatron`;\n this.$state.transitionTo(`studio-${tab}-landing-comparison`, {product: tab}, {notify: false});\n this.$rootScope.setTitle(product + '.title');\n }\n}\n\ndirectives.component('landingComparisonPage', {\n controller: ComparisonCtrl,\n controllerAs: 'ComparisonCtrl',\n templateUrl: require('landing/comparison.html')\n});\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/landing/LandingComparisonPage.ts","module.exports = __webpack_public_path__ + \"stylesheets/activate_08d23fecc14fe9acd6d4813e99c0efef.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/activate.less\n// module id = PZhr\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/contest-days_8b63cbf35d22a0a184cf8de4509b6ee3.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/contest-days.less\n// module id = PpkO\n// module chunks = 151","import {Strings} from '../Strings';\nimport {HttpSvcFactory} from '../services/HttpSvc';\nimport {AdSvc} from '../services/AdSvc';\nimport {OAuthCallbackSvc} from '../services/OAuthCallbackSvc';\nimport {Utils} from '../underscore-extensions';\nimport LightLandings from '../LightLandingPages';\nimport MediumLandings from '../MediumLandingPages';\nimport TemplateLandingPages from '../TemplateLandingPages';\nimport {\n animatronSettings,\n animatronTutorial,\n animatronEdu,\n animatronUserPage,\n animatronCompany,\n animatronEditorRedirect,\n animatronContractors,\n animatronPricing,\n animatronSignup,\n animatronActivate,\n animatronRecovery,\n animatronRecoveryReset,\n animatronPrivacy,\n animatronTermsServices,\n animatronProjectAnalytics,\n animatronProject,\n animatronProjects,\n animatronSearchPage,\n animatronBannerBottom,\n animatronExplainerBottom,\n animatronLandingNewBottom,\n animatronContest,\n animatronPublish,\n animatronSpecialUpgrade,\n animatronMediumLanding,\n waveMain,\n animatronComparisonBottom,\n waveMyProjects,\n wavePricing,\n mainLanding,\n waveUserPage,\n waveLandingSMMW,\n mariSmithTutorials,\n salmaWebinars,\n animatronLandingTemplate,\n waveTutorialPage,\n animatronContestLanding,\n animatronContestDays,\n animatronSubscriptionPage,\n animatronSubscriptionSvc\n} from '../lazy_modules'; //TODO use `import * as modules from 'lazy_modules'`;\n\nimport {\n setWrapper,\n setTitle,\n loadModule,\n redirect,\n redirectResolve,\n nullToEmptyString,\n redirectForLogin,\n extendState, trackVisit\n} from './RouteUtils';\nimport {AuthenticationSvc} from '../services/AuthenticationSvc';\nimport {TypeformSvc} from '../settings/services/TypeformSvc';\nimport {AnimatronProjectsFactory} from '../services/AnimatronProjectsSvc';\nimport {LocalStorageSvc} from '../services/LocalStorageSvc';\nimport {TranslateSvc} from '../services/TranslateSvc';\nimport {SubscriptionSvc} from '../settings/services/SubscriptionSvc';\n\n//TODO remove duplicate check anonymous\nclass Routes {\n private static ENCODED_QUESTIONMARK = '%3f';\n\n constructor($stateProvider: ng.ui.IStateProvider,\n $urlRouterProvider: ng.ui.IUrlRouterProvider,\n $locationProvider: ng.ILocationProvider,\n $urlMatcherFactoryProvider: ng.ui.IUrlMatcherFactory) {\n $urlMatcherFactoryProvider.caseInsensitive(true);\n $urlRouterProvider.rule(($injector: ng.auto.IInjectorService, $location: ng.ILocationService): any => {\n const path = $location.url();\n // check to see if the path has a trailing slash\n if ('/' === path[path.length - 1]) {\n return path.replace(/\\/$/, '');\n }\n\n return false;\n });\n extendState($stateProvider);\n\n const subscriptionModalsParams = ':modal?period&plan&redeem&promo&special&coupon';\n\n const tutorialResolve = _.extend(loadModule(animatronTutorial), setWrapper('wrapper-tutorial wrapper-long-head'));\n\n const projectsModules = loadModule(animatronProjects);\n\n const getLandingParams = () => ({\n url: '/studio?signup&loginRedirect',\n template: ``,\n onEnter /*@ngInject*/($stateParams: ng.ui.IStateParamsService,\n AuthenticationSvc: AuthenticationSvc) {\n const {loginRedirect} = $stateParams;\n\n if (loginRedirect) {\n AuthenticationSvc.toggleLoginModal(decodeURIComponent(loginRedirect));\n }\n },\n resolve: _.extend(\n loadModule(animatronLandingNewBottom),\n setWrapper('wrapper-landing-common wrapper-landing-new'),\n setTitle())\n });\n\n const SMMWParams = ['utm_source', 'utm_medium', 'utm_campaign'].join('&');\n\n const SMMWPages: anm.WaveSMMWLandings[] = ['Image', 'Video'];\n\n $locationProvider.html5Mode(true).hashPrefix('!');\n $urlRouterProvider.otherwise(($injector: ng.auto.IInjectorService) => {\n const pth = location.pathname.toLowerCase();\n if (pth.includes(Routes.ENCODED_QUESTIONMARK)) {\n const regexp = new RegExp(Routes.ENCODED_QUESTIONMARK, 'gi');\n const [path, query] = location.pathname.split(regexp);\n\n location.href = path + '?' + query;\n } else {\n $injector.get('$state').go('404');\n }\n });\n $urlRouterProvider.when('', '/');\n $urlRouterProvider.when('/studio/landing', '/studio');\n $urlRouterProvider.when('/wave/landing', '/wave');\n $urlRouterProvider.when('/cmw17', '/wave');\n $urlRouterProvider.when('/wave/?', ($location: ng.ILocationService) => {\n const url = $location.url().replace('/?', '?');\n $location.path(url).replace();\n });\n\n (function setupStates() {\n $stateProvider.state('calendar', {\n url: `/wave/calendar/{eventPath:any}`,\n params: {\n eventPath: {\n value: null,\n raw: true,\n squash: true\n }\n },\n onEnter($state: ng.ui.IStateService, $window: ng.IWindowService) {\n // replace previous url\n $state.go(\n '.',\n {},\n {\n location: 'replace',\n reload: true,\n notify: false\n }\n );\n\n $window.open(`https://www.animatron${options.isProduction ? '' : '-test'}.com/wave/calendar`, '_self');\n }\n })\n .state('blog', {\n url: '/blog/{path:any}',\n params: {\n path: {\n value: null,\n raw: true,\n squash: true\n }\n },\n onEnter($state: ng.ui.IStateService, $window: ng.IWindowService, $stateParams: ng.ui.IStateParamsService) {\n // replace previous url\n $state.go(\n '.',\n {},\n {\n location: 'replace',\n reload: true,\n notify: false\n }\n );\n\n const {path} = $stateParams;\n const article = path ? `${path}/` : '';\n $window.open(`https://www.animatron.com/blog/${article}`, '_self');\n }\n })\n .state('mari-smith-tutorials', {\n url: '/wave/videos-for-social-media-mari-smith',\n template: '',\n resolve: _.extend(\n setTitle('wv.mari.page.title'),\n loadModule(mariSmithTutorials()),\n setWrapper('wrapper-landing-WAVE wrapper-landing-WAVE-webinar'),\n trackVisit('Landing', {Name: 'Social Video Workshop by Mari Smith'})\n )\n })\n .state('video-marketing-strategy-salma-jafri', {\n url: '/wave/video-marketing-strategy-salma-jafri',\n template: '',\n resolve: _.extend(\n setTitle('wv.salma.title'),\n loadModule(salmaWebinars()),\n setWrapper('wrapper-landing-WAVE wrapper-landing-WAVE-webinar'),\n trackVisit('Landing', {Name: 'Video Strategy Workshop with Salma Jafri'})\n )\n })\n .state('wave2', {\n url: `/wave-2?${SMMWParams}`,\n noindex: true,\n onEnter($location: ng.ILocationService,\n $stateParams: ng.ui.IStateParamsService) {\n const {utm_source, utm_medium, utm_campaign} = $stateParams;\n\n const isSMMW = utm_source === 'SMExaminer'\n && utm_medium === 'IndustryReport'\n && utm_campaign === 'SMEad';\n\n const SMMWPage = SMMWPages[_.random(1)];\n if (isSMMW) {\n const url = `/wave/SMExaminerReport${SMMWPage}`;\n $location.path(url).replace();\n }\n },\n\n template: '',\n resolve: _.extend(loadModule(waveMain), setWrapper('wrapper-landing-WAVE'), setTitle('wv.landing.title'))\n })\n .state('wave-user', {\n url: '/wave/users/:username',\n params: {\n folderId: {\n value: null\n }\n },\n noindex: true,\n template: '',\n resolve: _.extend(\n loadModule(waveUserPage),\n setWrapper('wave-user-page-wrapper wrapper-wave-projects'),\n setTitle(),\n redirectResolve(() => !options.user.rolez.Admin, '/wave')\n )\n })\n .state('studio-user', {\n url: '/studio/users/:username?startFollowing&customize&bgColor&page&removed',\n params: {user: null},\n noindex: true,\n template: '',\n resolve: _.extend(\n loadModule(options.enableContests ? animatronContest : animatronUserPage),\n setWrapper('userpage-wrapper'),\n setTitle()\n )\n })\n .state('studio-following', {\n url: '/studio/users/:username/following',\n params: {user: null},\n template: '',\n resolve: _.extend(\n loadModule(animatronUserPage),\n setWrapper('follow-wrapper'),\n setTitle()\n )\n })\n .state('studio-followers', {\n url: '/studio/users/:username/followers',\n params: {user: null},\n template: '',\n resolve: _.extend(\n loadModule(\n animatronUserPage),\n setWrapper('follow-wrapper'),\n setTitle()\n )\n })\n .state('home', {\n url: '/home?login&isNew',\n controller($location: ng.ILocationService, $filter: ng.IFilterService) {\n const url = options.user.anonymous ? '/' : `/users/${$filter('encodeUsername')(options.user.username)}`;\n $location.path(url);\n }\n // }).state('analytics', {\n // url: '/analytics?limit',\n // noindex: true,\n // controller: ($scope, $http, $stateParams, AnimatronProjects, HttpSvc, ProjectAugmenter, AnimatronPreviews) => {\n // const url = (options.isLocal ? 'http://localhost:8081' :\n // ('https://' + (options.isProduction ? 'analytics.animatron.com' : 'analytics.animatron-test.com'))) +\n // '/analytics/projects';\n // $scope.animatron = new AnimatronProjects({});\n // $scope.animatron.nextPage = angular.noop;\n // $http.get(url).success((a: {count: number, _id: string}[]) =>\n // _.take(a, +$stateParams.limit)\n // .forEach(p => HttpSvc('project', p._id).get().success((project: anm.Project) => {\n // project.views = p.count;\n // ProjectAugmenter(project);\n // project.computedHeight = AnimatronPreviews.computeHeight(project.height, project.width, $scope.animatron.computedWidth);\n // $scope.animatron.results.push(project);\n // })\n // ));\n // },\n // templateUrl: require('projects.html'),\n // resolve: _.extend(setWrapper(''), projectsModules)\n })\n .state('studio-explore', {\n url: '/studio/explore?confirmationSent&login&isNew&page',\n template: '',\n reloadOnSearch: false,\n resolve: _.extend(setWrapper('wrapper-explore'), setTitle('explore.title'), projectsModules, {})\n })\n .state('studio-search', {\n url: '/studio/search?q&username&solr&myProjects&instant',\n template: '',\n resolve: _.extend(setWrapper('wrapper-search'), setTitle(), loadModule(animatronSearchPage))\n })\n .state('tag', {\n url: '/tags/:tag?super&user&page',\n noindex: true,\n controller: ($scope: any, $rootScope: ng.IRootScopeService, $stateParams: any, AnimatronProjects: AnimatronProjectsFactory) => {\n const tag_type = _.findKey(_.omit($stateParams, 'tag'), (param: string) => param === 'true');\n $rootScope.setTitle('tags.title', $stateParams.tag);\n $scope.AdSvc = new AdSvc(false, $rootScope);\n const adify = $scope.AdSvc.adify.bind($scope.AdSvc);\n $scope.animatron = new AnimatronProjects({tag: $stateParams.tag, tag_type}, false, '', adify);\n },\n templateUrl: require('projects.html'),\n resolve: _.extend(setWrapper(''), setTitle(), projectsModules)\n })\n .state('studio-tutorial', {\n url: '/studio/tutorial/:video',\n reloadOnSearch: false,\n params: {\n video: {value: null, squash: true}\n },\n template: '',\n resolve: _.extend(setTitle('tutorial.title'), tutorialResolve)\n })\n .state('wave-workshops', {\n url: '/wave/workshops',\n template: '',\n resolve: _.extend(\n setTitle('tutorial.title'),\n setWrapper('wrapper-wave-tutorials'),\n loadModule(waveTutorialPage)\n )\n })\n .state('wave-tutorial', {\n url: '/wave/tutorial/:video',\n reloadOnSearch: false,\n params: {\n video: {value: null, squash: true}\n },\n template: '',\n resolve: _.extend(\n setTitle('tutorial.title'),\n setWrapper('wrapper-wave-tutorials'),\n loadModule(waveTutorialPage)\n )\n })\n .state('studio-education', {\n url: '/studio/education',\n template: '',\n resolve: _.extend(loadModule(animatronEdu), setWrapper('wrapper-long-head wrapper-edu'), setTitle('edu.title'))\n })\n .state('studio-education.week', {\n url: '/:week',\n controller($scope: any, $stateParams: any, $rootScope: ng.IRootScopeService) {\n $scope.week.number = parseInt($stateParams.week.substring(4), 10);\n $rootScope.setTitle(`edu.week${$scope.week.number}.title`);\n },\n templateUrl: ($stateParams: any) => require(`education/${$stateParams.week}.html`)\n })\n .state('about', {\n url: '/about',\n noindex: true,\n resolve: _.extend(\n redirectResolve(() => true, '/company')\n )\n })\n .state('company', {\n url: '/company/{tab}',\n params: {\n tab: {\n value: null,\n squash: true\n }\n },\n template: '',\n resolve: _.extend(\n loadModule(animatronCompany),\n setWrapper('wrapper-press'),\n setTitle('press.title')\n )\n })\n .state('editor-redirect', {\n url: '/wave/editor-redirect',\n template: '',\n resolve: _.extend(\n loadModule(animatronEditorRedirect),\n setWrapper('wrapper-landing-WAVE editor-redirect-page'),\n setTitle('wv.landing.title')\n )\n })\n .state('wave_signup', {\n url: '/wave-signup',\n onEnter($location: ng.ILocationService) {$location.path('/wave').replace()}\n })\n .state('contractors', {\n url: '/contractors',\n template: '',\n resolve: _.extend(loadModule(animatronContractors), setWrapper('wrapper-contractors'), setTitle('contractors.title'))\n })\n .state('root', {\n url: '/?signup&login&redirect_to',\n template: '',\n resolve: _.extend(\n loadModule(mainLanding()),\n setWrapper('wrapper-landing-common wrapper-simple-page'),\n setTitle(''),\n {\n checkRedirect: /*@ngInject*/ ($location: ng.ILocationService) =>\n redirect(!options.user.anonymous && $location.search().login, () =>\n $location.path('/login').replace()),\n showModal: /*@ngInject*/($location: ng.ILocationService,\n AuthenticationSvc: AuthenticationSvc,\n LocalStorageSvc: LocalStorageSvc) => {\n const redirect = $location.search().return_to || $location.search().login;\n if (redirect) {\n AuthenticationSvc.loginModalShown = true;\n LocalStorageSvc.set('_animatron_redirect_onlogin', document.referrer);\n }\n }\n })\n })\n .state('studio', getLandingParams())\n .state('landingWithAnimation', _.extend(getLandingParams(), {\n noindex: true,\n url: '/landing/:animation?signup'\n }))\n .state('studio-landing-banner', { //isolate scope will break it\n url: '/studio/html5-banner-maker',\n templateUrl: require('landing/banner.html'),\n resolve: _.extend(\n loadModule(animatronBannerBottom),\n setWrapper('wrapper-landing-common wrapper-landing-banner'),\n setTitle('banner.title'))\n })\n .state('studio-special-annual-upgrade', {\n url: '/studio/special-annual-upgrade',\n template: ``,\n resolve: _.extend(\n redirectForLogin(),\n loadModule(animatronSpecialUpgrade),\n setWrapper('wrapper-special-annual-upgrade'),\n setTitle('special.annual.upgrade.title'))\n })\n .state('studio-landing-explainer', {\n url: '/studio/explainer-video-maker',\n templateUrl: require('landing/explainer.html'),\n resolve: _.extend(\n loadModule(animatronExplainerBottom),\n setWrapper('wrapper-landing-common wrapper-landing-banner wrapper-landing-explainer'),\n setTitle('explainer.title'))\n })\n .state('studio-landing-political', {\n url: '/studio/political-cartoon-maker',\n controllerAs: '$ctrl',\n controller(this: any, $rootScope: ng.IRootScopeService, $scope: ng.IScope, $sce: ng.ISCEService) {\n const baseUrl = `https://videos.animatron.com/political_landing/political_cartoon${options.retina ? '_2x' : ''}`;\n this.videoUrl = $sce.trustAsResourceUrl(`${baseUrl}.mp4`);\n this.imgUrl = $sce.trustAsResourceUrl(`${baseUrl}.jpg`);\n $rootScope.editorParams = '&guide=political';\n $scope.$on('$destroy', () => $rootScope.editorParams = '');\n },\n templateUrl: require('landing/political-landing.html'),\n resolve: _.extend(\n setWrapper('wrapper-landing-common wrapper-landing-light wrapper-landing-political'),\n setTitle('political.title')\n )\n })\n .state('privacy', {\n url: '/privacy',\n templateUrl: require('privacy.html'),\n resolve: _.extend({scrollTop: [() => window.scrollTo(0, 0)]},\n loadModule(animatronPrivacy), setWrapper('wrapper-privacy'), setTitle('privacy.title'))\n })\n .state('oauthCallback', {\n url: '/callback/:provider/:product?code',\n noindex: true,\n resolve: setTitle(),\n onEnter: ($stateParams: any, $location: ng.ILocationService, OAuthCallbackSvc: OAuthCallbackSvc) =>\n OAuthCallbackSvc.onCallback($stateParams, $location.hash())\n })\n .state('404', {\n url: '/404',\n noindex: true,\n httpStatus: '404',\n templateUrl: require('404.html'),\n resolve: _.extend(setWrapper('wrapper-not-found'), setTitle('notfound.title'))\n })\n .state('logout', {\n noindex: true,\n url: '/logout',\n template: '
',\n onEnter(AuthenticationSvc: AuthenticationSvc) {\n AuthenticationSvc.logoutAndGoRoot();\n },\n resolve: setWrapper('.wrapper-ANY')\n })\n .state('terms-of-service', {\n url: '/terms-of-service',\n templateUrl: require('terms-of-service.html'),\n resolve: _.extend({scrollTop: [() => window.scrollTo(0, 0)]},\n loadModule(animatronTermsServices), setWrapper('wrapper-terms-of-service'), setTitle('terms.title'))\n })\n .state('project-analytics', {\n url: '/project/{projectId}/analytics?rangeStart&rangeEnd',\n noindex: true,\n params: {project: null},\n template: '',\n resolve: _.extend(loadModule(animatronProjectAnalytics), setWrapper('wrapper-analytics'), setTitle('analytics.title'))\n })\n .state('pages', {\n url: '/pages',\n noindex: true,\n controller: ($state: ng.ui.IStateService) =>\n document.querySelector('.main').innerHTML =\n $state.get().map(s => `${s.name}
`).join('')\n })\n .state('project-likes', {\n url: '/project/{projectId}/likes',\n noindex: true,\n params: {project: null},\n template: `\n \n {{::like.user.displayName}}\n `,\n controller: function (this: any, $stateParams: any, HttpSvc: HttpSvcFactory) {\n HttpSvc('project', $stateParams.projectId)[options.user.anonymous ? 'get' : 'secureGet']()\n .then((res: ng.IHttpPromiseCallbackArg) => this.project = res.data);\n },\n controllerAs: '$ctrl',\n resolve: _.extend(setWrapper(), setTitle())\n })\n .state('contest-page', {\n url: '/contest/:contestId',\n template: ``,\n resolve: _.extend(loadModule(animatronContest), setWrapper('contest-wrapper'), setTitle())\n })\n .state('contest-landing', {\n url: '/wave/makewaves',\n template: ``,\n noindex: true,\n resolve: _.extend(\n loadModule(animatronContestLanding),\n setWrapper('contest-landing-wrapper wrapper-hide-header wrapper-footer-small'),\n setTitle('wv.contest-landing.pagetitle')\n )\n })\n .state('contest-days', {\n url: '/wave/makewaves/:day?iv',\n template: ``,\n noindex: true,\n resolve: _.extend(\n loadModule(animatronContestDays),\n setWrapper('contest-landing-wrapper contest-days-wrapper wrapper-hide-header wrapper-footer-small'),\n setTitle('wv.contest-landing.pagetitle')\n )\n })\n .state('wave-thanksgiving', {\n url: '/wave/thanksgiving',\n noindex: true,\n resolve: _.extend(\n redirectResolve(() => true, '/wave')\n )\n })\n .state('wave-my-videos', {\n url: '/wave/my-videos',\n noindex: true,\n resolve: _.extend(\n redirectResolve(() => true, '/wave/my-projects')\n )\n })\n .state('sharing', {\n url: '/share/:tag',\n noindex: true,\n controllerAs: '$ctrl',\n controller(this: any, $stateParams: any, AnimatronProjects: AnimatronProjectsFactory) {\n this.animatron = new AnimatronProjects({\n noCount: true,\n limit: 5000,\n tag: $stateParams.tag,\n tag_type: 'SUPER',\n previewWidth: 320\n }, false, 'https://api.animatron.com');\n this.animatron.nextPage();\n },\n templateUrl: require('project/publish/multi-share.html'),\n resolve: _.extend(loadModule([animatronProjects, animatronPublish]), setWrapper(''), setTitle(''),\n redirectResolve(() => !options.user.rolez.Admin, '/landing'))\n })\n .state('wave-pricing', {\n url: `/wave/pricing/${subscriptionModalsParams}`,\n params: {\n modal: {\n value: null,\n squash: true\n }\n },\n template: '',\n controller: ['$scope', function ($scope: any) {\n $scope.alwaysShowFaq = true;\n window.scrollTo(0, 0);\n }],\n resolve: _.extend(\n setWrapper('wrapper-pricing wrapper-pricing-WAVE'),\n loadModule(wavePricing),\n trackVisit('Pricing'),\n setTitle('pricing.title')\n )\n })\n .state('studio-pricing', {\n url: `/studio/pricing/${subscriptionModalsParams}`,\n params: {\n modal: {\n value: null,\n squash: true\n }\n },\n templateUrl: require('studio/pricing.html'),\n controller: ['$scope', function ($scope: any) {\n $scope.alwaysShowFaq = true;\n window.scrollTo(0, 0);\n }],\n resolve: _.extend(\n trackVisit('Pricing'),\n loadModule(animatronPricing),\n setWrapper('wrapper-pricing'),\n setTitle('pricing.title')\n )\n })\n .state('my-projects', {\n url: '/wave/my-projects/{folderPath:any}?t&e',\n params: {\n folderPath: {\n value: null,\n raw: true,\n squash: true\n }\n },\n template: '',\n resolve: _.extend(\n loadModule(waveMyProjects),\n setWrapper('wrapper-wave-projects'),\n redirectForLogin(),\n setTitle('wv.my-projects.title')\n )\n });\n\n SMMWPages.forEach((page) => {\n const state = page.toLowerCase();\n\n $stateProvider.state(`wave-landing-smmw-${state}`, {\n url: `/wave/SMExaminerReport${page}?${SMMWParams}`,\n template: ``,\n resolve: _.extend(\n setTitle(),\n loadModule(waveLandingSMMW),\n setWrapper('wrapper-landing-WAVE-SMMW'),\n trackVisit('Landing', {Name: `SMExaminerReport${page}`})\n )\n })\n });\n\n\n ['video-templates', 'my-templates'].forEach((state) => {\n $stateProvider.state(state, {\n url: `/wave/${state}/{folderPath:any}`,\n params: {\n folderPath: {\n value: null,\n raw: true,\n squash: true\n }\n },\n onEnter($state: ng.ui.IStateService, $window: ng.IWindowService) {\n // replace previous url\n $state.go(\n '.',\n {},\n {\n location: 'replace',\n reload: true,\n notify: false\n }\n );\n\n $window.open(`https://www.animatron${options.isProduction ? '' : '-test'}.com/wave/video-templates`, '_self');\n }\n })\n });\n\n ['affiliate-program', 'affiliate'].forEach((state) => {\n $stateProvider.state(state, {\n url: `/${state}?${SMMWParams}`,\n onEnter() {location.href = 'https://animatron.tapfiliate.com/publisher/signup/wave-affiliate-program'}\n })\n });\n\n ['powtoon', 'goanimate', 'googlewebdesigner'].forEach((product) => {\n const state = `studio-${product}-landing-comparison`;\n const url = `/studio/${product}-vs-animatron`;\n\n $stateProvider.state(state, {\n url: url,\n params: {product},\n template: ``,\n resolve: _.extend(\n loadModule(animatronComparisonBottom),\n setWrapper('wrapper-landing-comparison wrapper-landing-common'),\n setTitle())\n })\n });\n\n options.animatronProducts.forEach((product) => {\n const state = product.toLowerCase();\n\n ['profile', 'subscription', 'password', 'notification'].forEach(s => {\n const isSubscription = s === 'subscription';\n\n const subscriptionState: ng.ui.IState = {\n url: `/subscription/${subscriptionModalsParams}`,\n params: {\n modal: {\n value: null,\n squash: true\n }\n },\n template: '',\n resolve: _.extend(\n loadModule(animatronSubscriptionPage()),\n {\n cardDetails: /*@ngInject*/($ocLazyLoad: oc.ILazyLoad,\n $injector: ng.auto.IInjectorService,\n $q: ng.IQService) => {\n return animatronSubscriptionSvc()\n .then(m => $ocLazyLoad.load(m))\n .then(() => {\n const subscriptionSvc = $injector.get('subscriptionSvc');\n\n const readyLoadedData = subscriptionSvc.cardDetailsCashed\n || subscriptionSvc.cardDetailsErrorMessage;\n\n return readyLoadedData\n ? $q.resolve(readyLoadedData)\n : subscriptionSvc.getCardDetails()\n .catch(() => $q.resolve(true)); // needed for resolve it in any cases\n });\n }\n }\n )\n }\n ;\n\n const defaultState = {\n url: `/${s}`,\n template: `<${s}>`\n };\n\n $stateProvider.state(`${state}-settings.${s}`, _.extend(\n {noindex: true},\n isSubscription ? subscriptionState : defaultState\n ));\n });\n\n $stateProvider\n .state(`${state}-activate-email`, {\n noindex: true,\n url: `/${state}/activate-email/:hash`,\n onEnter($rootScope: ng.IRootScopeService,\n $state: ng.ui.IStateService,\n $stateParams: any,\n HttpSvc: HttpSvcFactory,\n AuthenticationSvc: AuthenticationSvc) {\n HttpSvc('profile/confirm-email')\n .securePost($stateParams.hash)\n .then(r => r.data)\n .then(res => {\n AuthenticationSvc\n .updateUser()\n .then(() => $state.go(`${state}-settings.profile`));\n\n if (Utils.isApiError(res)) {\n _.notification.showError(res.errorMessage);\n } else {\n _.notification.showSuccess($rootScope.t('profile.updated'));\n }\n });\n },\n resolve: _.extend(\n redirectForLogin(),\n setWrapper(`wrapper-${product}`)\n )\n })\n .state(`${state}-oauth-confirm`, {\n noindex: true,\n url: `/${state}/signup/oauth/confirm/:hash`,\n onEnter($rootScope: ng.IRootScopeService,\n $state: ng.ui.IStateService,\n $stateParams: any,\n HttpSvc: HttpSvcFactory,\n AuthenticationSvc: AuthenticationSvc) {\n HttpSvc('signup/oauth/confirm', $stateParams.hash)\n .post()\n .then(r => r.data)\n .then(res => {\n AuthenticationSvc\n .updateUser()\n .then(() => $state.go(`${state}-settings.profile`));\n\n if (Utils.isApiError(res)) {\n _.notification.showError(res.errorMessage);\n } else {\n _.notification.showSuccess($rootScope.t('profile.updated'));\n }\n });\n },\n resolve: _.extend(\n redirectForLogin(),\n setWrapper(`wrapper-${product}`)\n )\n })\n .state(`${state}-login`, {\n url: `/${state}/login/{redirectUrl:any}`,\n params: {\n redirectUrl: {\n value: null,\n raw: true,\n squash: true\n }\n },\n noindex: true,\n template: '',\n resolve: _.extend(\n setWrapper(`wrapper-${product} wrapper-long-head-login`),\n setTitle('login.title'),\n redirectResolve(() => !options.user.anonymous, (state === 'wave' ? 'wave/my-projects' : 'studio/explore'))\n )\n })\n .state(`${state}-recovery`, {\n url: `/${state}/recovery?email`,\n template: '',\n resolve: _.extend(\n loadModule(animatronRecovery),\n setWrapper(`wrapper-activate`),\n setTitle('recovery.request.title')\n )\n })\n .state(`${state}-recovery-reset`, {\n url: `/${state}/recovery/:hash`,\n template: '',\n resolve: _.extend(\n loadModule(animatronRecoveryReset),\n setWrapper(`wrapper-activate`),\n setTitle('recovery.reset.title')\n )\n })\n .state(`${state}-settings`, {\n url: `/${state}/settings`,\n noindex: true,\n controller: 'SettingsCtrl as settings',\n templateUrl: require('settings/settings.html'),\n resolve: _.extend(\n redirectForLogin(),\n loadModule(animatronSettings),\n setWrapper(`wrapper-settings`),\n setTitle()\n )\n })\n .state(`${state}-project`, {\n url: `/${state}/project/:projectId?staff&stopPlay`,\n params: {project: null, stopPlay: null},\n noindex: true,\n template: '',\n resolve: _.extend(\n setWrapper(`standalone-project `),\n setTitle(),\n loadModule(animatronProject)\n )\n })\n .state(`${state}-activate-oauth`, {\n url: `/${state}/activate-oauth?product`,\n noindex: true,\n template: '',\n resolve: _.extend(\n redirectResolve(() => !options.user.social),\n loadModule(animatronActivate),\n setWrapper(`wrapper-activate`),\n setTitle('activate.title')\n )\n })\n .state(`${state}-signup`, {\n url: `/${state}/signup?email&product&sendRequest`,\n templateUrl: require('signup/sign-up.html'),\n resolve: _.extend(\n loadModule(animatronSignup),\n setWrapper(`wrapper-long-head`),\n setTitle('signup.title')\n )\n })\n .state(`${state}-activate`, {\n url: `/${state}/activate/:hash`,\n noindex: true,\n template: '',\n resolve: _.extend(\n loadModule(animatronActivate),\n setWrapper(`wrapper-activate`),\n setTitle('activate.title')\n )\n });\n });\n\n ['detailed-views', 'views-count', 'summarized'].forEach(state => {\n $stateProvider.state(`project-analytics.${state}`, {\n url: `/${Strings.toCamelCase(state)}?period`,\n noindex: true,\n template: `<${state}-analytics-directive>`\n });\n });\n\n ['most-plays', 'recently-added', 'staff-picks', 'contest-submissions', 'my-projects'].forEach(state => {\n $stateProvider.state(`studio-explore.${state}`, {\n url: `/${state}?page&product`,\n noindex: state === 'my-projects',\n resolve: _.extend(setWrapper('wrapper-explore'))\n }\n );\n });\n\n const landingGenerator = (list: Array, kind: anm.LandingKind, ...resolveParams: Object[]) => {\n list.forEach(page => {\n $stateProvider.state(page.url, {\n url: '/' + page.url,\n controller(this: any) {this.data = Object.assign({}, page)},\n controllerAs: '$ctrl',\n template: `<${kind}-landing data=\"$ctrl.data\">`,\n resolve: _.extend(\n setTitle(page.title),\n setWrapper(`wrapper-landing-common wrapper-landing-${kind}`),\n ...resolveParams\n )\n });\n });\n };\n\n TemplateLandingPages.forEach((landing: anm.LandingData) => {\n const footerWrapper = landing.settings.footer ? `wrapper-footer-${landing.settings.footer}` : '';\n const hideHeader = landing.settings.isHeader ? '' : 'wrapper-hide-header';\n const landingWrapper = `tl-wrapper tl-wrapper-${_.last(landing.url.split('/'))}`;\n\n $stateProvider.state(landing.url, {\n // t=title, d=description, iv=introduce video\n url: `/${landing.url}?t&d&iv&loginRedirect&${SMMWParams}`,\n onEnter($location: ng.ILocationService,\n $stateParams: ng.ui.IStateParamsService,\n AuthenticationSvc: AuthenticationSvc) {\n const {utm_source, utm_medium, utm_campaign, loginRedirect} = $stateParams;\n\n const isSMMW = utm_source === 'SMExaminer'\n && utm_medium === 'IndustryReport'\n && utm_campaign === 'SMEad';\n\n const SMMWPage = SMMWPages[_.random(1)];\n if (isSMMW) {\n const url = `/wave/SMExaminerReport${SMMWPage}`;\n $location.path(url).replace();\n }\n\n if (loginRedirect) {\n AuthenticationSvc.toggleLoginModal(decodeURIComponent(loginRedirect));\n }\n },\n template: '',\n resolve: _.extend(\n setTitle(landing.title),\n setWrapper(`${hideHeader} ${footerWrapper} ${landingWrapper} wrapper-landing-WAVE`),\n loadModule(animatronLandingTemplate())\n )\n })\n });\n\n landingGenerator(LightLandings, 'light');\n landingGenerator(MediumLandings, 'medium', loadModule(animatronMediumLanding));\n })();\n }\n}\n\nangular.module('animatronApp.routes', ['ui.router'])\n .config(Routes);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/routes/routes.ts","import services from 'services/module';\n\nexport class LandingTemplateSvc {\n isLink: boolean;\n\n constructor(private $state: ng.ui.IStateService) {\n this.randomize();\n }\n\n getTrackInfo() {\n return {\n 'Landing Page': this.$state.current.name,\n 'Test Variant': this.isLink ? 'with-links' : 'without-links'\n };\n }\n\n private randomize() {\n const val = _.random(0, 1);\n this.isLink = !!val;\n }\n}\n\nservices.service('landingTemplateSvc', LandingTemplateSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/landingTemplateSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/section-feedback_4484ddc6138f0bbe74050e2749218a32.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-feedback.less\n// module id = QAC1\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-wave-landing-smmw_e52b22b7a76aee2c3980c7cb41881826.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/wave/m-wave-landing-smmw.less\n// module id = QHsv\n// module chunks = 151","var map = {\n\t\"./female/1.png\": \"LaVb\",\n\t\"./female/1.svg\": \"ClZ7\",\n\t\"./female/10.png\": \"4jE+\",\n\t\"./female/10.svg\": \"rrSb\",\n\t\"./female/11.png\": \"juL4\",\n\t\"./female/11.svg\": \"Zkh2\",\n\t\"./female/12.png\": \"x0FM\",\n\t\"./female/12.svg\": \"4zkA\",\n\t\"./female/13.png\": \"aRaM\",\n\t\"./female/13.svg\": \"Dc98\",\n\t\"./female/14.png\": \"z7A8\",\n\t\"./female/14.svg\": \"yCid\",\n\t\"./female/15.png\": \"sNLF\",\n\t\"./female/15.svg\": \"luA4\",\n\t\"./female/16.png\": \"OzWi\",\n\t\"./female/16.svg\": \"CFmk\",\n\t\"./female/17.png\": \"DuQD\",\n\t\"./female/17.svg\": \"SHV6\",\n\t\"./female/18.png\": \"LT8D\",\n\t\"./female/18.svg\": \"zpKr\",\n\t\"./female/19.png\": \"0eTi\",\n\t\"./female/19.svg\": \"Fa/p\",\n\t\"./female/2.png\": \"f37r\",\n\t\"./female/2.svg\": \"vlSI\",\n\t\"./female/20.png\": \"wuZI\",\n\t\"./female/20.svg\": \"+kS6\",\n\t\"./female/21.png\": \"F3zo\",\n\t\"./female/21.svg\": \"NNCM\",\n\t\"./female/3.png\": \"wpGM\",\n\t\"./female/3.svg\": \"DFGL\",\n\t\"./female/4.png\": \"rkOV\",\n\t\"./female/4.svg\": \"V5IG\",\n\t\"./female/5.png\": \"KxLd\",\n\t\"./female/5.svg\": \"FHxu\",\n\t\"./female/6.png\": \"JiAo\",\n\t\"./female/6.svg\": \"DDR7\",\n\t\"./female/7.png\": \"hflI\",\n\t\"./female/7.svg\": \"PAlv\",\n\t\"./female/8.png\": \"v+uJ\",\n\t\"./female/8.svg\": \"9+MG\",\n\t\"./female/9.png\": \"w2og\",\n\t\"./female/9.svg\": \"uaFb\",\n\t\"./male/1.png\": \"l8ep\",\n\t\"./male/1.svg\": \"xD0M\",\n\t\"./male/10.png\": \"NnQa\",\n\t\"./male/10.svg\": \"Nzyx\",\n\t\"./male/11.png\": \"D9F/\",\n\t\"./male/11.svg\": \"5l58\",\n\t\"./male/12.png\": \"wX/j\",\n\t\"./male/12.svg\": \"V3H0\",\n\t\"./male/13.png\": \"WHLm\",\n\t\"./male/13.svg\": \"XMqc\",\n\t\"./male/2.png\": \"Z9aV\",\n\t\"./male/2.svg\": \"T2uR\",\n\t\"./male/3.png\": \"hB9q\",\n\t\"./male/3.svg\": \"anIN\",\n\t\"./male/4.png\": \"brzu\",\n\t\"./male/4.svg\": \"bPu8\",\n\t\"./male/5.png\": \"fSNa\",\n\t\"./male/5.svg\": \"OdJD\",\n\t\"./male/6.png\": \"7UG8\",\n\t\"./male/6.svg\": \"390S\",\n\t\"./male/7.png\": \"ZawD\",\n\t\"./male/7.svg\": \"zJEW\",\n\t\"./male/8.png\": \"mQW2\",\n\t\"./male/8.svg\": \"2wJH\",\n\t\"./male/9.png\": \"ifp+\",\n\t\"./male/9.svg\": \"8IAX\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"QI9i\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars ^\\.\\/.*$\n// module id = QI9i\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/404-page_00018b1fcd830d897c03da2d6ff3d1cc.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/404-page.less\n// module id = QQt/\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/contact-us-section_53bd61f44895f5410f573fd9fcba95cb.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/contact-us-section.less\n// module id = QqRC\n// module chunks = 151","import {Strings} from 'Strings';\n\nexport class Utils {\n static calcTime(time: number) {\n const {floor, ceil} = Math;\n\n const hrs = floor(time / 3600);\n const mins = floor((time % 3600) / 60);\n const secs = ceil(time % 60);\n\n // return '1:01' or '4:03:59' or '123:03:59'\n let ret = '';\n\n if (hrs > 0) {\n ret += '' + hrs + ':' + (mins < 10 ? '0' : '');\n }\n\n ret += '' + mins + ':' + (secs < 10 ? '0' : '');\n ret += '' + secs;\n return ret;\n }\n\n static toHyphenCase(str: string): string {\n return str.replace(/([A-Z])/g, letter => {\n const letterLowerCase = letter.toLowerCase();\n return letterLowerCase.replace(letterLowerCase, '-' + letterLowerCase)\n });\n }\n\n static scopedEvent(eventName: string | string[],\n scope: ng.IScope,\n func: EventListenerOrEventListenerObject,\n element: EventTarget = window,\n useCapture = false): Function {\n const events: Array = Array.isArray(eventName) ? eventName : [eventName];\n const destroy = events.map(name => {\n element.addEventListener(name, func, useCapture);\n scope.$on('$destroy', () => element.removeEventListener(name, func));\n return () => element.removeEventListener(name, func);\n });\n return () => destroy.forEach(f => f());\n };\n\n static getBrowserName() {\n const browsers = ['Opera', 'Chrome', 'Safari', 'Firefox', 'MSIE', 'unknown'];\n const index = browsers.findIndex((browser => navigator.userAgent.includes(browser)));\n return browsers[index];\n }\n\n static oneTimeEvent(eventName: string | string[],\n scope: ng.IScope,\n func: EventListenerOrEventListenerObject,\n element: EventTarget = window): Function {\n let destroy: Function | null = null;\n const oneTime = _.once((...args: any[]) => {\n (func as any)(...args);\n destroy && destroy();\n });\n destroy = Utils.scopedEvent(eventName, scope, oneTime, element);\n return destroy;\n }\n\n static isApiError(a: any, code?: number, msg?: RegExp): a is ApiError {\n return !!a.errorCode &&\n a.errorCode >= 400 &&\n (!code || a.errorCode === code) &&\n (!msg || msg.test(a.errorMessage));\n }\n\n static getProduct(url = window.location.pathname, stateName?: string) {\n let currentProduct = '' as AnimatronProduct;\n\n options.animatronProducts.some(product => {\n const productL = product.toLowerCase();\n const isProduct = url.startsWith(`/${productL}`) ||\n (stateName && stateName.startsWith(`${productL}-`));\n\n currentProduct = isProduct ? product : 'ANY';\n\n return isProduct;\n });\n\n return currentProduct;\n }\n\n static getProductByState(state: ng.ui.IStateService) {\n const {url, name} = state.current;\n return Utils.getProduct(url as string, name);\n }\n\n static isUser(a: any): a is anm.User {\n return a.username && a.displayName;\n }\n\n static redirect(url: string,\n $location: ng.ILocationService,\n shouldReplace?: boolean) {\n if (!url) {\n throw new Error('Empty url was passed to redirect');\n }\n\n if (/^http(s?):\\/\\//.test(url)) {\n location.href = url;\n return;\n }\n\n const [path, hash] = url.split('#');\n const [state, paramsStr] = path.split('?');\n const newLoc = $location\n .url(state)\n .search(Strings.toParams(paramsStr));\n\n if (hash) {\n newLoc.hash(hash).replace();\n }\n\n if (!hash && shouldReplace) {\n newLoc.replace();\n }\n }\n\n static isSecureUser = (a: any): a is anm.SecureUser => a.encryptedToken && a.userProfile;\n\n static sequence = (array: Array, $ocLazyLoad: oc.ILazyLoad): Promise =>\n array.reduce((acc, val) => acc.then(() => $ocLazyLoad.load(val)), Promise.resolve());\n\n static toParams = (obj: any) => Object.keys(obj).map(k => `${k}=${obj[k]}`).join('&');\n\n static matchesSelector = (element: HTMLElement, selector: string) => {\n const ElementPrototype = Element.prototype;\n const fn = ElementPrototype.matches ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector;\n return fn.call(element, selector);\n };\n\n static rAF = (function () {\n let lastTime = 0;\n const vendors = ['ms', 'moz', 'webkit', 'o'];\n for (let x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame']\n || window[vendors[x] + 'CancelRequestAnimationFrame'];\n }\n\n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = (callback: FrameRequestCallback) => {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n const id = window.setTimeout(() => callback(currTime + timeToCall), timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n\n if (!window.cancelAnimationFrame) window.cancelAnimationFrame = id => clearTimeout(id);\n return window.requestAnimationFrame.bind(window);\n }());\n\n // _.filterObj = (obj: any, pred: any) => _.object(Object.keys(obj).filter(k => pred(k, obj[k])).map(k => [k, obj[k]]));\n\n public static safe(f: () => T) {\n try { f() } catch (e) {}\n }\n\n public static waitFor(check: () => void, cb: () => void) {\n if (check()) {\n cb();\n } else {\n setTimeout(() => Utils.waitFor(check, cb), 100);\n }\n }\n\n public static getMonthDaysCount() {\n const current = new Date();\n const d = new Date(current.getFullYear(), current.getMonth() + 1, 0);\n return d.getDate();\n }\n\n static curry(f: Function) {\n return function (...x: any[]) {\n return f.length <= 1 ? f(...x) : f = f.bind(null, ...x);\n };\n }\n\n static createElement(\n name: K,\n classes?: string[],\n child?: HTMLElement\n ): HTMLElementTagNameMap[K] {\n const el = document.createElement(name);\n if (classes) classes.forEach(className => el.classList.add(className));\n if (child) el.appendChild(child);\n\n return el;\n }\n}\n\n_.mixin(Utils);\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/underscore-extensions.ts","module.exports = __webpack_public_path__ + \"stylesheets/contest-landing_cccc5c3058af40740fdd22e056699422.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/contest-landing.less\n// module id = R8gk\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/template-pages-list_9fe1e728eb72618ba274b6ab4804ca0c.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/template-pages-list.less\n// module id = R8wy\n// module chunks = 151","/**\n * To add new page, create new json object with the same structure as the ones below.\n * Most values should be key references to i18n files. So translations should also be written in app/assets/i18n/m_*.properties files\n * It is essential that all properties are present and have correct names.\n * Images are stored in app/assets/images/landing/light folder, but here should only be filename.\n */\nexport default ([\n {\n url: 'studio/online-video-maker',\n title: 'light.videomaker.title',\n h1: 'light.videomaker.h1',\n h2: 'light.videomaker.h2',\n playerUrl: 'https://publish.animatron.io/578e8efb8951d5959bda7752.json',\n width: 1920,\n height: 1080,\n preview: 'video-maker.png',\n alt: 'light.videomaker.alt1',\n editor: 'https://editor.animatron.com',\n button: 'light.videomaker.button',\n descriptionTitle: 'light.videomaker.description.title',\n description: 'light.videomaker.description',\n link: '/tags/Video?super=true',\n linkName: 'light.videomaker.name'\n },\n {\n url: 'studio/online-card-maker',\n title: 'light.card.title',\n h1: 'light.card.h1',\n h2: 'light.card.h2',\n playerUrl: 'https://publish.animatron.io/578e93857cb4bf921554b8d7.json',\n width: 400,\n height: 360,\n preview: 'card-maker.png',\n alt: 'explainer.help4.alt4',\n editor: 'https://editor.animatron.com',\n button: 'light.card.button',\n descriptionTitle: 'light.card.description.title',\n description: 'light.card.description',\n link: 'tags/Animated%20card?super=true',\n linkName: 'light.card.name'\n },\n {\n url: 'studio/creativity-in-classroom',\n title: 'light.creativity.title',\n h1: 'light.creativity.h1',\n h2: 'light.creativity.h2',\n playerUrl: 'https://publish.animatron.io/578e96eeaa3269e89ae552bd.json',\n width: 640,\n height: 360,\n preview: 'creativity.png',\n alt: 'explainer.help5.alt5',\n editor: 'https://editor.animatron.com',\n button: 'light.creativity.button',\n descriptionTitle: 'light.creativity.description.title',\n description: 'light.creativity.description',\n link: '/tags/edu?super=true',\n linkName: 'light.creativity.name'\n }\n] as Array);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/LightLandingPages.ts","import directives from './module';\nimport {Utils} from 'underscore-extensions';\n\nclass FooterCtrl {\n isLangMenuHide = (\"ontouchstart\" in document.documentElement);\n product: AnimatronProduct;\n affUrl = `https://animatron${options.isProduction ? '':'test'}.tapfiliate.com/`;\n socials: SocialLink[] = [\n {\n href: 'github',\n className: 'gh'\n },\n {\n href: 'twitter',\n className: 'tw'\n },\n {\n href: 'facebook',\n className: 'fb'\n },\n {\n href: 'youtube',\n className: 'yt'\n },\n {\n href: 'instagram',\n className: 'inst'\n }\n ];\n private followStates = ['studio-followers', 'studio-following'];\n\n constructor(private $rootScope: ng.IRootScopeService,\n private $element: ng.IAugmentedJQuery,\n private $state: ng.ui.IStateService) {\n const footer = $element[0];\n const windowHeight = window.innerHeight;\n window.addEventListener('scroll', _.throttle(() => Utils.rAF(() => {\n const scrollTopDocument = window.scrollY || window.pageYOffset;\n const action = scrollTopDocument > (windowHeight * 3) ? 'add' : 'remove';\n footer.classList[action]('fixed');\n }), 250));\n\n this.$rootScope.$on('$stateChangeStart', () => footer.classList.remove('shown'));\n this.$rootScope.$on('$stateChangeSuccess', () =>\n this.product = Utils.getProductByState(this.$state));\n this.$rootScope.$on('$projects:shownAll', () => footer.classList.add('shown'));\n this.$rootScope.$on('$following:loaded', () =>\n this.followStates.includes(this.$state.current.name) && footer.classList.add('shown')\n );\n }\n}\ndirectives.component('anmFooter', {\n controller: FooterCtrl,\n templateUrl: require('footer.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/Footer.ts","import services from 'services/module';\nimport {animatronProject} from '../lazy_modules';\nimport SpinnerSvc from 'services/SpinnerSvc';\nimport {Utils} from '../underscore-extensions';\n\nexport class ProjectModalSvc {\n projectModalShown: boolean;\n\n private prevState: ng.ui.IState;\n private prevParams: ng.ui.IStateParamsService;\n\n constructor(private $rootScope: ng.IRootScopeService,\n private $state: ng.ui.IStateService,\n private $timeout: ng.ITimeoutService,\n private $ocLazyLoad: oc.ILazyLoad) {\n this.prevState = $state.current;\n this.prevParams = $state.params;\n\n if (this.projectModalShown !== true) {\n this.projectModalShown = false;\n }\n\n $rootScope.$on('$stateChangeStart', (e, toState, toParams) => {\n console.log(toState.url, toParams.url, $state.is('studio-project') && $state.is('wave-project'), this.projectModalShown);\n if (($state.is('studio-project') || $state.is('wave-project')) && this.projectModalShown) {\n e.preventDefault();\n this.modalHide();\n if (_.isEqual(toParams, this.prevParams) && toState.name === this.prevState.name) { // in case we go to some url from modal\n this.changeUrl(toState.name, toParams, true).then(() => {\n SpinnerSvc.hide();\n });\n } else {\n $timeout(() => $state.transitionTo(toState.name, toParams));\n }\n }\n });\n }\n\n onModalClose() {\n window.history.back(); //It will call $stateChangeStart\n }\n\n modalHide() {\n this.projectModalShown = false;\n }\n\n modalShow(project: anm.Project) {\n SpinnerSvc.show();\n this.$ocLazyLoad.load(animatronProject).then(() => {\n const product = Utils.getProductByState(this.$state).toLowerCase();\n const params: anm.ProjectModalStateParams = {projectId: project.id, project};\n\n if (product === 'wave') {\n params.stopPlay = true;\n }\n\n const state = [`${product}-project`, params];\n if (options.handHeld) {\n (this.$state.go)(...state);\n } else {\n this.prevState = this.$state.current;\n this.prevParams = this.$state.params;\n delete this.prevParams['#'];\n this.projectModalShown = true;\n (this.changeUrl)(...state);\n }\n });\n };\n\n toggleProjectModal(project: anm.Project, $event: MouseEvent) {\n if (!$event.metaKey && !$event.ctrlKey) {\n $event.preventDefault();\n $event.stopPropagation();\n if (this.projectModalShown) {\n this.modalHide();\n } else {\n this.modalShow(project);\n }\n }\n };\n\n private changeUrl(state: string, params: any, replace = false) {\n const opts = {\n notify: false,\n location: (replace ? 'replace' : true)\n };\n return this.$state.transitionTo(state, params, opts);\n }\n\n}\n\nservices.service('ProjectModalSvc', ProjectModalSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/ProjectModalSvc.ts","var path = 'https://assets.animatron.com/html/modal-template.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/modal-template.html","module.exports = __webpack_public_path__ + \"stylesheets/political-landing_13ec297054b85d789fa082bb6c9a03ff.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/political-landing.less\n// module id = Rpkd\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/contest-text-video-section_bbd71e3eebf6622ceaf597a366fa01aa.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/contest-text-video-section.less\n// module id = RySD\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-header_461b585e47d1004883226d2700482574.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/m-header.less\n// module id = S6Z6\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-landing-banner_5e15667ed5ffc1fee009f8f765bf0a67.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/m-landing-banner.less\n// module id = SDKh\n// module chunks = 151","import services from 'services/module';\n\nexport class LocalStorageSvc {\n isSupported = false;\n storage: Storage;\n\n constructor(private $window: Window,\n private $log: ng.ILogService) {\n\n try {\n let supported: boolean = $window && $window.localStorage !== null;\n const key = '__' + Math.round(Math.random() * 1e7);\n if (supported) {\n this.storage = $window.localStorage;\n this.storage.setItem(key, 'value');\n supported = this.storage.getItem(key) === 'value';\n this.storage.removeItem(key);\n }\n this.isSupported = supported;\n } catch (e) {\n $log.warn('LocalStorage is disabled');\n this.isSupported = false;\n }\n }\n\n set(key: string, value: T): void {\n if (this.isSupported) {\n this.storage.setItem(key, JSON.stringify(value));\n } else {\n this.$log.debug('Cannot set ' + key + ' to localStorage');\n }\n };\n\n get(key: string): T | null {\n const onError = (): null => {\n this.$log.debug('Cannot get ' + key + ' from localStorage');\n return null;\n };\n if (this.isSupported) {\n return this.safeOperation(() =>\n JSON.parse(this.storage.getItem(key)), onError);\n } else {\n return onError();\n }\n };\n\n remove(key: string): T | null {\n if (this.isSupported) {\n const value = this.get(key);\n this.storage.removeItem(key);\n return value;\n } else {\n this.$log.debug('Cannot remove ' + key + ' from localStorage');\n return null;\n }\n };\n\n private safeOperation(unsafeFunc: () => T, onError: () => null): T | null {\n try {\n return unsafeFunc();\n } catch (e) {\n return onError();\n }\n };\n}\n\nservices.service('LocalStorageSvc', LocalStorageSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/LocalStorageSvc.ts","module.exports = __webpack_public_path__ + \"images/avatars/female/17.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/17.svg\n// module id = SHV6\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/win-prizes-section_3f8c5ebc1c4528773e263450dc5bff31.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/win-prizes-section.less\n// module id = SW67\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/light/video-maker.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/light/video-maker.png\n// module id = SXt6\n// module chunks = 151","import {NewsSvc} from '../services/NewsSvc';\nimport directives from './module';\n\nclass News {\n delayShowNews = 1e+1;\n stopRepeatNews: ng.IPromise;\n newsList: Array = [];\n currentNewsItem: any;\n\n\n constructor(private $scope: ng.IScope,\n private $sce: ng.ISCEService,\n private $interval: ng.IIntervalService,\n private $element: ng.IAugmentedJQuery,\n private NewsSvc: NewsSvc) {\n\n $scope.$watch(() => NewsSvc.newsList, (list: Array) => {\n if (!list) return;\n this.newsList = list;\n this.setCurrentNews();\n const appliedClassName = 'applied';\n if (this.newsList.length) {\n setTimeout(() => this.$element[0].classList.add(appliedClassName), this.delayShowNews);\n } else {\n this.$element[0].classList.remove(appliedClassName);\n }\n });\n $scope.$on('$destroy', () => $interval.cancel(this.stopRepeatNews));\n }\n\n get currentNews() {\n return this.$sce.trustAsHtml(this.currentNewsItem.html);\n }\n\n setCurrentNews(index = this.NewsSvc.currentIndex) {\n this.currentNewsItem = this.newsList[index] || this.newsList[0];\n this.$interval.cancel(this.stopRepeatNews);\n this.stopRepeatNews = this.$interval(() => {\n this.NewsSvc.currentIndex = index = ++index >= this.newsList.length ? 0 : index;\n this.currentNewsItem = this.newsList[index];\n }, this.delayShowNews);\n }\n\n deleteNews() {\n this.NewsSvc.deleteNews(this.currentNewsItem.id);\n }\n\n}\n\ndirectives.component('news', {\n controller: News,\n controllerAs: 'NewsCtrl',\n templateUrl: require('news.html')\n});\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/newsDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/auth_15a606cbe5e8f3a674725fb147f4443d.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/auth.less\n// module id = Skyp\n// module chunks = 151","var path = 'https://assets.animatron.com/html/footer.html';\nvar html = \" \";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/footer.html","module.exports = __webpack_public_path__ + \"html/press-twitter-gallery_d37316aa6e4c02d2c0f1364e79240426.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/press-twitter-gallery.html\n// module id = SzCq\n// module chunks = 151","import directives from '../module';\nimport {Utils} from 'underscore-extensions';\nimport {ProjectPageCtrl} from './ProjectPage';\n\nconst shareSocialSvc = {show: false};\n\nconst networks: {[index: string]: string} = {\n facebook: `https://www.facebook.com/sharer/sharer.php?s=100&p[url]={{::$ctrl.url}}`,\n twitter: `https://twitter.com/intent/tweet?url={{::$ctrl.url}}`,\n 'google+': `https://plus.google.com/share?url={{::$ctrl.url}}`,\n tumblr: `https://www.tumblr.com/share/photo?source={{$ctrl.preview}}&caption={{::$ctrl.info}}&click_thru={{::$ctrl.url}}`,\n email: `mailto:?subject={{$ctrl.ProjectPageCtrl.project.name}}%20by%20{{$ctrl.ProjectPageCtrl.project.author.displayName}}&body={{$ctrl.url}}`\n};\n\ndirectives.component('shareSocialButton', {\n controller: class ShareSocialButton implements ng.IComponentController {\n private readonly ProjectPageCtrl: ProjectPageCtrl;\n public readonly shareSocialSvc = shareSocialSvc;\n\n onClick() {\n shareSocialSvc.show = !shareSocialSvc.show;\n if (shareSocialSvc.show && this.ProjectPageCtrl.player) {\n this.ProjectPageCtrl.player.then(p => p && p.pause());\n }\n };\n },\n require: {ProjectPageCtrl: '^projectPage'},\n template: `\n \n {{::$root.t('share')}}\n `\n});\n\ndirectives.component('shareSocialWindow', {\n controller: class ShareSocialWindow implements ng.IComponentController {\n private readonly ProjectPageCtrl: ProjectPageCtrl;\n public readonly shareSocialSvc = shareSocialSvc;\n public url: string;\n public preview: string;\n public info: string;\n\n constructor(private $scope: ng.IScope,\n private $timeout: ng.ITimeoutService,\n private $location: ng.ILocationService,\n private $element: ng.IAugmentedJQuery) {\n }\n\n $onInit = () => this.ProjectPageCtrl.projectPromise.then(prj => {\n if (this.ProjectPageCtrl.twoPlayers) return;\n this.url = encodeURIComponent(this.$location.absUrl());\n this.preview = encodeURIComponent(prj.preview_metadata[0]);\n this.info = encodeURIComponent(prj.name + '\\n' + prj.description + '\\nby ' + prj.author.displayName);\n const destroy = this.$scope.$watch(() => this.ProjectPageCtrl.player, (player: ng.IPromise) => {\n if (player && player.then) {\n destroy();\n player.then(p => {\n if (!p) return;\n const showOnPause = _.once(() => {\n p.on(anm.C.S_PAUSE, () => this.$timeout(() => shareSocialSvc.show = true));\n });\n\n let repeats = 0;\n if (window.anm) {\n p.on(anm.C.S_COMPLETE, () => {\n repeats += 1;\n if (!p.repeat && !p.repeating && !p.anim.repeat) {\n this.$timeout(() => shareSocialSvc.show = true);\n } else if (repeats >= 1) {\n showOnPause();\n }\n });\n p.on(anm.C.S_PLAY, () => this.$timeout(() => shareSocialSvc.show = false));\n }\n\n Utils.scopedEvent('click', this.$scope, (e: MouseEvent) => {\n const target = e.target;\n if (shareSocialSvc.show && !target.classList.contains('share')) {\n p.play();\n }\n return e;\n }, this.$element[0]);\n });\n\n }\n });\n this.$scope.$on('$destroy', () => shareSocialSvc.show = false);\n });\n },\n require: {ProjectPageCtrl: '^projectPage'},\n template() {\n const items = _.map(networks, (href: string, network: string) =>\n `\n
\n
`\n ).join('');\n return `\n
\n
{{::$root.t('project.share')}}
\n
${items}
\n
`;\n }\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/project/ShareSocial.ts","module.exports = __webpack_public_path__ + \"images/avatars/male/2.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/2.svg\n// module id = T2uR\n// module chunks = 151","import directives from './module';\nimport {PlayerSvc} from '../services/PlayerSvc';\nimport {Utils} from '../underscore-extensions';\nimport {RescaleSvc} from '../services/RescaleSvc';\n\nexport class ModalVideoComponent {\n youtubeUrl: string | undefined;\n wistiaUrl: string | undefined;\n player: ng.IPromise | undefined;\n previewUrl: string;\n alt: string;\n youtubeId: string;\n wistiaId: string;\n playerUrl: string;\n playerWidth: number;\n playerHeight: number;\n onModalShown: Function = this.onModalShown || angular.noop;\n canModalShow: boolean;\n hideBorder: boolean;\n private isModalShown: boolean;\n\n constructor(private $element: ng.IAugmentedJQuery,\n private $sce: ng.ISCEService,\n private $timeout: ng.ITimeoutService,\n private Player: PlayerSvc) {\n }\n\n $onChanges() {\n this.modalShown = this.canModalShow;\n }\n\n $onInit() {\n if (this.youtubeId) {\n this.youtubeUrl = this.$sce.trustAsResourceUrl(`https://www.youtube.com/embed/${this.youtubeId}?autoplay=1`);\n } else if (this.wistiaId) {\n this.wistiaUrl = this.$sce.trustAsResourceUrl(`https://animatron.wistia.com/embed/iframe/${this.wistiaId}?videoFoam=true`);\n }\n }\n\n $onDestroy() {\n this.Player.resetPlayer(this.player);\n }\n\n set modalShown(shown: boolean) {\n this.isModalShown = shown;\n this.onModalShown({isModalShown: shown});\n\n if (shown && !this.youtubeId &&!this.wistiaId && this.playerUrl) {\n this.$timeout(() => Utils.rAF(() => {\n const maxWidth = (window.innerWidth / 2);\n const maxHeight = (window.innerHeight / 1.4515503875968991);\n const {width, height} = RescaleSvc.resizeWithAspectRatio(\n this.playerWidth, this.playerHeight, maxWidth, maxHeight, true, true\n );\n\n const el = this.$element[0].querySelector('.ng-modal-dialog-content');\n Object.assign(el.style, {\n width: `${width}px`,\n height: `${height}px`\n });\n\n this.player = this.Player.createPlayer(\n this.playerUrl,\n 'player',\n {\n width,\n height,\n repeat: false,\n autoPlay: true,\n controlsEnabled: true\n },\n () => this.$element[0].querySelector('#player').style.background = ''\n );\n }));\n } else if (!shown && this.player) {\n this.$onDestroy();\n }\n }\n\n get modalShown() {\n return this.isModalShown;\n }\n}\n\ndirectives.component('modalVideo', {\n bindings: {\n previewUrl: '= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/tslib/tslib.es6.js\n// module id = TToO\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/discount-dialog_5b1a945f0cc8011e81e2cc1c706e41dd.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/discount-dialog.less\n// module id = TnCe\n// module chunks = 151","var map = {\n\t\"./en.json\": \"aY29\",\n\t\"./es.json\": \"+lAx\",\n\t\"./ko.json\": \"a8i3\",\n\t\"./ru.json\": \"2MCb\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"U56v\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/i18n ^\\.\\/.*\\.json$\n// module id = U56v\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/subscription-messages_fdc9a72ec85f6b45392f1c6eb2617d8c.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/messages/subscription-messages.less\n// module id = UAPN\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/settings_c9c127e77be01124d624a1776c596de6.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/settings/settings.html\n// module id = UTMY\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/library_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/library.less\n// module id = UVgn\n// module chunks = 151","import directives from './module';\n\ndirectives.directive('toggleProjectModal', $compile => {\n return {\n restrict: 'A',\n terminal: true,\n priority: 1000,\n scope: false,\n link(scope: any, element: ng.IAugmentedJQuery) {\n if (!scope.project) scope.project = scope.$ctrl.project;\n\n element.attr('ng-href', '/project/{{::project.id}}');\n element.attr('ng-click', '$root.projectModalSvc.toggleProjectModal(project, $event)');\n\n element.removeAttr('toggle-project-modal');\n\n $compile(element)(scope);\n }\n };\n }\n);\n\ndirectives.directive('projectModalLink', () => {\n return {\n scope: false,\n restrict: 'E',\n template: `\n {{::(project.name || $ctrl.project.name)}}\n `\n };\n }\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/toggleProjectModalDirective.ts","/* ng-infinite-scroll - v1.1.2 - 2014-05-21 */\nvar mod;\n\nmod = angular.module('infinite-scroll', []);\n\nmod.value('THROTTLE_MILLISECONDS', null);\n\nmod.directive('infiniteScroll', [\n '$rootScope', '$window', '$timeout', 'THROTTLE_MILLISECONDS', function ($rootScope, $window, $timeout, THROTTLE_MILLISECONDS) {\n return {\n scope: {\n infiniteScroll: '&',\n infiniteScrollContainer: '=',\n infiniteScrollDistance: '=',\n infiniteScrollDisabled: '=',\n infiniteScrollUseDocumentBottom: '='\n },\n link: function (scope, elem, attrs) {\n var changeContainer, checkWhenEnabled, container, handleInfiniteScrollContainer, handleInfiniteScrollDisabled, handleInfiniteScrollDistance, handleInfiniteScrollUseDocumentBottom, handler, immediateCheck, scrollDistance, scrollEnabled, increment, useDocumentBottom;\n $window = angular.element($window);\n scrollDistance = null;\n scrollEnabled = null;\n checkWhenEnabled = null;\n container = null;\n immediateCheck = true;\n useDocumentBottom = false;\n var originalHandler;\n handler = function () {\n var containerBottom, elementBottom, remaining, shouldScroll, containerHeight;\n containerHeight = window.innerHeight;\n containerBottom = containerHeight + (window.scrollY || window.pageYOffset);\n elementBottom = elem[0].offsetTop + elem[0].offsetHeight;\n\n remaining = elementBottom - containerBottom;\n increment = elementBottom < 1200 ? 1300 : 500;\n shouldScroll = remaining <= containerHeight + increment;\n if (shouldScroll) {\n checkWhenEnabled = true;\n if (scrollEnabled) {\n if (scope.$$phase || $rootScope.$$phase) {\n scope.infiniteScroll();\n } else {\n scope.$apply(scope.infiniteScroll);\n }\n angular.element(window).triggerHandler('scroll');\n }\n } else {\n return checkWhenEnabled = false;\n }\n };\n if (THROTTLE_MILLISECONDS != null) {\n originalHandler = handler;\n handler = _.throttle(handler, THROTTLE_MILLISECONDS);\n }\n scope.$on('$destroy', function () {\n return container.off('scroll', handler);\n });\n handleInfiniteScrollDistance = function (v) {\n return scrollDistance = parseInt(v, 10) || 0;\n };\n scope.$watch('infiniteScrollDistance', handleInfiniteScrollDistance);\n handleInfiniteScrollDistance(scope.infiniteScrollDistance);\n handleInfiniteScrollDisabled = function (v) {\n scrollEnabled = !v;\n if (scrollEnabled && checkWhenEnabled) {\n checkWhenEnabled = false;\n return handler();\n }\n };\n scope.$watch('infiniteScrollDisabled', handleInfiniteScrollDisabled);\n handleInfiniteScrollDisabled(scope.infiniteScrollDisabled);\n handleInfiniteScrollUseDocumentBottom = function (v) {\n return useDocumentBottom = v;\n };\n scope.$watch('infiniteScrollUseDocumentBottom', handleInfiniteScrollUseDocumentBottom);\n handleInfiniteScrollUseDocumentBottom(scope.infiniteScrollUseDocumentBottom);\n changeContainer = function (newContainer) {\n if (container != null) {\n container.off('scroll', handler);\n }\n container = typeof newContainer.last === 'function' && newContainer !== $window ? newContainer.last() : newContainer;\n if (newContainer != null) {\n return container.on('scroll', handler);\n }\n };\n changeContainer($window);\n handleInfiniteScrollContainer = function (newContainer) {\n if ((!(newContainer != null)) || newContainer.length === 0) {\n return;\n }\n newContainer = angular.element(newContainer);\n if (newContainer != null) {\n return changeContainer(newContainer);\n } else {\n throw new Error(\"invalid infinite-scroll-container attribute.\");\n }\n };\n scope.$watch('infiniteScrollContainer', handleInfiniteScrollContainer);\n handleInfiniteScrollContainer(scope.infiniteScrollContainer || []);\n if (attrs.infiniteScrollParent != null) {\n changeContainer(angular.element(elem.parent()));\n }\n if (attrs.infiniteScrollImmediateCheck != null) {\n immediateCheck = scope.$eval(attrs.infiniteScrollImmediateCheck);\n }\n return $timeout((function () {\n if (immediateCheck) {\n return originalHandler();\n }\n }), 0);\n }\n };\n }\n]);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./public/javascripts/ng-infinite-scroll.js\n// module id = Us82\n// module chunks = 151","var map = {\n\t\"./1.svg\": \"xD0M\",\n\t\"./10.svg\": \"Nzyx\",\n\t\"./11.svg\": \"5l58\",\n\t\"./12.svg\": \"V3H0\",\n\t\"./13.svg\": \"XMqc\",\n\t\"./2.svg\": \"T2uR\",\n\t\"./3.svg\": \"anIN\",\n\t\"./4.svg\": \"bPu8\",\n\t\"./5.svg\": \"OdJD\",\n\t\"./6.svg\": \"390S\",\n\t\"./7.svg\": \"zJEW\",\n\t\"./8.svg\": \"2wJH\",\n\t\"./9.svg\": \"8IAX\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"V16h\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male ^\\.\\/.*\\.svg$\n// module id = V16h\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/12.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/12.svg\n// module id = V3H0\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/4.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/4.svg\n// module id = V5IG\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/video-folder-item_1db62b69511ae5803aa0533267a60f18.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/folder/video-folder-item.less\n// module id = Vc67\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/13.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/13.png\n// module id = WHLm\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/double-circle-progress_d7d55eb0ce0d675df20ccd009671ab1e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/double-circle-progress.less\n// module id = WgFx\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/week4_be107073bc11a3eda14ce6557a397430.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/education/week4.html\n// module id = Wmao\n// module chunks = 151","import {ObjectId} from './ObjectId';\nimport {AnimatronProjects, PROJECT_ADD} from './AnimatronProjectsSvc';\n\nexport interface Wrapped {\n id: string;\n project?: anm.Project;\n ad?: boolean;\n videoUrl?: string;\n href?: string;\n width: number;\n height: number;\n}\ninterface Banners {\n href: string;\n videoUrls: string[];\n}\n\nexport class AdSvc {\n private static UpgradeBanners: Banners = {\n href: '/settings/subscription',\n videoUrls: [\n 'https://videos.animatron.com/banners/upgrade',\n 'https://videos.animatron.com/banners/upgrade_screens'\n ]\n };\n private static SignupBanners: Banners = {\n href: '/signup',\n videoUrls: [\n 'https://videos.animatron.com/banners/join_the_magic_banner',\n 'https://videos.animatron.com/banners/as_easy_as_that'\n ]\n };\n\n public results: Array = [];\n private banners: Banners = AdSvc.chooseBanners();\n private currentIdx = this.banners && _.random(this.banners.videoUrls.length - 1);\n private currentPage = 0;\n private static width: number;\n\n constructor(private enabled = true,\n private $rootScope: ng.IRootScopeService,\n private ProjectInfoHeight = 124) {\n this.$rootScope.$on('project:remove', (e, pid) => this.results = this.results.filter(p => p.id !== pid));\n this.$rootScope.$on(PROJECT_ADD, (e, {project}) => this.results.unshift(this.wrapProject(project)));\n\n }\n\n adify(page: Array): void {\n const newRes: Array = page.map(project => this.wrapProject(project));\n this.insertBanner(newRes);\n this.results = _.unique(this.results.concat(newRes), false, item => item.id);\n }\n\n private wrapProject(project: anm.Project) {\n return {\n id: project.id,\n project,\n width: AdSvc.getWidth(),\n height: project.computedHeight + this.ProjectInfoHeight\n }\n }\n\n private getBanner(): string {\n return this.banners && this.banners.videoUrls[this.currentIdx++ % this.banners.videoUrls.length];\n }\n\n private insertBanner(projects: Array): void {\n if (!this.enabled || this.currentPage++ % 2 !== 0) return;\n const banner = this.getBanner();\n if (banner) {\n const ad: Wrapped = {\n id: 'ad-' + ObjectId.get(),\n ad: true,\n videoUrl: banner,\n href: this.banners.href,\n width: AdSvc.getWidth(),\n height: (AdSvc.getWidth() / 290 * 242)\n };\n const position = _.random(projects.length - 1);\n projects.splice(position, 0, ad);\n }\n }\n\n private static getWidth() {\n if (!AdSvc.width) {\n AdSvc.width = options.handHeld ? AdSvc.mobileWidth() : AnimatronProjects.computedWidth;\n }\n return AdSvc.width;\n }\n\n private static chooseBanners() {\n switch (options.user.subscriptionDetails.studio.displayName.toLowerCase()) {\n case 'guest':\n return AdSvc.SignupBanners;\n case 'free':\n case 'starter':\n return AdSvc.UpgradeBanners;\n default:\n return null;\n }\n }\n\n private static mobileWidth() {\n const projects = document.querySelector('.projects');\n return projects.offsetWidth || AnimatronProjects.computedWidth;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/AdSvc.ts","module.exports = __webpack_public_path__ + \"html/week7_033b0421ff8c67019dd86e0ea4fe2bfd.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/education/week7.html\n// module id = XKv6\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/13.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/13.svg\n// module id = XMqc\n// module chunks = 151","import directives from '../module';\nimport {animatronUpgrade, animatronPublish, animatronHtml5Offline, animatronProjectPreviewPicker} from 'lazy_modules';\nimport {BackendSvc} from '../../services/BackendSvc';\nimport {AuthenticationSvc} from '../../services/AuthenticationSvc';\nimport {TagsSvc} from '../../services/TagsSvc';\nimport {Utils} from 'underscore-extensions';\nimport {ProjectModalSvc} from '../../services/ProjectModalSvc';\nimport {HttpProjectSvc} from '../../services/HttpProjectSvc';\nimport {TranslateSvc} from '../../services/TranslateSvc';\n\n//import {AdminSvc} from '../../services/AdminSvc';\n\nexport interface ProjectPageParams extends ng.ui.IStateParamsService {\n project: anm.Project | undefined;\n projectId: string;\n staff?: string;\n}\n\nexport class ProjectPageCtrl {\n animatronPublish = animatronPublish;\n animatronProjectPreviewPicker = animatronProjectPreviewPicker;\n animatronUpgrade = animatronUpgrade;\n animatronHtml5Offline = animatronHtml5Offline;\n\n projectDeferred: ng.IDeferred = this.$q.defer();\n projectPromise: ng.IPromise = this.projectDeferred.promise;\n projectSizes: Array;\n sizes: { projectSize: number };\n /** created in projectPageCanvasDirective */\n player: ng.IPromise = this.$q.resolve(null);\n toggleFullscreen: Function;\n project: anm.Project;\n editTagsMode = false;\n\n twoPlayers = this.$location.search().twoPlayers;\n\n constructor(public $scope: any,\n private $rootScope: ng.IRootScopeService,\n private $timeout: ng.ITimeoutService,\n private $http: ng.IHttpService,\n private $stateParams: ProjectPageParams,\n private $state: ng.ui.IStateService,\n private $location: ng.ILocationService,\n private $filter: ng.IFilterService,\n private TranslateSvc: TranslateSvc,\n private TagsSvc: TagsSvc,\n private AdminSvc: any,\n private httpProjectSvc: HttpProjectSvc,\n private ProjectAugmenter: any,\n // private upgradeOneProjectSvc: UpgradeOneProjectSvc,\n private ProjectModalSvc: ProjectModalSvc,\n private BackendSvc: BackendSvc,\n private AuthenticationSvc: AuthenticationSvc,\n private $q: ng.IQService) {\n const destroy = $scope.$watch(() => this.$stateParams.projectId, (id: string) => {\n if (id) {\n this.init();\n destroy();\n }\n });\n }\n\n init() {\n this.$scope.projectExist = true;\n this.$scope.busy = true;\n this.$scope.staffUrl = this.$stateParams.staff;\n this.$scope.staffButtons = options.user.staff || this.$stateParams.staff;\n this.$scope.isProduction = options.isProduction;\n this.$scope.authSvc = this.AuthenticationSvc;\n this.$rootScope.$watch('user', user => this.$scope.user = user);\n\n const headers = {};\n if (options.user.hash.length > 0) {\n headers['Animatron-Security-Token'] = options.user.hash;\n }\n\n this.$scope.tagPattern = options.user.staff ? '^[!0-9a-zA-Z _\\'\"-]+$' : '^[0-9a-zA-Z가-힣 _\\'\"-]+$';\n\n const handleProject = (project: anm.Project) => {\n this.$scope.projectLoaded = true;\n this.$scope.busy = false;\n if (!project || Utils.isApiError(project)) {\n this.$scope.errorMsg = 'The requested project has not been found.';\n this.$rootScope.wrapperClass += ' wrapper-not-found';\n this.$scope.projectExist = false;\n this.projectDeferred.reject(project);\n document.head.querySelector('[name=robots]').content = 'noindex';\n document.head.querySelector('[name=prerender-status-code]').content = '404';\n return;\n }\n this.$rootScope.setTitle('project.title', project.name);\n this.ProjectAugmenter(project);\n this.project = this.$scope.project = project;\n this.projectDeferred.resolve(project);\n\n const rolez = options.user.subscriptionDetails.studio.features.rolez;\n this.$scope.canEditTags = project.isOwner || (rolez.Admin && rolez.Admin.canCreateSuperTags);\n if (this.$scope.canEditTags) {\n this.$scope.tagsSvc = this.TagsSvc;\n }\n\n const minWidth = 640;\n this.projectSizes = _.chain([320, 640, 720, 1080, 1650, 1920, 2048, project.width])\n .uniq()\n .sortBy()\n .value();\n this.sizes = {projectSize: this.$location.search().width || this.$location.search().w || Math.max(project.width, minWidth)};\n\n this.$scope.adminSvc = new this.AdminSvc(this.$scope.project);\n };\n\n const projId = this.$stateParams.projectId;\n const findProj = () => {\n if (options.project && options.project.id === projId) {\n return options.project;\n }\n return this.$stateParams.project; //nullable\n };\n const foundProject = findProj();\n if (foundProject) {\n this.$scope.$watch(() => this.project, (p: anm.Project) => _.extend(this.$stateParams.project, p), true);\n handleProject(foundProject);\n }\n if (!foundProject || !foundProject.author) {\n const url = options.apiDomain + '/project/' + projId;\n this.$http.get(url, {headers})\n .then(r => handleProject(r.data))\n .catch(handleProject);\n }\n\n this.$scope.showAddTagsBtn = () => this.$scope.canEditTags && !this.editTagsMode && _.isEmpty(this.$scope.project.tags);\n\n this.$scope.toggleEditMode = () => {\n this.$timeout(() => {\n if (this.$scope.canEditTags) {\n this.editTagsMode = !this.editTagsMode;\n setTimeout(() => {\n const tagsInput = document.querySelector('.tags input');\n if (this.editTagsMode && tagsInput) {\n tagsInput.focus();\n }\n }, 0);\n }\n });\n };\n\n this.$scope.removeProject = () => this.$timeout(() => {\n this.httpProjectSvc\n .removeProject(this.$scope.project.id)\n .then(() => {\n if (this.ProjectModalSvc.projectModalShown) {\n this.ProjectModalSvc.projectModalShown = false;\n } else {\n this.$state.go('home');\n }\n });\n });\n\n const updateRequest = (field: string, newVal: string) =>\n this.BackendSvc.getServerUrl(this.$scope.project).then(serverUrl => {\n const data = {[field]: newVal};\n const u = serverUrl + `/project/update/meta/${this.$scope.project.id}`;\n return this.$http.put(u, data, {headers});\n });\n\n const setupFieldWatch = (field: string, callback?: Function) => {\n this.$scope.$watch(`project.${field}`, (newVal?: string, old?: string) => {\n if (_.isUndefined(newVal)) return;\n const sanitized = this.$filter('stripTags')(newVal);\n if (newVal === old || sanitized === old || _.isUndefined(old)) return;\n updateRequest(field, sanitized);\n if (callback) callback(sanitized);\n });\n };\n\n setupFieldWatch('description');\n setupFieldWatch('name', (val?: string) => {\n const projSelector = document.getElementById(this.$scope.project.id);\n if (projSelector) {\n const nameSelector = angular.element(projSelector.querySelector('.project-name'));\n nameSelector.html(val);\n nameSelector.attr('title', val);\n }\n });\n\n this.$scope.duplicateProject = () => {\n this.$scope.adminSvc.duplicateProject()\n .then(() => _.notification.showSuccess(this.TranslateSvc.get('wave.video.copy.alert')))\n .catch(() => _.notification.showError(this.TranslateSvc.get('wave.video.copy.error')));\n };\n }\n\n // TODO refactor, shown is not used, passing foreign scope is a sign of a bad design\n // public upgradeShown = (foreignScope: any, shown: boolean) => {\n // foreignScope.upgrade = {\n // project: true,\n // currentPrice: 500,\n // monthPrice: 500,\n // yearPrice: 2000,\n // foreverPrice: 5000,\n // projectId: this.$scope.project.id\n // };\n // foreignScope.upgradeModal = {chosen: true};\n // };\n //\n // setUpgradeProject(project: anm.Project) {\n // this.upgradeOneProjectSvc.setUpgradeProject(project);\n // }\n\n restore() {\n this.$http.get(options.apiDomain + '/project/undelete/' + this.$scope.project.id, {headers: options.headers})\n .then(() => {\n _.notification.showSuccess(this.$rootScope.t('project.restore.success'));\n });\n }\n}\n\ndirectives.component('projectPage', {\n controllerAs: 'ProjectPageCtrl',\n controller: ProjectPageCtrl,\n templateUrl: require('project/project.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/project/ProjectPage.ts","module.exports = __webpack_public_path__ + \"stylesheets/subscription-credit-info_65a2b96ff0ce0b27464a8b568f35a763.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/subscription-credit-info.less\n// module id = Xo4n\n// module chunks = 151","import directives from './module';\n\nclass LightLanding implements ng.IComponentController {\n data: anm.YoutubeLightLanding | anm.PlayerLightLanding;\n previewUrl: string;\n\n $onInit() {\n this.previewUrl = require('../../images/landing/light/' + this.data.preview);\n }\n}\n\ndirectives.component('lightLanding', {\n bindings: {\n data: '<'\n },\n controller: LightLanding,\n templateUrl: require('landing/light/light-landing.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/LightLanding.ts","module.exports = __webpack_public_path__ + \"stylesheets/pagination_dd456ddf66f27a9f93bab28d06e78227.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/pagination.less\n// module id = Xy+x\n// module chunks = 151","import directives from './module';\n\ninterface SearchTextOnChangesObject extends ng.IOnChangesObject {\n searchText: ng.IChangesObject;\n searchElement: ng.IChangesObject;\n}\n\nclass SearchText implements ng.IComponentController {\n searchText: string;\n searchElement: string;\n\n private elements: NodeListOf;\n private hideClassName = 'ng-hide';\n\n constructor(private $element: ng.IAugmentedJQuery) {\n }\n\n $onChanges(onChangesObj: SearchTextOnChangesObject) {\n if (onChangesObj.searchText.isFirstChange()) return;\n const el = this.$element[0];\n this.searchText = this.searchText.toLocaleLowerCase();\n\n if (this.searchElement) {\n this.elements = el.querySelectorAll(this.searchElement);\n const isElements = !!_.filter(this.elements, (el: HTMLElement) => this.check(el)).length;\n this.hideEl(el, !isElements);\n } else {\n this.check(el);\n }\n }\n\n private check(el: HTMLElement): boolean {\n const text = el.innerText.toLocaleLowerCase();\n const matched = !this.searchText || text.includes(this.searchText);\n this.hideEl(el, !matched);\n return matched;\n }\n\n private hideEl(el: HTMLElement, isHide: boolean) {\n if (isHide) {\n el.classList.add(this.hideClassName);\n } else {\n el.classList.remove(this.hideClassName);\n }\n }\n}\n\ndirectives.directive('searchText', (): ng.IDirective => ({\n restrict: 'A',\n bindToController: {\n searchText: '<',\n searchElement: '@?'\n },\n controller: SearchText\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/SearchText.ts","import directives from './module';\nimport {SmoothScroll} from '../services/SmoothScroll';\n\ndirectives.directive('scrollTo', () =>\n (scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: {scrollTo: string}) => angular.element(() => {\n const scrollSvc = new SmoothScroll(document.getElementById(attrs.scrollTo));\n element.on('click', () => scrollSvc.scroll());\n })\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/scrollToDirective.ts","import directives from './module';\nimport {AffiliateSvc} from '../services/AffiliateSvc';\nimport {Utils} from '../underscore-extensions';\nimport {removeHtmlClass} from './modalDialogDirective';\n\nclass AffiliatePopup {\n affModalShow: boolean;\n bigModalShown: boolean;\n affModalBottomShow: boolean;\n discount = 10;\n signupUrl = `/${Utils.getProduct().toLowerCase()}/signup`;\n canShow = true;\n\n private delayHandlerScroll = _.noop;\n\n constructor(private $rootScope: ng.IRootScopeService,\n private affiliateSvc: AffiliateSvc) {\n this.affiliateSvc.isTapAffiliate() && this.showPopups();\n\n this.$rootScope.$on('$stateChangeSuccess', (e, to) => {\n this.canShow = to.name !== 'wave-signup';\n this.closeBigPopup();\n });\n }\n\n closeBigPopup() {\n this.bigModalShown = true;\n this.affModalShow = false;\n }\n\n closeBottomPopup() {\n document.removeEventListener('scroll', this.delayHandlerScroll);\n this.affModalBottomShow = false;\n }\n\n private showPopups() {\n setTimeout(() => this.affModalShow = this.canShow, 5 * 1000);\n\n const handlerScroll = () => {\n const {scrollHeight, offsetHeight, scrollTop} = document.documentElement;\n\n const isBottom = scrollTop >= scrollHeight - offsetHeight;\n\n this.affModalBottomShow = isBottom && this.bigModalShown && this.canShow;\n\n if (!this.affModalBottomShow) {\n removeHtmlClass();\n }\n };\n\n this.delayHandlerScroll = _.debounce(handlerScroll, 50);\n\n document.addEventListener('scroll', this.delayHandlerScroll);\n }\n}\n\ndirectives.component('affiliatePopup', {\n controller: AffiliatePopup,\n templateUrl: require('affiliate-popup.html')\n }\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/affiliatePopup.ts","module.exports = __webpack_public_path__ + \"images/avatars/male/2.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/2.png\n// module id = Z9aV\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/template-pages-list-item_ba3ffd9eca0e5e431b6322cfd9b13f13.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/template-pages-list-item.less\n// module id = ZSj8\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/7.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/7.png\n// module id = ZawD\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/11.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/11.svg\n// module id = Zkh2\n// module chunks = 151","import services from 'services/module';\nimport {AnimatronPreviews} from './AnimatronPreviewsSvc';\n\nexport type ProjectAugmenter = (p: anm.Project) => anm.Project;\nfunction ProjectAugmenter($filter: ng.IFilterService, AnimatronPreviews: AnimatronPreviews) {\n const hasTag = (tags: anm.Tag[], name: string) => tags && tags.some((t: anm.Tag) =>\n t.name.toLowerCase() === name.toLowerCase() && t.type === 'SUPER'\n );\n\n return (project: anm.Project) => {\n const rolez = options.user.rolez;\n const foreignRead = rolez.ForeignProjectPermissions && rolez.ForeignProjectPermissions.read;\n\n project.name = $filter('stripTags')(project.name);\n project.description = $filter('stripTags')(project.description);\n\n project.author = project.author || Object.assign({}, options.anonymous);\n project.owner = project.owner || Object.assign({}, options.anonymous);\n if (project.owner.accountTypes.STUDIO === 'Guest') Object.assign(project.owner, options.anonymous);\n\n project.likes = project.likes || [];\n project.comments = project.comments || [];\n project.collaborators = (project.collaborators || []).filter((c: anm.User) =>\n !_.contains([project.author.username, project.owner.username], c.username)\n );\n project.isCollaborator = project.collaborators && project.collaborators.some((c: anm.User) =>\n c.username === options.user.username\n );\n project.isOwner = project.owner && options.user.username === project.owner.username;\n project.canEdit = project.editorReadAccess || project.isOwner || foreignRead;\n\n project.tags = project.tags || [];\n project.staffPicked = project.staffPicked || hasTag(project.tags, 'Staff Picks');\n project.hallOfFame = project.hallOfFame || hasTag(project.tags, 'Hall-of-Fame');\n project.contest = project.contest || project.tags.some((t: anm.Tag) => t.type === 'CONTEST');\n if (!rolez.Admin || !rolez.Admin.canCreateSuperTags) {\n project.tags = project.tags.filter((t: anm.Tag) => t.type === 'USER');\n }\n };\n}\n\nservices.factory('ProjectAugmenter', ProjectAugmenter);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/ProjectAugmenter.ts","module.exports = __webpack_public_path__ + \"html/comparison_a1e72fa591122522769c82176ace0f5a.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/landing/comparison.html\n// module id = Zx9N\n// module chunks = 151","import directives from './module';\nimport {flickityLib} from '../lazy_modules';\nimport LandingPages from '../LandingPages'\n\nclass RelatedPagesSwipable implements ng.IComponentController {\n readonly flicktyPromise: ng.IPromise;\n pagesList: anm.LandingPagesItem[];\n currentUrl: string | ng.ui.IUrlMatcher;\n\n constructor(private $element: ng.IAugmentedJQuery,\n private $state: ng.ui.IStateService,\n private $q: ng.IQService) {\n this.pagesList = this.pagesList || LandingPages;\n this.currentUrl = $state.current.url;\n this.flicktyPromise = !options.handHeld ?\n $q(resolve => loadScripts([flickityLib], resolve)) :\n $q.reject(null);\n }\n\n $postLink() {\n this.flicktyPromise.then(() => {\n const Flickity = (window as any).Flickity;\n new Flickity(this.$element[0].firstChild, {\n cellSelector: '.help-item',\n prevNextButtons: true,\n wrapAround: true,\n resize: false,\n cellAlign: 'left',\n adaptiveHeight: true,\n setGallerySize: false,\n pageDots: false\n });\n });\n }\n\n getImageUrl(image: string) {\n return require(`../../images/landing/banner/${image}.png`);\n }\n}\n\ndirectives.component('relatedPagesSwipable', {\n bindings: {\n pagesList: ' document.documentElement.classList.remove('modal-shown');\n\ndirectives.directive('modalDialog', function ($timeout: ng.ITimeoutService,\n $rootScope: ng.IRootScopeService,\n $compile: ng.ICompileService,\n $animate: any,\n PlayerSvc: PlayerSvc) {\n const animationClass = 'animation';\n return {\n restrict: 'EA',\n scope: {\n show: '=',\n isScroll: ' {\n modalEl = $compile(angular.copy(modalTemplate))(scope);\n container.append(modalEl);\n };\n\n const close = () => animationClose(() => {\n if (!attrs.hasOwnProperty('dontAutoClose')) scope.show = false;\n if (_.isFunction(scope.onClickOutside)) scope.onClickOutside();\n _.isFunction(scope.onClose) && scope.onClose();\n removeHtmlClass();\n modalEl.remove();\n $rootScope.$emit('modal:close');\n });\n\n const stateChangeSuccessOff = $rootScope.$on('$stateChangeStart', () => {\n removeHtmlClass();\n });\n scope.$on('$destroy', () => {\n stateChangeSuccessOff();\n modalEl && modalEl.remove();\n });\n\n scope.closeButton = typeof attrs.closeButton === 'string';\n\n const animatedEl = (f: (e: Element) => void) => modalEl[0] && f(modalEl[0]);\n\n const animationClose = (callback: Function) => {\n const onceExecuted = _.once(callback).bind(this);\n animatedEl((el: HTMLElement) => {\n el.addEventListener('transitionend', e => scope.$apply(() => onceExecuted()));\n Utils.rAF(() => el.classList.remove(animationClass));\n });\n };\n scope.includeLoaded = () => Utils.rAF(() => animatedEl(e => e.classList.add(animationClass)));\n\n scope.hideModal = (e: MouseEvent) => {\n const target = e.target;\n if ((!scope.disableClickOutside && target === modalEl[0].querySelector('.ng-modal-overlay'))\n || target === modalEl[0].querySelector('.ng-modal-close')) {\n\n if (!attrs.hasOwnProperty('dontAutoClose')) {\n scope.show = false;\n } else {\n close();\n }\n\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n if (!scope.disableClickOutside) {\n const isInput = () => document.activeElement.getAttribute('contenteditable')\n || document.activeElement.tagName.toLowerCase() === 'input';\n Utils.scopedEvent('keydown', scope, (e: KeyboardEvent) => {\n if (scope.show && (e.keyCode || e.which) === 27 && !isInput()) {\n close();\n }\n }, document, true);\n }\n\n scope.$watch('show', (newVal: boolean, oldVal: boolean) => {\n if (options.isPhantom) return;\n\n directiveScope.$destroy();\n if (angular.isFunction(scope.onChange) && scope.onChange()) {\n scope.onChange()(newVal, oldVal);\n }\n if (!newVal && oldVal) {\n close();\n } else if (newVal && !scope.modalUrl) {\n document.documentElement.classList.add('modal-shown');\n appendModal();\n $rootScope.$emit('modal:show');\n\n if (scope.directive) {\n directiveScope = scope.$new(true);\n const compiled = $compile(document.createElement(scope.directive))(directiveScope);\n $animate.enter(compiled, null, modalEl.find('transclude-directive')).then(() => {\n $timeout(() => scope.includeLoaded());\n });\n } else {\n transclude((el: ng.IAugmentedJQuery) => {\n angular.element(modalEl[0].querySelector('.ng-modal-dialog-content')).append(el);\n $timeout(() => scope.includeLoaded());\n });\n }\n }\n !_.isUndefined(newVal) && togglePlayers(newVal);\n });\n\n function togglePlayers(modalOpened: boolean) {\n PlayerSvc.instances().forEach(p => {\n if (modalOpened && p.isPlaying()) {\n p.pause();\n p._pauseBecauseOfModal = true;\n } else if (!modalOpened && p._pauseBecauseOfModal) {\n p._pauseBecauseOfModal = false;\n p.play();\n }\n });\n }\n }\n };\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/modalDialogDirective.ts","module.exports = __webpack_public_path__ + \"i18n/ko_bbd4ae2f06320b7a0ea06f532fc06575.json\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/i18n/ko.json\n// module id = a8i3\n// module chunks = 151","import directives from './module';\nimport SpinnerSvc from 'services/SpinnerSvc';\nimport {Utils} from 'underscore-extensions';\n\ndirectives.directive('toggleClass', () =>\n (scope: any, element: ng.IAugmentedJQuery, attrs: any) => {\n const className = attrs.toggleClass,\n classList = element[0].classList,\n handlerClickOutside = (e: MouseEvent) => {\n document.body.removeEventListener('click', handlerClickOutside, true);\n if (element[0] !== e.target) {\n classList.remove(className);\n }\n },\n handlerClickOnElement = () => {\n if (classList.contains(className)) {\n classList.remove(className);\n } else {\n classList.add(className);\n document.body.addEventListener('click', handlerClickOutside, true);\n }\n };\n\n element[0].addEventListener('click', handlerClickOnElement);\n\n scope.$on('$destroy', () => {\n element[0].removeEventListener('click', handlerClickOnElement);\n document.body.removeEventListener('click', handlerClickOutside, true);\n });\n }\n);\n\ndirectives.directive('disableTouch', () => (scope: any, element: ng.IAugmentedJQuery) =>\n element.on('touchstart', event => event.preventDefault())\n);\n\ndirectives.directive('eatClick', () => (scope: any, element: ng.IAugmentedJQuery) =>\n element.on('click', event => event.preventDefault())\n);\n\ndirectives.directive('plainClick', $parse =>\n (scope: any, element: ng.IAugmentedJQuery, attrs: any) => {\n const fn = $parse(attrs.plainClick, null, true);\n element.on('click', e => scope.$apply(() => fn(scope, {$event: e})));\n }\n);\n\ndirectives.directive('staticInclude', ($compile: ng.ICompileService,\n $templateRequest: ng.ITemplateRequestService) =>\n (scope: any, element: ng.IAugmentedJQuery, attrs: any) => {\n $templateRequest(attrs.staticInclude || attrs.src).then(response => {\n const contents = element.html(response).contents();\n $compile(contents)(scope);\n });\n }\n);\n\ndirectives.component('loadingSpin', {\n template: `
\n \n
`\n});\n\ndirectives.component('spinner', {\n template: (() =>\n `
${new Array(13).join('
')}
`)()\n});\n\ndirectives.component('loaderHorizontal', {\n template: `
\n
\n
\n
\n
`\n});\n\n\ndirectives.directive('initScope', () => ({\n priority: 10000,\n link (scope: any, element: ng.IAugmentedJQuery, attrs: any) {\n const expressions: string[] = attrs.initScope.split(';');\n expressions.forEach(exp =>\n scope.$watch(exp.split('=')[1], () =>\n scope.$eval(attrs.initScope)\n )\n );\n }\n}));\n\ndirectives.directive('checkAutofill', ($interval) =>\n (scope: any, element: any) => {\n const intervalId = $interval(() => {\n element.triggerHandler('input').triggerHandler('change').triggerHandler('keydown');\n }, 250);\n scope.$on('$destroy', () => $interval.cancel(intervalId));\n }\n);\n\nconst model = (name: string, link: Function) =>\n directives\n .directive(name, () => ({require: 'ngModel', link}));\n\nmodel('uppercase', (scope: any, element: ng.IAugmentedJQuery, attrs: any, ngModel: ng.INgModelController) => {\n ngModel.$parsers.unshift(input => input ? input.toUpperCase() : '');\n element[0].style.textTransform = 'uppercase';\n});\nmodel('stringToNumber', (scope: any, element: ng.IAugmentedJQuery, attrs: any, ngModel: ng.INgModelController) => {\n ngModel.$parsers.push(value => '' + value);\n ngModel.$formatters.push(value => parseInt(value, 10));\n});\n\ndirectives.directive('lazyIf', ($animate, $compile) => {\n return {\n restrict: 'A',\n scope: false,\n terminal: true,\n priority: 1000,\n compile(element: ng.IAugmentedJQuery, attrs: any) {\n let content = element[0].innerHTML;\n element.html('');\n return (scope: ng.IScope) => {\n const unwatch = scope.$watch(attrs.lazyIf, (value: boolean) => {\n if (value) {\n element.append(content);\n element.removeAttr('lazy-if');\n $animate.enter($compile(element)(scope), null, element).then(() => {\n unwatch();\n content = null;\n });\n }\n });\n\n };\n }\n };\n});\n\n//works only in ProjectPage\ndirectives.directive('lazyButton', ($compile, $parse, $location, $ocLazyLoad) => {\n return {\n restrict: 'E',\n transclude: true,\n scope: {\n module: '=',\n onShown: '=?',\n onClick: '&?'\n },\n link(scope: any, element: ng.IAugmentedJQuery, attr: any) {\n scope.shown = false;\n scope.title = attr.btnName;\n scope.enable = _.once(() => {\n SpinnerSvc.show();\n scope.loading = true;\n const module = _.isFunction(scope.module) ? scope.module() : scope.module;\n module.then((m: oc.Module) => $ocLazyLoad.load(m)).then(() => {\n scope.$watch(() => scope.$parent.project, (p: anm.Project) => {\n p && $compile(element[0].querySelector('ng-transclude').firstElementChild)(scope);\n });\n scope.loading = false;\n SpinnerSvc.hide();\n });\n });\n if ($location.search()[attr.queryParam]) {\n scope.enable();\n scope.shown = true;\n }\n scope.show = () => {\n scope.enable();\n scope.shown = !scope.shown;\n if (_.isFunction(scope.onClick)) {\n scope.onClick();\n }\n if (_.isFunction(scope.onShown)) {\n scope.onShown(scope, scope.shown);\n }\n };\n },\n template: `{{::title}}\n `\n };\n});\n\ndirectives.filter('startFrom', () => (input: any[], start: string) => input.slice(parseInt(start, 10)));\n\ndirectives.directive('focusMe',\n () => (scope: any, element: ng.IAugmentedJQuery) => new Promise(() => element[0].focus()));\n\ndirectives.directive('unFocusMe',\n () => (scope: any, element: ng.IAugmentedJQuery, attr: any) =>\n scope.$watch(() => scope.$eval(attr.unFocusMe), (a: boolean) => a && element[0].blur()));\n\ndirectives.directive('modelChange', () => ({\n restrict: 'A',\n require: 'ngModel',\n link (scope: ng.IScope, element: ng.IAugmentedJQuery, attr: any, ctrl: ng.INgModelController) {\n scope.$watch(() => ctrl.$viewValue, () => scope.$eval(attr.modelChange));\n }\n}));\ndirectives.directive('translateModel', (TranslateSvc) => ({\n restrict: 'A',\n require: 'ngModel',\n link(scope: ng.IScope, element: ng.IAugmentedJQuery, attr: ng.IAttributes, ctrl: ng.INgModelController) {\n ctrl.$formatters.push(s => s && s.split(',').map((v: string) => TranslateSvc.get(v.trim())).join(', '));\n }\n}));\n\ndirectives.directive('typer', (TranslateSvc) => ({\n scope: {typer: '='},\n link(scope: any, element: ng.IAugmentedJQuery) {\n const n = scope.typer.length;\n let current = 0;\n let id: number = null;\n\n const changeText = () => {\n element[0].innerHTML = '';\n const letters = TranslateSvc.get(scope.typer[current++ % n] + '.tab').split('');\n const type = () => {\n element[0].innerHTML += letters.shift();\n if (letters.length > 0) {\n id = setTimeout(() => type(), 40 + Math.round(Math.random() * 30));\n } else {\n id = setTimeout(() => changeText(), 2000);\n }\n };\n type();\n };\n changeText();\n scope.$on('$destroy', () => clearTimeout(id));\n }\n}));\n\ndirectives.directive('longText', (TranslateSvc) => ({\n scope: {\n longText: '=',\n longTextCb: '&?'\n },\n link(scope: any, element: ng.IAugmentedJQuery) {\n setTimeout(() => {\n const len = element.text().length;\n if(scope.longText < len)\n scope.longTextCb();\n }, 0);\n }\n}));\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/smallDirectives.ts","import directives from './module';\nimport {AuthenticationSvc} from '../services/AuthenticationSvc';\nimport getCommonLinks from '../routes/commonLinks';\n\nclass Header implements ng.IComponentController {\n readonly links = getCommonLinks('ANY');\n\n constructor(public AuthenticationSvc: AuthenticationSvc) {\n }\n}\n\ndirectives.component('anmHeader', {\n controller: Header,\n templateUrl: require('header.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/anmHeader.ts","module.exports = __webpack_public_path__ + \"images/avatars/female/13.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/13.png\n// module id = aRaM\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/wave-template-item_762ce2a6e30def2e734521c8664a3e90.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-template-item.less\n// module id = aTCW\n// module chunks = 151","module.exports = __webpack_public_path__ + \"i18n/en_87696ae0114f8d6e743cd70f9deb2fb7.json\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/i18n/en.json\n// module id = aY29\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/project-upgrade_d4b39416723f49cc9c6d3f75e057570b.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/project-upgrade.less\n// module id = acIy\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-any-landing_17c145d0dce64b8255f445061e603ca1.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/m-any-landing.less\n// module id = aiHC\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/blog.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/blog.png\n// module id = akEf\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/3.svg\n// module id = anIN\n// module chunks = 151","import services from 'services/module';\nimport {Strings} from 'Strings';\nimport Intercom from 'intercom';\nimport {CookieSettings} from 'services/CookieSettings';\nimport {HttpSvcFactory} from './HttpSvc';\nimport {NewsSvc} from './NewsSvc';\nimport {LocalStorageSvc} from './LocalStorageSvc';\nimport {Utils} from 'underscore-extensions';\nimport {AnalyticSvc} from './AnalyticSvc';\nimport {AffiliateSvc} from './AffiliateSvc';\n\nexport const USER_LOGOUT = 'user:logout';\nexport const USER_UPDATE_SUCCESS = 'website/user/updated';\n\nexport class AuthenticationSvc {\n animatronCookieName = '_animatronauth';\n signupRedirectPropName = 'signupRedirectUrl';\n loginRedirect = '';\n loggedIn = false;\n loaded = false;\n loginRedirectMessage = '';\n signupModalShown = false;\n loginModalShown = false;\n lastUpdated = _.now();\n\n constructor(private $rootScope: ng.IRootScopeService,\n private $state: ng.ui.IStateService,\n private $q: ng.IQService,\n private $timeout: ng.ITimeoutService,\n private $location: ng.ILocationService,\n private $log: ng.ILogService,\n private $cacheFactory: ng.ICacheFactoryService,\n private analyticSvc: AnalyticSvc,\n private affiliateSvc: AffiliateSvc,\n private ipCookie: ipCookie,\n private LocalStorageSvc: LocalStorageSvc,\n private HttpSvc: HttpSvcFactory,\n private NewsSvc: NewsSvc) { //TODO do not depend on NewsSvc\n $rootScope.updateUser = this.updateUser;\n $timeout(() => $rootScope.$on('$locationChangeStart', () => {\n this.loginRedirect = '';\n this.closeModals();\n }));\n }\n\n isCookieEnabled = _.once(() => {\n let enabled;\n const checkerCookieName = '__animatron_check_cookie_enabled';\n this.ipCookie(checkerCookieName, 'isEnabled');\n enabled = 'isEnabled' === this.ipCookie(checkerCookieName);\n this.ipCookie.remove(checkerCookieName);\n return enabled;\n });\n\n setUserGlobals(user: anm.User): anm.User {\n const getProduct = () => {\n const defaultProducts = 'studio';\n const products = ['studio', 'wave'];\n const currentProduct = Utils.getProduct().toLowerCase();\n\n return products.includes(currentProduct)\n ? currentProduct\n : defaultProducts;\n };\n\n user.accountTypes = {} as anm.UseraccountTypes;\n user.rolez = user.subscriptionDetails[getProduct()].features.rolez;\n user.meta = user.meta || {};\n user.accountTypes.STUDIO = user.subscriptionDetails.studio.displayName;\n user.accountTypes.WAVE = user.subscriptionDetails.wave.displayName;\n user.isStripe = () => {\n const {hasStripeSubscription, hasStripeUser} = user.subscriptionDetails[getProduct()];\n return hasStripeSubscription || hasStripeUser;\n };\n user.stripeKey = () => user.zoneCode === 'kr' ? options.stripePubKeyKr : options.stripePubKey;\n this.$rootScope.user = user;\n options.user = user;\n options.headers = {'Animatron-Security-Token': user.hash};\n this.NewsSvc.onUserChanged(user);\n this.loaded = true;\n return user;\n };\n\n setUser(user: anm.User, token: string): ng.IPromise {\n return this.$timeout(() => {\n this.loggedIn = true;\n this.setSubscription(user);\n user.hash = token;\n user.staff = user.subscriptionDetails.studio.name === 'Staff' || user.subscriptionDetails.studio.name === 'Jedi';\n user.anonymous = user.anonymous || user.username === 'Anonymous';\n if (user.staff) {\n options.debug = true;\n }\n if (window.Raven) {\n Raven.setUserContext({\n id: user.username,\n email: user.email,\n subscription: user.subscriptionDetails.studio.displayName\n });\n }\n\n this.setUserGlobals(user);\n Intercom.setUser(user);\n this.$rootScope.$emit(USER_UPDATE_SUCCESS);\n this.LocalStorageSvc.set('user', user);\n return user;\n });\n };\n\n extendUser(newProps: any): void {\n this.$rootScope.user = angular.merge(options.user, newProps);\n this.LocalStorageSvc.set('user', options.user);\n this.notifyUserChange();\n };\n\n setAnonymous(): ng.IPromise {\n this.loggedIn = false;\n Intercom.setAnonymous();\n this.LocalStorageSvc.remove('user');\n return this.$timeout(() => this.setUserGlobals(options.anonymous));\n };\n\n getUser(update: boolean): ng.IPromise {\n const userCookieIsPresent = this.ipCookie(this.animatronCookieName);\n const cachedUser = this.LocalStorageSvc.get('user');\n if (userCookieIsPresent && cachedUser) {\n if (update) {\n this.updateUser();\n }\n return this.setUser(cachedUser, cachedUser.hash);\n } else {\n return this.updateUser();\n }\n };\n\n updateUser(): ng.IPromise {\n const deferred = this.$q.defer();\n const token = this.ipCookie(this.animatronCookieName);\n options.headers = {'Animatron-Security-Token': token || ''};\n if (token) {\n this.HttpSvc('profile').secureGet().then(r => r.data).then(user => {\n this.lastUpdated = _.now();\n if (Utils.isUser(user)) {\n this.setUser(user, token).then(deferred.resolve);\n } else {\n this.clearCookies();\n deferred.resolve(this.setAnonymous());\n }\n });\n } else {\n deferred.resolve(this.setAnonymous());\n }\n return deferred.promise;\n };\n\n login(secureUser: anm.SecureUser, loginType = 'Email'): ng.IPromise {\n try {\n this.ipCookie(this.animatronCookieName, secureUser.encryptedToken, CookieSettings.get());\n this.ipCookie.remove('_animatron_activate_pending', CookieSettings.get());\n } catch (e) {\n this.$log.error('Could not set cookie', e);\n }\n secureUser.userProfile.isNew = secureUser.isNew;\n secureUser.userProfile.social = loginType.toLowerCase() !== 'email';\n return this.setUser(secureUser.userProfile, secureUser.encryptedToken).then(() => {\n this.closeModals();\n secureUser.isNew && this.analyticSvc.signUpSocialComplete(loginType as anm.SignUpProvider);\n this.analyticSvc.login(secureUser.userProfile);\n this.$rootScope.$emit('user:login');\n const thirdPartyRedirect = this.LocalStorageSvc.remove('_animatron_redirect_onlogin');\n\n if (thirdPartyRedirect) {\n location.href = thirdPartyRedirect;\n } else if (this.loginRedirect === 'none') {\n // do nothing\n } else if (this.loginRedirect === 'back') {\n window.history.back();\n } else if (this.loginRedirect) {\n this.redirect(this.loginRedirect);\n } else if (this.shouldRedirect()) {\n this.redirectAfterLogin();\n }\n return secureUser;\n });\n };\n\n loginWithCookie(token: string): ng.IPromise {\n this.ipCookie(this.animatronCookieName, token, CookieSettings.get());\n return this.updateUser();\n };\n\n loginOAuth(authToken: string,\n oauthService: string,\n product: AnimatronProduct): ng.IPromise {\n const deferred = this.$q.defer();\n\n const productUpper = product.toUpperCase();\n const animatronProduct = productUpper === 'ANY' ? 'STUDIO' : productUpper;\n const data: any = {'@class': 'oauth', authToken, oauthService, product: animatronProduct};\n\n const headers = {\n ...this.analyticSvc.getGaHeader(),\n ...this.affiliateSvc.getAffiliateHeader(),\n ...options.user.hash ? options.headers : {}\n };\n\n this.HttpSvc('authenticate')\n .post(data, {headers})\n .then(r => r.data)\n .then((response: ApiError | anm.SecureUser) => {\n if (Utils.isApiError(response)) {\n _.notification.showError(response.errorMessage);\n } else {\n this.loginRedirect = 'none';\n this.login(response, oauthService).then(deferred.resolve);\n }\n });\n return deferred.promise;\n };\n\n logout(): ng.IPromise {\n this.loginRedirect = '';\n this.loginRedirectMessage = '';\n this.clearCookies();\n this.analyticSvc.logout();\n this.$cacheFactory.get('$http').removeAll();\n this.$rootScope.$emit(USER_LOGOUT);\n return this.setAnonymous();\n };\n\n logoutAndGoRoot() {\n const product = Utils.getProductByState(this.$state).toLowerCase();\n return this.logout().then(() => {\n if (this.shouldRedirect()) {\n this.$location.path(`/${product}/landing`).replace();\n } else {\n window.history.back();\n }\n });\n }\n\n clearCookies() {\n this.ipCookie.remove(this.animatronCookieName, CookieSettings.get());\n };\n\n notifyUserChange() {\n if (this.isCookieEnabled) {\n this.ipCookie('_animatronchanged', 'yes', CookieSettings.get());\n }\n };\n\n toggleLoginModal(redirect?: string, message = '') {\n this.loginRedirect = redirect;\n this.loginRedirectMessage = message;\n this.loginModalShown = true;\n };\n\n openSignUpPage(redirect?: string,\n params?: {},\n options?: ng.ui.IStateOptions) {\n const product = Utils.getProductByState(this.$state).toLowerCase();\n this.$state.go(`${product}-signup`, params, options);\n\n if (redirect) {\n this.LocalStorageSvc.set(this.signupRedirectPropName, redirect);\n }\n }\n\n activateEmailRedirect(): boolean {\n const url = localStorage.getItem(this.signupRedirectPropName);\n\n\n if (url) {\n localStorage.removeItem(this.signupRedirectPropName);\n this.redirect(url);\n }\n\n return !!url;\n }\n\n openLogin() {\n if (options.handHeld) {\n this.$state.go('login').then(() => this.$timeout(() => this.loginRedirect = 'back'));\n } else {\n this.toggleLoginModal();\n }\n }\n\n closeModals() {\n this.signupModalShown = false;\n this.loginModalShown = false;\n };\n\n private setSubscription(user: anm.User) {\n let wave: anm.SubscriptionDetails;\n let studio: anm.SubscriptionDetails;\n\n if (_.isArray(user.subscriptionDetails)) {\n user.subscriptionDetails.forEach((subscription: anm.SubscriptionDetails) => {\n if (subscription.product === 'WAVE') {\n wave = subscription;\n } else {\n studio = subscription;\n }\n });\n\n user.subscriptionDetails = Object.assign({}, {wave, studio});\n }\n }\n\n private shouldRedirect() {\n return !this.$location.search().noRedirect && !this.LocalStorageSvc.get('noRedirect');\n }\n\n private redirect(url: string) {\n Utils.redirect(url, this.$location);\n }\n\n private redirectAfterLogin() {\n const product = Utils.getProductByState(this.$state);\n const state = product === 'WAVE' ? 'my-projects' : 'home';\n this.$state.go(state);\n }\n}\n\nservices.service('AuthenticationSvc', AuthenticationSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/AuthenticationSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/section-company-info_7e055cf7a2face6a911c2fcb333a9559.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-company-info.less\n// module id = b+CF\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/newsWebsite_fe9b7f77e4da0de0bc55c6bd85b426a0.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/newsWebsite.less\n// module id = b/cW\n// module chunks = 151","import directives from './module';\nimport {Utils} from 'underscore-extensions';\n\nclass ContentEditable {\n ngModel: ng.INgModelController;\n\n constructor(private $scope: ng.IScope,\n private $element: ng.IAugmentedJQuery,\n private $filter: ng.IFilterService) {\n }\n\n $onInit() {\n if (!this.ngModel) return;\n\n const read = () => {\n const text = this.$filter('stripTags')(\n this.$element.html()\n .replace(/
/g, '\\n')\n .replace(/ /g, ' ')\n .replace(/&/g, '&')\n .trim()\n );\n this.ngModel.$setViewValue(text);\n };\n\n this.ngModel.$render = () => this.$element.html((this.ngModel.$viewValue || ''));\n\n\n Utils.scopedEvent('paste', this.$scope, (e: ClipboardEvent) => {\n e.preventDefault();\n document.execCommand('insertText', false, e.clipboardData.getData('text/plain'));\n }, this.$element[0]);\n\n Utils.scopedEvent('keypress', this.$scope, (e: KeyboardEvent) => {\n if (e.which === 13 && (!e.shiftKey && !e.altKey && !e.ctrlKey && !e.metaKey)) { //disable enter but allow special+enter\n e.preventDefault();\n // (document.activeElement).blur();\n }\n }, this.$element[0]);\n this.$element.on('blur keyup change', () => this.$scope.$evalAsync(read));\n }\n}\ndirectives.directive('contenteditable', (): ng.IDirective => ({\n restrict: 'A',\n bindToController: true,\n require: {ngModel: '?ngModel'},\n controller: ContentEditable\n })\n);\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/ContentEditable.ts","var path = 'https://assets.animatron.com/html/projects.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/projects.html","module.exports = __webpack_public_path__ + \"images/avatars/male/4.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/4.svg\n// module id = bPu8\n// module chunks = 151","const getCss = (file: string) => require('../stylesheets/' + file + '.less');\n\n// const html = (file: string) => require('../html/' + file + '.html');\n\n// const any = html('pricing');\n// console.log(any);\n\nconst queryParams: any = () =>\n _.chain(location.search.slice(1).split('&'))\n .map(item => item.split('=')).compact().object().value();\n\nconst getAngular = (lib: string) => `https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.7/angular-${lib}.min.js`;\n\nexport const playerUrl = () => {\n let search = queryParams(),\n version = search.pVer || (location.host.indexOf('nightly') === 0 ? 'nightly' : 'latest'),\n min = options.isProduction,\n dev = !options.isProduction,\n salt = search.pSalt === 'on' ? new Date().getTime() : options.salt;\n if (search.pMin === 'off') min = false;\n if (search.pMin === 'on') min = true;\n if (search.pDev === 'off') dev = false;\n if (search.pDev === 'on') dev = true;\n\n const url = `https://player${dev ? '-dev' : ''}.animatron.com/${version}/bundle/animatron${min ? '.min' : ''}.js?${salt}`;\n return search.pUrl || url;\n};\n\nexport const SimpleMDEUrl = 'https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js';\n\nexport const jqueryPaymentLib = [\n 'https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js',\n 'https://cdnjs.cloudflare.com/ajax/libs/jquery.payment/1.3.2/jquery.payment.min.js'\n];\n\nexport const masonryLib = 'https://cdnjs.cloudflare.com/ajax/libs/masonry/4.1.0/masonry.pkgd.min.js';\n\nexport const flickityLib = 'https://cdnjs.cloudflare.com/ajax/libs/flickity/2.0.10/flickity.pkgd.min.js';\n\nexport const twitterWidgetLib = 'https://platform.twitter.com/widgets.js';\n\nexport const fbSDKlib = `https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.11&appId=${options.social.facebookApiKey}`;\n\nexport const linkedinLib = '//platform.linkedin.com/in.js';\n\nexport const googleLib = 'https://apis.google.com/js/platform.js';\n\nexport const tapfiliateLib = '//static.tapfiliate.com/tapfiliate.js';\n\nexport const animatronProject = [\n getCss('projects'),\n getCss('user-popup'),\n getCss('comments')\n];\n\nconst angularMessages: oc.IModuleConfig = {\n name: 'ngMessages',\n files: [getAngular('messages')]\n};\n\nexport const datePicker = () => Promise.resolve({\n name: 'datePicker',\n files: ['https://cdn.rawgit.com/g00fy-/angular-datepicker/8c46855bed78ff7f0b523a794c7bdaabb558d081/dist/angular-datepicker.min.js',\n 'https://cdn.rawgit.com/g00fy-/angular-datepicker/8c46855bed78ff7f0b523a794c7bdaabb558d081/dist/angular-datepicker.min.css']\n});\n\n\n// Drag & Drop\nexport const animatronDragDropSvc = () => Promise.all([require.ensure([], () => {\n require('./drag-drop/DragDropSvc');\n return {\n name: 'animatronApp.DragDropSvc',\n files: []\n };\n})]);\n\nexport const animatronDropZone = () => Promise.all([require.ensure([], () => {\n require('./drag-drop/DropZone');\n return {\n name: 'animatronApp.DropZone',\n files: []\n };\n}), animatronDragDropSvc()]);\n\nexport const animatronDragItem = () => Promise.all([require.ensure([], () => {\n require('./drag-drop/DragItem');\n return {\n name: 'animatronApp.DragItem',\n files: [getCss('drag-drop/drag-item')]\n };\n}), animatronDragDropSvc()]);\n// Drag & Drop end\n\n// subscription\nexport const animatronSubscriptionCouponMessagesSvc = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/messages/SubscriptionCouponMessagesSvc');\n return {\n name: 'animatronApp.SubscriptionCouponMessagesSvc',\n files: []\n };\n})]);\n\nexport const animatronSubscriptionMessagesSvc = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/messages/SubscriptionMessagesSvc');\n return {\n name: 'animatronApp.SubscriptionMessagesSvc',\n files: []\n };\n})]);\n\nexport const animatronSubscriptionMessages = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/messages/SubscriptionMessages');\n return {\n name: 'animatronApp.SubscriptionMessages',\n files: [getCss('settings/subscription/messages/subscription-messages')]\n };\n}), animatronSubscriptionMessagesSvc()]);\n\nexport const animatronSubscriptionSvc = () => Promise.all([require.ensure([], () => {\n require('./settings/services/SubscriptionSvc');\n return {\n name: 'animatronApp.SubscriptionSvc',\n files: []\n };\n})]);\n\nexport const animatronSubscriptionPredictPrice = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/containers/SubscriptionPredictPriceContainer');\n return {\n name: 'animatronApp.SubscriptionPredictPriceContainer',\n files: []\n };\n}),\n animatronSubscriptionSvc(),\n animatronSubscriptionTotalPrice(),\n animatronSubscriptionCreditInfo(),\n animatronSubscriptionCouponMessagesSvc()\n]);\n\nexport const animatronSubscriptionCreditInfo = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/SubscriptionCreditInfo');\n return {\n name: 'animatronApp.SubscriptionCreditInfo',\n files: [getCss('settings/subscription/subscription-credit-info')]\n };\n})]);\n\nexport const animatronSubscriptionTotalPrice = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/SubscriptionTotalPrice');\n return {\n name: 'animatronApp.SubscriptionTotalPrice',\n files: [getCss('settings/subscription/subscription-total-price')]\n };\n})]);\n\nexport const animatronSubscriptionAlert = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/SubscriptionAlert');\n return {\n name: 'animatronApp.SubscriptionAlert',\n files: [getCss('settings/subscription/subscription-alert')]\n };\n})]);\n\nexport const animatronSubscriptionBillingInfoForm = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/SubscriptionBillingInfoForm');\n return {\n name: 'animatronApp.SubscriptionBillingInfoForm',\n files: [getCss('settings/subscription/subscription-billing-info-form')]\n };\n})]);\n\nexport const animatronSubscriptionCurrentPlan = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/SubscriptionCurrentPlan');\n return {\n name: 'animatronApp.SubscriptionCurrentPlan',\n files: [getCss('settings/subscription/subscription-current-plan')]\n };\n})]);\n\nexport const animatronSubscriptionInvoiceHistoryTable = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/SubscriptionInvoiceHistoryTable');\n return {\n name: 'animatronApp.SubscriptionInvoiceHistoryTable',\n files: [getCss('settings/subscription/subscription-invoice-history-table')]\n };\n})]);\n\nexport const animatronSubscriptionTitle = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/SubscriptionTitle');\n return {\n name: 'animatronApp.SubscriptionTitle',\n files: [getCss('settings/subscription/subscription-title')]\n };\n})]);\n\nexport const animatronSubscriptionPaymentDetailsEnterCard = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/payment-details/SubscriptionPaymentDetailsEnterCard');\n return {\n name: 'animatronApp.SubscriptionPaymentDetailsEnterCard',\n files: [getCss('settings/subscription/payment-details/subscription-payment-details-enter-card')]\n };\n})]);\n\nexport const animatronSubscriptionPaymentDetailsWithCard = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/payment-details/SubscriptionPaymentDetailsWithCard');\n return {\n name: 'animatronApp.SubscriptionPaymentDetailsWithCard',\n files: [getCss('settings/subscription/payment-details/subscription-payment-details-with-card')]\n };\n})]);\n\nexport const animatronSubscriptionRouterModalsContainer = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/containers/SubscriptionRouterModalsContainer');\n return {\n name: 'animatronApp.SubscriptionRouterModalsContainer',\n files: [getCss('settings/subscription/containers/subscription-router-modals-container')]\n };\n})]);\n\nexport const animatronSubscriptionCurrentPlanContainer = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/containers/SubscriptionCurrentPlanContainer');\n return {\n name: 'animatronApp.SubscriptionCurrentPlanContainer',\n files: [getCss('settings/subscription/containers/subscription-current-plan-container')]\n };\n}),\n animatronSubscriptionAlert(),\n animatronSubscriptionTitle(),\n animatronSubscriptionCurrentPlan(),\n animatronSubscriptionPaymentDetailsContainer()\n]);\n\nexport const animatronSubscriptionInvoiceHistoryContainer = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/containers/SubscriptionInvoiceHistoryContainer');\n return {\n name: 'animatronApp.SubscriptionInvoiceHistoryContainer',\n files: [getCss('settings/subscription/containers/subscription-invoice-history-container')]\n };\n}),\n animatronSubscriptionTitle(),\n animatronSubscriptionInvoiceHistoryTable()\n]);\n\nexport const animatronSubscriptionPaymentDetailsContainer = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/containers/SubscriptionPaymentDetailsContainer');\n return {\n name: 'animatronApp.SubscriptionPaymentDetailsContainer',\n files: [getCss('settings/subscription/containers/subscription-payment-details-container')]\n };\n}),\n animatronSubscriptionTitle(),\n animatronSubscriptionPaymentDetailsEnterCard(),\n animatronSubscriptionPaymentDetailsWithCard()\n]);\n\nexport const animatronSubscriptionPage = () => Promise.all([require.ensure([], () => {\n require('./settings/subscription/SubscriptionPage');\n return {\n name: 'animatronApp.SubscriptionPage',\n files: [getCss('settings/subscription/subscription-page')]\n };\n}),\n animatronUpgrade(),\n animatronSubscriptionMessages(),\n animatronSubscriptionCurrentPlanContainer(),\n animatronSubscriptionPredictPrice(),\n animatronSubscriptionRouterModalsContainer(),\n animatronSubscriptionInvoiceHistoryContainer()\n]);\n\n// subscription end\n\n// video folder\nexport const animatronVideoFolderMasonrySvc = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/masonry/VideoFolderMasonrySvc');\n return {\n name: 'animatronApp.VideoFolderMasonrySvc',\n files: []\n };\n})]);\n\nexport const animatronVideoFolderMasonryItem = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/masonry/VideoFolderMasonryItem');\n return {\n name: 'animatronApp.VideoFolderMasonryItem',\n files: []\n };\n}), animatronVideoFolderMasonrySvc()]);\n\nexport const animatronVideoFolderMasonry = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/masonry/VideoFolderMasonry');\n return {\n name: 'animatronApp.VideoFolderMasonry',\n files: [getCss('wave/folder/masonry/video-folder-masonry')]\n };\n}), animatronVideoFolderMasonryItem(), animatronVideoFolderMasonrySvc()]);\n\nexport const animatronVideoFolderItem = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/VideoFolderItem');\n return {\n name: 'animatronApp.VideoFolderItem',\n files: [getCss('wave/folder/video-folder-item')]\n };\n}), animatronVideoFolderBottom()]);\n\nexport const animatronVideoFolderName = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/VideoFolderName');\n return {\n name: 'animatronApp.VideoFolderName',\n files: []\n };\n})]);\n\nexport const animatronVideoFolderControls = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/VideoFolderControls');\n return {\n name: 'animatronApp.VideoFolderControls',\n files: []\n };\n}), animatronVideoFolderCreateNew()]);\n\nexport const animatronVideoFolderCreateNew = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/VideoFolderCreateNew');\n return {\n name: 'animatronApp.VideoFolderCreateNew',\n files: []\n };\n})]);\n\nexport const animatronVideoFolderBottom = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/VideoFolderBottom');\n return {\n name: 'animatronApp.VideoFolderBottom',\n files: [getCss('wave/folder/video-folder-bottom')]\n };\n}), animatronVideoFolderMoveModalSvc(), animatronVideoFolderName()]);\n\nexport const animatronVideoFolderMoveModalSvc = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/VideoFolderMoveModalSvc');\n return {\n name: 'animatronApp.VideoFolderMoveModalSvc',\n files: []\n };\n})]);\n\nexport const animatronVideoFolderMoveModal = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/VideoFolderMoveModal');\n return {\n name: 'animatronApp.VideoFolderMoveModal',\n files: [getCss('wave/folder/video-folder-move-modal')]\n };\n}),\n animatronVideoFolderTreeItem(),\n animatronVideoFolderCreateNew(),\n animatronVideoFolderMoveModalSvc()\n]);\n\nexport const animatronVideoFolderBreadcrumb = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/VideoFolderBreadcrumb');\n return {\n name: 'animatronApp.VideoFolderBreadcrumb',\n files: [getCss('wave/folder/video-folder-breadcrumb')]\n };\n})]);\n\nexport const animatronVideoFolderTreeItem = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/folder/VideoFolderTreeItem');\n return {\n name: 'animatronApp.VideoFolderTreeItem',\n files: [getCss('wave/folder/video-folder-tree-item')]\n };\n}), animatronVideoFolderMoveModalSvc(), animatronVideoFolderName()]);\n// video folder END\n\nexport const animatronTitleBlock = () => require.ensure([], () => {\n require('./landing-template/components/TitleBlock');\n return {\n name: 'animatronApp.titleBlock',\n files: [getCss('landing-template/components/title-block')]\n };\n});\n\nexport const animatronRelationList = () => require.ensure([], () => {\n require('./landing-template/components/RelationList');\n return {\n name: 'animatronApp.relationList',\n files: [getCss('landing-template/components/relation-list')]\n };\n});\n\nexport const animatronButtonStart = () => require.ensure([], () => {\n require('./landing-template/components/ButtonStart');\n return {\n name: 'animatronApp.buttonStart',\n files: []\n };\n});\n\nexport const animatronBackground = () => require.ensure([], () => {\n require('./landing-template/components/Background');\n return {\n name: 'animatronApp.background',\n files: [getCss('landing-template/components/background')]\n };\n});\n\nexport const animatronIconTextList = () => require.ensure([], () => {\n require('./landing-template/components/IconTextList');\n return {\n name: 'animatronApp.iconTextList',\n files: [getCss('landing-template/components/icon-text-list')]\n };\n});\n\n// contest landing\nexport const animatronContestLandingSvc = () => require.ensure([], () => {\n require('./contest-landing/ContestLandingSvc');\n return {\n name: 'animatronApp.contestLandingSvc',\n files: []\n };\n});\n\nexport const animatronChallengesList = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/ChallengesList');\n return {\n name: 'animatronApp.challengesList',\n files: [getCss('contest-landing/challenges-list')]\n };\n}), wistiaPlayer(), animatronContestGoChallengeButton(), animatronContestLandingSvc()]);\n\nexport const animatronJudgeItem = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/JudgeItem');\n return {\n name: 'animatronApp.judgeItem',\n files: [getCss('contest-landing/judge-item')]\n };\n})]);\n\nexport const animatronContestGoChallengeButton = () => require.ensure([], () => {\n require('./contest-landing/ContestGoChallengeButton');\n return {\n name: 'animatronApp.contestGoChallengeButton',\n files: []\n };\n});\n\nexport const animatronCountdown = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/Countdown');\n return {\n name: 'animatronApp.countdown',\n files: [getCss('contest-landing/countdown')]\n };\n})]);\n\nexport const animatronPreRegister = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/PreRegister');\n return {\n name: 'animatronApp.preRegister',\n files: [getCss('contest-landing/pre-register')]\n };\n})]);\n\nexport const animatronSpreadInSocial = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/SpreadInSocial');\n return {\n name: 'animatronApp.spreadInSocial',\n files: [getCss('contest-landing/spread-in')]\n };\n}),\n animatronTwitterShareButton(),\n animatronFacebookShareButton(),\n animatronLinkedinShareButton(),\n animatronGoogleShareButton(),\n]);\n\nexport const animatronSponsorContactUs = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/SponsorContactUs');\n return {\n name: 'animatronApp.sponsorContactUs',\n files: [getCss('contest-landing/sponsor-contact-us')]\n };\n})]);\n\nexport const animatronTitleShadowBlock = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/TitleShadowBlock');\n return {\n name: 'animatronApp.titleShadowBlock',\n files: [getCss('contest-landing/title-shadow-block')]\n };\n})]);\n\nexport const animatronParticipateSteps = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/ParticipateSteps');\n return {\n name: 'animatronApp.ParticipateSteps',\n files: [getCss('contest-landing/participate-steps')]\n };\n})]);\n\nexport const animatronVideoImproveSteps = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/VideoImproveSteps');\n return {\n name: 'animatronApp.videoImproveSteps',\n files: [getCss('contest-landing/video-improve-steps')]\n };\n}), animatronBackground()]);\n\nexport const animatronWinPrizesList = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/WinPrizesList');\n return {\n name: 'animatronApp.winPrizesList',\n files: [getCss('contest-landing/win-prizes-list')]\n };\n})]);\n\nexport const animatronWinPrizesSection = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/WinPrizesSection');\n return {\n name: 'animatronApp.winPrizesSection',\n files: [getCss('contest-landing/win-prizes-section')]\n };\n}), animatronTitleShadowBlock(), animatronContestLandingSvc()]);\n\nexport const animatronCountdownSection = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/CountdownSection');\n return {\n name: 'animatronApp.countdownSection',\n files: [getCss('contest-landing/countdown-section')]\n };\n}), animatronCountdown(), animatronTitleBlock(), animatronBackground()]);\n\nexport const animatronContestDaysTopSection = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/ContestDaysTopSection');\n return {\n name: 'animatronApp.contestDaysTopSection',\n files: [getCss('contest-landing/contest-days-top-section')]\n };\n}), animatronTitleBlock(), animatronBackground(), animatronContestGoChallengeButton()]);\n\nexport const animatronContactUsSection = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/ContactUsSection');\n return {\n name: 'animatronApp.contactUsSection',\n files: [getCss('contest-landing/contact-us-section')]\n };\n}),\n animatronBackground(),\n animatronPreRegister(),\n animatronSponsorContactUs(),\n animatronSpreadInSocial()\n]);\n\nexport const animatronPreRegisterSection = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/PreRegisterSection');\n return {\n name: 'animatronApp.preRegisterSection',\n files: [getCss('contest-landing/pre-register-section')]\n };\n}), animatronPreRegister(), animatronBackground()]);\n\nexport const animatronMediaSponsorsSection = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/MediaSponsorsSection');\n return {\n name: 'animatronApp.mediaSponsorsSection',\n files: [getCss('contest-landing/media-sponsors-section')]\n };\n})]);\n\nexport const animatronChallengesListSection = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/ChallengesListSection');\n return {\n name: 'animatronApp.challengesListSection',\n files: [getCss('contest-landing/challenges-list-section')]\n };\n}),\n animatronTitleShadowBlock(),\n animatronChallengesList(),\n wistiaPlayer(),\n animatronTitleShadowBlock(),\n animatronContestLandingSvc(),\n animatronContestGoChallengeButton(),\n]);\n\nexport const animatronContestTextVideoSection = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/ContestTextVideoSection');\n return {\n name: 'animatronApp.contestTextVideoSection',\n files: [getCss('contest-landing/contest-text-video-section')]\n };\n}), wistiaPlayer(), animatronContestGoChallengeButton()]);\n\nexport const animatronVideoImproveStepsSection = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/VideoImproveStepsSection');\n return {\n name: 'animatronApp.videoImproveStepsSection',\n files: [getCss('contest-landing/video-improve-steps-section')]\n };\n}), animatronVideoImproveSteps(), animatronTitleShadowBlock(), animatronBackground(), wistiaPlayer()]);\n\nexport const animatronContestLanding = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/ContestLanding');\n return {\n name: 'animatronApp.contestLanding',\n files: [getCss('contest-landing/contest-landing')]\n };\n}),\n animatronWinPrizesSection(),\n animatronCountdownSection(),\n animatronContactUsSection(),\n animatronContestLandingSvc(),\n animatronPreRegisterSection(),\n animatronMediaSponsorsSection(),\n animatronChallengesListSection(),\n animatronContestDaysTopSection(),\n animatronContestTextVideoSection(),\n animatronVideoImproveStepsSection()\n]);\n\nexport const animatronContestDays = () => Promise.all([require.ensure([], () => {\n require('./contest-landing/ContestDays');\n return {\n name: 'animatronApp.contestDays',\n files: [getCss('contest-landing/contest-days')]\n };\n}),\n animatronJudgeItem(),\n animatronWinPrizesSection(),\n animatronContactUsSection(),\n animatronParticipateSteps(),\n animatronPreRegisterSection(),\n animatronMediaSponsorsSection(),\n animatronContestDaysTopSection(),\n animatronContestTextVideoSection(),\n]);\n// END contest components\n\nexport const animatronDifferentDevices = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/DifferentDevices');\n return {\n name: 'animatronApp.differentDevices',\n files: [getCss('landing-template/components/different-devices')]\n };\n})]);\n\nexport const animatronTemplatePagesListItem = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/TemplatePagesListItem');\n return {\n name: 'animatronApp.templatePagesListItem',\n files: [getCss('landing-template/components/template-pages-list-item')]\n };\n}), animatronBackground()]);\n\nexport const animatronTemplatePagesList = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/TemplatePagesList');\n return {\n name: 'animatronApp.templatePagesList',\n files: [getCss('landing-template/components/template-pages-list')]\n };\n}), animatronTemplatePagesListItem()]);\n\nexport const animatronSectionTemplatePagesList = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionTemplatePagesList');\n return {\n name: 'animatronApp.sectionTemplatePagesList',\n files: [getCss('landing-template/components/sections/section-template-pages-list')]\n };\n}), animatronTemplatePagesList()]);\n\nexport const animatronSectionBackgroundText = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionBackgroundText');\n return {\n name: 'animatronApp.sectionBackgroundText',\n files: [getCss('landing-template/components/sections/section-background-text')]\n };\n}), animatronTitleBlock(), animatronBackground()]);\n\nexport const animatronSectionBitmap = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionBitmap');\n return {\n name: 'animatronApp.sectionBitmap',\n files: [getCss('landing-template/components/sections/section-bitmap')]\n };\n}), animatronTitleBlock()]);\n\nexport const animatronSectionFeedback = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionFeedback');\n return {\n name: 'animatronApp.sectionFeedback',\n files: [getCss('landing-template/components/sections/section-feedback')]\n };\n}), animatronTitleBlock(), animatronFeedback()]);\n\nexport const animatronSectionHorizontalTextVideo = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionHorizontalTextVideo');\n return {\n name: 'animatronApp.sectionHorizontalTextVideo',\n files: [getCss('landing-template/components/sections/section-horizontal-text-video')]\n };\n}), animatronTitleBlock(), animatronButtonStart(), wistiaPlayer()]);\n\nexport const animatronSectionHorizontalImageText = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionHorizontalImageText');\n return {\n name: 'animatronApp.sectionHorizontalImageText',\n files: [getCss('landing-template/components/sections/section-horizontal-image-text')]\n };\n}), animatronTextBlock(), animatronButtonStart(), animatronBackground()]);\n\nexport const animatronSectionVerticalTextVideo = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionVerticalTextVideo');\n return {\n name: 'animatronApp.sectionVerticalTextVideo',\n files: [getCss('landing-template/components/sections/section-vertical-text-video')]\n };\n}), animatronTitleBlock(), animatronBackground(), animatronButtonStart(), wistiaPlayer()]);\n\nexport const animatronSectionDifferentDevices = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionDifferentDevices');\n return {\n name: 'animatronApp.sectionDifferentDevices',\n files: [getCss('landing-template/components/sections/section-different-devices')]\n };\n}), animatronTitleBlock(), animatronBackground(), animatronDifferentDevices(), animatronButtonStart()]);\n\nexport const animatronSectionCompanyInfo = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionCompanyInfo');\n return {\n name: 'animatronApp.sectionCompanyInfo',\n files: [getCss('landing-template/components/sections/section-company-info')]\n };\n}), animatronTitleBlock(), animatronBackground(), animatronIconTextList()]);\n\nexport const animatronSectionVideoStatistics = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionVideoStatistics');\n return {\n name: 'animatronApp.sectionVideoStatistics',\n files: [getCss('landing-template/components/sections/section-video-statistics')]\n };\n}), animatronTitleBlock(), animatronDoubleCircleProgress()]);\n\nexport const animatronSectionCompanyQuote = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionCompanyQuote');\n return {\n name: 'animatronApp.sectionCompanyQuote',\n files: [getCss('landing-template/components/sections/section-company-quote')]\n };\n}), animatronBackground()]);\n\nexport const animatronSectionTextAside = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionTextAside');\n return {\n name: 'animatronApp.sectionTextAside',\n files: [getCss('landing-template/components/sections/section-text-aside')]\n };\n}), animatronTitleBlock(), animatronRelationList()]);\n\nexport const animatronSectionSignUp = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionSignUp');\n return {\n name: 'animatronApp.sectionSignUp',\n files: [getCss('landing-template/components/sections/section-sign-up')]\n };\n}), animatronBackground(), animatronSignUpBlock(), animatronTextBlock()]);\n\nexport const animatronSectionLogoVideoSignUp = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionLogoVideoSignUp');\n return {\n name: 'animatronApp.sectionLogoVideoSignUp',\n files: [getCss('landing-template/components/sections/section-logo-video-sign-up')]\n };\n}), animatronTextBlock(), animatronBackground(), animatronSignUpBlock()]);\n\nexport const animatronSectionVideoSignUp = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionVideoSignUp');\n return {\n name: 'animatronApp.sectionVideoSignUp',\n files: [getCss('landing-template/components/sections/section-video-sign-up')]\n };\n}), animatronTitleBlock(), animatronBackground(), animatronSignUpBlock(), scrollButton()]);\n\nexport const animatronSectionVideoTime = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionVideoTime');\n return {\n name: 'animatronApp.sectionVideoTime',\n files: [getCss('landing-template/components/sections/section-video-time')]\n };\n}), animatronTitleBlock(), animatronBackground(), animatronButtonStart(), wistiaPlayer(), scrollButton()]);\n\nexport const animatronSectionVideoGallery = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionVideoGallery');\n return {\n name: 'animatronApp.sectionVideoGallery',\n files: [getCss('landing-template/components/sections/section-video-gallery')]\n };\n}), animatronTitleBlock(), animatronVideoGallery(), animatronButtonStart()]);\n\nexport const animatronSectionVideoSteps = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/sections/SectionVideoSteps');\n return {\n name: 'animatronApp.sectionVideoSteps',\n files: [getCss('landing-template/components/sections/section-video-steps')]\n };\n}), animatronTitleBlock(), videoSteps(), animatronButtonStart()]);\n\nexport const animatronLandingTemplate: any = () => Promise.all([require.ensure([], () => {\n require('./landing-template/LandingTemplate');\n return {\n name: 'animatronApp.landingTemplate',\n files: [\n getCss('landing-template/landing-template')\n ]\n };\n}),\n animatronSectionTemplatePagesList(),\n animatronSectionBackgroundText(),\n animatronSectionLogoVideoSignUp(),\n animatronSectionVideoSignUp(),\n animatronSectionVideoStatistics(),\n animatronSectionVideoTime(),\n animatronSectionBitmap(),\n animatronSectionHorizontalTextVideo(),\n animatronSectionCompanyInfo(),\n animatronSectionHorizontalImageText(),\n animatronSectionTextAside(),\n animatronSectionCompanyQuote(),\n animatronSectionDifferentDevices(),\n animatronSectionVerticalTextVideo(),\n animatronSectionVideoGallery(),\n animatronSectionSignUp(),\n animatronSectionFeedback(),\n animatronSectionVideoSteps()\n]);\n\nconst userInfoForm = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/UserInfoForm');\n resolve([{\n name: 'animatronApp.userInfoForm',\n files: [\n getCss('user-info-form'),\n getCss('dropdown-menu'),\n getCss('newsWebsite'),\n getCss('_checkbox')\n ]\n }, angularMessages]);\n });\n});\n\nexport const bgVideoSlider = () => Promise.all([require.ensure([], () => {\n require('./directives/bgVideoSlider');\n return {\n name: 'animatronApp.bgVideoSlider',\n files: []\n };\n}), bgVideo()]);\n\nexport const modalVideoPlayer = () => Promise.all([require.ensure([], () => {\n require('./directives/modalVideoPlayer');\n return {\n name: 'animatronApp.modalVideoPlayer',\n files: [getCss('modal-video-player')]\n };\n}), videoPlayer()]);\n\nexport const mainLanding = () => Promise.all([require.ensure([], () => {\n require('./directives/mainLanding');\n return {\n name: 'animatronApp.mainLanding',\n files: [\n getCss('landing/any-landing'),\n options.handHeld ? getCss('mobile/m-any-landing') : ''\n ]\n };\n})]);\n\nexport const tagsInput = () => new Promise(resolve => {\n require.ensure([], () => {\n require('ng-tags-input.js');\n resolve({name: 'ngTagsInput', files: [getCss('ng-tags-input')]});\n });\n});\n\nexport const scrollFixedElement = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/scrollFixedElementDirective');\n resolve({name: 'animatronApp.scrollFixedElement', files: []});\n });\n});\n\nexport const waveUserPage = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/waveUserPage');\n return {\n name: 'animatronApp.waveUserPage',\n files: [getCss('wave/wave-user-page')]\n };\n}), waveProjects(), animatronVideoFolderBreadcrumb()]);\n\nexport const bgVideo = () => require.ensure([], () => {\n require('./directives/bgVideo');\n return {\n name: 'animatronApp.bgVideo',\n files: [getCss('bg-video')]\n };\n});\n\nexport const scrollButton = () => require.ensure([], () => {\n require('./directives/scrollButton');\n return {\n name: 'animatronApp.scrollButton',\n files: [getCss('scroll-button')]\n };\n});\n\nexport const ytPlayer = () => require.ensure([], () => {\n require('./directives/ytPlayer');\n return {\n name: 'animatronApp.ytPlayer',\n files: []\n };\n});\n\nexport const videoPlayer = () => require.ensure([], () => {\n require('./directives/videoPlayer');\n return {\n name: 'animatronApp.videoPlayer',\n files: [getCss('video-player')]\n };\n});\n\n\nexport const wistiaPlayer = () => require.ensure([], () => {\n require('./directives/wistiaPlayer');\n return {\n name: 'animatronApp.wistiaPlayer',\n files: [getCss('wistia-player')]\n };\n});\n\nexport const videoSlider = () => Promise.all([require.ensure([], () => {\n require('./directives/videoSlider');\n return {\n name: 'animatronApp.videoSlider',\n files: [getCss('video-slider')]\n };\n}), videoPlayer()]);\n\nconst ticker = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./services/Ticker');\n resolve({name: 'animatronApp.ticker', files: []});\n });\n});\n\nconst animatronRandomNumber = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/randomFact');\n resolve({\n name: 'animatronApp.randomFact',\n files: [getCss('settings/random-fact')]\n });\n });\n});\n\nexport const animatronUpgrade = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n try {angular.module('animatronApp.settings');} catch (e) {angular.module('animatronApp.settings', []);}\n require('./settings/directives/Subscriptions');\n require('./settings/directives/stripeFormDirective');\n require('./settings/directives/securePaymentDirective');\n require('./settings/directives/couponDirective');\n require('./settings/directives/upgradePlanDirective');\n require('./settings/directives/subscriptionPriceBlock');\n require('./settings/directives/subscriptionTypes');\n require('./settings/directives/infoAppSumo');\n require('./settings/directives/subscriptionPlanDirective');\n require('./directives/PlanAnimation');\n require('./settings/services/TypeformSvc');\n resolve([{\n name: 'animatronApp.settings',\n files: [getCss('settings')]\n }, {name: 'animatronApp.planAnimation', files: []}]);\n });\n}), animatronSubscriptionSvc()]);\n\nexport const animatronSettings = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n try {angular.module('animatronApp.settings');} catch (e) {angular.module('animatronApp.settings', []);}\n require('./settings/controllers/SettingsCtrl');\n require('./settings/controllers/ProfileCtrl');\n require('./settings/controllers/PasswordCtrl');\n require('./settings/controllers/NotificationCtrl');\n require('./settings/directives/deleteAccount');\n require('./settings/directives/avatarUploadDirective');\n require('./settings/directives/AddressDirective');\n resolve({\n name: 'animatronApp.settings',\n files: [\n getCss('tabs'),\n getCss('newsWebsite')\n ]\n });\n });\n}), animatronRandomNumber(), animatronUpgrade(), userInfoForm(), animatronSubscriptionTitle()]);\n\nexport const animatronTutorial = () => new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.tutorial', []);\n require('tutorial.html');\n require('tutorials/tutorial-video.html');\n require('./directives/TutorialComponent');\n require('./directives/TutorialModal');\n require('./services/TutorialSvc');\n require('./directives/tutorialVideoDirective');\n require('./directives/youtubeModalDirective');\n resolve({\n name: 'animatronApp.tutorial',\n files: [\n getCss('tutorial'),\n getCss('tabs'),\n getCss('search')\n ]\n });\n });\n});\n\nexport const animatronSpecialUpgrade = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n try {angular.module('animatronApp.settings');} catch (e) {angular.module('animatronApp.settings', []);}\n require('./directives/SpecialUpgrade');\n resolve({\n name: 'animatronApp.special-upgrade',\n files: [getCss('special-upgrade')]\n });\n });\n}), animatronUpgrade(), animatronSubscriptionPaymentDetailsContainer()]);\n\nexport const animatronFeedback = () => require.ensure([], () => {\n try {angular.module('animatronApp.feedback');} catch (e) {angular.module('animatronApp.feedback', []);}\n\n require('./directives/randomFeedbackDirective');\n require('./directives/feedbackSlider');\n require('./directives/FeedbackSwipable');\n require('./directives/feedbacksListDirective');\n require('./services/OurFeedbackSvc');\n\n return {\n name: 'animatronApp.feedback',\n files: [getCss('feedback-slider')]\n };\n});\n\nexport const animatronEdu = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.education', []);\n require('./directives/EducationComponent');\n require('./directives/eduExampleProject');\n require('education/education.html');\n resolve({\n name: 'animatronApp.education',\n files: [\n getCss('edu'),\n getCss('signup')\n ]\n });\n });\n}), animatronTutorial()]);\n\nexport const animatronPrivacy = [getCss('tutorial')];\nexport const animatronTermsServices = [getCss('tutorial')];\n\nexport const animatronPricing = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.pricing', []);\n require('./directives/pricingSubscriptionDirective');\n require('./directives/PlanAnimation');\n resolve([{\n name: 'animatronApp.pricing',\n files: [\n getCss('pricing'),\n options.handHeld ? getCss('mobile/m-landing-bottom') : ''\n ]\n }, {name: 'animatronApp.planAnimation', files: []}]);\n });\n}), animatronFeedback(), animatronSubscriptionPage()]);\n\nexport const wavePricing = () => Promise.all([require.ensure([], () => {\n angular.module('animatronApp.wavePricing', []);\n require('./wave/wavePricing');\n\n return {\n name: 'animatronApp.wavePricing',\n files: [\n getCss('wave/wave-pricing'),\n options.handHeld ? getCss('mobile/wave/m-wave-pricing') : ''\n ]\n };\n}), animatronPricing(), animatronSectionHorizontalImageText()]);\n\nconst animatronCanvas = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./landing_bottom/animatronCanvas');\n resolve({name: 'animatronApp.animatronCanvas', files: []});\n });\n});\n\nexport const animatronVideoGallery = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/landing/VideoGallery');\n resolve({\n name: 'animatronApp.videoGallery',\n files: [\n getCss('landing/video-gallery')\n ]\n });\n });\n});\n\nexport const animatronExplainerGallery = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/landing/ExplainerGallery');\n resolve({name: 'animatronApp.explainerGallery', files: [getCss('landing/masonry-wrapper')]});\n });\n});\n\nexport const animatronSignup = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/signupFormDirective');\n resolve([angularMessages, {\n name: 'animatronApp.signup',\n files: [\n // getHtml('signup/sign-up'),\n getCss('signup'),\n getCss('sign-up-block')\n ]\n }]);\n });\n});\n\nexport const introduceVideo = () => require.ensure([], () => {\n require('./directives/introduceVideo');\n return {\n name: 'animatronApp.introduce-video',\n files: []\n };\n});\n\nexport const animatronBannerBottom = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.bannerBottom', []);\n require('./directives/landing/LandingSignup');\n require('./directives/landing/BannerGallery');\n require('./landing_bottom/PlayerPlayOnMouse');\n resolve({\n name: 'animatronApp.bannerBottom',\n files: [\n getCss('landing/banner-bottom'),\n options.handHeld ? getCss('mobile/m-landing-banner') : ''\n ]\n });\n });\n}), animatronFeedback(), animatronCanvas(), animatronVideoGallery()]);\n\n\nexport const animatronMediumLanding = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.mediumLanding', []);\n require('./directives/landing/MediumLanding');\n resolve({\n name: 'animatronApp.mediumLanding',\n files: [\n getCss('landing/medium-landing'),\n options.handHeld && getCss('mobile/m-medium-landing')\n ]\n });\n });\n}), animatronCanvas(), animatronVideoGallery(), bgVideo(), videoSlider(), animatronFeedback()]);\n\nexport const animatronComparisonBottom = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.comparisonBottom', []);\n resolve({\n name: 'animatronApp.comparisonBottom',\n files: [\n getCss('landing/comparison'),\n options.handHeld ? getCss('mobile/m-landing-comparison') : '',\n getCss('tabs')\n ]\n });\n });\n}), scrollFixedElement()]);\n\nexport const animatronLandingNewBottom = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.landingNewBottom', []);\n require('./directives/landing/LaptopVideo');\n require('./directives/landing/LandingGallery');\n require('landing/landing-new-bottom.html');\n require('landing/feedback-swipable.html');\n resolve({\n name: 'animatronApp.landingNewBottom',\n files: [\n getCss('landing/masonry-wrapper'),\n getCss('tabs'),\n getCss('landing/landing-new-bottom')\n ]\n });\n });\n}), ytPlayer(), animatronFeedback(), wistiaPlayer()]);\n\nexport const animatronExplainerBottom = animatronBannerBottom;\n\nexport const animatronTwitterFollowButton = () => require.ensure([], () => {\n require('./directives/twitterFollowButton');\n return {\n name: 'animatronApp.twitterFollowButton',\n files: []\n };\n});\n\nexport const animatronTwitterShareButton = () => require.ensure([], () => {\n require('./directives/twitterShareButton');\n return {\n name: 'animatronApp.twitterShareButton',\n files: []\n };\n});\n\nexport const animatronFacebookShareButton = () => require.ensure([], () => {\n require('./directives/facebookShareButton');\n return {\n name: 'animatronApp.facebookShareButton',\n files: [getCss('f_bsh-button')]\n };\n});\n\nexport const animatronLinkedinShareButton = () => require.ensure([], () => {\n require('./directives/linkedinShareButton');\n return {\n name: 'animatronApp.linkedinShareButton',\n files: [getCss('le-share-button')]\n };\n});\n\nexport const animatronGoogleShareButton = () => require.ensure([], () => {\n require('./directives/googleShareButton');\n return {\n name: 'animatronApp.googleShareButton',\n files: [getCss('go-share-button')]\n };\n});\n\nexport const animatronSignUpBlock = () => require.ensure([], () => {\n require('./directives/signUpBlock');\n return [angularMessages, {\n name: 'animatronApp.signUpBlock',\n files: [getCss('sign-up-block')]\n }];\n});\n\nexport const animatronDoubleCircleProgress = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/DoubleCircleProgress');\n return {\n name: 'animatronApp.doubleCircleProgress',\n files: [getCss('landing-template/components/double-circle-progress')]\n };\n})]);\n\nexport const animatronTextBlock = () => Promise.all([require.ensure([], () => {\n require('./landing-template/components/TextBlock');\n return {\n name: 'animatronApp.textBlock',\n files: [getCss('landing-template/components/text-block')]\n };\n}), animatronTitleBlock(), animatronButtonStart()]);\n\nexport const animatronCompany = () => Promise.all([require.ensure([], () => {\n require('./directives/company');\n return {\n name: 'animatronApp.company',\n files: [\n getCss('company'),\n options.handHeld ? getCss('mobile/m-company') : ''\n ]\n };\n})]);\n\n//editor redirect page\nexport const animatronEditorRedirect = () => Promise.all([require.ensure([], () => {\n require('./directives/editor-redirect');\n return {\n name: 'animatronApp.editorRedirect',\n files: [\n getCss('editor-redirect')\n ]\n };\n}), animatronTwitterFollowButton()]);\n//\n\nexport const animatronContractors = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/Contractors');\n resolve({\n name: 'animatronApp.contractors',\n files: [\n getCss('user-section'),\n getCss('contractors')\n ]\n });\n });\n});\n\nexport const waveMain = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/waveLanding');\n return {\n name: 'animatronApp.wave.landing',\n files: [\n getCss('wave/wave-landing'),\n options.handHeld ? getCss('mobile/wave/m-wave-landing') : ''\n ]\n };\n}), animatronVideoGallery(), bgVideo(), waveSectionHowWork()]);\n\nexport const waveLandingSMMW = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/waveLandingSMMW');\n return {\n name: 'animatronApp.wave.landingSMMW',\n files: [\n getCss('wave/wave-landing-smmw'),\n options.handHeld ? getCss('mobile/wave/m-wave-landing-smmw') : ''\n ]\n };\n}), introduceVideo(), waveSectionHowWork(), scrollButton()]);\n\nexport const mariSmithTutorials = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/mariSmithTutorials');\n return {\n name: 'animatronApp.wave.mariSmithTutorials',\n files: [\n getCss('wave/wave-webinar'),\n options.handHeld ? getCss('mobile/wave/m-webinar') : ''\n ]\n };\n})]);\n\nexport const salmaWebinars = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/salmaWebinars');\n return {\n name: 'animatronApp.wave.salmaWebinars',\n files: [\n getCss('wave/wave-webinar'),\n options.handHeld ? getCss('mobile/wave/m-webinar') : ''\n ]\n };\n})]);\n\nexport const waveProject = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/waveProjectItem');\n return {\n name: 'animatronApp.wave.project-item',\n files: [getCss('wave/wave-project-item')]\n };\n}), animatronVideoFolderBottom(), animatronVideoFolderMoveModalSvc()]);\n\nexport const waveTutorialWorkshops = () => require.ensure([], () => {\n require('./directives/wave/tutorial/TutorialWorkshops');\n return {\n name: 'animatronApp.wave.tutorialWorkshops',\n files: [getCss('wave/tutorial/wave-tutorial-workshops')]\n };\n});\n\nexport const waveTutorialsItem = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/tutorial/TutorialsItem');\n return {\n name: 'animatronApp.wave.tutorialsItem',\n files: [getCss('wave/tutorial/wave-tutorials-item')]\n };\n}), animatronTutorial()]);\n\nexport const waveTutorialsList = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/tutorial/TutorialsList');\n return {\n name: 'animatronApp.wave.tutorialsList',\n files: [getCss('wave/tutorial/wave-tutorials-list')]\n };\n}), waveTutorialsItem()]);\n\nexport const waveTutorialPage = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/tutorial/TutorialPage');\n return {\n name: 'animatronApp.wave.tutorialPage',\n files: [getCss('wave/tutorial/wave-tutorial-page')]\n };\n}), waveTutorialsList(), animatronSectionVerticalTextVideo(), waveTutorialWorkshops(), animatronSectionHorizontalImageText()]);\n\n\nexport const videoSteps = () => Promise.all([require.ensure([], () => {\n require('./directives/videoSteps');\n return {\n name: 'animatronApp.videoSteps',\n files: [getCss('video-steps')]\n };\n}), animatronButtonStart(), wistiaPlayer()]);\n\nexport const waveSectionHowWork = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/waveSectionHowWork');\n return {\n name: 'animatronApp.wave.sectionHowWork',\n files: [getCss('wave/wave-section-how-work')]\n };\n}), videoSteps()]);\n\nexport const waveTemplate = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/waveTemplateItem');\n return {\n name: 'animatronApp.wave.template-item',\n files: [getCss('wave/wave-template-item')]\n };\n}), modalVideoPlayer()]);\n\nexport const waveProjects = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/waveProjects');\n return {\n name: 'animatronApp.wave.projects',\n files: [\n getCss('projects'),\n getCss('wave/wave-projects')\n ]\n };\n}),\n waveProject(),\n animatronDragItem(),\n animatronDropZone(),\n animatronVideoFolderItem(),\n animatronVideoFolderCreateNew(),\n animatronVideoFolderMoveModal(),\n animatronVideoFolderMasonry()\n]);\n\nexport const waveMyProjects = () => Promise.all([require.ensure([], () => {\n require('./directives/wave/waveMyProjects');\n return {\n name: 'animatronApp.wave.my-projects',\n files: [\n getCss('tabs'),\n getCss('wave/wave-my-projects')\n ]\n };\n}),\n waveProjects(),\n animatronVideoFolderBreadcrumb(),\n animatronVideoFolderControls()\n]);\n\nexport const animatronActivate = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/activate/ActivateEmail');\n require('./directives/activate/ActivateOAuth');\n resolve([angularMessages, {\n name: 'animatronApp.activate',\n files: [\n getCss('activate')\n ]\n }]);\n });\n}), userInfoForm()]);\n\nexport const animatronRecovery = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/recovery/RecoveryPage');\n resolve([angularMessages, {\n name: 'animatronApp.recovery',\n files: [getCss('activate')]\n }]);\n });\n});\n\nexport const animatronRecoveryReset = () => new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/recovery/RecoveryResetPage');\n resolve([angularMessages, {\n name: 'animatronApp.recoveryReset',\n files: [getCss('activate')]\n }]);\n });\n});\n\nexport const animatronProjectAnalytics = () => new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.projectAnalytics', []);\n require('./directives/analytics/ProjectAnalytics');\n require('./directives/analytics/viewsCountAnalyticsDirective');\n require('./directives/analytics/summarizedAnalyticsDirective');\n require('./directives/analytics/detailedViewsAnalyticsDirective');\n resolve({\n name: 'animatronApp.projectAnalytics',\n files: [\n 'https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.16/d3.min.js', // consider https://plot.ly/javascript/\n getCss('settings'),\n getCss('analytics'),\n getCss('projects'),\n getCss('tabs'),\n getCss('dropdown-menu')\n ]\n });\n });\n});\n\nexport const animatronThumbnailPicker = () => new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.thumbnailPicker', []);\n require('./directives/thumbnailPicker');\n resolve({\n name: 'animatronApp.thumbnailPicker',\n files: [getCss('thumbnail-picker')]\n });\n });\n});\n\nexport const animatronPublish = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.publish', []);\n require('./directives/publishDirective');\n require('./directives/PublishVideo');\n resolve({\n name: 'animatronApp.publish',\n files: [\n getCss('publish'),\n getCss('tabs'),\n getCss('_checkbox')\n ]\n });\n });\n}), ticker(), animatronThumbnailPicker()]);\n\nexport const animatronProjectPreviewPicker = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.projectPreviewPicker', []);\n require('./directives/projectPreviewPicker');\n resolve({\n name: 'animatronApp.projectPreviewPicker',\n files: [getCss('publish')]\n });\n });\n}), animatronThumbnailPicker()]);\n\nexport const animatronProjects = () => new Promise(resolve => {\n angular.module('animatronApp.projects', []);\n resolve({\n name: 'animatronApp.projects',\n files: [\n getCss('tabs'),\n getCss('newsWebsite'),\n getCss('search')\n ].concat(animatronProject)\n });\n});\n\nexport const animatronUserPage = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.profileProject', []);\n require('./directives/UserPage');\n require('./directives/FollowersPage');\n require('./services/FollowersSvc');\n require('./directives/profileProjectDirective');\n require('./directives/paginationDirective');\n resolve({\n name: 'animatronApp.profileProject',\n files: [getCss('user-section')]\n });\n });\n}), animatronProjects()]);\n\n\nexport const animatronHtml5Offline = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.html5Offline', []);\n require('./directives/DownloadHtml5');\n resolve({\n name: 'animatronApp.html5Offline',\n files: [\n getCss('publish'),\n getCss('tabs'),\n getCss('_checkbox')\n ]\n });\n });\n}), animatronThumbnailPicker()]);\n\n//export const animatronSearchPage = [animatronProjects(), getJs('controllers/SearchPageCtrl')];\nexport const animatronSearchPage = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n require('./directives/SearchPage');\n resolve({\n name: 'animatronApp.searchPage',\n files: [\n getCss('search-page'),\n options.handHeld && getCss('mobile/m-search-page')\n ]\n });\n });\n}), animatronProjects()]);\n\n//FIXME might not work\nexport const animatronContest = () => Promise.all([new Promise(resolve => {\n require.ensure([], () => {\n angular.module('animatronApp.contest', []);\n require('./contest/ContestPage');\n require('./contest/JoinContestsPage');\n require('./contest/MyContestsPage');\n require('./contest/InitiateContestPage');\n resolve({\n name: 'animatronApp.contest',\n files: [\n getCss('contest/contest'),\n getCss('_checkbox')\n ]\n });\n });\n}), animatronUserPage(), datePicker()]);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/lazy_modules.ts","import services from 'services/module';\nimport {Strings} from 'Strings';\nimport {AuthenticationSvc} from './AuthenticationSvc';\nimport {LocalStorageSvc} from './LocalStorageSvc';\n\nexport class OAuthCallbackSvc {\n constructor(private $location: ng.ILocationService,\n private $log: ng.ILogService,\n private $state: ng.ui.IStateService,\n private $stateParams: any,\n private AuthenticationSvc: AuthenticationSvc,\n private LocalStorageSvc: LocalStorageSvc) {\n }\n\n doLogin(params: any, stateParams: any) {\n this.$log.debug('Callback activated', {params});\n const getToken = () => {\n const token = params.access_token || stateParams.code;\n return _.isArray(token) ? token[0] : token;\n };\n const oauthService = stateParams.provider.toUpperCase();\n const product = stateParams.product;\n const thirdPartyRedirect = this.LocalStorageSvc.get('_animatron_redirect_onlogin');\n switch (oauthService) {\n case 'GOOGLE':\n case 'FACEBOOK':\n case 'TWITTER':\n case 'DRIBBBLE':\n case 'WISTIA':\n case 'HUBSPOT':\n case 'VIMEO':\n case 'DROPBOX':\n case 'GDRIVE':\n if (!Strings.isBlank(getToken())) {\n this.AuthenticationSvc.loginOAuth(getToken(), oauthService, product)\n .then((secureUser: anm.SecureUser) => {\n if (thirdPartyRedirect) {\n document.querySelector('html').style['background-color'] = 'white';\n\n document.querySelector('html').innerHTML = '
redirecting back...
';\n } else {\n const homeUrl = product === 'wave' ? 'my-projects' : 'home';\n this.$location.hash('');\n this.$state.go(secureUser.isNew ? `${product}-activate-oauth` : homeUrl);\n }\n });\n } else {\n this.$location.path('/404');\n }\n break;\n case 'TWITTER_EMOTIONS':\n this.LocalStorageSvc.set('_animatron_twitter',\n {token: getToken(), secret: params.secret_token});\n window.close();\n break;\n case 'FACEBOOK_EMOTIONS':\n this.LocalStorageSvc.set('_animatron_facebook', {token: getToken()});\n window.close();\n break;\n default:\n if (oauthService.endsWith('_SHARE')) {\n window['share_updated'](getToken());\n if (window.opener) {\n window.opener['share_updated'](getToken());\n }\n } else {\n throw new Error('Unknown provider ' + oauthService);\n }\n }\n }\n\n onCallback($stateParams: any, hash: string) {\n const params = hash.split('&').map(s => s.split('=')).reduce((acc, arr) => {\n acc[arr[0]] = arr[1];\n return acc;\n }, {});\n if (window.opener) {\n try {\n (window.opener.angular.element(window.opener.document.body)\n .injector()\n .get('OAuthCallbackSvc') as OAuthCallbackSvc)\n .doLogin(params, $stateParams);\n } catch (e) {\n this.LocalStorageSvc.set('auth', {params, stateParams: $stateParams});\n } finally {\n window.close();\n }\n } else {\n this.doLogin(params, $stateParams);\n }\n }\n}\n\nservices.service('OAuthCallbackSvc', OAuthCallbackSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/OAuthCallbackSvc.ts","module.exports = __webpack_public_path__ + \"images/avatars/male/4.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/4.png\n// module id = brzu\n// module chunks = 151","var path = 'https://assets.animatron.com/html/news.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/news.html","module.exports = __webpack_public_path__ + \"stylesheets/wave-tutorials-item_b4d39b022b1c3f5139fa5b385adcd80f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/tutorial/wave-tutorials-item.less\n// module id = cZf6\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/sponsor-contact-us_bcb44e4933ea0e908cfd539298e6ef17.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/sponsor-contact-us.less\n// module id = cmQJ\n// module chunks = 151","var path = 'https://assets.animatron.com/html/user-popup.html';\nvar html = \"
{{::$ctrl.user.meta.location}}
{{$ctrl.user.projectsCount || 0}} {{::$root.t('user-info.animations')}} {{$ctrl.user.followers || 0 }} {{::$root.t('user-info.studio-followers')}} {{::$ctrl.user.followings || 0}} {{::$root.t('user-info.studio-following')}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/user-popup.html","module.exports = __webpack_public_path__ + \"html/more-text_dea0b98cd309ef9255989e2c98ee8175.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/more-text.html\n// module id = d1XY\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/comparison_bc07620234c206746c466c721dd42f24.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/comparison.less\n// module id = dLJ7\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/projects_cfdb1d52c30985469201d6da0802275f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/projects.less\n// module id = dQ5J\n// module chunks = 151","import directives from '../module';\nimport {HttpSvcFactory, HttpSvc} from '../../services/HttpSvc';\nimport {ProjectPageCtrl} from './ProjectPage';\nimport {MyFollowings} from '../../services/MyFollowings';\nimport {FollowersSvc} from '../../services/FollowersSvc';\nimport {Utils} from 'underscore-extensions';\n\ntype ProjectChange = {project: ng.IChangesObject};\n\nexport class LikeCtrl implements ng.IComponentController {\n ProjectPageCtrl: ProjectPageCtrl;\n project: anm.Project;\n http: HttpSvc;\n followersSvc: FollowersSvc;\n\n constructor(private $element: ng.IAugmentedJQuery,\n private $timeout: ng.ITimeoutService,\n private HttpSvc: HttpSvcFactory,\n private MyFollowings: MyFollowings) {\n }\n\n $onChanges(changes: ProjectChange) {\n if (!changes.project.currentValue || !changes.project.currentValue.id) return;\n if (this.ProjectPageCtrl) {\n this.ProjectPageCtrl.projectPromise.then(this.init.bind(this));\n } else {\n this.init(this.project);\n }\n if (!options.handHeld) {\n this.MyFollowings.init().then(svc => this.followersSvc = svc);\n }\n }\n\n init(project: anm.Project) {\n this.project = project;\n this.project.likes && this.project.likes.sort((a, b) => a.liked_at - b.liked_at);\n this.http = this.HttpSvc('project', 'like', this.project.id);\n }\n\n changeLike() {\n if (options.user.anonymous) return;\n return this.isLiker() ? this.unlike() : this.like();\n }\n\n private like() {\n this.project.likes.unshift({user: options.user, liked_at: Date.now()});\n this.http.securePost();\n }\n\n private unlike() {\n this.project.likes = this.project.likes.filter(l => l.user.username !== options.user.username);\n this.http.secureDelete();\n }\n\n private isLiker() {\n return !!_.find(this.project.likes, (l: anm.Like) => l.user.username === options.user.username);\n }\n loaded: boolean = false;\n\n public load = _.once(() => {\n if (options.handHeld) return;\n this.loaded = true;\n this.$timeout(() => Utils.rAF(() =>\n (this.$element[0].firstChild as HTMLElement).classList.add('popup-opener'))\n );\n });\n}\n\ndirectives.component('like', {\n bindings: {\n project: '<'\n },\n controller: LikeCtrl,\n require: {ProjectPageCtrl: '^?projectPage'},\n templateUrl: require('like.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/project/LikeDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/landing-template_b841ab2ae7a2946160255753c779ea09.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/landing-template.less\n// module id = dy9G\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-company_d61072072585ba1c4061183f5b605692.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/m-company.less\n// module id = dz0q\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/subscription-current-plan_d7f842e8f32bbd832869aaa3d07497bc.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/subscription-current-plan.less\n// module id = e3be\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/text-block_d5532ed820a947a03bb7b029dc95162b.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/text-block.less\n// module id = eCEw\n// module chunks = 151","import './AdminSvc';\nimport './AnimatronPreviewsSvc';\nimport './AnimatronProjectsSvc';\nimport './AnimatronUsersSvc';\nimport './ExceptionHandler';\nimport './PlayerSvc';\nimport './ProjectModalSvc';\nimport './TagsSvc';\nimport './PaymentHelpers';\nimport './AuthenticationSvc';\nimport './LocalStorageSvc';\nimport './UserChangeWatcherSvc';\nimport './BackendSvc';\nimport './HttpSvc';\nimport './ProjectAugmenter';\nimport './EventSvc';\nimport './NewsSvc';\nimport './OAuthCallbackSvc';\n// import './upgradeOneProjectSvc';\nimport './TranslateSvc';\nimport './MyFollowings';\nimport './AdSvc';\nimport './ViewPortSvc';\nimport './HttpProjectSvc';\nimport './AnalyticSvc';\nimport './StopPlaySvc';\nimport './AffiliateSvc';\nimport './WistiaSvc';\nimport './landingTemplateSvc';\nimport './videoFolderSvc';\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/index.ts","export default function getCommonLinks(product: AnimatronProduct) {\n switch (product) {\n case 'WAVE':\n return {\n pricing: '/wave/pricing',\n facebook: '//www.facebook.com/wave.video',\n twitter: '//twitter.com/wave_video',\n instagram: '//www.instagram.com/wave.video/',\n youtube: 'https://www.youtube.com/wavevideo'\n };\n\n case 'STUDIO':\n default:\n return {\n pricing: '/studio/pricing',\n facebook: '//www.facebook.com/TheAnimatron',\n github: '//github.com/Animatron',\n twitter: '//twitter.com/animatron',\n youtube: '//www.youtube.com/c/AnimatronHero'\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/routes/commonLinks.ts","module.exports = __webpack_public_path__ + \"html/week8_2728306d4c0b45401e4c8d98c61931d8.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/education/week8.html\n// module id = eWSb\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/wave-header_427a74bf561f1ede885f60d4218c997a.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/wave-header.html\n// module id = eXN9\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-landing-comparison_f9c7df2b339b40d4c6d4f19bcbd766de.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/m-landing-comparison.less\n// module id = egLR\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/wave-webinar_b87a365ad3f47b4d5ed3461d3373c568.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-webinar.less\n// module id = ekLA\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/video-steps_914e79e390b5a53737124b0de2effc5e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/video-steps.less\n// module id = f+kA\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/2.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/2.png\n// module id = f37r\n// module chunks = 151","import services from './module';\n\nconst blackList = [\n 'transition superseded',\n 'Possibly unhandled rejection'\n];\n\nfunction isSpecialError(exception: Error | string) {\n const message = _.isError(exception) ? exception.message : exception;\n return blackList.some((item) => message.includes(item));\n}\n\nservices.factory('$exceptionHandler', ($log: ng.ILogService) => {\n return ((exception, cause) => {\n if (isSpecialError(exception)) {\n console.info(exception, cause);\n } else {\n if (!options.isProduction && _ && _.notification) {\n _.notification.showError('Exception: ' + exception);\n }\n $log.error(exception, cause);\n }\n }) as ng.IExceptionHandlerService;\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/ExceptionHandler.ts","module.exports = __webpack_public_path__ + \"html/like_4ab86247caa54544bfe9c4638b2b352d.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/like.html\n// module id = f86U\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/footer_f7da464ae85f74656efaff6efdb52673.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/footer.less\n// module id = fAML\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/5.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/5.png\n// module id = fSNa\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/medium-landing_b84ab3963b41d066b0631a7b9f346884.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/medium-landing.less\n// module id = fUJ1\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/wave-pricing_871a47557c1dba736c0c41dd2a46ff2f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-pricing.less\n// module id = fUhQ\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/font-ko_7d0d1bf91b94a34aa300d1e3bc2470e4.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/fonts/font-ko.less\n// module id = fbuv\n// module chunks = 151 152","export class Strings {\n\n private static readonly map = ['#', '+', ' ', '/', '\\\\\\\\'].join('');\n private static readonly UsernameRegex = new RegExp(`[${Strings.map}]`, 'g');\n\n private static readonly Tags = /<\\/?([a-z][a-z0-9]*)\\b[^>]*>/gi;\n private static readonly CommentTags = /|<\\?[\\s\\S]*?\\?>/gi;\n\n static isBlank(str?: string): boolean {\n if (str == null) str = '';\n return (/^\\s*$/).test(str);\n }\n\n static capitalize(str: string): string {\n str = str == null ? '' : String(str);\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n static titleCase(str: string): string {\n return str.replace('-', ' ').replace(/\\w\\S*/g, txt =>\n txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());\n }\n\n static toCamelCase(name: string): string {\n return name.replace(/-(\\w)/g, match => match[1].toUpperCase());\n }\n\n static toParams(str: string | undefined): {} {\n return (str || '')\n .split('&')\n .map(s => s.split('='))\n .reduce((acc: {[s: string]: string | boolean}, arr: Array) => {\n acc[arr[0]] = arr[1] || true;\n return acc;\n }, {});\n }\n\n static endsWith(str: string, suffix: string) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n };\n\n static encodeUsername(username: string): string {\n return (username || '').replace(Strings.UsernameRegex, c => encodeURIComponent(c));\n }\n\n static sameUser(username: string): boolean {\n return Strings.encodeUsername(options.user.username) === username;\n }\n\n static removeUrlProtocol(url: string): string {\n return _.isString(url) ? url.replace(/(http:|https:)/, '') : '';\n }\n\n // static stripTags = (input: string | string[]): string => {\n static stripTags = (input: any): string => {\n return input ?\n (_.isArray(input) ?\n input.map(i => _.isString(i) ? i.replace(Strings.CommentTags, '') : i)\n : input.replace(Strings.CommentTags, '').replace(Strings.Tags, ''))\n : '';\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/Strings.ts","module.exports = __webpack_public_path__ + \"stylesheets/subscription_eb4a0c156fe9e11a44fef157fa8824a9.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/subscription.less\n// module id = g108\n// module chunks = 151","import directives from './module';\nimport {HttpSvcFactory} from '../services/HttpSvc';\nimport {AuthenticationSvc} from '../services/AuthenticationSvc';\nimport {Utils} from 'underscore-extensions';\nimport {Strings} from '../Strings';\n\nclass LoginCtrl {\n readonly login = {\n '@class': 'basic',\n email: undefined as string | undefined,\n password: undefined as string | undefined\n };\n\n readonly requiredFields = ['email', 'password'];\n readonly redirectMsg = this.$sce.trustAsHtml(this.AuthenticationSvc.loginRedirectMessage);\n readonly isRedirectMsgVisible = this.AuthenticationSvc.loginRedirect;\n\n loading = false;\n invalidLogin = false;\n unknownError = false;\n\n constructor(private $sce: ng.ISCEService,\n private $stateParams: ng.ui.IStateParamsService,\n private AuthenticationSvc: AuthenticationSvc,\n private HttpSvc: HttpSvcFactory) {\n }\n\n loginSubmit(): void {\n this.invalidLogin = false;\n this.unknownError = false;\n if (!this.correctForm()) return;\n\n\n this.loading = true;\n this.HttpSvc('authenticate')\n .post(this.login, {headers: options.user.hash ? options.headers : {}})\n .then(r => r.data).then((response: ApiError | anm.SecureUser) => {\n if (Utils.isApiError(response)) {\n this.invalidLogin = true;\n return null;\n } else {\n const {redirectUrl} = this.$stateParams;\n if (redirectUrl) {\n this.AuthenticationSvc.loginRedirect = redirectUrl;\n }\n return this.AuthenticationSvc.login(response);\n }\n }).catch(() => this.unknownError = true).finally(() => this.loading = false);\n }\n\n hideModal = () => this.AuthenticationSvc.loginModalShown = false;\n\n openSignUp() {\n this.hideModal();\n this.AuthenticationSvc.openSignUpPage(null, {email: this.login.email}, {reload: true});\n }\n\n correctForm() {\n return _.every(this.requiredFields, field =>\n _.isString(this.login[field]) && this.login[field].length > 0);\n }\n\n}\n\ndirectives.component('login', {\n controller: LoginCtrl,\n templateUrl: require('modals/login.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/Login.ts","module.exports = __webpack_public_path__ + \"html/landing-new-bottom_80a6070e9da934b8bdf8eecbfbd1eb2c.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/landing/landing-new-bottom.html\n// module id = gkLk\n// module chunks = 151","var path = 'https://assets.animatron.com/html/education/education.html';\nvar html = \"

{{::$root.t('edu.h1')}}

{{::$root.t('edu.h3')}}

{{::$root.t('edu.week')}} {{week.number}}. {{week.title}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/education/education.html","module.exports = __webpack_public_path__ + \"images/landing/light/card-maker.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/light/card-maker.png\n// module id = h+vD\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/search_6edda50873ba9294e8b20c11b4d011de.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/search.less\n// module id = hACO\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/3.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/3.png\n// module id = hB9q\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/wave-my-projects_90f7656b55c846e65fe205ce48e6875f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-my-projects.less\n// module id = hQA3\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/relation-list_fcee6a674e1a392f24e12648730540c0.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/relation-list.less\n// module id = hVBH\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-wave-pricing_0f6666941bd249fd55f0a685783d3305.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/wave/m-wave-pricing.less\n// module id = hYS4\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/7.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/7.png\n// module id = hflI\n// module chunks = 151","export default angular.module('animatronApp.directives', []);\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/module.ts","module.exports = __webpack_public_path__ + \"stylesheets/subscription-title_c7335fccb65d26b5b79dcea7097a7231.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/subscription-title.less\n// module id = hqAA\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/light-landing_18846e796a9001542a164c9d69693e92.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/light-landing.less\n// module id = hqwK\n// module chunks = 151","import services from 'services/module';\n\nexport class WistiaSvc {\n private baseUrl = 'https://api.wistia.com/v1/';\n private baseParams = {\n api_password: options.wistiaApiKey,\n };\n\n constructor(private $q: ng.IQService,\n private $http: ng.IHttpService) {\n }\n\n getWistiaPlayer(wistiaId: string, options = {}) {\n const deferred = this.$q.defer();\n let videoPlayer = window.Wistia && window.Wistia.api(wistiaId);\n\n if (videoPlayer) {\n const waitForPlayer = () => setTimeout(() => {\n videoPlayer = window.Wistia.api(wistiaId);\n\n if (videoPlayer.ready()) {\n deferred.resolve(videoPlayer)\n } else {\n waitForPlayer();\n }\n }, 100);\n waitForPlayer();\n } else {\n window._wq = window._wq || [];\n window._wq.push({\n id: wistiaId,\n options: {\n videoFoam: true,\n ...options\n },\n onReady(videoPlayer: any) {\n deferred.resolve(videoPlayer)\n }\n });\n }\n\n return deferred.promise;\n }\n\n getMedia(id: string): ng.IPromise {\n const url = `${this.baseUrl}medias/${id}.json`;\n return this.$http\n .get(url, {\n params: this.baseParams\n })\n .then(r => r.data);\n }\n}\n\nservices.service('wistiaSvc', WistiaSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/WistiaSvc.ts","import directives from './module';\nimport {Utils} from 'underscore-extensions';\n\nclass AutoplayVideo implements ng.IComponentController {\n\n private static readonly iOS = /iPad|iPhone|iPod/.test(navigator.userAgent);\n\n readonly withWebm: boolean;\n readonly withRetina: boolean;\n readonly url: string;\n\n readonly videoUrl: string = this.$sce.trustAsResourceUrl(\n options.retina && this.withRetina ? this.url + '_2x' : this.url\n );\n\n constructor(private $rootScope: ng.IRootScopeService,\n private $scope: ng.IScope,\n private $element: ng.IAugmentedJQuery,\n private $sce: ng.ISCEService) {\n }\n\n $onInit() {\n const video = this.$element[0].querySelector('video');\n const safe = (f: 'pause' | 'play') => video && _.isFunction(video[f]) && video[f]();\n this.$rootScope.$on(`onScreen:${this.url}`, () => safe('play'));\n this.$rootScope.$on(`notOnScreen:${this.url}`, () => safe('pause'));\n if (options.handHeld && !AutoplayVideo.iOS) {\n Utils.scopedEvent('touchstart', this.$scope, function videoStart() {\n safe('play');\n window.removeEventListener('touchstart', videoStart);\n });\n } else {\n safe('pause');\n }\n }\n\n $onDestroy() {\n _.isFunction(window.stop) && window.stop();\n\n }\n}\ndirectives.component('autoplayVideo', {\n bindings: {\n url: '@',\n width: '@',\n height: '@',\n withWebm: '<',\n withRetina: '<'\n },\n controller: AutoplayVideo,\n template: `
\n \n
\n
`\n});\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/AutoplayVideo.ts","module.exports = __webpack_public_path__ + \"stylesheets/video-folder-move-modal_f1e7d86a09ec89290c0d54e6be1bab49.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/folder/video-folder-move-modal.less\n// module id = iLwr\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/9.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/9.png\n// module id = ifp+\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/bg-video_a9e8a5e5ade4f0b25d9c6f10d6f1051c.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/bg-video.less\n// module id = isPM\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/signup_168ff3b46745c6d73c4bbe0d08e129b2.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/signup.less\n// module id = j+wj\n// module chunks = 151","export class ObjectId {\n static get() {\n var timestamp = (new Date().getTime() / 1000 | 0).toString(16);\n return timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => {\n return (Math.random() * 16 | 0).toString(16);\n }).toLowerCase();\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/ObjectId.ts","module.exports = __webpack_public_path__ + \"stylesheets/header_feeadff6f190794434aa706951b79af3.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/header.less\n// module id = j8J/\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/publish_cde1315b45ec0a935361bfa389d11cb7.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/publish.less\n// module id = jPQQ\n// module chunks = 151","export default angular.module('animatronApp.services', []);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/module.ts","module.exports = __webpack_public_path__ + \"stylesheets/wave-project-item_9450f78c8d1603d3a697fcb7b02e23b6.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-project-item.less\n// module id = jmbb\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/11.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/11.png\n// module id = juL4\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/challenges-list-section_d751ed7c29ac252c9b74129b3ba51204.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/challenges-list-section.less\n// module id = jwTf\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-video-steps_0e6a96756b77a01989ab9ff54633f28c.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-video-steps.less\n// module id = k4sW\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/background_7a6d8fd7d2ed49a9bd7c38666e21b0a5.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/background.less\n// module id = kfHS\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-webinar_acbff16c76d8a08223ca0d66a8b9defc.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/wave/m-webinar.less\n// module id = kglB\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/related-pages_85529654099b8c050eae5a729cc7f445.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/landing/related-pages.html\n// module id = kmnB\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/political-landing_32672f94e4f7484f88b70608ca525d8a.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/landing/political-landing.html\n// module id = kvRk\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/ask-popup_1cec3e9559dc08a81db21ca84cb6bb43.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/ask-popup.less\n// module id = kvam\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/press-swipable_a272feb90bfb37cd949ed398c72235a4.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/press-swipable.html\n// module id = l0GU\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/1.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/1.png\n// module id = l8ep\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/terms-of-service_08ceeb83c6f1e8a3c47371c489644c1c.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/terms-of-service.html\n// module id = lGv7\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/m-landing-bottom_fd8577175b3c4a0dc861d0863a08350f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/mobile/m-landing-bottom.less\n// module id = lSTx\n// module chunks = 151","import services from 'services/module';\nimport {HttpSvcFactory, HttpSvc} from './HttpSvc';\n\nexport class NewsSvc {\n delayUpdateNews = 36e+5;\n currentIndex = 0;\n newsList: any[] = [];\n deferRun = true;\n deferRunTimer = 1000;\n stopUpdateNews: ng.IPromise;\n currentUser: anm.User;\n httpNews: HttpSvc;\n\n constructor(private $interval: ng.IIntervalService,\n private $timeout: ng.ITimeoutService,\n private HttpSvc: HttpSvcFactory,\n private LocalStorageSvc: any) {\n this.httpNews = HttpSvc('news');\n }\n\n isEqualUsers(user: anm.User) {\n const copyUser = angular.copy(user);\n delete copyUser.auth;\n const isEqual = this.currentUser ? _.isEqual(this.currentUser, copyUser) : false;\n this.currentUser = copyUser;\n return isEqual;\n }\n\n onUserChanged(user: anm.User) {\n if (this.isEqualUsers(user)) return;\n\n if (this.deferRun) {\n this.$timeout(() => {\n this.getNews();\n this.deferRun = false;\n }, this.deferRunTimer);\n } else {\n this.getNews();\n }\n }\n\n getNews() {\n const httpNews = this.httpNews.chain(new Date().getTimezoneOffset());\n this.newsList = [];\n const request = options.user.anonymous ? httpNews.get() : httpNews.secureGet();\n request.then(r => r.data).then(res => this.newsList = options.user.anonymous ? this.getWhiteList(res) : res);\n\n this.$interval.cancel(this.stopUpdateNews);\n this.stopUpdateNews = this.$interval(() => this.getNews(), this.delayUpdateNews);\n }\n\n getWhiteList(NewsList: any[]) {\n const deletedNewsList = this.LocalStorageSvc.get('deletedNewsList');\n\n if (deletedNewsList) {\n return NewsList.filter((newsItem) => !_.contains(deletedNewsList, newsItem.id));\n }\n return NewsList;\n }\n\n addDeletedItemId(deleteId: string) {\n const deletedNewsList = this.LocalStorageSvc.get('deletedNewsList') || [];\n deletedNewsList.push(deleteId);\n this.LocalStorageSvc.set('deletedNewsList', deletedNewsList);\n }\n\n deleteNews(id: string) {\n if (_.isEmpty(this.newsList)) return;\n const deleteNews = _.findWhere(this.newsList, {id});\n this.newsList = _.without(this.newsList, deleteNews);\n if (options.user.anonymous) {\n this.addDeletedItemId(deleteNews.id);\n } else {\n this.httpNews.chain(deleteNews.id).secureDelete();\n }\n }\n}\n\nservices.service('NewsSvc', NewsSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/NewsSvc.ts","module.exports = __webpack_public_path__ + \"html/modal-video_304c67bd6f9c267b191bf2548b4da54e.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/modal-video.html\n// module id = ldoD\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/animations_af7ac59f5208cc73b239c08da97d009a.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/animations.less\n// module id = lu/X\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/15.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/15.svg\n// module id = luA4\n// module chunks = 151","import './project/editableDirective';\nimport './filters';\nimport './isOnScreenDirective';\nimport './loadingSpinnerDirective';\nimport './masonryDirectives';\nimport './modalDialogDirective';\nimport './smallDirectives';\nimport './validatorDirectives';\nimport './project/projectPageCanvasDirective';\nimport './stripeValidatorsDirectives';\nimport './formAutofillFixDirective';\nimport './project/CommentsDirective';\nimport './keypressDirective';\nimport './userAvatarDirective';\nimport './UserPopup';\nimport './toggleProjectModalDirective';\nimport './pickPreviewImageDirective';\nimport './smoothScrollDirective';\nimport './headroomDirective';\nimport './newsDirective';\nimport './project/projectAccessDirective';\nimport './searchDirective';\nimport './tabsDirective';\nimport './documentNoScroll';\nimport './oauthSignInButtons';\nimport './moreTextDirective';\nimport './project/ShareSocial';\nimport './project/ProjectPage';\nimport './Login';\nimport './ExplorePage';\nimport './scrollToDirective';\nimport './blurMeDirective';\nimport './project/LikeDirective';\nimport './ContentEditable';\nimport './Footer';\nimport './pauseHiddenPlayer';\nimport './AdBanner';\nimport './ProjectItem';\nimport './FixedTabs';\nimport './modalVideo';\nimport './LightLanding';\nimport './AppearAnimation';\nimport './landing/LandingPage';\nimport './landing/LandingComparisonPage';\nimport './RelatedPagesSwipable';\nimport './PressSwipable';\nimport './AutoplayVideo';\nimport './SearchText';\nimport './anmHeader';\nimport './waveHeader';\nimport './studioHeader';\nimport './commonLink';\nimport './uploadProject';\nimport './affiliatePopup';\nimport './Logo';\nimport './OpenEditor';\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/index.ts","module.exports = __webpack_public_path__ + \"stylesheets/drag-item_d85de153a9841d04cb7a1dcd10d44e64.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/drag-drop/drag-item.less\n// module id = lwEL\n// module chunks = 151","import services from 'services/module';\nimport {Strings} from 'Strings';\n\nexport class AnimatronPreviews {\n\n constructor() {}\n\n computeHeight(height: number, width: number, computedWidth: number, maxHeight?: number) {\n if (typeof maxHeight === 'undefined') {\n maxHeight = options.handHeld ? 1400 : 700;\n }\n const minHeight = 80;\n const computedHeight = (height || 450) / (width || 550) * computedWidth;\n return Math.min(maxHeight, Math.max(minHeight, computedHeight));\n };\n\n pickPreview(previews: Array, width = 720) {\n const picked = _.find(previews, function (preview) {\n return /.*\\/[a-z\\d]*.(png|jpg)$/.test(preview) ||\n new RegExp('.*\\/[a-z\\\\d\\\\_]*(-0)?_' + width + '.(png|jpg)$').test(preview);\n });\n if (angular.isUndefined(picked)) {\n if (angular.isArray(previews) && previews.length > 0) {\n return Strings.removeUrlProtocol(previews[0]);\n } else {\n return '';\n }\n } else {\n return Strings.removeUrlProtocol(picked);\n }\n };\n}\nservices.service('AnimatronPreviews', AnimatronPreviews);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/AnimatronPreviewsSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/search-page_54d8c1c459485c5bfc9e9b16c5be2b36.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/search-page.less\n// module id = mIzu\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/8.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/8.png\n// module id = mQW2\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/404_40b3dccf48cc9be0aa1dc3722ecedba0.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/404.html\n// module id = mWZi\n// module chunks = 151","import services from 'services/module';\nimport {Strings} from 'Strings';\nimport {playerUrl} from 'lazy_modules';\nimport {BackendSvc} from './BackendSvc';\n\nexport class PlayerSvc {\n private static Cache: {[id: string]: Player} = {};\n\n animatronImporter: any;\n anmPromise: () => ng.IPromise;\n gwtPlayer = this.isGwt();\n fps = parseInt(this.$location.search().fps, 10);\n\n constructor(private $location: angular.ILocationService,\n private $log: angular.ILogService,\n private $http: angular.IHttpService,\n private $filter: angular.IFilterService,\n private $q: ng.IQService,\n private BackendSvc: BackendSvc,\n private $ocLazyLoad: oc.ILazyLoad) {\n\n if (this.gwtPlayer) {\n this.anmPromise = _.once(() => $ocLazyLoad.load(this.$location.search().pUrl || 'https://player-dev.animatron.com/v2.0/player.js')\n // this.anmPromise = _.once(() => $ocLazyLoad.load('http://127.0.0.1:8888/playerDev/playerDev.nocache.js')\n .then(() => $q(resolve => {\n const check = () => {\n if (!window.animatron) {\n setTimeout(() => check(), 50);\n return;\n }\n const player = window.animatron.Player.prototype;\n player.isPaused = player.isPaused || player.isStopped;\n player.pause = player.pause || player.stop;\n resolve(window.animatron);\n };\n check();\n })));\n } else {\n this.anmPromise = _.once(() => $ocLazyLoad.load(playerUrl()).then(() => {\n const anm = window.anm;\n this.decoratePlayer(anm);\n this.animatronImporter = new anm.importers.animatron();\n return anm;\n }));\n }\n }\n\n getAnm(func: Function) {\n return this.anmPromise().then(anm => func(anm));\n }\n\n resetPlayer = (playerPromise: Player | ng.IPromise) => this.$q((resolve: ng.IQResolveReject, reject: ng.IQResolveReject) => {\n const reset = (player: Player) => {\n try {\n this.$log.debug('Reseting player', player);\n if (player) {\n if (player.invalidate) {\n player.invalidate();\n player.detach();\n } else if (player.release) {\n player.release();\n }\n delete PlayerSvc.Cache[player.id];\n }\n resolve();\n } catch (e) {\n // make it just resolve, since player throws a lot of errors during invalidation\n resolve();\n // this.$log.error(e);\n // reject();\n }\n };\n this.$q.resolve(playerPromise).then(reset);\n });\n\n resetPlayerById(canvasId: string) {\n this.resetPlayer(this.getPlayer(canvasId));\n }\n\n getPlayer(id: string): Player {\n return PlayerSvc.Cache[id];\n }\n\n instances(): Array {\n return _.values(PlayerSvc.Cache);\n }\n\n getJson(project: anm.Project | string | ExportJSON.JSON,\n params: anm.ProjectParams,\n forceAnonymous = false): ng.IPromise {\n if ((project).anim) return this.$q.resolve(project);\n return this.getProjectUrl(project).then((jsonUrl: string) => {\n if (params.width && params.height) {\n if (jsonUrl.indexOf('?') === -1) jsonUrl += '?';\n jsonUrl += '&w=' + params.width + '&h=' + params.height;\n }\n\n const needAuth = !forceAnonymous && !options.user.anonymous && !this.isCdnUrl(jsonUrl)\n && ((project).isOwner || !(project).editorReadAccess);\n const httpOpts: ng.IRequestShortcutConfig = {\n headers: needAuth ? options.headers : {}\n };\n\n const filteredUrl = this.$filter('removeUrlProtocol')(jsonUrl);\n return this.$http.get(filteredUrl, httpOpts).then(r => r.data);\n });\n }\n\n createPlayer(project: anm.Project | string | ExportJSON.JSON,\n divId: string,\n params: anm.ProjectParams,\n callback?: (player: Player) => void,\n callback2?: Function,\n forceAnonymous = false): ng.IPromise {\n if (!project) throw new Error('Empty project was passed to createPlayer');\n\n const path = this.$location.path();\n\n params.width = params.width || (project).width;\n params.height = params.height || (project).height;\n if (this.fps) {\n params.fps = this.fps;\n }\n const promises: [ng.IPromise, ng.IPromise] = [this.anmPromise(), this.getJson(project, params, forceAnonymous)];\n return this.$q.all(promises)\n .then(([anm, jsonObj]) => {\n if (this.$location.path() !== path) {\n return this.$q.reject('Location has changed since create request issued');\n }\n return this.loadPlayer(jsonObj, divId, params, anm, callback, callback2);\n }).catch(e => {\n if (!/Location has changed/.test(e)) {\n this.$log.error('Error creating player:', e);\n }\n return null;\n });\n }\n\n loadPlayer(jsonObj: ExportJSON.JSON,\n divId: string,\n params: anm.ProjectParams,\n anm: Anm,\n callback?: (Player: Player) => void,\n callback2?: Function): Player {\n if (jsonObj.anim.script && !this.gwtPlayer) {\n params = _.extend(params, {\n handleEvents: true, autoPlay: true, controlsEnabled: false, infiniteDuration: true\n });\n }\n\n const player: Player = anm.createPlayer(divId, params);\n\n const wrappedCallback = () => callback && callback(player);\n\n // if (PlayerSvc.Cache[divId]) throw new Error('Player is already attached to ' + divId);\n PlayerSvc.Cache[divId] = player;\n if (callback2) callback2();\n if (this.gwtPlayer) {\n (player as any).load(jsonObj, wrappedCallback);\n (player as any).setDebug(true);\n } else {\n player.load(jsonObj, this.animatronImporter, wrappedCallback);\n }\n this.checkAspectRatio(jsonObj.anim.dimension, params);\n return player;\n }\n\n protected isGwt() {\n return (this.$location.search().gwt || !options.isProduction) && !this.$location.search().old;\n }\n\n private checkAspectRatio([originalWidth, originalHeight]: number[], {width, height}: anm.ProjectParams) {\n const originalAspectRatio = originalWidth / originalHeight;\n const newAspectRatio = width / height;\n if (originalAspectRatio.toFixed(2) !== newAspectRatio.toFixed(2)) {\n this.$log.warn('Specified width & height is not correct',\n {originalAspectRatio, newAspectRatio, originalHeight, originalWidth, width, height}\n );\n }\n }\n\n private getProjectId = (project: anm.Project): any => project.id ? project.id : project;\n\n private getProjectBackendUrl = (projectId: string) =>\n this.BackendSvc.getProjectBackend(projectId).then(url =>\n url + '/project/export/json/' + projectId + '?'\n );\n\n public getProjectUrl = _.memoize((project: anm.Project | string) => this.$q((resolve): any => {\n if (typeof project === 'string') {\n resolve(project);\n } else if (!Strings.isBlank(project.cdnContentUrl) && project.cdnVersion === project.version && !project.needsRepublish) {\n resolve(project.cdnContentUrl + '?');\n } else if (Strings.isBlank(project.serverUrl)) {\n return this.getProjectBackendUrl(project.id);\n } else {\n if (this.isCdnUrl(project.serverUrl)) {\n resolve(project.serverUrl + '/' + project.id + '.json?');\n } else {\n resolve('//' + project.serverUrl.replace(':80', '') + '/project/export/json/' + project.id + '?');\n }\n }\n }), this.getProjectId);\n\n private isCdnUrl(url: string) {\n return url.indexOf('//clips.animatron') > -1 || url.indexOf('//publish.animatron') > -1;\n }\n\n // @formatter:off\n private decoratePlayer(anm: Anm) {\n const player = anm.Player.prototype;\n const happens = (p: Player) => p.happens || (p.state && p.state.happens) || anm.constants.STOPPED;\n player.isPlaying = player.isPlaying || function (this: Player) { return happens(this) === anm.constants.PLAYING; };\n player.isPaused = player.isPaused || function (this: Player) { return happens(this) === anm.constants.PAUSED; };\n player.isStopped = player.isStopped || function (this: Player) { return happens(this) === anm.constants.STOPPED; };\n player.getTime = player.getTime || function (this: Player) { return this.state.time; };\n player.setSize = player.setSize || function (this: Player, width: number, height: number) { return this._resize(width, height); };\n }\n // @formatter:on\n}\n\nclass OldPlayer extends PlayerSvc {\n isGwt() {\n return false;\n }\n}\n\n// FIXME rename to PlayerSvc\nservices.service('Player', PlayerSvc);\nservices.service('PlayerSvc', PlayerSvc);\nservices.service('OldPlayer', OldPlayer);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/PlayerSvc.ts","import directives from './module';\nimport SpinnerSvc from 'services/SpinnerSvc';\nimport {AnimatronProjectsFactory} from '../services/AnimatronProjectsSvc';\nimport {AnimatronProjects} from '../services/AnimatronProjectsSvc';\nimport {AdSvc} from 'services/AdSvc';\nimport {TranslateSvc} from '../services/TranslateSvc';\n\nexport class ExploreCtrl implements ng.IComponentController {\n private static DefMinVersion = 100;\n private static CdnUrl = 'https://d36bq5zmf7yjgb.cloudfront.net';\n\n tabs: Array;\n trackerFunction: (eventObject: JQueryEventObject) => any;\n currentTab: anm.ExploreTabs;\n contestType = 'USER';\n isStaffPicks: boolean;\n\n private TabParams: {[tab: string]: ProjectSearchCriteria} = {\n 'most-plays': {\n sortBy: 'views',\n minViews: 1,\n minVersion: ExploreCtrl.DefMinVersion,\n noCount: true\n },\n 'staff-picks': {\n sortBy: 'tag_creation_time',\n tag: 'Staff Picks',\n tag_type: 'SUPER',\n minVersion: ExploreCtrl.DefMinVersion,\n noCount: true\n },\n 'contest-submissions': {\n sortBy: 'tag_creation_time',\n tag_type: 'CONTEST',\n minVersion: 0,\n contestType: this.contestType //TODO should be changed\n },\n 'recently-added': {\n minVersion: ExploreCtrl.DefMinVersion,\n noCount: true\n },\n 'my-projects': {}\n };\n\n tabsConfig = {\n 'my-projects': options.user.anonymous,\n 'contest-submissions': !options.enableContests\n };\n\n constructor(private $scope: any,\n private $state: ng.ui.IStateService,\n private $rootScope: ng.IRootScopeService,\n private $location: ng.ILocationService,\n private AnimatronProjects: AnimatronProjectsFactory,\n private TranslateSvc: TranslateSvc) {\n\n this.trackerFunction = angular.noop;\n\n $scope.$on('$destroy', () => {\n angular.element(window).unbind('scroll', this.trackerFunction);\n });\n\n $scope.$watch(() => this.contestType, () => this.contestType && this.onTabChange(this.currentTab));\n\n if ($location.search().confirmationSent) {\n _.notification.showSuccess(TranslateSvc.get('profile.confirmation-sent'));\n $location.url($location.path()).replace();\n }\n if ($location.search().login) {\n $location.url($location.path()).replace();\n }\n }\n\n onTabChange(currentHash: anm.ExploreTabs) {\n if (!currentHash) return;\n if (!this.tabs.includes(currentHash)) currentHash = 'staff-picks';\n this.currentTab = currentHash;\n this.isStaffPicks = currentHash === 'staff-picks';\n this.$scope.animatron = this.getNewProjectService(currentHash);\n this.$scope.animatron.nextPage().then(() => SpinnerSvc.hide());\n };\n\n getNewProjectService(currentTab: anm.ExploreTabs): AnimatronProjects {\n const ownProjects = currentTab === 'my-projects';\n this.$scope.AdSvc = new AdSvc(!ownProjects, this.$rootScope);\n const tabParams = this.TabParams[currentTab];\n if (!tabParams) {\n throw new Error(`cannot find svc params for tab - '${currentTab}'`);\n }\n if (this.$state.params.product && options.user.rolez.Admin) {\n tabParams.product = this.$state.params.product;\n tabParams.minVersion = 0;\n }\n return new this.AnimatronProjects(\n Object.assign({}, tabParams),\n ownProjects,\n this.cdnUrlCondition() ? ExploreCtrl.CdnUrl : '',\n this.$scope.AdSvc.adify.bind(this.$scope.AdSvc)\n );\n }\n\n private cdnUrlCondition() {\n return options.isProduction && this.isStaffPicks && !options.user.rolez.Admin;\n }\n\n}\n\ndirectives.component('explorePage', {\n controllerAs: 'ExploreCtrl',\n controller: ExploreCtrl,\n templateUrl: require('explore.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/ExplorePage.ts","module.exports = __webpack_public_path__ + \"stylesheets/subscription-payment-details-with-card_a52c683207544b8223e836314926ecb9.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/payment-details/subscription-payment-details-with-card.less\n// module id = n4af\n// module chunks = 151","var path = 'https://assets.animatron.com/html/landing/landing-new.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/landing/landing-new.html","module.exports = __webpack_public_path__ + \"stylesheets/banner-bottom_e4b19823ba51c9f80d740385b9a69f3f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/banner-bottom.less\n// module id = nCcs\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/buttons_35fe09d98f7a372f1b71166c5f6a6356.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/buttons.less\n// module id = nKgT\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/light/pattern-light-landing-bottom.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/light/pattern-light-landing-bottom.svg\n// module id = nNID\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/win-prizes-list_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/win-prizes-list.less\n// module id = nSa/\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/subscription-total-price_838728e873499c4c87f8668cf97abd5a.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/subscription-total-price.less\n// module id = o4OY\n// module chunks = 151","import {animatronUserPage} from '../lazy_modules';\nimport services from 'services/module';\nimport {FollowersSvc, FollowersSvcFactory} from \"./FollowersSvc\";\n\n/**\n * Singleton class to track current users followers globally\n * FIXME refresh on logout?\n */\nexport class MyFollowings {\n followersSvc: FollowersSvc;\n\n constructor(private $rootScope: ng.IRootScopeService,\n private $ocLazyLoad: oc.ILazyLoad,\n private $q: ng.IQService) {\n }\n\n public init: () => ng.IPromise = _.once(() => this.$q(resolve => {\n animatronUserPage().then(a => this.$ocLazyLoad.load(a)).then(() => {\n const factory = angular.element(document).injector().get('FollowersSvc');\n this.followersSvc = new factory(true, 'studio-following', false);\n resolve(this.followersSvc);\n this.$rootScope.$on('user:login', () =>\n this.followersSvc = new factory(true, 'studio-following', false)\n );\n });\n }));\n}\n\nservices.service('MyFollowings', MyFollowings);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/MyFollowings.ts","module.exports = __webpack_public_path__ + \"stylesheets/subscription-current-plan-container_d41d8cd98f00b204e9800998ecf8427e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/subscription/containers/subscription-current-plan-container.less\n// module id = odw/\n// module chunks = 151","import directives from './module';\n\ndirectives.component('projectItem', {\n bindings: {\n project: '<',\n showVisibility: '<',\n isStaffPicks: '<'\n },\n templateUrl: require('project-item.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/ProjectItem.ts","import directives from './module';\nimport {HttpSvcFactory} from '../services/HttpSvc';\nimport {AnimatronProjects, AnimatronProjectsFactory} from '../services/AnimatronProjectsSvc';\nimport {FollowersSvc} from \"../services/FollowersSvc\";\nimport {MyFollowings} from \"../services/MyFollowings\";\nimport {Utils} from 'underscore-extensions';\n\ntype PopupPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n\nclass UserPopup {\n private static userCache: {[user: string]: anm.User} = {};\n\n private static PopupWidth = 400 + 50; //50 is offset\n private static PopupHeight = 245 + 50; //50 is offset\n\n user: anm.User;\n size: number;\n avatarOnly: boolean;\n disableBottom: boolean;\n\n followersSvc: FollowersSvc;\n loading: boolean;\n loaded: boolean;\n shown: boolean;\n\n showTimer: ng.IPromise;\n hideTimer: ng.IPromise;\n\n position: PopupPosition;\n\n constructor(private $scope: ng.IScope,\n private $filter: ng.IFilterService,\n private $timeout: ng.ITimeoutService,\n private $q: ng.IQService,\n private HttpSvc: HttpSvcFactory,\n private AnimatronProjects: AnimatronProjectsFactory,\n private MyFollowings: MyFollowings) {\n this.size = this.size || 20;\n }\n\n public show(e: MouseEvent) {\n this.load();\n if (this.shown) {\n this.$timeout.cancel(this.hideTimer); //the case when user hovers on popup-opener before animation ends(300ms)\n } else {\n this.pickPosition(e);\n }\n this.showTimer = this.$timeout(() => this.shown = true, 500);\n }\n\n public hide() {\n this.$timeout.cancel(this.showTimer);\n this.hideTimer = this.$timeout(() => this.shown = false, 300); //transition duration\n }\n\n private pickPosition(e: MouseEvent) {\n Utils.rAF(() => {\n const scrollY = window.scrollY || document.documentElement.scrollTop;\n const topLeft = e.pageX + UserPopup.PopupWidth > window.innerWidth;\n const topRight = e.pageY + UserPopup.PopupHeight > (scrollY + window.innerHeight);\n\n if (topLeft && topRight) {\n this.position = 'top-left';\n } else if (topRight || this.disableBottom) {\n this.position = 'top-right';\n } else if (!topLeft && !topRight) {\n this.position = 'bottom-right';\n } else {\n this.position = 'bottom-left';\n }\n this.$scope.$apply();\n });\n }\n\n private load = _.once(() => {\n this.loaded = true;\n const username = this.$filter('encodeUsername')(this.user.username);\n\n if (UserPopup.userCache[this.user.username]) {\n this.user = UserPopup.userCache[this.user.username];\n } else {\n this.fetchAndCacheInfo(username);\n }\n\n this.MyFollowings.init().then(svc => this.followersSvc = svc);\n });\n\n private fetchAndCacheInfo(username: string): void {\n this.loading = true;\n this.$q.all([\n new this.AnimatronProjects({username, limit: 3, sortBy: 'views'}).nextPage(),\n this.HttpSvc(username, 'profile').get()\n ]).then(([prj, usr]) => {\n this.loading = false;\n this.user = usr.data;\n this.user.projects = prj.results;\n this.user.projectsCount = prj.count;\n UserPopup.userCache[this.user.username] = this.user;\n });\n }\n}\n\ndirectives.component('userPopup', {\n bindings: {\n size: '<',\n user: '<',\n avatarOnly: '<',\n disableBottom: '<'\n },\n controller: UserPopup,\n templateUrl: require('user-popup.html')\n }\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/UserPopup.ts","import services from './module';\nimport {HttpSvcFactory} from './HttpSvc';\nimport {Utils} from '../underscore-extensions';\nimport {TranslateSvc} from './TranslateSvc';\nimport SpinnerSvc from './SpinnerSvc';\n\nexport const FOLDER_DATA_CHANGED = 'wave/videoFolder/changeData';\nexport const TREE_ITEM_SELECTED = 'wave/videoFolder/tree/itemSelected';\nexport const FOLDER_TREE_DATA_CHANGED = 'wave/videoFolder/tree/changeData';\n\nexport function isFolder(folder: VideoFolder.Folder | any): folder is VideoFolder.Folder {\n return folder.slug && folder.projects;\n}\n\nexport class VideoFolderSvc {\n currentUser: anm.User = options.user;\n\n private baseRequestParams: VideoFolder.BaseRequestParams = {\n product: 'WAVE'\n };\n\n private httpCache = this.$cacheFactory('video-folder');\n newFolder = {} as VideoFolder.Folder;\n\n\n constructor(private $q: ng.IQService,\n private $cacheFactory: ng.ICacheFactoryService,\n private $rootScope: ng.IRootScopeService,\n private TranslateSvc: TranslateSvc,\n private HttpSvc: HttpSvcFactory) {\n }\n\n emitDataChanged = () => {\n this.$rootScope.$emit(FOLDER_DATA_CHANGED);\n }\n\n emitTreeItemSelected = (folderId: number) => {\n this.$rootScope.$emit(TREE_ITEM_SELECTED, folderId);\n }\n\n emitTreeDataChanged = () => {\n this.$rootScope.$emit(FOLDER_TREE_DATA_CHANGED);\n }\n\n isChild(parent: VideoFolder.Folder, child: VideoFolder.Folder): ng.IPromise {\n const check = (f: VideoFolder.Folder): boolean => {\n if (!f.folder) {\n return false;\n } else if (f.folder.id === parent.id) {\n return true;\n } else {\n return check(f.folder);\n }\n };\n\n return this.getTreeById(child.id).then(check);\n }\n\n sortByCreatedDate(folders: VideoFolder.Folder[]) {\n return _.sortBy(folders, (folder) => -(new Date(folder.created).getTime()));\n }\n\n isNewFolder(folder: VideoFolder.Folder) {\n return folder.id === this.newFolder.id;\n }\n\n setNewCreatedFolder(newFolder: VideoFolder.Folder) {\n this.newFolder = newFolder;\n }\n\n clearNewCreatedFolder(folder: VideoFolder.Folder) {\n if (this.newFolder.id === folder.id) {\n this.newFolder = {} as VideoFolder.Folder;\n }\n }\n\n create(createParams: VideoFolder.CreateParams): ng.IPromise {\n const params = this.getParams(createParams);\n const url = `?${params}`;\n this.onFolderUpdate();\n\n return this.makeRequest('securePost', url)\n .then((folder) => {\n this.setNewCreatedFolder(folder);\n return folder;\n });\n }\n\n get(folderId: number) {\n const params = this.getParams({folderId});\n const url = `/fetch?${params}`;\n return this.makeRequest('secureGet', url, {cache: this.httpCache});\n }\n\n getByPath(path: string): ng.IPromise {\n const params = this.getParams({path: `/${encodeURIComponent(path) || ''}`});\n const url = `/fetch?${params}`;\n return this.makeRequest('secureGet', url, {cache: this.httpCache});\n }\n\n getRoot(username = this.currentUser.username) {\n const params = this.getParams();\n const url = `/users/${encodeURIComponent(username)}?${params}`;\n return this.makeRequest('secureGet', url, {cache: this.httpCache});\n }\n\n getFolderTree(username = this.currentUser.username): ng.IPromise {\n const params = this.getParams();\n const url = `/users/${encodeURIComponent(username)}/tree?${params}`;\n\n return this.makeRequest('secureGet', url, {cache: this.httpCache})\n .then((rootFolder: VideoFolder.Folder) => {\n rootFolder.name = this.TranslateSvc.get('wv.folder.breadcrumb.my-projects');\n return rootFolder;\n });\n }\n\n moveProject(moveParams: VideoFolder.MoveProjectParams) {\n this.onFolderUpdate();\n\n const params = this.getParams(moveParams);\n const url = `/project/move?${params}`;\n\n let request = this.makeRequest('securePut', url);\n SpinnerSvc.withSpinner(request);\n request.then(this.emitDataChanged);\n return request;\n }\n\n moveFolder(moveParams: VideoFolder.MoveParams) {\n const params = this.getParams(moveParams);\n const url = `/move?${params}`;\n this.onFolderUpdate();\n\n const request = this.makeRequest('securePut', url);\n SpinnerSvc.withSpinner(request);\n request.then(this.emitDataChanged);\n return request;\n }\n\n deleteFolder(deleteParams: VideoFolder.DeleteParams) {\n const params = this.getParams(deleteParams);\n const url = `/delete?${params}`;\n this.onFolderUpdate();\n\n return this.makeRequest('secureDelete', url).then(this.emitDataChanged);\n }\n\n renameFolder(renameFolderParams: VideoFolder.RenameParams) {\n const params = this.getParams(renameFolderParams);\n const url = `/rename?${params}`;\n this.onFolderUpdate();\n\n return this.makeRequest('securePut', url).then(this.emitDataChanged);\n }\n\n findInTree(folderId: number): ng.IPromise {\n const find = (parentFolder: VideoFolder.Folder) => {\n let result;\n if (parentFolder.id === folderId || !folderId) return parentFolder;\n\n parentFolder.folders.some(folder => {\n result = find(folder);\n return !!result;\n });\n\n return result;\n };\n\n return this.getFolderTree().then((parentFolder: VideoFolder.Folder) => find(parentFolder));\n }\n\n getTreeById(folderId: number): ng.IPromise {\n const find = (parentFolder: VideoFolder.Folder) => {\n let result;\n if (parentFolder.id === folderId || !folderId) return parentFolder;\n\n parentFolder.folders.forEach(folder => {\n const childFolder = find(folder);\n\n if (childFolder) {\n result = {...parentFolder, folder: childFolder};\n }\n });\n\n return result;\n };\n\n return this.getFolderTree().then((parentFolder: VideoFolder.Folder) => find(parentFolder));\n }\n\n getTreeByPath(folderPath: string): ng.IPromise {\n if (!folderPath) return this.$q.resolve({});\n\n let slugs = folderPath.split('/');\n const find = (parentFolder: VideoFolder.Folder): undefined | VideoFolder.Folder => {\n const currentSlug = slugs[0];\n\n currentSlug && parentFolder.folders.forEach(folder => {\n if (folder.slug === currentSlug) {\n slugs = slugs.slice(1);\n find(folder);\n parentFolder.folder = folder;\n }\n });\n\n return parentFolder;\n };\n\n return this.getFolderTree().then((parentFolder: VideoFolder.Folder) => find(parentFolder));\n }\n\n removeFolderFromTree(folderTree: VideoFolder.Folder, excludeFolder: VideoFolder.Folder) {\n if (folderTree.id === excludeFolder.parentId) {\n folderTree.folders = folderTree.folders.filter(folder => folder.id !== excludeFolder.id);\n } else {\n folderTree.folders = folderTree.folders.map(folder => this.removeFolderFromTree(folder, excludeFolder));\n }\n\n return {...folderTree};\n }\n\n onFolderUpdate() {\n this.httpCache.removeAll();\n }\n\n private makeRequest(method: anm.RequestMethods, url: string, config = {}): ng.IPromise {\n let request = this.HttpSvc(`folder${url}`)[`${method}`](config)\n .then((r: ng.IHttpPromiseCallbackArg) => r.data);\n return this.requestErrorHandler(request);\n }\n\n private requestErrorHandler(request: ng.IHttpPromise) {\n return request.then((data: ApiError) => {\n const {errorCode} = data;\n return !errorCode || errorCode < 300\n ? this.$q.resolve(data)\n : this.$q.reject(data);\n });\n }\n\n private getParams(params = {}) {\n return Utils.toParams({...this.baseRequestParams, ...params});\n }\n}\n\nservices.service('videoFolderSvc', VideoFolderSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/videoFolderSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/wave-trail_2384150959ed5017888c3f1008100d3b.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-trail.less\n// module id = omcN\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/week5_35c5f9c4744070576482054f3f6ee6d8.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/education/week5.html\n// module id = ovcP\n// module chunks = 151","import services from 'services/module';\nimport {HttpSvcFactory} from './HttpSvc';\n\nexport class BackendSvc {\n\n constructor(private HttpSvc: HttpSvcFactory,\n private $q: ng.IQService) {\n }\n\n getProjectBackend = <(s: string) => ng.IPromise>_.memoize((projectId: string) =>\n this.$q(resolve => {\n const method = options.user.anonymous ? 'get' : 'secureGet';\n return this.HttpSvc('project-api', projectId)\n [method]()\n .then((response: ng.IHttpPromiseCallbackArg<{url: string}>) => resolve(response.data.url));\n }\n ));\n\n getServerUrl(project: anm.Project): ng.IPromise {\n const promise = project.serverUrl ? this.$q.resolve(project.serverUrl) : this.getProjectBackend(project.id);\n return promise.then(url => this.formatUrl(url));\n }\n\n formatUrl(url: string) {\n if (url.indexOf('localhost') === -1) {\n url = url.replace(/(:\\d{2,6})/, '');\n }\n const serverUrl: string = url.replace(/^https?:\\/\\//, '');\n return `//${serverUrl}`;\n }\n}\n\nservices.service('BackendSvc', BackendSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/BackendSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/section-video-sign-up_febf5ff0da03514d93da5df64e509722.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-video-sign-up.less\n// module id = pLX0\n// module chunks = 151","export default class SpinnerSvc {\n private static spinner: any = null;\n\n public static set(spinner: any) {\n SpinnerSvc.spinner = spinner;\n }\n\n public static show(): void {\n SpinnerSvc.spinner.start();\n }\n\n public static hide(): void {\n setTimeout(() => SpinnerSvc.spinner.complete(), 30);\n }\n\n public static withSpinner(req: ng.IPromise): ng.IPromise {\n SpinnerSvc.show();\n\n req.finally(() => SpinnerSvc.hide());\n return req;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/SpinnerSvc.ts","import directives from './module';\n\ndirectives.directive('blurMe', () => (scope: ng.IScope, element: ng.IAugmentedJQuery) =>\n element.on('click', () => {\n element[0].focus();\n element[0].blur();\n }));\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/blurMeDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/video-player_0385aeff7fabf555dbe5a4107c6bef3e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/video-player.less\n// module id = pbA1\n// module chunks = 151","import directives from './module';\n\ndirectives.directive('formAutofillFix', () =>\n (scope: ng.IScope, elem: any, attrs: any) => {\n // Fixes Chrome bug: https://groups.google.com/forum/#!topic/angular/6NlucSskQjY\n elem.prop('method', 'POST');\n\n // Fix autofill issues where Angular doesn't know about autofilled inputs\n if (attrs.ngSubmit) {\n setTimeout(function () {\n elem.unbind('submit').bind('submit', function (e: Event) {\n e.preventDefault();\n const arr = elem.find('input');\n if (arr.length > 0) {\n arr.triggerHandler('input').triggerHandler('change').triggerHandler('keydown');\n scope.$apply(attrs.ngSubmit);\n }\n });\n }, 0);\n }\n }\n);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/formAutofillFixDirective.ts","var path = 'https://assets.animatron.com/html/search-page.html';\nvar html = \"
{{$root.t('search-page.result', usersSvc.count + animatron.count)}}
0 || SearchPageCtrl.SearchCtrl.myProjects\\\">
{{::$root.t('search.notfound')}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/search-page.html","module.exports = __webpack_public_path__ + \"images/landing/light/banner-video-preview_x2.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/light/banner-video-preview_x2.jpg\n// module id = rJ0m\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/project-access_331870c9e661da6fd360784c9678715c.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/project/project-access.html\n// module id = rNCV\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/favicon.ico\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/favicon.ico\n// module id = rU96\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/wave-landing_701ba8a97c9860e831077ee2973b0339.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-landing.less\n// module id = rd/d\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/4.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/4.png\n// module id = rkOV\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/10.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/10.svg\n// module id = rrSb\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/spread-in_796a1097479c62e552a73a345fab16be.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/spread-in.less\n// module id = sCFP\n// module chunks = 151","import directives from './module';\nimport {ObjectId} from '../services/ObjectId';\nimport {Observer} from '../services/ViewPortSvc';\n\n/**\n * Add class to an element then add directive with value which contains words from previous class\n */\ndirectives.directive('appearAnimation', ($rootScope: ng.IRootScopeService,\n ViewPortSvc: Observer) =>\n (scope: any, element: ng.IAugmentedJQuery, attrs: {appearAnimation: string}) => {\n if (!element[0].id) element[0].id = ObjectId.get();\n const id: string = element[0].id;\n const className: string = attrs.appearAnimation;\n const shouldDisponse = attrs.hasOwnProperty('andDisposeAnimation');\n\n if (/prerender/.test(navigator.userAgent)) {\n element[0].classList.add(className);\n return;\n }\n\n ViewPortSvc.subscribe(element[0]);\n setTimeout(() => ViewPortSvc.checker(), 0);\n\n const destroy = $rootScope.$on('onScreen:' + id, _.once(() => {\n if (shouldDisponse) {\n const initialName = className.replace(/--.*$/, '');\n const dispose = _.once(() => {\n const toRemove = Array.apply(null, element[0].classList)\n .filter((a: string) => a.includes(initialName))\n .concat(className);\n element[0].classList.remove(...toRemove);\n element[0].removeEventListener('transitionend', dispose);\n });\n element[0].addEventListener('transitionend', dispose);\n }\n element[0].classList.add(className);\n ViewPortSvc.unsubscribe(element[0]);\n destroy();\n // scope.$destroy();\n }));\n });\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/AppearAnimation.ts","module.exports = __webpack_public_path__ + \"stylesheets/open-editor_1f61c246e670e77e170379f2e04c902b.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/open-editor.less\n// module id = sM/Y\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/15.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/15.png\n// module id = sNLF\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/affiliate-popup_5627680adb7433cc7fed66a0a67255f1.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/affiliate-popup.html\n// module id = svkI\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-video-time_9bbd48ae9096f62db0ff0afa8945f17f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-video-time.less\n// module id = t/nL\n// module chunks = 151","import services from 'services/module';\n\nconst jq = _.once(() => $.noConflict());\n\nclass PaymentHelpers {\n cardExpiryVal = (value: string) => jq().payment.cardExpiryVal(value);\n\n validateCardNumber = (num: string) => jq().payment.validateCardNumber(num);\n\n validateCardExpiry(value: string) {\n const exp = jq().payment.cardExpiryVal(value);\n return jq().payment.validateCardExpiry(exp.month.toString(), exp.year.toString());\n };\n\n validateCardCvc = (cvc: string, type: string) => jq().payment.validateCardCVC(cvc, type);\n\n restrictNumeric = (element: HTMLElement) => jq()(element).payment('restrictNumeric');\n\n formatCardCvc = (element: HTMLElement) => jq()(element).payment('formatCardCVC');\n\n formatCardExpiry = (element: HTMLElement) => jq()(element).payment('formatCardExpiry');\n\n formatCardNumber = (element: HTMLElement) => jq()(element).payment('formatCardNumber');\n}\nservices.factory('PaymentHelpers', () => new PaymentHelpers());\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/PaymentHelpers.ts","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-2.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-2.png\n// module id = tV+N\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/fonts-basic_c8af4402ea50d0f0b62ceb5f5987b17f.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/fonts/fonts-basic.less\n// module id = tWLz\n// module chunks = 151 152","module.exports = __webpack_public_path__ + \"stylesheets/masonry-wrapper_542507cb57249376ee11881ebc7761ec.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/masonry-wrapper.less\n// module id = tjWj\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/open-editor_cc8d6ab412bdf1def49150e25d65da97.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/open-editor.html\n// module id = tp6s\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/spinners_c054ba0e20568d4283df5ef9c5653ec0.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/spinners.less\n// module id = u8E4\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/9.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/9.svg\n// module id = uaFb\n// module chunks = 151","import directives from './module';\nimport {Strings} from 'Strings';\nimport {Utils} from 'underscore-extensions';\n\nexport class SearchCtrl {\n username?: string;\n keyword: string = this.$stateParams.q;\n solr?: boolean = !_.isUndefined(this.$stateParams.solr);\n myProjects?: boolean = !_.isUndefined(this.$stateParams.myProjects);\n onStart: Function | undefined;\n\n constructor(private $state: ng.ui.IStateService,\n private $q: ng.IQService,\n private $stateParams: {solr?: string, myProjects?: string, q?: string}) {}\n\n startSearch(notify = true): ng.IPromise {\n if (Strings.isBlank(this.keyword)) return this.$q.resolve();\n if (_.isFunction(this.onStart)) this.onStart();\n\n return this.$state.transitionTo('studio-search', {\n q: this.keyword,\n username: this.username,\n myProjects: this.myProjects || undefined,\n solr: this.solr || undefined\n }, {reload: true, notify}).then(() =>\n setTimeout(() => Utils.safe(() => document.querySelector('.project-search').focus()), 100)\n );\n }\n}\n\ndirectives.component('search', {\n controller: SearchCtrl,\n controllerAs: 'Search',\n bindings: {\n username: '@',\n onStart: '&?'\n },\n templateUrl: require('search.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/searchDirective.ts","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-4.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-4.png\n// module id = ukZe\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/pricing_dd224a00d491dfcb7fe023365807edb3.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/studio/pricing.html\n// module id = v+R/\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/8.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/8.png\n// module id = v+uJ\n// module chunks = 151","var path = 'https://assets.animatron.com/html/project-item.html';\nvar html = \"
{{::$root.t('projects.staff-picks')}} {{::$root.t('projects.hall-of-fame')}} {{::$root.t('projects.contest')}}
{{::$root.t('anonymous')}}
{{::$root.t('projects.views')}} {{::$ctrl.project.views || 0 | number}} {{::$root.t('projects.comments')}} {{$ctrl.project.comments.length || 0}} {{::$ctrl.project.visibility | visibilityExplanation}}
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/project-item.html","module.exports = __webpack_public_path__ + \"html/explainer_82bd99fa4330bb99d43a000775aa8258.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/landing/explainer.html\n// module id = v09R\n// module chunks = 151","import directives from './module';\nimport getCommonLinks from '../routes/commonLinks';\nimport {Utils} from '../underscore-extensions';\n\nclass CommonLink implements ng.IComponentController {\n name: string;\n className: string;\n url: string;\n product: AnimatronProduct;\n private href: string;\n\n constructor(private $state: ng.ui.IStateService) {\n }\n\n $onChanges() {\n this.product = this.product || Utils.getProductByState(this.$state);\n this.href = this.url ? this.getByUrl() : this.getByName();\n\n }\n\n private getByName() {\n const links = getCommonLinks(this.product);\n return links[this.name];\n }\n\n private getByUrl() {\n return `/${this.product.toLowerCase()}${this.url}`;\n }\n}\n\ndirectives.component('commonLink', {\n bindings: {\n name: '@?',\n url: '@?',\n product: '@?',\n className: '@?'\n },\n transclude: true,\n controller: CommonLink,\n template: ' '\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/commonLink.ts","//TODO remove `angular.element(document.body).ready(() => ...);` Must work without it.\n\nclass AnimatronNotification {\n private readonly options = {timeout: 5000};\n\n private _timeout: number;\n private type: string;\n private container: ng.IAugmentedJQuery;\n\n constructor() {\n angular.element(document.body).ready(() => {\n this.container = angular.element(document.querySelector('.animatron_notification_block'));\n });\n }\n\n showError(message: string, timeout?: number) {\n angular.element(document.body).ready(() => {\n this.showMessage(message, timeout, 'error');\n });\n }\n\n showSuccess(message: string, timeout?: number) {\n angular.element(document.body).ready(() => {\n this.showMessage(message, timeout, 'success');\n });\n }\n\n private showMessage(message: string, timeout: number, type: string) {\n this.hideInstantly();\n\n if (this.type !== type) {\n this.type = type;\n this.hide();\n this.showMessage(message, timeout, type);\n return;\n }\n if (timeout) {\n this.options.timeout = timeout;\n }\n\n document.querySelector('.animatron_notification_block').innerHTML = '';\n this.container.append(angular.element('').html(message));\n this.show();\n if (this.options.timeout > 0) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(() => this.hide(), this.options.timeout);\n }\n const dismiss_btn = angular.element('')\n .addClass('close')\n .on('click', event => {\n event.preventDefault();\n this.hide();\n });\n this.container.append(dismiss_btn);\n }\n\n hide() {\n clearTimeout(this._timeout);\n if (this.container) {\n this.container.removeClass('show');\n }\n }\n\n private show() {\n this.container.addClass('show').removeClass('hide');\n }\n\n private hideInstantly() {\n if (this.container) {\n this.container.addClass('hide').removeClass('show');\n }\n }\n}\n\n_.notification = new AnimatronNotification();\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/notification.ts","module.exports = __webpack_public_path__ + \"html/project-buttons_27d0ea0d9cdcb9d23b06b6ddf41311ac.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/project/project-buttons.html\n// module id = vhpm\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-1.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-1.png\n// module id = vjsU\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/2.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/2.svg\n// module id = vlSI\n// module chunks = 151","var path = 'https://assets.animatron.com/html/header.html';\nvar html = \"
\";\nvar angular = window.angular;\nvar injector = angular.element(document).injector();\nif (injector) {\ninjector.get('$templateCache').put(path, html);\n} else {\nangular.module('templates').run(['$templateCache', function(c) { c.put(path, html) }]);\n}\nmodule.exports = path;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ngtemplate-loader?relativeTo=/assets/&module=templates&prefix=https:/assets.animatron.com/!./node_modules/html-loader?{\"root\":\"/home/buildagent/buildAgent/work/75d8a89c86eba2f9/studio/app/assets\",\"attrs\":[\"img:src\",\"img:ng-src\",\"div:static-include\",\"p:static-include\",\"static-include:src\"],\"minimize\":true,\"removeOptionalTags\":false,\"removeEmptyAttributes\":false,\"removeIgnored\":true,\"collapseBooleanAttributes\":true,\"collapseWhitespace\":true,\"removeAttributeQuotes\":false,\"removeComments\":true}!./app/assets/html/header.html","module.exports = __webpack_public_path__ + \"stylesheets/both-landings-common_87510a0221f4c268cfb0adedd99741c6.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing/both-landings-common.less\n// module id = vzSK\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/9.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/9.png\n// module id = w2og\n// module chunks = 151","import directives from './module';\nimport {flickityLib, twitterWidgetLib} from '../lazy_modules';\n\nclass PressSwipable implements ng.IComponentController {\n readonly flicktyPromise: ng.IPromise;\n\n constructor(protected $element: ng.IAugmentedJQuery,\n protected $q: ng.IQService) {\n this.flicktyPromise = $q(resolve => loadScripts([flickityLib], resolve));\n }\n\n $postLink() {\n this.initFlickty('.slide', false, true);\n }\n\n protected initFlickty(cellSelector: string, prevNextButtons: boolean, pageDots: boolean) {\n this.flicktyPromise.then(() => {\n const Flickity = window.Flickity;\n new Flickity(this.$element[0].firstChild, {\n cellSelector,\n prevNextButtons,\n pageDots,\n wrapAround: true,\n resize: false,\n cellAlign: 'center',\n adaptiveHeight: true,\n setGallerySize: false\n });\n });\n }\n}\n\nclass PressSwipableTwitter extends PressSwipable {\n readonly twitterPromise: ng.IPromise;\n\n constructor(protected $element: ng.IAugmentedJQuery,\n protected $q: ng.IQService) {\n super($element, $q);\n this.twitterPromise = $q(resolve => loadScripts([twitterWidgetLib], resolve));\n }\n\n $postLink() {\n const children = this.$element[0].firstElementChild.childElementCount;\n let rendered = 0;\n this.twitterPromise.then(() => window.twttr.events.bind('rendered', () => {\n if (++rendered === children) {\n this.initFlickty('.twitter-tweet', true, true);\n }\n }\n ));\n }\n}\n\ndirectives.component('pressSwipable', {\n controller: PressSwipable,\n templateUrl: require('press-swipable.html')\n});\n\ndirectives.component('pressTwitterGallery', {\n controller: PressSwipableTwitter,\n templateUrl: require('press-twitter-gallery.html')\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/PressSwipable.ts","module.exports = __webpack_public_path__ + \"stylesheets/logo_18b65b8b7c34e0c663f6c8e09400195d.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/logo.less\n// module id = wCd9\n// module chunks = 151","import services from 'services/module';\nimport {Utils} from 'underscore-extensions';\n\nexport const IntersectionObserver = (window as any).IntersectionObserver;\n\nexport abstract class Observer {\n\n constructor(private emmiter: Function) {\n this.onInit();\n }\n\n protected onInit() {}\n\n public abstract subscribe(element: HTMLElement, centredOn?: number): void;\n\n public abstract unsubscribe(element: HTMLElement): void;\n\n public abstract checker(): void;\n\n protected whenOnScreen(element: HTMLElement) {\n this.emmiter('onScreen:' + element.id);\n element.classList.add('on-screen');\n element.classList.remove('not-on-screen');\n }\n\n protected whenNotOnScreen(element: HTMLElement) {\n this.emmiter('notOnScreen:' + element.id);\n element.classList.add('not-on-screen');\n element.classList.remove('on-screen');\n }\n}\n\ntype Observable = {\n element: HTMLElement,\n wasOnScreen: boolean,\n wasOutOfScreen: boolean,\n centredOn: number\n}\n\nexport class ScrollObserver extends Observer {\n observables: Array = [];\n staticWindowHeight: string;\n\n onInit() {\n window.addEventListener('scroll', _.throttle(() => this.checker(), 100), false);\n }\n\n checker() {\n return Utils.rAF(() => {\n const windowHeight = this.staticWindowHeight ? +this.staticWindowHeight : window.innerHeight;\n\n this.observables.forEach((o: Observable) => {\n const dimension = o.element.getBoundingClientRect(),\n top = dimension.top,\n bottom = dimension.bottom,\n height = dimension.height,\n topVisible = top + height >= 0,\n botVisible = bottom - height <= windowHeight;\n\n let onScreen = topVisible && botVisible;\n\n if (o.centredOn) {\n const windowPlace = windowHeight * (o.centredOn / 100);\n onScreen = top <= windowPlace && bottom >= windowPlace;\n }\n\n if (onScreen && !o.wasOnScreen && o.wasOutOfScreen) {\n o.wasOnScreen = true;\n o.wasOutOfScreen = false;\n this.whenOnScreen(o.element);\n } else if (!onScreen && o.wasOnScreen && !o.wasOutOfScreen) {\n o.wasOnScreen = false;\n o.wasOutOfScreen = true;\n this.whenNotOnScreen(o.element);\n }\n });\n });\n }\n\n subscribe(element: HTMLElement, centredOn?: number) {\n this.observables.push({\n element,\n centredOn,\n wasOnScreen: false,\n wasOutOfScreen: true\n });\n }\n\n unsubscribe(element: HTMLElement) {\n this.observables = this.observables.filter(o => o.element !== element);\n }\n}\nexport class IntersctObserver extends Observer {\n observer: any = new IntersectionObserver(this.checker.bind(this));\n\n checker(changes?: Array) {\n changes && Utils.rAF(() => changes.forEach(change => {\n const onScreen = change.intersectionRatio !== 0;\n\n if (onScreen) {\n this.whenOnScreen(change.target);\n } else if (!onScreen) {\n this.whenNotOnScreen(change.target);\n }\n }));\n }\n\n subscribe(element: HTMLElement) {\n this.observer.observe(element);\n }\n\n unsubscribe(element: HTMLElement) {\n this.observer.unobserve(element);\n }\n}\n\n//IE 11 fix for .middle\nHTMLElement.prototype.getBoundingClientRect = (function () {\n const oldGetBoundingClientRect = HTMLElement.prototype.getBoundingClientRect;\n return function (this: any) {\n try {\n return oldGetBoundingClientRect.apply(this, arguments);\n } catch (e) {\n return {\n left: '',\n right: '',\n top: '',\n bottom: ''\n };\n }\n };\n})();\n\nfunction ViewPortSvc($rootScope: ng.IRootScopeService): Observer {\n const emmiter = $rootScope.$emit.bind($rootScope);\n // const observer: Observer = IntersectionObserver ? new IntersctObserver(emmiter) : new ScrollObserver(emmiter);\n return new ScrollObserver(emmiter);\n}\nservices.service('ViewPortSvc', ViewPortSvc);\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/ViewPortSvc.ts","module.exports = __webpack_public_path__ + \"stylesheets/_typography_7d99e03223012e618de7f8151c51f31b.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/_typography.less\n// module id = wJnc\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/comments_a9973519437284a57f50a0a9647fdc78.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/project/comments/comments.html\n// module id = wTNS\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-5.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-5.png\n// module id = wWYA\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/12.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/12.png\n// module id = wX/j\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/address_cfba6c317055aab935dab0c59d072d29.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/address.less\n// module id = we/J\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/landing/banner/help-img-3.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/landing/banner/help-img-3.png\n// module id = whPB\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/contractors_373227efb37edfa015d0c0bcf13c3837.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contractors.less\n// module id = wmF7\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/3.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/3.png\n// module id = wpGM\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/20.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/20.png\n// module id = wuZI\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-horizontal-text-video_ef732b3debfb0a7bb32b5714b9f47a64.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-horizontal-text-video.less\n// module id = wwNa\n// module chunks = 151","export class CookieSettings {\n\n public static get() {\n const cookieSettings = {\n path: '/',\n expires: 365, //days\n domain: undefined as string | undefined\n };\n\n if (location.hostname !== 'localhost' && location.hostname.indexOf('192.168') !== 0) {\n cookieSettings.domain = location.host.replace('www', '');\n }\n return cookieSettings;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/services/CookieSettings.ts","module.exports = __webpack_public_path__ + \"stylesheets/notifications_8f662b348103d33c454947b13aebf8b3.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/notifications.less\n// module id = x+OW\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/12.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/12.png\n// module id = x0FM\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/global_c0f93b5b24ceae1dd6295c94054e9152.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/global.less\n// module id = x7Q4\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/1.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/1.svg\n// module id = xD0M\n// module chunks = 151","import directives from '../module';\nimport {HttpSvcFactory} from '../../services/HttpSvc';\nimport {BackendSvc} from '../../services/BackendSvc';\nimport {Utils} from '../../underscore-extensions';\n\nclass ProjectAccessCtrl {\n project: anm.Project;\n access = {\n PUBLIC: 'PUBLIC',\n PRIVATE: 'PRIVATE',\n UNLISTED: 'UNLISTED'\n };\n product: AnimatronProduct = Utils.getProductByState(this.$state);\n userRolez: anm.Rolez = options.user.subscriptionDetails.studio.features.rolez;\n isAdmin: boolean = !!this.userRolez.Admin;\n canOnlyRead: boolean = !this.project.isOwner && this.isAdmin;\n isShowAccess: boolean = this.project.isOwner;\n canChangePermissions: boolean = !options.user.anonymous && this.userRolez.ProjectPermissions.canChangePermissions;\n canWrite: boolean = this.canChangePermissions;\n countPrivateUnlistedProjects: number;\n\n constructor(private $state: ng.ui.IStateService,\n private $http: ng.IHttpService,\n private HttpSvc: HttpSvcFactory,\n private BackendSvc: BackendSvc) {\n\n if (this.canChangePermissions) {\n this.countPrivateUnlistedProjects = this.userRolez.PrivateUnlistedProjects.numProjects;\n this.HttpSvc(`projects/stats?product=${this.product}`).secureGet().then(r => r.data).then((res: anm.ProjectStats) => {\n const countProjectCreated = res.privateProjects + res.unlistedProjects;\n this.canWrite = countProjectCreated < this.countPrivateUnlistedProjects\n || this.project.visibility !== this.access.PUBLIC;\n });\n }\n }\n\n get url() {\n return this.BackendSvc.getServerUrl(this.project)\n .then(url => `${url}/project/update/permission/${this.project.id}`);\n }\n\n changeVisibility(accessType: string) {\n this.project.visibility = accessType;\n }\n\n changeAccess(accessType: string) {\n if (this.project.visibility !== accessType) {\n const data = this.project.product === 'WAVE' && accessType === 'PUBLIC' ?\n {\n 'visibility': accessType,\n 'writeAccess': [] as string[],\n 'readAccess': ['PUBLIC'] as string[]\n } :\n {\n 'visibility': accessType,\n 'writeAccess': [] as string[],\n 'readAccess': [] as string[]\n },\n oldVisibility = this.project.visibility;\n\n this.changeVisibility(accessType);\n this.url.then(url => {\n this.$http.put(url, data, {headers: options.headers})\n .then((res: any) => {\n if (res && res.data.errorCode) {\n this.changeVisibility(oldVisibility);\n _.notification.showError(res.data.errorMessage || 'Error changing project access');\n }\n });\n });\n }\n }\n\n openSubscription() {\n this.$state.go(`${this.product.toLowerCase()}-settings.subscription`);\n }\n}\n\ndirectives.directive('projectAccess', () => ({\n restrict: 'E',\n controller: ProjectAccessCtrl,\n controllerAs: 'ProjectAccess',\n bindToController: {\n project: '='\n },\n scope: true,\n templateUrl: require('project/project-access.html')\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./app/assets/javascripts/directives/project/projectAccessDirective.ts","module.exports = __webpack_public_path__ + \"stylesheets/wave-section-how-work_a12bd1ee9c0aa74bfff55c70f3d4cb95.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/wave/wave-section-how-work.less\n// module id = xU9L\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/tutorial_23595ec88a690b201dec7cb48cf4d186.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/tutorial.less\n// module id = xXoS\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/login-modal_7128728ae6e7777debeb70739028164d.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/login-modal.less\n// module id = xlID\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/sign-up-block_83c951374d9b10614c4085872aeb7058.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/sign-up-block.less\n// module id = xpHJ\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-background-text_673293687f30a269467d630759287cc7.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-background-text.less\n// module id = y+GP\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/14.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/14.svg\n// module id = yCid\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/sign-up_539aaf5a8b0142c0dc4ec9ee2e0eb223.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/signup/sign-up.html\n// module id = yEiy\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/info-app-sumo_49becd49a6a3cb7e4d370c3f05200f26.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/settings/info-app-sumo.less\n// module id = yQlI\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/user-popup_08450b80d49eab0714cc18be43b4c032.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/user-popup.less\n// module id = yRMd\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/modal-video-player_e8a174ea1dc3214a30fe6dc6854cc7ba.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/modal-video-player.less\n// module id = yiF7\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/14.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/14.png\n// module id = z7A8\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/video-improve-steps-section_a5c173079725d56c98c9f76579e7903e.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/contest-landing/video-improve-steps-section.less\n// module id = zH1h\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/male/7.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/male/7.svg\n// module id = zJEW\n// module chunks = 151","module.exports = __webpack_public_path__ + \"stylesheets/section-sign-up_e771c8691117b44eac411c93cdfc5e75.css\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets/landing-template/components/sections/section-sign-up.less\n// module id = zdW0\n// module chunks = 151","module.exports = __webpack_public_path__ + \"images/avatars/female/18.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/images/avatars/female/18.svg\n// module id = zpKr\n// module chunks = 151","var map = {\n\t\"./404-page.less\": \"QQt/\",\n\t\"./_checkbox-tab.less\": \"Bkei\",\n\t\"./_checkbox.less\": \"7c9p\",\n\t\"./_fonts.less\": \"/Rep\",\n\t\"./_lang.less\": \"N3N4\",\n\t\"./_mixins.less\": \"NItV\",\n\t\"./_slider.less\": \"7JoK\",\n\t\"./activate.less\": \"PZhr\",\n\t\"./aff-modal.less\": \"LUYn\",\n\t\"./analytics.less\": \"8Acd\",\n\t\"./animations.less\": \"lu/X\",\n\t\"./ask-popup.less\": \"kvam\",\n\t\"./auth.less\": \"Skyp\",\n\t\"./bg-video.less\": \"isPM\",\n\t\"./buttons.less\": \"nKgT\",\n\t\"./comments.less\": \"+goU\",\n\t\"./company.less\": \"6bdG\",\n\t\"./contest-landing/challenges-list-section.less\": \"jwTf\",\n\t\"./contest-landing/challenges-list.less\": \"4Y92\",\n\t\"./contest-landing/contact-us-section.less\": \"QqRC\",\n\t\"./contest-landing/contest-days-top-section.less\": \"5MIU\",\n\t\"./contest-landing/contest-days.less\": \"PpkO\",\n\t\"./contest-landing/contest-landing.less\": \"R8gk\",\n\t\"./contest-landing/contest-text-video-section.less\": \"RySD\",\n\t\"./contest-landing/countdown-section.less\": \"67wm\",\n\t\"./contest-landing/countdown.less\": \"Du2S\",\n\t\"./contest-landing/judge-item.less\": \"Ao4C\",\n\t\"./contest-landing/media-sponsors-section.less\": \"Jrnx\",\n\t\"./contest-landing/participate-steps.less\": \"03GZ\",\n\t\"./contest-landing/pre-register-section.less\": \"EepZ\",\n\t\"./contest-landing/pre-register.less\": \"DMU6\",\n\t\"./contest-landing/sponsor-contact-us.less\": \"cmQJ\",\n\t\"./contest-landing/spread-in.less\": \"sCFP\",\n\t\"./contest-landing/title-shadow-block.less\": \"L2qt\",\n\t\"./contest-landing/video-improve-steps-section.less\": \"zH1h\",\n\t\"./contest-landing/video-improve-steps.less\": \"+G96\",\n\t\"./contest-landing/win-prizes-list.less\": \"nSa/\",\n\t\"./contest-landing/win-prizes-section.less\": \"SW67\",\n\t\"./contest/contest.less\": \"Otff\",\n\t\"./contractors.less\": \"wmF7\",\n\t\"./delete-account.less\": \"/78k\",\n\t\"./discount-dialog.less\": \"TnCe\",\n\t\"./drag-drop/drag-item.less\": \"lwEL\",\n\t\"./dropdown-menu.less\": \"Bdsd\",\n\t\"./editor-redirect.less\": \"6gbB\",\n\t\"./edu.less\": \"TBjL\",\n\t\"./f_bsh-button.less\": \"5TC1\",\n\t\"./feedback-slider.less\": \"5j0l\",\n\t\"./fonts/font-ko.less\": \"fbuv\",\n\t\"./fonts/fonts-basic.less\": \"tWLz\",\n\t\"./footer.less\": \"fAML\",\n\t\"./global.less\": \"x7Q4\",\n\t\"./go-share-button.less\": \"HmW0\",\n\t\"./header.less\": \"j8J/\",\n\t\"./landing-template/components/background.less\": \"kfHS\",\n\t\"./landing-template/components/different-devices.less\": \"Ir05\",\n\t\"./landing-template/components/double-circle-progress.less\": \"WgFx\",\n\t\"./landing-template/components/icon-text-list.less\": \"5G1g\",\n\t\"./landing-template/components/relation-list.less\": \"hVBH\",\n\t\"./landing-template/components/sections/section-background-text.less\": \"y+GP\",\n\t\"./landing-template/components/sections/section-bitmap.less\": \"7s+J\",\n\t\"./landing-template/components/sections/section-company-info.less\": \"b+CF\",\n\t\"./landing-template/components/sections/section-company-quote.less\": \"7f+t\",\n\t\"./landing-template/components/sections/section-different-devices.less\": \"LxjB\",\n\t\"./landing-template/components/sections/section-feedback.less\": \"QAC1\",\n\t\"./landing-template/components/sections/section-horizontal-image-text.less\": \"JAU9\",\n\t\"./landing-template/components/sections/section-horizontal-text-video.less\": \"wwNa\",\n\t\"./landing-template/components/sections/section-logo-video-sign-up.less\": \"3PSy\",\n\t\"./landing-template/components/sections/section-sign-up.less\": \"zdW0\",\n\t\"./landing-template/components/sections/section-template-pages-list.less\": \"F6N9\",\n\t\"./landing-template/components/sections/section-text-aside.less\": \"OmPd\",\n\t\"./landing-template/components/sections/section-vertical-text-video.less\": \"MJwn\",\n\t\"./landing-template/components/sections/section-video-gallery.less\": \"NZ2j\",\n\t\"./landing-template/components/sections/section-video-sign-up.less\": \"pLX0\",\n\t\"./landing-template/components/sections/section-video-statistics.less\": \"57HE\",\n\t\"./landing-template/components/sections/section-video-steps.less\": \"k4sW\",\n\t\"./landing-template/components/sections/section-video-time.less\": \"t/nL\",\n\t\"./landing-template/components/template-pages-list-item.less\": \"ZSj8\",\n\t\"./landing-template/components/template-pages-list.less\": \"R8wy\",\n\t\"./landing-template/components/text-block.less\": \"eCEw\",\n\t\"./landing-template/components/title-block.less\": \"5W2z\",\n\t\"./landing-template/landing-template.less\": \"dy9G\",\n\t\"./landing-video-preview.less\": \"MLEj\",\n\t\"./landing/any-landing.less\": \"BjM0\",\n\t\"./landing/banner-bottom.less\": \"nCcs\",\n\t\"./landing/both-landings-common.less\": \"vzSK\",\n\t\"./landing/comparison.less\": \"dLJ7\",\n\t\"./landing/landing-new-bottom.less\": \"LT3T\",\n\t\"./landing/landing-new.less\": \"3Sex\",\n\t\"./landing/landing-top-common.less\": \"9VVx\",\n\t\"./landing/light-landing.less\": \"hqwK\",\n\t\"./landing/masonry-wrapper.less\": \"tjWj\",\n\t\"./landing/medium-landing.less\": \"fUJ1\",\n\t\"./landing/political-landing.less\": \"Rpkd\",\n\t\"./landing/video-gallery.less\": \"KvyJ\",\n\t\"./le-share-button.less\": \"8gmB\",\n\t\"./library.less\": \"UVgn\",\n\t\"./login-modal.less\": \"xlID\",\n\t\"./logo.less\": \"wCd9\",\n\t\"./main.less\": \"3ksy\",\n\t\"./mobile/m-any-landing.less\": \"aiHC\",\n\t\"./mobile/m-company.less\": \"dz0q\",\n\t\"./mobile/m-header.less\": \"S6Z6\",\n\t\"./mobile/m-landing-banner.less\": \"SDKh\",\n\t\"./mobile/m-landing-bottom.less\": \"lSTx\",\n\t\"./mobile/m-landing-common.less\": \"DhCa\",\n\t\"./mobile/m-landing-comparison.less\": \"egLR\",\n\t\"./mobile/m-medium-landing.less\": \"BGDY\",\n\t\"./mobile/m-search-page.less\": \"JE8O\",\n\t\"./mobile/mobile.less\": \"0nYI\",\n\t\"./mobile/wave/m-wave-landing-smmw.less\": \"QHsv\",\n\t\"./mobile/wave/m-wave-landing.less\": \"+m0I\",\n\t\"./mobile/wave/m-wave-pricing.less\": \"hYS4\",\n\t\"./mobile/wave/m-wave-typography.less\": \"BTge\",\n\t\"./mobile/wave/m-webinar.less\": \"kglB\",\n\t\"./modal-video-player.less\": \"yiF7\",\n\t\"./modal.less\": \"0wzA\",\n\t\"./newsWebsite.less\": \"b/cW\",\n\t\"./ng-tags-input.less\": \"Argd\",\n\t\"./notifications.less\": \"x+OW\",\n\t\"./open-editor.less\": \"sM/Y\",\n\t\"./pagination.less\": \"Xy+x\",\n\t\"./popup.less\": \"9uvP\",\n\t\"./pricing.less\": \"BH+f\",\n\t\"./project-upgrade.less\": \"acIy\",\n\t\"./projects.less\": \"dQ5J\",\n\t\"./publish.less\": \"jPQQ\",\n\t\"./scroll-button.less\": \"J0yb\",\n\t\"./search-page.less\": \"mIzu\",\n\t\"./search.less\": \"hACO\",\n\t\"./settings.less\": \"NGqW\",\n\t\"./settings/address.less\": \"we/J\",\n\t\"./settings/info-app-sumo.less\": \"yQlI\",\n\t\"./settings/random-fact.less\": \"Dg8K\",\n\t\"./settings/subscription/containers/subscription-current-plan-container.less\": \"odw/\",\n\t\"./settings/subscription/containers/subscription-invoice-history-container.less\": \"BCWO\",\n\t\"./settings/subscription/containers/subscription-payment-details-container.less\": \"9IMG\",\n\t\"./settings/subscription/containers/subscription-router-modals-container.less\": \"BJa0\",\n\t\"./settings/subscription/messages/subscription-messages.less\": \"UAPN\",\n\t\"./settings/subscription/payment-details/subscription-payment-details-enter-card.less\": \"CxL4\",\n\t\"./settings/subscription/payment-details/subscription-payment-details-with-card.less\": \"n4af\",\n\t\"./settings/subscription/subscription-alert.less\": \"J6t3\",\n\t\"./settings/subscription/subscription-billing-info-form.less\": \"4uz1\",\n\t\"./settings/subscription/subscription-credit-info.less\": \"Xo4n\",\n\t\"./settings/subscription/subscription-current-plan.less\": \"e3be\",\n\t\"./settings/subscription/subscription-invoice-history-table.less\": \"JDnY\",\n\t\"./settings/subscription/subscription-page.less\": \"Hh+C\",\n\t\"./settings/subscription/subscription-title.less\": \"hqAA\",\n\t\"./settings/subscription/subscription-total-price.less\": \"o4OY\",\n\t\"./sign-up-block.less\": \"xpHJ\",\n\t\"./signup.less\": \"j+wj\",\n\t\"./special-upgrade.less\": \"+K6/\",\n\t\"./spinners.less\": \"u8E4\",\n\t\"./studio-responsiveness.less\": \"1uG8\",\n\t\"./subscription.less\": \"g108\",\n\t\"./tabs.less\": \"4eYb\",\n\t\"./thumbnail-picker.less\": \"07M5\",\n\t\"./tutorial.less\": \"xXoS\",\n\t\"./user-info-form.less\": \"IFnZ\",\n\t\"./user-popup.less\": \"yRMd\",\n\t\"./user-section.less\": \"HCXh\",\n\t\"./video-player.less\": \"pbA1\",\n\t\"./video-slider.less\": \"KApX\",\n\t\"./video-steps.less\": \"f+kA\",\n\t\"./wave/_typography.less\": \"wJnc\",\n\t\"./wave/folder/masonry/video-folder-masonry.less\": \"Nlhm\",\n\t\"./wave/folder/video-folder-bottom.less\": \"Cw72\",\n\t\"./wave/folder/video-folder-breadcrumb.less\": \"OjHm\",\n\t\"./wave/folder/video-folder-item.less\": \"Vc67\",\n\t\"./wave/folder/video-folder-move-modal.less\": \"iLwr\",\n\t\"./wave/folder/video-folder-tree-item.less\": \"OAh3\",\n\t\"./wave/tutorial/wave-tutorial-page.less\": \"CDOh\",\n\t\"./wave/tutorial/wave-tutorial-workshops.less\": \"KLH/\",\n\t\"./wave/tutorial/wave-tutorials-item.less\": \"cZf6\",\n\t\"./wave/tutorial/wave-tutorials-list.less\": \"74nn\",\n\t\"./wave/wave-landing-smmw.less\": \"/r0m\",\n\t\"./wave/wave-landing.less\": \"rd/d\",\n\t\"./wave/wave-my-projects.less\": \"hQA3\",\n\t\"./wave/wave-pricing.less\": \"fUhQ\",\n\t\"./wave/wave-project-item.less\": \"jmbb\",\n\t\"./wave/wave-projects.less\": \"15vf\",\n\t\"./wave/wave-section-how-work.less\": \"xU9L\",\n\t\"./wave/wave-template-item.less\": \"aTCW\",\n\t\"./wave/wave-trail.less\": \"omcN\",\n\t\"./wave/wave-user-page.less\": \"GIoJ\",\n\t\"./wave/wave-webinar.less\": \"ekLA\",\n\t\"./wistia-player.less\": \"NTYq\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"zwf9\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/stylesheets ^\\.\\/.*\\.less$\n// module id = zwf9\n// module chunks = 151","module.exports = __webpack_public_path__ + \"html/login_864eb25bec4e8a1fb61279f01de513a8.html\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/html/modals/login.html\n// module id = zyTD\n// module chunks = 151"],"sourceRoot":""}